(I guess it is probably not needed in this case, but the changes
to ignore it for the slang option alone are much more effort).
Addresses PR 38284 by Daniel Horecki.
New features (some are compile-time options):
* INFO and Options pages are laid out properly for multibyte locales,
accounting for character widths.
* change configure option default for --enable-justify-elts to true.
Change default for JUSTIFY to "false".
* add PREFERRED_ENCODING to lynx.cfg, along with an options-menu
selection for this, to set "Accept-Encoding:" string
* 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
* add -nonumbers option, which modifies the output of -dump to suppress
the link-numbering
* add -listonly option, which modifies the output of -dump to show only
the list of links
* add -syslog-urls option 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
* the -version option shows the version of ncurses, curses, etc., from
runtime data when available.
* add -notitle option to suppress title line and following blank line to
maximize screen use for small displays
* add -nomargins option to suppress left/right margins to maximize
screen use for small displays
* add NO_MARGINS and NO_TITLE to lynx.cfg
* add NESTED_TABLES setting to lynx.cfg to allow site override of the
built-in default
* 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
* 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
* add configure --enable-largefile / --disable-largefile options.
* add --enable-widec configure option to allow building lynx without
wide character support using ncursesw, to accommodate users with older
releases of ncurses
Other enhancements:
* improve SSL support:
* updated README.sslcerts
* update CF_GNUTLS macro to look for -lgnutls-openssl as well as
the older -lgnutls-extra library
* modify HTLoadHTTP() to interpret leading asterisks in common name
fields as wildcards
* suppress OpenSSL URL from version message if it happens to be
built using GNU TLS (or other libraries which happen to define
symbols to pretend they are OpenSSL).
* improve HTML interpretation:
* fix 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
* add "deflate" to the encoding types which lynx implements. This
consists of several parts
* adapted logic from w3m's inflate.c to construct an internal
"deflate" decompressor. Tested this with
http://carsten.codimi.de/gzip.yaws/
* 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.
* 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
* fixes to source-view of ftp:// and file:// URLs, i.e., eliminate
redundant PRE's, add DOCTYPE and meta tags
* correct parsing of embedded URLs which have parameters but no
path, e.g., base
http://wj55.org/Minutes.php
and embedded
?date_meeting=2004-08-31
* add presentation type for application/xml and text/xml mime types
as per
http://www.w3.org/TR/xhtml-media-types/http://www.w3.org/TR/2002/NOTE-xhtml-media-types-20020801
which states that they may be used, though application/xhtml+xml
is the preferred media type
* add presentation type for application/xhtml+xml mime type as per
RFC 3236
* add presentation for text/css, to allow browsing ".css" files
* 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>
* 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
* improvements to character sets and display:
* new message files for localization: rw.po, vi.po
* updated message files for localization: cs.po, da.po, de.po,
et.po, fr.po, hu.po, nl.po, pt_BR.po, sv.po, tr.po
* use puts() rather than printf() in some messages to avoid chance
of "%" in the translation
* 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
* 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.
* add ISO-8859-13 and ISO-8859-14 chrtrans tables, revise
ISO-8859-10 based on
http://czyborra.com/charsets/iso8859.html
Change display name for ISO-8859-10 to indicate the region
* improve 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
* 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
* 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
* 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
* 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
* improve def7_uni.tbl substitutions for the symbols beginning at
U+2600
* add experimental option --enable-japanese-utf8 for using libiconv
for Japanese and UTF-8
* improvements to color-style:
* change configure script --enable-color-style so it is enabled by
default
* add COLOR_STYLE setting to lynx.cfg
* 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.
* improve interaction with user:
* highlight the target and pause for 20 milliseconds when selecting
a link with the mouse
* 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
* 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
* 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
* 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
* add check for failure to write to disk, e.g., on disk full, and
report error condition via HTAlert()
* modify suggested_filename() to strip bzip2's ".bz2" suffixes as
well as ".zz" suffixes
* modify INFO-page to list the rendered size in bytes if the
Content-Length is not available
* print the contents of image maps, if any, at the end of a dump
* command-line options that toggle or set a boolean now accept
"true" and "false" strings.
* improve interaction with other programs:
* strip special characters such as '%' from parameters passed to
external programs for EXTERNAL mechanism on Windows platform.
This is ifdef'd with WIN_EX
* improve cookie support:
* modify HTConfirmCookie() and statusline() to allow cookie prompt
message in Japanese to not be truncated when using wide-curses
* make the maximum number of cookies configurable in lynx.cfg,
added MAX_COOKIES_DOMAIN, MAX_COOKIES_GLOBAL and
MAX_COOKIES_BUFFER
* improvements to debug/traces:
* 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
* improvements to scripting/logging:
* make "lynx -version" work in the absence of ".cfg" or ".lss"
files
* modify print_wwwfile_to_fd() and print_crawl_to_fd() to ensure
that no trailing blanks are written in a -dump, etc.
* correct parsing of "key 0xNN" lines in command-scripts, had
omitted a "!" to invert a check
* modify initialization so that
cat options.txt | lynx -
will allow interactive use
* other improvements:
* modify logic for -dump so it can dump all pages listed on the
command line
* lynx accepts multiple URLs on the command line; all are added to
G)oto history. Documented this in manpage
* add (ifdef'd with EXP_HTTP_HEADERS) code to display the full text
of the HTTP headers in the INFO page.
* modify treatment of symbolic links for ftp-URLs to show the link
target, as with the local directory editor
* correct sort-order of local directory listing, using the target
of a symbolic link to determine whether it is grouped with files
or directories
* modified mailcap command and testcommand substitutions to provide
for running the testcommand's after program initialization
* read user's ".newsauth" file for news-server authentication
information
* escape "From " when it appears in a page which is mailed, to
avoid confusing mail clients
* add "Anonymous FTP Password" to Options menu, to allow user to
override use of personal email address as the anonymous ftp
password
New/improved sample files:
* add script samples/oldlynx, which gives the non-color-style scheme
using an executable built for color-style
* add scripts/tbl2html.pl, which can be used to generate test pages for
the charsets from src/chrtrans/*.tbl
* add test/special_urls.html
* 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
* 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
New ports:
* none
(it seems to run everywhere, but there are a few possibilities)
Improvements to existing ports:
* UNIX:
* improve configure script macro CF_XOPEN_SOURCE, ensuring that
_POSIX_C_SOURCE is defined with a value.
* revise configure script check whether _POSIX_C_SOURCE should be
defined, taking into account the _POSIX_SOURCE definition
* Linux:
* add codepage 857 (DOSTurkish), since console-tools package
provides a suitable font
* update Linux console font support to use console-tools package.
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
* modify configure script to check for Intel compiler 8.0 (and
9.0).
* some others [stripped]
Improvements for maintainability and testing:
* remove macros such as ARGS1, NOPARM which supported K&R compilers
* make ANSI C required, drop support for K&R C.
* add scripts/indent.sh, use this to reindent C source files
* add tags rules to makefile.in's
* modify makefile.in to ensure that scripts are prefixed with $(SHELL),
in case packager has stripped executable permissions from scripts,
e.g., by using CVS
* modify configure script and makefiles to allow cross-compiling
* add --with-system-type option to configure script to simplify testing
the case-statements involving $host_os
* 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
* 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
* filter out obsolete URLs from the customizations saved during install
of lynx.cfg
* 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
* update test/iso8859-1.html (minor fixes) from
http://www.ramsch.org/martin/uni/fmi-hp/iso8859-1.html
* applied lynx's changes to updated files from ftp.unicode.org to take
advantage of less restrictive copyright
As well as security-related changes:
* eliminate fixed-size buffers in HTrjis() and related functions to
avoid potential buffer overflow in nntp pages
* eliminate fixed-size buffers in LYExpandHostForURL() to guard against
buffer overflow resulting from too-long domain prefix/suffix data from
lynx.cfg
* reduce TRST_MAXROWSPAN and TRST_MAXCOLSPAN to 200, which is more
plausible than 10000 by 1000.
* limit TEXTAREA columns to the screen width, and rows to 3 times the
screen height.
And finally:
* A lot of bug fixes
* A lot of documentation changes.
* A lot of dead code removed
into the bsd.options.mk framework. Instead of appending to
${PKG_OPTIONS_VAR}, it appends to PKG_DEFAULT_OPTIONS. This causes
the default options to be the union of PKG_DEFAULT_OPTIONS and any
old USE_* and FOO_USE_* settings.
This fixes PR pkg/26590.