1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-09-16 01:08:31 -04:00
Commit Graph

3075 Commits

Author SHA1 Message Date
Witold Filipczyk
49f41d4371 Rewritten add_chars macro.
Before it redrawn only changed cells, but were problems with ghosts.
See test/fresh.html. Now it redraws whole lines, which were modified.
2017-11-23 11:40:21 +01:00
Witold Filipczyk
48ba074969 mem_free_set instead two lines 2017-11-23 10:33:10 +01:00
Felix Janda
06832623ad Rename configure.in to configure.ac
Avoids aclocal warning
2017-11-22 17:01:48 -05:00
Witold Filipczyk
4d85cd24eb Removed code suspected for traces on screen when scrolling. 2017-11-22 18:19:32 +01:00
Witold Filipczyk
5b390d6b55 Make 0 the default. 2017-11-22 12:11:42 +01:00
rkd77
be719e1ac1
Merge pull request #10 from aelmahmoudy/select_forms
Make select forms look more like other forms.
2017-11-22 12:02:06 +01:00
rkd77
77ea5759ed
Merge pull request #9 from aelmahmoudy/preferred_document_width_option
Add preferred_document_width option.
2017-11-22 11:59:17 +01:00
rkd77
1fecca1a15
Merge pull request #8 from aelmahmoudy/larger_doc_margin
Allow larger document.browse.margin_width
2017-11-22 11:56:25 +01:00
rkd77
a6996b7d3a
Merge pull request #7 from aelmahmoudy/keep_forms_bold
Keep forms in bold even when active.
2017-11-22 11:55:40 +01:00
rkd77
addd051c97
Merge pull request #6 from aelmahmoudy/dont_underline_unselected_forms
Dont underline unselected forms
2017-11-22 11:54:50 +01:00
rkd77
f44fdc25ed
Merge pull request #5 from aelmahmoudy/dont_underline_active_textarea
Avoid underlining active text areas.
2017-11-22 11:53:32 +01:00
rkd77
baf0c5b689
Merge pull request #4 from aelmahmoudy/color_textarea
Provide different color for text areas in insert mode.
2017-11-22 11:51:10 +01:00
rkd77
2b786ac7fe
Merge pull request #2 from aelmahmoudy/underline_links
Underline links even in numbered links mode
2017-11-22 11:42:02 +01:00
rkd77
ef8a3ccddf
Merge pull request #1 from aelmahmoudy/source_element
Add rendering for html source element
2017-11-22 11:38:57 +01:00
Nils Dagsson Moskopp
aae79c95fe Add rendering for html source element 2017-11-22 03:19:33 +01:00
Guillem Jover
85b8dd8f42 SSL authentication using client certs 2017-11-22 01:46:30 +01:00
Yozo Hida
49988d305f Do not underline forms (unless selected). 2017-11-22 01:16:50 +01:00
Yozo Hida
948d019fc0 Add preferred_document_width option.
Option document.browse.preferred_document_width controls the
width of the document, so that documents are rendered with narrower
width than screen width.  Makes it easier to read paragraphs.

Patch originally from Shalon Wood <dstar@pele.cx>, see bug #1063.

Instead of using max_document_width as the hard limit to the document
width, it uses a soft limit, where if the document does not fit (due to
tables, etc.), then larger width is used.  This reduces the need for
horizontal scrolling for wide documents.

Also added toggle-document-width action to toggle between preferred
width and full screen width.  This is bound to 'M' by default.  Initial
toggle status is determined by document.browse.use_preferred_document_width
option.

During dumps, document.dump.width option is still used.  Perhaps we
should consolidate document.dump.width option with
document.browse.preferred_document_width ?
2017-11-21 16:09:13 +01:00
Yozo Hida
7e58737619 Make select forms look more like other forms.
Insert "[_" and "_]" as part of the form link, and
include it as part of the link.
2017-11-21 16:06:33 +01:00
Yozo Hida
2a09148e5a Avoid underlining active text areas.
They already have underscores, so underlining them is redundant (and looks a
bit strange).
2017-11-21 16:04:27 +01:00
Yozo Hida
6ad3e541c8 Keep forms in bold even when active. 2017-11-21 16:02:26 +01:00
Yozo Hida
4ed958b067 Provide different color for text areas in insert mode.
The color is controlled by

  document.browse.links.active_link.insert_mode_colors.background
  document.browse.links.active_link.insert_mode_colors.text

Also avoid overloading local variable "i" in get_current_link().
2017-11-21 16:00:39 +01:00
Yozo Hida
a4d8f25a9c Allow link number colors to be changed.
These settings are specified by

  document.colors.link_number
  document.colors.use_link_number_color

