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

814 Commits

Author SHA1 Message Date
Kalle Olavi Niemitalo
fd7968e638 Bug 698: Keep forms contiguous and non-overlapping and start from 0.
In document.forms, each struct form has form_num and form_end members
that reserve a subrange of [0, INT_MAX] to that form.  Previously,
multiple forms in the list could have form_end == INT_MAX and thus
overlap each other.  Prevent that by adjusting form_end of each form
newly added to the list.

Revert 438f039bda,
"check_html_form_hierarchy: Old code was buggy.", which made
check_html_form_hierarchy attach controls to the wrong forms.
Instead, construct the dummy form ("for those Flying Dutchmans") at
form_num == 0 always before adding any real forms to the list.
This prevents the assertion failure by ensuring that every possible
form_control.position is covered by some form, if there are any forms.

Add a function assert_forms_list_ok, which checks that the set of
forms actually covers the [0, INT_MAX] range without overlapping,
as intended.  Call that from check_html_form_hierarchy to detect
any corruption.

I have tested this code (before any cherry-picking) with:
- bug 613 attachment 210: didn't crash
- bug 714 attachment 471: didn't crash
- bug 961 attachment 382: didn't crash
- bug 698 attachment 239: all the submit buttons showed the right URLs
- bug 698 attachment 470: the submit button showed the right URL

(cherry picked from commit 386a5d517b,
 with conflicts)
2008-07-25 22:31:35 +03:00
Kalle Olavi Niemitalo
2aec302d47 1030: Wrap get_search_region_from_search_nodes in #ifdef HAVE_REGEX_H
This change avoids the following error:

