8f1edebbe5
New features (some are compile-time options): * add session save/restore feature o bind ^X to toggle view of page showing session information o add binding for ^U to previous-document (outside of line-editing). o documented command-line options and configuration data for this feature. o document -child_relaxed option in Lynx users's guide. * add -passive-ftp option. * add -child_relaxed option. * add "read_timeout" to lynx.cfg, and -read_timeout option to command-line * add -show_cfg option. * add LYNX_HELPFILE environment variable to allow override of location of the help-file * add NO_PAUSE setting to lynx.cfg, .lynxrc and Options menu * implement a LONG_LIST equivalent for ftp, configurable as FTP_FORMAT * add XWINDOWS / NON_XWINDOWS environment-variable field to DOWNLOAD, etc., in lynx.cfg to specify whether a downloader (printer, etc) is enabled when the X display variable is set * configure script improvements o add --with-mime-libdir option to set MIME_LIBDIR in userdefs.h file o add --with-destdir configure option to set a default value for the DESTDIR variable in makefiles, and modified makefiles to ensure that setting DESTDIR in the top-level makefile propagates to lower levels o add --enable-local-docs option to link doc-directory from help-page o add --enable-ascii-ctypes option to enable EXP_ASCII_CTYPES Other enhancements: * improve SSL support: o improve X.509 certificate validation This is tested for OpenSSL, ifdef'd to not break gnutls. Changes: + peer certificate is cached, no need to call SSL_get_peer_certificate() twice + support foo.domain:port and [ip.add.re.ss] and [ip.add.re.ss]:port and [i:p:v:6:ad:dr:es:s] and [i:p:v:6:ad:dr:es:s]:port + add support for checking X.509v3 SubjectAltName extensions (of type DNS - tested - and IP - untested) when the X.509 commonName check fails. + when displaying a list of failed CNs, change format from foo:bar:baz to CN{foo}:CN{bar}:CN{baz}:SAN{DNS=foo}:SAN{IP=1.2.3.4} so that we know where what comes from (in "Your recent statusline messages") + if the peer certificate can *NOT* be verified, output a message to the log as well + fix a possible use of an uninitialised value ssl_all_cns + output certificate issuer to the logs as well (so that you can, before entering your online banking PIN, see if the certificate has been issued not only _to_ your bank but also _from_ a place you trust, in case /etc/ssl/certs/ contains a lot of Root CA certs) o add support for the X.509 extension subjectAltName using GNUTLS. o log SSL/TLS (HTTPS connection) X.509 certificate issuer information into the "recent statusline messages" (accessible via the backspace key) o add TNS SNI support for the OpenSSL configuration o modify CF_SSL configure macro to check for -ldl needed for recent OpenSSL versions o modify CF_SSL configure macro to build with MSYS for MinGW configuration o extend configure macros CF_SSL and CF_GNUTLS to check for pkg-config, using that for the default if the corresponding openssl or gnutls packages are installed. o add configure --with-nss-compat option, for building with NSS library's OpenSSL-compatible interface o add SSL_CERT_FILE to lynx.cfg o rewrite strcasecomp_asterisk() to support wildcards as in RFC 2818 o add --enable-gnutls-compat configure option and associated files to configure with GNU TLS without its gnutls-openssl library, whose newer versions are available only under a restrictive license. o fix src/tidy_tls.c X509_get_issuer_name to actually take the issuer DN of the present certificate and not hope that it is the same as taking the subject DN of the "next" certificate which may or may not exist. * improve HTML interpretation: o update Lynx's tables of HTML attributes to cover (except for events) the keywords from HTML 4.01 o use RFC-822 encoding for filenames passed via file-upload forms. o provide navigation to script-buttons, to make them more visible, showing their name o add "Bad HTML messages" to Options menu, letting the user disable the warning message, write the detailed messages to the LYNXMESSAGES: status buffer. o remove "Bad HTML" warning for buttons outside a form, since those can be inline, according to the HTML 4 DTD o correct check for default type of HTML BUTTON, which is "submit". The code treated this as "button". o implement "readonly" attribute for TEXTAREA and TEXT fields o accommodate (in)compatibility "feature" in HTML5 draft which replaces ISO-8859-1 with Windows-1252, as indicated here. o add support for HTML5 rel=author in link. o modify SGML_write() to check for UCS-2 BOMs, to provide support for UCS-2 pages. o modify SGML_write() to check for UTF-8 BOM, using that as a hint to set the default document charset to UTF-8. o parse xml processing-instruction to turn on UTF-8 decoding, as well as disable upper/lower case transforming in source view. o parse doctype for xhtml, to tell when empty tags such as "<textarea />" can be discarded o translate named entities, etc., for "content" field of refresh-URL. o add switch -xhtml-parsing and lynx.cfg XHTML_PARSING setting to control whether the extensions for XHTML 1.0 are used. o modify Lynx's DTD information to allow it to display form-related tags that are inline, even without being in a form as indicated in http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd for %inline.forms and %misc.inline. * improvements to character sets and display: o improve drawing of menus for multibyte characters by changing the way the number of fill-characters is computed in LYpaddstr o fix some uses of gettext in options menu and info page where a translated string might contain angle-brackets or ampersand o modify popup for externals added in 2.8.4dev.20 to number the entries if keypad mode is set to one of the numbered forms o ie multibyte editing of text-fields. * improvements to color-style: o bug-fixes only * improve interaction with user: o remove check for -dump option from HTHandleAuthInfo(), allowing Lynx to -dump or -source NNTP urls o change the phase during which "-help" option is processed, to allow it to reflect the configured values of the options in the help-message o check if there is piped-in data when starting without "-" or "-stdin" options, warn about the ignored input data in that case. o add ncurses scroll-wheel support, which requires the extended-mouse configure option of ncurses. o modify initial active link in download-page to be the first download action rather than the "help" link whided in Novice mode. o make the size of LYNXMESSAGES configurable in lynx.cfg with STATUS_BUFFER_SIZE * improve interaction with other programs: o discard anchor's post_data field in HTLoadDocument() if Lynx is about to reload a do. That would happen if the result of the form includes a link back to the form. Removing the data causes Lynx to prompt the user, e.g., Resubmit POST content to http://localhost/cgi-bin/lynxtest.pl ? (y/n) to offer the user the choice between revisiting form or re-POST'ing the data that was on the form o pass a newline after the start of PRE-section in HTGopher.c to force the first newline between records to be seen and cause the lines to split o add POSITIONAL_EDITOR setting to configure editors which accept a "+line" parameter o modify external editing of TEXTAREA to not do tab-conversion. o modify behavior of "-nonumbers" option for -dump so it can be combined with -listonly to obtain a list of the URLs without reference numbers. o implement "chunked" transfer-encoding to work with servers that ignore the version number in HTTP get's o add an Options menu checkbox to tell if Lynx should send a user-agent string. Unless the useragent restriction is set, the default for this checkbox is off, so that Lynx will not send the string. The corresponding setting, send_useragent, may be saved to ~/.lynxrc, but normally is not. o change default for configure --enable-ascii-ctypes to true. o modify exit code when doing a "-dump" to exit with error if the server returned an error status for the page. * improve cookie support: o modify cookie-writing to not write if no cookies were read from the file and none are available. o adapt/extend parsdate.y from tin to improve parsing of cookie expiration times. * improvements to debug/traces: o change initialization of trace file, handing this during the first part of argument parsing along with -help and -version, to show steps done for initialization of presentors, etc * improvements to scripting/logging: o bug-fixes only * other improvements: o build/install "en" po file so that GNU gettext LANGUAGE environment variable can find the corresponding English message file. o if iconv_open() using transliteration fails, retry without the transliteration feature. o improve change for UCSetBoxChars() from 2.8.6dev.16 for EXP_CHARTRANS_AUTOSWITCH which assumed that the line-drawing character set was always different from the display character set. If both are US_ASCII for example, ASCII lines would be drawn, which is not good o modify scanning of floats from lynx.cfg to allow Lynx to read POSIX values in non-POSIX locales o replace BROKEN_PROFTPD and BROKEN_WU_FTPD logic with configurable list of strings in lynx.cfg, i.e., BROKEN_FTP_RETR and BROKEN_FTP_EPSV, and add "spftp/" to the predefined values for the former. o modify to handle a special case where the content-type is given as one of the compressed types, to check if the address (after stripping the file suffix for that compression) has a suffix that lynx could present For example: http://foo/bar.html.gz would display the uncompressed "bar.html" rather than offering to download the file. This also allows one to add SUFFIX commands to lynx.cfg to display the corresponding plain files. For example: SUFFIX:CHANGES.*:text/plain:8bit SUFFIX:CHANGES:text/plain:8bit for http://foo/CHANGES.tmp.gz http://foo/CHANGES.gz o fix ipv6 literal command-line parsing. o setup locale before writing version-message. New/improved sample files: * add sample scripts for configuring MinGW version using Cygwin. New ports: * none (it seems to run everywhere, but there are a few possibilities) Improvements to existing ports: * UNIX: o add definition for _FILE_OFFSET_BITS in CF_LARGEFILE, needed for Solaris 64-bit compiles. o modify UCdomap.c to work with Solaris iconv and handle additional encodings: + if "TRANSLIT" feature (an extension of glibc) does not succeed, retry the call to iconv_open without "TRANSLIT" + add check for any MIME name beginning "iso8859", mapping to "iso-8859" + recognize "eucjp" MIME name as alias for "euc-jp" + recognize "pck" MIME name as alias for "shift_jis" + recognize "ansi-1251" MIME name as alias for "windows-1251" o modify parsdate.y to convert between EBCDIC/ASCII to work on z/OS * Linux: o bug-fixes only Improvements for maintainability and testing: * modify definitions in LYStructs.h for union to cast to a void* rather than a long, to help with 64-bit ports * fix some mismatched BOOL vs BOOLEAN from compiler warnings due to dev.13 change to LYStructs.h * change a few options such as --enable-locale-charset option to non-experimental * free leaks of LYLeaks.c, to make it simpler to check it with a second tool such as valgrind. * use off_t rather than long for representing file sizes, e.g., when used to print progress messages * use dtd_util to replace most of HTMLDTD.h and HTMLDTD.c with source generated from the existing tables in those files * rename variable defined by CF_PATHSP to PATH_SEPARATOR, use this consistently to ease use in later autoconf versions As well as security-related changes: * modify prompt in LYLoadCGI() from 2.8.6dev.15 to always prompt user (from FEDORA-2008-9597), and modify compiled-in configuration default for consistency with other lynx.cfg settings to require that lynx.cfg be set to permit use of lynxcgi scripts. * 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. * ensure that PERSONAL_EXTENSION_MAP and PERSONAL_MAILCAP are absolute pathnames, performing tilde expansion as needed. Pathnames that are not given in absolute form will be sought under the user's home directory as if they began with "~/". * ensure that the configured values for GLOBAL_EXTENSION_MAP and GLOBAL_MAILCAP are absolute pathnames. And finally: * A lot of bug fixes * A lot of documentation changes. * A lot of dead code removed |
||
---|---|---|
.. | ||
patch-aa | ||
patch-ab | ||
patch-ac | ||
patch-af |