The latter setting determines whether the color is used when document
colors are being used.

See bug #1050.
2017-11-21 15:56:32 +01:00
Yozo Hida
a9e7768b76 Allow larger document.browse.margin_width 2017-11-21 15:53:17 +01:00
Yozo Hida
468e7aaff9 Underline links even in numbered links mode 2017-11-21 15:50:23 +01:00
Witold Filipczyk
99058d53d7 terminfo_max_colors() 2017-11-21 15:36:28 +01:00
Witold Filipczyk
d8e749c0f4 terminfo_clear_screen 2017-11-20 11:28:53 +01:00
Witold Filipczyk
299e2b9aa4 Missing files 2017-11-19 20:18:44 +01:00
Witold Filipczyk
c4cb7ed8e5 Beginnings of terminfo support.
--with-terminfo must be added for configure
and --terminfo to command line.
terminfo is only used for output and not all sequences are changed.
2017-11-19 18:29:38 +01:00
Witold Filipczyk
9175f8ed39 Terminate slave browsers with libev(ent). 2017-11-18 15:16:22 +01:00
Witold Filipczyk
d5261654f4 libev or libevent in About dialog. 2017-11-17 17:33:51 +01:00
Witold Filipczyk
21d36fcbd1 Add --with-libev, because libev is smaller.
When both --with-libev and --with-libevent are used, libev takes
precedence.
2017-11-17 16:34:03 +01:00
Witold Filipczyk
f52e3187e3 Add command line option -no-libevent 2017-11-16 18:23:47 +01:00
Witold Filipczyk
4c4717b82a Repeat gnutls_handshake until success
It's blocking, but better than SSL errors.
2017-11-15 01:01:36 +01:00
Witold Filipczyk
91beac7ee3 gnutls_certificate_set_x509_system_trust
If this function is available and gnutls is used,
and connection.ssl.trusted_ca_file is "",
gnutls_certificate_set_x509_system_trust is called
to load certificates.
2017-11-14 16:02:22 +01:00
Witold Filipczyk
0266633025 Fix issue with one char documents. Patch by Felix Janda 2017-11-14 09:54:05 +01:00
Witold Filipczyk
b6fd548049 threads might be NULL for --lookup 2017-11-13 14:44:24 +01:00
Witold Filipczyk
3b6ff1d22f Introduced --with-libevent based on links code
I don't know how to deal with select's exception fds in libevent,
so some functions may not work properly.
2017-11-12 13:41:31 +01:00
Witold Filipczyk
050f304161 poll and EINTRLOOP - added fragment from links 2017-11-11 21:37:08 +01:00
Witold Filipczyk
8c39acc277 Info about brotli. 2017-11-11 16:31:32 +01:00
Witold Filipczyk
f86be65971 Retry only for https protocol 2017-07-23 19:50:15 +02:00
Witold Filipczyk
affcebbab1 Add to blacklist only valid uri 2017-07-23 19:15:10 +02:00
Witold Filipczyk
a6799737f5 Forgot about possible memleak 2017-07-23 19:09:13 +02:00
Witold Filipczyk
442f4936dc Use blacklist to skip verification of certificates 2017-07-23 18:59:05 +02:00
Witold Filipczyk
f43f5714e8 Let users retry connection in case of error. Especially SSL error.
Also verify ssl certificates by default.
It has some weak points, for example in load_uri not always data
is a session.
2017-07-23 14:33:40 +02:00
Witold Filipczyk
b1d1e4a15b Fixes related to brotli. Errors occured on https://www.thetrendspotter.net/ 2017-07-02 15:20:03 +02:00
Witold Filipczyk
3e436b8869 brotli code updated 2017-07-01 22:38:06 +02:00
Witold Filipczyk
f3ab69bb13 Color trailing spaces with color of last non-space cell 2017-06-13 22:39:53 +02:00
Witold Filipczyk
c610fcf334 Off by one, also 200 instead of 30 2017-06-13 17:07:23 +02:00
Marco Migliori
5e31308da0 text direction mark 2017-05-16 20:57:25 +02:00
Marco Migliori
a75e8dd35c new -remote command: reload() 2017-05-16 20:55:33 +02:00
Marco Migliori
f1fb95835a display lua hooks errors 2017-05-16 20:54:56 +02:00
Witold Filipczyk
54ebe365b7 Compilation fix for OpenSSL-1.1 2017-03-06 17:39:36 +01:00
Arjen Stolk
e957e60d5c mailcap: prevent segfault on test entry with %s
When a mailcap entry with a testcommand containing %s is encountered, it is ignored. The
entry was freed, but not set to NULL, leading to a segfault later on.
2016-12-28 14:22:01 +01:00
Witold Filipczyk
6d78cf1c23 Set encoding 2016-12-13 17:43:56 +01:00
Witold Filipczyk
6777006d73 Code reuse 2016-12-13 10:37:27 +01:00
Witold Filipczyk
5a217e37df Empty text node is '\n' 2016-12-11 21:18:14 +01:00
Witold Filipczyk
06fb11baee Experimental html source highlight using libdom 2016-12-11 16:52:44 +01:00
Witold Filipczyk
2fc9b0bf5a Better handling of content-disposition (line without semicolon)
This time it was copied from links2.
2016-08-21 22:02:46 +02:00
Witold Filipczyk
ab63ee8f82 Revert "Fix saving files from speccy.pl archives"
This reverts commit 29d85fdb3b.
2016-08-21 18:22:33 +02:00
Witold Filipczyk
29d85fdb3b Fix saving files from speccy.pl archives 2016-05-28 17:58:17 +02:00
Pete Deas
e9152c8772 gopher: ensure slash after entity type in links
This prevents links with null selectors being interpreted as pointing to
a (likely non-existent) file gopher://server/1
An example of a page with such links: gopher://gopher.floodgap.com/1/new
2016-04-30 10:45:42 +02:00
Witold Filipczyk
38c12d9dfc Compilation fix 2016-04-24 17:36:20 +02:00
Witold Filipczyk
3212ee4e54 C++ comaptibility 2016-04-24 17:23:58 +02:00
Witold Filipczyk
257422f28c Reorganisation of code to make C++ happy 2016-04-20 22:21:31 +02:00
Witold Filipczyk
da15322705 Cast to (const char *) in strrchr calls 2016-04-20 21:03:27 +02:00
Witold Filipczyk
2e7a7a5ca3 Compilation fixes for C++ 2016-04-20 20:57:09 +02:00
Witold Filipczyk
96e65c105f Explicit cast in strstr for C++ 2016-04-20 20:46:33 +02:00
Witold Filipczyk
5b2efc8976 Compilation fix for C++ 2016-04-20 20:33:32 +02:00
Witold Filipczyk
1b06539694 Explicit cast to (const char *) in strcasestr for C++ 2016-04-20 20:11:08 +02:00
Witold Filipczyk
52d6f37c8e Explicit cast to (const char *) for strchr function (C++) 2016-04-20 19:43:37 +02:00
Witold Filipczyk
89387e3679 Compilation fix (C++) 2016-04-20 19:41:12 +02:00
Witold Filipczyk
8cf00fa61c delete -> delete_ for C++ compatibility 2016-04-20 18:57:32 +02:00
Witold Filipczyk
67673f5fe5 new -> new_ for C++ compatibility 2016-04-20 18:42:22 +02:00
Witold Filipczyk
f4981bb553 class -> class_ for C++ compatibility 2016-04-20 18:18:27 +02:00
Witold Filipczyk
2e721e051a template -> template_ for C++ compatibility 2016-04-20 18:05:00 +02:00
Fabienne Ducroquet
13f3da8416 Improve isolated combining characters handling
If there are isolated combining characters, e.g. at the beginning of a paragraph
or table cell:
– if it’s not the first screen column, combine them with whatever character is
printed to their left;
– otherwise, add a no-break space as the base character.

