Summary of changes in Lynx v2.8.3
This list only summarizes some changes, for a detailed history
of changes see the CHANGES
New features (some are compile-time options):
- tabular representation for simple tables. See README.TRST
FTP_PASSIVE option to lynx.cfg, allowing
installer to defer decision of whether lynx uses passive ftp
- add colored source view (configure with
--enable-prettysrc), use command line option
--prettysrc to activate.
- added text justification, controlled by commandline switch
- added support for emitting backspaces when printing a page,
command line option
- added commandline switch
will inhibit line wrapping in <pre> when
- text inputs in forms can be made "non-sticky" (controlled
by lynx.cfg setting
if enabled, they will accept user's input only after activation
(by pressing Enter or left-arrow on them).
-short_url option to elide middle of long
urls that are displayed the status line.
- add popup menu to control alternate organizations of the
visited links page.
- improve performance:
- color-style code now uses less memory.
- restructured the largest source file so it compiles
faster and on smaller machines.
- lots of fixes for source caching.
- improve HTML interpretation:
- improved handling of '/' after element name in a tag:
"<foo/>" is treated as an empty element (as in
- Changed handling of OBJECT and MAP.
- in HTML 4, an OBJECT with USEMAP attribute can
refer to a MAP within the OBJECT's content, possibly
within nested inner OBJECTs. Lynx would fail to find
the MAP in that case, now it doesn't.
- in HTML 4, MAP can contain arbitray block elements
in addition to AREA. Lynx now shows such block content,
even if it occurs within (possibly nested) OBJECTs with
USEMAP whose contents we would otherwise skip.
- treat an A tag with COORDS attribute as equivalent
to an AREA when it is within MAP, for the purpose of
collecting links for LYNXIMGMAP.
- in a list, render a <DIV> that doesn't have an
ALIGN="center" or ALIGN="right" attribute like a <P>
in that situation: break the line if necessary but don't
create an empty line, and keep list indentation.
- since DIV is a block element, make sure its contents do
not get rendered inline, even for nested DIVs that don't
change text alignment. Try to avoid improperly kept change
of DIV styles' alignment by a <P> or </P> in
- added support for forcing empty HREFless A's - i.e., an
A element that doesn't contain HREF will be
closed after it was seen, without waiting for </a>.
This fixes rendering of documentation, produced by broken
- improvements to character sets and display:
- improved handling of CJK, especially Japanese test
- improved display of UTF-8 text
- deal with backspace formatting as used in formatted man
pages. (No highlighting, only avoid double output of
- changes for SUP and SUB: Render SUP as a '^' character
if it must be separated from a preceding character in order
to prevent misinterpretation. Render <SUB> and
</SUB> always as brackets '[' and ']'
- modify configure script's
option so that if the option
--without-charsets is selected, then it will
use a 'minimal' set. The keyword 'minimal' is recognized as
the list us-ascii,iso-8859-1,utf-8
- if configured with
--enable-charset-choice, it is possible to
select which charsets are available for selection on the
Options page (so you can compile in support for a
lot of charsets, but make only a few available for
- 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.
- improve textarea handling:
- 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 is still supported).
- more appropriate message statusline message if
GROWTEXTAREA or INSERTFILE cannot be done because a
textarea is not selected: it shouldn't refer to "external
- check whether an editor is defined before trying to use
it for textarea editing. Generate message if spawning of
external textarea editor failed.
- allow INSERTFILE only if file access is not
- enforce dotfiles restriction and "show dot files"
setting for INSERTFILE.
- now really truncate very long lines as intended for
INSERTFILE, instead of wrapping with loss of one
- for EDITTEXTAREA (DWIMEDIT), implement wrapping instead
of truncation 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.
- improve interaction with other programs:
- modify HTFTP.c for better conformance with RFC959,
avoid hanging when showing some directory listings
(especially from newer wu-ftpd servers).
- better support for accessing FTP directory listings on
Windows NT FTP servers: try to switch MSDOS-like directory
output off with SITE DIRSTYLE. The price to pay for this is
one or (probably more often) two more command/ response
- added support for accessing FTP directory listings in
"dls" style sent by some servers.
- improve cookie support:
- changed default for PERSISTENT_COOKIES from TRUE to
FALSE, since persistent cookie support is now configured in
NOTE: If you are using persistent cookies, i.e., a
cookie file, you may have to change your lynx.cfg to
explicitly enable PERSISTENT_COOKIES.
- add COOKIE_SAVE_FILE lynx.cfg and corresponding
command-line option, default it to /dev/null, which is
recognized on all systems.
NOTE: If you use lynx non-interactively (with
-source etc.) AND want
new cookies from those invocations to be saved, you will
have to update your script (or lynx.cfg file) to use this
new option. The good news is that saving of cookies should
then also work with
-source, whereas in
previous versions it only worked with formatting
- handle empty value strings like any other cookie
values: they can be kept in the cookie jar (in memory), and
can be written to and read from the cookie file.
- write quoted cookie values to cookie file with the
quotes. When the cookie file is read, assume that quoted
strings are quoted cookie values.
- use more of the available statusline width for showing
cookie name and value in normal cookie prompts.
- change invalid cookie confirmation prompts to default
to "no" answer.
- improvements to keyboard input:
- New "Bash-like" Line Editor binding.
- Allow KEYMAP directives in lynx.cfg of extended form
(see the comments in lynx.cfg for details).
- extended syntax recognized in .lynx-keymaps file (which
is only used if compiling with USE_KEYMAPS defined, which
in turn depends on slang and ncurses version).
- 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
- add key actions LPOS_PREV_LINK and LPOS_NEXT_LINK, like
PREV_LINK and NEXT_LINK, with the difference that, when
moving to a form input or textarea line, the last column
position (relative to the field) is remembered.
- UP_LINK and DOWN_LINK now actually move along a
vertical line (as far as it is possible), including an
arbitrary sequence of such keypresses.
- add bindings for ^ and $ (like vi) to move the cursor
to the first and last link on the current line.
- add key action DWIMHELP, for some context-sensitive
help, by default mapped to F1, currently differs from HELP
(by default mapped to '?' and 'H') only in text input
- improve mouse support in ncurses and PDcurses
- add support for scrollbars with curses. Use
-scrollbar_arrow or corresponding lynx.cfg to
enable it. With ncurses, the mouse operates on the
scrollbar, otherwise it is useful for display.
- improved support for reloading lynx.cfg options in running
session, see LYNXCFG:/ pseudo-page (there's a link to it from
the bottom of the forms-based Options menu). This is
- Added new functionality for rules: Redirect, UseProxy,
various others. See cernrules.txt in samples
directory for details.
- add Perl script for generating HTML'ized users' guide from
lynx.cfg, which now contains markup information for this
purpose. The configure option
--enable-htmlized-cfg installs the htmlized
- indicate on forms Options Screen which options are not
-nounderline options to disable corresponding
- revived dired "install" functionality, more or less as it
was (apparently) originally meant to be used, but with various
checks added. (See example: samples/installdirs.html
- expand tilde (~) consistently in paths for LYNX_TEMP_SPACE,
LYNX_CFG, LYNX_LSS_FILE, cookie files
- enhanced read-progress logic (a compile-time option).
- you may use dashes instead of underscores in commandline
options (e.g. --dont-wrap-pre and -dont_wrap_pre mean the
- many improvements to the Win32 ports, both for Visual C++
and for GNU compiler ports.
Home_Dir() so that on DOS and Windows,
$HOMEDRIVE variable is set, it may be used
to specify the drive on which
- add built-in copy-file logic for DOS-based systems dired
- make dired work (with some limitations) with DJGPP and
- DJGPP with WATT32 now does DNS lookup via gethostbyname()
like other lynx ports so users get reasonable error recovery
when DNS lookup fails.
- changes for DJGPP to use the WATT-32 tcp library, making a
DOS port that does http, ftp, news, mailto, and telnet
As well as security-related changes:
- disable setuid on initialization.
- on initialization, check if the LYNX_TEMP_SPACE denotes a
directory which Lynx cannot easily determine if someone could
alter the user's temp-files. If so, make a subdirectory of
that, with appropriate permissions.
- use a random number rather than a counter to name temporary
- review use of strcat/strcpy, changing as needed to avoid
- review use of "%s" in sprintf, to guard against buffer
overflows, modified some to use HTSprintf0 or StrAllocCopy,
others to use specific lengths.
- protect various printf-like calls against crashes from
strings with '%'.
- modify HTTCP.c to prevent telnet and similar applications
from inadvertently using hostname tokens which look like
- ifdef'd IsOurFile() to perform only an ownership check on
single-user DOS and OS/2 systems, so user can overwrite
- review/update code for the various
-restriction options, in particular adding
restrictions for the new information pages such as
outside_news now apply to reading as well as
posting. The documentation said that they apply to posting,
while in fact they were implemented for reading only.
- replaced checks that looked at the document's title by
checks of the address, for pages that are always identified by
a special URL scheme.
- check directly in
postoptions() whether the
loaded document is one from which submission of option changes
can be accepted. Only the form-based Options Menu and Visited
Links are allowed.
- A lot of bug fixes
- A lot of documentation changes.
- A lot of dead code removed
Page maintained by Thomas Dickey (firstname.lastname@example.org).
Copyright(c) 2000, Thomas Dickey
Last Updated: 2013-05-19