1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-12-04 14:46:47 -05:00
Commit Graph

2546 Commits

Author SHA1 Message Date
Kalle Olavi Niemitalo
1f0c361ead config, Bug 503: Keep track of what has been mirrored. 2008-02-03 14:43:31 +02:00
Kalle Olavi Niemitalo
4c64afec26 config: Add struct conf_parsing_state. 2008-02-03 14:43:29 +02:00
Kalle Olavi Niemitalo
63e82e68e4 config: Reduce the interface offered to exmode. 2008-02-03 14:43:26 +02:00
Kalle Olavi Niemitalo
912cff7975 config: Use memacpy instead of stracpy.
So there is no need to substitute a '\0' into the string, and undo
that afterwards.
2008-02-03 14:43:23 +02:00
Kalle Olavi Niemitalo
753aa3054b config: Fix two bogus end-of-file checks. 2008-02-03 14:43:21 +02:00
Kalle Olavi Niemitalo
09829a0b52 config: Don't mem_free(NULL). 2008-02-03 14:43:18 +02:00
Kalle Olavi Niemitalo
c92cd01e0b config: Plug some memory leaks in error handling. 2008-02-03 14:43:16 +02:00
Kalle Olavi Niemitalo
4960c65f20 config: Explain why get_opt_rec() does not follow OPT_ALIAS. 2008-02-03 14:43:13 +02:00
Kalle Olavi Niemitalo
1d16e90dca config: Swap the "unknown command" and "parse error" messages.
They should be in the same order as in enum parse_error.
2008-02-03 14:43:11 +02:00
Kalle Olavi Niemitalo
b216a21b79 config: Each backslash escapes only one character.
Previously, if you did this in elinks.conf:
set document.dump.header = "\'\\"
then str_rd() failed to detect the end of the string.
2008-02-03 14:43:09 +02:00
Kalle Olavi Niemitalo
9becd108a8 config: more const in elinks.conf parsing 2008-02-03 14:43:06 +02:00
Kalle Olavi Niemitalo
11e9a816f5 const in name_to_language 2008-02-03 14:42:07 +02:00
Kalle Olavi Niemitalo
cb90ed94f0 const in get_cp_index 2008-02-03 14:41:35 +02:00
Kalle Olavi Niemitalo
49ea10a74d Bug 994: Treat only termios.c_cc[VERASE] as "Backspace".
When setting the tty device to raw mode, save the VERASE character.
Later, compare incoming bytes to that.

This is somewhat complicated because "stty verase undef"
sets termios.c_cc[VERASE] = _POSIX_VDISABLE, and e.g. Linux
defines _POSIX_VDISABLE as 0 but that must not cause ELinks
to treat incoming null bytes as backspaces.  Furthermore,
some systems may use different VDISABLE values for different
terminal devices, in which case _POSIX_VDISABLE is undefined
and ELinks must instead read the value from fpathconf().
2008-02-02 13:19:55 +02:00
Miciah Dashiel Butler Masters
e6276bf7ac Missing change from last commit 2008-01-27 18:50:29 +00:00
Miciah Dashiel Butler Masters
ad5b6e0a87 Add KEYMAP_INVALID value for enum keymap_id and properly check for it
get_keymap_id returns -1 when it can't find the keymap.  Because the return
type of get_keymap_id is enum keymap_id and enum keymap_id did not have any
explicit values defined, it could be unsigned, which meant that when
get_keymap_id returned -1, it was really returning a huge positive number.
This meant that when callers checker whether the return value was negative,
they were essentially performing no check at all, so they might give
get_keymap_id an invalid keymap name, get back an invalid keymap_id, and
use that invalid keymap_id.

This commit adds KEYMAP_INVALID = -1 to enum keymap_id and makes all
functions that deal with the enumeration use that symbol.
2008-01-27 18:50:29 +00:00
Miciah Dashiel Butler Masters
cf4c38bb39 Missing change from last commit 2008-01-27 18:48:27 +00:00
Miciah Dashiel Butler Masters
4dedef8f66 Add KEYMAP_INVALID value for enum keymap_id and properly check for it
get_keymap_id returns -1 when it can't find the keymap.  Because the return
type of get_keymap_id is enum keymap_id and enum keymap_id did not have any
explicit values defined, it could be unsigned, which meant that when
get_keymap_id returned -1, it was really returning a huge positive number.
This meant that when callers checker whether the return value was negative,
they were essentially performing no check at all, so they might give
get_keymap_id an invalid keymap name, get back an invalid keymap_id, and
use that invalid keymap_id.

This commit adds KEYMAP_INVALID = -1 to enum keymap_id and makes all
functions that deal with the enumeration use that symbol.
2008-01-27 18:47:20 +00:00
Miciah Dashiel Butler Masters
3a0286e447 Strings corrections from Malcolm Parsons
Fix the spelling and grammar in various comments, variable names, comment
descriptions, and documentation.
2008-01-27 04:19:23 +00:00
Miciah Dashiel Butler Masters
643a34e6af Strings corrections from Malcolm Parsons
Fix the spelling and grammar in various comments, variable names, comment
descriptions, and documentation.
2008-01-27 04:09:18 +00:00
Kalle Olavi Niemitalo
dae9b988f6 const in scanner
So that render_dom_document_start() is better assured that
default_colors[] won't be modified by the CSS code.
2008-01-26 18:20:17 +02:00
Kalle Olavi Niemitalo
f0d10c9f29 Add struct bittorrent_const_string.
Previously, struct string was used here.  However,
bittorrent_fetch_callback does not initialize response.magic,
and parse_bittorrent_tracker_response changes response->source
to point to data that must not be freed.  So the util/string.h
functions are not actually safe to use on these objects.
For this reason, it is safer to use a separate type.
2008-01-26 18:16:45 +02:00
Kalle Olavi Niemitalo
4138b401ca Merge branch 'elinks-0.12' into elinks-0.13
Conflicts:

	src/document/css/stylesheet.c
	src/document/css/stylesheet.h
2008-01-26 18:15:33 +02:00
Kalle Olavi Niemitalo
a831beb6c8 const in BitTorrent 2008-01-26 18:10:35 +02:00
Kalle Olavi Niemitalo
cab0b3fbd5 const in CSS 2008-01-26 18:10:13 +02:00
Kalle Olavi Niemitalo
0689443ad2 const in map_scanner_string 2008-01-26 17:57:14 +02:00
Kalle Olavi Niemitalo
f02e471762 const in decode_color 2008-01-26 17:53:14 +02:00
Kalle Olavi Niemitalo
3f508a9803 const in fastfind_search 2008-01-26 17:52:22 +02:00
Kalle Olavi Niemitalo
721af4e749 Detect all overflows in BitTorrent parse_bencoding_integer.
The previous check (integer > (off_t) integer * 10) did not detect all
overflows.  Examples with 32-bit off_t:

integer = 0x1C71C71D (0x100000000/9 rounded up);
integer * 10 = 0x11C71C722, wraps to 0x1C71C722 which is > integer.

integer = 0x73333333;
integer * 10 = 0x47FFFFFFE, wraps to 0x7FFFFFFE which is > integer.

Examples with 64-bit off_t:

integer = 0x1C71C71C71C71C72 (0x10000000000000000/9 rounded up);
integer * 10 = 0x11C71C71C71C71C74, wraps to 0x1C71C71C71C71C74
which is > integer.

integer = 0x7333333333333333;
integer * 10 = 0x47FFFFFFFFFFFFFFE, wraps to 0x7FFFFFFFFFFFFFFE
which is > integer.

It is unclear to me what effect an undetected overflow would actually
have from the user's viewpoint, so I'm not adding a NEWS entry.
(cherry picked from commit a25fd18e56)
2008-01-26 16:47:51 +02:00
Kalle Olavi Niemitalo
9699a03e74 Don't assume sizeof(int)==4 in bittorrent
(cherry picked from commit f3bad399e2)
2008-01-26 16:47:47 +02:00
Miciah Dashiel Butler Masters
cade70e745 Fix -dump with multicell characters
(cherry picked from commit e0f0112de9)
2008-01-25 09:57:48 +02:00
Kalle Olavi Niemitalo
228595ff29 Bug 824: TERMOPT_WIDGETS_COUNT was off by one.
Commit f19c948ca7 on 2008-01-19
introduced this sub-bug.
2008-01-25 00:06:15 +02:00
Kalle Olavi Niemitalo
40f319ce22 Merge branch 'elinks-0.12' into elinks-0.13
Conflicts:

	po/pl.po