Previously, such combining characters were combined with the last letter
displayed, i.e. the last letter of the previous paragraph or cell.

Signed-off-by: Fabienne Ducroquet <fabiduc@gmail.com>
2016-04-12 21:59:50 +02:00
Fabienne Ducroquet
a43ec1075c Display combining characters at the end of the current string in set_hline
without waiting for the next non zero width character. This way combining
characters at the end of the document are displayed.

Signed-off-by: Fabienne Ducroquet <fabiduc@gmail.com>
2016-04-12 21:58:54 +02:00
Fabienne Ducroquet
c1140f54c4 Compute correct number of cells with CONFIG_COMBINE
Otherwise, there are unnecessary spaces at the end of lines in tables containing
combining characters.

Signed-off-by: Fabienne Ducroquet <fabiduc@gmail.com>
2016-04-12 21:41:53 +02:00
Fabienne Ducroquet
ec30a09a36 Bug 1139: Fix internal error: "bad split" with CONFIG_COMBINE
A combining character sequence where the base character is a space remained
recorded as a space although the initial space was replaced with an internal
code corresponding to the combined character. This caused an internal error when
ELinks tried to split the line at that place and did not find the space.

Signed-off-by: Fabienne Ducroquet <fabiduc@gmail.com>
2016-04-12 21:41:49 +02:00
Fabienne Ducroquet
73b09749ac Use the proxied URI to verify server certificates
Otherwise, the verification fails when using a HTTPS proxy because ELinks checks
whether the proxy matches the certificate.