gcc -DHAVE_CONFIG_H -I../../.. -I/home/Kalle/src/elinks-0.11/src -I/home/Kalle/prefix/include -I/usr/include/smjs -I/usr/include -I/usr/include/lua50 -I/usr/include -I/usr/include -O0 -ggdb -Wall -Wall -Werror -fno-strict-aliasing -Wno-pointer-sign -Wno-address -fno-strict-overflow -o search.o -c /home/Kalle/src/elinks-0.11/src/viewer/text/search.c
cc1: warnings being treated as errors
/home/Kalle/src/elinks-0.11/src/viewer/text/search.c:257: warning: 'get_search_region_from_search_nodes' defined but not used
make[3]: *** [search.o] Error 1
make[3]: Leaving directory `/home/Kalle/build/i686-pc-linux-gnu/elinks-0.11/src/viewer/text'

get_search_region_from_search_nodes is called only from
search_for_pattern, which already was inside #ifdef HAVE_REGEX_H.
2008-07-14 22:26:38 +03:00
Witold Filipczyk
442b0d83b0 1030: Fixed issue with undefined HAVE_REGEX_H. 2008-07-14 22:19:01 +03:00
Kalle Olavi Niemitalo
76c89a6961 config: Count backslashed newlines in str_rd.
If a newline has a backslash in front of it, then str_rd replaces it
with a space.  However, the newline was in the original config file,
so the line number must still be incremented.
(cherry picked from commit 76d803bbb9)
2008-07-11 18:31:50 +03:00
Kalle Olavi Niemitalo
a352ac2c64 config: Fix the "include" command.
Previously, it only pretended to rewrite the configuration file, so it
set or cleared OPT_MUST_SAVE but never changed or output any options.
Now, it actually sets the options when ELinks is loading the
configuration file.  Also, when ELinks is rewriting the configuration
file, it now compares the values in the included file to the current
values of the options, and sets or clears OPT_MUST_SAVE accordingly.
(cherry picked from commit 054852ae23)
2008-07-11 18:29:02 +03:00
Kalle Olavi Niemitalo
a4fdf122d1 config: Access OPT_MUST_SAVE in the real option, not alias.
So, if elinks.conf contains a "set" command for an alias and ELinks
updates that, it now knows it doesn't have to append another "set"
command for the underlying option.
(cherry picked from commit 92b430f3dc)
2008-07-11 18:29:02 +03:00
Kalle Olavi Niemitalo
cc2ce681e3 config: Negate the value in redir_rd too.
So if ELinks is rewriting a configuration file that contains a "set"
command for a negated alias, then it properly writes the value of the
alias, rather than the value of the underlying option.
(cherry picked from commit c47d3798a3)
2008-07-11 18:29:02 +03:00
Kalle Olavi Niemitalo
a1769e2377 config: In redir_set, negate the incoming value.
That is, let the setter function of the underlying option store the
negated value.  Previously, redir_set used to tweak the value of the
option after it has already called the underlying setter.
(cherry picked from commit 2dbe6ec34f)
2008-07-11 18:29:01 +03:00
Kalle Olavi Niemitalo
77755cf684 config: Rewrite "set" to "unset" and vice versa.
Also, replace OPT_WATERMARK with OPT_MUST_SAVE, which has the opposite
meaning.

Watermarking of aliases does not yet work correctly in this version.
Neither does the "include" command.
(cherry picked from commit 7cdbc908d8)
2008-07-11 18:29:01 +03:00
Kalle Olavi Niemitalo
841153b625 config: Reset OPT_TOUCHED flags after a successful save.
Previously, they were reset by smart_config_string(), which was not
called if the value of the option was saved by rewriting an existing
command in elinks.conf.  Also, it is better to reset the flags only
after the file operations have actually succeeded.
(cherry picked from commit 6bd961246a)
2008-07-11 18:29:01 +03:00
Kalle Olavi Niemitalo
b2c11e21c9 config: In saving style 2, save deleted options too.
Previously, ELinks set the OPT_WATERMARK flag in all deleted options
when config.saving_style was 2, thus mostly preventing them from being
saved.  This had the unfortunate consequence that if you started with
no elinks.conf, set config.saving_style = 2, deleted some built-in
option (e.g. a URL rewriting rule), saved the settings, and restarted
ELinks, then the built-in option would reappear.
(cherry picked from commit ab8ef9698f)
2008-07-11 18:29:00 +03:00
Kalle Olavi Niemitalo
2e71908995 config: Let mirroring be implicit unless values are rewritten.
(cherry picked from commit 6d55be2043)
2008-07-11 18:29:00 +03:00
Kalle Olavi Niemitalo
bfa41cef38 config: Rearrange mirror-or-not checks.
(cherry picked from commit 72de752f84)
2008-07-11 18:29:00 +03:00
Kalle Olavi Niemitalo
1841d8f399 config: Let "unset" delete built-in options too.
(cherry picked from commit 661dda04c9)
2008-07-11 18:28:59 +03:00
Kalle Olavi Niemitalo
6ef4f017be config: Unsetting a missing option is not an error.
(cherry picked from commit 2c9d966c99)
2008-07-11 18:28:59 +03:00
Kalle Olavi Niemitalo
34c91ea021 config: Remember the address and length of the option name.
A later commit will take advantage of this.
(cherry picked from commit 3f077d109a)
2008-07-11 18:28:59 +03:00
Kalle Olavi Niemitalo
0c8c9cc16f config: More cleverly skip unrecognized or malformed commands.
(cherry picked from commit e7bd23ff37)
2008-07-11 18:28:58 +03:00
Kalle Olavi Niemitalo
f67ddcf851 config: Skip values of unrecognized options.
To avoid parsing them as commands.
(cherry picked from commit e06416d248)
2008-07-11 18:28:58 +03:00
Kalle Olavi Niemitalo
f4e8682193 config: Report errors before the line number is lost.
(cherry picked from commit edad2ddccd)
2008-07-11 18:28:58 +03:00
Kalle Olavi Niemitalo
b7ff11f8d2 config, Bug 503: Keep track of what has been mirrored.
(cherry picked from commit 1f0c361ead,
 fixing the obvious typo)
2008-07-11 18:28:57 +03:00
Kalle Olavi Niemitalo
9dcece750f config: Add struct conf_parsing_state.
(cherry picked from commit 4c64afec26,
 reinserting the parse_config_file change omitted from the previous
 cherry-pick)
2008-07-11 18:28:57 +03:00
Kalle Olavi Niemitalo
0a5652da1c config: Reduce the interface offered to exmode.
(cherry picked from commit 63e82e68e4,
 but removed the parse_config_file change that broke the build)
2008-07-11 18:28:57 +03:00
Kalle Olavi Niemitalo
e4243bd8a3 config: Use memacpy instead of stracpy.
So there is no need to substitute a '\0' into the string, and undo
that afterwards.
(cherry picked from commit 912cff7975)
2008-07-11 18:28:56 +03:00
Kalle Olavi Niemitalo
fafe6583e8 config: Fix two bogus end-of-file checks.
(cherry picked from commit 753aa3054b)
2008-07-11 18:28:56 +03:00
Kalle Olavi Niemitalo
1eeb2b198a config: Don't mem_free(NULL).
(cherry picked from commit 09829a0b52)
2008-07-11 18:28:56 +03:00
Kalle Olavi Niemitalo
3c000d2c2e config: Plug some memory leaks in error handling.
(cherry picked from commit c92cd01e0b)
2008-07-11 18:28:55 +03:00
Kalle Olavi Niemitalo
ffb9321496 config: Explain why get_opt_rec() does not follow OPT_ALIAS.
(cherry picked from commit 4960c65f20)
2008-07-11 18:28:55 +03:00
Kalle Olavi Niemitalo
d67eddc93c config: Swap the "unknown command" and "parse error" messages.
They should be in the same order as in enum parse_error.
(cherry picked from commit 1d16e90dca)
2008-07-11 18:28:55 +03:00
Kalle Olavi Niemitalo
4e0e5cbcb3 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.
(cherry picked from commit b216a21b79)
2008-07-11 18:28:54 +03:00
Kalle Olavi Niemitalo
50aea7c94b config: more const in elinks.conf parsing
(cherry picked from commit 9becd108a8)
2008-07-11 18:28:54 +03:00
Kalle Olavi Niemitalo
23b843ae64 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.
(cherry picked from commit f8863183b8)
2008-07-11 18:28:53 +03:00
Jonas Fonseca
9cd19d885f Remove unused add handler in the option_type_info struct
(cherry picked from commit 7fe7b42093)
2008-07-11 18:28:53 +03:00
Laurent MONIN
89acb8f534 INT/LONG: introduce long_wr() and long_set() and use them instead of
num_wr() and num_set() for options of type OPT_LONG.
(cherry picked from commit 9412cc77f0)
2008-07-11 18:28:53 +03:00
Kalle Olavi Niemitalo
a6f556d667 const in name_to_language
(cherry picked from commit 11e9a816f5)
2008-07-11 18:28:53 +03:00
Kalle Olavi Niemitalo
bd6c562a73 const in get_cp_index
(cherry picked from commit cb90ed94f0)
2008-07-11 18:28:52 +03:00
Kalle Olavi Niemitalo
b105694db3 const in decode_color
(cherry picked from commit f02e471762)
2008-07-11 18:28:52 +03:00
Kalle Olavi Niemitalo
2a1fb06d54 const in fastfind_search
(cherry picked from commit 3f508a9803)
2008-07-11 18:28:52 +03:00
Kalle Olavi Niemitalo
4c89e80c67 Make input data and source file names const in memacpy and stracpy.
(cherry picked from commit 176bbe83b6)
2008-07-11 18:28:51 +03:00
Kalle Olavi Niemitalo
20bc99173a Make many string parameters const in the memory leak detector.
(cherry picked from commit 882d179fc8)
2008-07-11 18:28:51 +03:00
Kalle Olavi Niemitalo
b7450c7095 Make errfile point to const.
(cherry picked from commit 251dcb7f9f)
2008-07-11 18:28:51 +03:00
Kalle Olavi Niemitalo
555dbf7da0 Bug 1027, SMJS: make null mean "none" in elinks.keymaps
elinks.keymaps.main["/"] = null;
used to crash ELinks with a segfault in JS_ObjectIsFunction.
Fix that by recognizing JSVAL_NULL explicitly and treating it as "none".
Likewise, if keymap_get_property would return "none" to ECMAScript,
return JSVAL_NULL instead.
2008-07-11 16:41:14 +03:00
Kalle Olavi Niemitalo
bced779fdb Bug 1021: initialize version in http_got_header
gcc-4.3 -O2 was complaining that http_got_header may use uninitialized
version.major and version.minor.  That indeed happened with HTTP/0.9
servers, and the PRE_HTTP_1_1(version) check then had an undefined
result, so http->close could remain 0 even though it should have
become 1; fortunately, it was then set to 1 anyway, because there was
no Content-Length header.  The undefined version was also saved in
http->recv_version, but it appears nothing ever reads that.  So in the
end, the bug did not cause any symptoms at runtime, but the warning
broke the build on gcc-4.3 if ELinks was configured with --enable-debug.
(cherry picked from commit 5c0128d82d)
2008-07-04 22:40:58 +03:00
Kalle Olavi Niemitalo
6bfaa7ca8d Bug 1016: Avoid JSFunctionSpec. 2008-06-17 00:12:21 +03:00
Kalle Olavi Niemitalo
8d0677e76a Bug 1014: Fix incompatible pointer type in init_perl.
The second argument of PERL_SYS_INIT3 should be a char ***
but ELinks was giving it a char *(*)[1].

Also, enlarge the array to 2 elements, so that my_argv[my_argc] == NULL
like in main().  PERL_SYS_INIT3 seems hardly documented at all so I'm
not sure this is necessary, but it shouldn't hurt.
2008-06-08 20:38:50 +03:00
Paul B. Mahol
9dbfdb4738 Recognize Insert key on cons25 (FreeBSD console)
(cherry picked from commit b03ddccf08)

Conflicts:

	AUTHORS
	src/terminal/kbd.c
2008-05-31 21:30:40 +03:00
Miciah Dashiel Butler Masters
200e7ee259 save_textarea_file: don't return a dangling pointer if open fails
If fdopen failed, save_textarea_file would free the filename, but it still returned the pointer to the filename.  With this commit, save_textarea_file will return NULL if fdopen fails.
2008-05-21 20:30:33 +00:00
Kalle Olavi Niemitalo
481041ae48 Bug 939: Documented the fix.
The fix itself is in the parent commit.
(cherry picked from commit 4c390589ea,
 rewriting the NEWS entry because the bug also occurred on Debian)
2008-04-28 10:59:20 +03:00
Witold Filipczyk
26a4033cca 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.
(cherry picked from commit 06bcc48487)
2008-04-28 10:40:14 +03:00
Witold Filipczyk
23ff9ac7a9 bittorrent: Overflow occuring when a piece was rejected. 2008-03-25 22:37:13 +01:00
Witold Filipczyk
af66d330c9 Mark option changed in "File extensions -> Add".
Previously, file extensions added or modified via the menu did not get
saved to elinks.conf when config.saving_style was 3 (the default).
This patch makes the file-extension dialog box call option_changed,
which then sets OPT_TOUCHED, so that the option appears modified in
the option manager and will be saved.

[ Reported by Witek; original patch by me; adapted to 0.11 by Witek;
  commit message by me.  --KON ]
2008-03-04 23:46:17 +02:00