2008-01-22 01:09:18 +02:00
Kalle Olavi Niemitalo
e5922e4fe1 Bug 997: Fix unlikely stack corruption in get_pasv_socket.
It is unlikely because the standard members of struct sockaddr_in
(sin_family, sin_port, sin_addr) already require at least 8 bytes
and I don't know of any system that has size_t larger than that.
Besides, at least glibc pads the structure to 16 bytes.
2008-01-22 00:42:13 +02:00
Kalle Olavi Niemitalo
0c1b52637f get_pasv_socket: Use AF_INET6 when appropriate.
When get_pasv6_socket was merged into get_pasv_socket on 2005-04-15,
the AF_INET6 of get_pasv6_socket was lost and the merged function
always returned AF_INET sockets.  This then made getsockname fill
only part of the struct sockaddr_in6, and ELinks sent to the server
an EPRT command that had half the bits missing from the IPv6 address.
At least ftp.funet.fi then rejected the command, helpfully saying
what the address should have been.

This commit fixes active FTP over IPv6.  Passive FTP was already fixed
in 0.11.3.GIT (887d650efe), on 2007-05-01.
2008-01-22 00:41:25 +02:00
Kalle Olavi Niemitalo
f19c948ca7 Bug 824: Disable combining characters unless --enable-combining.
Label this as an experimental feature because it has so many bugs
and it is not clear how they can be fixed.
2008-01-19 20:58:22 +02:00
Kalle Olavi Niemitalo
14d1a0f3e2 Bug 824: Define _XOPEN_SOURCE, not __USE_XOPEN.
_XOPEN_SOURCE has been standardized in SUSv2.  <features.h> of GNU
libc then defines the internal __USE_XOPEN macro.
2008-01-19 20:52:05 +02:00
Kalle Olavi Niemitalo
2fd3e0b3b3 combined: Leave the screen_char attributes unchanged.
The previous code displayed the wrong attributes if the combining
characters were at the end of an HTML link.  For example:

  <a href="#">trickỹ</a> more text <a href="#">second link</a>

  (The characters in the first A element are "tricky" and U+0303
  COMBINING TILDE.)

Here, when the cursor was not at the first link, ELinks displayed
the y-with-tilde cell as if it were not part of the link.
This happened because ELinks had already changed schar->attr
before set_line saw the space character after the link and
flushed document->combi[].
2008-01-19 20:50:10 +02:00
Witold Filipczyk
83a4d815ae combined: Added combining characters support.
Combining characters requires a UTF-8 locale.
It slows down rendering. There is still the unresolved issue with
combining characters at the end of a document.
This patch wasn't heavilly tested. Especially a "garbage" input may cause
unpredictable results.
2008-01-19 20:49:57 +02:00
Witold Filipczyk
560818568a combined: Added the option "combine" to terminal and screen driver options.
Note that, combining characters work only on XTerm with UTF-8 locale setings.
2008-01-19 20:49:47 +02:00
Kalle Olavi Niemitalo
64102db7ae Bug 867: Don't consume KBD_MOD_PASTE to enter insert mode.
In the previous version, the first event that had KBD_MOD_PASTE
entered insert mode and was consumed for that; ELinks then inserted
the characters from the remaining events.  Now, to make ELinks insert
the first character too, I'm changing things so that KBD_MOD_PASTE
does not cause insert mode to be entered; instead, ELinks inserts
those characters regardless of whether insert mode is on.
2008-01-19 18:12:57 +02:00
Kalle Olavi Niemitalo
d79edd5954 Bug 867: More comments. 2008-01-19 18:12:18 +02:00
Witold Filipczyk
213b1933b3 fsp: Drop the protocol.fsp.sort, always sort entries.
The fsp_opendir always read the whole directory.
Sorting entries do not slow down noticeably.
2008-01-19 17:09:09 +02:00
Kalle Olavi Niemitalo
4c390589ea Bug 939: Documented the fix.
The fix itself is in the parent commit.
2008-01-19 10:55:11 +02:00
Witold Filipczyk
06bcc48487 fsp: Fixed a serious bug.
*fresult pointed to nowhere. On FreeBSD *fresult == NULL
and directories weren't displayed.
Check also if safe_write writes all data.
2008-01-18 21:15:28 +01:00
Kalle Olavi Niemitalo
a5bb4f1011 Bug 867: Request and recognize bracketed paste.
This is based on attachment 389 from bugzilla.elinks.cz
but there were a number of conflicts already.
2008-01-14 23:53:56 +02:00
Kalle Olavi Niemitalo
87f1661314 Bug 54: Don't force 8-bit characters and no parity.
Actually, don't use the cfmakeraw function at all,
and don't look for it during configure either.
2008-01-13 19:26:00 +02:00
Kalle Olavi Niemitalo
04b1e78039 Bug 722: Comment about case-sensitivity of media type names. 2008-01-12 10:08:57 +02:00
Kalle Olavi Niemitalo
d2733656b8 Bug 722: Truncate names of HTML media types.
HTML 4.01 section 6.13 says each entry in the list
must be truncated before the first character that
is not in the allowed set.
2008-01-12 10:08:02 +02:00
Kalle Olavi Niemitalo
65b365587e Bug 722: Read document.css.media only if needed. 2008-01-12 09:37:56 +02:00
Kalle Olavi Niemitalo
0c899dcc8a Bug 722: Default to media="all", not media="screen". 2008-01-12 09:35:41 +02:00
Miciah Dashiel Butler Masters
bbd4464f88 update_status: Do not set the dirty flag just for toggling the LED panel
Do not redraw the document when toggling whether the LED panel is
displayed.
2008-01-03 06:41:15 +00:00
Miciah Dashiel Butler Masters
0d001a88b7 redraw_leds: Redraw the LED panel for each terminal, not each session
Since there is only one LED panel per terminal, redrawing for each session
is wasteful.

Furthermore, since one terminal can have many sessions (i.e. tabs), and
since the last session in the list might not be the current session, the
wrong LEDs might be drawn.

An easy way to demonstrate the bug is to enable ui.clock.enable, so that
the panel is redrawn every 100ms, and then to select a text field and enter
insert mode.  Unless the current tab is the last tab, the insert-mode LED
will only briefly show that insert mode is enabled.
2008-01-03 06:38:27 +00:00
Miciah Dashiel Butler Masters
12dce0d1c0 setup_session: Restore ses->doc_view->vs pointer after copying base's vs
After copying the base session's viewstate, restore the ses->doc_view->vs
pointer.

This follows up on commit 65321923b9:

    In setup_session, copy the viewstate for the new session from the base
    session.

This fixes bug 977:  When opening a javascript: link in a new tab, an
assertion on ses->doc_view->vs in ecmascript_protocol_handler would fail.
2007-12-27 21:36:46 +00:00
Miciah Dashiel Butler Masters
f598226be4 Don't copy current tab when using -remote
In init_remote_session, pass open_uri_in_new_tab a false argument for the based parameter so that the new tab does not get the old tabs current location in its history.
2007-12-23 13:56:34 +00:00
Miciah Dashiel Butler Masters
eb2db32f1e css_hook_css: Fix document.css.media change hook
When document.css.media is changed, make sure to call draw_formatted with rerender = 2 to force a more complete rerendering.
2007-12-22 03:59:34 +00:00
Miciah Dashiel Butler Masters
670d13728a Optionally honour "display: none" (default off)
Because ELinks's CSS support is still so incomplete, some documents still render better if "display: none" is not honoured.  Therefore, it is now honoured, unless document.css.ignore_display_none = 0, which is the default.
2007-12-22 03:59:22 +00:00
Miciah Dashiel Butler Masters
3ee39dae2b css_parse_atrule: Drop an unnecessary check
We have a while loop that checks token && token->type != '}' followed by an if statement that checks token && token->type == }.  If the while loop exits, that either token is false or token->type == '}'; therefore, the if statement need only check token.
2007-12-22 03:25:10 +00:00
Kalle Olavi Niemitalo
60144e9ff6 Bug 722: Filter CSS according to media types.
This patch adds support for:
- option document.css.media
- CSS @import "foo.css" tty;
- CSS @media tty { ... }
- HTML <link rel="stylesheet" media="tty">
- HTML <style media="tty">