Signed-off-by: Fabienne Ducroquet <fabiduc@gmail.com>
2016-04-12 21:41:46 +02:00
Witold Filipczyk
4efea7e314 Added support for label_key in references of dumps.
Added base parameter to dec2qwerty and qwerty2dec to avoid strlen calls
im dumps.
2016-02-07 11:51:17 +01:00
Witold Filipczyk
69986f1bd1 Multiplication instead of pow calls and minor style changes. 2016-01-31 12:38:18 +01:00
Martin Miller
28b7bd1ec2 Transfer changes for ascii link labeling 2016-01-31 10:23:08 +01:00
Witold Filipczyk
aec900f2ae Flush decompression with len = 0
This is required by code in encoding/brotli.c.
2016-01-16 13:03:54 +01:00
Kylie McClain
f4a58ba3b5 ssl: Make RAND_egd optional
Fixes compilation with LibreSSL.
2015-12-30 11:12:35 +01:00
Witold Filipczyk
6eba447e8a Experimental brotli encoding support.
https://github.com/bagder/libbrotli
2015-10-12 23:18:23 +02:00
Witold Filipczyk
ca18522eec Revert "Shorten add_chars. Do not call compare_fg_color and compare_bg_color."
This reverts commit 8132c156dd.
On download dialog cursor jumps too much
2015-09-17 21:38:35 +02:00
Witold Filipczyk
8132c156dd Shorten add_chars. Do not call compare_fg_color and compare_bg_color.
Some sites while scrolling showed "artifacts". For example twojepc.pl.
2015-09-17 21:08:15 +02:00
Witold Filipczyk
66fa83f7b5 deflate once again. 2015-08-22 19:28:50 +02:00
Witold Filipczyk
b4adf0d70d Prefer gzip. 2015-08-22 11:22:58 +02:00
Witold Filipczyk
e015e2be21 -VERS-SSL3.0 in gnutls to avoid SSL error. 2015-07-01 16:23:19 +02:00
Witold Filipczyk
3688bb9c61 auto-completion reads not only the first character, but also the next ones.
This behaviour is similar to other browsers.
2015-05-12 16:12:56 +02:00
Witold Filipczyk
c84dfd7e18 mem_free_if where aplicable. Initialised memory in encoding/* 2015-05-10 17:27:55 +02:00
Witold Filipczyk
ca4d770c0b Revert "Apply styles of html element for body element."
This reverts commit 5f9b54f594.
2015-05-09 22:11:13 +02:00
Witold Filipczyk
03c4eec1d4 Unitialised variable found by valgrind. 2015-05-09 21:27:12 +02:00
Witold Filipczyk
f778e66d88 Changes to let it build with bison-3.0. 2015-02-25 21:16:09 +01:00
Witold Filipczyk
46767f6bf0 Introduced the document.browse.show_refresh_link option.
Whether to show Refresh: link line. Default 1.
2015-01-02 14:53:18 +01:00
Witold Filipczyk
06f0dff43f expert is also proper suffix. 2015-01-02 13:53:10 +01:00
Witold Filipczyk
bdfb3ec754 bug 1145: The freecode.com successor has the URL "freecode.club" but "club"
is not recognized as a TLD. Patch by Dr. Markus Waldeck
2014-09-22 21:47:53 +02:00
Witold Filipczyk
7453b03279 deflate switched on again.
askubuntu.com uses deflate compression.
2014-09-01 12:50:23 +02:00
Witold Filipczyk
e7ebfa06c3 deflate is broken. 2014-09-01 12:19:49 +02:00
Bin Guo
7553d321a1 Fixed problem of converting more thant 256 chars. 2014-06-26 21:21:59 +02:00
Fabienne Ducroquet
3379fc988c Respect alphabetical order for the actions
I didn’t respect the right order when I added the functions to move up and down
by half a page a few years ago.

Signed-off-by: Fabienne Ducroquet <fabiduc@gmail.com>
2013-12-18 16:38:57 +01:00
Fabienne Ducroquet
60a5fce0f0 Add a function to put the current line at the top of the screen
Signed-off-by: Fabienne Ducroquet <fabiduc@gmail.com>
2013-12-18 10:01:34 +01:00
Witold Filipczyk
40fdc14012 30 instead of 10. Python tutorial looks better. 2013-12-16 17:04:59 +01:00
Fabienne Ducroquet
b2bc6f5049 Add support for the CSS list-style-type property
Use the same functions as for the list-style property since only the "type" part
of the list-style property is supported at this stage.

Signed-off-by: Fabienne Ducroquet <fabiduc@gmail.com>
2013-09-07 10:52:01 +02:00
Fabienne Ducroquet
ad7ff0386d Changes in the handling of the format flags for list elements
* Rename P_STAR as P_DISC and P_PLUS as P_SQUARE.

* Delete P_NONE because it was used only as the default flag in init_html_parser
  and a list with P_NONE then got bullets, so instead use P_DISC by default (as
  per the CSS specification), and P_NO_BULLET for lists with no bullets.

* Use as bullets the characters:
  - U+25E6 WHITE BULLET for the circle style;
  - U+25AA BLACK SMALL SQUARE (alias square bullet) for the square style;
  - U+2022 BULLET for the disc style (default).

Signed-off-by: Fabienne Ducroquet <fabiduc@gmail.com>
2013-09-07 10:51:54 +02:00
M. Levinson
a229adb19a A more nuanced approach to Python warnings.
By default some Python warning messages would be written to standard error
by the interpreter. To prevent these warnings from making a mess of the
ELinks screen, all warnings were turned into exceptions so they could be
caught and displayed through the usual report_scripting_error() mechanism.

With Python 3.2, this approach backfires: A new class of ResourceWarnings
that are filtered by default (and hence would *not* have been written to
standard error) are now turned into exceptions, and these exceptions can't
be caught because they're emitted from the interpreter's cleanup code. As
a result, the uncaught exceptions would make a mess of the ELinks screen.

The new solution is to replace Python's standard library function
warnings.showwarning() with one that turns warning messages into exceptions.
This means we'll wait until a warning would have been written to standard
error before turning it into an exception, so other warnings that would
never have reached that point because they're filtered will remain unseen.

(The behavior of warning messages is described in the documentation for
the "warnings" module from Python's standard library.)
2013-07-05 12:29:58 +02:00
witekfl
91515990c8 Removed --with-gc and CONFIG_GC related code.
CONFIG_GC was added with SEE, but SEE support was removed, so
I don't see the reason to keep gc.
2013-05-14 15:36:32 +02:00
witekfl
7dd4d9b737 iconv: Bail out of the loop when an illegal sequence of bytes occurs.
Before, with the default codepage GB2312 and a mysql sql dump in UTF-8
I got segfaults in the iconv related code.
2013-02-27 09:33:55 +01:00
Techlive Zheng
0ba951021a Elinks currently only support GB2312 as Chinese encoding, but GBK and
GB18030 are also widely used. Codepage CP936 is almost identical to
GBK, so I add it as an alias.
2013-01-20 12:58:03 +01:00
witekfl
26e41cb6c3 Redefine FD_SETSIZE on Windows. Set it to 4096.
There was hardcoded 4096 for threads size, but below there was:
	assertm(fd >= 0 && fd < FD_SETSIZE,
		"get_handler: handle %d >= FD_SETSIZE %d",
		fd, FD_SETSIZE);
	if_assert_failed return NULL;
which fails for fd > 1024 (1024 was previous value of FD_SETSIZE)
2013-01-05 13:42:35 +01:00
witekfl
4fc6343407 mem_free_if(data) instead of if (data) mem_free(data). Shorter. 2013-01-04 17:54:57 +01:00
witekfl
b0ea7cd7c1 decompress_data is now cleaner, isn't it? 2013-01-04 16:23:09 +01:00
witekfl
6fae43511c Call decompress_data only for compressed data.
Hope this is less missleading than before.
2013-01-04 16:00:50 +01:00
Kalle Olavi Niemitalo
642e164ec3 rewrite: update default dumb and smart prefixes
DELETED:

* dumb {b}, smart {bb, bb_fr_en, bb_en_fr}: Redirects to Microsoft
  Translator, which I can't get to work without JavaScript.  Deleted.

* dumb {pyhelp}, smart {py, pydev}: Deleted as recommended by the
  author of the CGI script.

* dumb {pyvault, lyrics}, smart {pyvault}: Can't find a new URL for the
  service.  Deleted.

* smart {gd}: Google Directory has been shut down.  Deleted.

* smart {sd, sdc, sdu, sdp, sdj, whatis}: These don't seem to work
  without JavaScript.  Deleted.

* smart {id, draft}: The search still exists but I can't get it to
  take the words from the URL.  Deleted.

UPDATED:

* dumb {cia}: Had changed its URL, and the service is down, but they
  intend to restore it.  Updated and kept.

* dumb {lua}: ELinks no longer supports Lua 4.0.  Changed to 5.1 as
  installed by Debian.

* smart {cliki, foldoc, gwho, gwhat, gwhere, gwhen, a, imdb, wn, fsd,
  rfcs, cr}: Updated URLs.
2012-11-30 09:24:53 +02:00
Kalle Olavi Niemitalo
268249c50b SMJS: move comments to match spidermonkeyFunctionSpec[]
Each C function that can be called as a method of an ECMAScript object
is typically listed in a spidermonkeyFunctionSpec array and has a
comment that shows the name of the array and the name of the method.
For example, elinks_alert has a comment /* @elinks_funcs{"alert"} */
because elinks_funcs[] contains an element { "alert", elinks_alert, 1 }.

