======================================================================= --- Release of Lynx v2.8 (March 10, 1998) --- ======================================================================= 1998-03-10 * omit platform-specifics about release (recommended by HN). - TD * drop samples/lynx.cfg since it is redundant (recommended by HN). - TD * modify makefile.in so that "make install-cfg" does not edit lynx.cfg to point at local helpfiles, while "make install-help" will now do that (reported by LP). - TD 1998-03-07 * move ifdef's for EXP_8BIT_TOUPPER inside UPPER8 function to allow check for DOS/WINDOWS display charsets. - LP 1998-03-06 * clarify relationship between the configure script and userdefs.h with respect to the LYNX_CFG_FILE definition. - TD * newer CF_FIND_LIBRARY autoconf macro, to allow ncurses library in /lib only, needed for SUSE Linux. - TD * add casts to UPPER8 function's comparison for equality of parameters, and to TOUPPER macro to guard against sign-extension due to prototype. - AC * correct spelling of -lcur_colr library in aclocal.m4, change order of tests to put -lHcurses second on HP-UX (patch by Jonathan Sergent). * restore simple zmodem downloader script, displaced by recent undocumented change (there are some concerns about security or permissions with the alternate script). - DK * DOSPATH localfile patch: corrected display of file://localhost/c:/, which was displayed as file://localhost/c%3A/ (tweak LYConvertToUrl() in LYUtils.c). Now we may start "lynx c:" or 'go' c: and not see these strange letters. On the other hand, if % and # symbols found in local path it will be escaped as before (note that #fragment is not supposed here to be used from command line...) - LP * workaround error in vendor's terminfo description of 'dtterm' by ensuring we limit color pair-number accordingly. - TD 1998-03-04 * strip -g compiler option if not otherwise specified, for debugging (note that autoconf 2.12 does not try to use -O option due to concerns about compiler optimization). - TD * correct value of $host_os used in CF_CURSES_LIBS for special-case of HP's -lHcurses (Jonathan Sergent ). * correct def7_uni.tbl for Greek letters, note about UPPER8 assumption added to chrtrans/README.format. - LP * few comments corrected. - LP 1998-02-28 * create new PRCS revision (2.8pre) for pre-release testing of Lynx 2.8 * remove RELEASE_STATEMENT, merging it into README as per HN's recommendation - TD * comments/minor changes to HTDOS.c, HTDOS.h, LYUtils.c - LP * document recent fix for RAW_DOS_KEY_HACK in lynx.cfg - DK * rename CHANGES.new to docs/CHANGES2.8 - TD * undo last minor change to UPPER8 - LP 1998-02-27 * add RELEASE_STATEMENT file. - TD * modify slang configuration to add fake 'scrollok()' - JED * modify LYmktime() so that 2-digit years must be greater/equal to 70 to be in 1900's (patch by Bela Lubkin). Also adjust parse_windows_nt_dir_entry() and parse_cms_dir_entry() as noted by Bela - TD * comment-out entries in cp1252_uni.tbl which correspond to nonprinting control-characters - LP * add logic in SGML.c to correspond with 2.7.2 logic for codes used by Microsoft FrontPage. - LP * remove unneeded code for nbsp, ensp, emsp, thinsp and shy from handle_entity() in SGML.c - LP * ifdef UPPER8 function with EXP_8BIT_TOUPPER, add configure option --enable-8bit-toupper to allow testing. - TD * case-insensitive search and 8bit letters: It was realized that information about upper/lower mapping got from TOUPPER which depends on locale in its 8bit and usually fails on non-UNIX systems. We introduce UPPER8 and strcasecomp8 to implement 8-bit aware case-independent search using one simple assumption: 8bit upper/lower case letters have their "7bit approximation" images in def7_uni.tbl matched case-insensitively (7bit). The cost of this assumption is that several differently accented letters may be interpreted as equal but this is negligible if the search string is more than one character long. (LYStrings.c, also HTString.c and LYMainLoop.c). - LP & TD * add SunOS 4.x-specific ifdef to quiet redefinition warnings for sys/ioctl.h vs sys/termios.h - TD * convert usage/options messages into arrays to simplify maintenance. - TD * add "-useragent" command-line option to set "User-Agent" (request by Merlin Mathesius ). - LP * tweak HTML in LYDownload.c, LYPrint.c to restore some double-spacing effects altered in 'collapsible spaces' change 1998-01-25 (reported by James Elkinton ). - LP * use strncasecomp/strcasecomp consistently throughout to avoid library dependency on strncasecmp/strcasecmp. - TD * correct lengths in several strncasecmp calls for command-line options (though -w is still an abbreviation for -width). - TD * test-build with BSD curses on OS/2 EMX (does not display properly), and with ncurses. * add configure check CF_FUNC_LSTAT. * modify CF_CHECK_ERRNO so that configure script on OS/2 EMX finds sys_errlist. * reset styles[] and styleSheet list in DefaultStyle.c, HTML.c so that when a user reloads a page with ^R, we undo changes to those data structures (reported by Larry Virden). - TD * remove extra copy of HTML.h from Implementation directory. - TD * add CF_GCC_ATTRIBUTES to configure script, to use in flushing out unused parameter warnings (and later, to support prototypes for logging). - TD * rename 'extra_entities' to 'unicode_entities' (recommended by LP) - TD * add configure option --use-default-colors, to allow background color to use default value (request by SUNAGAWA Keiki ) - TD * change default for --disable-internal-links so it is normally-off - TD 1998-02-19 * add configure test CF_FIONBIO, some ifdef's (e.g., S_IFLNK) to support build on OS/2 EMX. - TD * add configure option --disable-extended-dtd, for testing - TD * split-out entities.h from HTMLDTD.c - TD * remove obsolete mapping in "private" e000 area of mnem_suni.tbl, mnem2_suni.tbl, rfc_suni.tbl - LP * remove unused function HTMLGetLatinOneValue() - LP * remove logic that would attempt lookup of Unicode entities by index into the unicode_entities.put_entity method (e.g., of HTML_dtd), in HTML.c (HTML_put_entity) and HTMLGen.c (HTMLGen_put_entity) - LP * tweaks to HTPlain.c, LYCharUtils.c and SGML.c, remove extra checks for Unicode mdash, ndash, trade, as well as "iso-8859-2", "koi8-r", since they are done in the chartrans tables - LP * add an alias 'H' for F1 when using RAWDOSKEYHACK (LYStrings.c) - DK * restore -DRAWDOSKEYHACK to src/makefile.dos, reported by DK - TD * correct a typo in CF_CURSES_LIBS configure macro, which caused the configure script to not add termcap library to the list - TD * correct --disable-internal-links, by adding DONT_TRACK_INTERNAL_LINKS to config.hin - TD 1998-02-13 * use size_t in SGML_dtd. - TD * remove extra trademark symbol and quotes from chrtrans/*.tbl, since they are in the default def7_uni.tbl - LP * New item to lynx.cfg added: PREPEND_CHARSET_TO_SOURCE (similar to BASE), we need it to resolve charset for downloaded/printed HTML sources which became local. This is really useful because downloaded and printed texts may happened to have different charsets so assume_local_charset fails. For downloaded source meta charset added from HTTP charset header (if and only if present). For printed source meta charset added from display_charset (real charset after chrtrans). If the original source has its own meta charset and we add the second on top - Lynx currently use those on top and ignore others (old) value (that is correct, although non standard like BASE on top). The compilation default is FALSE (compatibility). - LP * modify ncurses mouse behavior to match slang (use button 3 rather than button 2 for "previous document" (reported by Michael Ritzert) - TD * use case-independent comparison for tail-only comparison in override_proxy (patch by pg@sweng.stortek.com) - TD * remove unneeded definitions of ALT_CHAR_SET, NCURSES_VERSION in src/makefile.dos - DK * correct syntax for the RAW_DOS_KEY_HACK in lynx.cfg, add a little information on how to compile this. Also patched makefile.dos to make compilation of the raw dos key hack the default when compiling in DOS. - DK * change back to boolean since the logic was unused: UCCanTranslateFromTo(), UCCanTranslateUniTo(), and UCCanUniTranslateFrom(). - TD * Mods of SGML.c and LYCharUtils.c to improve handling of entities, obsolete stuff removed (not all yet). - LP * -localhost mode: disable interpreting BASE HREF= if local_host_only to resolve local html files with BASE (Lynx add base to downloaded sources and this may affect links if looking them with -localhost). (tweak in html.c). - LP * Modify HTMLGetEntityUCValue in LYCharSets.c: we begin to move from old style entities[] to unicode-based. - LP * added a few comments. - LP 1998-02-07 * Fixed a bug in HTTP.c which could cause trashing of authorization info for an origin HTTP(s) server if the request is being proxied. - FM * Tweak in HTTP.c so that the reloading variable is not reset until after any resubmissions due to authorization challenges. - FM * Tweaks of userdefs.h, lynx.cfg, LYMessages_en.h, LYMain.c, LYMainLoop.c, LYClean.c, LYReadCFG.c, and LYGlobalDefs.h so that the QUIT_DEFAULT_YES compilation symbol can be overridden in lynx.cfg, in keeping with the principle that only strict security-related compilation symbols cannot be overridden at run time. - FM 1998-02-05 * adjust formatting, comments & some messages in WWW files to simplify comparison with 2.7.2 version. (I have preserved some chunks of difference, ifdef'd NOTUSED_FOTEMODS or NOTDEFINED for ease of comparison -- these may be removed at a later time, when we are done absorbing changes from 2.7.2) - TD * Update SGML entity to Unicode table in HTMLDTD.c from ftp.unicode.org - lots of new entities, iso-latin-1 now included there. See also new files in test/ directory: sgml.html and unicode.html. Tweak a few typos in test/*.html according to sgml.html. Add a few new entries in def7_uni.tbl according to sgml.html - LP * Cleanup iso01-iso09, cp866 tables against ones found at ftp.unicode.org * Strip the fat from LYCharSets.c - unnecessary obsoleted tables removed and redirected to SevenBitApproximation table (ones which have unicode tables override it anyway, those for CJK had exactly the same tables as SevenBit..). - LP * Remove obsolete "Other ISO Latin" charset, which works _exactly_ the same as "7 bit approximation" (See the note on 06-14-96 where it comes from). * Sort the list of charsets in Options according to 2.7.2 for 1997-10-15, see the comments in UCinit at the bottom of UCDomap.c - LP * add ifdef to HTFile.c to workaround conflicting S_IFIFO vs S_IFSOCK (e.g., on Apollo, from a report by Dave Eaton ) - TD * updated INSTALLATION (patch by HN) - TD * modify DOS handling of CTL-C and CTL-BREAK handling for DOS to allow exiting via SIGINT when pressing CTL-C or CTL-BREAK regardless of the BREAK setting in DOS. This leaves the BREAK setting unchanged unless CTL-C or CTL-BREAK is actually pressed (in which case it leaves BREAK ON) - DK * add note about Lynx vs frames to User's Guide (from Al Gilman) - TD 1998-01-27 * correct lynx.man to reference section "1" (one), not "l", since it is not installed in the latter (reported by Jason Castonguay ) - TD * fix for VMS declarations of mainloop() and from_hex() (reported by FM) - TD * add to include-paths in libmake.com, build.com (reported by FM, citing Brian Tillman) - TD * revert HTML.c to use LYHandleSELECT() - TD * align cases for function keys in LYStrings.c with 2.7.2 - TD * remove EXP_CHARTRANS ifdef's - TD * remove symbol USE_SIZECHANGEHACK * adjust formatting, comments & some messages in most remaining ./src files to simplify comparison with 2.7.2 version. - TD 1998-01-25 * Changed the utf-8 Display Character Set string to "UNICODE UTF-8" (i.e., added the hyphen between UTF and 8), and fixed typos in the comments about iso-8859-5. LP & FM * Modified HTML.c to add collapsible spaces before and after IMG ALT strings or pseudo-ALTs whether or not the IMG element is within Anchor content. The occasional absence of such spaces due to poor HTML was problematic for blind users. Note that markup which uses an image for a fancy letter with the ASCII letter as an ALT will have that letter separated from the rest of the word. Also note that these spaces will not be collapsed in PRE blocks, but IMG is invalid in PRE blocks. The spaces could be omitted when IMG is used invalidly in PRE blocks, but that would revive the problem for blind users that they might not be present at all, so it seems better to suffer extra spaces in such cases. - FM 1998-01-24 * Tweak in HTAccess.c to reset the title element in anchors on forced reloads. - FM 1998-01-22 * Tweaks in HTML.c to prevent collapsing of blank lines within TEXTAREA default values. Note that we still strip any leading or trailing blank lines (reported by Edward S. Marshall ). - FM * Tweaks of LYCurses.c, LYMain.c, LYOptions.c, LYReadCFG.c, LYUtils.c and LYAuto.c to ensure properly setting, with internal buffering, and avoid memory leaks for the display and homedir values (reported by pg@sweng.stortek.com). - FM * include userdefs.h in LYCurses.h to address redefinition warnings for curses-related configuration. - TD * adjust formatting, comments & some messages in recently-modified files to simplify comparison with 2.7.2 version. - TD * remove obsolete logic from UCCanTranslateFromTo, (recommended by LP). - TD * make character set names (e.g., cp437, cp850, next) consistent in lynx.cfg, userdefs.h (reported by LP). - TD * change configure script to check for termcap library before curses, in case it is dependent. - TD * More corrections in the Russian Cyrillic area of def7_uni.tbl. - LP 1998-01-17 * correct logic for no_color_video by ensuring that if not defined, it doesn't disable underline with color. - TD * remove NSL_CLONE - didn't build. - TD 1998-01-16 * eliminate gcc "shadowed variable", "nested declaration", "no previous prototype" warnings. - TD * add --disable-internal-links configure option. - TD * remove W3C gateway (patch by DK, based on email from Gerald Oskoboiny ). - TD * documentation updates (patch by JS). - TD * add CONTENT_TYPE to environment of lynxcgi POST documents (reported by Ty Sarna & FM). - TD * add NSL_CLONE ifdef that enables use of the Linux clone() call instead of fork() for the gethostbyname() calls in HTTCP.c. (patch by Ryan Nielsen ). - TD from the lynx code. I think the following patch does this. 1998-01-15 * Tweak of the NSL_FORK code in HTTCP.c to prevent zombie processes from being created when gethostbyname() is interrupted. - RN * Corrected the Russian Cyrillic area of the def7_uni.tbl Unicode to 7-bit approximations conversion table. - LP * Mods of UCAux.c, LYCharUtils.c, SGML.c and HTPlain.c to use 7-bit approximations instead of 8th bit stripping when the document charset is koi8-r and the Display Character Set does not have the corresponding characters. - FM * Tweaks in HTML.c to ignore a newline character immediately following a PRE start tag more consistently. When PRE blocks are used to create blank lines, you should get only as many as are actually included in the PRE block, unless you include less than the number specified for "before" the block to which you return, in which case you'll get the latter number of blank lines. - FM 1998-01-13 * Fixed a typo in the HTParse() code of HTParse.c for checking whether a colon in the host field indeed delimits a port number. - FM * Changed the internal MIME names for all Microsoft Windows codepages from cp#### to windows-####, since the latter is used more commonly as the charset value in META elements and/or Content-Type headers, and most of them have been registered that way with IANA. Note, however, that Microsoft uses cp instead of windows- prefixes in the charset names for the Unicode conversion tables submitted to the Unicode Consortium. Also note that we still treat cp, cp-, and ibm prefixes as synonyms for the windows- prefix. - FM 1998-01-06 * work around for 'keypad()' function w/o corresponding key defines (reported by Francisco A. Tomei Torres for NeXTstep 4.0). - TD * quote message in install rule, just in case (from HN). - TD * correct expression to supply default value of .cfg file's pathname (reported by LE & Ambrose Li ). - TD * correct dependency of .cfg files upon $(libdir) in makefile.in - TD 1998-01-04 * correct temporary filename for -traversal -crawl (patch by Doug Kaufman). - TD * correct redefinition of SYSTEM_MAIL_FLAGS. (reported by Doug Kaufman). - TD * uncache current document when character set may have changed (patch by Andrey A. Chernov) - TD * modify Linux setfont code to restore the original font on exit - TD * correct missing backslash (again) in makefile.in (reported by Mark Mentovai - again) - TD 1998-01-02 * workaround for sed expression when rerunning configure with config.cache for slang libraries (reported by Hynek Med). - TD * fix indicated by Laura Eaves (LE) for LYUCFullyTranslateString_1() - TD * modify SPAWNING_MSG for DOSPATH configuration, avoid unnecessary use of clear-screen in shell (patch by Doug Kaufman). - TD * remove install-help from list for install rule, adding message to indicate how to install it. - TD * install lynx.lss only if color-style is configured. - TD * correct filemode for DJGPP when processing config-file, patch by Doug Kaufman). - TD * add LYNX_LSS_FILE to config.hin, reported by Ambrose Li . - TD * new copy of INSTALLATION file from HN. - TD * add COPY* to install rule. - TD * simplify includes in UCdomap.c by using include-path in makefiles. - TD * build configure script with patched autoconf to workaround limited environment space on CLIX 3.1 - TD * rename mnemonic_suni.tbl to mnem2_suni.tbl to accommodate 'make' on older system with 14-character name-limit. - TD * sorted some lists (e.g., character sets) which were unreadable. - TD * incorporate most of FM's changes from 971124 to 971230 (see below). - TD (Note: don't try to use fflush(stdin) -- it's an FAQ -- nonstandard, dumps core on some platforms). 1997-12-30 * Added Unicode translation support for "DosBaltRim (cp775)" and "WinBaltRim (cp1257)". - FM 1997-12-29 * Fixed bug in the order of re-initializations for the 1997-12-22 get_connection() mods. - FM * Fixed typos in some LYCharUtils.c comment. - FM * Fixed typo in LYrcFile.c comments concerning the NO_FROM_HEADER symbol. - DK 1997-12-24 * resolve conflict between autoconf $INSTALL and lynx's INSTALL_PATH (reported by Scott McGee). - TD * modify CF_CHECK_FUNCDECL to work with non-gcc compilers. - TD * add to prototype test for getgrgid getgrnam, needed on SVr3. - TD * add install-lss to makefile.in. - TD * modify order of includes in LYKeymap.c so that USE_EXTERNALS is defined if it comes from userdefs.h (inferred from a report by Larry Virden). - TD * correct spelling of USE_EXTERNALS which prevented --enable-externs from working. - TD * move assignment to stderr from VMSexit to cleanup function (reported by Brian Tillman & FM). - TD * modify UCChangeTerminalCodepage() to not use stderr, disentangling it from stderr/logfile hack. - TD * rename docs/CHANGES2-* files to docs/CHANGES2.* (reported by Doug Kaufman). - TD * add start_color() call to DOSPATH version of start_curses() to fix problem reported by Doug Kaufman - TD * correct typo in ColorCode() function (reported by Doug Kaufman) - TD * modify comments in makefile.in (patch by HN) - TD * minor fixes for CF_CHECK_ERRNO, CF_SIZECHANGE, CF_SLANG_CPPFLAGS macros. - TD * add configure option --enable-nsl-fork to turn on code defined by NSL_FORK. - TD * add configure option --enable-links to turn on code defined by UNDERLINE_LINKS. - TD * add configure option --enable-font-switch, to turn on code defined by EXP_CHARTRANS_AUTOSWITCH. - TD * modify configure CF_CURSES_LIBS test to look also for ncurses, since some systems do not have a "curses" library (reported by Michael Ritzert). - TD 1997-12-22 * Reworked -width=NUMBER command line switch for specifying the screen width for formatting of dumps (default is 80; forced wraps occur at one column less than the screen width, i.e., at 79 by default). - FM * Tweak of get_connection() in HTFTP.c to re-initialize the elements of the connection structure when using a previously allocated connection object. - DW & FM * Mods of LYexit.c, LYClean.c, LYMain.c and LYMainLoop.c to fflush() all standard file descriptors in conjunction with all fopen() and fclose() operations on the TRACE log and redirections of stderr via equality statements (see 1997-12-16, 1997-12-13 and 1997-07-18 mods). - FM 1997-12-18 * forgotten last } UN-inserted (John Line) - WB * few commented messages corrected according to RFC2068 (HTTP1.1) (Leonid Pauzner) - WB 1997-12-17 * Changed all %i tokens to %d or %ld in functions that always get decimal values in their arguments. - FM 1997-12-17 (all patches by Leonid Pauzner) * open text mode while writing lynx.rc and bookmarks files LYrcFile.c and LYBookmark.c (forgotten last } inserted). - WB * add a comment about binary mode in LYMain.c and pile them in one ifdef - WB * few misprinted characters (in comments) corrected in \chrtrans\cp850_uni.tbl - WB 1997-12-16 * Further mods in LYClean.c (see 1997-12-13 mods) do block the *stderr = LYOrigStderr; statement in cleanup() for VMS with VAXC. - FM * Added an ELGOTO keystroke command, mapped by default to upper case 'E' (lower case 'e' still invokes the editor for the current document, if it is a local file), for passing the URL (or ACTION) of the current link to the line editor for editing as a goto URL. Works like the ECGOTO ('G') keystroke command for editing the URL of the current document as a goto URL, i.e., if the URL is not modified, is set to a zero-length string, or ^G is entered, the command is cancelled. - FM * Mods of LYMainLoop.c to disallow ECGOTO or ELGOTO commands for File Management (DIRED_SUPPORT) menu URLs. - FM 1997-12-15 * Added reporting of the Discard value (YES or NO), in the Cookie Jar Page (note that until we have code for storing cookies beyond the current session, Lynx behaves as if Discard were set, whether or not it was set by the server, but we still report the server's instructions, as we do for the Maximum Gobble Date). - FM 1997-12-14 * added a lynx.cfg switch to turn on/off extended dos translations for keys. -WB * added minor DOS tweaks by Doug Kaufman and myself. - WB * fixed windows binary mode piping. - WB 1997-12-13 * Tweaks in LYList.c to make the link numbers correspond with those in the current document when LINKS_AND_FORM_FIELDS_ARE_NUMBERED in on, and to show the current document's URL in the display. - FM * Mods in HTTP.c to show the body of a 305 return status instead of ever acting on it. A number of security/privacy problems with this status are being discussed in the HTTP-WG, and it's likely to be dropped or deprecated in the next revision of the HTTP/1.1 specs. - FM * Restored the v2.7.1 HTmmdecode() that's specific for iso-2022-jp in HTMIME.c. We still only call it when HTCJK == JAPANESE, and the generalized version reportedly has problems. - FM * Removed the *stderr = LYOrigStderr; statement from VMSexit() in LYCurses.c and added it to the if() claused section which closes the TRACE log file, if opened, in cleanup() of LYClean.c. This is just a stab in the dark for dealing with reported problems on exit with VAXC on VAXen. We may need to use freopen() for redirecting TRACE messages to a file for VAXC or VAXen (there's no apparent problem with the current code with DECC on VMS/AXP). - FM * Added more function key cases to the keypad() mode switch() in LYgetch() of LYStrings.c. We don't need them with this code set, but they may as well be there for completeness. - FM * check for and use ncurses default-color extension, use to make the color-style configuration usable on xterm with white background. - TD * add cases in LYgetch() for remaining VT220-compatible codes, reported by Michael Ritzert and FM. - TD * add configure test to see if slang can be linked without curses or termcap libraries, request by John Davis. - TD * set umask in mkdirs.sh script to work around users who have set root's umask to 077. - TD * split up install rule to install-bin, install-cfg, install-man and install-help. - TD * suppress suffixes in top-level makefile so 'make' won't try to create a file named "install" from install.sh - TD * make $(CPPFLAGS) inherit consistently from top-level makefile. - TD (reported by Mark Mentovai) * add configure option --enable-externs, to turn on USE_EXTERNS. - TD * use explicit comparison for enum values, fix compile problem with VAX C for UCAux functions (reported by Brian Tillman). - TD 1997-12-03 * Remove CHANGES.configure, since it is redundant. - TD * Make -g3 option check for OSF/1 3.2 consistent with -Olimit check. - TD * Use 'result' rather than 'time' in mktime.c to avoid shadowing. - TD * Use wborder only if configure finds it, not ifdef FANCY_CURSES. - PHDM * List of systems having strerror replaced by configure test. - PHDM * Beautifying of mktime.c (`now' was misleading). - PHDM 1997-12-02 * Mods in LYCookie.c to prompt whether to accept (or reject) cookies with an invalid domain value which yields a hostname prefix with a dot (as specified in section 4.3.2 of the IETF cookie drafts and RFC), rather than rejecting it silently. Note that it is rejected in non-interactive (-dump or -source) mode, because the user can't be prompted. - FM 1997-11-27 * Added a PREPEND_BASE_TO_SOURCE configuration symbol in lynx.cfg which can be set FALSE to suppress prepending of a Request URL comment and BASE element to text/html sources retrieved for 'd'ownloading or passed to 'p'rint functions. Note that this prepending is not done for -source dumps unless the -base switch also was included on the command line, and the latter switch overrides the setting of the PREPEND_BASE_TO_SOURCE configuration variable. - FM 1997-11-25 * Mods in LYMail.c and LYPrint.c to handle to=address(es), cc=address(es), subject=string, keywords=word_list, and body=message fields in the ?searchpart of mailto URLs as specified in the 1997-11-16 draft: ftp://ftp.isi.edu/internet-drafts/draft-hoffman-mailto-url-03.txt The cc=address(es) values are now handled as a Cc: header, and a self copy, if confirmed on prompt, is added to the Cc: header. Note that the draft now allows mailto:?to=address(es)[&foo=blah] as a format, i.e., without an address before the ?searchpart. The Netscape ?searchpart tack-on broke all pre-existing implementations of mailto, and this breaks Lynx's support through v2.7.1. Though it's now supported in this code set, don't use it. Complaints and formal requests to provide this functionality via a new scheme (e.g., mail: or smtp:) without breaking existing implementation of mailto:, including from TimBL (HimSelf :), thus far have fallen on deaf ears. You can send email to those deaf ears via: mailto:masinter@parc.xerox.com%20(Larry%20Masinter) Don't allow the IETF backward compatibility principle to go down the drain. - FM * Mods to support use of the PMDF SEND command on VMS in conjunction with a temporary header file, so that all headers specified in the ?searchpart of mailto URLs can be included in the mailing, and made that the compilation default in userdefs.h to go with the default MAIL_ADRS mask for PMDF (If the "generic" VMS MAIL utility is used, not all of the headers can be specified on the command line, as it requires). Look at the code in LYMail.c and LYPrint.c that is used when isPMDF is TRUE as a model of how to do this with other header-file-capable VMS mailers (but I don't have any besides PMDF, and can't do it for you :). - FM * Tweak of the 1997-11-17 URL parsing mods so that relative symbolic elements immediately preceding a ?searchpart are handled identically to when a ?searchpart is not present. - FM * Added support for setting both SYSTEM_MAIL and SYSTEM_MAIL_FLAGS in both userdefs.h and lynx.cfg. - FM 1997-11-23 * integrate PHDM's patch. - TD * Check for existence of sys/wait.h. - PHDM * Do not include sys/stat.h twice. - PHDM * New autoconf-macros to check if a function is declared after including a specific set of files. - PHDM * Declare strstr if it is not declared by string.h. - PHDM * Declare getgrgid and getgrnam if not declared by grp.h. - PHDM * Provide strstr and mktime implementations, and use them if needed. - PHDM * Always include sys/types.h in HTUtils.h. - PHDM * define NO_GROUPS if we do not have getgroups. - PHDM * define NEED_REMOVE also if test yields unknown. - PHDM * define mode_t if not done by system include files. - PHDM (phdm@macqel.be) * change CF_UNION_WAIT to use compile+link rather than compile, to ensure that we pick up the wait-macros rather than an implied function, which should fix configure problems on NeXT for Francisco A. Tomei Torres . - TD * spelling nit from Larry Virden. - TD * add osf3.0 to special case compiler options using -g3 in place of -O -g, from Harsh Kumar . - TD * remove redundant "-c" option from $(installbin) in makefile.in, reported by Michael Warner , for OSF/1 4.0. - TD * if configure --srcdir is not used, comment-out rmdir's in "make distclean" rule. - TD * modify recent erase/clear change so that it applies only to FANCY_CURSES, since BSD curses does not otherwise clear the screen when restoring after popup. - TD * modify change for boxes so this builds with BSD curses, which has no wborder() function. - TD * reverse ifdef for NO_SIZECHANGEHACK to USE_SIZECHANGEHACK, which is normally off, since this code did not work with BSD 4.4 curses, SVr4 curses, or ncurses 4.1 with xterm. (Will make a configure test if anyone can identify a configuration that works). - TD. 1997-11-21 * Changed LYE_LINKN to LYE_LKCMD (still mapped by default to Ctrl-V; may need to be entered twice for some systems) for invoking a prompt to enter any Lynx keystroke command when in form text fields. - FM 1997-11-20 * Added an LYK_CLEAR_AUTH command, mapped to underscore ('_') by default, which clears all authorization info for the current session. This is recommended for the situation when one leaves one's terminal but doesn't want to end the browser session, nor want others to be able to retrieve protected documents with previously entered username and password info. Note that we don't yet have a way to block access to any protected documents which are still in cache. - FM 1997-11-19 * Tweak of HTTP.c to ensure closing of the connection when interrupted ('z'apped) on the first socket read. - FM 1997-11-18 * Mods to use the explicit label "Bad HTML:" in trace messages corresponding to BAD_HTML_USE_TRACE messages. - FM & KW * Tweak of the restored TABLE-in-PRE block handling to deal with the case when it's encased in a CENTER or DIV with ALIGN="center". - FM * Changed docs/README.defines to refer to INSTALLATION file - HN 1997-11-17 * Changed the default ASCII BOXVERT and BOXHORI definitions from '*' to to '|' and '-', and new function LYbox() for non-VMS (n)curses. - FM * Use explicitly specified characters for drawing the corners of popup boxes with non-VMS (n)curses if we have also specified characters for vertical and horizontal lines. - KW * Mods in HTTP.c to trim any "LYNXIMGMAP:" leader from Referer header values and strip the #fragment when making http(s) requests via links in the pseudo-documents constructed for MAP elements. - FM & KW * Mods of SGML parsing to better handle SELECT blocks with invalid markup, in effect for both TagSoup and SortaSGML parsing (for the latter just in case it doesn't already prevent invalid markup from being passed on). Only OPTION elements are accepted in SELECT blocks. Otherwise, if the element is a form-related start tag, the SELECT block is closed and the new form-related element is started. All other elements are ignored. A FORM end or start tag ends any open SELECT block and the current FORM (before starting another FORM if it is a start tag). Note that we now support SELECT blocks outside of FORM blocks, which some providers are using for "informational" popups, but no Lynx user would do anything that awful, right? - FM * Tweak in LYMainLoop.c to override an LYresubmit_posts flag if we are reloading a popped document due to a NOT_FOUND or NULLFILE return value from getfile(). - FM (But if the document that would be loaded after such a failure has POST data and is not in memory, still jump to the PREV_DOC code, see enttry for 1997-11-03. - KW) * Worked in a variant of AJL's suggestion of setting LINES and COLUMNS artificially high before the initscr() call with Unix curses, then using a dummy call to size_change() for setting LYlines and LYcols to the actual screen dimensions, so that increases in the screen size during the Lynx session, and not just decreases, can be handled. Note that one still needs to do a RELOAD (^R) overtly to create a new HText structure based on the current screen size. - FM (The new code can be disabled by defining NO_SIZECHANGEHACK, in case some curses version or terminal cannot deal with it. - KW) * Tweaks of the chartrans code. - FM & KW * Change in HTNews.c to ignore very long bogus newsgroup names when listing available groups. - KW * Tweaks in code for highlighting search text in anchors, to better deal with terminals in UTF-8 mode. - KW * Mods to ignore anything past a '?' character when simplifying URL paths, as is now more clearly specified in the Fielding URL draft. Note that we still assume a ';' is not in fact a parameter delimiter, or won't have a value with characters that could be misinterpreted as relative path specs. - FM * Increased the redirection limit to the original Lynx's value of 10, because the HTTP/1.1 draft no longer will restrict it to 5, but instead will leave it to the discretion of the browser (and I like 10, as a reminder of the "good old days" :). - FM 1997-11-15 * Mods of parsing in HTML.c to restore support for the TABLE-in-PRE-block HTML kludge described in http://ppewww.ph.gla.ac.uk/~flavell/tablejob.html, which stopped working in conjunction with the 1997-05-21 mods (see below) for treating TABLEs as DIVisions to support ALIGNment attributes in TABLE markup. The PRE-in-TABLE-block HTML kludge was not affected by those mods but works only with the TagSoup parsing mode. - FM & KW 1997-11-12 * Made handling of the 'x' in hexadecimal character references (&#xH;) case insensitive, as for the "alphabetic digits" (a-f, A-F). - FM * Added a LINKN command key in the line editor, mapped to Ctrl-V, for invoking the F_LINK_NUM prompt when in form text fields. Ctrl-V is still a dead key under other circumstances in the line editor. - FM * remove options --with-lss-file and --with-cfg-file, since the corresponding files will always be installed under $(libdir), reported by Henry Eric Nelson (HN). - TD * modify configure script and makefile templates to permit builds with the --srcdir option, noted by Philippe De Muyter. - TD 1997-11-08 * Added Unicode support for "DosArabic (cp864)", "WinArabic (cp1256)", "DosGreek (cp737)", "DosGreek2 (cp869)", "WinGreek (cp1253)", "DosHebrew (cp862)", and "WinHebrew (cp1255)". Note that we still have no code for taking DIR attributes, or directionality in general, into account. - FM * Mods to handle "cp-#" charset names as synonyms for "cp#", and some cp# names as synonyms for "windows-#". FM & KW 1997-11-07 * Change of LY_SLrefresh() in LYCurses.c as suggested by JED - FM * add logic to make install-directories as needed. - TD * remove --disable-char-trans option (ifdef's still remain). - TD * correct type used in first compile-test for union wait. - TD * correct order of deletions in "make distclean" rule. - TD * new versions of macros used to check for ncurses version. - TD * don't suppress -I/usr/local/include when checking -I/usr/local/include/*, to accommodate older versions of gcc. - TD 1997-11-06 * Use erase() instead of clear() in some places, to avoid unnecessary full screen repainting even for UNIX (and similar) curses. Renamed LY_SLclear to LY_SLerase, but it is used for erase() and clear() now, so there should be no change in behavior for slang introduced by this. - KW * Added new format for lines in chartrans .tbl files: U+NNNN "a string" where the string can have C backslash-escaped characters. This allows to write replacement strings with 8-bit characters that won't be garbled when the .tbl files are transferred in some non-binary way. Note there is no ':' between the Unicode value and the beginning quote character. - KW * Changes to HTMLDTD.c (for SortaSGML parsing) and HTML.c (second line of defense) for dealing with invalid SELECT tags. Also tolerate SELECT outside of forms. - KW * Change in HTLocalName for DOSPATH so that it doesn't depend on whether HTDOS_name returns a pointer to static memory or not. - KW * Started new file docs/README.defines. Renamed CHANGES to CHANGES2-7, removed duplicate 2-7-1 entries. Minor changes to INSTALLATION, other files. CHANGES.chartrans is gone. - KW * Tweaked color style stuff again. Statusline may behave better. - KW * Don't use memmove for HEAD in HTNews.c. - KW * For UNIX, use normal umask permissions, instead of the extra-cautious temp file permissions, for files saved to disk by the default actions for PRINT and DOWNLOAD. - KW * Changes (untested) in the code dealing with reading of compressed files in HTFile.c, in parallel to the code for other systems. - KW * Mods to avoid va_start redefinition warnings when building with slang. - FM 1997-11-05 * Change in LYForms.c to avoid full screen repaint after popup is retracted for slang. - KW & FM 1997-11-03 * Internal links code revised. Some details follow, but first a summary of the basic premises. Links in a document given as href="#fragment" or href="" (empty, but href attribute is present) mean something different from href="url#fragment" or href="url" (where url is a non-empty absolute or relative URL not including a fragment), they are internal links pointing to an element or a location within the same copy of the document (or to the document itself, for href=""). In contrast, a URL-Reference with a non- empty URL refers to a (generally...) external resource. If the "url" happens to coincide with (or, if it is relative, resolve to) the URL from which the current document was retrieved, the current document is a representation of the resource, but not the same thing. In most such cases we can treat href="#fragment" and href="url#fragment" the same way, i.e. activating such a link is interpreted as a request to reposition within the current document; we are using the current document as a cache copy of the resource (like we would other documents in the memory cache). But if we have marked our copy as no-cache, it seems more consistent to treat activation of a href="url#fragment" link as a request for retrieving a new copy and _then_ locating #fragment in it, as we do for "any-other-url #fragment" if we have cached a document which represents "any-other-url" and which is marked no-cache. Following a href="" link should just result in repositioning to the start of the document, not in a new retrieval for no-cache documents. If the current document is the result of a POST submission, there is in general no way to refer to its underlying resource with a URL, since there is no URL notation for "url+post_data". Internal links can be used within the context of this document, but there is no way to hyperlink to it or parts of it from "outside". A link to a href="url" or href="url#fragment" target should always imply a GET retrieval, whether it occurs within a document from a POST submission or not, for consistency. This understanding also applies to other than uses of URL- References in documents, for example the link implied between a USEMAP attribute and a MAP element; but not to all uses, for example a FORM's ACTION requires an external resource and not an internal reference, so ACTION="" is resolved to an absolute URL (using a base URL if one is given). The semantics for URL-less URL-References are given in Internet Draft , including that "Traversal of such a reference should not result in an additional retrieval action." No comparable prescriptions are made for references which have a URL, in particular it is not stated that they should be treated as equivalent when the URL coincides with or resolves to the current document's retrieval URL. The changes to the Lynx code attempt to implement what is outlined above, by keeping track of how a link destination was originally specified. href= "#fragment" and href="" links are still "resolved" into a "url#fragment" and "url" form, for use internally, and if an explicit NOCACHE action is requested, and for generating lists of links etc., and in general for use outside of the context of the current document. To the best of my knowledge they do not lead to unwanted (or misdirected) resubmission of POST content without prompting the user for confirmation (although the prompt texts probably need improvement). - KW * The notion of the context of the "current document" is extended, so that auxiliary LYNXIMGMAP documents generated by Lynx are within the scope of the underlying document, i.e., the document containing the MAP and AREA elements. Although they are treated as separate documents for display and internal handling, following links between the underlying document and its LYNXIMGMAP documents will result in display from cached data (if available) even for no-cache documents, if a fragment-only (or empty) URL-Reference was used in the HTML. This includes the link generated for pointing from the IMG to the LYNXIMGMAP if the USEMAP attribute value was was fragment-only; the LYNXIMGMAP is normally regenerated from the list of MAP and AREA elements kept internally when a link to it is activated. (Note that a LYNXIMGMAP screen is still not reloaded from external sources even when RELOAD or NOCACHE keys are used, if data for the MAP is found in the internal list; but that reloading the underlying document will refresh the internal lists.) - KW * List Page screens are also in the context of the underlying document, so that internal links in the underlying document can be listed and activated from the List Page. When following an internal link from a List Page, it is not pushed on the history stack (similar to the History List Page), to reduce the chance of confusion when walking back through history. - KW * LYNXIMGMAP and List Page auxiliary documents can now be associated with POST data. This does not mean that the data is posted to a "LYNXIMGMAP:" or "file:" URL, which is impossible; but that the underlying document is associated with the POST data. This way these aux documents can still have links regarded as "internal" pointing to the document of which they are logically a part, keeping track of what POST data are applicable if several form submissions have occurred. Normally the underlying document should be in the document cache when such a link is activated, so that resubmission of the POST can be overridden. If it is not found, resubmission may happen after user confirmation. Although the POST data content is not shown on such aux pages, it can be inspected with the INFO ('=') command. Note that the association of LYNXIMGMAPs and List Pages with POST data automatically excludes them from various operations which may otherwise be possible, such as bookmarking or inclusion in the 'V'isited Links Page. Note also that such aux pages are treated internally as different documents from their POST-free counterparts with the same address, which might be generated for example after typing the address at a 'g'oto prompt while viewing a different text. It may be possible to generate confusing situations, but regenerating the displayed data (by invoking 'L'IST again, or by following a LYNXIMGMAP: link) will always show the currently applicable information. For image maps, the change implements link-following capabilities which come naturally to graphical UAs, which can handle IMG USEMAP and the corresponding MAP elements from the same data stream as objects within the same document instance. - KW * To implement the above, MAP and AREA information from a POST response is not kept in the global list shared by all other documents, but in a separate list specific to the underlying (containing) document and the POST data. The specific lists are managed with the underlying document's anchor structure so that they can automatically expire after the anchor is removed from memory and will not stay around and accumulate until session end. - KW * POST data is kept in mainloop when following an internal link, but is now always dropped for links that were given with a URL. This removes the limitation by which a link in a POST response to the URL of the POST submission script would be inappropriately converted to a resubmission of the POST data. (example: search form from ) - KW * Changes to the PREV_DOC handling in mainloop. When encountering documents that may need to be reloaded while walking back in history, because they have POST data associated and are not marked "safe" and are either not found in the memory cache or -resubmit_posts has been set, the user is prompted for confirmation as before; if the reply is 'n' the document will be skipped but if the user cancels with ^G the walkback operation is cancelled and the currently viewed document remains loaded. Some of the aux documents which can new be associated with POST data may be automatically skipped if their document structures are not any more in memory. - KW * When following a link marked internal from a List Page and confirmation is required, ^G may also have the different effect of cancelling the operation while responding 'n' may attempt to follow the link as a GET request (i.e. with POST data dropped). - KW * In some situations, automatic popping from the history stack in mainloop after getfile fails to load a new document could lead to resubmission of a previous POST request without prompting. This is now avoided by jumping to the code handling PREV_DOC. - KW * Use new LYinternal_flag variable for propagating info to HTAccess, rather than overloading LYoverride_no_cache. - KW * Tweaks for bad form tag soup with crashes on unclosed SELECT. Changes in HTML.c and GridText.c to prevent memory leaks resulting from insanely placed or unclosed form field tags, hopefully not introducing other problems... - KW 1997-11-02 * Changes in HTParse's scan to leave additional '#' characters alone after the first has been found when scanning (from left) for fragments, and to apply the "don't treat '#' as start of a fragment for some kinds of URLs" hack only when the '#' will become part of what has been scanned as a path. NNTP articles with more than '#' in the message-id are now accessible with the "news:" or "nntp:" schemes. We should actually always escape when generating URLs and unescape when parsing them instead. - KW * Changed HTUnEscape to leave '%' alone if not followed by two valid hex digits. - KW * Allow the HEAD key and -head and -mime_header flags for "lynxcgi:" URLs and for "news:" and "nntp:" URLs that specify a single news article. - KW * Change to writing of POST data in LYCgi.c, to close file descriptor after done writing and before reading as suggested by mhw@bcs.org.uk (Mark H. Wilkinson), and to check status from the write() call and retry if needed. Note that the code is not appropriate for handling large amounts of POST data, since it still first does all the writing and then all the reading. - KW 1997-11-01 * Added support for presentation of text/plain files in SOURCE ('\') mode, homologously to text/html files, rather than treating the command as a synonym for 'd'ownload when viewing a text/plain file. Note that if the text/plain file has no long lines, the display of it will not change, but otherwise, the long lines will not be wrapped in SOURCE mode, and thus can be 'p'rinted without line wrapping. One still should use 'd'ownload for a faithful copy of the file, i.e., without charset conversions and expansions of TABs. - FM 1997-10-30 * Get numbering of links on List Page right, by faking hidden links for form fields which get counted but are not selectable. - KW * Allow LYNXHIST: links in List Page since the History Page may get 'L'isted... - KW * Mods of HTML.c parsing to close any open Anchor or emphasis elements at the starts of TABLE elements, as the Big Two's TABLE handlers appear to do now. - FM * Tweaks of charset handling via META elements and CHARSET attributes. - FM 1997-10-29 * Tweak of SortaSGML DTD for insane HTML with FORM start before HEAD. - KW * Prevent memory leaks from HTChunks for option and textarea with very bad markup, added TRACE and BAD_HTML_USE_TRACE warnings for those. - KW * Don't call tigetnum("ncv") for _WINDOWS - BD * Added Unicode tables for the "DEC Multinational", "Macintosh (8 bit)", and "NeXT character set" display character sets. - FM 1997-10-28 * Disable setting of the `reloading' flag in HTLoadDocument which would generate no-cache headers for request where this is not appropriate. - KW * Memory leak for first OPTION in SELECT removed. - KW * Changed HTDOS_name to not return pointer to static area. - Binh Do * Changes to INSTALLATION file. - HN * Fix in HTMIME.c to recognize Content-location. - KW 1997-10-27 * Don't disable FORMs that have INPUTs with TYPE="file" or TYPE="range" since those fields may be optional and the rest of the FORM may be valid to submit. - FM * Updated links to www.w3.org in help files. - KW * Some changes for DOS compilation. - DK * Changes to INSTALLATION file. - HN * Tweaks of internal links stuff. - KW * Allow HEAD on URLs starting with LYNXIMGMAP:http by stripping the prefix. - KW * Reverted LYCheckForCSI() to previous incarnation. - KW 1997-10-26 * If compiled with -DDONT_TRACK_INTERNAL_LINKS, behavior with respect to internal links as in FM's code. - KW * Some chartrans tweaks. - KW 1997-10-25 * Changes to INSTALLATION file. - HN * Make temp file names conform to 8+3 naming convention for DOS, and give LYNX_TEMP_SPACE priority over TEMP and TMP for DOS. - DK * Create temp file names with '-' char as separator between pid and sequential number for non-8+3 systems, to prevent (unlikely) collision. - KW 1997-10-24 * Change in HTML.c to use the base (rather than current document, if the base differs) in all cases for form ACTIONs (i.e., if the ACTION is empty, or has a lone fragment, or an ACTION attribute is not included) as specified in the -07 to -09 Fielding URL drafts. - FM 1997-10-23 * Fixed a few typos and glued together a few URLs to make it easier for folk to cut and paste them, in the new INSTALLATION file. - LVW 1997-10-22 * Many locations of files changed, about_lynx/ directory and references to aboutfilepath removed, userdefs.h reorganized, changed README, new INSTALLATION file, doc changes, some doc files removed. - HN (Removed paragraph in README which doesn't apply yet, some files still not done - KW) * Patch to WWW/Library/djgpp/makefile - WS * Added entity names from HTML 4.0 draft to extra entities in HTMLDTD.c - KW * Understand lists in ACCEPT-CHARSET attributes. Added a list of forms to GridText structure (currently underused). - KW * Don't try to use box drawing chars in UTF-8 display mode. - KW * Changed chartrans mechanism (UCdomap.c, makeuctb.c) so that the "default" translation table is now used as a fallback for other translation tables. This also applies to display character sets which do not have a chartrans table file but are listed in LYCharSets.c. Changed syntax of table files (see src/chrtrans/README.format), added a keyword to disable using the fallback. Currently def7_uni (corresponding to "7 bit approximations" and the MIME charset "us-ascii") is used as default table, as before; but previously the default table didn't have any real meaning. Conceptually every translation table (unless it disables fallback) is extended as if it included all the replacements from the default table. Note that mappings for some characters in the default table file still differ from the old mappings given in LYCharSets.c, and what is displayed e.g., for umlaut characters may not be consistent, this still has to be sorted out. It may just have become more visible now. - KW * Tweaks to some replacement strings in def7_uni.tbl; contributions of more useful strings would be welcome... - KW * Removed mappings for invalid chars from some chartrans files, removed Ethiopic chars from iso01_uni.tbl. - KW * Some other corrections and tweaks for chartrans mechanisms. - KW 1997-10-21 * Fixed handling of Control-D (delete character under the cursor) in the line editor when the cursor is at the end of the line instead of on a character in the string being edited. - FM * revised tests for wait/waitpid/union-wait. - TD * correct/update handling of default prefix in CF_WITH_PATH macro, used for parsing --with-cfg-file and --with-lss-file options. - TD * add uninstall target to top-level makefile. - TD * remove redundant install options from $(INSTALL_DATA). - TD * add configure --with-lss-file option. * minor cleanup of gcc warnings, ifdefs. - TD 1997-10-20 * Mods in the CSO/PH gateway to set the anchor's safe flag to TRUE so the user need not be bothered with confirmation prompts on resubmissions of the search form. - FM * Tweaked the break point setting code in GridText.c for CJK di-bytes so that one is set after a recognized "ESC(" ISO 2022 escape sequence has been found. - FM 1997-10-16 * Tweaks to recognition of Japanese (better recognize x-euc-*), and to the mechanism in GridText.c keeping track of which encoding is used for Japanese. The state for this is now reset on explicit '\n' and '\r' received by the HText object in addition to space chars. - KW * Tweaks in HTTP.c to avoid access to uninitialized memory and pacify paranoid dbx. - KW * Try to more consistently remember the charset in effect for a document when going to SOURCE view, using new LYUC{Push,Pop}Assumed functions. Note that this is only in effect immediately when switching to SOURCE view; any later reloading while within SOURCE view (including those caused by RELOAD, RAW_TOGGLE and other keys, or by Options Screen changes) may still revert to the usual assumption about charset, which means a charset specified in a META tag may be forgotten at that point; this may be considered a feature... - KW * Refer to TagSoup and SortaSGML parsing (coined by FM), rather than "old" and "new" DTD. - KW * Made some of the changes concerning and removal and location changes of files proposed by HN. - KW * Restored LYCheckForCSI example function to its previous form, with a check added and comments added. - KW 1997-10-15 * Changed the order of display character set entries for the options menu popup. "ISO Latin 1" and its "DosLatin1 (cp850)" and "WinLatin1 (cp1252)" equivalents come first, then the system-based charsets (note that I changed "IBM PC character set" to "DosLatinUS (cp437)"), then the CJK and Vietnamese charsets, then "Other ISO Latin" (probably don't need that one any more), then the known ISO 8859-# charsets with their homologs (e.g, Dos and Win Cyrillic and KOI8-R) in groups, then "UNICODE UTF 8" and the Unicode mnemonic charsets. - FM * Various fixes for color style code, should prevent memory corruption. - KW * Some LYCharUtils.c cleanup. - KW * Added some of the changes from fotemods to SGML.c, especially handling of ‌ as allowing a line break, and conversion to UNICODE UTF-8. - KW * Mods in code handling mailcap lines, to avoid access to invalid memory. - KW 1997-10-12 * Added LYLeakSACopy and LYLeakSACat to LYLeaks.c. Running Lynx compiled with LY_FIND_LEAKS defined will now give the source locations where StrAllocCopy and StrAllocCat are used, if those create leaks. Added missing include of LYLeaks.h in LYCookie.c. - KW * More heavy tweaks in LYCharUtils.c. Associated changes in HTChunk.c (new functions), small change for -raw (in connection with attribute values) in SGML_character. LYCharUtils.c is still a work in progress... - KW * Tweaks to allow some chars as data input (0x97, 0x9b, 0xa0) if the current display character set seems to have those values as printable characters (by testing LYlowest_eightbit[]). - KW 1997-10-11 * Mods in HTFTP.c to recognize NetPresenz server (variation of AppleShare claiming to be Peter Lewis server?, try current ftp://www.unicode.org/), and to show server's identification from initial greeting on info screen for FTP URLs. Other cosmetic changes in HTFTP.c. - KW * Fixed various memory leaks. - KW * Some more minor cleanup tweaks for color style code. - KW * Avoid unnecessary pauses if TRACE is on and a Trace Log file is in use. - KW 1997-10-10 * Renamed lynx_help/keystroke_commands/ directory to lynx_help/keystrokes/ for the benefit of DOS, and changed references accordingly. - KW * Changed parsing of command line options for -lss file, it should now be used and override the default from userdefs.h or environment variables as advertised. - KW * More tweaks and cleanup in HText_SubmitForm. - KW * Code to recover from memory exhaustion, sometimes. The requests for dynamic memory which heuristically most often fail for lack of memory when rendering large documents are the calloc() calls in split_line. They are replaced by LY_check_calloc() which has the same calling conventions as calloc() but additionally checks if "enough" memory is available for the requested amount plus some margin and tries some remedial action if this is not the case. The additional safety margins are required to make it likely that other allocation requests in other places of the program won't fail before the next check. The actions which may be taken in order to avoid exiting if low memory is detected: (1) Try to unload cached documents (other than the one currently being loaded), until we seem to have enough memory. (2) If that fails (or there are no other documents cached in memory), try to fake a 'Z' key interruption; this will have the same effect as if the user had pressed 'Z' so it will only detected if some other part of the program tests HTCheckForInterrupt() and acts on it. (3) If this seems not to be sufficient to stop loading, halt appending of normal text data to the document structure (A warning *** MEMORY EXHAUSTED *** is appended instead). - KW * A tweak of color style memory allocation. - KW 1997-10-09 * Some more tweaks from FM for VMS build - KW * For DJGPP compilation, src/chrtrans/makefile.dos - WS (Bill Schiavo ) * Some cleanup in Hext_SubmitForm (needs more). Start using ACCEPT-CHARSET (doesn't recognize list yet, only recognized if on the INPUT field that causes submission). - KW * Added two test files for iso-8859-2 charset. - KW * Tweaks in LYMainLoop.c for various keys that page up, to better preserve keep the current link selected if possible and to correct a glitch with UP_LINK. - KW * Reorder text/html and text/plain to the beginning of HTPresentations list, so they will be found more quickly and will appear at the beginning of Accept request header fields. - KW 1997-10-08 * add logic to implement mouse button 2 "previous document" for ncurses configuration. - TD * add dependencies on 'lynx' to top-level 'all' and 'install' rules in makefile.in - TD * add osf4.0 to special case compiler options using -g3 in place of -O -g, for Heikki Kantola . - TD * correct some of the uninitialized-variable warnings. - TD * Removed the compilation of the old libwww-FM HTAlert.c module for VMS, as previously removed for Unix. - FM * Added comments and tweaks of build.com, build-slang.com and libmake.com, (and a complementary tweak of tcp.h) to make more clear how compiler definitions and compiler and linker options can be added. - FM 1997-10-07 * Changed PROBLEMS file for ^Z and for "forgetting emphasis of link text" problem (which shouldn't occur any more). - KW 1997-10-05 * Changed SGML.c parsing of unrecognized and invalid start tags. If the '<' character in HTML is followed by a 7-bit letter character, we now do tag parsing even if the element name is not recognized, instead of going to 'S_junk_tag' mode, so that a '>' embedded in an attribute value (which may also be part of a CJK character's encoding) will not prematurely end the tag. (But "soft double-quotes parsing" mode is recognized.) Treat a '<' followed by most other 7-bit chars as data, i.e., recover it and the following char. - KW 1997-10-04 * Corrected check for empty string at beginning of LYUnEscapeEntities. - KW * Squeezed option for "Assume charset if unknown:" into Options screen. It is selected with a control char (^A), is only available in Advanced User mode, and the value is currently not saved into .lynxrc with '>', i.e. for a persistent change lynx.cfg has to be modified (or use an alias or, for DOS, a batch file to call lynx with -assume_charset=...). The interaction with the Raw M(O)de setting may be confusing (or confused :) ), and it is possible to set nonsensical values that have no effect. - KW * Changed order and criteria of transformation attempts in HTPlain.c to be more like SGML.c. For plain text KOI8-R would use 8-bit stripping to early. HTPlain_write still is too different from SGML_character... - KW * Reinstate the slash after special interpretation of /~ at beginning of file URL path for DOSPATH - DK * Changed SGML_character to not try to convert attribute values to UTF-8 if HTCJK is in effect (arrggh!) - KW * Changed effect of -raw / '@' for CJK display character sets: it now toggles the effective charset assumption between that specified with ASSUME_CHARSET or -assume_charset (or iso-8859-1 if none given) and the charset that corresponds to the selected display character set, as for non-CJK. An exception is made if both charsets are CJK charsets, so that the toggle will still have the function of toggling CJK mode on and off. Explicitly specifying a CJK charset as assumed is currently not very useful, since we cannot translate from that to other character sets. - KW * Oh, by the way: compilation without defining EXP_CHARTRANS won't work any more. Regard #ifdef EXP_CHARTRANS as some strange kind of comment for now, until it goes away. - KW * Write comment at top of .lynxrc file to make clear that it is different from lynx.cfg, suggested by LWV. - KW 1997-09-30 * Changed order of display character sets on options screen a bit, and corrected charset listings in lynx.cfg and userdefs.h files - KW * Added comment on lynx.lss in userdefs.h, moved it. - KW 1997-09-27 * Made TRACE messages which correspond to BAD_HTML_USE_TRACE warnings stand out more by decorating them with ***** characters, so that users who follow the BAD_HTML_USE_TRACE advice can more easily find the relevant messages. - KW * Reworked LYUnEscapeEntities() while loop into a (hopefully) more understandable and consistent state-based switch, and integrated LYUnEscapeToLatinOne functionality. - KW * Non-ASCII characters in URLs and similar strings encountered in the HTML.c processing (previously handled by LYUnEscapeToLatinOne) are now generally URL-encoded, instead of doing this just for 8-bit characters which are the result of entity expansion. There is no clear standard definition what non-ASCII characters in URLs in HTML attributes (HREF etc.) actually mean, especially if the transmission character encoding is something else than iso-8859-1. Leaving them as the raw byte values as received runs against the HTML i18n view that the transmission encoding is distinct from the document character set and has to be (conceptually at least) decoded before SGML parsing. It also won't work in general for entities that expand to to Unicode characters which cannot be expressed at all in the currently effective (or assumed) charset, and would lead to problems with displaying URLs on the statusline or representing them in auxiliary screens or bookmark files. So now we try to first transform to the document charset "as usual" (undo the transmission encoding), then translate the Unicode value into a sequence of (one or more) byte values which are then URL-encoded. Since character values > 255 cannot be expressed in a byte, always use UTF-8 for them. It may not be what the author intended, but should be at least consistent between internal (fragment) HREFs and NAME (or ID) attributes in the same document or set of documents. Since this is dealing with bytes currently disallowed in URLs, it falls under error recovery. But the handling should be roughly in line with current Internet Drafts (draft-masinter-url-i18n-00.txt, draft-duerst-query-i18n-00.txt, draft-ietf-ftpext-intl-ftp-02.txt). For character values < 256 (but > 127) this isn't currently consistently done, we may still be URL-escaping the byte value without UTF-8 encoding. - KW 1997-09-25 * Integrated the attribute and form field translation stuff from separate code line. This is still a rough attempt. Needs testing and refinement, for various character set situations, expect glitches and bugs. - KW 1997-09-24 * Removed the compilations of the old libwww-FM HTInit.c and HTFWriter.c modules for VMS, as previously removed for Unix. - FM * Added other changes from FM's feedback for VMS. - KW * Fixed a bug in the SGML unescaping of OPTION values. - FM * Fixed a bug in the SGML unescaping of TEXTAREA text. - KW 1997-09-23 * Fixed file 'E'dit command from dired directory listing, which I had broken in 2.7.1ac-0.69. - KW * Added -width=NUMBER option to specify line width for non-interactive formatting (-dump output). Also used by -preparsed source mode. - KW * Changed suffix mapping mechanism to deal with "real" content-encoding parameters (gzip, compress) in addition to 7bit, 8bit, and binary. Added a new field for brief descriptive text, so that the MIME type doesn't have to be abused for this purpose, but left most settings in HTInit.c unchanged for now. - KW * Changes in HTFWriter.c and HTFile.c so that we don't forget the file type and encoding information we already have for a compressed file when passing control to HTLoadFile (possibly after uncompression). - KW * Introduced FNAMES_8_3 symbol (for DOS 8+3 file system), and HTML_SUFFIX which should be defined as ".htm" for DOS and ".html" otherwise. Various tweaks to deal with systems with 8+3 restricted filenames, in general and in connection with uncompression. - KW * Applied diffs from FM for VMS, compared with recent fotemods. - KW 1997-09-21 * Use 0.01 rather than 0.001 as the q value for inserted iso-8859-1 and us-ascii charset parameters in Accept-Charset headers. - FM * Added internal buffering of I.value elements in HTML_start_element() of HTML.c. - FM 1997-09-20 * Show HTTP header for all 2xx status codes (including 204-206) if requested with HEAD or -head. - KW 1997-09-19 * Modified the Unix "strange character" filter in exec_ok() of LYGetFile.c to allow '+', '&' and '=' characters. - FM * minor ifdef/declaration fixes required to build on IRIX 6.2, SunOS (K&R) and VAX C. - TD 1997-09-18 * Try again after interrupted waitpid() in LYLoadCGI(), as in LYExecv() - KW * Tweak in LYKeymap.c to bypass the isalpha() test for non-ASCII values, including values > 255 mapped to arrow keys, etc., when generating the 'k'eymap display. - KW * Changes to prevent many (but not all) compiler warnings about `const'. Not that this is different from TD's recent changes. Also some other minor tweaks relating to (gcc) compiler warnings. - KW 1997-09-17 * Mods in GridText.c to use HTEscapeSP() for space-to-plus conversions of name fields, and not just value fields, in submitted form content. Note that some CGI scripts may still be doing plus-to-space restorations only for value fields, and only hex unescaping for name fields, while others may not be hex unescaping the name fields, so we may as well follow the specs fully (and cross our fingers :). - KW & FM * merge symbols 'has_color' and 'lynx_has_color' to simplify ifdef's, and correct a problem building color-style configuration. - TD * add configure symbol for ifdef'ing presence of waitpid, which was stopping build on HP-UX. - TD * correct the symbol that is defined by CF_SIZECHANGE test, noted by failure to build SCO version after making an include for ifdef'd according to configure test. - TD * corrected check for broken (pre-1.9.9g) ncurses versions so that they can build with color support. - TD * cache state of CF_NETLIBS so that rerunning configure will yield the same results for network libraries. - TD * Add configure test for HP-UX -lHcurses library. - TD * Minor adjustments to names of configure-script variables, to make them the same as other programs (e.g., tin-unoff). - TD 1997-09-16 * Added code to JKT's and KW's mods in LYPrint.c to also handle VMS: set the document's title as a logical on VMS (can be accessed via f$trnlnm("LYNX_PRINT_TITLE") in scripts). - FM * Smaller cleanups here and there - FM & KW 97-09-15 * Recover from bad sequence "<=" in SGML.c by outputting those characters literally. - KW * Try again after interrupted waitpid() in LYExecv(). - JED * Some tweaks in new DTD, some doc typo corrections. - KW 97-09-13 * Changes in LYConvertToURL() for better handling of the case when the pathname of the current directory (when Lynx is invoked) contains unusual, URL-reserved characters (especially '#') and we test for a relative but URL-encoded path. (no change for VMS) - KW 97-09-13 * Changes in LYStrings.c to enable keypad() processing for non-NCURSES if HAVE_KEYPAD is defined. - KW 97-09-12 * Correct mismatch/omission of HAVE_TYPE_UNIONWAIT symbol from change for wait vs waitpid. - TD 97-09-11 * Tweaks in HTMLGen.c for display of special characters and line breaking with -preparsed. - KW * Got rid of use of underlining together with reverse for non-current links for (n)curses if color is not used. - KW * Small HTMLDTD.c changes for new parsing. - KW * Change in SGML.c to always recognize SOFT HYPHEN when given as ­. - KW 97-09-10 * Modify CF_WITH_PATH to allow substitution of --libdir and other configure options pathnames, e.g., for --with-cfg-file. - TD * Include lynx_cfg.h in userdefs.h to resolve redefinition reported by AC. - TD * Remove Ultrix/sony_news -specific ifdef's for curses headers, replace with configure-tests. - TD * Remove AIX/NeXT/sony_news -specific ifdef's for wait vs waitpid, replace with configure-tests. - TD * Add/use CF_HELP_MESSAGE macro to visually break down the very long help message into sections. - TD * Move the development options to the beginning of the configure script, to facilitate adjustment of compiler options (especially for Ultrix) to reduce the number of spurious warnings from miscombining -g/-O options. - TD * Correct misplaced assignment to cf_cv_ncurses_header in configure.in, which caused misconfigure against vendor curses, reported by Hynek Med (Ultrix) and Roger Hill (HP-UX 10.x). - TD 1997-09-09 * Added arguments to the multinet_htons() and multinet_ntohs() declarations in tcp.h. - FM * Tweak of the this_MIMEcharset[] and this_LYNXcharset[] checks in makeuctb.c. - FM * Replaced the index() and bcopy() with strchr() and memcpy() in the putenv() for NeXT in LYUtils.c. - FM 1997-09-08 * Added a -preparsed flag, to be used with -source or with SOURCE view. When invoked with this flag, show HTML text as it is output from the SGML parsing stage, regenerated via HTMLGen.c functions, rather than the usual more raw rendering (in SOURCE view) or the original byte stream (as with the -source flag, possibly with BASE information prepended). Lynx will attempt to wrap the text to screen width (or 80 cols for the -source flag), but will not always succeed. Unrecognized tags and attributes as well as comments are dropped, attributes reordered, missing end tags supplied, abd other changes made, showing how Lynx internally treats the document's structure. This is probably most useful for debugging (of either Lynx's parsing or of HTML documents, although a real validator should be used for the latter!). It can also be instructive to switch the DTD parsing mode (with the ^V key) while viewing preparsed source. Note that this doesn't work so well now with character translations and entity expansion don't work well now, showing some of the same problems which appear for rendered documents and dropping some characters. Making those problems of parsing more directly visible was one of the motivations for this flag. Also note that META tags which may contain charset info are never interpreted when using -source (with or without the -preparsed flag), but when interactively switching to SOURCE view, Lynx MAY remember that charset info from the previous non-SOURCE full parsing (again this applies with or without -preparsed); the INFO screen should always show the assumption currently in effect. - KW * Updated some HTMLGenerator functions to use line wrapping logic found in newer libwww versions, and further mods in HTMLGen.c. - KW * Tweaks to use of chartrans stages, should now better preserve charset info from META tags even in compressed HTML files. - KW * Fixed a problem with LYCheckForCSI which could lead to crashes. - KW 1997-09-06 * Modifications to allow the Lynx lynxcgi feature to process PATH_INFO in addition to QUERY_STRINGS in URLs. DOCUMENT_ROOT may be set by the user in lynx.cfg and is then passed as well. If DOCUMENT_ROOT is set, then PATH_TRANSLATED is calculated and passed as well. - J. Kevin Ternes * Changes to LYPrint.c to put the variable LYNX_PRINT_TITLE into the system()'ed environment for use by post-Lynx, pre-lp formatting scripts. LYNX_PRINT_TITLE is simply generated by calling HText_GetTitle(). - JKT * Corrections to JKT's mods (to avoid memory leaks etc.). Avoid unnecessary stat() calls. Other fixes in LYCgi.c. Make setting of HTTP_ACCEPT_CHARSET actually work. Now URL-unescape the path in lynxcgi URLs before doing anything with it. Better logic for when to check for restrictions, the previous checking for !reloading could be easily circumvented. Also check whether the full path including a possible PATH_INFO passes the restrictions test by exec_ok(), to catch "../" segments. Don't try to handle a non-executable lynxcgi URL as a file URL if there was a PATH_INFO part, it gets too confusing. Strip '#' fragments from the lynxcgi path, but leave the interpretation of '#' characters after a '?' as before so that they are still regarded as part of the query or search string. If PATHINFO is present, unescaped '#' characters in it will still be rejected by exec_ok(). - KW * added a bit of text about running ./configure to INSTALLATION file. - David Combs & KW * Added a translation table for Vietnamese (VISCII), and associated code changes. See the file viscii_uni.tbl. - KW 1997-09-05 * Mods in LYGetFile.c to retain a fragment on redirection if the redirection URL does not include a fragment. - FM 97-09-04 * Correct ifdef'ing for getbkgd function calls. - TD * Correct ifdef'ing for remaining inline chmod calls. - TD * Consolidate various logic for opening secure files into utility functions, correcting portability problems as well. - TD * Add configure option --with-cfg-file to override default location of Lynx configuration file (requested by Laura Eaves). - TD * Strip -g option from CFLAGS for the non-debug version of Ultrix configuration (requested by Hynek Med). - TD * Add configure test for HP "color" curses (noting that this cannot possibly comply with XPG4 due to naming conventions, we'll expect other problems with it). - TD * Add checks to configure test for COLOR_CURSES to work around bug report for HP-UX. - TD * Don't cache configure options except where essential (e.g., the setting of 'screen'). - TD * Change some configure options to disable/enable for consistency. - TD 1997-09-03 * Tweaks in HTML_put_string() and LYUnEscapeEntities() to deal with line- breaks within attributes more consistently, and more independently of which convention is used (CRLF, CR, or LF). - KW * Tweaks to prevent a few compiler warnings. - KW * Tweaks of the iso06_uni.tbl and iso08_uni.tbl files now compiled in. Note that a replacement character or string to replace invalid or unrecognized characters can be defined by mapping the Unicode value U+FFFD, which is done here (for testing, and because these two charsets have a lot of undefined code points). Also some mods in default 7-bit table for some Hebrew characters and points. - KW 1997-09-02 * Mods to include "ISO 8859-6 Arabic" and "ISO 8859-8 Hebrew" in the display character set options (Note, though, that Lynx presently has no code to deal overtly with non-Latin directionalities.). - DK & FM 1997-08-31 * Mod of HTMIME.c to ignore any Content-Encoding header with a value of "identity" (case insensitive). Shouldn't happen, but better safe than sorry. - FM 1997-08-28 * Correct a quoting error in CF_RECHECK_FUNC macro. - TD 1997-08-27 * Further refine/correct configure macros for finding network and curses libraries, adding CF_RECHECK_FUNC to simplify CF_NETLIBS. - TD * Rename #define for NCURSESHEADER to HAVE_NCURSES_H, for consistency. - TD * Add-back test for -lm to support slang shared libraries. - TD * Modify test for disentangling ncurses library from mytinfo on FreeBSD to workaround linker limitation. - AC 1997-08-22 * Fixed typo in LYReadCFG.c when checking for a NOVICE mode default. - JN (Note that this and other lynx.cfg defaults which have 'o'ptions settings are overridden when the 'o'ptions are saved to the RC file. - FM) 1997-08-21 * Tweak to LYHistory.c to better remember last position on page. - KW * Eliminated two more MIME types (application/html and text/x-sgml) from the Accept header generated by default by setting the q-value to 2.0, since there are more standard alternatives for these names. - KW * Lower maximum length for generated Accept header lines from 1000 to 252, to accommodate an incompetent Windows HTTP server. - KW * Changed order of some functions in LYCharUtils.c (no other change there yet). - KW 1997-08-20 * Modify top-level install rule to depend on 'all'. - TD * Suppress check for ANSI compiler when we are using gcc. - TD * Use -g3 option in place of -O -g for Ultrix compiler --debug configuration (request by Hynek Med). - TD * Drop "-lm" library from slang configuration, since it does not seem to be used. - TD * Add configure --includedir and --oldincludedir values to header search path for ncurses and slang. - TD * Modify configure checks for ncurses and slang libraries to generate -L options as required, using new macros CF_FIND_LIBRARY and CF_LIBRARY_PATH. - TD * Add substitution for CPP in src/makefile.in so that .c.i rule works. - TD * Add configure test for lint program. - TD * Add "make depend" target to generated makefiles. This is intended only for use in editing/developing, since many of the header dependencies in chrtrans are generated during the build process and cannot be determined by makedepend in advance. - TD * Add configure option --with-zlib. - TD 1997-08-19 * Tweak of highlight() in LYUtils.c to ensure that split link names with a soft hyphen are handled identically for slang, VMS curses and Unix curses when such links are made current. - FM 1997-08-17 * Use 0.01 rather than 0.001 as the q value for the global wildcard in Accept headers. - FM * Put up correct makefile for dos port (oops) - WB 1997-08-16 * Mini tweaks for the win-dos ports. One fix for the pull down boxes and the rest mostly maintenance. - WB * Fixed a bug in LYNews.c which caused overwriting of the first three characters in the Subject for a followup. - FM 1997-08-15 * Hack in highlight() to preserve a '-' character at the end of line within anchor text, which can result from splitting at the position of a ­ or or SOFT HYPHEN character. - KW * Tweaks in print_wwwfile_to_fd print_crawl_to_fd to output a soft hyphen character if it is present at the end of a line. For -dump, a raw ISO 8859 SOFT HYPHEN character may be written if the Display Character Set (default from lynx.cfg or saved value in .lynxrc) is an ISO 8859 character set, but this may be overridden with the -raw toggle. Otherwise represent soft hyphen with '-' as usual. - KW * Modified the news gateway to try XGTITLE for wildcarded lists of available newsgroups (e.g., news:bionet.* for the bionet hierarchy, or news:* for all of its served newsgroups). If that fails, Lynx retries with the old behavior of using LIST NEWSGROUPS and parsing the reply itself for the desired groups. Note that LIST NEWSGROUPS can take a wildcarded argument for some nntp servers, but not all, so we don't risk it. - FM * Fixed a bug in HTHandleAuthInfo() of yesterday's HTNews.c which could yield an infinite while() loop. - FM * Various tweaks in HTNews.c to HTHandleAuthInfo() and elsewhere, to keep connections open more often in some common cases of non-fatal errors, and also avoid trying to use the network socket after some recognized case of closing by the server. Only based on some testing with INN's nnrpd, not on any written specs. - KW 1997-08-14 * Added nntp authorization (AUTHINFO) handling to the news gateway. - FM * Added a "Loading cfg file '%s'." trace message in LYMain.c to indicate the absolute path of the configuration (lynx.cfg) file which was used at startup (if Lynx is invoked with the -trace command line switch). - FM * Added code in HTFWriter.c to avoid calling HTLoadFile() on the temporary file which results from decompression of a temporary file created by HTCompressed(), if this would just result in making a copy of the file and then invoking an external viewer. Instead the viewer command is now invoked directly from the HTFWriter_free of the HTCompressed() stream after decompression. - KW * Added code in HTFWriter.c, HTFile.c, and HTFormat.c to support reading of gzipped local files directly, using functions from the zlib library. Note that gzipped files from remote servers are still first copied to a temporary file before lynx can process them further, and an external GZIP_PATH command is still needed at least for passing such files to an external viewer, as well as for various DIRED_SUPPORT File menu functions. To activate this code, the symbol USE_ZLIB has to be defined, it is currently not set by the auto-config script. The zlib library may be already installed on your system (probably called libz.a or libz.so.1 or similar, the required header files are zlib.h and zconf.h), otherwise it is available through , it appears to support all platforms for which lynx is available (including VMS, DOS, MS Win32). Note that this library would probably also be needed if in the future support for the HTTP/1.1 "deflate" content-coding is added. - KW * Don't send MIME types in Accept headers whose q values are outside of the allowed range 0.0 <= q <= 1.0 - KW * Tweaks in HTInit.c to use the official names for image/png and image/tiff, but still support the image/x-* forms. - KW 1997-08-13 * Tweaks of LYConvertToURL() in LYUtils.c and HTParseInet() in HTTCP.c to deal more coherently with 'z'ap attempts during gethostbyname() calls. - FM * Tweaks of split_line() and HText_endAppend() in GridText.c to handle trimming of spaces from the tails of link names more effectively. - FM * Expanded the OL nesting depth and type counters to track up to 12 list depths before punting to the lowest negative number. Note that the indentations still are limited to 6 nested depths, so use the TYPE attribute to distinguish OLs with deeper nestings. - FM 1997-08-12 * Mods of LYMainLoop.c to maintain treatment of a local startfile as text/html source when it does not have a suffix mapped to that MIME type and the -force_html switch was used. - FM * Added .phtml to the default suffix mappings for text/html. - FM * Mods of LYCurses.c to avoid using /dev/tty arbitrarily for stdin on Unix when compiling with slang versions greater than 0.99-35, based on JED's suggestion to lynx-dev. - FM * Tweaks of HTCheckFnameForCompression() in GridText.c to avoid warnings from some compilers. - FM 1997-08-09 * Changed the code of 1997-08-06 which modifies suggested filenames for a 'D'ownload to be more cautious: don't remove a '.gz', '.Z' etc. suffix if there is no header indication that we have a compressed file. Not all servers and gateways (including the internal FTP gateway) detect and label compressed content reliably. - KW 1997-08-08 * Mods of HTTP.c so that download requests are converted to presentation requests for interactive users, and traversal requests are converted to cancels, when servers return non-success statuses with bodies which should be displayed to interactive users. - FM * Added the "DosCyrillic (cp866)" display character set to the chartrans support, and tweaked the other Cyrillic charset tables. - AAC & KW * Tweaked MULTI_SUFFIX support in HTFile.c, so that it now somewhat works. Dunno whether it's useful for anybody. - KW 1997-08-07 * Tweaks of yesterdays mods in GridText.c. - FM * Correct storage class of variables in UCMap.h, from -warn-common linker option. - TD * Refine configure tests for acs_map, ttytype to accommodate broken linker on FreeBSD 2.1.5 - TD * Modify README.configure to indicate the associated definitions for each configure option, as suggested by Klaus Weide. - TD * Correct duplicate declaration of Current_Attr, which Linux linker ignores (reported by Hynek Med). - TD * Add -G7 option to Ultrix compiler options (request by Hynek Med ). - TD * Add include for to utmp configure test (reported by Andrey A. Chernov). - TD * Add check for FreeBSD library mytinfo (reported by Andrey A. Chernov ). - TD * Modify ./makefile.in so that 'all', the default target, will build the Lynx executable. The old 'all' target is retained as "make help". - TD * Modify src/makefile.in to allow development compiles within the src directory. - TD * Mask spaces in the bkgd (background attribute) calls for color curses to make the color-style code work better with SVr4 curses. - TD * Change workaround for 8-bit acs characters by adding to the initialization a loop forcing the entries of acs_map[] to 8-bits. - TD * Many minor tweaks for the DJGPP version by DK - WB * A rename of about_lynx_dev.html to lynx_dev.html for 8.3 systems - WB 1997-08-06 * Modified HTMIME.c and LYCharUtils.c so that setting of suggested filenames via a filename=value pair in Content-Disposition headers and META elements is not restricted to the file disposition type. - FM * Mods in GridText.c, LYGetFile.c and HTAnchor.c so that suggested filenames will have appropriate suffixes when 'd'ownloading, based on whether or not the file is gzipped or Unix compressed. - FM 1997-08-05 * Mods of the lead relative symbolic element stripping for http/https URLs in cases for which they would persist when resolved to an absolute URL. The latest URL draft is ambiguous about whether this should be considered an error, and leaves the handling of it up to the UA. So we now get rid of all lead relative symbolic elements from the resolved http/https URLs, but no others, and still issue a Bad Partial Reference statusline message. - FM * Tweaks of title handling in LYMainLoop.c and LYShowInfo.c so that the known title, or link name associated with ACTIVATE-ion, form submission, or a HEAD request, will be used in the INFO ('=') display. - FM & KW 1997-08-04 * Fixed header parsing in HTMIME.c so that "Safe:" is recognized. - KW * Changed confirmation prompts for HEAD (']') commands acting on a POST document, to reflect the fact that the POST request body will not actually be submitted in a HEAD request. - KW * Reset LYCancelDownload to FALSE at top of getfile(), to prevent delayed effect which can otherwise occur. - KW * Block URLs with port numbers outside the range of valid numbers in getfile(). - KW 1997-08-03 * Changed the NSL_FORK code in HTTCP.c so that the gethostbyname() call is retried without forking if the child process exits without returning enough data. Also added trace output, to show whether something unusual has happened to the child process. - KW * The IETF has indicated intent to adopt KW's "status 307" proposal for dealing with the status 302 problems, so HTTP.c and HTAlert.c implement that now. The 302 status is "General (temporary) Redirection" which can be handled as 303 at the UA's discretion, so we do that in all cases, rather than prompting the user whether to do that when the 302 is for a POST submission. The 307 (and 305) for POST submissions invokes a prompt whether to P)roceed or C)ancel, without the Use G)ET option. The 301 is treated as permanent, normally, but for POST submissions still is treated as temporary and invokes a prompt which includes the Use G)ET option, because scripts written to empirical behavior may still be expecting that (it's virtually never encountered in redirections of POSTs, though, because the document containing the form typically is redirected, so the user only sees the form if a local copy has been made, and it would be best to C)ancel and get a new local copy of the document from the correct http/https URL, to serve as a BASE for the form's ACTION). - FM * Changed the typedef for HTCoord in HTStyle.h from float to int, for significant speedup of rendering on machines without floating-point hardware based on DW's, KW's, BL's analyses. Note that this should be taken into account when/if external style sheet support is added for page formatting (e.g., for optimum handling by speech synthesizers and braille interfaces), beyond the current emphasis on colorizing. - FM 1997-08-02 * The cookie pre-draft has been adopted as an IETF ID: ftp://ds.internic.net/internet-drafts/draft-ietf-http-state-man-mec-03.txt so the code for combining Set-Cookie and Set-Cookie2 headers has been eliminated in LYCookie.c (see mods for 1997-07-31). - FM 1997-08-01 * Fixed typos in LYCookie.c. - FM 1997-07-31 * Mods of the cookie handling based on the latest pre-draft. Add a Cookie2: $Version="1" header in any requests that use historical cookies in the Cookie: request header, so that modern servers will use Set-Cookie2 headers with modern cookies in their subsequent replies. Limit the scheme for commentURLs to http or https, not just to network servers (e.g., gopher is now barred too). Include a $Port attribute in modern Cookie request headers if it was set via a server's reply header. The pre-draft indicates intention to drop the requirement to combine Set-Cookie2 and Set-Cookie headers if both types were received. We're still combining them, but based on bona fide one-to-one correspondence checks (which were not specified in the earlier draft), so that's OK, and we'll get rid of that needless overhead if the current pre-draft holds up and becomes an official IETF draft. - FM * Added a -nocc command line switch for disabling the Cc: prompt for self copies of mailings. Note that this does not disable any CCs that have been incorporated within a mailto URL or form ACTION. - FM * Added a NO_FORCED_CORE_DUMP compilation (userdefs.h) and configuration (lynx.cfg) symbol, normally set FALSE, which if changed to TRUE will block forced core dumps on Unix via abort() calls on fatal errors or assert() calls on potentially fatal error checks. Also added a -core command line switch for toggling the default. - FM * Updated the documentation and 'h'elp concerning the new symbol and switches. - FM 1997-07-30 * Added workaround for curses with broken handling of 8-bit acs characters (which may be used for drawing of popup boxes) to LYCurses.h. This fixes box characters and attributes/colors for solaris curses used with linux console as terminal. Currently it is not automatically enabled or configured, but can be enabled by -DBROKEN_CURSES_8BIT_ACS. - KW * Mod in HTFWriter.c to change the statusline appropriately when an uncompression has completed. - FM * Fixed code in LYOptions.c for the case when NEVER_ALLOW_REMOTE_EXEC was not defined and ALLOW_USERS_TO_CHANGE_EXEC_WITHIN_OPTIONS was defined. - KW 1997-07-28 * Avoid traversing the full list of anchors each time when HText_endAnchor() is called with a non-zero anchor number, if that number corresponds to the last anchor added to the HText structure. It is is the most common case that HText_endAnchor() refers to the last anchor, and the only case that could be handled correctly before FM's changes of 1997-05-13. Avoiding the loop over the list of anchor can improve loading time significantly, especially for large files with thousands of anchors. - KW * Add progress display and 'z'appability for loading of local files. They are activated only after a few hundred k bytes have been read. Added define for HT_PARTIAL_CONTENT to HTUtils.h, used in above. (The WWW Library 5.x uses HTTP-ish status codes like this throughout. I find it much less confusing than -29998 and so on, and there's no conflict in this case. - KW * Minor LYUtils.c tweaks. - KW 1997-07-27 * Changed code for checks in LYGetFile.c for URL schemes which should be rejected when received as redirections, added checks for more schemes. - FM * Rename top-level Makefile to Makefile.old (it's obsolete) - TD * Reduce top-level targets to one, 'lynx' - TD * Move comments describing DirEd to README.configure from makefile.in, leaving only the definitions that haven't been integrated yet. - TD * Add configure options to enable/disable DirEd and its associated modes. - TD * Add configure option to enable/disable char-trans support. - TD * Correct sense of autoconf'd symbol for size-change. - TD * Accommodate systems with obsolete ncurses.h in configure tests. - TD 1997-07-26 * Changed the variable hline in LYUtils.c to hLine, so as not to conflict with a curses function or macro. - FM * Fixed an esoteric glitch in highlight() of LYUtils.c which could cause the last character of a current link to receive WHEREIS search target emphasis if it happened to be the first character of the target (though perfection is unattainable, we should strive to achieve it :). - FM * Changed the default value for STRIP_DOTDOT_URLS (lynx.cfg) to TRUE. - KW * Made some of the additional checks introduced yesterday in LYMainLoop.c for invalid links to internal dired URLs more strict, as they probably were intended. - KW * Added checks for some internal URL types, which should be rejected if received in a server redirection, to LYGetFile.c. Maybe more types should be added to the list. - KW 1997-07-25 * Map charsets of the form "ibmNNN<...>" to "cpNNN<...>" in UCdomap.c if not already recognized. Also recognize "windows-1252". - KW * Compared the handling of 4-way "show color (&)" in the 'o'ptions menu against FM's implementation, and made some changes (mostly in formatting, variable and constant names and usage, ordering of statements) to aid further comparison. The logic is still messy and needs further cleanup and simplification, but seems to do what it should. Note that this also handles color-curses, in a (hopefully) reasonable way. Command line flags -nocolor and (if using slang) -color override a preference found in the RC file. See updated "Lynx Users Guide" file and the comments written to the RC file. Documentation changes adapted from FM's changes. - KW * Mods of the DIRED_SUPPORT to check the actual URLs of temporary files rather than just their titles when filtering for spoofing attempts via external files with internal URLs. Also recast the PRIVATE my_spawn() to a PUBLIC LYExecv(), so that it can be used by any module (though presently it's still used only by LYLocal.c functions). - FM * Tweaks of LYCharUtils.c to handle Set-Cookie HTTP-EQUIVs in META elements without risking crashes in LYCookie.c or HTParse.c. - FM 1997-07-24 * Made "show color" option a 4-way choice, if compiled with color support and if saving of options to a .lynxrc file is allowed. - KW * Made changing file permissions with DIRED_SUPPORT work again; one of the recently added checks in LYMainLoop.c was too restrictive. Added protection to permit_location in LYLocal.c, similar to the changes of 1997-06-24 to LYDownload.c. - KW * Generate CANCELLED message when editing of a string value on the Options Screen has been cancelled (typically with ^G), instead of an inappropriate VALUE_ACCEPTED statusline. - KW 1997-07-23 * Tweaks of the strtok() calls for textarea values in HTML.c, so that they will never be repeated after NULL has been returned, and thus won't cause linux-alpha to crash. - FM * Make -nocolor command line flag work if compiled with slang. Note that -nocolor is strong, it overrides all other reasons that might otherwise turn color on. - KW * Tweaks in LYCurses.c to ensure that slang library and Lynx flags for whether color support is on stay in register. - FM * Change the default in userdefs.h for SHOW_COLOR to FALSE for USE_SLANG. Because of the different logic used for LYShowColor in the curses code vs. slang code, setting SHOW_COLOR to TRUE makes it difficult to invoke a binary compiled with slang so that color is not used on startup (except by using -nocolor). Note that reading show_color from .lynxrc is still commented out. - KW * There is now a "trailing comment" handler in LYReadCFG.c. It treats '#' as a comment token only if it is somewhere after the last colon for the lynx.cfg entry and is preceded by a space or tab. - FM * Added TT to the Utterly Tag and Attribute Soup group of HTML elements. - FM (applies only to "old" DTD in this code set, as usual - KW) 1997-07-22 * Modify curses popups in LYForms.c and LYOptions.c to use background color from main window - TD * Ifdef'd out the logic that saves "show color" to .lynxrc, since it is deemed to be confusing to users - TD * Merged FM's changes to the "show color (&)" toggle to save to .lynxrc, support slang, update online documentation - TD * Add error message to show actual context in error-checking for color parsing suggested by Filip M Gieszczykiewicz - TD * Check for/suppress duplicate -lsocket in network library configure - TD * Remove HP-UX snake2/snake3 targets from makefile.in - TD * Add configure script case for 'sequent', drop ptx, ptx2 targets from makefile.in - TD * Add logic to configure script handling of slang to suppress spurious -Ipredefined when header location is given in $CFLAGS - TD 1997-07-21 * Check for lynx_uses_color and LYShowColor in lynx_start_status_color() and lynx_stop_status_color() of LYCurses.c so that the statusline will appear reverse (or otherwise highlighted if the terminal doesn't support reverse), if color support is compiled in but not currently used. - KW * Added comments on color usage to lynx.cfg. - KW 1997-07-20 * Added command-line option "-nocolor" to disable color on terminals that would otherwise support it. Added options toggle for colors, tested with ncurses. - TD * Remove option value from configure option "--with-color-styles". - TD * Correct background of popups in LYOptions.c - TD * Add configure check for compiler options to enable prototypes - TD * Remove IRIX "-cckr" compiler flags. - TD * Correct whitespace as per LPS: LYCurses.c, LYOptions.c - TD * Tweaks of LYMainLoop.c in the code controlling how the document is reloaded due to any changes in the 'o'ption menu which require a new rendering of the document (but still without forcing a proxy cache refresh when that is inappropriate; see the 1997-05-26 mods). - FM 1997-07-18 * Mods in LYexit.c and LYCurses.c to ensure restoration of stderr (if it was changed for output to the trace log) on all exits. - BRL & FM * Include an unsigned char typecast in the HASH_FUNCTION definition for HTAtom.c - CK * Modified change to is_url() of 1997-07-13 to check for the slash after stripping any lead space characters. - FM 1997-07-16 * Added the Windows Cyrillic display character set. - AAC (Andrey A. Chernov ) 1997-07-15 * Added support for a commentURL attribute in cookies. This attribute is under discussion in the HTTP-WG and not presently in the draft (see the 1997-07-09 mods for the draft's URL), but would be extremely advantageous for multi-lingual and non-English-speaking sites because the comment attribute can have only ASCII characters in its value, whereas a request for the comment via a URL in turn allows use of charset and language negotiation for what the server returns. The value of the commentURL is resolved and retained only if it's scheme points to a server (i.e., file and special lynx URLs are rejected), and if it is retained, is included as a link in the Cookie Jar Page. If commentURL is not ultimately included in the revised State Management RFC, sites which wish to use it could do a User-Agent check for Lynx (and any other browsers which implement it). - FM * Fixed a typo in HTCompressed() of HTFWriter.c so that the last dot in a tentative temporary filename is sought via strrchr(), as is done for HTSaveAndExecute() and HTSaveToFile(). - KW 1997-07-14 * Yet more tweaks of the cookie support. We include $PATH and/or $DOMAIN attribute/value pairs in Cookie request headers only when their values were set explicitly via a server's Set-Cookie and/or Set-Cookie2 reply headers (and the cookies are $VERSION="1" or greater). - FM * Added support for IFRAME homologous (but not identical) to that for FRAME. It is handled as a block with a blank line before and after style, and with margins and default alignment inherited from the containing block, division, or span. The IFRAME rendition always begins with an emphasized "IFRAME: " label followed by the NAME attribute's value, if present, or the URL for the SRC attribute, serving as a link for the SRC, followed on a new line by any rendered IFRAME content. - FM * Added handling of LEGEND elements. The content is rendered in place, as for CAPTION elements, since we don't have multiple pass inlining capabilities. Hopefully, if the LEGEND is intended to be ALIGN-ed at the "top" or "bottom" of the associated insert, the author will place the LEGEND element above or below it, respectively. Note that LABEL elements similarly are rendered in place, and will be displayed interpretably only if the INPUT to which the LABEL's "for" attribute refers, immediately follows the LABEL element. - FM * Added recognition of BUTTON elements, and handling of them (sorta :) when they are TYPE="submit" or TYPE="reset" in forms. The default "submit" or "reset" string, or the value of a VALUE attribute, if present, is embedded in parentheses and used for the link, and the content is simply rendered and displayed in place. Until we see what kind of markup the real world puts in such elements, it's too risky to try to use that rendition as the link. Also, the W3C's HTML 4.0 draft presently is very fuzzy about whether, and if so, when, an IMG element in the BUTTON content should be treated as an image map, so the present code doesn't try to cast any submitted BUTTON name/value pairs into the format for INPUTs with TYPE="image". When the BUTTON is a script control rather than submit or reset button, a "[BUTTON]" pseudo-ALT is inserted to warn users of its presence, but the form is not disabled. The W3C's HTML 4.0 draft makes scripting intrinsic, with no SGML-based fallbacks if it is not available or is disabled by security-conscious sites. Dave Raggett of the W3C replied to criticisms of this in www-html@w3c.org by saying that he wished it have been otherwise, but "market forces" prevailed (Sigh...) - FM 1997-07-13 * Changed is_url() to return immediately if the string to check starts with a slash character. This prevents some false positives if the string contains ':' characters. - KW * Added support for "MACOS AppleShare IP FTP Server" to HTFTP.c. Only based on and tested with (the current incarnation of) . - KW 1997-07-12 * Correct some build issues with the merge (ifdefs for the curses modules) as well as minor fix for makefile distclean rule. - TD * More refinements of the cookie support in relation to recent discussions in the HTTP-WG, and for more fully effective protection against denial of service attacks. If the same attribute appears more than once for the same cookie, ensure that the first instance will be used. Limit the total number of cookies across Set-Cookie and Set-Cookie2 headers to 50 per server reply, and each cookie to a maximum of 4096 bytes. - FM 1997-07-11 * Added support for hexadecimal character references (&#xH;) as proposed in the W3C HTML 4.0 draft. - FM 1997-07-10 * Synchronized the development code against the fotemods patches up to 1997-07-06 (relevant changes listed below, as usual). Note that FM has now included the chartrans code, but has eliminated conditional compilation of it; however, in this code set setting -DEXP_CHARTRANS at compile time is still necessary (but compilation without it has not been tested). - KW * Fixed character counting logic in display_line() for lines where soft hyphens (­ or or a soft-hyphen character) are used for their intended purpose. - KW NOTE: The W3C HTML 4.0 draft explicitly specifies handling of ­, ­ (and now also ­) in the manner long implemented by Lynx (i.e., as a truly soft hyphen), and not in the brain-dead manner implemented by Netscape and MSIE. - FM * Various tweaks of the cookie support to handle likely (based on past experience in the real world :) abuses of Set-Cookie and Set-Cookie2 headers from servers. Most importantly, apply sanity checks to the values of port attributes so that any unquoted port list will not be misinterpreted as the start of a new cookie within the port list. Also added code to fold (CR LF TAB) Cookie request headers if they contain a long sequence of cookies which would exceed 1024 bytes on one line, since some servers suffer buffer overruns and crash in such cases. - FM * Modified HTNews.c to use HTmmdecode() and HTrjis() for the Subject and Author strings in listings of news articles when using a Japanese display character set. - HN 1997-07-09 * Massive updating and revamping of the cookie support in accordance with http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-state-man-mec-02.txt which is scheduled to replace RFC 2109 on July 15, 1997. Noteworthy changes are that (1) the blanket port restriction is now lifted, and sharing of cookies among servers with matching domains but different ports is blocked only if a port attribute was included in the Set-Cookie2 header (or Set-Cookie header, though it's not expected there), with a value which defaults to the request's port, but can be a comma separated list of ports, and (2) the blanket restriction on sharing of SSL-encrypted (https) cookies with http servers is lifted, and normally depends on the Set-Cookie or Set-Cookie2 header having included a secure attribute. However, a configuration option (see lynx.cfg) to FORCE_SSL_COOKIES_SECURE is now available, and the compilation or configuration default can be toggled via a -force_secure command line switch. - FM * Make NOCACHE ('x' key) work as expected from history list for internal links. - KW * Removed bogus checking for a config file in home directory which had been introduced into the development code. - KW 1997-07-08 * Synchronized the development code against the fotemods patches up to 1997-06-24 - TD & KW 1997-07-06 * Implemented popup windows for the 'o'ptions menu, homologous to those for SELECT blocks in forms. They are implemented when select_popups is on, and include WHEREIS search and 123[g,p] features (very useful for navigating the choice list of 28 display character sets :). Use the F_LINK_NUM command ('0') to invoke the prompt for a choice list number when in NUMBERS_AS_ARROWS mode. The popups are not invoked for the simple, binary choice options. Also modified the options menu so that the cursor is positioned to the left of choices when show_curser is on (but it is still positioned initially at the endings of strings when the line editor is invoked for options that have user-entered values). - FM 1997-07-04 (KaBoom! :) * Mods of HTMIME.c and HTFile.c to ignore Content-Type parameters other than charset when charset is not present, as we do when it is present and we know we can handle it. - FM * Fixed bug in LYNews.c which could cause Lynx to crash when posting or sending followups to news groups and the Organization header was obtained from the /etc/organization file. - FM * Fixed bug in LYEdit.c which could cause Lynx to crash when an editor to which a line number is passed as an argument is used and there are no links on the current page of the document to be edited. - FM * Added information about the new $USER feature to the comments about TEMP_SPACE in userdefs.h. - FM 1997-07-03 * Tweaks of change_sug_filename() in LYUtils.c to make protections against buffer overruns explicit within the function. - FM * Tweaks of the #ifdef'ing in HTTCP.c. - FM 1997-07-02 * Mods in LYDownload.c and LYPrint.c to treat a suggested output file entry of "/dev/null" on Unix, and "nl:" or "/nl/" paths on VMS (case insensitive), as a cancel (^G). - FM * Mods in LYGetFile.c to include URLs with content from a form submission with method GET in the group for which Referer headers are never sent, because the content might include private (e.g., password or credit card) information which should not be visible in Referer logs. - FM * Added -G 7 to the LYFLAGS and MCFLAGS for the ultrix and ultrix-slang Makefile targets when using the native ultrix compiler. - HM * Added -DNSL_FORK to the LYFLAGS for all of the solaris2 and Linux targets in Makefile. - FM * The above two changes don't affect the makefile used by auto-config - KW 1997-06-30 * Removed a redundant declaration in UCdomap.c which was causing some compilers to balk. - FM * Fixed typos in SGML.c which could cause echoing of numeric character references for some of the display character sets. - FM 1997-06-29 * Updated lynx.hlp, lynx.man and the online 'h'elp concerning the chartrans support. - FM 1997-06-26 * Tweak of the "tag and attribute soup" parsing mods in HTML.c so that the PLAIN attribute works for UL blocks again. - FM * More tweaks of LYMainLoop.c to issue informative statusline messages about attempts to ACTIVATE, DOWNLOAD, or submit URLs or ACTIONs which are disallowed in the current context and destined to fail, rather than acting on them and generating actual failures. - FM * Mods of LYmktime() in LYUtils.c to support dd-mm-yyyy format for expires headers and cookie attributes. - FM * Oops, hadn't included checks for whether there are links on the page in this morning's LYMainLoop.c mods to ensure appropriate statusline messages for attempts to bookmark special URLs that can't be bookmarked, which could yield a crash it there aren't any. The checks are in there now. - FM * Added ability to bookmark links from the Lynx List Page, as from the Visited Links Page, but not for those pages, themselves, since they are temporary files. Note that Lynx List Page links will not have the documents' titles, as do those in the Visited Links Page, unless you've visited them before invoking the Lynx List Page. - FM * Added explicit protections against buffer overruns in the LYDownload.c handling of suggested filenames. - FM * Changes in LYCurses.c, GridText.c, HTML.c, and LYUtils.c, and smaller changes to some other files, to fix problems with RP's style code. Color leaking should now be at least much reduced, and some possible crashes avoided. - KW 1997-06-24 * Mods in LYDownload.c to check whether the File= field in a LYNXDOWNLOAD URL has the value that was inserted into the URL via the most recent download options menu. This prevents spoofing with arbitrary LYNXDOWNLOAD URLs entered via the 'g'oto or ECGOTO commands, or ACTIVATE-ed in a file other than the most recent download options menu which was created by Lynx internally. - FM * Mods in LYMainLoop.c to ignore LYNXCOOKIE, LYNXDIRED, LYNXDOWNLOAD, and LYNXPRINT URLs if entered via a 'g'oto or ECGOTO command, and to issue a statusline message explaining that the special URL is not allowed as a goto. This is just for informational purposes, and the above anti-spoof mod is not dependent on it. - FM 1997-06-23 * remove "Styles" identifier from Lynx version string in userdefs.h since it causes "patch-o-matic" to choke. -- JES 1997-06-20 * Now that we add or subtract attributes for Unix FANCY_CURSES, as for VMS curses and slang, the 1997-05-30 mods based on LE's patch for keeping track of whether links occur in an underlining context, and if so, restoring it when a current link is made non-current, should be extended to FANCY_CURSES as well. So they are extended, now, in highlight() of LYUtils.c. - FM * Added code in LYNewsPost() of LYNews.c for converting any EUC or SJIS to JIS (ISO-2022-JP) in posts or followups to Usenet news groups if the display character set is "Japanese (EUC)" or "Japanese (SJIS)". The mods need testing by Japanese users, because the TO_JIS() function I added long ago in SGML.c has not actually been used before. - FM * Modified the hack in LYPrint.c for mailing HTML source so that it never appends a charset parameter to the "text/html" value of the Content-Type header if compiled without chartrans enabled. - FM & KW 1997-06-18 * Added a check for nonsense LINES and COLS values in setup() of LYCurses.c, homologous to the check in size_change() of LYUtils.c, and set LYlines and LYcols to the 80x24 default if they're nonsense. The slang library and most curses implementations do the equivalent themselves, but we may as well make sure it's done. - FM * Tweaks of the anti-spoof mods in HTFWriter.c for additional protection against extra %s entries in viewer command mappings. - FM 1997-06-17 * Came up with a low overhead way to restore the emphasis for WHEREIS search targets when links are made current or non-current and the target string starts before and/or extends past the end of the link name (hightext or hightext2) string (see 1997-06-14 mods), so the restoration works in that case as well, now. - FM 1997-06-14 * Fixed a longstanding bug in highlight() of LYUtils.c which caused seeking of a column position less than 0 and strange behavior when a link is made current, if show_cursor is on and the link begins at column 0 (as can happen in PRE blocks). We now position the cursor on the first character of such links, so the current link will remain clear for those with speech or braille interfaces. - FM * Added functions in LYCurses.c, along the lines of those in the development code, so that the [w]start_foo() and [w]stop_foo() functions no longer just replace character attributes for Unix FANCY_CURSES, but now add or subtract them as for VMS curses and slang. - FM * More mods in GridText.c and LYUtils.c so that the handling of WHEREIS search target emphasis when links are made current and non-current is the full equivalent for Unix FANCY_CURSES of that for VMS curses and slang. Note that the restoration of search target emphasis does not succeed if the hit started before or extends beyond the link name (hightext or hightext2 string). What it would take to succeed in that case as well doesn't seem worth the overhead, but I'm still thinking about it. Also note that we still do not emphasize search target hits, but only do link or page re-positioning, for Unix curses when only standout() and standin() are supported. In that case, standout() is being used for all links, including the current (with the latter indicated via cursor position by turning show_cursor on), so we don't want to create a totally confusing situation by using standout() for search target hits as well. The code is still designed to degrade gracefully when the terminal does not have the capabilities of the curses or slang with which Lynx was built. - FM 1997-06-13 * Tweak of yesterday's LYGetFile.c mods. Lost a lynx_edit_mode = FALSE statement that is still needed when DIRED_SUPPORT is defined. - FM * Mods in LYForms.c so that the cursor is positioned at the left of the current option in select popup windows when show_cursor is on, as when the cursor is used to indicate the current link in the main document. This is important when Lynx is used with a speech or braille interface, or a terminal which does not respond to the highlighting/color for the current option. When show_cursor is off, the cursor is still positioned to the right of the current option for curses, and is fully "hidden" in the lower right corner for slang, so that the highlighting or color of the current option can be used without the distraction of a blinking cursor in the left-to-right reading field. - FM * Added ability to change the show_cursor setting via the 'o'ptions menu and to save that as the default in the RC file (otherwise, the default is still that set in userdefs.h or lynx.cfg). The -show_cursor command line switch toggles the default, however obtained, homologously to the -popup toggle. Updated the online 'h'elp accordingly (option_help.html and Lynx_users_guide.html). - FM 1997-06-12 * Tweaks of the 1997-06-04 mods for restoring emphasis of WHEREIS search targets in link names when they are changed to the current link or again made non-current. When the link is made current, the first and last characters of the link name never are emphasized, so they'll retain the attributes/color for the current link, and the user can see (if sighted) that the link was made current. With this change, the restoration of emphasis also is interpretable with Unix FANCY_CURSES, so the block for that is lifted. Note that I figured out why the bold+reverse+underline combination doesn't work for that. The vanilla and this Lynx code are not adding or subtracting attributes for their start_foo() and stop_foo() functions (as is done for slang and VMS curses), but are replacing them, so you always end up with the last attribute in a series of start_foo() calls (underlining for the search target emphasis). I don't know if ability to sum attributes applies to all Unix curses flavors for which FANCY_CURSES is defined in the Makefile, so I left the Unix, non-slang start_foo() and stop_foo() functions the way they are, for now. - FM * Mods in LYGetFile.c so that any '~' in file URLs is handled as when in startfile, home page, or 'g'oto commands. Only the first '~' is converted to Home_Dir(), and only for the first symbolic element in the URL, and if it is followed by a username, that username is stripped (so that the "~username" becomes a reference to the home of the account running Lynx, as if only '~' had been used, and can't be used as a reference for an arbitrary home). Note that we don't do this stripping for ftp URLs, because the ftp server should decide, itself, whether to grant access to arbitrary homes, based on the username and password that were used to log in. Note, also, that if the account running Lynx is allowed access to the root of the file system for its home, then access to any arbitrary home in that file system can be gained from there. Access to the root never is allowed for file URLs in the for-VMS code, but depends on the root's protection in the for-Unix code. Also, any arbitrary path in file URLs will be attempted if it is specified as an absolute path. The stripping of the username from "~username" in most cases on Unix only protects against probing for homes in other file systems, without the user knowing the corresponding absolute path. - FM 1997-06-11 * Mods in HTAABrow.c, HTTP.c and HTAlert.c so that auth_proxy is no longer a module wide global, and the structures which handle/create authentication/authorization headers maintain separate setup trees for proxy authentication/authorization versus for protected limbs of http/https data trees (realms) on the same server. This ensures that each proxy's template, which is the global '*' for all paths (that are in fact full URLs) in its proxying requests, are kept distinct from the templates for true paths of the protected limbs on the same saver, even if the user fails to include that proxy in the no_proxy list, or the server's WebMaster fails to do the equivalent configuration for the server, and the realm names overlap. Also modified the prompt strings for the username and password to be encrypted for protected document requests versus for proxy access so that they indicate explicitly whether the user's entries will be used for one or the other. - FM * Added a -pauth=id:pw switch for proxy servers, homologous to the -auth=id:pw switch for protected documents, along the lines of AJL's patch. Note that the -pauth value is used only for authorization headers to the first protected proxy server encountered, and the -auth value is used only for the authorization headers in document requests for the first protected limb encountered. Now that we have an explicit switch for proxy authentication, it should be used explicitly for that, instead of still allowing use of the -auth=id:pw switch for either (IMHO). Also, there's no serious need to make inclusion of the code for handling these switches a compilation option, because they are only available to users with shell access. Updated the help files concerning these switches, and included advice to make sure any script files which use these switches have restricted access. - FM 1997-06-09 * More refinements of the code in GridText.c, HTML.c and LYCharUtils.c for handling visible versus hidden links, blank lines, stripping of the numbered brackets for links, and the interactions of these things with soft hyphens. - FM 1997-06-06 * Fixed typos in LYrcFile.c which caused failure to start two comments on new lines when writing to the RC file. - FM * Fixed a typo in the lead dot pair stripping code in LYLegitimizeHREF() of LYCharUtils.c. - FM * Tweak of code in GridText.c for handling soft hyphens so that we don't display a hyphen if it's the first character in the line, or is preceded by a space, even if it is followed by a newline. - FM * Mods of the hidden link handling and numbered bracket stripping code in GridText.c so that it succeeds no matter how many blank lines are in the anchor content. - FM 1997-06-04 * Mods in LYLegitimizeHREF() of LYCharUtils.c for dealing more effectively with fragments which have illegal characters, as is becoming common due to authoring tools such as Microsoft's Frontpage and Netscape's HTML editor. The actual URL-reference is still handled so as to yield a fully legitimate absolute URL, without any unescaped spaces, but the fragment is checked only for problem characters such as tab or newline, and otherwise is unmodified. (Try the vanilla versus modified code with the http://www.cnib.org/library/ww_flw96.htm atrocity, brought to you discourtesy of Frontpage. :) - FM * Worked into the fotemods code use of bold+reverse+underline highlighting of WHEREIS search hits for VMS curses, and slang on both VMS and Unix (with or without the color mode on), and added code in highlight() of LYUtils.c for restoring that highlighting when links are made current or non-current if the string for the hit was contained within the string for the link (won't be restored if the hit's string starts before or extends past the link's string). Couldn't get any of this to work with curses and the solaris2 target, so for Unix curses the hit string still is just underlined and not restored when links are made current or non-current. - FM * Fixed typo in the 1997-06-01 LYOptions.c mods. - FM 1997-06-03 * Mods in LYList.c to skip setting up a list block for visible links if the document has only hidden links, and in HTML.c to include a notice about this with a suggestion to use the 'l'ist command. Try it with the http://www.sony.com/ atrocity. - FM * Tweak in LYMainLoop.c to fix a longstanding bug which would cause the curdoc.line and curdoc.link numbers to be mishandled, and thus cause the wrong page and current link to be restored on return to the document via PREV_DOC or the History Page, if the document was fetched originally with a fragment and a link on its first page had been activated. - FM * Tweaks in GridText.c so that returns from image map menus to parent documents are not treated as if a different document is being sought, and thus any no-cache directives associated with the parent will be ignored unless another fetch is initiated within the parent or via another, externally existing document. - FM * Added SEEK_FRAG_MAP_IN_CUR and SEEK_FRAG_AREA_IN_CUR configuration (lynx.cfg) options for how to resolve USEMAP attribute values in IMG or OBJECT tags and HREF attribute values in AREA tags when they consist solely of a fragment (USEMAP="#frag" or HREF="#frag"). The compilation default is TRUE, i.e., they are resolved with respect to the current document's URL, even if the base is different, as is being done for the HREF attribute values of Anchors and LINKs. The compilation default seems to be working out, even though most of the currently deployed browsers still use the base. - FM 1997-06-02 * Mods in LYMain.c so as not to require that a lone "-" argument for invoking input of command line arguments from stdin be the only argument on the actual command line. That requirement preluded use of this feature when the command for invoking Lynx was aliased so as to include arguments, because the lone "-" then could not be the only argument. Also tweaked the code so that any stdin-derived arguments which need to be processed early in main() are so processed. The vanilla code had severely flawed logic in this respect. The security considerations associated with switch handling have gotten hairy beyond reasonable bounds, but I think I've thought it all through (we'll see :), and have plugged some holes in the vanilla code for this feature. Redirection of stdout and/or stderr to a file now also works reliably in conjunction with this feature. - FM * Added an explanation in the PROBLEMS file of the bad getsockname() and getpeername() functions within SOCKETSHR 0.9D which affect the ftp gateway, and the URLs for Andy Harper's (A.HARPER@kcl.ac.uk) fixes of the SOCKETSHR 0.9D sources. - FM * Cast LYLocal.c into the Lynx programming style. - FM 1997-06-01 * Added support for numbered form fields, and options in SELECT popups, based on LE's patch. The LINKS_AND_FORM_FIELDS_ARE_NUMBERED keypad mode can be defined in userdefs.h and via the 'o'ptions menu. When in SELECT popups, the F_LINK_NUM ('0') command can be used in any mode to invoke a "Select option (or page) number:" prompt, which can take 'g' or 'p' suffixes, homologously to the "Follow link (or goto link or page) number:" prompt in the main document with popups retracted. Note that when in the main document, the F_LINK_NUM command has an implied 'g' suffix for form links (i.e., will position you on the form link, not, for example, ACTIVATE a submit button), but *not* in popup windows (i.e., without a 'g' suffix, the option corresponding to the number will be selected, and the popup will be retracted, as if you had pressed ACTIVATE when positioned on that option). The 123p feature is quite useful in popups with a very larg