Switch branches/tags
Nothing to show
Find file
46de840 May 20, 2009
8236 lines (8045 sloc) 486 KB
Changes since Lynx 2.8 release
2007-05-09 (2.8.6rel.5 fix from 2.8.7dev.5)
* correct loop-limit in print_crawl_to_fd(), which broke
"lynx -crawl -dump" from 2.8.6dev.9 changes (Mandriva #29785) -TD
2006-11-15 (2.8.6rel.4 diverges from 2.8.7dev.4)
* limit files set via PERSONAL_EXTENSION_MAP and PERSONAL_MAILCAP to be found
relative to the user's home directory. This change is less flexible than the
development version, but simpler to implement. The check to ensure that
the files are controlled by the user is retained (Redhat #214205) -TD
2006-11-06 (2.8.6rel.3 from 2.8.7dev.2)
* ensure that the configured values for GLOBAL_EXTENSION_MAP and GLOBAL_MAILCAP
are absolute pathnames -TD
* modify logic for reading PERSONAL_EXTENSION_MAP and PERSONAL_MAILCAP to
ensure that they are files that are controlled only by the user. The
default values for these allow lynx to read configuration information
from the user's current directory at lynx's startup (Debian #396949) -TD
2006-10-12 (2.8.6rel.2)
* update version numbers in documentation -TD
* change embedded URL for HTML'ized lynx.cfg to point to example in current
release -TD
2006-10-10 (2.8.6rel.1)
2006-10-10 (2.8.6pre.6)
* minor formatting fixes to CHANGES and CHANGES2.8 to facilitate scripted
analysis of contributions -TD
* predefine _XOPEN_SOURCE_EXTENDED on HPUX to make color-style build -TD
* broaden the conditions on which to reload the color-style information to
cover any (re)initialization of the screen, e.g., when resizing using
ordinary curses (report by PG) -TD
2006-10-02 (2.8.6pre.5)
* modify to use "use vars" rather than "our", to allow it to work
with perl version 5.5 -TD
* use curses nodelay() function for BeOS to make HTCheckForInterrupt() work
on that platform -TD
* filter out obsolete URLs from the customizations saved during install of
lynx.cfg -TD
* add a configure check for zError() to allow using old zlib's -TD
* fix configure --disable-largefile (from ncurses changes) -TD
* applied lynx's changes to updated files from to take
advantage of less restrictive copyright (report by Klaus Singvogel) -TD
* workaround for PDCurses versus color-style; reload color style information
in start_curses() since PDCurses discards that information in endwin()
(report by Lawrence Armstrong) -TD
2006-09-18 (2.8.6pre.4)
* updated link in user's guide to HTML 3.0 reference (report by TH) -TD
* remove coloring for lh- and high-tags from LYStyle.c and sample ".lss" files
since that tag is nonstandard (report by TH) -TD
* update da.po from
* add script samples/oldlynx, which gives the non-color-style scheme using
an executable built for color-style -TD
* add DEFAULT_COLORS item to lynx.cfg to allow disabling the default colors
feature at runtime, allowing better matching of old color scheme via a
script -TD
* update VMS descrip.mms files, adding the ability to build with slang -TD
2006-09-10 (2.8.6pre.3)
* add NESTED_TABLES setting to lynx.cfg to allow site override of the built-in
default (see 2001-08-15 comments by TH) -TD
* update tr.po from
* fix a different aspect of Debian #171312, ensuring that if the side-effect
of getfile() is unneeded, we restore the link number as well as the line
number (Debian #386561) -TD
* modify makefile.msc to allow building with slang configuration -TD
* fixes for keyboard input of slang configuration in win32 (not mingw) which
was broken in 2.8.3dev.5 -TD
* fix LYgetTableString(), making the monochome appearance with an empty ".lss"
file for color-style look like the non-color-style (Debian #386216) -TD
* fix change made to LYwaddnstr() which did not update the position in LYwin
after writing text to a subwindow. This caused some cases where the status
line would be cleared by the filler color -TD
* modify noviceline() function to account for trailing newlines in the message
text which caused the message to be displayed on the wrong lines (report
by Atsuhito Kohda) -TD
* make "lynx -version" work in the absence of ".cfg" or ".lss" files -TD
* add docs/README.metrics to support the changes to COPYHEADER -TD
* update COPYHEADER to reflect the ten years of development after release
of Lynx 2.4.2 -TD
2006-09-03 (2.8.6pre.2)
* change configure script to put the ".cfg" and ".lss" files by default in the
--sysconfdir, e.g., $prefix/etc, and the help-files in lynx_doc and lynx_help
directories under --datadir, e.g., $prefix/share/lynx_doc,
$prefix/share/lynx_doc. To obtain the old behavior, use
configure --sysconfdir=/usr/local/lib --datadir=/usr/local/lib
(patch by Rado Smiljanic).
* simplified stop_curses(), ensuring that it does what it claims (report by
William McBrine) -TD
* corrected placement of statements used for quiet compiler warnings for unused
variables in fancy_mouse() (reported by Rado Smiljanic, Nelson Beebe) -TD
* simplify ifdef's in HTCheckForInterrupt() to make it clearer that the win32
PDCurses configuration uses nodelay() as an alternative to select() -TD
* correct fix for PDCurses on win32, i.e., the workaround in LYStrings.c
myGetChar() (report by William McBrine) -TD
* replace a couple of wmove(LYwin,y,x) calls with LYmove(y,x) -TD
* modify configure macro CF_PATH_SYNTAX to account for the --prefix and
--exec-prefix options, making the --with-cfg-file and --with-lss-file options
have the expected behavior of using the given prefix (reported by PG) -TD
* modify ifdef's for Current_Attr variable to allow scrollbar feature to build
with slang configuration on Windows (report by Gisle Vanem) -TD
2006-08-31 (2.8.6pre.1)
2006-08-31 (2.8.6dev.19)
* add --enable-widec configure option to allow building lynx without wide
character support using ncursesw, to accommodate users with older releases
of ncurses (request by Emanuele Giaquinta) -TD
* add -stderr option to write error messages when doing a -dump -or -source.
Normally these are written to the status line but that does not exist when
dumping to standard output (Debian #375736) -TD
* fixes for GNU TLS configuration (also addresses Debian #231609) -TG, TH
* add check for failure to write to disk, e.g., on disk full, and report
error condition via HTAlert() -PG
* updated README.sslcerts -Stef Caunter
* add example of -source in manpage to explain how HREF's are constructed
(Debian #347989) -TD
* fixes to make redraw_part_of_line() to work with double-width characters.
This is used in color-style to repaint an inactive hyperlink -TD
* ensure the number of "extra" blanks in a line is greater than zero before
attempting to perform text-justification (Debian #363538) -TD
* improve wrapping logic in LYwaddnstr() by using a derived window. This fixes
a problem with wrapping of multibyte character links -TD
* repair fix for Debian #171312 by ensuring that it is only invoked if the
document was not being reloaded, or popped off the history stack. See logic
for popped_doc vs LYSetNewline() in LYMainLoop.c (report by TH) -TD
* add error-reporting for the PRETTYSRC_SPEC data in lynx.cfg
(prompted by discussion by OpenMacNews and Thorsten Glaser) -TD
* add a carriage-return in stop_curses() to work around PDCurses leaving the
cursor position other places than lower-level when stopping curses (report
by DK) -TD
* add an explicit wmove() in display_line() to accommodate some wide-character
pages which are not handled well by the nested-table logic, resulting in
unexpected wrapping (report by Dan Jacobson) -TD
* modify limit for CJK double-byte characters in display_line() to accommodate
a test-case rightSideEdgeTest.html provided by TH -TD
* add a workaround in LYStrings.c myGetChar() for PDCurses, which may return an
ERR value which is not -1 (reports by DK, William McBrine) -TD
* remove ifdef from 2.8.2dev.14 which omitted bindtextdomain() call from DJGPP
NLS configuration -DK
* modify autoconf macro AM_PATH_PROG_WITH_TEST to account for executable suffix
in win32 environment -DK
* correct a mistyped parameter to CreateThread() (report by DK) -TD
* do not use LIBOBJS symbol directly in configure script except to support
AC_REPLACE_FUNCS, since the autoconf macros dealing with that symbol changed
incompatibly in autoconf 2.54 (report by DK) -TD
* fixes to work with BeOS 5.0 -Nigel Horne
* use portable TXT_R rather than "rt" for popen() mode in clip_grab() (reported
by Antonio Maria Borneo) -TD
* modify makeutcb.c to avoid compile-time dependency upon gettext, in case it
is used in cross-compiling -TD
* modify expression for ws_read_per_sec in ws_netread() to avoid potential
divide-by-zero on a network error
(reported by David Potter) -Hataguchi Takeshi, -TD
* modify fix for Debian #335593 to ensure that only image maps for the current
page are listed (report by DK) -TD
* correct URL for HTML'ized description of all settings in lynx.cfg (report
by DK) -TD
* use configure macro CF_SIGWINCH to work around special case on Mac OS X
which leaves SIGWINCH undefined -TD
* add configure options --with-cfg-file and --with-lss-file to allow one to
specify the names and paths of the default configuration and color-style
files -TD
* change configure script --enable-color-style so it is enabled by default
(prompted by request by Jason Spiro) -TD
* add COLOR_STYLE setting to lynx.cfg -TD
* change default initialization of color-style code when no lss file is given
to simulate the non-color-style code. There are some visual differences,
e.g., links that contain a mixture of styles will display with mixed colors,
but overall the visual effect matches the non-color-style code well enough
to change the default configuration.
If an empty string is given for the lss filename, this is treated as an
empty style file, and lynx will not use its built-in default color style.
To make the behavior easier to diagnose, lynx will now exit with an error
if it cannot find the lss file. cf: 2000-07-16 (2.8.4dev.5) -TD
* fix a sign-extension in alignment case-statement in split_line() which could
cause a large indent for lines which are wider than the display (Debian
#360832, #372670) -TD
* fix ifdef's in LYOptions.c to make --disable-menu-options work (report by
2006-05-29 (2.8.6dev.18)
* suppress OpenSSL URL from version message if it happens to be built using
* change default for DEFAULT_INDEX_FILE in lynx.cfg to
since the Mosaic MetaIndex file is defunct (suggested by Stef Caunter)
* update makelynx.bat (report by FLWM) -TD
* add presentation for text/css, to allow browsing ".css" files -Stef Caunter
* modify LYPrint.c suggested_filename() to strip bzip2's ".bz2" suffixes as
well as ".zz" suffixes -TD
* modify configure script macro AM_PATH_PROG_WITH_TEST to allow for DOS device
letter, and to override $PATHSEP with $PATH_SEPARATOR if the latter is
set -DK
* modify ifdef in LYCurses.c to avoid using nonfunctional PDCurses 2.7
newterm() -DK
* update config.guess (2006-04-26) and config.sub (2006-05-13)
* improvements to configure script macros -TD
+ don't use curses_colr on HPUX 11
+ split-out CF_CURSES_HEADER to simplify comparison with CF_NCURSES_HEADER
+ modify AM_WITH_NLS to make it look in non-system locations, e.g., to
work with FreeBSD ports system
* modify HTLoadHTTP() to interpret leading asterisks in common name fields as
wildcards -Thorsten Glaser
* remove SH_EX hardcoded Latin-1 table for strcasecomp() -TD
* fixes for compiling in Cygwin environment -TH
+ modify not to check d_ino when __CYGWIN__ is defined because it
does not seem to be supported by Cygwin now.
+ modify to use fill_rehostent to avoid segfault in _fork_func,
which is used in Win32 environment (includes Cygwin).
* fix some printf formats -Thorsten Glaser
* fix some non-POSIX syntax in scripts/ -PG
* modify to ensure that scripts are prefixed with $(SHELL), in
case packager has stripped executable permissions from scripts, e.g., by
using CVS (report by Atsuhito Kohda) -TD
* add a null-pointer check in handle_LYK_HEAD() to cover a case where doing
a HEAD on a link failed because there was no submit action associated with
the link (report by Walter Ian Kaye, Stef Caunter) -TD
* improve script to cover the ranges and approximations used in
def7_uni.tbl -TD
* additional def7_uni.tbl conversions (patch by Tim Larson).
* fix ifdef's for repeated-include of winsock.h for Visual Studio 6 -TD
2006-01-22 (2.8.6dev.17)
+ correct an ifdef in HTMIME.c
+ correct the behavior of encoding a text in input element,
when the type is hidden and the text is japanese encoded utf-8.
+ correct "//TRANSLIT" position in iconv_open() parameter.
* remove redundant size-check in change for HText_trimHightext() in 2.8.5dev.8
to fix highlighting for this case:
<a href>Line 1<p>Line 2<p>Line 3</a>
(report by Andrew Belov).
* add U+213B FAX to def7_uni.tbl (Debian #344275) -TD
* adjust anchor extent to discount trailing blank which is trimmed when
rendering. If the blank is not trimmed, link highlighting in color-style
will show a spurious character (report by Karl-Heinz Weirich) -TD
* fixes to source-view of ftp:// and file:// URLs, i.e., eliminate redundant
PRE's, add DOCTYPE and meta tags (Debian #347989) -TD
* modify makefile.msc to ease scripted building of various configurations
without needing to edit that file -TD
* fixes to allow building with Visual C++ .NET 2003 -TD
* modify configure script checks for gettext to supply include- and lib-paths,
e.g., to work on partly broken platforms such as FreeBSD -TD
* modify parsing of filename from Content-Disposition so that the name is not
truncated on embedded whitespace. For most systems, the blanks will be
retained. For VMS and MSDOS, the blanks are translated to underscores
(Debian #291716) -TD
* add a range-check for references to the style cache -Andrew Belov
* modify fmt_tempname() to avoid the possibility of long random sequences that
do not yield an unused filename (report by FLWM) -TD
* modify install rules for lynx.cfg to allow for pathnames on OS/2 EMX that
begin with a drive letter rather than a slash -TD
* move scripts that are not part of the configure script into scripts
subdirectory:, cfg_edit, -TD
* improve workaround for line-drawing characters with font-switching by
checking if the loaded font has line-drawing characters in the same positions
as the terminal description, rather than simply ignoring line-drawing when
the codeset differs (report by Karl-Heinz Weirich) -TD
* fix some ifdef's that did not work when disabling all features -TD
* fix a typo in LYMap.c from Debian #335593 changes (report by Jens
Schleusener) -TD
* really remove pointer to moxienet (report by Stef Caunter) -TD
2005-12-18 (2.8.6dev.16)
* change configure option default for --enable-justify-elts to true -TD
* change default for JUSTIFY to "false" (suggested by Bela Lubkin) -TD
* update config.guess (2005-11-11) and config.sub (2005-11-13)
* print the contents of image maps, if any, at the end of a dump (Debian
#335593) -TD
* fix off-by-one line calculation that allowed the last page to be blank
(Debian #330413) -TD
* modify statusline() to retain one trailing blank if the given string has a
trailing blank. This makes prompts easier to read (report by Karl-Heinz
Weirich) -TD
* modify pipe read in LYGetHostByName() to retry until either the pipe closes
or the struct passed back from the child process completes. This is needed
for OS/2 EMX (report by Karl-Heinz Weirich) -TD
* strip unneeded "&nbsp;" from translation when building info page using
wide curses (Debian #342877) -TD
* add scripts/, which can be used to generate test pages for the
charsets from src/chrtrans/*.tbl -TD
* add ISO-8859-13 and ISO-8859-14 chrtrans tables, revise ISO-8859-10
based on
Change display name for ISO-8859-10 to indicate the region -TD
* add codepage 857 (DOSTurkish), since console-tools package provides a
suitable font -TD
* improve UCSetBoxChars(), checking if the current character set does not
match the character set inferred from the locale. This reduces the number
of cases where line-drawing in the options menu does not work -TD
* rename test/iso8859-1.html and test/iso88592.html to test/iso-8859-1.html
and test/isoi-8859-2.html, corresponding to the proper MIME names to
simplify test-scripts -TD
* update Linux console font support to use console-tools package (tested on
Debian). The configure script checks for consolechars and setfont programs
(must find at least one). The corresponding SETFONT_PATH can be set in
lynx.cfg to provide a choice between the two -TD
* strip special characters such as '%' from parameters passed to external
programs for EXTERNAL mechanism on Windows platform. This is ifdef'd
with WIN_EX (Hataguchi Takeshi).
* modify definition of addch_raw() to allow scrollbar to work with slang2
(this only works on the Windows platform) -GV
* modify LYSysShell() to use $COMSPEC if $SHELL is not defined -GV
* workaround for codepage support on OS/2 by changing the effect of unctrl().
Add/use new preferred function use_legacy_coding() to ncurses which provides
the same effect with the wide-character ncursesw (report by Karl-Heinz
Weirich) -TD
* fixes for de.po (Debian #313789, patch by Jens Seidel).
* add a null pointer check for HTCurSelectedOptionValue in HText_setLastOptionValue()
to improve handling of this fragment:
(Alexey Dobriyan).
* add a null pointer check in HTML_TAB case of HTML_start_element() to handle
this fragment:
(Alexey Dobriyan).
* remove pointer to
since it no longer has useful information about SSL for Lynx (Crouton).
* add description of configure --with-build-cc, etc., to INSTALLATION -TD
* modify Switch_Display_Charset() so the font-switching feature can be turned
off at runtime, rather than silently re-enabling it every time a new page is
viewed. The automatic switching is enabled if the user has configured lynx
to use one of the automatically-detected fonts -TD
* fix ifdef's to allow building --without-font-switch with OS/2 EMX -TD
* work around bug in PDCurses wrapping by adjusting LYcolLimit macro. The
dev.14 change to HText_appendCharacter() exposed this bug in the Options menu
(report by Hataguchi Takeshi) -TD
* fix change to lynx_default_colors() from dev.14 change to work with the
bright-blue.lss file (report by FLWM) -TD
* add a configure test for ctermid(), needed for OS/2 EMX (report by
2005-10-30 (2.8.6dev.15)
* update URL for VMS server information in LYCgi.c -TD
* modify LYLoadCGI() to prompt user, displaying the command that would be
executed, to confirm that it should be. This makes it easier to notice when
a local program would be run by activating a lynxcgi link. This is not done
in advanced mode, since the URL is already visible in the status line (report
by vade79, comments by Greg MacManus) -TD
2005-10-17 (2.8.6dev.14)
* add configure script support for large files; some changes made be needed to
the C code in dev.15 to exploit this -TD
* work around part of the forms-menu extra wrapping from dev.12 by adjusting
text-field maximum size in HText_beginInput(). There is still wrapping of
options lists, which has to be treated differently. The cause for this
is the fix made to HText_appendCharacter() in dev.12 -TD
* extend experimental option --enable-japanese-utf8, allowing lynx to convert
EUC-JP and Shift_JIS strings to UTF-8 -TH
* modify CF_BUILD_CC to avoid clobbering environment variable $BUILD_CC
(from ncurses changes) -TD
* remove special case in CF_XOPEN_SOURCE which suppresses _XOPEN_SOURCE
definition for Darwin (request by Emanuele Giaquinta)
* fix an off-by-one error in comparison in HText_appendCharacter(), from dev.12
changes which showed up as wrapped lines in the options menu -TD
* use h_addr_list[0] rather than h_addr in HTTCP.c for POSIX compatibility
(Emanuele Giaquinta)
* remove references to LIBCMU in HTTCP.c, since it is long obsolete -TD
* force a newline in HTML_end_element() after a </pre>, which causes lines
containing only whitespace before the </pre> to display a new line, rather
than putting that whitespace before text that follows the </pre> (report by
Thorsten Glaser for -TD
* improve fix for LYstartPopup() in dev.6 by keeping the menu width as-is and
adjusting its position rather than simply using the full screen-width when
the first try fails (report by Gene Small) -TD
* correct logic in lynx_default_colors() so the color-style configuration does
not attempt to use default colors on a terminal which does not support it
(report by Bryan Henderson) -TD
* add/improve limit checks in HTLex.c -Ulf Harnhammar, TD
* ifdef'd out unused code in HTGroup.c -TD
* eliminate fixed-size buffers in LYExpandHostForURL() to guard against
buffer overflow resulting from too-long domain prefix/suffix data from
lynx.cfg (report by Ulf Harnhammar) -TD
* add a check for missing ':' in gopher response, to recover from the error
(patch by Ulf Harnhammar)
* eliminate fixed-size buffers in HTrjis() and related functions to avoid
potential buffer overflow in nntp pages (report by Ulf Harnhammar,
CAN-2005-3120) -TD
* correct "escape" character used in HTMake822Word, which was literally an
ASCII escape character rather than the RFC-822 backslash from 2.8.2dev.3
changes (report by Frederic Briere, Debian #318034) -TD
* fix: when first "option" element of "select" had "disabled" attribute, Lynx
turned the entire "option/choice list" UNMODIFIABLE. The "disabled"
attribute of later "option" elements within the same "select" did not have
this effect. If the "disabled" attribute is honored, it should disable only
that element, not parent element or sibling elements (report by Paavo
Hartikainen) -TD
* make CF_TAR_OPTIONS configure macro work with DJGPP by using $EXEEXT -DK
* update config.guess (2005-09-19) and config.sub (2005-07-08)
* configure script updates from tin and ncurses -TD
* modify LYwaddnstr() to avoid sign-extension from changes in dev.12 (report
by FLWM) -TD
* modify initialization so that
cat options.txt | lynx -
will allow interactive use (report by Arne Kowallik) -TD
* add NO_MARGINS and NO_TITLE to lynx.cfg (request by Stef Caunter) -TD
* adjust line-position for form fields when -notitle option is used (report by
Arne Kowallik) -TD
2005-06-07 (2.8.6dev.13)
* add a check in LYnormalColor() to ensure that the color value is really
a color, i.e., do not do anything for monochrome displays (reports by
OpenMacNews and Jens Schleusener) -TD
* make -nomargins option apply to Options menu layout -TD
* changes to LYwaddnstr() in dev.12 exposed a case from dev.6 where the title
string was not truncated to avoid wrapping (report by PG) -TD
* changes to LYwaddnstr() in dev.12 allowed recursion in a case that was only
designed for iteration (report by OpenMacNews) -TD
2005-06-02 (2.8.6dev.12)
* add rw.po, vi.po from
* modify ".lss" files to work equally well on terminals setup with white text
on black background, or the reverse. This also required fixing a few places
in LYsubwindow() and curses_w_style() to make window backgrounds use the
colors given in the ".lss" default- and normal-colors lines -TD
* make ".lss" example files somewhat readable by modifying parser to remove
blanks from the color description lines and modifying the example files to
use this feature -TD
* modify scripts/ to use strict variable checking, Getopt::Std
to eliminate a uninitialized variable warning -TD
* modified fix for slang 2.0 which makes it clearer that the last parameter
of SLexpand_escaped_string is for UTF-8 -JED
* when SOURCE_CACHE_MEMORY is used, avoid repeated realloc's of the same
memory chunk (really annoying for a long document) -LP
* HTChunk extended to a linked list of chunks, additional put methods added.
Useful for pool infrastructure -LP
* add ".h" to .SUFFIXES rule in src/chrtrans/ to work around change
made in NetBSD "make" late in 2003, incorporated into the 2.0 release.
The CVS change notes:
Trim .SUFFIXES to only contain those used in this file.
(reported by Stef Caunter, comments by Klaus Klein and Martin Husemann) -TD
* modify LYhighlight() to allow for the case where a form link extends for
several lines. It was not providing enough padding to fill in the "_"
characters past the first line of the link -TD
* modify LYwaddnstr() to account for the case where LYhighlight calls it to
display a link which extends beyond the current line, i.e., it should be
wrapped. When lynx is built to use curses-pads, the highlighting was instead
truncated since it was computed according to the pad's limits. Fixing this
exposes some related problems with off-by-one's in GridText.c -TD
* correct parsing of "key 0xNN" lines in command-scripts, had omitted a "!"
to invert a check (report by Silvio Moioli) -TD
* correct off-by-one in expression for LYHideCursor(), since dev.6 changes
modified the LYcolLimit variable, changing it from the last usable column
value to the number of columns (report by DK) -TD
* correct expression in HText_appendCharacter() which was simplified in
2.8.5dev.4, but broke a comparison used for text-justification -TD
* adjust wide-character offset computation in HText_trimHightext() to account
for soft newlines, i.e., the cell reserved to show continuation lines -TD
* modify source-view toggle to keep the current anchor visible. Toggling
source view may change the line number on which the anchor is found,
requiring some adjustment. This feature is implemented only for source
cached pages -TD
* remove obsolete ifdef in LYwaddnstr() for ncurses 5.1's experimental UTF-8
support -TD
* modify HTConfirmCookie() and statusline() to allow cookie prompt message in
Japanese to not be truncated when using wide-curses -TD
* modify logic for locale_charset configuration variable so it is not modified
simply by saving the .lynxrc while in running in a non-locale configuration.
That does not alter the display charset used by lynx -TD
* correct calculation of extra space available for justification in
split_line() for the wide-curses configuration. Changes from dev.6
made this count formatting control characters twice, resulting in some
lines too long when justification was enabled -TD
* improve description of command-line option syntax in the manpage, including
noting how to find the default values for most options (Debian #292393) -TD
* modify is_true/is_false macros for processing command-line options to accept
"true" and "false" strings for consistency with the lynx.cfg parser, and to
ignore case of the boolean option values -TD
* add -notitle option to suppress title line and following blank line to
maximize screen use for small displays (request by Daniele Baggio) -TD
* add -nomargins option to suppress left/right margins to maximize screen use
for small displays (request by Daniele Baggio) -TD
* add null-pointer checks in HText_setLastOptionValue() to guard against empty
<select> (report by Al Viro) -TD
* fixes to allow compiling with slang 2.0 prerelease 5 -GV
* fix to avoid divide-by-zero in ws_netread() -GV
* modify ifdef for popup_choice() to work with handle_LYK_LINEWRAP_TOGGLE() on
NetBSD 2.0 (report by Gabor Z Papp) -TD
2005-01-05 (2.8.6dev.11)
* add presentation type for application/xml and text/xml mime types as per
which states that they may be used, though application/xhtml+xml is the
preferred media type (Debian #184482) -TD
* remove an extra free() introduced in fixes from dev.10 for leak-checking
(reports by Thorsten Glaser, FLWM) -TD
2005-01-02 (2.8.6dev.10)
* correct final sed command in help_files.sed which was not a basic regular
expression, left some links ending with .gz.gz -TD
* update config.guess, config.sub
* modify configure script to check for Intel compiler 8.0 -TD
* modify ifdef's for USE_DEFAULT_COLORS, disabling it if the
use_default_colors() function is not found -TD
* modify to allow compiling with C++ compiler, e.g., rename conflicting
keywords such as new, class, template (suggested by Nelson Beebe) -TD
* remove leading/trailing blanks from suggested title string for ADD_BOOKMARK
(request by Walter Ian Kaye) -TD
* add tags rules to's -TD
* repair fix for Debian #171312 by ensuring that it is only invoked if a URL
fragment was found in the getfile() call (report by PG) -TD
* correct leak-checking for result of LYAddHilite(), which was not freeing
the associated strings -TD
* correct leak-checking for result of LYcommandList(), which was not freeing
the associated strings -TD
* correct pointer initialization in LYCheckForProxyURL() broken by fix for
Debian #240237 (reported by GV, Stef Caunter) -TD
2004-12-30 (2.8.6dev.9)
* remove fixed limit on history[] array (report by Richard Eyre) -TD
* improve logic for highlighting links which extend to multiple lines by
ensuring that if they cover a blank line that the following lines of the
link will be highlighted rather than the blank line (report by Hataguchi
* replace most instances of exit() by exit_immediately(), except those needed
for the leak-checking code, to add an ifdef'd call to _nc_freeall() which
simplifies testing with valgrind -TD
* fix definition of put_clip(), to compile in Windows environment (Hataguchi
* update da.po, et.po, hu.po, nl.po, sv.po, tr.po from
* fix for mouse versus network I/O -GV
Building the djgpp version with S-Lang and mouse-support causes network I/O
to stop when Lynx is idle waiting for key/mouse events. This patch adds a
djgpp_idle_loop() function that does what getxkey() used to do; calls
tcp_tick() to finish off closed sockets and reply to pings etc. Tested with
PD-curses 2.6 too, but I couldn't get mouse to work under DOS. Not sure
that's possible at all.
* add "Anonymous FTP Password" to Options menu, to allow user to override use
of personal email address as the anonymous ftp password (Debian #137480) -TD
* modify LYCheckForProxyURL() to check if a colon follows a slash, which would
make the colon not part of a URL (report/patch by Matt Kraal (Debian
* add test/special_urls.html -TD
* update test/iso8859-1.html (minor fixes) from
* add check for broken WU_FTPD 2.6.2-12, e.g., at, and
disable EPSV. This is ifdef'd with BROKEN_WU_FTPD and checks version (Debian
#66560, as well as April 2003 reports by HN, PW) -TD
* modify getfile(), etc., to ensure that following a link consisting of a
fragment will move the cursor to the link containing the target rather than
simply ensuring that it is visible (Debian #171312) -TD
* modify ShowInfo() to list the rendered size in bytes if the Content-Length
is not available (Debian #61085) -TD
* modify print_wwwfile_to_fd() and void print_crawl_to_fd() to ensure that no
trailing blanks are written (Debian #204515) -TD
* modify behavior when user attempts to toggle a radiobutton off, to make the
message that one radio button must be selected only in novice mode (Debian
#121520) -TD
* make the maximum number of cookies configurable in lynx.cfg, added
#152810) -TD
* reduce embedded blanks in button labels to single blanks -TD
* reduce embedded blanks in title strings to single blanks (Debian #284679) -TD
* add command-line option (-syslog-urls) and lynx.cfg settings (SYSLOG_TEXT,
SYSLOG_REQUESTED_URLS) to allow syslog'ing of URLs to be optional. This
cannot be set from the options menu (Debian #282739) -TD
* modify HTParse() to restore a slash which may be removed during
simplification of URLs such as "file://localhost/tmp/..". The
LYFillLocalFileURL() function would then append the current directory to the
URL rather than the expected "/". This case which happens in DIRED, was
caused by 2.8.5dev.15 changes (Debian #285140) -TD
2004-11-07 (2.8.6dev.8)
* improve def7_uni.tbl substitutions for the symbols beginning at U+2600
(patch by Tim Larson <>).
* update nl.po, sv.po from
* add -TD
* scripting fixes to make OpenVMS/IA64 platform build/work -TD
* several changes to use const, prompted by VMS compiler warnings -TD
* remove -TD
* simplify -TD
* modify, making its second parameter a comma-separated list of the
special libraries which may be used, e.g., bzlib, slang, ssl and zlib -TD
* some cleanup using non_empty() macro -TD
* limit TEXTAREA columns to the screen width, and rows to 3 times the screen
height (report by FLWM) -TD
2004-10-17 (2.8.6dev.7)
* update de.po, et.po from
* clarification in manpage description of "-pseudo_inlines" option (Dan
* correct parsing of embedded URLs which have parameters but no path, e.g.,
and embedded
(Debian #274619, report/analysis by Liam K Morland) -TD
* improve description of --assume-local-charset option (Debian #270915) -TD
* revise configure script check whether _POSIX_C_SOURCE should be defined,
taking into account the _POSIX_SOURCE definition (report by PG) -TD
* add --with-system-type option to configure script to simplify testing the
case-statements involving $host_os -TD
* fix a memory leak in IPv6 version of HTGetAddrInfo() -TD
* modify HTCompressed() to choose the last viewer in the list with the best
quality. User-defined viewers appear after the built-in viewers, and by
choosing the last, lynx allows one to override the built-in defaults -TD
* add "deflate" to the encoding types which lynx implements. This consists
of several parts (report by Thorsten Glaser) -TD
+ adapted logic from w3m's inflate.c to construct an internal "deflate"
decompressor. Tested this with
+ simplify VMS-specific logic for trimming version in HTLoadFile().
+ combined VMS- and Unix logic for decompression in HTLoadFile() as a new
function decompressAndParse() to eliminate clutter. As a side-effect,
eliminate some memory leaks in cases where the file is not loaded properly.
+ add/use new function HTEncodingToCompressType() to eliminate clutter.
+ add "deflate" to the options menu.
+ modify logic that builds "Accept-Encoding" value to omit encodings which
have no external decompressor associated. The effect of this change is to
allow lynx to behave as it did before adding the (possibly incomplete)
"inflate" support.
+ add INFLATE_PATH to lynx.cfg, to optionally specify an external program
which can be used to decompress deflated files. For testing, a shell
script using w3m's utility, e.g., /usr/lib/w3m/inflate, sufficed.
NOTE: As currently implemented, lynx requires the external decompression
programs to be specified even if it can decompress using library calls.
+ use ".zz" for suffix of downloaded (but not inflated) deflated files,
mapped to application/deflate and application/x-deflate.
* fix LYSetConfigValue(), which did not properly handle the CONF_PRG case which
is used to allow user configuring the program paths -TD
* fix content_is_compressed() function, which was checking for the absence only
of some nonstandard encodings (8bit, 7bit, binary) rather than for the
presence of the encodings as specified in RFC 2068 (gzip, compress, etc).
This makes lynx able to view a site
which puts the charset as the Content-Type (report by FLWM) -TD
* fix configure script: top-level makefile uses $(TAR), which was not defined
if --without-dired option was used (report by Gabor Z Papp) -TD
2004-10-10 (2.8.6dev.6)
* highlight the target and pause for 20 milliseconds when selecting a link with
the mouse -GV
* improve layout of options-menu and info-page for multibyte character sets by
computing the extent of the labels. This works only for wide-character
curses (this addresses part of Debian #240069) -TD
* improve check in LYstartPopup() for case where a window would be created too
far right to be entirely visible. ncurses changes in 20040417 to allow
windows to extend beyond the terminal limits exposed this problem (which may
have occurred with other versions of curses). Older versions of ncurses
would return an error in this case (forcing lynx to do the proper layout),
obscuring the actual problem. Noticed that the same problem applies to slang
configuration, and applied a comparable fix there too -TD
* modify HTConfirmCookie() to ensure the translator's note is copied into the
lynx.pot file, by adding a gettext("Y/N/A/V") call after the comment -TD
* remove references in to the "intl" subdirectory since that is no
longer packaged with lynx -TD
* modify column limits, allowing text to be written to the last column on the
screen. This allows users to view text which is formatted for 80 columns
without the last character of each line wrapping to the next line -TD
* minor fixes to fr.po (Debian #119751, and aspell) -TD
* remove newline from format in lookup_reject(), fixes a bug introduced in
2.8.5dev.2 which caused traversal reject-lookups to fail -TD
* minor fixes to fr.po, cs.po and pt_BR.po to eliminate fatal errors as
reported by "msgfmt -c -v" -TD
* minor fix to fr.po (Debian #271048, report/patch by Arnaud Giersch).
* update URL for "HTML Quick Reference Guide" in lynx_help_main.html (report
by Jim Jackson) -TD
* update hu.po from
* remove a "defined(gettext)" from the ifdef's in HTConfirmCookie(), since
recent GNU gettext, e.g., 0.13.1, introduced an incompatible/undocumented
change to make the function a macro which is defined in terms of dgettext()
(Debian #204994, report by Mattias Ostergren) -TD
* modify pumpData() in HTMIME.c to improve recovery when a charset is found
that cannot be translated. Before this change, the charset was not stripped
from the format string, e.g.,
text/html; charset=big5
and since there would be no match for the format, lynx would offer to simply
download the page (if interactive), or refuse to format (for dumps).
Although the content of the page is unusable, the user can still navigate
the page using the links which may be there (Debian #254603) -TD
* add -nonumbers option, which modifies the output of -dump to suppress the
link-numbering (Debian #255571) -TD
* add -listonly option, which modifies the output of -dump to show only the
list of links (Debian #255571) -TD
* modify treatment of symbolic links for ftp-URLs to show the link target, as
with the local directory editor -TD
* correct sort-order of local directory listing, using the target of a symbolic
link to determine whether it is grouped with files or directories (adapted
from patch by Kees Cook) -TD
* modify template for temporary-directory name, adding "lynx" prefix (Debian
#267356) -TD
* fixes for configure script macros used for --enable-nls when --srcdir is
used (from bug report for dialog by Mike Castle) -TD
* improve configure script macro CF_XOPEN_SOURCE, ensuring that _POSIX_C_SOURCE
is defined with a value (comment on comp.sys.stratus newsgroup) -TD
* reduce TRST_MAXROWSPAN and TRST_MAXCOLSPAN to 200, which is more plausible
than 10000 by 1000 (discussion on lynx-dev related to report by Edgard
Pineda) -TD
* modify LYShowInfo.c to entify most strings, and provide for alignment of
fields in different locales -TD
2004-06-30 (2.8.6dev.5)
* use LYEnsureAbsoluteURL() on the value passed to handle_LYK_HELP() in case
it is of the form file:///path rather than file://localhost/path -DK
* add configure check for ncurses' curses_version() function, using that in
the "-version" output. Add comparable ifdef's for PDCurses and slang -TD
* Some patches to enable IPv6 on Windows (tested with MingW and MSVC6). Some
minor cleanups also -GV
+ LYutils.c; fixed extraction of module/system error strings.
+ Xsystem.c; use <io.h> for mktemp() prototype.
+ HTTCP.c; don't use global host[], fixed call-convention of thread- function
(must be __stdcall). Sets pending WSAHOST_NOT_FOUND error status.
+ HTTP.c; _thread_func() wasn't __stdcall.
+ LYexit.c; avoid redeclaring error of exit() in <process.h>. IMHO it's very
bad to shadow ANSI functions like this. Should call LYexit() explicitly.
+ www_tcp.h; cleanup for MSVC and IPv6 headers and macros. Increase
* updated po files (da.po, et.po, hu.po, sv.po, tr.po) from
* change HTDOS_wwwName() and HTVMS_wwwName() to return a const value (report
by Serge B) -TD
* update configure script macros CF_XOPEN_SOURCE (fixes Debian #238057) and
CF_X_ATHENA (from xterm) -TD
* update config.guess (2004-06-24) and config.sub (2004-06-24)
* modified mailcap command and testcommand substitutions to provide for
running the testcommand's after program initialization (prompted by review
of Debian #167200, which gave as example a mailcap using %{charset} in the
test commands) -TD
* add (ifdef'd with EXP_HTTP_HEADERS) code in HTMIME.c to collect and in
LYShowInfo.c to display the full text of the HTTP headers -TD
* correct command-line options table for "-get_data" and "-post_data" which
were processed twice, thereby discarding the value (Debian #132674) -TD
* lynx accepts multiple URLs on the command line; all are added to G)oto
history. Documented this in manpage (Debian #177062) -TD
* modify logic for -dump so it can dump all pages listed on the command line
(Debian #199131) -TD
* add presentation type for application/xhtml+xml mime type as per RFC 3236
(report by Elimar Riesebieter) -TD
2004-05-23 (2.8.6dev.4)
* use puts() rather than printf() in some messages to avoid chance of "%" in
the translation -TD
* add experimental option --enable-japanese-utf8 for using libiconv for
Japanese and UTF-8 -TH, TD
* update makelynx.bat -Victor Schneider
* modify configure script CF_ADD_CFLAGS to put definitions of quoted strings
* fixes from Thorsten Glaser:
+ check for arc4random as a possible random function.
+ modify configure script CF_CHECK_CACHE to look for config.guess in
$ac_aux_dir if it is not in the source directory.
* fix naming conflict with AS_cmp() function when NOT_ASCII is defined -PG
* read user's ".newsauth" file for news-server authentication information
(prompted by A R Vener request) -TD
* modify HTSaveAndExecute() to check first for result from HTFileSuffix()
before choosing between BIN_SUFFIX and HTML_SUFFIX. This allows the PDF
viewer on OS X to get the proper suffix (.pdf) rather than .bin -PG, TD
* filter out extra screen-repainting when a charset change is made -IZ
* update README and other documentation to reflect new mailing list -TD
* add PREFERRED_ENCODING to lynx.cfg, along with an options-menu selection for
this, to set "Accept-Encoding:" string -TD
* add PREFERRED_MEDIA_TYPES to lynx.cfg, corresponding to the option for
HTFilterPresentations(). A minimal set of media types is used by default,
though the old behavior can be selected -TD
* modify HTFilterPresentations() to use new option menu entry for specifying
what parts of the user- and system-mailcap data to use in Accept's. The
intent is to provide easily managed subsets of the Accept string, to work
with servers that do not accept long Accept strings (prompted by discussion
on lynx-dev mailing list) -TD
* Remove logic from HTFilterPresentations() which reduced the Accept strings
based on wildcards since RFC 2616 says wildcards are lower precedance than
other settings -TD
* improve matching for mailcap test-commands in HTInit.c by eliminating
unnecessary whitespace with TrimCommand() -TD
* remove obsolete note about SSL patches in lynx_url_support.html -TD
2004-05-06 (2.8.6dev.3)
* add scripts/, use this to reindent C source files -TD
* bump version in to 2.8.6 -TD
2004-04-27 (2.8.6dev.2)
* modify CF_NCURSES_LIBS to only look for -lmytinfo when building with ncurses.
This works around FreeBSD's broken linker semantics when configuring for
ncursesw -TD
* update CF_GNUTLS macro to look for -lgnutls-openssl as well as the older
-lgnutls-extra library -TD
* fix a spurious match of <openssl/ssl.h> when --with-ssl=path option provides
enough information to ensure that the test would be incorrect -TD
* update config.guess (2004-02-16), config.sub (2004-02-23)
* fixes to src/chrtrans/, e.g., for building PDCurses version,
broken by dev.1 changes for cross-compiling -TD
* remove macros such as ARGS1, NOPARM which supported K&R compilers -TD
2004-04-19 (2.8.6dev.1)
* correct ifdef in LYgetattrs() to ensure that getattrs() is used only if the
configure script actually found it (report/patch by Paul Gilmartin).
* correct LYcommandList() to allocate data passed to HTList_addObject(), since
LYRemoveFromCloset() may free it (report by FLWM) -TD
* modify configure-script check for use_default_colors() to allow it to find
NetBSD's implementation of that function (report/patch by Julian Coleman)
* check for non-null file pointer in cleanup of makeuctb to work properly when
it is invoked without command-line parameters (report by FLWM) -TD
* add a null-pointer check to parameter of HTQuoteParameter(), fixes bug
introduced in 2.8.5pre.4 (report by FLWM) -TD
* correct units shown by HTReadProgress() for very low rates - bug from
2.8.5pre.3 changes (report by PG) -TD
* use symbol USE_VERTRACE in HTUtils.h to allow makefiles that do not use the
configure script to turn on the equivalent --enable vertrace feature (request
by FLWM) -TD
* modify configure script and makefiles to allow cross-compiling -TD
* make ANSI C required, drop support for K&R C -TD
* update current-version in README -LP
* updated po files (da.po, de.po, et.po, hu.po, tr.po) from
* use autoconf 2.52 (plus patches), to simplify use in cross-compiling -TD
* escape "From " when it appears in a page which is mailed, to avoid confusing
mail clients -TD
2004-02-04 (2.8.5rel.1)
* build fixes for MINGW32 -DK
* build fixes for OS/2 (reported by IZ) -TD
2004-02-02 (2.8.5pre.5)
* MINGW32-specific changes to build with that configuration using the configure
script in Cygwin and "-mno-cygwin" option -DK
* move Cygwin defines for WIN_EX, _WINDOWS_NSL out of www_tcp.h, to the
configure script to fix a definition-order problem with CAN_CUT_AND_PASTE
(report by DK) -TD
* improve workaround for ncurses to build with pre-4.0 versions that do not
declare attr_t -TD
2004-01-28 (2.8.5pre.4)
* workaround to build with ncurses 4.2 -TD
* fixes from Thorsten Glaser:
+ use ${GNUSYSTEM_AUX_DIR}/mkinstalldirs if it exists.
+ use $ac_config_sub variable in CF_CHECK_CACHE macro.
+ add case in CF_XOPEN_SOURCE macro to prevent defining _XOPEN_SOURCE
+ use $(MKINSTALLDIRS) variable in generated makefile.
+ correct comment in lynx.cfg for the default value of FTP_PASSIVE
+ increase pattern length for mkdtemp() call.
* add command-line & menu option/config variables to replace the compile-time
UNDERLINE_LINKS definition (suggested by BL) -TD
* correct ownership of installed lynx_doc directory (report by FLWM, PG) -TD
* modify configure check for tar to test several common variants including
star, modify to use the configured 'tar' program (request by
* compiler ifdef-fixes -BL
* documentation updates for DJGPP and OpenSSL -DK
* fixes/updates for DJGPP makefiles -DK
* modify po/makefile.inn to substitute the PACKAGE and VERSION strings into
lynx.pot automatically, and to remove the unused boilerplate header comment
(suggested by LP) -TD
* fixes for substituted project-version in configure script -TD
2004-01-24 (2.8.5pre.3)
* update documentation's version numbers for release -TD
* modify configure check for libbz2 to allow for older headers which do not
include <stdio.h> -TD
* add configure option --enable-locale-charset, which adds configure settings
and an option-menu checkbox telling lynx if it should use the function call
nl_langinfo(CODESET) to find the display character set rather than rely on
the user to set it via lynx.cfg or the options menu (discussion with Andreas
Metzler) -TD
* remove intl subdirectory (gettext-0.10.35), since some of the ".po" files
have been modified to rely upon newer features of gettext. Modified
configure script macro to report this properly -TD
* add SSL_CERT_DIR, SSL_CERT_FILE to (suggested by Stef Caunter) -TD
* documentation updates for DJGPP -DK, LP, FLWM
* update address for Free Software Foundation in COPYHEADER and COPYING
(Atsuhito Kohda).
* change CF_CHECK_IPV6 to warn rather than error-out if a working getaddrinfo()
function cannot be found. The previous behavior would warn on Linux and
error-out on other systems (report by RobertM) -TD
* localized displayed strings used for popups in options menu -TD
* add SHOW_KB_NAME to allow user to decide whether to display "KB" or "Kib"
or even "Kilobytes" for the progress message (discussion on lynx-dev) -TD
* correct form generated to select Visited Links page in LYHistory.c to match
the values used in LYOptions.c with new function LYMenuVisitedLinks, and
corrected ifdef to ensure that menu is generated when the forms-based option
menu is configured (report by TH) -TD
* modify configure check for ranlib to use AC_CHECK_TOOL, since AC_PROG_RANLIB
does not do proper cross-compiling checks. This actually applies to autoconf
2.5x -- autoconf 2.13 does less in that area -TD
* update config.guess (2004-01-05) and config.sub (2004-01-05).
* ensure that freeaddrinfo() is only called if lynx has initialized its
parameter, fixes a core-dump on IRIX6.5 -TD
* change remaining references for to (reported by
Frederic L W Meunier) -TD
2004-01-19 (2.8.5pre.2)
* update URLs in docs/README.ssl (Stef Caunter, DK).
* use rather than the messy -DK
* update some URLs in lynx_help -FLWM (Frederic L W Meunier)
* remove a few unnecessary #include's (reported by Frederic L W Meunier) -TD
* fix some compiler warnings with casts -PG
* add docs/ directory to "make install-doc" rule. If the help-files are
compressed, the same will apply to the non-README files in that directory
(reported by Frederic L W Meunier) -TD
* minor fixes to allow compiling with K&R compiler, e.g.,SunOS 4.x with the
5lib curses -TD
* split up remove_file() in LYLocal.c so directory removal is performed in a
separate function remove_directory(). Neither will perform an "rm -rf",
but only single operations "rm" and "rmdir". The original behavior can be
obtained by setting RMDIR_PATH to point to a script which does "rm -rf"
in lynx.cfg (suggested by Pat Walsh).
* modify configure script so NetBSD does not define _XOPEN_SOURCE, since that
makes the IPv6 code not compile -TD
* modify configure script to prefer _SGI_SOURCE on IRIX6.5 to allow it to
compile IPv6 support (report by RobertM) -TD
* replace fixed-buffer Style_className[] with a dynamically-allocated buffer,
needed for large pages which lack correctly-nested tags, e.g.,
(reported by Frederic L W Meunier) -TD
* move OMIT_SCN_KEEPING definition to LYHash.h, to avoid mismatch between the
LYCurses.c and HTML.c -TD
* remove obsolete OPT_SCN ifdef from HTML.c since the inactive side does not
compile -TD
* fix a few out-of-bounds errors in LYSetHiText() and related functions,
which were found by valgrind -TD
2004-01-07 (2.8.5pre.1)
This version has been test-built on
* Linux (ncurses, ncursesw, PDCurses, slang),
* FreeBSD 4.9, 5.1 (ncurses, ncursesw),
* Tru64 4.0d, 5.1 (cc, curses),
* OpenVMS,
* OS/2 EMX,
* win32 (Visual C++ 6.0 and Borland C++, Cygwin),
* AIX 4.3, 5.1,
* HPUX 11,
* Solaris 8, 9.
Other recent builds include IRIX 6.5 (cc and gcc, curses/ncurses),
FreeBSD 4.1, 4.8, NetBSD 1.5, 1.6 and OpenBSD 2.8 (curses/ncurses).
2004-01-07 (2.8.5dev.17)
* fix initialization of LYlines and LYcols for curses configurations other than
ncurses which implement pads -TD
* fix ifdef's for alloca(), e.g., on AIX 4 -TD
* fix misspelled LYGetEnv/LYgetenv in DJGPP configuration -DK
* a few portability fixes to allow building on OS/2, AIX, Tru64 and HPUX -TD
* add docs/README.rootcerts -IZ, Stef Caunter, Johannes Hromadka
* update po files (ca.po, da.po, de.po, et.po, hu.po, ru.po, sv.po, tr.po and
zh_CN.po) from
* correct some mismatches between INSTALLATION and "configure --help" (prompted
by discussion with Stef Caunter) -TD
* undef conflicting symbols "small" and FILE_DOES_NOT_EXIST which are
misdefined in Cygwin's w32api headers (report by Frederic L W Meunier) -TD
* amend check for refresh-URL to ensure it only prepends a link for text/html
content type (report by Carlton Anderson) -TD
* do not strip parameters from refresh-URL (report by Carlton Anderson gave an
example of their use) -TD
* correct logic for resetting count of leading/trailing spaces in S_litteral
case (report by TH) -TD
* remove obsolete XMOSAIC_HACK defines -TD
* adapted patch by Bjoern Jacke <> to ensure that toupper(),
tolower() and isupper() macros are interpreted in POSIX locale. This is
ifdef'd with EXP_ASCII_CTYPES -TD
* improve check for Unix-style shell given in $SHELL by limiting the check to
the base-name (discussion with GV, DK) -TD
* modify increment_tagged_htline() to reallocate its HTLine parameter if the
result would be larger than the allocation. This can happen when a large
textarea is adjusted (report by Thorsten Glaser) -TD
* add ifdef'd logic to change HTLine to calloc() rather than memory pools,
making it possible to use valgrind, etc., for debugging -LP
* modify version shown for SSL to be derived from runtime SSLeay_version()
function if linked with OpenSSL or SSLeay. Add corresponding definition
for GNU TLS (discussion by Frederic L W Meunier, GV) -TD
* add check for broken ProFTPD 1.2.5rc1, e.g., at,
and force a reconnection if an error 550 is detected when doing RETR. This
is ifdef'd with BROKEN_PROFTPD and checks version (reports by GV, DK) -TD
* modify file-upload to not print a warning message if the form-field is empty
(Frank Heckenbach).
* add a few null-pointer checks to GridText.c (addresses symptoms reported by
Frederic L W Meunier when nested-tables are toggled off) -TD
* modify LYTrimNewline() to trim carriage-returns as well as line-feeds, making
it possible to share cookie files between platforms that have different
line-terminations (report by Frederic L W Meunier) -TD
* change a few configure script defaults to "enable": source-cache, prettysrc
and read-eta. Also change default for read-eta configuration flag to "Show
KB/Sec" (requests by LP, Frederic L W Meunier) -TD
* modify generated help_files.sed script to fix a couple of cases where the
intermediate result had more than 2 ".gz" substrings to reduce (reported by
* change configure script to compile-in file-upload by default, change its
corresponding ifdef to USE_FILE_UPLOAD -TD
* use EXEEXT, OBJEXT substitutions in -TD
* update configure script check for getbegx(), etc -TD
* revert table-layout changes from dev.15/dev.16 because of unresolved
issues -TD
* add configure option --with-bzlib -TD
* modify bzip2/zlib ifdef's to make them independent -TD
* implement support for bzip compression by internal calls to libbz2 -IZ
* make usage of EDIT_A_PREV_SHORTCUT and EDIT_THE_PREV_SHORTCUT consistent
(report by LP) -TD
* if a document is in the cache (the rendering is in memory), on reload it
should not be cleared from the cache until the connection to the server is
opened; if the connection fails, the user will reuse the old version (request
by IZ) -LP
* for DJGPP, escape all backslashes in commands given to LYSystem() when
a Unix-style shell is given in $SHELL -DK, TD
* correct strings in LYOptions.c so ENABLE_LYNXRC works for bookmark_file
and run_all_execution_links -DK
* modify comparison in USE_CURSES_PAIR_0 ifdef of parse_attributes() to take
into account the mono-attributes as well. This fixes a case where a color
style might have the same color-attributes as the background, and would
incorrectly fall-through to use the mono-attributes (report by DK) -TD
* rewrote lynx_chg_color() to handle a COLORS value of 16 (report by TH) -TD
* redefine PDCurses' COLORS value to 16, since it incorrectly uses 8 -TD
* add -scrsize option and corresponding SCREEN_SIZE value to lynx.cfg to allow
lynx's screensize to be specified. To display background color properly,
this also requires a patch to PDCurses:
This requires PDCurses 2.5 and higher -TH
* add a clean-rule to src/chrtrans/makefile.bcb -TD
* fix pathname generated for "View temporary file" in LYDownload.c using new
function LYAddPathToSave() (report by P.J.Walsh) -TD
* comment-out --enable-libjs option since it is not used -TD
* change code to match lynx.cfg description for FORCE_COOKIE_PROMPT and
FORCE_SSL_PROMPT, making "prompt" rather than "default" the keyword to use
when telling lynx to prompt (report by DK) -TD
* really add FORCE_COOKIE_PROMPT setting to lynx.cfg (report by DK) -TD
* change default of configure script options --enable-source-cache and
--enable-prettysrc to non-experimental to "yes", so they will normally
be compiled-in, but normally disabled in lynx.cfg (suggested by LP).
* modify configure script and related ifdef's to build with gnutls 0.8.9
(report by Atsuhito Kohda) -TD
* modify ifdef's to use mkdtemp() if it is available (prompted by MirBSD
patch) -TD
* several fixes from (TG) (Thorsten Glaser - MirBSD):
+ workaround for invoking shell scripts when executable permissions are
discarded as a result from using CVS.
+ adjust buffer-size used in a readlink() call in case the result is too
long to include trailing null.
+ change default ftp mode to passive.
+ if ftp connection fails, automatically retry, switching between passive
and active modes. Do this retry switching only when connecting to a
different host. A new variable ftp_local_passive distinguishes this
from the user preference in ftp_passive.
+ improved certificate handling (case-insensitive domain-comparison, strip
port-numbers from comparison).
+ fix a few typos & compiler-warnings.
* add PT154 charset support. See for more information.
(patch by Timur Birsh <>)
* integrate some improvements for configure script in CF_BUNDLED_INTL and
CF_OUR_MESSAGES from tin and dialog -TD
* remove #undef for UTF8 from UCMap.h, rename UTF8 variable, modify configure
check for slang to test-compile with with the Debian slang-utf8 package -TD
* modify configure script to not use "head -1", which does not work for some
platforms when POSIXLY_CORRECT (sic) is set -TD
* fix configure script check for term.h, which may be <ncursesw/term.h> -TD
* modify an ifdef in HTCheckForInterrupt() to allow compile with DJGPP -GV
* add docs/README.sslcerts (Stef Caunter <>).
* modify LYLocalFileToURL() to allow for CurrentDir() returning a value that
does not begin with a slash, e.g., with DJGPP which returns a drive-letter
first -DK
* amend change in dev.15 to HTParse() to escape spaces, to exclude non-URL
strings such as absolute filenames (report by Patrick Ash) -TD
* modify LYParseTagParam() (added in dev.13) to not stop on ';' (fixes a bug
reported by LV which broke complicated refresh-URL containing "&amp;") -TD
* change default start page to, since is not
maintained -TD
* modify HTML_start_element() to work with a case where there is an HREF
attribute without a value, fixes bug introduced after dev.9, e.g., for
(also reported by Frederic L W Meunier for -LP
* correct construction of link to temporary filename in download options, did
not port to DOS-pathnames (report by LP) -TD
2003-06-01 (2.8.5dev.16)
* add zh_CN.po from
* updated obsolete link for nntp in users's guide -TD
* add F_FILE_TYPE to F_TEXTLIKE() macro, and use it consistently in a few more
places, making editing in filename fields consistent with other text input
fields -TD
* add LYAdjHiTextPos() to modify the behavior of color-style code, so leading
blanks are not highlighted (reported by Frederic L W Meunier) -TD
* modify CacheThru_new() to accept "https:" URLs for source-caching (report
by Chuck Martin) -TD
* adapt some of the SH_EX ifdef'd features (TD):
+ add -delay option, to make progress messages slow, along with corresponding
code for lynx.cfg
+ show build date/time for systems that do not use a configure script.
+ use LYK_CHG_CENTER keycode bound to ^Q to control whether table cells are
centered. The command-line -center option also controls this behavior.
* add BIN_SUFFIX, TEXT_SUFFIX to userdefs.h -TD
* modify BeginInternalPage(), adding a doctype to generated internal pages
to allow validating them -TD
* modify HTFWriter.c to use binary suffix for any file with an application
presentation type, to better distinguish it from text and html. Use text
suffix for any "text/" file other than "text/html". These changes cover the
most common cases needed to make a link to view the temporary file useful in
the download page -TD
* modify LYdownload_options(), adding a link to view the temporary file if the
downloaded file is text or html -TD
* modify LYwouldPush(), omitting the download page from list of user-interface
pages which should not be pushed onto the history stack when visiting another
page, such as info or help. Otherwise the downloaded file is discarded
(report by BL) -TD
* simplify set_vi_keys() and related functions using table-driven
set_any_keys() and reset_any_keys() -TD
* HTAnchor_findAddress now returns HTParentAnchor, avoid casting -LP
* change select timeout in HTCheckForInterrupt() to zero, allowing immediate
return rather than waiting (DJGPP otherwise blocks for 50msec). For Unix
platforms, the DontCheck() function limits the amount of polling which
otherwise would be too much CPU usage -LP
* modify configure check for gcc -Winline warning to work around defect in
gcc 3.3 -TD
* fix bug introduced recently in forms-submitting for TEXTAREA; the "%0d%0a"
was put after each line rather than before, making the first and second lines
joined (report by LV) -TD
* reset the leading/trailing space counts in error-recovery logic added in
2.8.5dev.15 for S_litteral case in SGML_character(). Otherwise a mismatch,
e.g., due to a stray "<" or ">" in <script>...</script>, prevented a match
on the </script> -TD
* do not free adult_table[] atexit - it should be perfectly empty after
free'ing all HText's. (There is an error if it is not empty at exit) -LP
* unnamed child anchors (`children_notag' list) now use HText memory pool.
Links properly deleted when reparsing the document -LP
* Use less memory for documents with many anchors: most anchors are never
visited, just stored for the reference. So fill in adult_table[] with
HTParentAnchor0 (36 bytes size) instead of full HTParentAnchor (~200 bytes).
HTParentAnchor now allocated on demand, nearly 1:1 to HText. [more comments
in HTAnchor.h, changes located in HTAnchor.c] -LP
* HTParentAnchor0 stores its hash value, to avoid calling HASH_FUNCTION twice
on the same anchor (Re: HTAnchor_delete()) -LP
* fix a potential out-of-bounds bug in HTBEquivalent() -LP
* change strrchr() calls to strchr() in a few src/*.c file when parsing
"#fragment" left-to-right -LP
* modify HTFWriter_abort() to remove file on error -IZ
* added hot.paste style which puts a right-arrow at the UR corner (which is
currently unused). Clicking on it initiates a GOTO to the current selection
(same as PASTE_URL action). The hot.paste style is disabled unless STYLES
and CUT_AND_PASTE are both enabled. Disabled and the user defines hot.paste
in the ".lss" file -IZ
* modify LYK_PASTE_URL case in LYMainLoop.c to allow pasting URLs of the form
<address> and "<URL:address>" to lynx. This is useful when it is not easy to
choose address without the surrounding "<>" or "<URL:>" -IZ
* make a minor memory saving (circa 15%) for table processing, improve yet
another case of "ladder" (as in the top of google results), and fixes one
case of "wrong indentation" (elements of a table which contained <center>
were made too wide) -IZ
* modify Stbl_trimFakeRows() to compensate for 2.8.5dev.15 changes to
Stbl_addRowToTable() from 2.8.5dev.15 which caches shrinking cell arrays in a
pool. It did not take into account reallocation of the same data, e.g., in
Stbl_reserveCellsInRow(). For example:
(report by Patrick Ash) -IZ
* add FORCE_COOKIE_PROMPT setting to lynx.cfg, allowing for manipulation in the
options menu and (if LYNXRC_ENABLE is set) via the .lynxrc file. This lets
the user decide whether to ignore prompting for cookies with invalid syntax.
If the prompts are ignored, a corresponding message is displayed -TD
* add FORCE_SSL_PROMPT setting to lynx.cfg, allowing for manipulation in the
options menu and (if LYNXRC_ENABLE is set) via the .lynxrc file. This lets
the user decide whether to ignore prompting for questionable aspects of
an SSL connection. If the prompts are ignored, a corresponding message is
displayed -TD
* change select() calls to use the expected 1+descriptor value documented for
that function rather than FD_SETSIZE. It is possible that some very old
or unique platform would not work, but this is more efficient (discussion on
lynx-dev) -TD
* modify logic for S_litteral case in SGML_character() to recover from spaces
between the '<', '>' and the corresponding end of the tag, e.g.,
<style >
< style >
< style >
match "<style>", and
</style >
< /style >
< /style >
match "</style>" (report by TH) -TD
* correct a check in HText_trimHightext() for the last line of the display,
which left unhighlighted the portion of a multi-line anchor which fell in
that place (report by TH) -TD
* correct an off-by-one in redraw_lines_of_link() which left the link on the
last line on a page highlighted when moving the cursor up (reported by Morten
Bo Johansen) -TD
2003-04-27 (2.8.5dev.15)
* change definition of docdir1, helpdir1 to avoid using ksh-semantics (see
2.8.5dev.2) -TD
* update ja.po, uk.po, zh_TW.po from
* improve layout of TRSTable.c, reducing "laddering" effect, where cells in
different columns do not overlap by lines -IZ
* modify SGML_new() to allow display charset-switching when reloading a
document -IZ
* fix a buffer-size in LYK_PASTE_URL case in LYMainLoop.c -IZ
* various improvements to load-time for TRSTable.c -IZ
As a test:
This is a simple table with 2 columns, one with bold contents, another with
italic one. The total number of rows is 500K. With the patch and an
acceptable malloc(), lynx should use the working set of about 110M to show
the table. On my system with 128M memory, this leads to only 4M of the
process space swapped.
* add case LYK_TO_CLIPBOARD to HTCheckForInterrupt (not a good place), to allow
COPY command to work during download (copying the location to clipboard).
The best thing would be to get the location *after* redirects, but this will
require some additional work -IZ
* add popen-based support for cut/paste. This is a slightly reworked patch to
GNU readline. If RL_PASTE_CMD and RL_CLCOPY_CMD are defined in the
environment, lynx will use them as commands to do cut&paste. The simplest
such commands could just store/retrieve things from
/tmp/.clipboard_user-name; more advanced ones could use X clipboard -IZ
* modify yawerty_kb.h to map U+0411 and U+0431 to 'B' and 'W' positions
respectively. The map contained U+0412 and U+0432 at those positions,
which are duplicated at other positons -IZ
* fix HTLoadFinger() which was miscasting const data -TD
* update Subir Grewal's Lynx links URL to the newest location -TD
* add configure option --with-gnutls, to allow lynx to be built with gnutls.
Used gnutls 0.8.6 on Redhat 8.0 to login at yahoo (gnutls is not very
portable, so this is an experimental option) -TD
* modify loop in HTInitProgramPaths() to convert enum ProgramPaths to an
integer, to accommodate HPUX 11.22 compiler (report by JES) -TD
* amend change in dev.13 to HTParse() to escape spaces, to exclude lynx's
internal URL types such as lynxprog (report by P.J.Walsh) -TD
* modified ifdef's to enable -connect_timeout option for DJGPP -GV
In particular, in LYUtils.c, undef "select" in case Lynx is compiled with
curses (and not S-Lang). Watt-32's select_s cannot be used on a
stdin handle, so one must undef it and use DJGPP's select().
* modify ifdef in HTCheckForInterrupt() to work with MingW and PDcurses -GV
* add version information for the macros in aclocal.m4 (request by Lars
Hecking) -TD
* modify file-upload to use actual binary-data rather than base64-format -TD
* generate unique boundary for multipart data in HText_SubmitForm() -TD
* reorganize HText_SubmitForm(), maintaining post data using bstring's -TD
* modify HText_SubmitForm() to add field name for the fake coordinate pair
when formatting a multipart submit (report by Peter Pilsl
<>) -TD
* change post_data to a bstring; implement functions and macros for
manipulating bstring data. This allows post_data to maintain embedded nulls,
e.g., for file-upload -TD
* fix ifdef's for <ncursesw/term.h> -TD
* fixes for file upload -IZ
+ modify logic for headers use write them even if MultipartContentType was
not set.
+ change logic for base64 to be used ONLY if \0 was found.
If a "strange" char is found, only change "text/plain" to
* change a couple of _user_message() calls to HTUserMsg2() calls so their
content is saved in the "Messages" buffer -IZ, TD
* undo 2002-11-11 SGMLFindTag optimization (problem with color styles,
reported by IZ). Optimize the function by storing the previously found tags.
Also use my_casecomp() to decrease AS_casecomp() calls by testing the
first character manually -LP
* optimize HTStyle comparison: just compare numbers from enum.
It was previously implemented as a strcmp comparison with a fixed string.
Used in a very inner loop, in HTML_put_character() -LP
* LYEnsureAbsoluteURL() now absorbs LYFillLocalFileURL() call -LP
* optimize LYLegitimizeHREF() -LP
* in HTML.c, revise href resolving logic. HTAnchor_findChildAndLink now
resolves href with respect to BASE internally; HTParse incorporates
LYFillLocalFileURL call (after the parsing, and only when the related string
is not empty and parse includes access, host, path and punctuation). This
removes all LYFillLocalFileURL and most HTParse calls from HTML.c and makes
code more consistent. (Previously, functions were called in a different order
for document with/without BASE, which had the side effect in some cases,
e.g., href="c:" on a DOS machine was resolved properly with _any_ base, and
badly broken without:) -LP
* add/use HTParseALL macro to simplify coding -LP
* revise "internal links" logic (read KW 1997-11-03 notes, before v2.8).
In HTML.c and HTAnchor.c, internal links code affects only parent lookup
in the adults table (more correct in case of post data), now a mainline:
we omit "#ifndef DONT_TRACK_INTERNAL_LINKS" condition in the two files.
In HTML.c, avoid using internal links for unrelated `src=' attributes
* refine HTAnchor_delete() vs deleteLinks() mutual recursion logic - LP
* change ALIGN_SIZE in GridText.c to sizeof(double), which is probably more
portable than "8" -LP
* modify a syslog() call to guard against possible '%' in its parameter -TD
* remove extra quotes from calling HTMake822Word() for form boundary names
(addresses bug report for by P.J.Walsh) -TD
2003-02-04 (2.8.5dev.14)
* correct a missing ">" at the beginning of page sent as response to mailto -TD
* simplify (clarify) anchor structure: links now moved from HTAnchor to
HTChildAnchor (the only place they were used). By this we avoid unneeded
casting in calls to HTAnchor_followMainLink, HTAnchor_followTypedLink,
deleteLinks. [GridText.c, HTML.c, LYList.c, HTAnchor.c] -LP
* as of 1998-11-21 "workaround for multiple anchors in the same (invalid) HTML
document with the same NAME and different destinations (HTAnchor.c) - KW",
along with skipping HTAnchor_link() call in this case now, we realize that
HTChildAnchor may have only a single link. (Previously implemented by
mainLink and links list). This simplifies HTAnchor.c -LP
* simplify HTChunk.c -LP
* optimize LYRemoveNewlines() and LYRemoveBlanks() -LP
* check for no common name (CN) in certificate when connecting via SSL, fixes
a SIGSEGV with
(patch by Hataguchi Takeshi)
* add uk.po (Ukranian) from
* modify HTList_linkObject to avoid an infinite loop in HTList_unlinkObject due
to relinking some node several times, corrupting the previous list chain -LP
* increase ATEXITSIZE to 50, 40 was not enough -TD
* ifdef-out call to Cygwin_Shell() in LYMainLoop.c, which does not work
properly for some environments (report by Corinna Vinschen
<>, forwarded by Frederic L W Meunier) -TD
* correct a bug in HTAnchor_findChildAndLink() introduced in dev.13 handling
USEMAP, e.g.,
(reported by Frederic L W Meunier) -LP
* minor fixes for K&R compiler on SunOS: prototype of HTDOS_slashes(),
definition of LYLeakSequence -TD
2003-01-22 (2.8.5dev.13)
* change new memory-allocation in HTString.c and GridText.c to provide pointers
to data aligned to the host's pointer-size, to work on Tru64 where this
happens to be 8 -TD
* resync ".po" files using msgmerge -TD
* remove quadratic complexity from insert_blanks_in_line() usage with large
tables (Stbl). It occasionally cleans up split_line() a bit. CPU load
anomaly reported by BL -LP
* ALLOC_IN_POOL, POOL_NEW, POOL_FREE macros now became functions, suggested by
* define HAVE_ALLOCA for djgpp fixed-configuration -LP
* add command-line option (--nested-tables) to help in testing this feature -TD
* add command-line option (--find-leaks) to disable the memory leak checking
code, allowing one to build an executable which is useful for both normal
and leak-checking (request by Frederic L W Meunier) -TD
* improve performance of HTParse() for very long strings -LP
* fix memory leak in HTFileSaveStream() -LP
* further optimization in HTAnchor.c - save 3 mallocs per HTChildAnchor by
using new HTList_ functions: HTList_linkObject(), HTList_unlinkObject(),
HTList_unlinkLastObject() which utilize external memory, no malloc/free -LP
* modify "make install-help" rule to avoid warning message about keystrokes
subdirectory (report by Martin Mokrejs) -TD
* optimize !HText_TrueLineSize() expressions as HText_TrueEmptyLine() -LP
* optimize is_url(), rewriting it as case-statements to avoid unnecesary
comparisons, make similar optimization in HTParse() -LP, TD
* corrected logic in is_url() where the "://" was not necessarily checked in
the proper position - TD
* for color-style configuration, add a link to lynx.lss from LYNXCFG: -TD
* simplify setup of internal pages with new function InternalPageFP() -TD
* modify parsing of refresh-URL to strip single quotes, to handle
(reported by LP) -TD
* investigated conflict between NSL_FORK and _WINDOWS_NSL ifdef's for Cygwin
configuration in HTTCP.c; left them as-is since #undef'ing _WINDOWS_NSL in
that case causes problems connecting (feedback by Frederic L W Meunier) -TD
* corrected an off-by-one error in computing the location of the bottom line
for mouse input in PDCurses configuration which made that area ignore mouse
clicks. Merged almost-identical cases for mouse-input for NT/Windows95 -TD
* ifdef'd out (USE_CURSES_PAIR_0) the ASSUMED_COLORS logic for the PDCurses
configuration (reports by DK) -TD
* LYSetHiText(), LYAddHiText(), and LYClearHiText() use HText memory pool -TD
* add atexit-cleanup for history stack, removed incomplete code for this from
cleanup(), since that gave misleading results in leak-checking. Fix a few
small leaks as well (reported by LP) -TD
* modify cleanup() to leave the trace file open if checking for leaks -TD
* add some simple statistics to summary in Lynx.leaks report -TD
* add malloc-sequence number to Lynx.leaks report, to help with debugging -TD
* fix memory leaks in nested-tables logic, which did not free subtable data
if there was an enclosing table (reports by Frederic L W Meunier) -TD
* adapted change by LP to allocate HTLine's from memory pool -TD
* move fallback definition of MAXHOSTNAMELEN from HTFTP.c to www_tcp.h so it
can be used in HTTCP.c (Debian #140682) -TD
* improved configure script checks for ncurses -TD
* correct description of XLOADIMAGE_COMMAND in lynx.cfg (report by Mats
Peterson <>) -TD
* fix configure script so it does not compute basename of system mailer when
none was found. Add check in LYMail.c, LYPrint.c to avoid using system
mailer when it is not configured (report by Frederic L W Meunier) -TD
* update several po files (da.po, de.po, et.po, hu.po, sv.po, tr.po) from
* correct logic in recent HTAnchor_findChildAndLink() changes around internal
links and fragments; avoid unneeded reallocations by using HTParseAnchor()
instead of HTParse() -LP
* trim some fat from HTML_start_element(), case HTML_A -LP
* add optimized string functions StrAllocCopy_extra() [and paired FREE_extra()]
which store string size and never shrink; for heavily reallocated strings in
temp objects. Used in SGML.c for value[] fields currently -LP
* in HTUtils.h, FREE macro was unsafe if happen before 'else' -LP
* modify HTParse() to escape any spaces which remain from LYLegitimizeHREF() or
other sources (report by Peter Rasmussen <>) -TD
2002-12-18 (2.8.5dev.12)
* remove a check in LYMain.c for Cygwin's console, which does not work with
screen (report by Frederic L W Meunier) -TD
* undo line/pool logic, fixing a memory leak -LP
* changes proposed by Bela Lubkin, to optimize ALLOC_IN_POOL macro
substitution, pack bitfields in HTStyleChanges to make them more compact on
some systems -LP
* correct logic of do_check_recall(), broken in dev.9 cleanup of pathname
constants with LYIsDosDrive() (report by Frederic L W Meunier) -TD
* update makelynx.bat, built with slang configuration -TD
* turn on file-upload in makefile.msc -TD
2002-12-01 (2.8.5dev.11)
* fix a typo in changelog date -TD
* add project version & date to lynx.cfg -TD
* document xxx_PATH variables in lynx.cfg -TD
2002-11-11 (2.8.5dev.10)
* modify file-upload to provide content-type based on file-suffix. This is
needed to validate local html files with current the W3C validation service
webpage -TD
* modify file-upload to warn but permit the filename or file contents to be
missing (report by Clemens Fisher) -TD
* workaround for compiler bug in fix_httplike_urls() -BL
* change enumShowColor so SHOW_COLOR_NEVER is zero as in 2.8.3, which makes the
result from LYChoosePopup() match the enum values. This fixes a bug which
would make the slang configuration toggle back to color when accepting an
options screen (report by Sean McGuire <> and Carlton
Anderson) -TD
* add a null-pointer check in content_is_compressed() -TD
* in partial mode, load document with #fragment on the fly. Long awaited fix.
LYMainLoop_pageDisplay() now returns BOOL -LP
* calculate WWW_SOURCE once, it is now a constant, not a define -LP
* use malloc instead of calloc in several places, particularly in HTList
operations (each field initialized explicitely) -LP
* fix a few typos in samples/mailcap (Carlton Anderson
* ifdef'd default_fg and default_bg for PDCURSES to be 15, since that agrees
with lynx's use of color names, and works around a bug exposed by the
ASSUMED_COLORS change from 2.8.5dev.9 (report by DK) -TD
* simplify pretty-source code in SGML.c using PUTS(), put_pretty_entity() and
put_pretty_number() -TD
* refine S_attr test in SGML.c to make pretty-source code handle the case where
a blank precedes the '='. The misplaced markers made lynx omit newlines from
the pretty-source view (report by LP) -TD
* rewrote HTStat() to ensure that it does stat() for files on Windows -TD
* HTTCP.c patch to make DJGPP/Watt-32 non-blocking connect in HTDoConnect().
This allows pressing 'z' to abort connections. Removed extra _HTProgress()
for INET6; it overwrote previous progress message -GV, DK
* in SGML.c, element stack now use a pool of 10 elements to avoid most of
malloc/free calls -LP
* in HTParse(), use single alloca instead of three malloc/free pairs -LP
* in HTParse.c, avoid most strcasecomp calls in scan() - LP
* modify GridText.c to store lines, anchors, and forms in the same HText memory
pool as styles. This will optimize memory allocation/deallocation by 8Kb
units. The down side: lines in TRST mode will be stored twice. Some
structs are made a bit more compact -LP
* add DJGPP to SINGLE_USER_UNIX special cases -DK
* modify configure script to not strip the -g option from $CFLAGS if it was
present in the user's environment rather than autoconf adding it (report by
* add --with-curses-dir configure script option -TD
* in SGMLFindTag, we translate string uppercase in-place and launch case
insensitive search, add SGMLFindUprTag() to cover the cases where the string
is readonly - LP, TD
* DJGPP build restored. MV_PATH was undefined long ago by mistake. Fix recent
DJGPP changes in HTTCP.c: move _resolve_hook few lines below, it will not
compile otherwise. Remove minor warnings -LP
* optimize parsing html with many relative links, href="#fragment" -
HTAnchor_findChildAndLink() and HTML_start_element(), case HTML_A: now avoid
significant overhead when link == HTInternalLink (e.g., resolving against
base, lots of reallocations, parent lookup, etc., all are useless). Two
functions affected. [HTAnchor.c, HTML.c]. The code works both with and
* optimize parsing of large html files - with thousands of anchors - LP
+ remove quadratic complexity from split_line() usage [GridText.c].
Because of some work with anchors on the last(=split) line,
the anchors list was traversed from the beginning for each output line.
Now we store last_anchor_before_split explicitly.
[According to gprof, split_line() weight decreased from 33% down to 4%,
with the following test file: 13,000 output lines, 3,100 anchors, ~800Kb]
+ remove quadratic complexity from HTAnchor_findChild() usage [HTAnchor.c].
HTParentAnchor::children list was traversed zillion times, now we
split it into a tree (named anchors <a name=...>, fast search required)
and a list (just a storage for the rest anchors, no search required).
[The same file, gprof shows HTAnchor_findChild() weight decreased
from 11% down to 0.1%]
+ remove quadratic complexity when generating a 'l'ist page,
now traverse anchors list only once [LYList.c, GridText.c].
* add a search method to HTBTree implementation - LP
* amend check for refresh-URL to avoid adding a link if the retrieved page is
compressed, since the link would be added to the compressed file, corrupting
it (reported by Michel SUCH and Karl-Heinz Weirich <>) -TD
* strip parameters from refresh-URL -TD
* correct misspelled $LYNX_LOCALEDIR variable in LYMain.c (reported by Michel
* change the install procedure for lynx.cfg to attempt to update the file with
the user's customizations if any, and to save the old configuration
information in a series, e.g., lynx.cfg-1, lynx.cfg-2, etc. -TD
* re-fix the problem with config.cache not being removed at the beginning of
the configure script - see 2.8.5dev.3 (report by Clemens Fisher) -TD
2002-10-06 (2.8.5dev.9)
* improve ETA data shown in experimental read-progress (adapted from Debian
#117476) -TD
* modify -dump, -source and related options which set dump mode to also set
-nopause (report by Benjamin Pflugmann <>) -TD
* correct indexing in LYStyle.c our_pairs[] array, which did not allow for use
of default colors -TD
* make ASSUMED_COLORS in lynx.cfg apply to normal curses implementations which
do not implement assume_default_colors() (prompted by discussion with
Bela Lubkin) -TD
* make permanent an ifdef from SH which provides for truncating a too-long
title with an ellipsis -HN
* gettext'ify a few overlooked strings in LYOptions.c -HN
* modify LYGetHostByName() for MSDOS/DJGPP/Watt-32 to enable terminating it by
pressing 'z' (patch by Gisle Vanem)
* update configure script macros for NLS to gettext 0.10.40 -TD
* add PRCS version/date to lynx.cfg -TD
* setup ifdef's for Unix-specific permissions checks to exclude single-user
systems such as OS/2 EMX, Cygwin and BeOS, which otherwise act like Unix
since we can run the configure script on those platforms -TD
* re-order some tests in the configure script to allow pdcurses' X11 port to
be recognized as supporting color and line-drawing characters -TD
* work around a Cygwin bug which causes subprocesses of a full-screen program
to dump core (perhaps reported by Frederic L W Meunier, but observed in
running lynx in a bash shell spawned from my directory editor) -TD
* fix an inequality in HTDirTitles() which made the "Up to" link omitted for
the first level of an ftp listing, making it awkward to visit the parent
directory if one first visited a subdirectory -TD
* change HTURLPath_toFile() to keep local URLs distinct from remote ones, so
win32 version will not display misleading drive letter on ftp listings -TD
* rewrote Home_Dir(), adding checks for "My Documents" on Windows 2000, and
ensuring that the resulting directory actually exists -TD
* change ifdef's in LYwaddnstr() to use waddstr() consistently, since
wide-character curses implementation treat the string in the given locale
anyway, just like the waddnwstr() call -TD
* reduce clutter with new macro LYIsDosDrive() -TD
* add ifdef's for OS/2 EMX to existing DOSPATH code which checks for drive
letter (Michel Such)
* modify definitions of IsOurFile() and OpenHiddenFile() to allow trace file
to be written when one already exists -TD
* use new macros LYSameFilename(), LYSameHostname(), LYIsNullDevice() to hide
platform-specific filename comparisons -TD
* change sed delimiter in configure script to use '%' consistently, to avoid
using '@', which may appear in AFS pathnames (report by Martin Mokrejs) -TD
* narrowed accommodation for paths with embedded blanks in LYLegitimizeHREF()
to exclude those containing newlines or tabs (report by Leslie Fairall for -TD
* modified VMS build scripts to allow linking with OpenSSL, tested with
OpenSSL-0.9.6g using UCX network libraries. It is reported (by
<>) that one can modify the scripts to also build
with Multinet's UCX emulation, but the machine I used for testing has only
UCX (comp.os.vms discussion with Christoph Gartmann
<>) -TD
* modify UCSetBoxChars() to assume wide-character curses implementations can
draw boxes -TD
* reduce the number of strncasecomp() calls with associated constants by making
macros for the lynx internal URL types, e.g., isLYNXCGI() -TD
* modify logic that handles goto-fragment (e.g., G #foo) to update the URL
shown in the info page (Debian #113734) -TD
* reduce clutter using new macros findPoundSelector(),
restorePoundSelector() and function trimPoundSelector() -TD
* reduce clutter using functions for updating the strings in DocInfo, mainly in
LYMainLoop.c -TD
* renamed 'document' to 'DocInfo' -TD
* reduce clutter by using NonNull() macro consistently -TD
* define HistInfo struct in terms of document, to make it clearer -TD
* add verification of SSL server certificates. It requires a "cert.pem" file
or cert files in the "certs" subdirectory in your OpenSSL directory for CA
verification. The mod_ssl distribution includes a "ca-bundle.crt" that has a
good set of root certifying authority certs and works well for "cert.pem".
Adding custom CA root certs can be done by either putting them in the server
"cert.pem", or (for a normal user) copying "cert.pem", adding the cert, and
setting the SSL_CERT_FILE environment variable before running Lynx (Chris
Adams <>).
* add REPLAYSECS config value to allow slowing command scripts down, for
testing -TD
* implement a "set" command for command-scripts, allowing the script writer
to manipulate the sleep-times for messages (prompted by discussion with
Ville Herva) -TD
* implement an "exit" command for command-scripts (Ville Herva)
* modify logic for -cmd_script to stop reading from the command script when
an end-of-file is detected (patch by Ville Herva <>).
* fill in a few descriptions of restrictions for the help message, as well
as showing the on/off state of the "goto_xxx" restrictions -TD
* correct inverted logic of restrictions table which made "-restrict=default"
provide incorrect values for several items. This was broken in 2.8.4dev.19
(reported by Jeff Long <> and RobertM <>) -TD
* add environment variable LYNX_TRACE_FILE which, if given, overrides the
compiled-in value of Lynx.trace (or LY-TRACE.LOG). This specifies the
name of the trace file relative to the home directory -TD
* treat empty string for most environment variables, e.g., those specifying
a pathname, as null -TD
* add environment variable LYNX_LOCALEDIR to simplify configuration on OS/2
EMX (from discussion with Michel Such) -TD
* add alias for charsets "ISO-8859-8-I" and "ISO-8859-8-E" to "iso-8859-8"
(Debian #152441, request by Atsuhito Kohda) -TD
* modify handling of HTML_SUP to always append '^'. It was checking if the
preceding character was a valid hexadecimal code (reported by HN and Steve
White <>) -TD
* correct check for calling endwin() to allow for curses implementations
without newterm (report/patch by Brett Lymn).
* add koi8-r.html as a test for non-ANSI 8-bit displays -TD
* construct "Accept-Encoding" gzip/compress parameters based on whether lynx is
built with zlib and/or gzip/compress paths are defined. The latter is
assumed on Unix (by the configure script), though non-Unix environments may
lack those utilities (report by Roy Langford <>,
analysis by Frederic L W Meunier) -TD
* modify mouse support in slang configuration (Eduardo Chappa):
+ Middle button takes you to the bookmarks file.
+ Clicking on empty parts of the screen makes the screen scroll. This is
not 100% true, here are the caveats related to this:
+ When you click in the first line of the screen pine goes back one screen,
the same happens when you click in the last line (this is normal Lynx
behavior, I did nothing in this respect). With this patch, intermediate
scrolling is enabled, which means that left clicking in different (empty
parts) of the screen may move you half a screen or two lines. The idea
is that close to the top you scroll more, close to the center you scroll
less and you scroll in the direction up or down according to which half
of the screen you click on.
+ If you click on an empty part of the screen, Lynx changed its behavior
from doing nothing to moving the active link to the closest link near the
click. This is not disabled by this patch, instead, if a closest link is
not found, the screen will scroll, according to the position of the link.
* improve check in LYgetEnum() for ambiguous/abbreviated names in the lynx.cfg
file, e.g., to match the string "visited_links=first" without confusing it
with "visited_links=first_reversed" (report by vortex5 <>,
analysis by TH) -TD
* use StrAllocCopy() rather than strdup() in parse_style() (LYStyle.c) to
avoid false report from leak-checking (from report by Martin Mokrejs) -TD
* share SSL handle between HTTP.c and HTAAUtil.c so that call of
HTAA_shouldRetryWithAuth() from HTLoadHTTP() updates the handle used in that
function. This makes lynx able to get the user/password prompt for -TH
* fix a highlighting problem in view-source mode, which left the final
character of the target unhighlighted -TH
* modify LYStringToKeycode(), which is used by -cmd_script option to decode
characters, to handle hexadecimal codes written with -cmd_log option from
dev.8 changes (reported by Gleb V Kotelnitskyy <>) -TD
* modify ifdef's in LYCurses.h to implement underline-links for slang
configuration (report by TH) -TD
* modify checks with WEXITSTATUS() and similar "result" macros to ensure that
they consistently use corresponding "test" macros such as WIFEXITED() -TD
* add a null-pointer check in GridText.c to cover a problem with
(reported by Walter Ian Kaye) -TD
* add some more CTRACE's to LYCookie.c to help diagnose LV problem report -TD
* updated nl.po (patch by Pieter-Paul Spiertz <>) -JES
* new (cs.po, hu.po, tr.po) and updated (da.po, et.po, it.po, ru.po, sv.po) po
files from, used msgmerge
to align with 2.8.4's lynx.pot and corrected some minor issues highlighted by
check_po. Checking for a newer version of check_po (to handle patterns
such as "%1$s") found none, but noticed a comment in gettext mailing list
stating that msgfmt does checking. Comparing with "msgfmt -c -v", found
that it does useful checks, but misses about 1/4 of what check_po finds.
Will use both -TD
* escape blanks and other non-7bit graphic characters in startfile and similar
addresses to guard against interpreting the address as multiple lines
during a GET, etc (report by Ulf Harnhammar <ulfh@Update.UU.SE>) -TD
2002-05-28 (2.8.5dev.8)
* updated makelynx.bat (Victor Schneider).
* recognize charset value in meta description even if content-type is not
given, in LYHandleMETA() -VH
* remove ifdef that disabled home/end keys with Cygwin configuration -DK
* fix a problem when whereis target string, which includes Japanese and is top
of the second line in the link string, is in the current link (patch by
Hataguchi Takeshi).
* fix a problem with highlighting Japanese string (patch by Hataguchi Takeshi).
* modify LYDownload() to ensure that local addresses under DJGPP using the
special form of path beginning "/dev/" are passed to external programs
without stripping the initial slash from the path. This special form of path
will be understood only by other DJGPP programs. Addresses of the form
"/dev/x/" are equivalent to the DOS path "x:\". Addresses of the form
"/dev/env/VARI" are equivalent to the environment variable "VARI" -DK
* modify remove_bookmark_link() to assume that OS/2 EMX does not allow rename
of a file overwriting an existing one -IZ
* recognize local .php files as HTML files (patch by Karl Eichwalder
* change LYCurses.c to not redefine gettext(), and use ScreenClear() instead
of clrscr() for DJGPP -DK
* the DJGPP port of Lynx once used to compile with DJ Delorie's tcp/ip library.
It is no longer the case; Watt-32 is required. Changed to assume WATT32 is
defined when DJGPP (or __DJGPP__) is defined (patch by Gisle Vanem).
* change LYKeycodeToString() to provide a default translation for characters
which are not key-symbols, etc., so they may be used in command scripts
with the -cmd_script option (reported by Christoph Fabianek) -TD
* new po files (ca.po, et.po, it.po, zh_TW.po) and updated de.po from, used msgmerge to align
with 2.8.4's lynx.pot and corrected some minor issues highlighted by
check_po script by Stefan Hundhammer <> -TD
* some cleanup/restructuring of HText_SubmitForm(), incomplete - toward
implementing correct MIME boundary -TD
* revalidate user's guide and related files using W3C validator via file-upload
facility -TD
* simplify some loops in GridText.c using new function next_anchor() -TD
* quote field-names used when submitting form-data as suggested in RFC 2068
(report by Lieven Tomme <>) -TD
* remove configure-check for mkstemp(), which is redundant given that lynx
writes temporary files in a directory which is not readable by other users.
On more than one system (e.g., Solaris), mkstemp() is not usable in the
manner we attempted, since it does not necessarily choose a distinct name if
the previously-chosen filename no longer exists (report/analysis by PG) -TD
* correct a typo in configure macro CF_HEADER_PATH which told the script to
look for header files in the user's $HOME/lib rather than $HOME/include
directory -TD
* update config.guess, config.sub -TD
* add check for HTTP headers using Netscape extension "Refresh", and if found,
add a corresponding refresh-URL at the beginning of the document. Fixes
Debian #126723 -TD
* strip username from URLs used in an HTTP GET, and warn about this condition.
The example given was
the text of which could mislead a user into believe it was an official site
(reported by Frederic L W Meunier) -TD
* add limit checks in HText_trimHightext() to fix an infinite loop visiting
this site (which contains a form with only hidden input fields):
2- Click "Cadastro" and accept all cookies
3- Click "[accepte.gif]"
(reported by Frederic L W Meunier) -TD
2002-01-06 (2.8.5dev.7)
* ifdef'd new directory-sorting code to compile when configure --disable-dired
is specified -TD
* add (commented-out) definitions for building with OpenSSL in makefile.msc,
tested with OpenSSL 0.9.6c and Visual C++ 5.0 -TD
* correct call to HTGetLinkInfo() in follow_link_number() from 2.8.5dev.6
changes to fix uninitialized pointer (report by PW) -TD
2002-01-01 (2.8.5dev.6)
* add configure options to link with dbmalloc and dmalloc debugging libraries
which offer different features than --enable-find-leaks -TD
* restructured LYhighlight() and logic related to highlighted text using new
functions LYSetHilite(), LYAddHilite(), LYGetHiliteStr() and LYGetHilitePos()
to allow more than two lines to be highlighted in links (Debian #114062) -TD
* simplified some of LYCookie.c with new functions find_domain_entry(),
alloc_attr_value() and parse_attribute() -TD
* modify expansion of %s for WIN_EX EXTERN commands so that short names (used
when the command begins with an uppercase character) are not quoted, and use
backslashes. The normal %s expansion uses forward slashes and may quote the
name if it contains a blank -TD
* modify local directory sort by type to ignore leading '.' characters when
looking for filetype -TD
* modify logic of HTDirEntry() to avoid storing a trailing backslash (DOS-style
path separator) in the anchor URL for local directory entries (from report
by Hataguchi Takeshi) -TD
* amend change in 2.8.5dev.2 to HTLoadHTTP() to omit "Accept-Encoding: gzip"
ensuring that also -source or -dump option is used. Retesting
shows that it no longer matters, since the page was replaced by a short
javascript which is not sent compressed (request by Hataguchi Takeshi) -TD
* correct a missing definition for COMPRESS_PROG in the configure script
introduced by 2.8.5dev.5 changes (also noted by Stepan Kasal) -TD
* several fixes from Stepan Kasal <>:
+ remove code in LYCurses.c which checks ttytype variable for "dec-vt"
prefix. EWAN, a decent telnet program for M$ Windows, sets $TERM to
dec-vt100. This is similar to vt102 but it is not appropriate to use vt100
settings for it. ncurses has in its terminfo database an entry for
"dec-vt100|EWAN telnet's terminal"
The terminfo file is successfully opened when ncurses is initialised and
ttytype is set to the name mentioned above. After stripping "dec-" from
it, lynx ends up searching for
"/usr/share/terminfo/v/vt100|EWAN telnet's terminal"
which cannot cannot be found and lynx crashes.
+ compress installed html files with the -9 option of gzip.
+ improved install-help makefile rule
* fix some longstanding problems with the DOS port -DK
+ fix inability to break out of a hung nameserver lookup or hung connection
attempt without aborting lynx entirely. Using the WATT-32 signal handler
for this seems to work well. Change the default compile option for DJGPP
to -DIGNORE_CTRL_C, causing lynx to ignore SIGINT, so CTRL-BREAK is
completely disabled. With this patch CTRL-C stops current actions without
quitting lynx. To have a way to abort lynx when necessary, bind ALT-X to
SIGQUIT. (The unix default of CTRL-\ is not bound to the same scan code on
different international keyboards, while ALT-X is familiar to DOS users for
existing programs). Because the WATT-32 signal handler was not available
to external programs, a patch to WATT-32 is necessary for the new lynx code
to work. The patch for WATT-32 is shown in the INSTALLATION documentation.
+ added some fixes for "/" vs "\" handling in pathnames so that non-DJGPP
programs will see standard DOS pathnames when called. The mailer code was
ignoring the environment variable SHELL when calling the mailer, leading to
a lack of environment space for the mailer to work -DK
+ add calls to _eth_release() and _eth_init(), which Gisle Vanem says should
not be necessary in this part of lynx. But this seems to fix get
intermittent hung nameserver lookup sessions after using CTRL-C.
* simplified a loop in HTConfirmCookie() and added CTRACE's to demonstrate that
this is working properly (addresses Debian #119751) -TD
* add some CTRACE's to curses screen initialization and resizing to provide
better diagnosis of problem reported by David Balazic
<> on HP-UX 11.00) -PG
* modify and aclocal.m4 to work with autoconf 2.52 patched with
* modify configure macros CF_CURSES_CPPFLAGS and CF_NCURSES_CPPFLAGS to ensure
that the (n)curses.h header file is actually found, in case someone tries to
build lynx without having installed the development files (based on anonymous
posting on comp.os.linux.networking newsgroup) -TD
* update config.guess, config.sub from
2001-11-18 (2.8.5dev.5)
* modify prompt for file- or directory-name in rename/move operation to provide
a default based on the selected file/directory -TD
* add -DOK_OVERRIDE to makefile.msc, to allow rename/move of files in the local
directory editor -TD
* correct delay time for win32's HTAlert, etc., which was in milliseconds
rather than seconds -TD
* modify check for mbstate_t in CF_WIDEC_CURSES to define HAVE_MBSTATE_T if
that type is found, use this ifdef in LYwaddnstr() to make that compile
properly on Solaris 2.6 (report by PG) -TD
* collect names of lynx.cfg and .lynxrc variables into LYrcFile.h, to simplify
checks for matching spelling, e.g., against the values used in
LYOptions.c -TD
* modify dired support to allow sorting by a variety of things in addition to
the existing sort into files versus directories. This is saved in ~/lynxrc
as dir_sort_order -TD
* if --disable-full-paths is specified, do not use full path for SYSTEM_MAIL
(report by IZ) -TD
* modify configure script to reduce the number of xxx_PATH definitions compiled
into the code if --disable-dired was specified. Change configure script so
that dired support for chmod, copy, mkdir, and touch to use built-in
functions rather than external programs -TD
* modify configure script tests for program pathnames so that if full pathnames
are specified and the program is not found, no corresponding xxx_PATH symbol
is defined -TD
* eliminate duplicate LYGetEnum() in LYrcFile.c, using the variant from
LYReadCFG.c which allows abbreviations -TD
* change handling of tagsoup option in LYrcFile.c to invoke the corresponding
HTSwitchDTD() function, so saved tagsoup initializes properly from ~/.lynxrc
(report by Michel Such) -TD
* modify some tag-names in LYOptions.c to correspond to the names used in
lynx.cfg to make the corresponding names work properly when used in ~/.lynxrc
via ENABLE_LYNXRC settings (report by Michel Such) -TD
old new
assume_char_set -> assume_charset
show_scrollbar -> scrollbar
DTD_recovery -> tagsoup
show_rate -> show_kb_rate
user_agent -> useragent
* correct length passed by LYpaddstr() to LYwaddnstr(), which could be larger
than allowed -TD
2001-11-08 (2.8.5dev.4)
* if file-upload code is configured, suppress message that indicates it is not
implemented, i.e., "[FILE Input] (not implemented)" -TD
* modify file-upload submission to send plain text if the file is entirely
printable text. Mime encoding is needed if the file contains nulls, etc.,
but reportedly may confuse some hosts -TD
* suppress "charset=" clause on form submission if it is iso-8859-1 -TD
* move case for F_FILE_TYPE in HText_SubmitForm() to obtain original behavior
translate their character set, etc. (report by KW) -TD
* revert 2.8.4dev.21 change to avoid truncating cookie path in LYSetCookie().
The server that wouldn't work with the current lynx behavior is
identified as "Oracle_Web_Listener/" -DK
* modify LYLegitimizeHREF() change from 2.8.4dev.21 to eliminate newlines from
the HREF rather than converting them to spaces. This fixes a problem with which splits up HREFs with newlines. Changing the newlines to
spaces made the HREF no longer match, e.g., when it was built up from
a CGI script (report by Morten Bo Johansen) -TD
* add two test files for testing UTF-8, based on Markus Kuhn's demos
(quickbrown.html and utf-8-demo.html). These work with ncurses 20011103
patch, for wide-characters except for combining characters (more work is
needed in ncurses). Tested with XFree86 xterm (patch #163) -TD
* modify select_multi_bookmarks() check for interrupt character to limit it to
"hard" interrupt characters such as ^G. This fixes a case where "z" would
have been treated as an interrupt character in advanced multibookmark mode
(reports by Michael Warner, HN, as well as Debian #111463) -TD
* modify SUPPORT_MULTIBYTE_EDIT logic in LYUpperCase() and LYLowerCase() to
check for a null character following an upper-128 code. This is more likely
to occur in EBCDIC, though the multibyte strings should not have a null at
this position in any case (report by PG) -TD
* for wide-character curses configuration, do not force repainting at the end
of display_page() -TD
* modify configure test for mkstemp() to check if that function returns
distinct values (report by Fr3dY indicates that AmigaOS has a broken version
of mkstemp() which always returns the same value) -TD
* modify LYwaddstr() to use wide-character curses functions to make UTF-8
output work without relying upon side-effects of narrow-character functions.
Note that this relies on the user having set a UTF-8 locale, e.g.,
en_US.UTF-8 -TD
* modify HText_appendCharacter() to not use utfxtra_on_this_line when compiling
with WIDEC_CURSES, since the curses library already does this adjustment -TD
* correct the following names in LYrcFile.c which were added to allow
ENABLE_LYNXRC lines in lynx.cfg to enable them to be saved in ~/.lynxrc
old new where-used
DTD_recovery tagsoup (command-line option and lynx.cfg)
show_rate show_kb_rate (lynx.cfg)
user_agent useragent (command-line option)
(report by Michel Such <>) -TD
* modify LYRefreshEdit() to clear field before repainting (patch by Hataguchi
* for CJK configuration, force clearing/repainting in HTUserMsg() (patch by
Hataguchi Takeshi)
* make HTInfoMsg() sleep condition consistent with other messages by using
LYSleepInfo() -TD
* reduce clutter with new function utf8_length() -TD
* replace !isascii(ch) with new macro is8bits(ch), to reduce clutter, fix some
sign-extensions and make it more portable -TD
* change some of the "#if" statements to "#ifdef", to work around broken
versions (2.96, 3.0.1) of gcc distributed with Mandrake 8.1 (though
reportedly this is due to Redhat): the -C option passes through comments as
usual, but some comments expand on preprocessor lines, which causes the
preprocessor to report an expression error. This prevented "make
install-help" from running, though the -C option is not needed for that.
However, lacking a working -C option makes the C preprocessor useless for
analyzing bugs -TD
* modify configure script to accept --with-screen=ncursesw, to build with the
wide-character version of ncurses -TD
* modify configure script to look for mkdtemp(), to quiet another bogus linker
message -TD
2001-10-06 (2.8.5dev.3)
* add CF_MKSTEMP configure macro, from vile, to check for a working mkstemp().
This will quiet some bogus warning messages in recent runtime support, but
(see 2.8.3) does not affect the security of temporary files in lynx -TD
* updated CF_PATH_SYNTAX configure macro, from vile, to handle leading "\\" in
a win32 pathname -TD
* for configurations that provide scrollbar, add a checkbox to the Options menu
to enable or disable it -TD
* modify LYGetHostByName() in HTTCP.c to use the threaded _WINDOWS_NSL code for
all Cygwin machines. The ability to interrupt nameserver lookup has not
worked in Win98 using the Cygwin port, despite defining _WINDOWS_NSL. It
looks like the threaded code was only for WinNT. At least under Cygwin, that
code also seems to work fine under Win98 -DK
* add FIELDS_ARE_NUMBERED as a possible value for DEFAULT_KEYPAD_MODE in
lynx.cfg as well as keypad_mode in .lynxrc -TD
* add NUMBER_FIELDS_ON_LEFT and NUMBER_LINKS_ON_LEFT to lynx.cfg, use these to
control where field- and link-numbering is placed. Caveat: there are some
cases where fields that do popup's are truncated, e.g., in the Options menu,
when right-alignment is used -TD
* support for DJGPP's two forms of file addressing, [a-zA-Z]:[/\\] and
/dev/[a-zA-z]/ -DK
* add samples/lynxdump script, to illustrate how to use lynx -dump with no
link references (prompted by discussion with LV) -TD
* add samples/keepviewer script, to illustrate how to retain a temporary file
for use in an external viewer -TD
* add ifdef's in is_url() to avoid recognizing URLs if they are disabled in the
given configuration, i.e., bibp, finger, ftp, gopher, news (report by
Frederic L W Meunier) -TD
* modify LYrefresh() to take into account whether a popup window exists, so
that a search prompt will not overwrite a popup. This bug was introduced by
the curses pads (reported by Felicia Neff <> and Fr3dY
<>) -TD
* add note in keystroke_help.html about CTRL-V as literal-next (lnext) for
users who are unfamiliar with stty -TD
* add NcFTP-style ftp-URLs which are supported by Netscape and wget (request
by Martin Mokrejs) -TD
* add traces in LYReadCFG.c and LYrcFile.c to report lines which are not found
in the symbol table, to help diagnose when a user adds lynx.cfg information
to .lynxrc -TD
* define additional -trace-mask option, 8=config -TD
* modify LYtouchline() to avoid using wredrawln() for ncurses, since the
LYwin variable may be a pad much wider than the screen, which is not handled
properly (report by Karl Eichwalder <>) -TD
* correct beginning of configure script, which was supposed to remove
config.cache, but did not, due to a misplaced line when it was added
1998-06-04 (prompted by a report by Fr3dY <> that the
checks for srand/rand did not work) -TD
2001-08-15 (2.8.5dev.2)
* several small fixes to HTFile.c to make directory listings work properly on
win32, e.g., stat'ing a directory with a trailing slash fails (reported by
Hataguchi Takeshi) -TD
* adjust definitions in LYCurses.h to get rid of slang-ifdef's for getyx() and
wmove() -TD
* change order of srandom/random versus srand48/lrand48 -DK
* patch to get the DJGPP port to use the configure script -DK
It seems to work well in the variations I have tried, including both PDCurses
and SLang. revised INSTALLATION for DOS, giving a URL for my DOS patch to
openssl. I dropped the reference to goto URL of the form
file:///dev/c/path/filename, since this only works in certain parts of lynx
(such as lynx.cfg). I'll try to get this working in the future. In fixing, I patched the sed script for converting the path to docdir. As
far as I can tell, however, from my examination of lynx.cfg, this isn't used
for any platform. Does this part of the sed script do anything?
Things still needing fixing for DOS:
+ support for both forms of file addressing, [a-zA-Z]:[/\\] and
+ support for gzipped help files. This works with long file names in a DOS
box under Windows, but not in plain DOS, which doesn't allow double
+ better handling of local files in root directory. "file:///c:/" takes a
long time to work, but "file:///c:/." works fine. I haven't really looked
to see why.
+ no ability to break out of hung nameserver lookups or http requests without
closing lynx with SIGINT. This is the biggest complaint I get by email.
* modify ifdef for myGetChar() in LYStrings.c to build with PDCurses 2.3 e.g.,
to use a version which is modified for Japanese input (patch by Hataguchi
* review LYSafeGets() calls, stripping newlines from a few places where they
were overlooked, and simplifying some places where LYSafeGets() would
normally return a buffer ended with a newline (prompted by a report by Brian
S Queen <> for LYTraversal.c) -TD
* correct reallocation-size in ProcessMailcapEntry() -TD
* modify HTLoadHTTP() to omit "Accept-Encoding: gzip" if command-line "-base"
option is given. This makes
lynx -base -source
work as expected. Otherwise, will transmit the document gzip'd,
and the ensuing logic in HTSaveToFile() would see the mime-type as gzip
rather than text/html, and not prepend the base URL (report by Kai Shih
<>) -TD
* work around defect in move_anchors_in_region() and related logic by changing
default for nested-tables to FALSE when Lynx is not configured for
color-style. The problem is that when an anchor is shifted right by
nested-table logic, if it has a <BR> near the beginning of a table cell and
it happens to be split across a line, its size will not be adjusted properly
(report by Hataguchi Takeshi) -TD
* correct logic used for trimming TEXTAREA introduced in 2.8.4pre.3, which did
not trim carriage-return characters if TRIM_INPUT_FIELDS was false.
(report by Hataguchi Takeshi) -TD
* correct a bug in search logic which happens with pages shorter than the
screen, due to improper starting-line value sent to search function. Fixed
by adding checks in www_search_backward() and www_search_foreward(), (report
by -Frederic L W Meunier) -TD
2001-07-24 (2.8.5dev.1)
* modify GetChar() definition for PDCurses to ignore key-modifiers which are
passed back from getch() as if they were key codes. Those interfere with
shifted commands such as 'Q' -TD
* modify parse_style() function to operate on a copy of its parameter, to avoid
changing it. Otherwise, when parse_style() is executed as a side effect of
start_curses(), its data is modified and not valid on successive calls.
This bug existed prior to 2.8.4dev.17 -TD
* set return value of edit_current_file() to true if the file is edited. This
forces a reload for example if one edits the current html file, and is needed
to make PDCurses repaint the screen as well (report by Victor Schneider,
bug introduced in 2.8.4dev.21) -TD
* add ifdef for wresize() to accommodate FreeBSD 3.x which has resizeterm() but
not wresize(). Also, use a 'long' rather than 'attr_t'. These changes are
needed to build with the 1.8.6ache patches to ncurses (report by Matt
<>) -TD
2001-07-17 (2.8.4rel.1)
* remove comment in README.ssl directing people to, since that page is moot with 2.8.4 (report by
* add an ifdef in CF_CURSES_FUNCS configure macro to avoid confusing ncurses'
term.h with other versions -TD
* update URL for zlib -Frederic L W Meunier
2001-07-14 (2.8.4pre.5)
* add a fallback in _Switch_Display_Charset() if no CHARSETS_DIRECTORY was
specified -IZ
* ensure that config variable names in LYReadCFG.c are in alphabetic order,
though only the first character matters (report by IZ) -TD
* updated notes on DOS in INSTALLATION -DK
* modify ifdef in HTTP.c to build with configure --with-ssl --disable-news
(report by Frederic L W Meunier) -TD
2001-07-10 (2.8.4pre.4)
* correct red/blue color swapping for PDCurses when built on Unix, which uses
X11 -TD
* correct order of checks for wrapping in www_search_forward() and
www_search_backward(), which would allow an infinite loop if there were no
anchors on the current page (report by Frederic L W Meunier) -TD
* add a missing chunk to reverted change of SGML_character()
-NSH <>
2001-07-07 (2.8.4pre.3)
* review/add descriptions of new command-line options in, lynx.hlp and
Lynx_users_guide.html -TD
* update da.po, ja.po, ru.po, sv.po from
(report by JES) -TD
* add command-line option -curses-pads which can be used to disable the
left/right scrolling logic. This is used for testing, e.g., the repaint
bug reported below -TD
* remove logic in lynx_force_repaint() which reset the window background, since
it does not work with the logic used to implement left/right scrolling.
Retested older versions of ncurses and did not find a case where this was
needed after all (report by IZ) -TD
* revert dev.21 change to SGML_character() S_equals case, which has undesirable
side effects regarding spacing around '=' (report by
<>) -TD
* define additional -trace-mask option, 1=SGML -TD
* add -trim_input_fields command-line option and corresponding
TRIM_INPUT_FIELDS to lynx.cfg to suppress trimming of TEXT and TEXTAREA
fields in forms. This does not retain trailing blank lines in a TEXTAREA;
more work would be needed to do that (reported by VH, most browsers appear to
retain trailing blanks) -TD
* modify parsing of "<script>...</script>" to allow "<!-- ... -->" comments
in SGML_character(). Though the HTML 4.0 spec is fairly clear, other
browsers (and some webpages) assume that "</" does not have to be escaped
when it appears in a script which is commented to avoid confusion with older
browsers. This change doesn't ensure that the comment is at the beginning
of a line, since that's awkward to do with SGML_character(), and also leaves
the script in a comment which works for lynx since lynx does not interpret
it anyway -TD
* remove redundant enum identifiers in typedefs -TD
* modify parse_attributes() in LYStyle.c to allow video attributes such as bold
and reverse to be combined with colors, used this to debug problem with
<script> and comment -TD
* improve logic for nested-tables to handle cases such as -IZ
TRST ignores the horizontal alignment *inside* a multi-line cell of a table.
This limitation, in conjunction with the nested-tables modifications does not
work well when text with a horizontal alignment (e.g., <ul>) is put in a
table cell. This patch introduces a *limited* logic to take this info into
account. It should work OK as far as the last non-empty line of the cell is
ended by a "line-end" command, not by a </td> (this is often the case with
contents using horizontal formatting).
* updated URLs for ncurses (report by DK) -TD
* updated samples/bright-blue.lss -IZ
* make definition of $(SHELL) in's consistent, in terms of
CONFIG_SHELL, since the configure script no longer uses 'include', and
this creates some problem with nonstandard shells (report by IZ) -TD
* update/extend lists in lynx_help_main.html -Frederic L W Meunier
* add note about lynx.cfg mouse and color configuration to user's guide -PW
* document -cmd_log and -cmd_script options in user's guide (Michael Warner).
2001-06-10 (2.8.4pre.2)
* corrected order of parameters of is_prefix() function in the
scan_cookie_sublist() function, broken in dev.21 changes (report by Ken Scott
<>) -TD
* add a fallback definition for SA_LEN(), to build with glibc 2.2 (report by
Mark Sutton <>,
patch by Arkadiusz Miskiewicz).
* modify ifdef in HTCheckForInterrupt() to build with DJGPP -DK
* remove include for <pdcurses.h>, use <curses.h> which is the default for
PDCurses - DK
* reviewed/reverted some changes from dev.20 which changed explicit "r", "w",
and "a+" fopen modes to TXT_R, TXT_W and TXT_A, where they relied on the
default mode set via SetDefaultMode(). With DJGPP, files containing special
graphics such as README's might not otherwise display, for example (report by
2001-06-03 (2.8.4pre.1)
This version has been test-built on Linux (BSD curses, ncurses,
slang), Tru64 5.1 (cc, curses/ncurses/slang), OpenVMS, OS/2 EMX, win32
(both Visual C++ 4.1 and 5.0 as well as Borland C++), AIX 4, HPUX 11,
Solaris 8. Recent builds include SunOS 4.1.4 (cc and gcc,
curses/ncurses/slang), Solaris 2.5.1 (cc and gcc,
curses/ncurses/slang) and IRIX 6.5 (cc and gcc, curses/ncurses). Less
recently, FreeBSD 4.1, NetBSD 1.5 and OpenBSD 2.8 (curses/ncurses).
2001-06-02 (2.8.4dev.21)
* regenerated lynx.pot and resync'd the .po files against it with msgmerge,
formatted to 132 columns to minimize line-breaks, for ease of comparison -TD
* add a few more #undef's to work with glibc 2.1.3 -TD
* include <signal.h> before <curses.h> to work around bug in glibc 2.1.3, which
apparently was not used to build a system before release. Note that the
preferred solution is to patch /usr/include/sys/ucontext.h to avoid defining
ERR, which is defined by all versions of curses.h (report by Karl Eichwalder
<>) -TD
* change lynx.cfg entry for COLOR #6 to brightred/black, which is what
Slackware uses, to make links more visible -TD
* remove several chunks of dead (#if 0) or commented-out code, especially in
TRSTable.c, except a few used for debugging -TD
* add checks for potential buffer overflow in increment_tagged_htline() -TD
* consolidate scattered calls to editor with function edit_temporary_file(),
which fixes terminal modes when editing TEXTAREA -TD
* modify LYisNonAlnumKeyname(), etc., using new functions LYindex2MBM() and
LBMBM2index() so that it should work with EBCDIC, as well as similar case of
translation in LYBookmarks.c which assume that there are no gaps in the
coding for the alphabet -TD
* workaround in lynx_nl2crlf() for ncurses, which did not refrain from using
cursor-down if it was set to a newline when nonl() was specified -TD
* replace permissions[] array in LYLocal.c because Cygwin (mis)implements the
S_xxx values as a function -TD
* add ENABLE_LYNXRC setting to lynx.cfg, which allows one to modify the list
of values which are visible on the O'ptions form which can be saved to the
.lynxrc file -TD
* check the width of entries displayed by LYOptions.c non-forms
boolean_choice(), to pad shorter ones with spaces -TD
* change type of LYMultiBookmarks to integer, combine with LYMBMAdvanced, to
use enumMultiBookmarks to set it, making its configuration more easily
table-driven -TD
* make the style of menu border/bg/entry/number/active-entry and scroll
indicator settable -IZ
The names in lynx.lss are
menu.frame menu.n menu.entry
* modify cookie path prefix-comparison to ignore a trailing slash, e.g.,
/group/sftvnews/ versus /group/sftvnews (workaround for LV visiting -TD
* cookie path= should be a prefix of the request-URI path, so do not truncate
request-URI path in LYSetCookie() [we got mistaken "invalid cookie path=..."
prompt in some cases previously] -LP
* parameterized the logic around URL_edit_history to add MAIL_edit_history,
used to store addresses for Printing Options, mail file to user (request by
* check, fix minor problems with some .po files based on check_po script
(mentioned on mutt-dev mailing list by Bjorn Jacke <>) -TD
* fixes to build with U/Win -TD
* check width in LYpaddstr(), truncate the string if needed. This fixes a
case where items in very wide popup menus would wrap, e.g., the EXTERN_LINK
menu -TD
* add a configure checks for term.h, to work around broken package for ncurses
on Cygwin -TD
* combine checks for useragent into one function LYCheckUserAgent() -TD
* add runtime toggle for EXP_NESTED_TABLES, bind this to "~" (see
for comparison) -TD
* regenerate ja.po from lynx-2.8.3rel1.ja.po using gettext 0.10.37 and libiconv
1.6.1 (updated by Masayuki Hatta <>)
* changed -DNCURSES in DOS makefile to -DPDCURSES -TD
* changes for DOS makefiles with DJGPP -DK
These changes are for DOS under DJGPP with Internationalization and SSL. The
openssl port for DOS is dependent on WATT32, so the link order for libraries
has to be set appropriately. Made EXP_NESTED_TABLES the default and changed
the default locations for WATT-32 and PDCURSES to top-level directories. The
DOS port of gettext is now dependent on libiconv.a to convert character sets
as the .mo file is read. The format for the makefile in WWW/Library/DJGPP
now reflects the changes previously made in the src makefile.
* improve definition of CTRACE, making it an expression again as it was before
dev.20 -PG
* move logic for cookie_domain_flag_set() out of LYReadCFG.c into LYCookie.c
rewriting it to make it table-driven, where it is now shared with
LYrcFile.c -TD
* rewrote LYrcFile.c, making it table-driven as is LYReadCFG.c -TD
* reviewed/corrected several pointer-mismatches in PARSE_xxx() macro usage -TD
* corrected return-types of several functions in LYLocal.c, which were given as
BOOLEAN though they return a signed integer -TD
* add DIRED support to makefile.bcb -TD
* filter the list of mime types sent in "Accept:" header for GET, to eliminate
repeated or shadowed types, using new function HTFilterPresentations()
(addresses Debian bug report #41594) -TD
* fix several typos in Lynx help-files -LV
* change most configure script C-preprocessor assignments to $CFLAGS to
$CPPFLAGS, and modify logic of $TRY_CFLAGS to use CF_ADD_CFLAGS, which
does the same thing -TD
* enable scroll indicators on the menus - shown if there is a part of menu
before/after the visible area -IZ
* modify the context-sensitive mouse-menu, making it easier to to configure by
reorganizing the tables used to generate the popup menu -IZ
* correct a couple of places in form_getstr() when keys were "generated"
instead of actions, which broke mouse-navigation in input fields -IZ
* fix return value of Stbl_finishTABLE(), retesting curpos whose value may have
been altered, e.g,. in split_line(), causing a cell to overflow to the right
of the visible area (even if line wrap is requested) -IZ
* change the logic of -display-charset: before it was sometimes descriptive
(here is the charset, behave as if it was used for display), sometimes
prescriptive (make the display to use charset if you can). Now it is only
descriptive. One is forced to use the 'O'ptions to manually load a different
font -IZ
* move $(DEFS) and $(CHARSET_DEFS) into $(CPP_OPTS) in src/ -TD
* renamed -blink_is_boldbg command-line option to -blink, corrected ifdef's -TD
* implement -blink_is_boldbg option for OS/2 EMX and ncurses, then integrated
some ifdef's to merge with equivalent slang code -IZ
* rewrote hardcoded if/then/else chains in handle_LYK_SHIFT_LEFT()
handle_LYK_SHIFT_RIGHT() to repeat_to_delta() function -TD
* implement a key-accelerator for shift-left/right commands, i.e., repeating
the shift command increases the amount by which the screen is shifted -IZ
* modify ifdef in handle_LYK_LINEWRAP_TOGGLE() to use popup menus for each
configuration rather than limit it only to mouse-supported ones such as
ncurses or PDCurses -TD
* changes to left/right scrolling to limit its effect to tables (IZ):
+ rename LYlineWrap variable (used to denote the column at which content is
wrapped) to LYwideLines (used to denote the opposite sense: true if
wrapping is disabled).
+ add global variable LYtableCols to control the column-limit for tables.
The two variables LYLineWrap and LYtableCols have the same effect as did
altering LYlineWrap and LYcols, but are limited to table layout.
+ modify handle_LYK_LINEWRAP_TOGGLE(), use a popup menu to set LYwideLines
and LYtableCols. The latter is set to a positive integer, in units of
1/12 of the physical screen width.
+ modify GridText.c, replacing LYcols with new macros DISPLAY_COLS and
+ keep scrollbar on the right margin of the screen when the contents are
shifted left or right.
* modify makefile.bcb, add (tested) commented-out lines for building with
color-styles -TD
* modify makefile.msc and makefile.bcb, add (tested) commented-out lines for
building with winsock2 -TD
* add a configure check for napms(), use this if available to support subsecond
* rewrote www_user_search() to support both forward and backward search.
Bound backward-search to 'N' -TD
* split-out anchor_has_target() and link_has_target() to separate the search
loops from the search comparisons -TD
* reduce some clutter with LYno_attr_strstr() and LYno_attr_mb_strstr() macros,
which combine the caseless/case-sensitive functions -TD
* modify S_equals in SGML_character() to recover when no attribute value
is given, e.g., if "alt=" is followed by whitespace. Before, the next
attribute was used for the missing value -TD
* replace call to LYRemoveBlanks() from LYLegitimizeHREF(), which had the
effect of removing all blanks from HREFs, with the less drastic step of
reducing newlines and tabs to spaces and trimming leading/trailing blanks.
Though they do not belong there, it is more likely that the HREF will work
with embedded blanks retained -TD
* add a configure check for BSD- and SYSV-style curses touchline function,
needed to build with NetBSD 1.5 curses which has a partial implementation
of X/Open curses (report by JES) -TD
* correct insert_blanks_in_line(), which did not copy trailing style codes
such as stop-underline, causing "lynx -dump -with_backspaces" to produce
some odd effects -TD
* modify configure script macro CF_NCURSES_VERSION to define NCURSES, in case
it is used in the default screen setting, since lynx uses this definition in
some places rather than NCURSES_VERSION to distinguish it from other curses
implementations -TD
* modify configure script macro CF_NCURSES_CPPFLAGS to check for ncurses.h
before curses.h, and to specifically check for <ncurses/ncurses.h>, to avoid
spurious matches against a /usr/include/ncurses.h, to workaround problems
with obsolete versions of ncurses on FreeBSD and NetBSD where the current
version is often available only as a "port" (reports by Jim Spath,
Michael Warner) -TD
* add fallback definition for SLSMG_xxx_CHAR symbols which may be missing in
older versions of slang (reported by Eduardo Chappa) -TD
* update config.guess, config.sub
2001-04-01 (2.8.4dev.20)
* rename KEYMAP 'EXTERN' to 'EXTERN_LINK', adding 'EXTERN_PAGE'. Existing
keymaps should work since 'EXTERN_LINK' matches first. EXTERN_PAGE runs the
external command on the current page. Map comma (,) to EXTERN_PAGE -TD
* replace most calloc calls with typecalloc or typecallocn -TD
* modify LYExtern.c to recognize if more than one EXTERN command has been
defined in lynx.cfg for a given name, and allow the user to select one
command from a popup menu -TD
* split-out code that opens lynx.cfg and lynx.lss as LYOpenCFG() function,
making that check if the given pathname is absolute. If not, it attempts
to look in the same directory as the parent file (when processing includes),
or the directory of the default config file -TD
* replace some explicit "r", "w", and "a+" fopen modes with TXT_R, TXT_W and
TXT_A, add/use corresponding BIN_R, BIN_W, BIN_A definitions. Correction to
OpenHiddenFile(), which would have appended text to a binary file -TD
* combined lynx_html_item_type and lynx_printer_item_type structs as
lynx_list_item_type to simplify LYReadCFG.c and incidentally fixing a bug in
add_printer_to_list by merging it with add_item_to_list -TD
* implement a simple workaround for staircased messages from running xli as an
external viewer, with lynx_nl2crlf() function -TD
* add bright-blue.lss sample (from IZ) -TD
* modify's to use symbol _O for object suffix to allow simple
override for OS/2 EMX -Zomf compiler option (request by IZ) -TD
* add HAVE_LYHELP_H definition in config.hin and use that in LYGlobalDefs.h
to workaround misuse of HAVE_CONFIG_H in makelynx.bat -TD
* work-around in LYrefresh() when curses pads are used, for special case where
cursor is not set properly when prompting with long subject line for mailto
* eliminate some pointer mismatch compiler warnings in LYEditInsert() for
* improve handling of tables with respect to bad HTML. Also took an
opportunity to macroize a couple of places which missed in
unobfuscation-of-faking <td></td> (this faking happens when line break
happens in a non-first column of a table) -IZ
For example:
<FORM ACTION="FrameWork.class" METHOD="post">
Note FORM which spans cells. -trace'ing it gives very unintuitive
results: it skips </TD> inside FORM, but not <TD>. Then it supplied
</TD> when the FORM ends.
* repair treatment of colspans in TRST, making it work again in one of the
special cases it worked before. Another bug was in interaction of
justification and tables -IZ
* marked more TRACEs in TRST as "BUG"s -IZ
* TRST would sometimes produce non-intuitive results if <td> follows </tr>.
Add error recovery for this case -IZ
* corrections for nested-table configuration -IZ
+ make trailing <BR> in table cells "behave well" again (the following cell
would not be horizontally offset).
+ fix highlighting of multiline links inside tables, and a "80M tracelog" bug
(due to a misprint update of the enclosing table was performed once-per-row
instead of once-per-table). Extra updates would not hurt, but led to
slowdowns and quadratic-size logs.
+ fix a special case with table-in-table for partial-display
* resizing a window on a console may lead to a switch of the character-cell
size. The "downloaded font" loaded during an auto-switch of display-charset
may be no longer valid. In this case, force a re-download of the suitable
font for the current charcell size -IZ
* add reverse-video style for forwbackw.arrow to lynx.lss -TD
* while an error in .lynx-keymaps is fatal, but a more or less equivalent error
in the KEYMAP section of lynx.cfg is benign. Make them both benign -IZ
* change remaining uses of lookup_keymap(LYK_xxx) to LAC_TO_LKC0(LYK_xxx) -TD
* modify set_clicked_link() to return lynx keycodes rather than character
values -IZ
* remove line_for_char() function since it is used for HTLine.start
computations -TD
* several changes to GridText.c -IZ
+ '#' (shown at the UL corner when there is a toolbar) is shown even at the
beginning-of-the document.
+ with mouse enabled, the first 6 chars in the UL corner were "always"
sensitive to Click-1, behaving as PREV_DOC (usually on Left). This patch
changes this logic (for color-style):
If '#' is shown there, clicking on it behaves as pressing #;
Clicking on the next 6 chars behaves as PREV_DOC/NEXT_DOC (3+3);
+ if you define a style for forwbackw.arrow, then suitable arrows are shown
in these 3+3 positions; in fact they are shown only if it makes sense to do
PREV_DOC/NEXT_DOC, providing additional feedback.
+ remove the first empty line shown on any HTML document.
+ correct an off-by-one error in the removal-of-zero-length-markup logic.
Due to this bug, zero-length markup was never removed, which led to
accumulation of style change entries, eventually to a buffer overflow. At
this moment lynx color-style engine would give up, resulting in
incomprehensible ocean of colors on the display. To demonstrate, make a
select entry with more than 46 entries. [My auto-display-charset logic
added 2 new encodings to the table of Lynx, bringing the number to 46 on
the 'o'ption form. ;-]
+ fixes a bug with incorrectly calculated width of a numeric tag [12]
as far as 12 is 10 or more (still fixes Debian #68542).
+ remove unused members from HTLine struct.
+ make variables underline_on and bold_on private.
+ rewrote insert_blanks_in_line(), splitting out move_anchors_in_region().
+ make split_line() easier to maintain by adding variables to represent
common subexpressions, e.g., s_post, s_pre.
+ use set_style_by_embedded_chars() in split_line() to simplify/improve test
for whether lynx should add a bold/underline control.
+ recode to eliminate HTLine.start
+ recode to eliminate HTLine.chars
+ several changes to split_line(), using pointers to HTChangeStyle structs
rather than array indices.
* adjust some ifdef's to make configure --disable-trace compile -TD
* correct allocation size in mailcap_substitute(), which did not count the
trailing null -TD
* add configure --enable-vertrace option, to put __FILE__ and __LINE__ into
trace log -PG
* improve description of USE_MOUSE in lynx.cfg -PW
* fix a few warnings from antic (unreached statements due to quirks of ifdef's,
incorrectly-indented code) -TD
* eliminate a few references to USE_HASH and LINKEDSTYLES in documentation -TD
* fix a couple of compiler warnings for SCO (report by BL)
* fix a comparison in HTChunkPutUtf8Char() to work with EBCDIC -PG
* fix a typo in LYCharUtils.c CTRACE macro, amend tracing to avoid suppressing
a related user message -PG
* change CF_TERMCAP_LIBS configure macro to warn rather than exit with an error
if it cannot find the libraries it is looking for. This allows one to
configure with the slang library on systems without a termcap library (report
by Atsuhito Kohda) -TD
2001-02-26 (2.8.4dev.19)
* add experimental configure option for post-dev.16 TRST changes by IZ
(--enable-nested-tables), ifdef'd with EXP_NESTED_TABLES -TD
* correct a couple of places that used attrset() rather than wattrset(), which
caused the status line to lose color when configured for curses pads but not
using color-style (report by Fr3dY <>) -TD
* add a restriction for the chdir command, so it is not normally enabled in
anonymous mode -TD
* reduce putenv logic for presetting $LINES and $COLUMNS to a special case
for MVS -PG
* enable pasting an URL into Lynx (similar to 'g'), and improves the code to
copy an URL from Lynx -IZ
* remove arbitrary restrictions on the size of text to be pasted. It also
makes a quadratic algorithm into a linear one. Also, it may remove many bugs
when the text to paste contains non-printable chars. Not tested with Unicode
and on Win* -IZ
* implement an action NEXT_DOC, which undoes what PREV_DOC (usually on the
Left-arrow key) does -IZ
Possible enhancements:
a) make HISTORY show the position on the (no more!) "stack".
b) several places in the source use the value of nhist (they scan
history?). Make nhist_extra public, and check whether these
places want nhist + nhist_extra instead.
c) Currently LYpop() and (some) LYpush() erases "the tail" of the
stack. Maybe some callers would prefer a different semantic...
* correct some logic related to EXP_READPROGRESS -IZ
* change LYE_xxx symbols to an enum LYEditCodes -TD
* replace some WIN_EX ifdef's by CAN_CUT_AND_PASTE. Enable cut and paste on
OS/2 -IZ
For example, in the keymap file:
setkey "\200\4" LAC:DO_NOTHING:PASTE # S-insert
setkey "^(kIC)" LAC:DO_NOTHING:PASTE # S-insert
* enable automatic switching of display charsets -IZ
Currently, it is supported under OS/2 only. A couple of lines should make it
work in LINUX too: express the semantic of _Switch_Display_Charset() in
terms of the existing UCChangeTerminalCodepage.
For example, in lynx.cfg:
CHARSET_SWITCH_RULES: koi8-r ISO-8859-5 windows-1251 cp866u KOI8-U :cp866, iso-8859-1 windows-1252:cp850
The first variable may be not needed outside of OS/2 (the directory which
contains glyph tables, as generated/usable with tfont). [Used for
full-screen sessions only.] The second variables may go at the future, when
Lynx knows how to auto-deduce it itself. Format of CHARSET_SWITCH_RULES
source1 source2 source3 : dest1, source4 source5 : dest2
* move a call for _scrsize() from LYSystem() to size_change(), to fix problem
with OS/2 EMX related to screen-size changes -IZ
* correct a bug in TRSTable.c which left a pointer into a chunk which was
reallocated elsewhere (report by Robert Mognet <>) -TD
* make parse_restrictions() warn about keywords it does not recognize -TD
* rewrote restrictions_fun() in LYMain.c, making it use print_help_strings(),
to show the actual restriction values, and listing restrictions that are not
documented in the -restrictions message -TD
* if find-leaks if enabled, free the 'line' variable in HTReadProgress() -TD
* if find-leaks is enabled, undefine SAVE_TIME_NOT_SPACE in HTString.c to avoid
seeing spurious leaks in HTSprintf/HTSprintf0 -TD
* add command-line option -trace-mask to specify optional traces. Defined
these: 2=color-style, 4=TRST -TD
* improve ifdef's for --disable-trace configure option, eliminating more unused
code when NO_LYNX_TRACE is defined -TD
* make ifdef's for NCURSES and resizeterm consistent -TD
* add a call to wresize() after resizeterm() in case user resizes screen in
ncurses pad configuration (report by IZ) -TD
* change entry for "bibp" restriction to "goto_bibp" for consistency with the
other goto_xxx restrictions, and use CAN_ANONYMOUS_GOTO_BIBP (report by
Robert Cameron) -TD
* add table entries for goto_xxx restrictions, which replace assignments
overlooked in conversion to table in dev.18 (report by Robert Cameron) -TD
2001-02-12 (2.8.4dev.18)
* change LYLineEditors[] to unsigned char since values are out of range for
signed chars on Solaris -TD
* correct a memory leak in HTStat() from mis-patch for Win32 -TD
* modify fancy_mouse() logic for ncurses to allow the user to quit a menu by
clicking outside the menu -IZ
* allow a different approach to the problem: how to enter a keyboard
navigation command when you are in an editing mode. A new EDIT-time action
is introduced: LYE_STOP. Use it like this:
The action behaves as if -tna is temporarily switched on: your edit is
committed, and you go into the non-edit mode - until you press Enter on an
edit field again (or switch to a different document), when this temporary
switch to -tna is terminated. If the "current" edit field has a different
style than the "active" edit field, you get an additional feedback. Anyway,
the status line shows a correct info about the current mode.
In -tna mode this behaves as the usual end-of-edit action -IZ
* make bindings for C-w and C-x C-w do not work for form input fields -IZ
* add etags target to top-level -IZ
* add some traces to make color style code easier to debug -TD
* restore commented-out call to HText_cancelStbl() in HTML_TABLE case in
HTML_start_element() from IZ's changes, which is needed for nested table
alignment. The colors shown in deja-news are incorrect however because color
styles are not picking up the </tr> and </table> tags properly, and a few
tables are misaligned relative to dev.16, more analysis needed -TD
* change LYHash.c to use const, eliminate redundant unsigned's and casts -TD
* add a limit check for rand()/etc., result in LYUtils.c, which worked for
Linux lrand48() but was not portable (report by PG) -TD
* add missing definitions to make srand/rand code build for non-autoconf'd
configurations such as win32 -TD
* ifdef'd the mkdir() for lynx_temp_space in LYMain.c to make it apply only to
Unix, to avoid prototype conflict with non-POSIX compilers (report by Mike
Bledig <>) -TD
* adapt patch for FTP_PASSIVE from NetBSD CVS, to make it work with INET6 (from
comp.unix.bsd.netbsd.misc newsgroup posting which stated that the patch had
been forwarded to lynx-dev) -TD
* remove unused code of HTParseInet() for INET6 from HTTCP.c -TD
* updated some translations in fr.po and ru.po (report by JES) -TD
2001-02-08 (2.8.4dev.17)
* implement left/right scrolling and line-wrap toggle using '{', '}' and '|'
characters, respectively. This uses SVr4 curses/ncurses pads to make the
whole screen treated as a viewport into a very wide screen -TD
* make do_check_goto_URL() table-driven to simplify it as well as combine the
related messages into GOTO_XXXX_DISALLOWED -TD
* combine restrict_name[] and restrict_flag[] arrays to eliminate possibile
ifdef mismatches, as well as to simplify the treatment of "default"
restrictions -TD
* eliminate redundant symbols for color-style ifdefs (USE_HASH and
* simplify parse_style() by making most of it a table -TD
* correct logic in arg_eqs_parse() for OPTNAME_ALLOW_DASHES ifdef which made
incorrect match for -display if -display-charset were given
(report by IZ) -TD
* revert a commented-out call to HText_cancelStbl() in HTML_TABLE case in
HTML_start_element() from IZ's changes, which had the effect of changing the
article color in deja-news for color-style configuration -TD
* fix off-by-one error in the END key handling (an empty line was shown at the
end) -IZ
* makes END key always show a full last page of the document. That is, even if
the last line is already shown, it is moved to become the last line of the
screen, so that as much as possible of the document is on the screen -IZ
* add -display_chars cmdline option, and additionally allows autodetection of
the charset on the system which allow it. This provides a way to switch the
display charset other than via obscure manipulation with 'O'ptions. (.lynxrc
is not viable if you have different charsets in different windows.) -IZ
The logic:
(1) first autodetect;
(2) then read cfg file, and if it is not "AutoDetect ..." (as the saved
version says), grant the cfg file charset;
(3) then read the cmdline, if it is present, but not "auto", then
grant it, otherwise switch back to the autodetected one.
* allow TRST code to handle table-in-table. There are now two cases only
(modulo bugs) when Lynx will not show a table in a table form no matter what
is the screen width: when TABLE is inside PRE, and when there is a TAB
inside a TABLE. Both look like deliberate decisions, so I did not change
these places in HTML.c. But one may need to reconsider this at some
moment... Example of usage: to process (my old copy of) DejaNews Power
Search form (which has TABLE-in-TABLE, and multiline cells) you need screen
width of 112 chars -IZ
* enable <BR> and <P> in TRSTables. The table still needs to fit into the
screen width without line wrapping. A tiny bit of additional work may be
needed to allow tables-inside-tables too; then any table should be rendable
as a table after an appropriate screen resizing. This patch also should make
around 70% of TRSTable.c unreachable. A lot of simplification can be made,
and most of the current convoluted hackery may be removed. Since this
algorithm tries to align *all* the display lines of the table, in some rare
cases it may need larger screen width than the old algorithm (the old
algorithm ignores all but one of the display lines corresponding to the given
<TR></TR> - and in most cases just gives up for the whole table if a
multiline cell is but of the simplest form) -IZ
* add several traces and comments to TRSTable.c -IZ
* enable interrupting LYNX by any char bound to INTERRUPT -IZ
* add configure check for srand()/rand() functions, or alternatives with
similar interfaces. These are used in the SSL and experimental temporary
file options -TD
* allow binding ESC to perform some action (such as INTERRUPT:ABORT, or
something else). It is useful only if the curses (or similar) package remaps
all the reasonable escape sequences, so Lynx internal escape-sequence
processing is not needed -IZ
* enable showing the region between mark and point in the edit areas in a
different style. The style names are and
edit.prompt.marked -IZ
* add visible feedback for special case of unactive current text area which may
exist with -tna. The corresponding style is edit.current -IZ
* add FORW_RL and BACK_LL to edit bindings support to allow cursor forward and
backward respectively to move to the next/previous link if done at the end of
the edit-field -IZ
* update several configure script macros to smooth over incompatibilities
in autoconf 2.49c (alpha). In particular, this eliminates support for
changequote(), and adds limited support for OS/2 -TD
* add google to list of search engines in lynx_help_main.html -LP
* minor formatting of help message -Michael Warner
* modify GetStdin() function in LYMain.c to allow -stdin option to read past
a line consisting of "---" (reported by Michael Warner) -TD
* ifdef'd bibp: support, added configure option --disable-bibp-urls -TD
* add experimental support for bibp: URLs as described in
(patch by Rob Cameron <>).
* change sed delimiters in to avoid using '@', which may appear
in AFS pathnames (report by Martin Mokrejs <>) -TD
* fix missing call to LYCloseTempFP() in LYPrint.c, which caused attempt to
mail a file from the PRINT menu to send an email with a blank body. It looks
like this would happen for any platform not using LYPipeToMailer() -DK
* change pointers for RFC's from to, since
the former appears outdated -Michael Warner
* add undef for HAVE_DELSCREEN to config.hin, so the delscreen() ifdef from
dev.16 works as intended -PG
* workaround in CF_CURSES_FUNCS for overzealous compiler that optimized away
the test code -TD
* change order of checks by CF_NETLIBS and CF_SSL macros in configure script,
since SSL libraries depend on network libraries (reports by Martin McCormick
<>, IZ) -TD
2001-01-01 (2.8.4dev.16)
* add ja.po message file (overlooked in dev.15, reported by Atsuhito Kohda
* use C preprocessor at build-time to replace CF_EBCDIC configure macro -PG
* integrated SSL patch from as a configure
option, --with-ssl -TD
* add configure check for delscreen(), which is not available in some older
SVr3 curses libraries -TD
* add configure check for socks5p.h, to allow socks5 build to use function
prototypes -TD
* updated config.sub, config.guess -TD
* modify some configure macros to use CF_PATHSEP, for path-separator which is
usually colon on Unix, and semicolon on MSDOS, etc. -TD
* modify several configure macros to use $CFLAGS consistently for compiler
options and $CPPFLAGS for C preprocessor options -TD
2000-12-21 (2.8.4dev.15)
* add .po files to main distribution, remove stubs for files that were not
implemented, use msgmerge to resync against the current lynx.pot
(prompted by discussion with Morten Bo Johansen <>) -TD
* corrected dev.13 changes for EXP_READPROGRESS, to make the
non-EXP_READPROGRESS configuration build and work with .lynxrc settings -DK
* use EXIT_SUCCESS/EXIT_FAILURE in exit() and exit_immediately() calls -TD
* improve check for lynx_temp_space by ensuring that the directory actually
exists; attempt to create the directory if it does not, e.g., ~/tmp/, to
resolve problem introduced by Mandrake's patch -TD
* modify SetOutputMode() to flush stdout to work around buffering problem with
Cygwin on error exit from Lynx (reported by Brad Town <>) -TD
* change definitions for LYCharINTERRUPT1 and LYCharINTERRUPT2 to not use
FROMASCII() in the EBCDIC configuration, since those symbols are used in case
statements which otherwise would not compile -PG
2000-11-03 (2.8.4dev.14)
* restore initialization of LYlines, LYcols in setup() which was lost in dev.12
changes (reported by DK) -TD
* modify logic for -stdin option to redirect keyboard input to null device
if lynx is not connected to a terminal, e.g., running under cron -TD
* check in DontCheck() if Lynx is reading from a command-script, to avoid
using those characters to interrupt the application -TD
* add a cleanup handler for win32, since UNIX-style signal handlers do not
work on that platform -TD
2000-10-25 (2.8.4dev.13)
* fix missing ifdef for EXP_READPROGRESS in LYOptions.c (reported by
Atsuhito Kohda) -TD
2000-10-25 (2.8.4dev.12)
* add a configure check for video library on OS/2 EMX, needed to link with
slang. Arrow keys do not work -TD
* use macro UCH to fix gcc's char-used-as-subscript warnings, and to replace
existing casts to unsigned char, making the code more readable -TD
* merge variants of HTReadProgress() -TD
* modify SHOW_KB_RATE in lynx.cfg to allow disabling logic that
shows transfer rate during download. If EXP_READPROGRESS is defined, make
this alterable from the command line and options menu as well (from
discussion by Karen Lewellen <>) -TD
* add the pathname that caused a problem to the error message in
CF_PATH_SYNTAX, lest someone be confused when tilde is not expanded
(addresses a problem reported by Lawrence Kwan <>) -TD
* remove redundant leading newlines in "lynx -version" output (reported by Sven
Guckes) -TD
* add dependency in src/ for building chrtrans/makeuctb$x, used by
UCdomap.o -IZ
* fix CF_PATH_SYNTAX square brackets for OS/2 EMX case, lost by not disabling
m4's quotes for that line (report by IZ) -TD
* remove older/unused variant of code to set screen size in LYCurses.c by
setting environment variables -PG
* one of the ".po" files is zipped as type binary rather than ASCII, so it does
not unzip on OS/390 with the "-a" option. The "-aa" works better since it
forces text conversion regardless of the type of the archived file -PG
* change definitions of LYCharINTERRUPT1 and LYCharINTERRUPT2 to accommodate
> the remainder (most of the functional changes in this patch) from IZ:
* add "typeless" notion to color style logic:
a) reverts to the style "foo" (from "foo.classname") if the style
"foo.classname" was not configured;
b) For input elements of type=typename uses style
"input.type.typename" if this style is configured (but
"input.classname" is not!);
c) Same for typeless elements, with typename="".
This allows the following:
# match "link":
# type-less input is the same as type=text (similar to textarea)
If your "link" is configured as normal:green, then input elements of types
other than typeless, text, or submit will be shown in the same style as link.
The textareas and text input elements are shown in the same style (but
different from "link" style), and submit "buttons" are shown yet in another
* implement styles in "dynamic areas" of documents. Three flavors of them are
active text-edit fields, non-active ones, and links/radiobuttons, etc.
This patch is concerned with the first flavor only. Two subflavors are
document's text-edit areas, and Lynx's ones (such as where you input the URL
after `g'). Each one of them has 3 elements: scroll symbols ("arrows"),
after-the-end padding, and the actual input string.
The patch
a) makes styles for these 2*3 elements customizable;
b) uses ACS chars (if available) for the arrows (instead of `{'/`}').
[It would be nice to make non-active text-areas to have customizable
styles for padding, and have scroll arrows too...]
Here is my customization for testing:
* modify LYSystem() to allow changing size of lynx window with OS/2 EMX
at runtime. Example:
!mode 110,30;exit
* use new macros LYCharINTERRUPT1, LYCharINTERRUPT2 and LYCharIsINTERRUPT() to
make it simpler to find uses of ^C and ^G
* modify key mappings so the keymap file overrides the terminfo/termcap
description rather than the reverse
* make unrecognized keynames emit diagnostic when tracing (but ignores them the
same way the older code did). Trace info about each keycode received
* provide better tracing of style choices, both when styles are assigned into
text-lines, and when lss directives are converted to "numeric colors"
* add similar tracing for links and contents of user-editable stuff
* slightly expand the cache of colors to better accomodate 16-color terminals,
and fixes a misprint in handling background-color == maxcolor
* modify logic in color styles initialization using flag default_color_reset to
override ncurses use_default_colors() logic if the "default" color style tag
is found in lynx.lss
2000-10-18 (2.8.4dev.11)
* include LYLeaks.h in LYPrettySrc.c to allow leak-checking -TD
* modify configure script macro CF_RECHECK_FUNC to ensure that we add a given
library only once to the resulting list. This fixes a longstanding bug which
caused the nsl library to be repeated on some platforms (reported by BL for
one of the SCO configurations, and Urs JanBen <> for SINIX-L 5.41
(i386-sni-sysv4)) -TD
* modify "make install-doc" rule to first remove targets. Otherwise "ln -s"
and "cp" fail to create the targets when installing with normal user
permissions (reported by LV) -TD
* fix for handle_LYK_DWIMEDIT() to ensure it does not dereference a null
pointer, when trying to edit a text file with no links within it (report by
Harri Tuominen) -DK
* add fallback definitions to accommodate renaming of UCX$xxx symbols to
TCPIP$xxx in recent versions of OpenVMS UCX (reported by Horst Drechsel
<>) -TD
* add TRSTable.obj to src/descrip.mms objects -TD
* modify configure script to omit LYExtern.o and LYLocal.o if the corresponding
options (externs and dired) are disabled -TD
* correct a typo that made configure script always define USE_EXTERNALS -TD
* interpret ftp server type for VMS if a URL is given with "/~name", as a
Unix-style server. This works for the following, at least:
VMS V6.2 AlphaServer 2100 4/233 MadGoat System type.
(reported by Rick Dyson <>) -TD
* make configure check for getaddrinfo() less strict, needed with --enable-ipv6
on IPv4-only system (patch by Munechika Sumikawa)
2000-09-21 (2.8.4dev.10)
* modified www_tcp.h and makefile.msc to allow compile with winsock2 if
USE_WINSOCK2_H is defined -TD
* fix: the recently added code to enable external programs to replace normal
lynx handling of individual URL types was not refreshing the screen after the
external program finished (EXTERNAL set TRUE:TRUE) -DK
* fixed two URLs in lynx_help_main.html -DK
* add symbol USE_VMS_MAILER, use to distinguish VMS mail ifdef's for test
compiles -TD
* use new function LYSendMailFile() to consolidate details of non-VMS/non-piped
email, e.g., DOS or Win32, and eliminate some minor inconsistencies in that
area -TD
* correct order of ifdef's in send_file_to_mail() which could leave unsent
email on some systems without popen/pclose -TD
* add some checks in LYhandlePopupList() to prevent popup of an empty list -TD
* change a few messages written to stderr to end lines with \r\n rather than
\n, since Lynx may already be in screen mode when they are written -TD
* treat .Z, .gz and .bz2 suffixes more symmetrically using new function
HTCompressFileType() for parsing them -TD
* change mime type for bzip2 files to bzip2, x-bzip2 -HN
* move IPV6 definitions in www_tcp.h to the end, to build on FreeBSD 4.1, since
SIN6_LEN must not be checked before including netinet/in.h (patch by
Munechika Sumikawa (KAME Project <>))
* make HTParseInet() private, simplify some ifdef's -TD
* change shell expression used to process stdin for mailcap to "(command)<file"
form, which is a little more robust than "cat file|command" (suggested by
* update URLs in about_lynx.html -DK
* remove spurious 'FREE(leaf);' from LYLocalFileToURL() introduced in dev.5 -DK
2000-09-01 (2.8.4dev.9)
* improve ifdef's for endwin/newterm logic, making a fallback for LYscreen
variable -PG
* modify CF_CURSES_LIBS to check if both initscr() and tgoto() are in the
$LIBS list before deciding not to try to look for them -TD
* add %s substitution to mailcap_substitute(), overlooked when implementing
the logic to read from stdin when %s is omitted (reported by IC) -TD
* restore endwin/newterm code for ncurses (as PG notes it really is needed) -TD
2000-08-24 (2.8.4dev.8)
* refine CJK-related suppress of refresh() in statusline() to do this only
when the status line does not contain CJK characters (Hataguchi Takeshi)
* add po/da.po placeholder (request by JES)
* implement %s, %t, %{charset} and %{encoding} substitutions for mailcap
commands in HTFWriter.c (addresses Debian #21096) -TD
* use new function AnchorsOnThisLine() to obtain count of anchors on the
current line for correct computation of length required to fix Debian #68542:
Text entry field on is hidden when "form fields are
numbered" (reported by H.Nanosecond) -TD
* add OS/2 cases to config.guess, config.sub -TD
* modify CF_FUNC_GETADDRINFO to supply missing definitions for
HAVE_GAI_STRERROR and HAVE_GETADDRINFO, needed to make IPV6 build (reported
by Wesley Morgan) -TD
* reset recent_sizechange after reading KEY_RESIZE from ncurses to work around
a case with Linux libc5 which would be treated as an EOF, causing an exit -TD
* suppress PG's endwin/newterm code for ncurses because it is not needed -TD
* modify start_curses() function to preset environment variables $LINES and
$COLUMNS to make the curses library see the proper screen size. After
calling endwin(), delete the current SCREEN object, to force curses library
to discard its cached values of LINES and COLS. This requires using
newterm(), which may not be present in all versions of curses, so we check
for and ifdef accordingly. Tested on os390 and Solaris -PG
* cleanup IPV6 ifdef's using SOCKETADDR_LEN macro -TD
* add error checks to LYCopyFile() and other places to report problems copying
the downloaded file, using new functions LYCloseOutput(), LYCanWriteFile()
(reported by H.Nanosecond <> as Debian bug #63391) -TD
* correct logic used to check for "Too many tempfiles", which resulted in
occasional misfires -TD
* add configure checks for touchline() and touchwin(), use this info to work
with Ultrix V4.5 (report by Bernhard Simon <>) -TD
* reorganized CF_SIZECHANGE macro to work with autoconf 2.49a -TD
* cleanup definitions for wait-status macros, moving them into www_wait.h -TD
2000-08-03 (2.8.4dev.7)
* add sample script to illustrate handling mailto URLs -KW
* modify HTTCP.c to build on AIX 4.3 using HAVE_TYPE_UNIONWAIT as in LYLocal.c
(Georg Drenkhahn <georg@MPA-Garching.MPG.DE>)
* change $host_os special case for 'os390' to 'openedition' in,
make corresponding changes for config.guess and config.sub -PG
* integrate KAME patch for IPV6 (Wesley Morgan <>)
* add configure script macros for checking IPV6 from tin -TD
* small fixes for configure script macros CF_BUNDLED_INTL, CF_CURSES_LIBS,
* fix for multibyte characters in status line (Hataguchi Takeshi)
* align/merge logic in LYOptions.c and LYForms.c which handles navigation in a
popup list, for reuse in name-completion -TD
* restore check for ^G to cancel in HTSaveToFile() lost in dev.4 changes -VH
* remove duplicate entries in sortedList() which are used for name-completion
(Frederic L W Meunier) -TD
* fix compiler warning about const in LYpaddstr() using LYwaddnstr(), and
fix a potential buffer overflow in the latter (report by PG) -TD
* correct logic in LYsubwindow(), which called delwin() with a null WINDOW
pointer -PG, TD
2000-07-17 (2.8.4dev.6)
* move special case statement for os390 compiler before AC_PROG_CC macro in and regenerate configure script (reported by PG) -TD
* correct check for return values of check_color() in parse_color() for slang
configuration, which prevented use of "default" color. This applies to
2.8.3rel.1 as well -TD
* correct draw_option() functions in LYForms.c and LYStrings.c for slang
configuration broken in dev.5 by wrong cut/paste (report by IC) -TD
2000-07-16 (2.8.4dev.5)
* remove "*:OS/390:*:*" item from config.guess -PG
* add os390 item to $host_os case-statement in -PG
* move $host_os case-statement in before some configuration tests
such as CF_BUNDLED_INTL which might perform compile-time tests -TD
* use LYLocalFileToURL() in handle_LYK_CHDIR() to ensure that DOSPATH is
handled properly, inserting a '/' (reported by DK) -TD
* correct loop condition in HTSaveToFile(), from dev.4 changes for -cmd_script
option which left it ignoring 'c' for cancel -TD
* speed up local directory access for DJGPP by setting _djstat_flags (Gisle
* updates for makelynx.bat, and improved call on the blat mailer (note -f field
not needed or wanted) -Victor Schneider
* fix Debian bug #65151: "<> in javascript causes premature </script>"
(reported by H Nanosecond <>) -KW
* replaced all occurences of 'black' with 'default' in /samples/mild-colors.lss
to make it more reasonable on terminals with non-black background -VH
* modify color-style initialization to avoid passing -1's as attribute codes
which would happen if the lynx.lss file was not found, or if not all styles
were set in that file. Also if lynx.lss is not found, initialize the
predefined styles to match those in samples/lynx.lss -TD
* modify handling of empty values for radio and checkbox fields to avoid
sending "on" as the value (reported by Janne Peltonen <>) -KW
* don't double backslash characters in HTQuoteParameter(), since that changes
the string a program invoked through system will see. Note this assumes UNIX
or POSIX interpretation of single-quoted strings by the shell -KW
* implement first draft of command-completion using popup menu for selection.
Pressing tab twice in the prompt for command or URLs will display a sorted
list of the choices -TD
* implement a simple parser for Lynx commands which are normally bound to keys
using KEYMAP. This is bound to ':', so you can for instance type ":quit" to
exit. The parser allows unique abbreviations, so ":q" is equivalent to
":quit" -TD
* consolidate/simplify logic for displaying popup menus -TD
* rewrote tab-completion to use an HTList -TD
* move related logic into LYSubwindow() to reduce clutter - TD
* make $(DESTDIR) variable work for po directory -TD
* update bundled intl directory to match gettext-0.10.35 (except for fixes to
build scripts) -TD
* modify configure macro CF_CURSES_LIBS to use a different order for library
checks if it has found ncurses header files (i.e., they are installed as
/usr/include/curses.h). This is done to fix an problem where there are two
versions of the curses/ncurses libraries installed, and the "curses" library
is not ncurses (from a report by Sergei Pokrovsky <>) -TD
* fix for configure script from dialog: If we really do not use included intl,
suppress the command that would attempt to symlink the two copies of its
header -TD
* updates for config.guess, config.sub from tin -TD
2000-06-23 (2.8.4dev.4)
* modify handling to EXTERNAL settings by adding a new field in lynx.cfg. When
TRUE, then activating (using arrow-right for example) the link with URL
matching the one specified by 'prefix' field will be equal to pressing '.' on
it -VH
* restore commented-out "clearok(curscr, TRUE)" in display_page() in GridText.c
to workaround problem repainting multibyte characters (reported by Takuya
* add HIDDEN_LINK_MARKER entry to lynx.cfg, allowing user to specify string to
mark hidden links with (thus hidden links become non-hidden, thus they won't
be listed as hidden in the 'l' page) - the name of the setting is
hidden_link_marker. If the string to mark with is empty, then old behaviour
is restored -VH
* implement "change directory" command. This is tested only on linux. It's
bound to 'C' in both modes (before this in normal modem COMMENT command was
bound to 'c' and 'C' in normal mode, and CREATE was bound to 'c' and 'C' in
dired mode). The main purpose of this command is not to type the name of the
directory when 'p'rinting to files and 'd'ownloading. If this command is
invoked in dired mode, the listing of destination directory will be
automatically loaded. Dired file operations menu lists this command too as
the first item. To disable it, comment the line
in userdefs.h -VH
* add definitions to allow slang configuration to implement scrollbars. This
will not work for any termcap/terminfo-based systems, appears specific to
MS-DOS (patch by Gisle Vanem)
* updates for config.guess, config.sub from tin -TD
* fix typo in CF_CHECK_ERRNO configure macro (reported by John Coyne
<>) -TD
* add <html> and </html> around generated HTML in HTGopher.c, LYKeymap.c,
LYCookie.c and LYCgi.c to make them more-correct. Did not modify
LYBookmark.c because the logic there relies on appending to the bookmark file
(report by Patrick Boylan <>) -TD
* make pretty_html() in LYKeymap.c quote ampersand and quote, simplified logic
as well with LYKeycodeToString() implemented for command-logging -TD
* add command-line options -cmd_log and -cmd_script, to provide a simple
command logging and scripting facility -TD
* minor correction to -stdin option, add newline at the end of each line
copied -TD
2000-06-02 (2.8.4dev.3)
* initial support for SOURCE_CACHE_FOR_ABORTED -VH
* change default_keypad_mode_fun() to use config_enum() -TD
* modify config_enum() to check if the given name in lynx.cfg is ambiguous,
matching more than one name -TD
* in passive ftp mode (FTP_PASSIVE:TRUE), use the IP address from the server's
response for the data connection, rather than doing another lookup of the
hostname -KW
* correct bug introduced in dev.2 for leading whitespace in mailcap (reported
by Andrey Chernov) -VH, TD
* change server types in HTFTP.c to an enum -TD
* handle a "215 Windows2000" response from "SYST" command (Gisle Vanem)
* change return value of parse_arg() when processing non-option data to make
URL in stdin (after '-') treated in the second pass, restoring behavior lost
in cleanup (reported by Gisle Vanem) -TD
* allow blank as a separator in arg_eqs_parse() in addition to ':' and '=',
to restore behavior lost in cleanup of argument parsing -TD
* make -stdin option a little more flexible by ifdef'ing primarily based on
ttyname(), and adding fallback definitions for Win32 and VMS -TD
* for slang configurations past 1.3.6, call SLsmg_touch_screen() in
start_curses to ensure that the screen is properly initialized for non-bce
terminals -JED (John Davis)
* move call on lynx_initialize_keymaps() for slang configuration into the
start_curses() function, avoiding premature reference to $TERM, especially
when Lynx is running in dump mode, e.g., via cron (report by Hamish Moffatt
<>, analysis by KW) -TD
* correct logic for ^ and $ commands (FIRST_LINK and LAST_LINK) when the
current line happens to be the first or last line on the screen (reported
by KW) -TD
* remove unused fragments of backspace logic from print_crawl_to_fd() -TD
* modify print_wwwfile_to_fd() and print_crawl_to_fd() to refrain from emitting
an offset for empty lines -TD
* modify print_wwwfile_to_fd() to refrain from emitting backspaces when
the is_reply parameter is true -TD
* add traces for argument parsing, as well as an environment variable
LYNX_TRACE which has the effect of the -trace option -TD
* add configure check for ttyname, used in ifdef's for -stdin option -TD
2000-05-21 (2.8.4dev.2)
* minor changes to HTInit.c to make it more tolerant of leading whitespace
in mailcap entries (reported by Sven Guckes <>) -TD
* add option -stdin, which tells Lynx to read the startfile from standard
input -TD
* simplify argument parsing in LYMain.c, moving the special cases into the
table-driven logic by adding a flag that denotes the argument parsing phase
that applies -TD
* correct duplicate description of JUMPFILE in lynx.cfg -TD
* refine changes to use command-line options to control the
sorting and marking features, as well as make the script work properly if
the markup data is not given -TD
* moved entry for lynx.cfg setting "viewer" according to the alphabet in
LYReadCFG.c:Config_Table -VH
* modify to mark unavailable options, and to provide for sorting
the options in body.html -VH
* update NLS configure script macros using CF_BUNDLED_INTL from tin, etc. -TD
* update utmp configure script macros from xterm -TD
* fix (from tin) to autoconf macro AM_WITH_NLS to fix a case where it would
refuse to build with non-GNU gettext -TD
* modified autoconf macros CF_HEADER_PATH and CF_LIBRARY_PATH, to look in more
places for the specified files, including $HOME -TD
* remove intl/libintl.h since it is overwritten by a symbolic link (reported
by Atsuhito Kohda <>) -TD
* correct a few tests in configure script which must allow inclusion of either
ncurses.h or curses.h, otherwise color-style cannot be configured (reported
by Frederick Bruckman <>) -TD
* move logic that makes subdirectory for more-secure temporary files into
LYOpenTemp() where it can perform that action on demand rather than for all
invocations of lynx. Further refine this logic by ensuring that the umask is
set to allow execution permissions on the subdirectory (fixes problems
reported by Michael Abraham Shulman <> and KW) -TD
2000-05-05 (2.8.4dev.1)
* use built-in LYCopyFile logic for CYGWIN rather than external cp program -DK
* minor refinement to LYValidateFilename() to avoid prepending a drive
letter when saving files via the PRINT command on DOS systems -DK
* update URLs in lynx_help_main.html (Frederic L W Meunier)
* update description in INSTALLATION dealing with passive ftp (report by
Frederic L W Meunier) -TD
* correct ifdef'ing in LYtouchline() for VMS curses versus slang (report by
Jerome Lauret) -TD
* correct an overlooked change of ifdef's from
* move include of LYClean.h in LYexit.c to ensure that cleanup_files() is
prototyped on VMS (report by Jerome Lauret) -TD
* move assignment of HadVMSInterrupt in cleanup_sig() to avoid interaction with
logic in HTConfirmDefault() on VMS (reported/tested by Jerome Lauret) -KW
* minor fixes to / lynx.hlp for descriptions of -get_data, -post_data,
-short_url -KW
* avoid invalid memory access that can result from redirection messages
that include a fragment in the new URL -KW
* change sed delimiter in from '%' to '"', to work around SINIX
v5.43 (SYSV4) sed which becomes confused by nested '%' in expression for
htmlized cfg install (reported by Shishakov Vjacheslav
<>) -TD
2000-04-23 (2.8.3rel.1)
* replace LYNX_RELEASE variable in userdefs.h by functions LYVersionIsRelease()
and LYVersionStatus() in LYShowInfo.c -TD
* remove symbol LYNX_RELEASE_DATE, use same format for both development and
release dates -LP
* remove po/ChangeLog (noted by LP)
2000-04-22 (2.8.3pre.8)
* update option_help.html to describe the Visited Pages settings -TD
* correct order of body_attr[] and button_attr[] in HTMLDTD.c -TD
* correction for IMG attributes in HTMLDTD.c -KW
* tweak form-based options menu: General Preferencies now has User Mode,
Editor, Searching type and Cookies (suggested by PW). Correct misspelled
gettext'ed message, introduced in pre.7 -LP, DK
* note in configure --help and INSTALLATION that color-style is implemented
for various curses libraries but not slang -TD
* add a note to INSTALLATION describing how to disable the telnet application
when configuring Lynx -TD
2000-04-19 (2.8.3pre.7)
* move initialization of WATT-32 "sock_init()" code in LYMain.c so it precedes
Lynx's code to setup SIGINT handler, since WATT-32 installs a SIGINT handler
as well. This makes Lynx's handler the default again -DK
* correct handling of CHARSET attributes on LINK and A. Basically this reverts
back to original 2.7.2ac logic -KW
* enable handling of CHARSET attributes on LINK - it was disabled, probably
accidentally -KW
* prevent CHARSET attributes from modifying the charset assumption for the
_current_ document -KW
* correct errors in HTML.c that could result in infinite loop (iteration
counter was not incremented) -KW
* revert one strcpy -> StrAllocCopy change - see added comment in LYCgi.c -KW
* correct limit of formatted string in status_link() -KW
* change NO_FILE_REFERER default to TRUE (i.e., do not send local file name
in the referer field unless explicitly specified by the user) -LP, KW
* implement a workaround for gettext'd ADVANCED_COOKIE_CONFIRMATION to make
it consistent with HTConfirmDefault(), fixes Debian #62105 -TD
* clarify/expand notes in lynx.cfg dealing with USE_MOUSE (from comments by
Morten Bo Johansen <>) -TD
* noted glibc 2.1.3 bug in PROBLEMS -TD
* reorganize forms-based options menu: options are now grouped by sections in
a more logical way (design by KW). (BTW, it is now more aligned with
htmlized-cfg cattoc.html). Help files changed accordingly. A few gettext'ed
messages were changed -LP
* add ifdef's (USE_BLAT_MAILER and USE_ALT_BLAT_MAILER) and corresponding code
for blat vs blatj mailer (request by Victor Schneider) -TD
* update Lynx FAQ locations -JES
2000-04-17 (2.8.3pre.6)
* change version number in remaining documentation to 2.8.3 -TD
* remove redundant defines for SUPPORT_MULTIBYTE_EDIT and COLOR_TABLE from
DOS/Win32 makefiles -TD
* small change to configure test for REAL_UNIX_SYSTEM to accommodate linkers
that allow assignment from a nonexistent extern. Also, change a few UNIX
symbols in LYCurses.c and LYUtils.c to REAL_UNIX_SYSTEM to build on platforms
that do not define this symbol -TD
* update notes in LYMain.c and LYReadCFG.c regarding the options and config
variable tables, which no longer need to be sorted -TD
* htmlized lynx.cfg: add .h2 RULESFILE, remove confusing .h1 header -LP
* define SUPPORT_MULTIBYTE_EDIT in userdefs.h -TH
2000-04-13 (2.8.3pre.5)
* fix printing of Last-Modified field in downloaded/printed source -LP
* update URL for RFC 1942 -LV, DK
* update Subir Grewal's Lynx links URL to the newest location -LV, TD
* move assignment to donelookup in LYGetHostByName() to avoid race with
CreateThread() -Alexei Anatski
* modify LYexecv() in LYLocal.c for MINGW32 -SH, Victor Schneider
* re-correct logic for .h1 comments in cattoc.html by (reported
by LP) -TD
* move call to cleanup_files() into LYexit(), to fix stray temporary directory
left, e.g,. when doing "lynx -version" -TD
2000-04-11 (2.8.3pre.4)
* add to logic of --with-charsets configure option, checking for charset names
that happen to be built-into UCdomap.c rather than defined via .tbl files
in src/charsets (reported by HN) -TD
* correct missing extern in CF_SLANG_UNIX compile-test -TD
2000-04-06 (2.8.3pre.3)
* remove definitions for NCURSES and NCURSES_VERSION from top-level makefiles
that really use PDCurses -TD
* add USE_MOUSE symbol: cleanup/simplify ifdef'ing of mouse code,
with USE_MOUSE (and modifier when necessary) -LP
* windows makefiles: add new symbols SOURCE_CACHE and USE_PRETTYSRC,
* fixed a bug with psrcview on lss-enabled lynx. Code such as <a blah href=.>
(i.e. unknown attribute and then some other attribute) was causing calls to
PSRCSTOP(barattr) twice (and lynx was switched to "non-preformatted" mode
losing all white spaces of the document after that piece of code) -VH
* add configure option --with-screen=pdcurses, mainly for checking ifdef
conflicts between ncurses and pdcurses. This builds/runs with the PDCurses
X11 library, but is not recommended for general use -TD
* remove test-artifact in configure check for zlib.h -TD
* add CF_SLANG_UNIX configure macro, to allow slang configuration to build on
AIX, etc., (reported by Jens Schleusener <>) -TD
* update CF_CURSES_LIBS macro from CDK fixes, adds a special check for HPUX
11.x -lcur_colr library -TD
2000-04-02 (2.8.3pre.2)
* fixed problem with charset handling for SOURCE_CACHE:MEMORY - if the charset
was specified by Content-Type http header it won't be lost (as it was) when
reparsing from source cache (applies to toggling DTD, switching to srcview,
and other stuff like *,' etc) -VH
* add ifdef'd call for creat() for Borland C configuration in LYExecv(), as per
JES report -TD
* remove definition of NCURSES_MOUSE_VERSION from makefile.bcb and
makelynx.bat, which should fix compile problem reported by JES -TD
* move a small number of gettext definitions into LYMessages_en.h to allow
removing the associated files from, which must not be larger
than 1023 for Solaris (reported by JES) -TD
* improve ifdef's for fallback definitions of getattrs(), getbegx(), getbegy()
and getbkgd() in LYCurses.h since they may be functions rather than macros
(reported by PG on os390) -TD
* further restrict tildeExpand() so it allows embedded "~" only if it follows
a slash, or is the first character -TD
* add check for "~" as the path to be expanded in tildeExpand() (fixes problem
reported by Frederic L W Meunier when TEMP_SPACE was defined to "~") -TD
2000-03-31 (2.8.3pre.1)
* remove annoying trailing period from two statusline messages ending with host
name ("Looking up" and "Making HTTP connection to") -LP
* lynx.cfg: use two lines to separate options description in this
configuration file (it looks more readable, for such a huge text) -LP
* lynx.cfg: make a few corrections to reorganize .h1 sections to improve
htmlized cattoc.html logic. More corrections welcome -LP
* fix some compiler warnings for DECC dealing with time_t being unsigned in
that environment (reported by Jerome Lauret) -TD
* suppress Multinet prototypes in socket.h, to work around some places where
Multinet declares parameters a void* while DECC uses char* (patch by Jerome
Lauret <>).
* undo side-effect of config_enum() function in LYReadCFG.c from cleanup in
dev.22 which made default_user_mode and source_cache values not set properly
(reported by Alexei Anatski <>) -TD
* correct ifdef's in LYStrings.c for NCURSES_MOUSE_VERSION versus PDCURSES
adding new PDCURSES_MOUSE_VERSION to cover special case of DJGPP (reported by
* add PRETTYSRC to lynx.cfg, supplementing -prettysrc commandline option -TD
* add call to LYStoreCookies() from HTFWriter.c to save cookies when -source is
used (patch by KW)
* remove const from LYGetHostByName() parameter -TD
* modify to ensure links within htmlized lynx.cfg are updated
if gzip-help is configured (reported by Ari Moisio) -TD
* remove -DEXP_CHARTRANS from makefile.msc, makefile.bcb (reported by LP) -TD
* trim trailing path-separator from lynx_temp_space before removing that
directory, on exit -TD
* ifdef'd IsOurFile() to perform only an ownership check on single-user DOS
and OS/2 systems, so user can overwrite files -TD
* simplified some initialization in LYMain.c with tildeExpand() -TD
* change prototypes of HTSetPresentation(), HTSetSuffix5() to use double rather
than float, since this is the default promotion, working better with some
compilers -TD
* add comments to makefile.msc to show how to build color-style version -TD
* add fallback definition for getattrs(), move fallback definitions for
getbegy() and getbegx() in LYCurses.h to allow building color-style version
with PDCurses -TD
* correct a call on lib$find_file() in HTVMSUtils.c which broke by not
supplying it with a fixed-size buffer, from dev.23 changes -TD
* correct an out-of-range indexing error in LYstatusline_messages_on_exit(),
and add a check in to_stack() for a similar problem -TD
* add definitions and description of USE_TH_JP_AUTO_DETECT,
CONV_JISX0201KANA_JISX0208KANA, and KANJI_CODE_OVERRIDE to userdefs.h, along
with a new file -TH
2000-03-26 (2.8.3dev.23)
* make -nounderline option apply to overloading of colors 4 & 5 with
underlines, in slang configuration -TD
* on initialization, check if the LYNX_TEMP_SPACE denotes a directory which
we cannot easily determine if someone could alter our temp-files. If so,
make a subdirectory of that, with appropriate permissions -TD
* disable setuid on initialization -TD
* add a definition USE_MKSTEMP in userdefs.h which supersedes EXP_RAND_TEMPNAME
for sys-admins who believe in mkstemp() -TD
* change logic for EXP_RAND_TEMPNAME to avoid allowing fmt_tempname() to return
the same name during a session. Define EXP_NAME_TEMPNAME in userdefs.h -TD
* add Last-Modified header into the printed/downloaded source, in addition to
the Date header (it is there for years). (Last-Modified field will not be
printed if it is not present, or equal to the Date header or equal to
"Thu, 01 Jan 1970 00:00:01 GMT", a common mistake in scripts) -LP
* defined DIRED_SUPPORT in makefile.msc -TD
* several small fixes in LYLocal.c for dired support, mostly win32-specific -TD
* modify PDCurses mouse logic to use BUTTON_PRESSED mask rather than
BUTTON_CLICKED, since the latter appears to not work in PDCurses 2.4 -TD
* modify HTDirTitles() to fix a couple of cases for device-only pathnames,
e.g., for DOS -TD
* modify HTDOS_name() to put a trailing '\' on the result if only a device
is given. Fix a memory leak in HTDOS_name() -TD
* simplify local_dired() using new function match_op(), adding DOSPATH
and __EMX__ to special case of stripping a leading '/' from parameter so
dired mode works properly on Win32 and OS/2 EMX -TD
* minor cleanup using new function LYformTitle() -TD
* modify LYUCPushAssumed to push original assume_charset insted of
anchor_UCI->MIMEname when HTCJK is JAPANESE. If this modification isn't
done, Japanese strings may be mishandled when charset is not specified or
assumed as Japanese charset. On the other hand, if this modification IS
done, the specified charset is ignored when HTCJK is JAPANESE.
# I think it's long way to improve this completely. It rarely
# causes small problem in source view mode for Japanese document.
# I think it can be ignored -TH
* improve handling of Japanese titles in List Page, LYNXIMGMAP Page and
ShowInfo Page -TH
* remove spurious backslashes in sed script for adjusting link to htmlized
lynx.cfg -Michael Warner
* add -luser32 library for Cygwin configuration, needed for WIN_EX ifdefs -DK
* correct some screen handling problems when built with SLang -DK
* updated the INSTALLATION file to reflect building under Cygwin -DK
* define WIN_EX and _WINDOWS_NSL for Cygwin configuration -DK
* use select_s() from WATT-32 for the DJGPP port, rather than select() from
DJGPP (suggested by Gisle Vanem, to make it faster) -DK
* add a configure check CF_SET_ERRNO to check if we really can set errno,
even if it has been #define'd -TD
* remove a redundant call to HTQuoteParameter() from LYExtern.c, which resulted
in quoted-quotes (reported by Michael Warner) -TD
* add configure check for syslog.h, in case --enable-syslog is given for a
machine that doesn't support it -TD
* add ASSUMED_COLOR variable to lynx.cfg, making the use of
assume_default_colors() optional (addresses reports by LV, IC) -TD
* add a configure check for the compiler option needed to find zlib.h, e.g.,
if it is in /usr/local/include and the compiler is not gcc -TD
* disentangle some of the PDCurses ifdef's from ncurses, including the mouse
handling. The symbol PDCURSES should be used for PDCurses, not NCURSES*
* remove unused getline.c, getpass.c, crypt.c and crypt_util.c -TD
* change ifdef's in LYisAbsPath() and LYisRootPath to make OS/2 EMX treated the
same as DOSPATH -TD
* review use of strcat/strcpy, changing as needed to avoid buffer overflows -TD
2000-03-12 (2.8.3dev.22)
* modify Home_Dir() so that on DOS & Windows, if the $HOMEDRIVE variable is
set, it may be used to specify the drive on which $HOME is located -TD
* add configure option --enable-htmlized-cfg to install the htmlized lynx.cfg
in the help directory (request by LP) -TD
* suppress sleep's in crawl or traversal mode (request by LV) -TD
* cleanup LYReadCFG.c, LYrcFile.c a little, using new functions putBool,
getBool, putEnum and getEnum -TD
* change default mode for visited-links-page to match original behavior, add
visited_links to .lynxrc file (requests by KD, LP) -TD
* update documentation to reflect move from to -PG
* remove obsolete files: WWW/Copyright.txt (replaced by FreeOfCharge.html) and
WWW/README.txt (recommended by DK) -TD
* clean up some of the loose ends, primarily in documentation. A Russian user
pointed out that the DOS binary was ignoring character 0xe0. This turned out
to be a bug in the PDCurses code for DOS. I modified the INSTALLATION file
to reflect the patch to PDCurses. Also include the file for the public
domain release of the CERN wwwlib code (FreeOfCharge.html). Other changes
fix dead links, Y2K changes, and reflect newer versions of other programs -DK
* comment-out/disable NO_ANONYMOUS_EMAIL definition in userdefs.h -DK
* change optimization level to -O1 in makefile.dos -DK
* use macro set_errno() to hide some of the clutter in HTTCP.c as well as make
it simpler to build with threaded libraries -TD
* ifdef'd out a "QUIT" command sent to the FTP server immediately after opening
a data connection in HTFTPLoad(), since this makes the server
close the connection prematurely -TD
* combine redundant HTMake_VMS_name() with HTVMS_name() -TD
* review use of "%s" in sprintf, to guard against buffer overflows, modified
some to use HTSprintf0 or StrAllocCopy, others to use specific lengths
(KW noted a related problem in HTTP.c) -TD
2000-02-25 (2.8.3dev.21)
* modify check for empty news-posting to warn but allow user to override if
it contains nonspace characters -TD
* add FTP_PASSIVE option to lynx.cfg, allowing installer to defer decision
of whether lynx uses passive ftp connection (adapted from patch by
Bernhard Rosenkraenzer <>) -TD
* remove duplicate definitions of HT_NON_BREAK_SPACE, HT_EN_SPACE leaving them
in HTFont.h -TD
* lynx.cfg option CONNECT_TIMEOUT and commandline option "connect_timeout" were
added (not available for DOS port) -VH
* don't perform submission of the content of disabled form fields -VH
* add bindings for ^ and $ (like vi) to move the cursor to the first and last
link on the current line (prompted by complaint by DH that < and > used to
allow movement to the ends of a line) -TD
* remove --enable-kanji option (request by TH) -TD
* enable the routines to change kanji code which is used for overriding,
since my last change disabled this -TH
* remove redundant/conflicting definitions of ON/OFF from HTVMS_WaisUI.h -TD
* fixes for K&R build on SunOS -TD
2000-02-15 (2.8.3dev.20)
* ifdef fixes for CYGWIN, broken in dev.19 -TD
* add make-msc.bat script, and update src/chrtrans/makefile.msc to add rules
for generating header files -TD
2000-02-14 (2.8.3dev.19)
* use HTAddParam/HTEndParam rather than HTSprintf0 for building external
commands, protecting against badly-formatted string with more than one %s
(reported by PW) -TD
* update placeholder po/nl.po -JES
* add configure option --enable-kanji for defining symbols related to TH's
patch -TD
* improved handling of Japanese text (patch by TH (Hataguchi Takeshi)):
+ if Japanese document's charset is specified explicitly by the MIME tag or
HTTP responses, Lynx will assume the charset as that value.
+ change the Japanese charset detection strategy when charset is not
specified explicitly.
+ wrap a long text which includes only CJK characters in source mode.
+ avoid writing CJK characters at the 80th column.
+ improve kanji code override routine
# My change seems to have broken this
+ change the phrase "half width kana" to "JIS x0201 Kana" in comments.
# The latter has been used originally.
+ enable assume_charset when display charset and assume charset
are Japanese. assume_charset acts like charset by META tag
only when charset isn't specified by META nor HTTP responses.
+ change the behavior of the option menu.
For example, when display charset is Japanese (EUC-JP) and
CJK mode is on, changing assume_charset from iso-8859-1 to
shift_jis using the option menu,
old behavior:
assume_charset won't be changed.
CJK mode will turn off.
new behavior:
assume_charset will be changed to shift_jis
CJK mode won't be changed.
+ improve handling Japanese in Visited Links Page, History Page
and pages with FORM.
New macros are:
enable (2)
convert JIS X0201 Kana to JIS X0208 Kana,
i.e. convert half width kana to full width.
I've not tested the case not to define this well.
enable kanji code override routine.
The code can be changed by ^L.
More precisely, this enables us to change the assumption kanji
code for the document. This assumption overrides the charaset
by META tag and HTTP responses.
* ensure lynx_doc is writable when doing install, since it is not necessarily
done as root -TD
* simplify/correct ifdef'ing in reply_by_mail() -TD
* add ifdef CANNOT_PIPE_MAIL to simplify ifdef'ing for systems having mailers
that we can pipe to versus those that we cannot -TD
* add ifdef USE_BLAT_MAILER to simplify & make consistent ifdef'ing for
blat mail program -TD
* correct ifdef'ing in mailform() for Unix (report by LV, analysis by KW) -TD
* tweak lynx.cfg for better output -LP
* fix DOS makefiles for recent renaming USE_PSRC -> USE_PRETTYSRC.
Also, change optimization flag to -O1: having experience with slow
386 machine I see no visible difference in speed at run time, but this
makes compilation much faster and takes less memory. Tweak INSTALLATION
file accordingly -LP
* ifdef'd feature for generating random temporary filenames with
* remove duplicate S_xxx definitions from LYLocal.h, already in www_tcp.h -TD
* add note about building with Visual C++ -TD
* ifdef'd reference to current_codepage in LYCurses.c with PDCURSES_EXP
rather than PDCURSES, since this variable is not found in any release
version of PDCurses -TD
* several small fixes/adjustments to reduce warnings from lint-like program
'antic' -TD
* fixes to compile on VMS with UCX -TD
* change LYRemoveTemp() to return a value, needed for VMS -TD
* rename intl/ to intl/po2tbl.sed_in, to allow unzip on VMS -TD
* correct HTSetSuffix/HTSetSuffix5 for VMS build (reported by Dan W. Olds
<>) -TD
* resync autoconf macros, from tin -TD
2000-01-06 (2.8.3dev.18)
* correction to LYCookieSavefile so tilde expansion is done (reported by Larry
Virden) -BJP
* now it's guaranteed that LY_SOFT_NEWLINE could be only 0th character in
line->data (it could be preceded by LY_*_START_CHAR). Bug that caused
empty lines to disappear when printing files was fixed -VH
* comments are now correctly converted to display charset in prettysrc mode -VH
* fix "Please see" array initialization in (reported by VH, LP) -TD
* small userdefs.h typo fixed -VH
* added lynx.cfg setting that controls justification - maximum value for
ratio of 'spaces to spread'/'max width of a line' when justification can
take place -VH
* change "PSRC" to "PRETTYSRC" in configuration (suggested by KW) -TD
* combine a dozen of HTMLSRC_ lynx.cfg settings into PSRCSPEC setting. Old
"HTMLSRC_foo:bar1:bar2" should be written as "PSRCSPEC:foo:bar1:bar2" -VH
* use assume_default_colors() extension from upcoming ncurses 5.1 and related
support to provide more flexible coloring. If the user's configuration files
do not specify "default", the default-color support is suppressed, and the
displayed colors default to white/black. The original behavior matches
SVr4 curses, which assumes the default colors of the screen but does not
ensure that they match the assumption -TD
* modify LYsetXDisplay() to permit $DISPLAY to have an empty value, and reuse
logic in forms-options from menu-options as validate_x_display() and
summarize_x_display(). The forms-options will not display a warning since it
exits too early, but at least one may now reset $DISPLAY to an empty string
(reported by KW) -TD
* add note in INSTALLATION pointing to aclocal.m4 for details of regenerating
configure script -TD
* add stub "po" gettext for Czech language, update other stubs -JES
* undo dev.16 change to print_wwwfile_to_fd() logic for LY_SOFT_NEWLINE which
resulted in dropping blank lines from printed files -TD
* make off by one correction in HTDisplayPartial line counting (as discussed
with LP) -KW
* one invalid memory free (only reached in some (rare?) error case), two
memory leaks removed in LYLocal.c -KW
* date calculations for file times in FTP directory listings used cached values
for the current day and year that never got reset. This could cause wrong
ordering when sorting by date, and possibly other errors, especially in
long-running lynx sessions. Now recalculate them for each new directory
request if they are needed -KW
* be slightly more tolerant about FTP directory listing file times that appear
to lie in the future: allow today plus one day without assuming that it must
mean a year ago, to account for possible timezone differences -KW
* add comment to reload_read_cfg() listing things that are/aren't done -LP
* minor lynx.cfg corections for better output -LP
* restore 'from_source_cache' PRIVATE to LYMainLoop.c, add comments -LP
* amend dev.16 feature for generating random temporary filenames to ensure that
Lynx does not currently have the generated name open as a temporary file -TD
1999-12-15 (2.8.3dev.17)
* add a caution to jumpsUnix.html -PW
* ifdef LYEditKeyForAction() to compile when EXP_ALT_BINDINGS is not defined
(reported by VH) -TD
* add 3-valued DEFAULT_KEYPAD_MODE to lynx.cfg -TD
* add COOKIE_SAVE_FILE lynx.cfg and corresponding command-line option, default
it to /dev/null, which is recognized on all systems -BJP
* correct typo in declaration of LYLeakSAVsprintf() -Michael Warner
* remove from_source_cache_p parameters in LYMainLoop.c (request by LP) -TD
* documentation updates covering the Options Menu & other changes omitted
previously -PW
* small correction in TRSTable.c: One of my previous changes for TRST broke
inheritance of alignment for cell contents from TR elements -KW
* new functions for keeping track of temp files (and some other files) for user
interface pages: LYRegisterUIPage(), LYIsUIPage(). Most checks that look at
the loaded document's title have been replaced by this mechanism. This also
replaces various mechanism that were implemented for some specific pages -KW
* also replaced some more checks that looked at the document's title by checks
of the address, for pages that are always identified by a special URL scheme
* now check directly in postoptions() whether the loaded document is one from
which submission of option changes can be accepted, using the new tracking
mechanism. Only the form-based Options Menu and Visited Links are allowed.
Relying on a good random generator to prevent spoofing is not necessary.
Kept the secure_string check, but it should be only regarded as an aid to the
user, it prevents changing options from an instance of the form-based Options
Menu that is not the most recent one (this can happen if an Options Menu page
is pushed on the history stack and later returned to) -KW
* honor REUSE_TEMPFILES for some more user interface pages -KW
* prevent an obscure LYNXOPTIONS://MBM_MENU crash -KW
* other minor additions and corrections to checks for special pages -KW
* changed INSTALLATION text for --enable-internal-links -KW, HN
* changes to build dev16 with color styles on DJGPP/PDCurses 2.3
(you must uncomment a line in makefiles to build lynx that way) -LP
* correct a missing check in HTML.c HTML_A case against force_empty_hrefless_a
(reported by KW) -VH
* changed lines -> disp_lines, cols -> disp_cols in GridText.c -KW
* don't reparse with SOURCE_CACHE if screen size changed only
vertically (disp_lines). Also don't reparse unnecessarily in
some cases of LYK_MINIMAL -KW
* don't append (HEAD) to title for INFO screen if already present -KW
* set newdoc.title to curdoc.title in LYMainLoop.c for SOURCE command.
Otherwise INFO could show the wrong document's title -KW
* made global from_source_cache PRIVATE to mainloop -KW
* reset DIRED_MENU item list when lynx.cfg is reloaded -KW
* new lynx.cfg option AUTO_UNCACHE_DIRLISTS for Dired mode, see lynx.cfg -KW
* prevent file descriptor and inode leak in HTFWriter.c that occurred if
the same resource is repeatedly downloaded (for 'd' or for passing to
a viewer) -KW
* corrected logic for suppressing last HTDisplayPartial call at end of file,
after discussion with LP -KW
* corrected line counting in HTDisplayPartial, taking into account offsets used
for the various variables being compared -KW
* added confirmation prompt for reloading non-safe post_data documents in
form-based Options Menu change handling. Before this change, the prompt
would be issued after returning to mainloop() instead, with different
behavior if confirmation was denied: The document would be popped instead of
keeping the current instance -KW
* function confirm_post_resub made PUBLIC and moved to HTAlert.c. New function
srcmode_for_next_retrieval in LYGetFile.c. Both used for the above and in
LYMainLoop.c -KW
* fixed behavior for various post_data confirmation prompts in connection with
SOURCE_CACHE in LYMainLoop.c. Before this change, the user would be prompted
to confirm reloading, yet on confirmation reparsing from the source cache
would be attempted. So prompts were unnecessary and misleading -KW
* try to handle some failures of errors in source cache reparsing better. Try
to make sure that unsafe post_data documents don't get reloaded accidentally
without confirmation if source cache reparsing fails. Treat partial data
(i.e. loading from source cache probably 'z'apped by user) as successful, as
HTLoadDocument does. (Various error conditions are currently only passed on
to the caller by HTParseFile, not by HTParseMem. I left this apparent design
decision unchanged.) -KW
* source cache reparsing did not rewrite a previous cache copy when the
document was reloaded from the net. This means that e.g. NOCACHE or RELOAD
would force reloading from the network, but then on the next non-forced
loading of the document (e.g. by toggling to SOURCE view) the old (and
possibly stale) copy would again be used. Now the newer copy replaces the
old copy if loading is successful (and not interrupted or aborted with 'z').
(Note that RELOAD while in source view, at least in the normal one without
-preparsed or -prettysrc, does not have this effect since the document does
not get pushed through the cache writer at all in that case.) -KW
* if a source cache copy for a document exists, we need a way to ensure that
reparsing from that copy does not try to rewrite that same copy "under our
feet" while still reading from it. Previously that was done by just never
rewriting an existing source cache. After changing that (see previous item),
a different approach is needed to prevent such collisions. This is now
solved in two ways: (a) Base a temporary new file or memory chunk for
writing, and only commit it to the doc's ParentAnchor object (replacing the
previous copy) at the end of the incoming data stream. This is done in
CacheThru_free(), but not in CacheThru_abort(), meaning that an interrupted
or otherwise aborted transmission will not replace an existing cached copy
with a truncated now version - as long as such interruption gets detected and
properly indicated, which is not the case for reading from the source cache
with SOURCE_CACHE:MEMORY in effect, see above. (b) Change the
HTParentAnchor's protocol field to indicate a non-HTTP protocol, before
starting to load from source cache in HTreparse_document(). Normally, as
long as DEBUG_SOURCE_CACHE is not defined, this prevents the cache writer
from (re)generating a cache copy. Mechanism (b) isn't necessary (everything
still works when DEBUG_SOURCE_CACHE is defined), it just avoids unnecessary
work -KW
* source cache files and chunks were not always being removed when they should,
probably since change of 1999-06-18. A large number of cache copies could be
kept around unnecessarily wasting disk or memory space. Now make sure that
the source cache copy gets removed when a document is removed from the cache
of rendered docs. They would never be reused anyway. New function
HTAnchor_clearSourceCache. Note to other developers: HTAnchor_delete()
doesn't always remove the HTParentAnchor object, see its implementation -KW
* detect errors during appending to the cache copy. Previously, memory
allocation errors (for SOURCE_CACHE:MEMORY) would cause program exit, and
file write errors (SOURCE_CACHE:FILE, e.g. if the temp disk space was full)
would go undetected and leave the cache file corrupt or truncated. Now allow
the program to continue normally, just cancel the source cache generation for
the current document (which may free up enough memory or disk space to remedy
the immediate problem). Produce an alert message. In the case of a file
error, produce the alert only once until a possibly re-reading of lynx.cfg,
since Lynx should remain otherwise functional in the face of cache file
writing errors -KW
* extended HTChunk: added a variant for which memory allocation errors
are not fatal. Used for changes described in previous item -KW
* don't write raw escape sequences to trace output for lynx-keymaps if
not using trace log file -KW
* protect echo() in stop_curses, it could crash if stop_curses gets called
without preceding start_curses -KW
* save size for regular files in anchor structure (we do the stat() anyway).
It shows up on INFO page as Content-Length. Also use it in partial display
mode to prevent the last call to HTDisplayPartial from HTFileCopy, since a
call to HText_pageDisplay will follow immediately. (But note that nothing
important depends on the correct size; should it be wrong, we lose at most
one partial display screen update. An equivalent suppression of the last
partial update for network protocols is not recommended, since (a) the size
is more unreliable and (b) the socket FIN may be delayed by the network.) -KW
* split HTMIME_put_character into three functions -KW
* made HTMIME.c handle folded header lines correctly (long-standing bug,
reported in February by Devid Coles) -KW
[ reference: ]
* changed how HTTP redirection messages are handled. Don't read full message
and parse buffer for some header fields in HTLoadHTTP. Use common HTMIME.c
header parsing instead. Functions added/modified in HTMIME.c for storing
away the Location URL (if requested and found) and for stopping after the
headers. New private MIME types "message/x-http-redirection" and "www/debug"
to control this via HTStreamStack. Basic approach taken from newer W3C
libwww. Benefits:
- Removes actual bug that was reported: "Content-Location:" was falsely
recognized as "Location:". (long-standing bug)
[ reference: ]
- Removes potential other bugs caused by inferior header parsing in HTTP.c
(including Set-Cookie/Set-Cookie2).
- Should more header fields be needed in the future (also) for redirection
messages, we now get them automatically instead of having to add extra
- Trace output now shows the same kind of info as for other responses.
In particular, Set-Cookie/Set-Cookie2 header fields will normally be
- Statusline progress messages now actually show the HTTP response line
as intended, and it is recorded for LYNXMESSAGES:. (Long-standing error,
previously what was shown could be an empty string, or arbitrary parts
of the response, including HTML markup from the message body.)
- Adding redirection support for lynxcgi would now be simpler (although
currently not done) -KW
* HTErrorStream(), similar to W3C libwww, used in some cases for the above -KW
* remove check in HTParse() dated 98/09/08 which prevented unescaping of 8-bit
data (reported by KW)
* refresh screen for TRST changes in partial display mode as early as possible.
This fixes a problem when the table finished below the screen bottom -LP
* remove global Newline_partial, use LYGetNewline() instead -LP
* adapt idea by VH as a Perl script which generates HTML form of
the lynx.cfg documentation -TD
1999-11-30 (2.8.3dev.16)
* added -nozap command line option -KW
- In its basic form, it disables all checks for 'z' or ^G or other
"immediate" keys that otherwise happen while processing a request (for name
lookups, before or during loading of a document). Note that it also disables
paging through an incompletely loaded document during "partial display".
Normally, i.e. without this option, key input gets "swallowed" or "used up"
by the quasi-asynchronous checks even if they are not 'z' etc. or keys that
have meaning during partial display (meaningless keys just get ignored).
With this option, key input only gets read when lynx is ready to act on it.
- This can be used (a) by people who like to always have predictable
type-ahead (and don't care for 'z'apping and partial display scrolling), (b)
to achieve predictable reaction to keys if lynx is used under some scripting
environment that feeds it input like expect, and (c) for scripting a lynx
session by feeding it keyboard-like character input via input redirection
from a file or pipe (a simpler alternative to b, without the need for expect
or similar).
- Point (c) could be called "poor man's scripting". Note that the input has
to be provided in a raw form (as lynx would see it when it is actually sent
by keys), including raw control characters and escape sequences if necessary.
This patch does not change anything in the way such input is read and parsed,
other that what is explicitly described here. (This paragraph is only here
to explain the context, it does not describe new features.) P.m.s. will only
work as expected if lynx, on a given platform and with the display library
chosen, uses standard input for reading keyboard input. This is the case
with ncurses and possibly other curses implementations, but not with slang,
on Unix-like platforms, and cannot work on platforms where lynx gets keyboard
input in the form of platform- or implementation-specific keycodes (DOS,
Windows - except with Cygwin?) instead of as an octet stream.
- The -nozap option takes an argument. The basic functionality as already
described gets invoked if the argument is not a specially recognized keyword
(it is suggested that -nozap=full or -nozap=all be used). The only
recognized keyword is "initially". With -nozap=initially, additional special
behavior is invoked the first time (and *only* the first time) when lynx
encounters an error or EOF when reading key input. (Currently this will not
get detected if slang with USE_KEYMAPS is used.) In this, case, -nozap
reverts to the default state ('z' will be checked for again). Under some
conditions are true (key input was taken from stdin, and stdin was not
connected to a terminal), lynx will then attempt to reopen stdin, connecting
it to a terminal (stdout, stderr, and the process's controlling tty are
tried, in that order - this is subject to change if something would be more
- The -nozap=initially special behavior will get triggered if input comes
from a file or pipe (p.m.s. above) when the provided characters are "used
up". Normally lynx should then just exit. The special behavior hands
control of the session to the interactive user instead at that point. All
code for -nozap is only compiled in if preprocessor symbol MISC_EXP is
explicitly defined.
* ifdef'd some places for MINGW32 (diffs from Victor Schneider)
* remove 'host' variable in LYGetHostByName() that obscured module-level
'host[]' array in HTTCP.c for _WINDOWS_NSL configuration (patch by SH,
discussion by KW) -TD
* the Newline variable is now PRIVATE except the mouse code in LYStrings.c -LP
* modify HTDOS.c for Wattcp targets (Watt-32 and original wattcp). When Lynx
is sitting idle in getxkey() waiting for a keypress, no network functions are
called. Hence no sockets are processed, "ICMP Echo replies" is sent etc.
This patch has been tested with SLang and '-DDJGPP_KEYHANDLER' I'm not sure
how to hook into 'SLkp_getkey()' or keyboard polling in performed under raw
PDCurses (Gisle Vanem <>)
* update docs for -tna instead of --sticky_inputs -KW
* document extended KEYMAP syntax in lynx.cfg -KW
* update Users Guide for KEYMAP changes, especially the TEXTAREA-related
sections -KW
* move text on ^V a bit to better place, provide a couple links to it -KW
* add blurb about TRST to Users Guide. Also mention external scripts for table
handling -KW
* revise section in Supported URLs on internal schemes. Toned down, provide
rationale, give examples -KW
* fix a few typos in README.TRST -LP
* use 'rand()' in NewSecureValue() -TD
* use a random number rather than a counter to name temporary files -TD
* change LYReadCFG.c to accept any leading punctuation in lynx.cfg as a comment
delimiter -TD
* eliminate some clutter with typecalloc/typecallocn macros -TD
* eliminate some clutter with new function LYBadHTML() -TD
* add checks for null pointers in CTRACE statements in HTML.c (based on report
by LV) -TD
* change realloc calls in SAVE_TIME_NOT_SPACE ifdef in StrAllocVsprintf() to
HTalloc, since older machines (e.g., SunOS 4.x) do not necessarily handle a
null pointer parameter to realloc -TD
* correct ordering of command-line options in LYMain.c -TD
* updates for files in lynx_help & keystrokes -PW
* clarify `General Configuration Instructions (all ports)' in INSTALLATION -PW
* remove "your lynx.cfg"/"compiletime settings" from '='Info Page -LP
* add a note to Lynx_Users_Guide.html#lynx.cfg on "g lynxcfg:" -LP,HN
* change LYNXCOMPILEOPTS: to a link from LYNXCFG: -LP
* slightly reorganize partial mode logic: 'display_partial' variable is now
initialized directly in HText_new(), no need for specialized semaphore any
more -LP
* Allow KEYMAP directives in lynx.cfg of extended form
KEYMAP:lynxkey:lynxaction:editaction[:sel], where lynxkey and lynxaction are
as before, editaction is a line-editor action like FORW, BACK, ERASE etc.
and sel selects the line-editor style to be affected (as a number, starting
with 1 for the Default Binding; or 0 for all styles (the default); or a
negative number -n meaning "all line-editor styles except n"). See Line
Editor Help pages for keywords to use as editaction. This includes PASS
(which was already implemented), for "passing" on the key when line-editing
form fields so that the normal lynxaction will be invoked.
(KEYMAP:lynxkey:lynxaction:DIRED is also still possible for defining a Dired
mode binding).
This is based on a patch from IZ which introduced combined definitions
in a .lynx-keymaps file in the form:
setkey "\200s" LAC:LEFT_LINK/BACKW # C-left
setkey "\200t" LAC:RIGHT_LINK/FORWW # C-right
Combined definitions in .lynx-keymaps are also supported in this patch, but
the syntax was changed to use another ':' instead of '/' as separator. Note
that there is no need to support .lynx-keymaps (i.e., compile with
USE_KEYMAPS defined) for using the extended KEYMAP lynx.cfg directive with
this patch -KW
* avoid access to uninitialized members in TRSTable.c -KW
* limit span values accepted for TRST with TRST_MAXCOLSPAN and TRST_MAXROWSPAN,
which can be changed in userdefs.h. Without imposing a limit, attempts to
trick lynx into allocating huge blocks of memory (which might cause thrashing
without apparent reason) with something like ROWSPAN=10000000 are just too
easy -KW
* moved definition of SAVE_TIME_NOT_SPACE to userdefs.h. You may want to
undefine it for a platform where running out of memory is a frequent problem
(DOS?), although the effect won't be very pronounced. Used in TRST code to
affect size of some allocations (also used as before for
HTSprintf0/HTSprintf) -KW
* implement COLSPAN=0 and ROWSPAN=0 according to HTML 4.01 (not HTML 4.0). The
span extends until the end of the current column group and row group (i.e.
next THEAD/TFOOT/TBODY), respectively; or until the end of the row or table,
respectively, if there is no containing group (thus acting as per HTML 4.0).
Also cancel effect of all ROWSPANs at a THEAD/TFOOT/TBODY boundary (problem
with other browser described and behavior proposed by G. James Berigan in
<>) -KW
* 'prev_target' is now PRIVATE to LYMainLoop.c [defined outside of mainloop()];
this undoes some dev.15 changes. -LP, KW
* replace HText_pageDisplay() calls from partial mode (LYUtils.c and
HTFormat.c) with LYMainLoop_pageDisplay() function implemented in
LYMainLoop.c, it simply calls HText_pageDisplay() but has access to
LYMainLoop.c PRIVATE variables. -LP, KW
* make ^X a prefix key in all Line Edit styles. That means ^V should never be
needed any more to invoke the special textarea commands (but it's still
supported). Updates to help files to reflect this change -KW
* don't produce a link from the KEYMAP page to a help file. The one we used to
use doesn't really help -KW
* correction in code executed after textarea external editing (that determines
when to prompt for re-wrapping): use start_anchor not anchor_ptr. Without
this correction, invalid memory access could occur. (This was probably also
responsible for producing the prompt when it shouldn't be produced in some
cases, as has been reported.) -KW
* some tweaks of Novice mode help lines: don't show wrong key "to delete all
text in field" (FORM_NOVICELINE_TWO); replaced an occurrence of <delete> with
<backspace>. In some cases (e.g., disabled fields), prefer no info to wrong
info -KW
* extended KEYMAP option: additional field can specify DIRED to request
mapping in the Dired mode key_override table rather than the normal keymap
table. Documented the DIRED field and default override mapping in
lynx.cfg -KW
* corrected KEYMAP display for dired mode. It could display the normal binding
when that wouldn't actually be used, for example if a key is bound to
DO_NOTHING for DIRED. The logic deciding whether to show a separate line for
uppercase letters was only looking at the normal keymap -KW
* reset the edit_mode flag (indication of Dired mode) in various places, so the
flag doesn't stat TRUE after a new page has been loaded. For example,
invoking the forms based 'O'ptions page from a Dired directory view would
leave the Dired key bindings enabled within the Options page -KW
* for LYNXMESSAGES: page of recent statusline messages, removed setting of the
LYforce_no_cache flag in getfile(). Set the flag in LYMainLoop.c instead,
but only for following a link. This makes the page act more like a normal
no-cache document, for example returning to it via PREV_DOC does not cause an
automatic update. The special handling in LYMainLoop.c is necessary because
the link to LYNXMESSAGES: appears on the History Page, and following a link
from the History Page (as well as some other generated user interface pages)
normally implies overriding of no-cache behavior which we don't want in this
case -KW
* in LYNXMESSAGES: page, number recent statusline messages in historic order,
starting with 1 for the oldest. This should make it more obvious that they
are listed latest-first. Add "(No messages yet)" text if there are no
messages. Removed generation of invalid <pre> -KW
* use a temporary file instead of the normal .lynxrc file for saving and
restoring current settings in reload_read_cfg(). This avoids unexpected side
effects of lynx.cfg reloading (LYNXCFG://reload action), i.e. silent
modification or first-time generation of .lynxrc contents. In principle this
should make reloading of lynx.cfg usable for accounts that don't allow saving
of personal settings (i.e. option_save restriction, implied by -anonymous)
if other restrictions don't forbid it; but currently the option_save
restriction is still obeyed for saving to the temporary file (so that
reloading of lynx.cfg is prevented) -KW
setting if pages need to be regenerated, and clean up the memory for holding
the file URLs in free_lynx_cfg(). Recover if the tempfile has unexpectedly
disappeared, by regenerating it. Also regenerate tempfile if NOCACHE key
('x') is used. Added extra checks before doing automatic uncaching of
previous page in LYNXCFG://reload code, to test whether the previous page is
really a LYNXCFG: view -KW
* corrected problems with "show color" in forms Options page. Omit "ON" choice
if color is not possible (but saving allowed). When option_save restriction
was in effect, the ON/OFF initialization was wrong (resulting in unwanted
toggling of color each time options were changed in an anonymous account) -KW
* tweaks of reload_read_cfg() for retaining "show color" setting and for
updating display_lines (user_mode may have changed) -KW
* change for HTParse: if there is a hostname part, recognize a '?' as ending
it if there are no further slash characters -KW
* tweaks in and INSTALLATION: describe correctly what
--disable-dired-override does. Rename --disable-dired-archive to
--disable-dired-dearchive. Clarified INSTALLATION text for
--disable-full-paths. Changed some "define" to "prevent defining" -KW
* don't try to put cursor in last screen position for hiding in
show_main_statusline if -show_cursor/SHOW_CURSOR is on. The show_cursor
behavior may have been turned on to avoid problems with curses libs or
terminal types that cannot deal with it correctly. On pages with no links,
for example SOURCE display, this may leave the cursor at the end of the
statusline message if show_cursor is on. This just restores previous
versions' behavior in that case. On pages with links, the movement is
unnecessary anyway since the cursor will move again to the current link -KW
* removed a bug in automatic textarea growing. Textarea would grow by
one line unnecessarily if enter was used on the last input line on a
screen (if that was not actually the last line in the textarea). New
function HText_TAHasMoreLines() to help with this -KW
* revision of "nonsticky" behavior / options. Got rid of "sticky" terminology.
Renamed the controlling option to TEXTFIELDS_NEED_ACTIVATION and command line
flag -tna.
Compiling in of this mode can be disabled, see in userdefs.h under
TEXTFIELDS_MAY_NEED_ACTIVATION. Two versions of "Textfields Need
Activation" mode are provided. The default mode (simpler yet better IMO)
highlights an inactive selected text input fields like a current normal
anchor. The alternative variant (may go away later?) behaves like VH's
previous implementation and gets used when compiling with
Many bugs that would occur in somewhat unusual circumstances are fixed, for
both variants. (Action of various commands on TEXT_SUBMIT_TYPE fields,
interaction with mouse selection, ...) Selecting an inactive input field with
the mouse will activate it. Various tweaks to make sure selecting a field in
this way will put the editing cursor at the right position (even if the line
had been scrolled / might be scrolled on entering the line editor), at least
with NCURSES mouse support. Also, -show_cursor now in general works as
expected. (In the INACTIVE_INPUT_STYLE_VH variant, cursor may sometimes end
up on the statusline after error messages.) -KW
* treat input lines of the same textarea more like one entity, as far as
"Textfields Need Activation" is concerned, as long as movement among those
LPOS_NEXT_LINK or ACTIVATE keys (the last one only if TEXTAREA_AUTOGROW is
defined, for consistency with line-appending behavior). I.e. moving among
textarea lines with those keys automatically activates ('enters') the new
field for line editing if the previous one was activated -KW
* modified statusline messages to be more appropriate and specific on non-
activated form fields. (The additional messages are not used or compiled
in if TEXTFIELDS_MAY_NEED_ACTIVATION isn't defined.) Avoid unnecessary
repainting/refreshing of the physical statusline in many cases of moving
among fields and links. Make sure the additional lines shown in Novice
mode are also appropriate -KW
* modified line editor behavior on "disabled" form text fields: instead of
disabling all non-terminating edit keys, allow those that never modify the
field contents. The user can now scroll through a long value in a disabled
field with the arrow keys, rather than being stuck at the end -KW
* the ncurses mouse popup window would overlap the statusline in Novice mode.
Limit the overlap to border area (so at least no significant text gets
corrupted) -KW
* modified code for stickiness of the second kind (ex-STICKY_FIELDS) according
to preliminary proposal from Vlad. Named LEFTARROW_IN_TEXTFIELD_PROMPT.
Does not depend on any conditional compilation symbols, and is now unrelated
to the other kind of "stickiness" discussed above. See lynx.cfg. This isn't
optimal yet (LAKABOFTIF discussion etc..), but better than leaving it as it
was -KW
* made default width of textarea fields (if no COLS attribute given) depend on
window or screen width, instead of using a fixed default of "60". I.e. for
wider windows make better use of available space, and for narrows windows
avoid wrapped textarea lines. Take the usual left/right margins (depending
on current block style) into account. But for -dump don't make fields longer
than 60 anyway (they will just show up as blocks of underscores anyway, not
showing text content) -KW
* changes in code used to create new bookmark file after a bookmark has been
'R'emoved. Change should only affect Unix. Basically, revert back to
behavior used before 2.8.1dev.8 for "normal" files (no symlinks or extra
hard links). I.e. use rename / maybe try "mv" instead of "cp", then change
permission bits explicitly. Using "cp" means running the risk of losing or
truncating the user's bookmark file if for example the disk became full
(although these occasions should be rare - the scratch file we are trying
to copy or rename was written just before without error, usually on the
same filesystem). Some more comments in LYBookmark.c. Note: if you like
your bookmark files, make backup copies of them anyway... -KW
* changed F1 key bindings so it always invokes DWIMHELP, also in the Line
Editor (for all three Binding tables). This means that pressing F1 (if you
have it, and it is correctly mapped and recognized) while in a text form
field will now bring up the Line Editor Help Page for the currently selected
line edit style. Other keys bound to HELP by default ('?', 'h') remain
unchanged, they still always go to the main Help Page -KW
* don't let DWIMHELP show Line Editor help for a text input field that is
disabled -KW
* don't mangle a -cookie_file like /home/user/.lynx_cookies.~1~, only interpret
the '~' as reference to HOME if it's right at the beginning and followed by
'/' and then some more. There are probably other instances where '~' gets
mistreated (in addition to the intentional dropping of "user" from something
like "~user/" in file URLs etc.) -KW
* changed type of EXP_KEYBOARD_LAYOUT tables to LYKbLayout_t. They hold
Unicode values, any similarity to LYKeymap_t is just accidental -KW
* changed EXP_KEYBOARD_LAYOUT logic so that input characters that are
unrepresentable in the current display character set (unless it is UTF-8) get
transformed into '?' instead of some accidentally chosen 8-bit character.
For UTF-8, convert to UTF-8 encoding instead. Note the Line Editor isn't yet
UTF-8 aware; with some care it is possible to enter UTF-8 text, but the
display will be messed up, esp. the cursor position will be shown wrong -KW
* some corrections for TPOS, YANK enhanced lineedit functions -KW
* added back in a block in LYmbcsstrlen that got lost somehow -KW
* fix an array boundary accident in GridText.c -JB
* reiterate that LYNXCGI_LINKS is set by the configure script -PW
* note that patches should be generated by "diff -u" -PG
* modify HTReadProgress so that setting SHOW_KB_RATE false will let the
amount read be shown in bytes/sec -DK
* modify to ignore DOS-style device -IZ
* modify CF_PATH_SYNTAX configure macro to accept DOS-style path syntax, for
use in OS/2 EMX port -IZ
* fix some memory leaks in visited-pages tree -IZ
* correct recent change to LYEditmap.c for EBCDIC -PG
* change 'elf32ppc' to 'elf32ppc*' in config.guess to work on MkLinux DR3
(reported by Christopher Conrade Zseleghovski (kkz@MIMUW.EDU.PL>) -TD
* add check to HTConfirmDefault() to ensure that NLS form of "yes" and "no"
are distinct in the first character, revert to English if not -TD
* add configure test for wredrawln, and use CF_CURSES_FUNCS -TD
* improve CF_TERMCAP_LIBS configure test -TD
1999-11-17 (2.8.3dev.15)
* add popup in options menu to control alternate organizations of the
visited links page -IZ
* reformatted src/makefile.dos and src/makefile.dsl to make them simpler to
modify -TD
* change the samples in "URL Schemes Supported in Lynx" so they would appear
without //user:passw@ but //user@ with the explanation of yet another
possibility added in words... So user will not get a wrong impression if
reading that document not so carefully (you know, samples are so easy
remembered without details), -KW, LP
* ifdef bkgd() call in force_repaint that accommodated pre-ncurses 4.1 bugfix,
from early 1997. With current code, a ^L when a popup is displayed causes
the screen colors to be reset (reported by KW) -TD
* undo recent no_color_video check for A_BOLD, A_UNDERLINE since this did not
have the intended effect (reported by KW) -TD
* add note to lynx_url_support.html about lynxcgi -PW
* add user search in partial mode (while loading of the document is in
progress). Scrolling to the string in question is not working properly yet
if you repeat 'n' next time. More work required -LP
* improved makelynx.bat (Victor Schneider)
* fixed bug that corrupted memory (resulting in crashes) in situations when
line ends with LY_SOFT_HYPHEN -VH
* correct comment in userdefs.h regarding renaming of
* fix bug that caused lss-enabled lynx to crash on growing textarea or
inserting file into it -VH
* don't send Referer if we have to load a document again that we got
from the history stack. Lynx would send the URL of the current
document (the one "later" in history) which could only accidentally
be right -KW
* changed default for PERSISTENT_COOKIES from TRUE to FALSE, since
persistent cookie support is now configured in by default -KW
* new functions (key_for_func_ext) to return a "best" key (or key pair) to
invoke a given lynx action, either in the Line Editor or in normal mode.
Currently only used for a couple of statusline messages (those that had ^V
hardcoded). The statusline info while in a textarea now gives the right
key(s) for invoking external editing, or omits the info if appropriate
(no key bound, or no editor defined or allowed) -KW
* doc updates for TEXTAREA special functions -KW
LYMainLoop.h to userdefs.h, the latter two renamed to TEXTAREA_AUTOGROW
and TEXTAREA_AUTOEXTEDIT, added description -KW
* minor tweaks: -accept_all_cookies help string, some formatting changes,
minor text additions and corrections -KW
* set $(PROG_EXT) variable in makefiles for Cygwin -TD
* define __CYGWIN__ if needed, e.g., for betas that define __CYGWIN32__ -TD
* workaround Cygwin b19.1 problem generating cfg_defs.h because it did not
properly export $PATH -TD
1999-11-03 (2.8.3dev.14)
* modify no_color_video check for A_UNDERLINE so it is active for any
combination that uses underlining (reported by KW) -TD
* modified HTML.c so configure --enable-internal-links builds -TD
* improved 'lynx.patch' rule in -PG
* add rough version of makelynx.bat for use with Khan's MingW32 (from Victor
Schneider <>)
* update dependencies in makefile.bcb for src/TRSTable.c -SH
* fix PDCurses ifdef's in LYCurses.c to work with WATT-32 -DK
* correct ifdef's in LYPrint.c so that send_file_to_mail() works with DJGPP -DK
* modify DOS makefiles for PDCURSES for watt-32 and some of the other recent
changes to lynx. Included some of the EXP_ defines that DOS users may want.
Changed the -O3 back to -O2, since -O3 has no advantage under DJGPP -DK
* remove a useless ';', use FREE() instead of free() - JB
* correct spelling lexem/lexeme (reported by KW) -TD
* split-out function check_history() in LYMainLoop.c -TD
* add configure check for vasprintf -TD
* add configure check for _GNU_SOURCE -TD
* minor fixes for configure script macros CF_TERMCAP_LIBS, CF_DISABLE_ECHO,
* fixed bug in psrcmode code. Now htmlsrc_tag encloses only tagname, not
everything in generalized brackets <,>,</,/> (reported by KW) -VH
* fixed a bug with 'g' command (reported by KW) -VH
* default value for 'OPT' in SGML.c made '1', removed alternatives to code
surrounded by #if OPT1 -VH
* notes (VH):
+ Seems that 'OPT' stuff doesn't contain errors. Let's enable it for several
releases, and then remove alternative code.
+ Added comments about pools.
+ Docs updated to reflect new functionality of -dont-wrap-pre
* old psrcview bug fixed - markup was unbalanced in some situations -VH
* content of SAMP tag made justifiable -VH
* implemented HTStyleChange pooling - sizeof(HTStyleChange) is 4 times smaller
than before, and only necessary number of stylechanges is allocated now,
instead of some constant (1024 by default) -VH
* functionality of dont-wrap-pre improved and extended. Now it's possible to
avoid wrapping the document being dumped completely (size of the non-wrapped
line before the patch was limited by MAX_LINE = 1024 by default). Specifying
-dont-wrap-pre with interactive session enables wrapped lines (in PRE) to
be marked as in source view - with '+' in normal view -VH
* functionality of -force-empty-hrefless-a was cleaned up,
#ifndefs NO_EMPTY_HREFLESS_A and endif's were removed -VH
* colorstyle changes are not emitted in HTML_end_element if me->skip_stack was
>0 on entry to this function. This caused some glitches if
-force-empty-hrefless-a was enabled -VH
* LYPrettySrc.c was slightly cleaned up, added support for lynx.cfg reloading,
memory deallocation -VH
* possible bug in print_wwwfile_to_fd fixed - when quoting the page, seems that
several '>'s could be emitted on the long line formed by concatenating lines
with LY_SOFT_NEWLINEs at the begining of them -VH
* general notes (VH):
+ users of lss-enabled lynx should consider on upgrading the lynx - at least
those who use lynx for viewing huge files. By default, each line on the
screen took 1K for colorstyles (on x86). With new approach colorstyle
changes take 24 bytes (on x86) per line in average document. Old lynx with
900K html file loaded as startfile occupied 30M of virtual memory, lynx
with patch applied occupied 5 Mb on the same file. Old code is still
accessible by defining OLD_STYLECHANGE.
+ I spent 4 hours debugging attempting to write/fix code that cleans up the
memory allocated in LYPrettySrc.c, but Lynx.leaks shows that I didn't
succeeded. I fear that leak detection stuff is broken - I checked/traced
the code very carefully several times.
> the remainder (most) of this patch from KW:
* for confirmation prompts (HTConfirm), also accept English letters 'Y', 'y',
'N', 'n' as responses. If characters different from those are derived from
the first letters of the translation of "yes" and "no" in a localized lynx,
the latter will still be the ones that appear in the prompt text and will
have precedence. Message translations using multibyte character sets should
continue to *not* translate "yes" and "no". Added a note to that effect.
* small update for some chartrans tables, minor comment changes.
* for Unix, use LYSystem instead of system for invoking telnet, rlogin,
rtn3270 commands.
[ For some non-Unix systems, LYSystem messes around with the passed command
string in various ways, and does some other stuff for DJGPP. So no change
for those, since I assume it worked before. For Unix the change prevents
the following occurring with ncurses (at least if USE_SIGACTION is
- access some (valid) telnet:// URL.
- within telnet client, escape to command level (usually '^]')
- suspend (usually 'z' or ^Z)
- resume (fg). Lynx process gets woken up, redraws lynx screen,
screen & tty state get messed up. ]
* another tweak for display refreshing when text previously displayed
had UTF-8 (for ncurses) - a check in display_page was missing.
* corrected stupid problem in LYGetFileInfo - invalid memory access.
* corrected and extended handling for textarea INSERTFILE and EDITTEXTAREA
(or DWIMEDIT), the previous patch wasn't quite right:
- now really truncate very long lines as intended for INSERTFILE, instead of
wrapping with loss of one character.
- for EDITTEXTAREA (DWIMEDIT), implement wrapping instead of truncation
(Rationale for the difference: user's editing work shouldn't be lost if we
can avoid it; it is only temporarily stored in a file which may be
unrecoverable, different from the typical INSERTFILE case.) If, upon
returning from the external editor, lines are encountered that don't fit in
the displayed width of the textarea fields, the user may be given the
option to wrap to that width. (This prompt may not be given when the first
such line has no suitable spaces for breaking - the file may be binary
garbage after all, not worth fixing up too much.) Line breaking is
attempted at spaces if possible (using isspace() for checking), but not if
the only available spaces are close to the beginning of a line. An attempt
is made to join the wrapped part of a line (if not too long) with the next
line if it is not indented, by suppressing the next line break (if not too
far away). Some other heuristics are used that work reasonably well for
normal text paragraphs.
If the above mechanisms fail, or the user did not confirm wrapping when
prompted, very long lines will still be wrapped to fit into the buffer size
(around 1024 chars).
[ The wrapping works quite nicely in "normal" cases - please try it! ]
* mouse action in popups would lead to call of fancy_mouse() with wrong row
number, which could lead to messed-up display as well as invalid memory
* The previous changes in link redrawing made things worse instead of better
for UTF-8 display with ncurses (without color style). This time (using
wredrawln, not touchline) it should really get better...
[ The UTF-8 related changes would need testing with non-ncurses curses libs,
if anyone has one of those AND a working UTF-8 environment - late xterm
betas(?) from Tom's site should do. If the functions used for ncurses are
available in other curses libs, the code should probably look the same as
for ncurses. ]
* SGML.c to compile without --enable-prettysrc (reported by HN) -KW
* fixes an invalid memory problem from previous patch
* adds alignment inheritance from COLGROUP / COL / THEAD / TFOOT / TBODY.
* remove some logic from LYmbcsstrlen() that gave an incorrect count for
the number of cells displaying multibyte characters, resulting in too-few
cells being highlighted (reported by HN, SH) -KW
* added support for ROWSPAN attribute of TD and TH to TRST. This only
reserves the appropriate amount of space in subsequent lines.
[ Pages that show off ROWSPAN nicely:
and related ones for other "domain"s. (Verify that there really
is a ROWSPAN= in the current version.) View with a screen width
of 100. With 80 there is some kind of problem, compare both
^V settings... ]
* some corrections in TRST code.
* change initialization order of key escape sequence mappings for slang, so
that terminfo/termcap information always overrides defaults that may
* minimal memory cleanup / leak prevention for EXP_FILE_UPLOAD error
cases in GridText.c.
* in HText_SubmitForm, don't change the post_content_type of the
passed in newdoc structure unless that is really wanted.
* tweaked UTF-8 prevention of display library wrapping/truncation to make
better use of available width for centered text, and to not apply if dumping
to stdout.
* for UTF-8 output with ncurses, do a clearok in display_page also if the page
that was *previously* displayed had UTF-8 characters. Without this there
were still display glitches.
* made previous changes to SGML.c and HTMLDTD for handling OBJECT more generic.
* minor tweaks, cleanups, glitch removal in previous changes.
* better tracking of HTSprintf0/HTSprintf with --enable-find-leaks
(-DLY_FIND_LEAKS). This can be disabled in LYLeaks.h by removing the
* added variant behavior in StrAllocVsprintf to make HTSprintf0/HTSprintf use
less memory allocation calls and keep its temporary string buffers across
calls. The buffers then only grow and never get cleaned up. This is enabled
by defining SAVE_TIME_NOT_SPACE in HTString.c, disable the definition there
in case of problems.
* added code so HTSprintf0/HTSprintf can use vasprintf() in some situations,
which should be more efficient. It also works with --enable-find-leaks
(EXTENDED or not). This only comes into play if USE_VASPRINTF is defined
(not defined automatically anywhere).
[ For me (some Debian glibc version), the prototype for this function
is in stdio.h but only gets included with an explicit -D_GNU_SOURCE. ]
[ Which of the four combinations with/without vasprintf, with/without
SAVE_TIME_NOT_SPACE is better (if any) remains to be tested. I have seen
drastic differences under leak tracking, but that's just too much
different from a normal situation to count for anything. ]
* Some minor leaks fixed. (LYMainLoop.c)
[ Had to make owner_address and ownerS_address file-wide PRIVATE's
instead of auto to unleak them. Could be taken out of more