When some of those functions were split into outer and inner functions
for SpiderMonkey 1.8.5 compatibility, the comments were attached to
the inner functions, which contain the bulk of the code.  Move the
comments to the outer functions, to which the array elements point.
2012-11-26 00:15:09 +02:00
Kalle Olavi Niemitalo
c4a23543fd SMJS: verbose comment about JS_AddNamedStringRoot 2012-11-25 21:06:09 +02:00
witekfl
767a1c4228 bug 1126: use draw_text for titles
I didn't check big dialog boxes.
2012-11-19 14:24:34 +01:00
Kalle Olavi Niemitalo
d3022aa7be SMJS bookmark_set_property: Don't use JS_ValueToId.
Partially revert commits
a1c5fe51 (2011-05-08) bookmark_folder_get_property: xulrunner-2.0 fix
e86ec567 (2012-03-04) Compilation fixes (--enable-debug)

jsval_to_bookmark_string once again takes jsval val, rather than jsid id.
This way, bookmark_set_property does not have to call JS_ValueToId,
which would needlessly intern the new string value of the property,
i.e. the title or the URI.  Instead, bookmark_folder_get_property
has to call JS_IdToValue.
2012-11-19 02:53:14 +02:00
Kalle Olavi Niemitalo
380d910ad8 SMJS: Use JS_THIS_OBJECT and JS_CALLEE, not argv[-1] and argv[-2]
https://developer.mozilla.org/en-US/docs/SpiderMonkey/1.8.5 mentions
that JSNative functions must not use negative indices of argv in
SpiderMonkey 1.8.5.  Use the JS_THIS_OBJECT and JS_CALLEE macros
instead.  They are documented in
https://developer.mozilla.org/en-US/docs/SpiderMonkey/JSAPI_Reference/JSNative
2012-11-19 00:39:51 +02:00
Kalle Olavi Niemitalo
465923e386 ECMAScript: Initialize jsval variables for return values
forms_item declared a variable (jsval val), passed its address to
forms_item2, and set it as the return value.  However, forms_item2
could return without initializing the jsval, especially if given too
many arguments.  Fix by initializing to JSVAL_VOID right away.
I'm not sure that is the correct value to return in such cases,
but at least it's better than risking a crash.