This patch is attachments 395 and 396 from bugzilla.elinks.cz, which
are based on attachment 388 from bugzilla.elinks.cz.  This new
version of the patch fixes conflicts with recent 0.13.GIT changes,
marks Doxygen commands with at-signs rather than backslashes, and
adds a few comments.
2007-12-22 03:18:06 +00:00
Miciah Dashiel Butler Masters
ae88223664 Make sure to always check or assert the result of get_opt_rec
Most callers already check.  Add checks to commit_option_values, checkout_option_values, and get_content_type_default.
2007-12-21 22:49:38 +00:00
Kalle Olavi Niemitalo
9fff802c08 Merge branch 'elinks-0.12' into elinks-0.13 2007-12-16 10:12:08 +02:00
Kalle Olavi Niemitalo
a307371d9e Comments about arithmetic in scrolling.
(cherry picked from commit 4871ad0643)
2007-12-16 01:14:08 +02:00
Witold Filipczyk
04387d8d6c Added function move_cursor_rel_count and used it
in move-link-left-line and others, so move-link-left-line ans others
do not use the keyboard prefix.
(cherry picked from commit 8b281e1404)
(cherry picked from commit 4f2a9eadfc)
2007-12-16 01:14:02 +02:00
Witold Filipczyk
f33b7dea02 Removed not existent function. Spotted by Kalle.
(cherry picked from commit a76ecfb8ca)
(cherry picked from commit 54cf868429)
2007-12-16 01:13:53 +02:00
Witold Filipczyk
617e33187d move-link-up-line and others: changed mode to NAVIGATE_CURSOR_ROUTING when
there is no link.
(cherry picked from commit 7db2f8c629)
(cherry picked from commit f62eca8d92)
2007-12-16 01:13:46 +02:00
Witold Filipczyk
61eb46e94d New action: move-cursor-line-start.
It moves cursor to the start of the line.
(cherry picked from commit 5ee1d3b2b3)
(cherry picked from commit 3a87ec55fc)
2007-12-16 01:13:39 +02:00
Witold Filipczyk
d358810a5f move-link-prev(next)-line: Typo with cut-n-paste. s/line/last/.
(cherry picked from commit 848852b75f)
(cherry picked from commit 64c385f0db)
2007-12-16 01:13:32 +02:00
Witold Filipczyk
d1d8c0632a move-link-up-line: segfault when cursor was below last line.
(cherry picked from commit c646c860cd)
(cherry picked from commit 9561d8d0fd)
2007-12-16 01:13:25 +02:00
Witold Filipczyk
175f355320 move-link-prev-line: Really fixed.
(cherry picked from commit 052f7a93bb)
(cherry picked from commit 1a9112945b)
2007-12-16 01:13:18 +02:00
Witold Filipczyk
885adc7a57 move-link-prev-line .. move-link-down-line: Fixed.
(cherry picked from commit bb0166279f)
(cherry picked from commit 27361d141a)
2007-12-16 01:13:12 +02:00
Witold Filipczyk
f2de26b2d5 Fixed the issue with multiline links.
(cherry picked from commit 3555f68059)
(cherry picked from commit 8863f4335f)
2007-12-16 01:13:04 +02:00
Witold Filipczyk
a282a98d4a Avoid segfault.
Go to the page with a few lines. Follow a link to a page with more lines.
Move cursor down, do not stay on a link.
Go back and do move-link-prev-line. This caused a segmentation fault.
(cherry picked from commit 888ba87516)
(cherry picked from commit 1cbd02c141)
2007-12-16 01:12:57 +02:00
Witold Filipczyk
d830833e62 move-link-down-line, move-link-prev-line, etc.:
Change mode to NAVIGATE_LINKWISE to preserve the link position when
going back.
(cherry picked from commit 14b37d0362)
(cherry picked from commit a594b2a002)
2007-12-16 01:12:49 +02:00
Witold Filipczyk
cb07a2630c actions: Fixed moving in frames.
(cherry picked from commit 2045574edc)
(cherry picked from commit 02af6696f5)
2007-12-16 01:12:41 +02:00
Witold Filipczyk
52dfc92523 viewer: Added new four actions requested by Ligesh.
move-link-down-line moves the cursor down to the line with a link.
move-link-up-line moves the cursor up to the line with a link.
move-link-prev-line moves to the previous link horizontally.
move-link-next-line moves to the next link horizontally.
(cherry picked from commit 8259a56e99)
(cherry picked from commit 2eb3532416)
2007-12-16 01:12:31 +02:00
Kalle Olavi Niemitalo
f8863183b8 option_types: Add comments to be found by grep.
I was looking for code that handles OPT_COMMAND, so I grepped for it,
but did not immediately find this array.  Next time, I will.
2007-12-16 01:09:18 +02:00
Miciah Dashiel Butler Masters
a2bc397350 Fix NULL-dereference in document_info_dialog if document not yet loaded
It was possible to cause a crash by opening the Document Info box at the
right moment during the loading of a document.
2007-12-01 19:31:23 +00:00
Kalle Olavi Niemitalo
4871ad0643 Comments about arithmetic in scrolling. 2007-11-25 22:28:19 +02:00
Witold Filipczyk
4f2a9eadfc Added function move_cursor_rel_count and used it
in move-link-left-line and others, so move-link-left-line ans others
do not use the keyboard prefix.
(cherry picked from commit 8b281e1404)
2007-11-25 22:28:18 +02:00
Witold Filipczyk
54cf868429 Removed not existent function. Spotted by Kalle.
(cherry picked from commit a76ecfb8ca)
2007-11-25 22:28:18 +02:00
Witold Filipczyk
f62eca8d92 move-link-up-line and others: changed mode to NAVIGATE_CURSOR_ROUTING when
there is no link.
(cherry picked from commit 7db2f8c629)
2007-11-25 22:28:18 +02:00
Witold Filipczyk
3a87ec55fc New action: move-cursor-line-start.
It moves cursor to the start of the line.
(cherry picked from commit 5ee1d3b2b3)
2007-11-25 22:28:18 +02:00
Witold Filipczyk
64c385f0db move-link-prev(next)-line: Typo with cut-n-paste. s/line/last/.
(cherry picked from commit 848852b75f)
2007-11-25 22:28:17 +02:00
Witold Filipczyk
9561d8d0fd move-link-up-line: segfault when cursor was below last line.
(cherry picked from commit c646c860cd)
2007-11-25 22:28:17 +02:00
Witold Filipczyk
1a9112945b move-link-prev-line: Really fixed.
(cherry picked from commit 052f7a93bb)
2007-11-25 22:28:17 +02:00
Witold Filipczyk
27361d141a move-link-prev-line .. move-link-down-line: Fixed.
(cherry picked from commit bb0166279f)
2007-11-25 22:28:17 +02:00
Witold Filipczyk
8863f4335f Fixed the issue with multiline links.
(cherry picked from commit 3555f68059)
2007-11-25 22:28:16 +02:00
Witold Filipczyk
1cbd02c141 Avoid segfault.
Go to the page with a few lines. Follow a link to a page with more lines.
Move cursor down, do not stay on a link.
Go back and do move-link-prev-line. This caused a segmentation fault.
(cherry picked from commit 888ba87516)
2007-11-25 22:28:16 +02:00
Witold Filipczyk
a594b2a002 move-link-down-line, move-link-prev-line, etc.:
Change mode to NAVIGATE_LINKWISE to preserve the link position when
going back.
(cherry picked from commit 14b37d0362)
2007-11-25 22:28:16 +02:00
Witold Filipczyk
02af6696f5 actions: Fixed moving in frames.
(cherry picked from commit 2045574edc)
2007-11-25 22:28:16 +02:00
Witold Filipczyk
2eb3532416 viewer: Added new four actions requested by Ligesh.
move-link-down-line moves the cursor down to the line with a link.
move-link-up-line moves the cursor up to the line with a link.
move-link-prev-line moves to the previous link horizontally.
move-link-next-line moves to the next link horizontally.
(cherry picked from commit 8259a56e99)
2007-11-25 22:28:15 +02:00
Witold Filipczyk
871b4b09dd bug 978: Python's webbrowser.open_new_tab(URL) works since now. 2007-11-22 19:11:03 +01:00
Witold Filipczyk
588e914470 bug 978: Python's webbrowser.open_new_tab(URL) works since now. 2007-11-22 19:10:45 +01:00
Kalle Olavi Niemitalo
dee220026d Merge branch 'elinks-0.12' into elinks-0.13
Conflicts:

	po/fr.po (time stamps only)
2007-11-20 00:41:30 +02:00
Kalle Olavi Niemitalo
e667c43cd3 Bug 975: Fix int/size_t pointer type mismatch.
On machines where sizeof(size_t) > sizeof(int), this could corrupt the stack.
I think -Wno-pointer-sign added by configure hid this bug until now.
STRLEN is correct in Perl 5.6.0 and later, perhaps earlier too.
2007-11-10 19:28:01 +02:00
Laurent MONIN
9297853d20 Fix download led among different sessions, just use are_there_downloads().
It is a partial revert of commit d14f79eb2c.
Most introduced stuff was useless.
2007-11-07 14:01:10 +01:00
Laurent MONIN
b3cfede1c1 Drop @safe parameter of create_download_file().
Use new flag DOWNLOAD_EXTERNAL instead.
2007-11-07 13:33:04 +01:00
Laurent MONIN
71ccbe0f8d Replace resume parameter by more generic flags.
Type download_flags_T and enum download_flag were introduced.
2007-11-07 12:57:13 +01:00
Laurent MONIN
cfdbe749e8 Use sizeof() instead hardcoded value in read_from_popen(). 2007-11-07 12:12:31 +01:00
Laurent MONIN
cdda2f5acd Factor out redundant code in download_data_store(). 2007-11-07 12:08:36 +01:00
Laurent MONIN
2a59f0f5bd Simplify code. 2007-11-07 12:06:24 +01:00
Laurent MONIN
7a74edab5a Fix display of led after download abort. 2007-11-07 12:06:00 +01:00
Laurent MONIN
d14f79eb2c Indicate backgrounded downloads using an unused led.
The sixth position (the last led from the left) is used.
2007-11-07 11:24:52 +01:00
Petr Baudis
6c4e01f483 Disable protocol.http.compression by default
The compression support in ELinks has always been buggy, with some large pages
failing to decompress and containing garbage at the end instead. However,
with the recent attempts to fix the compression support, it has been actually
made *so* buggy that not only these cases seem to occur more often, but in
some cases, the page is just silently chopped and no content visible; in other
cases, "Resource temporarily unavailable" is displayed. Etc.

