Summary of changes in Lynx v2.8.3
This list only summarizes some changes, for a detailed history
of changes see
the CHANGES file.
New features (some are compile-time options):
- tabular representation for simple tables.
FTP_PASSIVE option to lynx.cfg, allowing installer to defer decision of
whether lynx uses passive ftp connection
- 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
- added commandline switch
-dont_wrap_pre that will inhibit line
wrapping in <pre> when
- text inputs in forms can be made "non-sticky" (controlled by
TEXTFIELDS_NEED_ACTIVATION) - 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
- 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 XML).
- 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 its content
- 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 translators.
- 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 characters).
- 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
--with-charsets 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 selection).
- 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
- 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
- more appropriate message statusline message if GROWTEXTAREA or INSERTFILE
cannot be done because a textarea is not selected: it shouldn't refer to
- check whether an editor is defined before trying to use it for textarea
editing. Generate message if spawning of external textarea editor
- allow INSERTFILE only if file access is not restricted.
- 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 character.
- 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 round trips
- added support for accessing FTP directory listings in "dls" style sent by
- improve cookie support:
- changed default for PERSISTENT_COOKIES from TRUE to FALSE, since
persistent cookie support is now configured in by default.
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
- 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
- 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
- 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 fields.
- improve mouse support in ncurses and PDcurses configurations.
- add support for scrollbars with curses. Use command-line
-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 still experimental.
- 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
the htmlized lynx.cfg files.
- indicate on forms Options Screen which options are not saved to
-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.
- expand tilde (~) consistently in paths for LYNX_TEMP_SPACE, LYNX_CFG, LYNX_LSS_FILE,
- 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 same).
As well as security-related changes:
- many improvements to the Win32 ports, both for Visual C++ and for GNU
Home_Dir() so that on DOS and Windows, if the
$HOMEDRIVE variable is set, it may be used to specify the
drive on which
$HOME is located
- add built-in copy-file logic for DOS-based systems dired support.
- make dired work (with some limitations) with DJGPP and Win32
- DJGPP with WATT32 now does DNS lookup via gethostbyname()
like other lynx ports so users get reasonable error recovery when DNS
- changes for DJGPP to use the WATT-32 tcp library, making a DOS port that
does http, ftp, news, mailto, and telnet
- 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 files.
- review use of strcat/strcpy, changing as needed to avoid buffer overflows.
- 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 command-line options.
- ifdef'd IsOurFile() to perform only an ownership check on single-user DOS
and OS/2 systems, so user can overwrite files.
- review/update code for the various
-restriction options, in
particular adding restrictions for the new information pages such as
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
Copyright(c) 2000, Thomas Dickey
Last Updated: 2001-01-31