Likewise in form_elements_item and form_elements_namedItem.
2012-11-19 00:39:51 +02:00
Kalle Olavi Niemitalo
245df547ab doxygen: Fix link to bookmark::url
Fix this warning:

Generating docs for page todo...
todo:12: warning: explicit link request to 'url' could not be resolved

The #url syntax was supposed to refer to the url member of the
containing structure, but it apparently doesn't work when @todo
copies the paragraph to a separate page.
2012-11-18 20:17:47 +02:00
Kalle Olavi Niemitalo
31242e8029 doxygen: Document tree parameter of prepare_mustsave_flags
Doxygen complained that not all parameters of prepare_mustsave_flags
were documented.
2012-11-18 20:17:40 +02:00
Kalle Olavi Niemitalo
90d7c11f28 doxygen: Escape <uri> in doc of bittorrent_download
Doxygen warned that <uri> is an unsupported xml/html tag.
It was not intended as a tag though; rather as a placeholder
akin to <var>uri</var>.  Escape with a backslash.
2012-11-18 20:16:59 +02:00
Kalle Olavi Niemitalo
bfeb09fe37 doxygen: Document dump.c some more
Doxygen complained that the cp parameter of dump_output_alloc was not
documented.  Fix that, and document dump_output_prepare_frame too.
2012-11-18 20:16:37 +02:00
Kalle Olavi Niemitalo
6628a3f477 parse_header: document parameters and return value 2012-11-18 17:36:36 +02:00
Kalle Olavi Niemitalo
0386a3e14b parse_header: make the 2nd parameter point to const
In almost all calls to parse_header, the second argument is a string
literal: parse_header(head, "Charset", NULL) for example.
Of course, parse_header does not write to that string.  Accordingly,
make the parameter point to const, so calls that use a variable rather
than a string literal can make that variable point to const too.