The compression support got now to the point where it is so awfully unstable
that it is actively harmful to have it enabled by default. I've been burnt by
it several times already and once made a very serious error because of page
being chopped silently.
2007-11-01 02:28:00 +01:00
Petr Baudis
d4cec950ec Introduce protocol.http.compression knob
When disabled, no Accept-Encoding header is sent.
2007-11-01 02:24:55 +01:00
Laurent MONIN
f5c3ba2e99 Add cookies file format description to cookies.h.
This clear description was provided by Witek on IRC.
2007-10-18 09:26:43 +02:00
Laurent MONIN
8f02417036 Insert a new line after variable declaration. 2007-10-15 12:59:41 +02:00
Laurent MONIN
a35a5c557a Use @cp to shorten the line. 2007-10-15 12:32:25 +02:00
Laurent MONIN
b1eaca1f1e Drop unused variable @options from html_focusable(). 2007-10-15 12:31:16 +02:00
Laurent MONIN
31d8ffc578 In extract_color() and get_color(), make names of variables more explicit.
c -> attribute
r -> retval
at -> value
2007-10-15 12:26:19 +02:00
Laurent MONIN
a1125df95f Make get_bgcolor() use extract_color() instead of get_color().
It prevents a useless test, use_document_fg_colors() is
always true when use_document_bg_colors() is true.
2007-10-15 12:19:46 +02:00
Laurent MONIN
b709061864 Move code from get_color() to new extract_color(). 2007-10-15 12:17:08 +02:00
Laurent MONIN
11dea66ff1 struct table bordercolor,bgcolor -> color.(border|background) 2007-10-12 17:10:30 +02:00
Laurent MONIN
367767c500 struct par_attrib bgcolor -> color.background 2007-10-12 17:04:44 +02:00
Laurent MONIN
f150f22ac9 Use color.background instead of bgcolor in struct document too.
Not useful but coherent with other changes.
2007-10-12 16:50:47 +02:00
Laurent MONIN
bc498c00da struct text_style_color fg,bg -> foreground, background 2007-10-12 16:41:06 +02:00
Laurent MONIN
f8cdb5d472 More anonymous structures were named. 2007-10-12 16:24:41 +02:00
Laurent MONIN
78270c2ac3 Reduce usage of anonymous structures.
Naming them may ease things (ie. debug).
2007-10-12 12:37:28 +02:00
Laurent MONIN
e2a5696f76 active_link.(fg|bg) -> active_link.color.(foreground|background) 2007-10-12 12:24:53 +02:00
Laurent MONIN
8df72685ce Rename struct active_link_options field color to enable_color.
It matches the corresponding option name better.
2007-10-12 12:19:27 +02:00
Laurent MONIN
24605c967e Mark colors in struct document_options by using a new struct for them.
default_(link|vlink|...) -> default_color.(link|vlink|...)
2007-10-12 12:11:31 +02:00
Laurent MONIN
a5548fadd2 Use (correct) type enum form_mode for struct text_attrib field select_disabled. 2007-10-12 11:00:41 +02:00
Laurent MONIN
192c2a9e12 Use parenthesis around macro parameters.
Macros concerned are:
is_inline_element()
is_block_element()
2007-10-12 10:51:49 +02:00
Laurent MONIN
944a8e7bd9 style.(fg|bg) -> style.color.(fg|bg)
Introduce INIT_TEXT_STYLE() macro to initialize struct text_style.
2007-10-10 14:59:15 +02:00
Laurent MONIN
ca6424595b format.(clink|vlink|...) -> format.color.(clink|vlink|...)
It makes more obvious these fields are colors.
2007-10-10 14:37:10 +02:00
Laurent MONIN
6564aec93f Add a new entry Link Info under Link main menu.
It also adds a Link info entry in the link contextual menu.
No key is associated for now, action was named ACT_MAIN_LINK_INFO.
2007-10-10 10:47:24 +02:00
Miciah Dashiel Butler Masters
eacd0b4308 Drop extra definition of start_document_refresh
It must have come with the merge.  Doh.
2007-10-09 14:43:38 +00:00
Miciah Dashiel Butler Masters
bd8a7c4178 Show the elapsed time since the document was loaded in the document info box 2007-10-09 14:16:36 +00:00
Miciah Dashiel Butler Masters
f2f478eb2f Let CSS selectors select non-pairable elements
This necessitates that non-pairable elements be briefly pushed on the stack, so that get_css_selector_for_element sees them, and then popped.