Leaving the other parameters non-const for now.
2012-11-18 16:39:04 +02:00
Kalle Olavi Niemitalo
ed6a33d318 http_negotiate: Fix int* vs. size_t* type mismatch
http_negotiate_parse_data passed &token->length as the int *outlen
parameter of base64_decode_bin, which stores an int at that location.
However, gss_buffer_desc::length is size_t in all implementations that
I checked: MIT Kerberos Version 5 Release 1.10, libgssglue 0.4, and
GNU GSS 1.0.2.  This mismatch could cause the build to fail:

.../src/protocol/http/http_negotiate.c: In function ‘http_negotiate_parse_data’:
.../src/protocol/http/http_negotiate.c:173:2: error: passing argument 3 of ‘base64_decode_bin’ from incompatible pointer type [-Werror]
In file included from .../src/protocol/http/http_negotiate.c:30:0:
.../src/util/base64.h:8:16: note: expected ‘int *’ but argument is of type ‘size_t *’

On 64-bit big-endian hosts, it might also cause the GSSAPI
implementation to read too much data from memory and disclose it to
some network server, or crash ELinks.
(cherry picked from elinks-0.12 commit d33c807dd9)
2012-11-03 23:01:29 +02:00
Kamil Dudka
5e113362da http_negotiate: do not delegate GSSAPI credentials
CVE-2012-4545.  Reported by Marko Myllynen.
(cherry picked from elinks-0.12 commit da18694ff7)
2012-11-03 23:01:28 +02:00
Kalle Olavi Niemitalo
cd0f6feec3 bug 764: Convert sentinel to struct option
unregister_options() requires as a sentinel an instance of struct
option where option.name is NULL.  However, the NULL_OPTION_INFO macro
used for these sentinels actually initializes a struct option_init
instead.  Make register_options() overwrite the NULL_OPTION_INFO with
a sentinel in the correct format.  This probably makes a difference
only on platforms where null pointers don't have all bits zero.
(cherry picked from elinks-0.12 commit 8ac10e00d4)
2012-11-03 23:01:28 +02:00
Kalle Olavi Niemitalo
9e11e30fe3 bug 764, LUA: option_types[OPT_INT].set needs long *
l_set_option() was passing the address of an int to
option_types[OPT_INT].set and option_types[OPT_BOOL].set.
That looks correct but is not: both function pointers
point to num_set(), which actually reads *(long *) str.
Change l_set_option() to pass the address of a long instead,
and add comments about this dependency.
(cherry picked from elinks-0.11 commit 8766e3829f)
(cherry picked from elinks-0.12 commit 0797f04921)
2012-11-03 23:01:28 +02:00
Kalle Olavi Niemitalo
237d30b936 bug 1084: Allow '+' and '*' in names in option manager
ELinks already allowed '+' and '*' in the names of options when
reading a configuration file.  The option manager however didn't
let the user add such options.  Allow the characters there too.

These characters are needed especially in the mime.type tree,
where '*' is used as a replacement for '.'.  For example:

set mime.type.audio.prs*sid = "sid"
set mime.type.application.atom+xml = "atom"

This commit changes one gettextised string.
(cherry picked from elinks-0.12 commit 064ff3921d)
2012-11-03 23:01:21 +02:00
Kalle Olavi Niemitalo
58d2fe8eeb config/options: More Doxygen markup
No changes in program logic or data layout.
(cherry picked from elinks-0.12 commit 972afa1c26)

Conflicts:
	src/config/options.c:
		0.13.GIT has a new function get_option_shadow, now
		doxygenized likewise.
2012-11-03 22:17:47 +02:00
Kalle Olavi Niemitalo
8b00e1ef70 bug 764: Initialize the right member of union option_value
INIT_OPTION used to initialize union option_value at compile time by
casting the default value to LIST_OF(struct option) *, which is the
type of the first member.  On sparc64 and other big-endian systems
where sizeof(int) < sizeof(struct list_head *), this tended to leave
option->value.number as zero, thus messing up OPT_INT and OPT_BOOL
at least.  OPT_LONG however tended to work right.

This would be easy to fix with C99 designated initializers,
but doc/hacking.txt says ELinks must be kept C89 compatible.
Another solution would be to make register_options() read the
value from option->value.tree (the first member), cast it back
to the right type, and write it to the appropriate member;
but that would still require somewhat dubious conversions
between integers, data pointers, and function pointers.

So here's a rather more invasive solution.  Add struct option_init,
which is somewhat similar to struct option but has non-overlapping
members for different types of values, to ensure nothing is lost
in compile-time conversions.  Move unsigned char *path from struct
option_info to struct option_init, and replace struct option_info
with a union that contains struct option_init and struct option.
Now, this union can be initialized with no portability problems,
and register_options() then moves the values from struct option_init
to their final places in struct option.