It would be possible to push them only when CONFIG_CSS is defined, as they are otherwise not needed (as evidenced by the fact that we've gone so long without bothering to push them).  However, the performance hit should be small, the necessary #ifdef/#endif wrappers would be pretty ugly, and ideally, the CSS code will someday be in such a state that it can be considered an integral feature.
2007-10-09 14:14:45 +00:00
Miciah Dashiel Butler Masters
13523248ed Merge commit 'origin/elinks-0.12'
Conflicts:

	po/fr.po
	src/document/dom/renderer.c
	src/document/html/parser.c
	src/document/options.c
	src/document/refresh.c
2007-10-09 14:05:03 +00:00
Kalle Olavi Niemitalo
e2cc0bd434 Don't cast qsort comparison function pointers.
Instead, convert the element pointers inside the comparison functions.

The last argument of qsort() is supposed to be of type
int (*)(const void *, const void *).  Previously, comp_links() was
defined to take struct link * instead of const void *, and the type
mismatch was silenced by casting the function pointer to void *.
This was in principle not portable because:

(1) The different pointer types may have different representations.
    In a word-oriented machine, the const void * might include a byte
    selector while the struct link * might not.

(2) Casting a function pointer to a data pointer can lose bits in some
    memory models.  Apparently this does not occur in POSIX-conforming
    systems though, as dlsym() would fail if it did.

This commit also fixes hits_cmp() and compare_dir_entries(), which
had similar problems.  However, I'm leaving alias_compare() in
src/intl/gettext/localealias.c unchanged for now, so as not to diverge
from the GNU version.

I also checked the bsearch() calls but they were all okay, apart from
one that used the alias_compare() mentioned above.
2007-10-06 23:05:05 +03:00
Laurent MONIN
baf2d47a8c Make copyright info independent from translations.
This is an attempt to make it easier to update without
requiring to update all translations.
Copyright info is now set in setup.h using COPYRIGHT_STRING
2007-10-03 11:53:09 +02:00
Laurent MONIN
11e477a63e ELINKS_HOMEPAGE -> ELINKS_WEBSITE_URL 2007-10-03 11:23:29 +02:00
Laurent MONIN
3f48ae491f Add an "Authors" entry to the Help menu.
It displays the ELinks website's authors page.
2007-10-03 11:16:37 +02:00
Miciah Dashiel Butler Masters
04f1ecc3b5 Merge commit 'origin/master' 2007-09-26 16:28:11 +00:00
Miciah Dashiel Butler Masters
a197bde2f6 Really retry forever when connection.retries = 0
This feature has been broken since zas backported it from Links 0.99pre3 2003-04-20.
2007-09-26 16:18:59 +00:00
Miciah Dashiel Butler Masters
aced375440 Really retry forever when connection.retries = 0
This feature has been broken since zas backported it from Links 0.99pre3 2003-04-20.
2007-09-26 16:18:24 +00:00
Laurent MONIN
05fc8f5169 Fix compilation with --disable-css.
Compilation failed due to missing DEBUG_CSS test.
This was introduced in commit 98260f7970
2007-09-24 15:32:42 +02:00
Laurent MONIN
27057926b9 Fix compilation with --disable-css.
Compilation failed due to missing DEBUG_CSS test.
This was introduced in commit 98260f7970
2007-09-21 11:05:40 +02:00
Laurent MONIN
fec10a1846 Revert "format_html_part(): save and restore renderer_context.last_tag_for_newline too."
This reverts commit 60913ba9f9.
This was a bad move, anchors ceased to function correctly.
Reported by Witekfl.
2007-09-19 09:22:44 +02:00
Laurent MONIN
39d9f669c9 Revert "format_html_part(): save and restore renderer_context.last_tag_for_newline too."
This reverts commit 4abce8e363.
This was a bad move, anchors ceased to function correctly.
Reported by Witekfl.
2007-09-19 09:14:53 +02:00
Laurent MONIN
7b6cb249ed Fix compilation using --enable-html-highlight.
It was broken by commit 09cf904814.
Reported by witekfl.
2007-09-17 10:54:52 +02:00
Laurent MONIN
b389d1b20e Revert "Use the new OBJS-unless$(CONFIG_FOO) instead of $(call not,...)"
This reverts commit e07354f5d5.
2007-09-14 17:43:36 +02:00
Kalle Olavi Niemitalo
07535cf886 Define BITTORRENT_NULL_ID in common.c; declare extern in common.h.
This change avoids linker warnings when building with Debian tcc
0.9.23-4 + patch from Debian bug 418360:

      [LD]   src/protocol/bittorrent/lib.o
bittorrent.o: 'BITTORRENT_NULL_ID' defined twice
common.o: 'BITTORRENT_NULL_ID' defined twice
connection.o: 'BITTORRENT_NULL_ID' defined twice
dialogs.o: 'BITTORRENT_NULL_ID' defined twice
peerconnect.o: 'BITTORRENT_NULL_ID' defined twice
peerwire.o: 'BITTORRENT_NULL_ID' defined twice
piececache.o: 'BITTORRENT_NULL_ID' defined twice
tracker.o: 'BITTORRENT_NULL_ID' defined twice
2007-09-14 16:58:16 +02:00
Miciah Dashiel Butler Masters
a46379a931 Move is_in_domain from cookies/cookies.c to protocol/uri.c and export 2007-09-14 16:51:04 +02:00
Jonas Fonseca
e07354f5d5 Use the new OBJS-unless$(CONFIG_FOO) instead of $(call not,...) 2007-09-14 16:48:26 +02:00
Miciah Dashiel Butler Masters
7033247905 Introduce start_document_refreshes()
start_document_refreshes() performs the NULL-pointer checks that
previously all callers to start_document_refresh() must perform
and then calls start_document_refresh().
2007-09-14 16:44:04 +02:00
Jonas Fonseca
8e3c2d6042 Move find_tag to document/document 2007-09-14 16:29:13 +02:00
Laurent MONIN
6c6e75a71d Trim trailing whitespaces. 2007-09-14 15:14:34 +02:00
Laurent MONIN
f0e66866f5 Trim trailing whitespaces. 2007-09-14 15:12:32 +02:00
Jonas Fonseca
890903a65d Compile fix for commit e876df70d8 2007-09-14 15:08:51 +02:00
Petr Baudis
c1b91c7bf3 document/html: Make HTML parser state transparent
Before, *_html_parser_state() operated with struct html_element *. Now, it is
transparent for the renderer (just void *), so that DOM won't have to provide
this struct but will be able to use something internal.

Backported from master.
2007-09-14 15:06:56 +02:00
Petr Baudis
37b20d998c document/html: Move enum html_special_type from parser.h to renderer.h
...since it is renderer interface.
2007-09-14 15:03:14 +02:00
Laurent MONIN
09cf904814 Backport Pasky's changes concerning text_style-related stuff.
It partially includes changes made in following commits:

document/html: struct text_attrib_style -> struct text_style
commit    e133941206

document: struct format_attr -> struct text_style_format
commit    070d335796

document: Unify text style -> screen attribute handling
commit    b66d2bec67

document: Move text_style-related stuff to dedicated format.*
commit    db9431465f
2007-09-14 14:59:37 +02:00
Laurent MONIN
ee503f6c00 Prevent internal errors when terminal width or height are very small
(1x1 was fatal).
2007-09-14 11:49:03 +02:00
Laurent MONIN
e9e8639c8d Improve display of version and features.
Wrap on spaces when features are sent to console using -version,
and let Info dialog do the job in interactive mode.
Insert newlines and remove parenthesis in -version and Info box display.

Backported from master branch.
2007-09-14 10:34:42 +02:00
Laurent MONIN
d6bb586a00 format_html_part(): group int variables declarations 2007-09-14 10:11:44 +02:00
Laurent MONIN
60913ba9f9 format_html_part(): save and restore renderer_context.last_tag_for_newline too. 2007-09-14 10:10:37 +02:00
Laurent MONIN
e914ca85fe Use explicit names for variables in format_html_part().
llm -> saved_last_link_to_move
ltm -> saved_last_tag_to_move
ef  -> saved_empty_format
lm  -> saved_margin
2007-09-14 10:10:09 +02:00
Laurent MONIN
419cd4775e format_html_part(): group int variables declarations 2007-09-14 10:07:32 +02:00
Laurent MONIN
4abce8e363 format_html_part(): save and restore renderer_context.last_tag_for_newline too. 2007-09-14 09:59:34 +02:00
Laurent MONIN
a6f3323a4b Use explicit names for variables in format_html_part().
llm -> saved_last_link_to_move
ltm -> saved_last_tag_to_move
ef  -> saved_empty_format
lm  -> saved_margin
2007-09-14 09:55:43 +02:00
Laurent MONIN
75d47ef957 Drop useless goto/label. 2007-09-14 09:41:51 +02:00
Laurent MONIN
73b1f43468 Drop useless goto/label. 2007-09-14 09:26:39 +02:00
Laurent MONIN
6e89b39ed0 Fix get_opt_bool() call and finish backport of process_head() split. 2007-09-12 23:51:43 +02:00
Miciah Dashiel Butler Masters
bd0a6f6f7d Reflow check_head_for_cache_control 2007-09-12 23:41:37 +02:00
Miciah Dashiel Butler Masters
deb74bd1bd Factor check_head_for_cache_control out of process_head 2007-09-12 23:41:17 +02:00
Miciah Dashiel Butler Masters
4b297a5b03 Factor check_head_for_refresh out of process_head 2007-09-12 23:38:41 +02:00
Miciah Dashiel Butler Masters
23262b3145 Fix process_head to check for cache-control information even if no refresh
Previously, process_head immediately returned if there was no refresh, never giving the cache-control check further down a chance to run.

Also add new tests:

   nocache.html
   refresh+nocache.html
2007-09-12 23:33:40 +02:00
Laurent MONIN
5b28e89026 Extend Use of LWS() macro to parse_old_meta_refresh(). 2007-09-11 17:57:19 +02:00
Laurent MONIN
41ece7a758 Make meta refresh content attribute parsing more tolerant.
Simply search for 'url' marker ignoring anything
before it.
ELinks is now able to follow incorrectly written
meta refresh content attribute with missing ; before
url= parameter.
As an example, try http://akkada.tivi.net.pl/
2007-09-11 17:55:10 +02:00
Jonas Fonseca
8dbd38eded NNTP: Improve listing of articles for groups
It now uses ordered list with the message number as the list item
number. Only the message subject and from field are shown.
2007-09-11 17:01:06 +02:00
Jonas Fonseca
0b0222d64f NNTP: Add support for handling RFC2047 encoded words
Code adapted from git's builtin-mailinfo.c file.
2007-09-11 16:59:56 +02:00
Jonas Fonseca
8393dc901e Bug 744: Make removal of double slashes more protocol specific
Add a boolean protocol flag which says whether "//" in the path
part of an URI can be safely substituted with "/". Be conservative
and enable it only for file://, ftp:// and nntp[s]://. Other
can be turned on later, if needed.

Generalizes the fix from 58b3b1e752.
2007-09-11 14:14:17 +02:00
Jonas Fonseca
5d5f7fc078 NNTP: Fix group listing links having bad URL syntax due to double slashes 2007-09-11 13:50:17 +02:00
Jonas Fonseca
1961a0ca50 NNTP: HTML escape header field values 2007-09-11 13:21:00 +02:00
Laurent MONIN
d650a434b2 Extend Use of LWS() macro to parse_old_meta_refresh(). 2007-09-11 09:30:26 +02:00
Kalle Olavi Niemitalo
db115bfece Add tests for cwd-relative file URIs.
Test 6 currently fails.
2007-09-09 20:06:25 +03:00
Jonas Fonseca
0240c469b7 Merge branch 'elinks-0.12'
Conflicts:

	src/document/dom/renderer.c
2007-09-09 18:25:49 +02:00
Jonas Fonseca
58b3b1e752 Reinstate "canonicalization" of path names for file URIs
This reverts commit 4f0aaa166e
and insert check for the "//" -> "/" change only to occur for
file:// URIs. This fixes the recent reports on broken handling
of relative file URIs starting with "..".
2007-09-09 18:17:25 +02:00
Laurent MONIN
4a6a6909ea Make meta refresh content attribute parsing more tolerant.
Simply search for 'url' marker ignoring anything
before it.
ELinks is now able to follow incorrectly written
meta refresh content attribute with missing ; before
url= parameter.
As an example, try http://akkada.tivi.net.pl/
2007-09-08 21:03:22 +02:00
Miciah Dashiel Butler Masters
dbacc9ead2 Support document refresh in frames
Introduce reload_frame, which takes a frame @name argument in addition to the arguments that reload takes.
2007-09-06 20:47:17 +00:00
Miciah Dashiel Butler Masters
2676fcc2cd do_document_refresh: take document_view instead of session 2007-09-06 19:14:35 +00:00
Miciah Dashiel Butler Masters
66d62ca11b start_document_refresh: take document_view instead of session 2007-09-06 19:13:25 +00:00
Miciah Dashiel Butler Masters
a1a8696cce Introduce start_document_refreshes
start_document_refreshes performs the NULL-pointer checks that previously all callers to start_document_refresh must perform and then calls start_document_refresh.
2007-09-06 18:52:23 +00:00
Miciah Dashiel Butler Masters
a8f28f21c9 Reflow check_head_for_cache_control 2007-09-04 12:13:20 +00:00
Miciah Dashiel Butler Masters
2a2aad15f9 Factor check_head_for_cache_control out of process_head 2007-09-04 12:11:37 +00:00
Miciah Dashiel Butler Masters
fc12376bf5 Factor check_head_for_refresh out of process_head 2007-09-04 12:09:19 +00:00
Miciah Dashiel Butler Masters
2d0180d1e7 Fix process_head to check for cache-control information even if no refresh
Previously, process_head immediately returned if there was no refresh, never giving the cache-control check further down a chance to run.

Also add new tests:

   nocache.html
   refresh+nocache.html
2007-09-04 12:08:08 +00:00
Miciah Dashiel Butler Masters
34c9389e9b Display cache mode in the cache manager's info box for cache entries 2007-09-04 11:54:18 +00:00
Kalle Olavi Niemitalo
cdf2d8181c More missing va_ends.
Somehow, these slipped from commit
af14d00d17 yesterday.
2007-09-04 10:26:57 +03:00
Kalle Olavi Niemitalo
16d4e81f1b Merge commit 'pasky.or.cz/elinks-0.12' into elinks-0.12 2007-09-03 21:04:40 +03:00
Kalle Olavi Niemitalo
c44739e039 Refer to bug 96 in a comment. 2007-09-03 21:02:58 +03:00
Kalle Olavi Niemitalo
a59f44c4b5 Document Unicode characters for ACS_S[1379]. 2007-09-03 21:01:49 +03:00
Kalle Olavi Niemitalo
af14d00d17 Add missing va_ends.
I'm not sure they're needed anywhere nowadays, but still.
2007-09-03 21:01:11 +03:00
Witold Filipczyk
7f49eda39e DOM renderer: off by one error. 2007-09-02 20:44:36 +00:00
Miciah Dashiel Butler Masters
596b9b4d72 Fix compiler warning
Initialise @td to NULL in textarea_edit.  Assert @td in done_textarea_data while we're at it.
2007-09-01 23:46:37 +00:00
Miciah Dashiel Butler Masters
e0f0112de9 Fix -dump with multicell characters 2007-09-01 17:04:58 +00:00
Miciah Dashiel Butler Masters
e1f0c10926 Drop unneeded #include "util/lists.h" from viewer/text/textarea.c 2007-09-01 12:55:02 +00:00
Miciah Dashiel Butler Masters
312a48a24a Merge branch 'master' of ssh://pasky.or.cz/srv/git/elinks 2007-09-01 12:50:57 +00:00
Miciah Dashiel Butler Masters
14af901277 In free_textarea_data, set term->textarea_data to NULL 2007-09-01 12:49:02 +00:00
Miciah Dashiel Butler Masters
92abd48405 Drop EVENT_TEXTAREA, use EVENT_RESIZE instead
When returning from an external program, unblock_itrm_x in the slave process will send a resize event to the master process for the slave terminal.  In handle_interlink_event, when we receive this resize event, we can check whether we need to call textarea_edit.
2007-09-01 12:46:02 +00:00
Miciah Dashiel Butler Masters
a66f6f8c90 Make the textarea_data member of struct terminal opaque
Move the definition of struct textarea_data back to src/viewer/text/textarea.c.
2007-09-01 12:02:21 +00:00
Miciah Dashiel Butler Masters
ac230ebc08 Add free_textarea_data wrapper for done_textarea_data and use in destroy_terminal
Unexport done_textarea_data.
2007-09-01 11:58:29 +00:00
Miciah Dashiel Butler Masters
6469344727 Export done_textarea_data and call in destroy_terminal to prevent leak
Previously, if a terminal crashed with an external editor open, the struct textarea_data would never be freed
2007-09-01 09:45:56 +00:00
Miciah Dashiel Butler Masters
8dc000e313 Set term_->textarea_data = NULL when taking the pointer in textarea_edit 2007-09-01 09:42:54 +00:00
Miciah Dashiel Butler Masters
d384f93522 Factor done_textarea_data out of textarea_edit 2007-09-01 09:24:22 +00:00
Miciah Dashiel Butler Masters
8c5dc2d161 Factor init_textarea_data out of textarea_edit 2007-09-01 09:20:40 +00:00
Miciah Dashiel Butler Masters
cc67edbe1c Drop @textarea_editor global 2007-09-01 09:10:54 +00:00
Miciah Dashiel Butler Masters
d4c262694b Move pointers to struct textarea_data from linked-list to terminal structure 2007-09-01 09:02:01 +00:00
Witold Filipczyk
7726e33b0a bug 181: Simplification. Reverted changes causing incompatibility. 2007-09-01 09:00:36 +00:00
Miciah Dashiel Butler Masters
1000f88748 bug 181: Allow edit textareas using an external editor on slave terminals.
Added EVENT_TEXTAREA used to notify the master terminal
about end of execution of an external program on a slave terminal.
The format of data sent to the master terminal by exec_on_slave_terminal
has changed. Now after 0, fg the value of term is sent.
Therfore this release of ELinks is incompatible with previous releases.

Patch by Witold Filipczyk, taken from his witekfl branch.

Conflicts:

	src/viewer/text/textarea.c
2007-09-01 09:00:33 +00:00
Jonas Fonseca
8489f04cc9 renderer: Fix unnecessary inclusions of document/html/renderer 2007-08-31 15:43:56 +02:00
Jonas Fonseca
5d34b4bff6 Move find_tag to document/document 2007-08-31 15:43:54 +02:00
Miciah Dashiel Butler Masters
69cf0d06e2 get_opt_: only look for a domain-specific option if no session-specific one found 2007-08-31 09:48:58 +00:00
Miciah Dashiel Butler Masters
3dbdde0f8f Fix RSS rendering
Fix inverted boolean logic from commit 8e954e9f61 'rss: check for allocation failure of struct rss_renderer' that totally broke RSS rendering.
2007-08-31 00:08:19 +00:00
Miciah Dashiel Butler Masters
9f6ce80da3 Add config/domain.[ch] (doh!) 2007-08-30 23:36:20 +00:00
Miciah Dashiel Butler Masters
f04bc1c7d1 init_template_by_style: collapse some case statements
After commit b66d2bec67 'document: Unify text style -> screen attribute handling', the case statements for CSS_PT_FONT_WEIGHT, CSS_PT_FONT_STYLE, and CSS_PT_TEXT_DECORATION all have common code and therefore collapse nicely.
2007-08-30 23:31:20 +00:00
Miciah Dashiel Butler Masters
5191ed82a1 Move domain-specific options code to config/domain
For great modularity!
2007-08-30 22:03:14 +00:00
Miciah Dashiel Butler Masters
7f247ec293 Factor get_domain_option_from_session out of get_opt_. 2007-08-30 21:50:55 +00:00
Miciah Dashiel Butler Masters
d9ee9464f4 If it still doesn't work, I'll try compiling it before committing the next attempt. 2007-08-30 21:48:58 +00:00
Miciah Dashiel Butler Masters
7a96a2eda9 Fix a build error from the last change to textarea_edit
Just a silly thinko.
2007-08-30 21:48:03 +00:00
Miciah Dashiel Butler Masters
860d3cc5ef Suppress a warning about an uninitialised value in parse_set_common 2007-08-30 21:42:57 +00:00
Miciah Dashiel Butler Masters
bfe6243bc1 Allow session- or domain-specific settings for document.brose.forms.editor 2007-08-30 21:32:21 +00:00
Miciah Dashiel Butler Masters
0e0bacf0d3 Merge branch 'master' of ssh://pasky.or.cz/srv/git/elinks
Conflicts:

	src/document/options.c
2007-08-30 21:13:43 +00:00
Miciah Dashiel Butler Masters
91947860f2 Check session- and domain-specific settings for many options
Pass the session with some get_opt_* calls.  These are the low-hanging fruit.  Some places will be difficult because we don't have the session or for other reasons.
2007-08-30 21:11:51 +00:00
Miciah Dashiel Butler Masters
360b4ebfee textarea_edit: convert unnecessary checks to assertions
If @op == 0, then @fs_, @doc_view_, @link_, and @term_ should all be set.  Assert them instead of checking them with if statements.
2007-08-30 21:09:14 +00:00
Miciah Dashiel Butler Masters
06adbbc524 Add domain-specific options saving and look-up
Note that this is the infrastructure, but all relevant get_opt_* calls must be changed to pass the session so that the domain-specific options are looked up.

Add @want_domain parameter to parse_set_common and read in the domain-name if the flag is set.

Add parse_set_domain wrapper for parse_set_common.

Add "set_domain" configuration directive with the following syntax: set_domain domain option = value

Modify create_config_string and smart_config_output_fn to spit out domain-specific option trees.

Add @smart_config_output_fn_domain global variable to facilitate this.

Define structure domain_tree and define list @domain_trees.

Add routine get_domain_tree to find or, if necessary, create the shadow tree for the given domain name.

Add routine get_domain_option search for an option in all domain shadow-trees and return the option in the best matching domain tree.

Modify get_opt_ to use get_domain_option to check for domain-specific options.

Add clean-up routine done_domain_trees, called on exit, to free any domain trees.
2007-08-30 21:04:31 +00:00
Miciah Dashiel Butler Masters
5ada24f3ef update_cache_document_options: take @ses and pass it to get_opt calls
change_hook_active_link: pass update_cache_document_options @ses.

Now when changing the global settings, it will not simply copy the new values for the global settings to the document-options cache, but also check session-specific settings.  This doesn't really matter yet, since the options in question can't be set on a per-session basis, but is in preparation for future changes.
2007-08-30 19:19:57 +00:00
Jonas Fonseca
19f3fd686c Compile fix for commit e876df70d8 2007-08-29 20:51:43 +02:00
Miciah Dashiel Butler Masters
f5e6ed4dd7 Drop @options parameter from create_config_string and write_config_file
Hard-code it to config_options.
2007-08-29 13:43:15 +00:00
Miciah Dashiel Butler Masters
d1e16e1066 get_option_shadow: Set OPT_TOUCHED on the new option 2007-08-29 13:34:43 +00:00
Miciah Dashiel Butler Masters
9a5f76dbd5 Move is_in_domain from cookies/cookies.c to protocol/uri.c and export 2007-08-29 13:33:19 +00:00
Miciah Dashiel Butler Masters
7f042a49d7 Factor parse_set_common out of parse_set 2007-08-29 13:30:40 +00:00
Jonas Fonseca
8e954e9f61 rss: check for allocation failure of struct rss_renderer 2007-08-29 12:05:10 +02:00
Jonas Fonseca
6ebcce0655 rss: document the rss_renderer members 2007-08-29 12:02:36 +02:00
Jonas Fonseca
f2db9c07ed rss: remove the horrible text collection code which didn't do anything 2007-08-29 11:27:54 +02:00
Jonas Fonseca
86ffd94237 rss: simplify rendering to be done while parsing 2007-08-29 11:21:06 +02:00
Kalle Olavi Niemitalo
78f733c6c1 More doc comments about coordinates. 2007-08-29 09:57:18 +03:00
Jonas Fonseca
0a5ee2d3de rss: move the rendering code above the push/pop handlers 2007-08-29 02:29:58 +02:00
Jonas Fonseca
51fec0ec52 rss: rename rss_renderer variables from data to rss 2007-08-29 02:26:53 +02:00
Jonas Fonseca
16a4110467 rss: minor cleanups 2007-08-29 02:15:06 +02:00
Jonas Fonseca
19b271e417 rss: remove check for rss_renderer->text that is already done above 2007-08-29 02:13:26 +02:00
Jonas Fonseca
8c4191fe87 rss: assert that node->parent is always set 2007-08-29 02:13:10 +02:00
Jonas Fonseca
af4b7bed84 Use the new OBJS-unless$(CONFIG_FOO) instead of $(call not,...) 2007-08-29 01:57:01 +02:00
Petr Baudis
6b05ddb762 Remove unnecessary document/html/parser.h includes 2007-08-29 00:08:05 +02:00
Petr Baudis
e876df70d8 document/html: Make HTML parser state transparent
Before, *_html_parser_state() operated with struct html_element *. Now, it is
transparent for the renderer (just void *), so that DOM won't have to provide
this struct but will be able to use something internal.
2007-08-28 23:35:00 +02:00
Petr Baudis
e5539a9937 document/html: Move enum html_special_type from parser.h to renderer.h
...since it is renderer interface.
2007-08-28 22:19:33 +02:00
Petr Baudis
a74af825e2 document/dom/rss.c: Add extra styles
Style aux got split to styles author, author-date-sep and date.
2007-08-28 21:34:32 +02:00
Petr Baudis
b457af1984 document/dom/source.c: Trivial simplification 2007-08-28 21:31:49 +02:00
Petr Baudis
baeb0cb0d5 document/dom: Move stylesheet parsing out of style loop
...for better clarity of the document initialization functions.
2007-08-28 21:31:25 +02:00
Petr Baudis
a9619bce80 document/renderer.c: Fix description 2007-08-28 21:28:32 +02:00
Petr Baudis
dc0cf23631 document/dom: Simplify init_template_by_style() usage
It doesn't take the useless styling information but just uses options->default_style.
2007-08-28 21:28:03 +02:00
Petr Baudis
55495ab655 document: Turn options' default_fg, default_bg to default_style
...as struct text_style. This way it might be possible later to
add other default formatting attributes by CSS and it allows
quite a code simplification in the DOM renderer.
2007-08-28 21:16:44 +02:00
Petr Baudis
db9431465f document: Move text_style-related stuff to dedicated format.*
We will need to include it from options.h and the include chain just
wouldn't work. And it feels like a hack to have it in renderer.h anyway.
2007-08-28 21:05:00 +02:00
Petr Baudis
b66d2bec67 document: Unify text style -> screen attribute handling
Currently, all DOM, HTML and plain renderers had their own routine for
conversion from text style to screen attribute. This moves text_style and
text_style_format from html/parser.h to renderer.h and introduces new generic
routine get_screen_chracter_template() that is used by all the specific
rendering engines.
2007-08-28 21:02:08 +02:00
Jonas Fonseca
8376feb6b1 Fix protocol/test ignore rule for the uri-test program 2007-08-28 20:35:14 +02:00
Jonas Fonseca
bbd7c8354a Move get_test_opt to util/test.h and use throughout test programs 2007-08-28 20:34:17 +02:00
Petr Baudis
38ee8a137c document/dom/util.*: Make init_template() private 2007-08-28 20:32:15 +02:00
Jonas Fonseca
c6a223c8dd dom/test: properly test test option matches in get_test_opt 2007-08-28 20:22:29 +02:00
Petr Baudis
070d335796 document: struct format_attr -> struct text_style_format 2007-08-28 20:17:53 +02:00
Jonas Fonseca
5d88ea78f9 dom/test: rename get_opt to get_test_opt to avoid namespace problems 2007-08-28 20:16:27 +02:00
Petr Baudis
e133941206 document/html: struct text_attrib_style -> struct text_style 2007-08-28 20:15:30 +02:00
Jonas Fonseca
0f53941fef Introduce test library in util/test.h containing the die() function
Fix the die() function to exit with EXIT_FAILURE value as pointed
out by Kalle on elinks-dev in <87tzqkxhlp.fsf@Astalo.kon.iki.fi>.
2007-08-28 20:14:08 +02:00
Petr Baudis
46e44f9298 document/dom: Move renderer-specific data from the generic struct dom_renderer
This is hopefully the final step to have the specific renderers completely
separated and self-contained.
2007-08-28 19:58:08 +02:00
Miciah Dashiel Butler Masters
8a8be53452 parse_set and parse_unset: restore stomped char before returning
The parsing in parse_set and parse_unset saves, overwrites with a NUL, and restores a character in the string that is being parsed.  If there is a malloc failure between overwriting and restoring, the restore is not done.  This commit changes that behaviour to restore before returning.
2007-08-28 17:47:59 +00:00
Petr Baudis
91e512cca8 document/dom: Move URL regexp setup from general code to source renderer 2007-08-28 19:40:30 +02:00
Petr Baudis
afb9b6daa5 document/dom: Move styles initialization out of init_dom_renderer()
Now, CSS is initialized separately for each of the renderers, so that
also RSS doesn't just choose styles of random DOM node types.

init_template_by_style() is introduced as the common backend for
loading CSS properties.
2007-08-28 19:38:13 +02:00
Miciah Dashiel Butler Masters
fa12b10e26 Introduce session- (tab-)specific options
Introduce session-specific options for those options that have toggle-... actions.
2007-08-28 17:29:41 +00:00
Miciah Dashiel Butler Masters
fd22173b29 Introduce option tree shadowing
Introduce get_option_shadow.  This routine takes an option, the tree under which that option resides, and another tree.  It returns a corresponding option with parallel ancestry in the second tree, creating that option and ancestry if it does not already exist.

Add enum copy_option_flags.

Add the CO_NO_LISTBOX_ITEM flag, which is used to suppress listbox creation for shadowed trees.

Add the CO_SHALLOW flag, which is used to suppress the duplication of unwanted children for shadowed trees.

Add a flags parameter to copy_option and tree_dup (and out of necessity, struct option_type_info and str_dup).
2007-08-28 17:25:24 +00:00
Miciah Dashiel Butler Masters
ea372bd0cd get_opt_*: Add ses parameter
Add a session parameter to get_opt_ and its wrappers in preparation for session-specific and domain-specific options.
2007-08-28 17:24:59 +00:00
Petr Baudis
494e4a1019 document/dom/rss.c: Explain what normalizing is
As insighted by Jonas.
2007-08-28 18:12:41 +02:00
Petr Baudis
2480d1ae0a Merge branch 'master' of /srv/git/elinks 2007-08-28 17:43:14 +02:00
Petr Baudis
445a0ae600 document/dom: Some symbols should be static 2007-08-28 17:43:01 +02:00
Petr Baudis
4003e6decf document/dom: Split SGML (HTML) source renderer to source.* 2007-08-28 17:41:55 +02:00
Petr Baudis
556ae45b00 document/dom: Split RSS renderer to rss.* 2007-08-28 17:33:22 +02:00
Petr Baudis
144bd77240 document/dom: Split rendering utilities to util.*
These are functions that are commonly used by the individual renderers to put stuff on the canvas etc.
2007-08-28 17:12:23 +02:00
Miciah Dashiel Butler Masters
3975d28bce Merge commit 'origin/elinks-0.12'
Conflicts:

	doc/Doxyfile.in
	src/protocol/bittorrent/common.h
2007-08-28 14:47:39 +00:00
Miciah Dashiel Butler Masters
80259bc53e Revert "justify_line(): Re-add wordlen == 0 test"
This reverts commit 18cdce6c39.

elinks-0.12 has a different fix, and I will soon merge in that branch.
2007-08-28 13:41:14 +00:00
Petr Baudis
f88f49d955 document/dom: Explain that only renderer lives here 2007-08-28 15:15:13 +02:00
Kalle Olavi Niemitalo
40afaae7d6 Doc comments about coordinate systems.
So that I may better understand Witek's patches.
2007-08-28 09:52:37 +03:00
Petr Baudis
18cdce6c39 justify_line(): Re-add wordlen == 0 test
This fixes ELinks crashing on this with terminal width e.g. 103:

	<p align="justify">
	xxxx xxxx xxxx xxxxx xxxxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx
	xxxxx xxxx xxxxxxx xxx xxxxxxx xxx xxxx xxxx xxxx xx xxxx x xxx xxxx
	xxxx xx xxxx xxxx xxxx xxx&mdash;xxx xxxx xx&mdash;xxx xxxx<em> </em>x
	xxxx </p>

This test was removed for an unknown reason in commit
b1cc717789.

Discovered together with Miciah.
2007-08-26 19:06:26 +02:00
Miciah Dashiel Butler Masters
1fd2a77416 Update comment: html_form_control -> html_special_form_control
Update a comment in encode_multipart, which refers to html_form_control, which has since been renamed to html_special_form_control.

The comment was added with this commit:

   commit b4dee890a61a6c8a27a8e4cd1dc3b3b93f1cdb08
   Author: Petr Baudis <pasky@ucw.cz>
   Date:   Fri May 10 13:26:55 2002 +0000

       Don't decode and back encode hidden form items (by mikulas, from 0.97).

The function was renamed with this commit:

   commit c9d72739c715b3b0c7c6fec582780c1e8f444fc4
   Author: Petr Baudis <pasky@ucw.cz>
   Date:   Sat Dec 18 02:22:28 2004 +0000

       html_(tag|form*) -> html_special_\1, to naming prevent conflicts with HTML element handlers. As suggested by Jonas.
2007-08-12 11:23:49 +00:00
Jonas Fonseca
5f18156708 Change protocol/test to use the shell-based test infrastructure 2007-08-10 13:30:28 +02:00
Jonas Fonseca
b3ca6a9e1f Add rule to make (c)tags file
Also fix (e)TAGS rule to work when srcdir == builddir and
Remove the tag files during clean.
2007-08-10 10:26:14 +02:00
Jonas Fonseca
36f59cacd6 Ignore tags file 2007-08-08 14:25:38 +02:00
Jonas Fonseca
d083619988 Fix doxygen warning about list end marker 2007-08-08 14:24:55 +02:00
Jonas Fonseca
1079c95b9d Integrate Doxygen better in the build system
This change:

 - Adds a check for the doxygen program to configure.
 - Moves the Doxyfile from src/Doxyfile to doc/Doxyfile.in.
 - Generates a doc/Doxyfile from doc/Doxyfile.in inserting
   an absolute path to the source directory, so that it
   also works when builddir != srcdir.
 - Adds `make api` rule for running doxygen; it depends on
   api/doxygen file which is never created to force the rule
   to always run.
2007-08-08 14:23:21 +02:00
Jonas Fonseca
4e710a3aa6 Doxygenate main header files of src/protocol/bittorrent 2007-08-08 13:20:26 +02:00
Jonas Fonseca
ab5e7f116b Update hierbox comments and make them ready for Doxygen
Noticed by kon.
2007-08-08 13:18:53 +02:00
Jonas Fonseca
fd9f1f8f6d Doxify bfu/style
Also fixes an old misleading comment noticed by kon.
2007-07-31 14:39:12 +02:00
Jonas Fonseca
b831ee64aa Fix dom_node_attribute comment mentioning non-existant struct
Noticed by kon.
2007-07-31 14:37:41 +02:00
Kalle Olavi Niemitalo
dc2cac851d itrm: Don't mention bug 776 which was already fixed. 2007-07-31 14:14:08 +03:00
Kalle Olavi Niemitalo
cc813e8541 Doxygen: minor changes in src/terminal/itrm.h 2007-07-31 14:12:28 +03:00
Kalle Olavi Niemitalo
870df797cf Doxygen: Escape some HTML tags. 2007-07-31 13:48:20 +03:00
Kalle Olavi Niemitalo
76c6f38169 Doxygen: Begin commands with @ not \. 2007-07-31 13:47:12 +03:00
Kalle Olavi Niemitalo
0cb047b298 Bug 968: Don't use copy_chars in justify_line.
All the needed memory has been allocated before the loop so we can use
copy_screen_chars() directly.  This avoids the assertion failure in
copy_chars() for width==0 and should be a bit faster too.  According
to ISO/IEC 9899:1999 7.21.1p2, memcpy() doesn't copy anything if n==0
(but the pointers must be valid).
(original 'git cherry-pick' arguments: cherry-pick bug968-att394)
2007-07-30 16:43:46 +03:00
Kalle Olavi Niemitalo
fd902e81da Rewrite wiki to en.wikipedia.org, avoid server bug.
<http://www.wikipedia.org/w/wiki.phtml?search=sue%20lawley>
incorrectly redirects to
<http://en.wikipedia.org/w/wiki.phtml?search=sue%2520lawley>
which searches for "sue%20lawley" rather than "sue lawley".
By using en.wikipedia.org directly, we avoid the server bug.
Prompted by an elinks-users post on 2007-07-27.

I asked on #wikimedia-tech, and www.wikipedia.org does always
redirect to en.wikipedia.org; it does not guess any other
language based on headers or IP addresses or such.  Also, the
redirection exists only for compatibility, and skipping it
avoids a few roundtrips to the server.  So this change is good
even if the server is eventually fixed.
2007-07-30 15:07:20 +03:00
Kalle Olavi Niemitalo
bf63228e56 Doxygen: Define CONFIG_ECMASCRIPT and CONFIG_ECMASCRIPT_SEE. 2007-07-29 19:45:55 +03:00
Kalle Olavi Niemitalo
21052fafb0 Doxygen: more links in terminal/screen.c 2007-07-29 13:02:02 +03:00