In my x86 ELinks build with plenty of options configured in, this
change bloated the text section by 340 bytes but compressed the data
section by 2784 bytes, presumably because union option_info is a
pointer smaller than struct option_info was.
(cherry picked from elinks-0.12 commit e5f6592ee2)

Conflicts:
	src/protocol/fsp/fsp.c: All options had been removed in 0.13.GIT.
	src/protocol/smb/smb2.c: Ditto.
2012-11-03 22:16:32 +02:00
Kalle Olavi Niemitalo
87eac68dc3 Fix "parameter has incomplete type" on GCC 3.4.6
Fix this GCC 3.4.6 warning, which becomes an error
if configure --enable-debug adds -Werror to CFLAGS:

      [CC]   src/document/css/apply.o
In file included from /home/Kalle/src/elinks-0.12/src/document/html/internal.h:6,
                 from /home/Kalle/src/elinks-0.12/src/document/css/apply.c:35:
/home/Kalle/src/elinks-0.12/src/document/html/parser.h:149: warning: parameter has incomplete type
In file included from /home/Kalle/src/elinks-0.12/src/document/css/apply.c:35:
/home/Kalle/src/elinks-0.12/src/document/html/internal.h:125: warning: parameter has incomplete type

Even without this warning, "enum html_special_type;"
would not be standard C89.
(cherry picked from elinks-0.12 commit c9f487cdf4)

Conflicts:
	src/document/html/parser.h: 0.13.GIT had more #includes already.
2012-11-03 22:16:23 +02:00
Kalle Olavi Niemitalo
263c1836cb Don't retry get_window_title
Call get_window_title() at most once per terminal, even if it fails.
If ELinks is configured with X11 support, get_window_title() calls
XOpenDisplay(), which can sleep if $DISPLAY does not respond.
This delay was previously incurred every time ELinks changed the
title.  Besides, if ELinks had already changed the title, setting
ditrm->orig_title = get_window_title(); did not make sense anyway.
(cherry picked from elinks-0.12 commit 5d4beadc4b)

Conflicts:
	src/terminal/kbd.c:
		get_window_title has a codepage parameter in 0.13.GIT.
2012-11-03 22:14:48 +02:00
Kalle Olavi Niemitalo
6f4c95cc7f Bug 943: Refuse user JS actions in unfocused tabs
(cherry picked from elinks-0.12 commit 51dc3beee7)

Conflicts:
	NEWS: Both 0.12pre5.GIT and 0.13.GIT had inserted a new section.
	src/terminal/window.c: Both had inserted a new function.
2012-11-03 22:10:27 +02:00
Kamil Dudka
a96d8a17e5 rewrite: add default "ddg" dumb/smart prefixes for DuckDuckGo
... and mention that URI rewriting rules may leak ELinks' identity
in the documentation of protocol.http.user_agent.

Originally requested at <https://bugzilla.redhat.com/856348>.
2012-10-05 14:05:13 +02:00
witekfl
88be88c819 Revert "Show the URI in the title bar even if document title is set."
This reverts commit d06cccffd6.

Some people wants URL in the title bar, but some wants the title.
I restored previous version (the title). If you want the URL, create
the patch with a configurable option.
2012-09-02 19:19:02 +02:00
witekfl
71bd75f759 Avoid a warning when gzip, bzip2 nor lzma is compiled-in. 2012-08-08 22:36:21 +02:00
witekfl
a556fba1d2 Label bad was unused without fork. 2012-08-08 22:31:05 +02:00
witekfl
15ebc25704 Avoid compilation warning on Windows. 2012-08-08 22:28:04 +02:00
witekfl
9543ed96a4 Do not set FD_SETSIZE too high on Windows.
Alloc more space for threads in main/select.c instead.
2012-08-08 22:22:37 +02:00
mancha
bc3fcb4696 Fix hostname verification code.
[ From bug 1123 attachment 569.  --KON ]
2012-07-18 12:37:55 +03:00
witekfl
ba9bbc9e46 draw_space: Check for a non-space only in first 10 chars of the line.
I know it is totally brainless, but buildlogs.pld-linux.org
looks good now.
2012-07-11 11:39:26 +02:00
witekfl
4ec188d75e When shifting characters (for example with ALIGN_CENTER) set
colors of the empty area to the color of the first char of the centered
text. Previously it was set to the default background.
2012-07-11 11:17:24 +02:00
witekfl
42d2433f4b Color leading spaces with the color of the first non-space character.
Also color trailing spaces with the color of the last character.

See for example gtk-doc.
2012-07-11 11:14:03 +02:00
witekfl
aead2de59a Do not treat <li> specially and handle </li>. See test/ul_a_li.html. 2012-06-12 14:31:55 +02:00