======================================================================= --- Release of Lynx2-7-1FM as Lynx v2.7.2 (January 6, 1998) --- ======================================================================= 1998-01-06 * Fixed "Subirectory" typo in HTFile.c. - FM * Removed the fflush(stdin) calls in LYClean.c and LYexit.c because they reportedly are problematic for some flavors of Unix. - FM * Modified Linux setfont code to restore the original font on exit. - TD ======================================================================= --- Pre-Release of Lynx2-7-1FM as Lynx v2.7.2 (December 31, 1997) --- ======================================================================= 1997-12-31 * Packaged as v2.7.2 for release. - FM 1997-12-30 * Added Unicode translation support for "DosBaltRim (cp775)" and "WinBaltRim (cp1257)". - FM 1997-12-29 * Fixed typos in some LYCharUtils.c comment. - FM * Fixed typo in LYrcFile.c comments concerning the NO_FROM_HEADER symbol. - DK * Fixed bug in the order of re-initializations for the 1997-12-22 get_connection() mods. - FM * Modified UCChangeTerminalCodepage() to not use stderr, disentangling it from stderr/logfile hack. - TD 1997-12-22 * 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 * Worked in -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 * 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-17 * Changed all %i tokens to %d or %ld in functions that always get decimal values in their arguments. - FM 1997-12-16 * 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 * Further mods in LYClean.c (see 1997-12-13 mods) do block the *stderr = LYOrigStderr; statement in cleanup() for VMS with VAXC. - 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-13 * 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 depricated in the next revision of the HTTP/1.1 specs. - FM * 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 * 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 * 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 * 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 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 * 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 * 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 * Added support for setting both SYSTEM_MAIL and SYSTEM_MAIL_FLAGS in both userdefs.h and lynx.cfg. - FM 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 * More tweaks of the illegal control character handling. - 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 * Embellished the 1997-11-19 mods for handling numeric character references in the illegal control character ranges. - FM * Plugged memory leaks in HTFTP.c - KW & FM 1997-11-19 * Tweak of HTTP.c to ensure closing of the connection when interrupted ('z'apped) on the first socket read. - FM * Got rid the 1997-11-06 mod to set LINES and COLUMNS artificially high before the Unix (n)curses initsrc() call, because it can cause display problems. The code is still there if anyone wants to play with it some more. - FM * Fixed typos in LYUtils.c trace messages. - LWV * Mods in SGML.c and LYCharUtils.c to convert various numeric character references in the illegal control character ranges to legal Unicode values (and then to the current Display Character Set), on the assumption that they are the ones being inflicted on the Web by MicroSoft software. - FM 1997-11-18 * Mods to label "Bad HTML:" trace messages explicitly, for easier detection via WHEREIS searches of the trace log. - FM * 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 1997-11-17 * 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 misinterpretted 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 * Change in HTNews.c to ignore very long bogus newsgroup names when listing available groups. - KW * Mods to handle some cp# names as synonyms for "windows-#". - KW * Tweaks in code for highlighting search text in anchors, to better deal with terminals in UTF-8 mode. - KW 1997-11-15 * Mods of the TagSoup parser to restore support for the TABLE-in-PRE-block HTML kludge described in http://ppewww.ph.gla.ac.uk/~flavell/tablejob.html. The PRE-in-TABLE-block HTML kludge was retained in conjunction with the 1997-05-21 mods (see below) for treating TABLEs as DIVisions to support ALIGNment attributes in TABLE markup. I'm not sure why support for both HTML kludges is needed, but it's easy enough to support both, so we do again. Note that recent discussions about this in Usenet news groups and lynx-dev fail to understand that the development code's SortSGML parser is the default for that code set, and presently supports neither of those two HTML kludges. - FM * Oops, the wrong LYForms.c was in the 1997-11-12 zip (a test version which trapped ^V when in form text fields, but passed all keystrokes as LYK_foo commands back to the main loop instead of as LYE_foo commands or content to the line editor). The right LYForms.c is in there now. - FM 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 an 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 1997-11-11 * More simplifications of the chartrans code. - FM 1997-11-10 * Tweaks and simplifications of the chartrans code. - FM 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#". Note that we also handle "ibm#" charset names as synonyms, though true IBM charsets are not completely equivalent to their MicroSoft ("cp#") counterparts. The differences, however, are at most for just a few characters in each charset. - FM 1997-11-07 * Tweak of LY_SLrefresh() in LYCurses.c for greater efficiency when accompanied by a screen clear. - JED & FM * Added new format for lines in chartrans .tbl files: U+NNNN "a string" where the string can have C backslash-escaped characters. This allows writing 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 1997-11-06 * Tweaks in LYMainLoop.c and LYOptions.c to make screen clears more efficient with Unix curses. They now are more fully homologous to those with VMS curses and slang. - FM * 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 * Mods to avoid va_start redefinition warnings when building with slang. - FM 1997-11-05 * Tweaks in LYForms.c to eliminate all unnecessary screen clears following retractions of SELECT popups for slang and Unix (n)curses (was already optimized for VMS). - 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 * Close the file descriptor upon writing of POST data in LYCgi.c, before trying to read the response. - MHW * Tweak in HTMIME.c to register Content-Location header values. - KW * Added missing break in the HTParse.c code for left-to-right seeking of a fragment delimiter ('#'). - KW * Added explicit checks for two hexadecimal digits following '%' characters in HTUnEscape() of HTParse.c. - KW 1997-11-04 * Worked in KW's mod in HText_setLastOptionValue() of GridText.c to check whether it was called with an inappropriate argument, and if so, not try to allocate an option value string. Shouldn't happen with the current TagSoup parser, but better safe than sorry. - FM 1997-11-03 * Tweak of iso01_uni.tbl to avoid a misleading warning. - FM * Tweaks of the chartrans attribute value handling. - FM 1997-11-02 * Mods in HTTP.c to trim any "LYNXIMGMAP:" leader from Referer header values when making http(s) requests via links in the pseudo-documents constructed for MAP elements. - FM * Mods of the SGML and HTML parsers to handle SELECT blocks with invalid markup more effectively. Only OPTION elements are accepted in such 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 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-31 * Mods to allow HEAD requests for LYNXIMGMAP URLs if the MAP is in a document with an http(s) scheme. - KW & FM * 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. - KW 1997-10-30 * Changed the default ASCII BOXVERT and BOXHORI definitions from '*' to to '|' and '-', and worked in KW's mods to use those ASCII characters for boxing popups with non-VMS (n)curses if BOXVERT and BOXHORI have been defined to '0' for using graphic boxing, but the display character set is "UNICODE UTF 8". - FM * Mods of the TagSoup parser 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 * Added Unicode tables for the "DEC Multinational", "Macintosh (8 bit)", and "NeXT character set" display character sets. - FM 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 * Added more entity names from the HTML 4.0 draft to extra entities in HTMLDTD.c - KW * Tweaks to some replacement strings in def7_uni.tbl. - KW * Removed mappings for invalid characters from some chartrans files, and removed Ethiopic characters from iso01_uni.tbl. - 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 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 the last di-byte of each escape sequence conversion. - FM * Added more comments in SGML.c to help explain the logic of its looping tricks, and in UCAux.c to help explain the logic for setting the elements of the charset transformation structure. - FM 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 mnemomic charsets. *NOTE* that the the order is different from that in the devel code set, and both are different from previous versions, so if you have charset info saved in your .lynxrc file you should update it via the 'o'ptions menu, because you may not have the startup charset you intend until you save it again with its current number. Similarly, if you use more than one code set, you should use the 'o'ptions menu to select the charset you intend for the session (unless fortuitously it has the same number across your code sets :). - FM * Made the 8-bit or multibyte character conversions in SGML.c, HTPlain.c and LYCharUtils.c more consistent with each other. Also made the handling of numeric and named character reference more efficient, and consistent across those modules. The 8th bit stripping of koi8-r when the display character set does not correspond now works reliably across display character sets for both direct text and attributes (e.g., ALT). The full set of character conversions is now available for all character sets, including CJK and the three non-CJK character sets which still do not have Unicode tables, with both direct text and attributes. - FM * Mods of rendered/source toggling so that charset information is not lost during the transitions. Also did equivalent mods for reloads due to 'o'ptions changes (e.g., of the selected display character set, or raw mode toggling) which invoke a new retrieval and rendition of the current document. - FM * Mods so that the CHARSET attribute in Anchors actually works. It's really useful, e.g., in bookmark links (though you have to hand edit it in, at present), when you know the charset of the document which will be retrieved via the link, but neither the http server, nor a META tag in that document, would give correct information about its charset. - FM 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. - KW * Avoid unnecessary pauses if TRACE is on and a Trace Log file is in use. - KW * 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-10 * Tweak of UP_LINK handling in LYMainLoop.c to work like PREV_LINK when there are no links above the current line on the same page but this is not the first page. - FM 1997-10-09 * 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-06 * Added an HTMLGetEnitityUCValue() in LYCharSets.c for returning the Unicode value for all of the known named character references (i.e, in either the base libwww-FM array or extra_entities array of HTMLDTD.c), and modified handle_entity() in SGML.c to use it, so that all entities are available, even for display character sets which do not yet have ./src/chrtrans/foo_uni.tbl support. - FM * Added a UCConvertUniToUtf8() chartrans utility function in UCAux.c for loading a buffer with the UTF-8 multibyte representation of any Unicode in the handled range (i.e, <= 0x7fffffffL) and modified HTPlain.c so that it outputs UTF-8 whenever appropriate. FM * Mods in SGML.c to generate UTF-8 output for named and numeric character references or raw 8-bit characters, instead of 7-bit approximations, when the display character set is "UNICODE UTF-8". - FM * Mods in LYExpandString(), LYUnEscapeEntities() and LYUnEscapeToLatinOne() of LYCharUtils.c to use HTChunk.c functions for minimum allocations of memory. - FM * Added handling of the zwnj (8204) named (or numeric) character reference or UTF-8 representation as the WBR element in SGML.c. We can't yet use this trick for attribute values. - FM * Mods in SGML.c and LYCharUtils.c to ignore the zwj (8205), lrm (8206) and rlm (8207) control character references, for now, though some clean way to use them for UTF-8, Arabic and Hebrew may be possible to develop. - FM * Made LYExpandString(), LYUnEscapeEntities() and LYUnEscapeToLatinOne() simpler, added better comments, and modified LYUnEscapeToLatinOne() so that it uses hex escaped UTF-8 multibytes for characters outside the ASCII range (may need mods when standards for internationization of URLs and MIME headers are finalized). These functions still expect strings in the charset of the input stream, with only invalid control characters removed, and still parallel the conversions done in SGML.c and HTPlain.c, within the context of the HTML parser's (Utterly Tag and Attribute Soup :) settings and the display character set options. They do not URL encode any ASCII characters, except for ESC in CJK escape sequences when the flag to do that is set, to avoid possible double encoding. - FM 1997-10-04 * Worked in KW's new or improved chartrans utility functions, except for those using an additional argument for HTML_start_element(). It would be more consist with the Lynx API if elements in the HTML parser's HTStructured objects were set externally only via calls to LYfoo() or HTMLfoo() functions in the Lynx_HTML_parser set of LYCharUtils.c or in HTML.c, to which the SGML parser passes the appropriate context->target element as an argument, any needed arguments for the SGML parser's pointers to its corresponding attribute structures and inclusion buffers, and arguments for what the HTML parser should set in its own HTStructured object. - FM 1997-09-27 * Mods 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 Fielding URL draft. - FM * Added a chargen (port 19) gateway. See "Supported URLs" in the online 'h'elp for more information. - FM * Mods in HTTP.c to ensure that text/html and text/plain always are the the first two MIME types listed in Accept headers. - FM 1997-09-25 * Squashed two bugs in the handling of TEXTAREA content. - KW & FM 1997-09-24 * Tweaked the internal buffering of I.value elements in HTML.c and fixed a bug in the SGML unescaping of OPTION values. - FM * Removed the compilations of the old libwww-FM HTInit.c and HTFWriter.c modules for VMS, as previously removed for Unix. - FM 1997-09-22 * Tweak of HTCheckFnameForCompression() in GridText.c to take a Content-Type of application/octet-stream into account when creating default file extensions. - FM 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 * Worked in KW's and TD's mods for more consistent const handling. - FM * Added internal buffering of I.value elements in HTML_start_element() of HTML.c. - FM 1997-09-19 * Modified the Unix "strange character" filter in exec_ok() of LYGetFile.c to allow '+', '&' and '=' characters. - FM * Try again after interrupted waitpid() in LYLoadCGI(), as in LYExecv() - KW 1997-09-18 * 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 * 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 * Added sco5send target to the Makefile for SCO OpenServer Release 5 machines using sendmail. - BLG 1997-09-16 * Worked in JKT's and KW's mods in LYPrint.c to set the document's title as a LYNX_PRINT_TITLE environment variable on Unix (for pre-lp formatting scripts), and added code to set it as a logical on VMS (can be accessed via f$trnlnm("LYNX_PRINT_TITLE") in scripts). - FM * Recover from bad sequence "<=" in SGML.c by outputting those characters litterally. - KW * Try again after interrupted waitpid() in LYExecv(). - JED 1997-09-15 * Added a translation table for Vietnamese (VISCII), and associated code changes. See the file viscii_uni.tbl. - KW & FM * Tweaks to use of chartrans stages, should now better preserve charset info from META tags even in compressed HTML files. - KW 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-05 * Mods in LYGetFile.c to retain a fragment on redirection if the redirection URL does not include a fragment. - FM 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 * Tweaks of LYExpandString() in LYCharUtils.c to do 8th bit stripping rather than Uhhh substitutions for any untranslated KOI8-R characters in attribute values. - FM 1997-08-23 * Mods in LYCharUtils.c and SGML.c to use upper case letters for hexadecimal digits (A - F) when using Uhhh substitutions for untranslated unicode characters. This makes them stand out more clearly because the actual text characters are most likely to be lower case. - FM 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 * Mods of HTML.c, LYExpandString() in LYCharUtils.c, and SGML.c to handle raw 8-bit characters in relation to the document charset and the current display character set for attribute values. Note that we cannot handle a unicode-1-1-utf-8 document charset, because the initial character filter in SGML_character() of SGML.c loses multibyte utf-8 characters when received without it being in the S_text state. The current looping tricks may need to be replaced by a proper state mechanism. - FM 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 * Tweaks in print_wwwfile_to_fd() and print_crawl_to_fd() to handle soft hyphens at the ends of output lines. - KW & FM * 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 * Use 0.01 rather than 0.001 as the q value for the global wildcard in Accept headers. - FM 1997-08-16 * Fixed a bug in LYNews.c which caused overwritting of the first three characters in the Subject for a followup. - FM * Further modified HTHandleAuthInfo() in HTNews.c to take into account that an nntp server may close the connection on an AUTHINFO failure. - FM * Worked in KW's mods in HTFWriter.c so that uncompressed files which will be handled by helper apps are passed directly to the helper apps in HTFWriter_free(), rather than looping back through HTLoadFile() as for files which will be handled by Lynx, itself. - FM 1997-08-15 * 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 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 1997-08-13 * Tweaks of LYConvertToURL() in LYUtils.c and HTParseInet() in HTTCP.c to deal more coherantly 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 distinquish 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-10 * Tweaks of the cp866 and koi8-r chartrans tables. - 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 1997-08-07 * Tweaks of yesterdays mods in GridText.c. - FM * Corrected storage class of some variables in UCMap.h. - TD 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 lastest 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 * 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 * 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 * 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 1997-08-04 * Added protections against spoof attempts or denial of service attacks via wrap arounds of port values at 65536. - FM 1997-08-03 * 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 float built-in style sheet elements to int based on DW's, KW's and BL's analyses that this improves performance without adverse consequences. 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 * Worked in KW's mods to support 'z'apping of large local file renditions. - FM 1997-07-30 * Mod in HTFWriter.c to change the statusline appropriately when an uncompression has completed. - FM * Fixed a spaghetti ifdefing glitch in LYOptions.c - KW * Mod in GridText.c to avoid traversing the full list of anchors when HText_endAnchor() is called with a non-zero anchor number and it corresponds to the last anchor added to the HText structure. - KW 1997-07-27 * Added checks in LYGetFile.c for URL schemes which should be rejected when received as redirections. - KW & FM * Map charsets of the form "ibmNNN[...]" to "cpNNN[...]" in UCdomap.c if not already recognized. Also recognize "windows-1252". - KW * Added another check in LYLocal.c that LYNXDIRED URLs are from internally generated temporary files, complementary to those added on 1997-07-24 and 1997-07-25. - KW 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 1997-07-25 * 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 * Tweak of LYMainLoop.c to allow submission of the ACTION for modifying permissions if both DIRED_SUPPORT and OK_PERMIT were defined, and the temporary form is the current document. - FM * Made the version string "2.7.1f" to help make more clear whether the security patches described in our CERT bulletin have been applied, plus subsequent tweaks through today (too late for those who already added the patches and do no further fotemods.zip updating). - FM * Modified the handling of "show color (&)" in the 'o'ptions menu and of values saved in the RC file along the lines suggested by KW and HL. See the updated "Lynx Users Guide" for more information. - FM 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 * Oops. Yesterday's update didn't have the modified HTMLDTD.c and SGML.c. They're in now. - FM * Modified yesterday's "trailing comment" handler so that 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 1997-07-22 * Mods of LYReadCFG.c to include the bad string in the error message when processing of COLOR: entries fails (based on a patch from FMG), and to handle "trailing comments" (designated by a '#' token) for otherwise valid entries in lynx.cfg. - FM * Added TT to the Utterly Tag and Attribute Soup group of HTML elements. - FM * Tweaks in LYCurses.c to ensure that slang library and Lynx flags for whether color support is on stay in register. - FM 1997-07-21 * Added the "show color (&)" binary (ON/OFF) choice in the 'o'ption menu. It will be present if color is supported, and the setting can be saved to the .lynxrc file. Once saved, it will be used as the startup default, but if OFF it can be overridden via the -color command line switch or the COLORTERM environment variable. Also, updated the online 'h'elp accordingly. - FM 1997-07-20 * Tweaks of LYCharUtils.c and LYMainLoop.c to ensure that the output_utf8 element is set and checked properly so that named (e.g, ż), hexadecimal (e.g., ż) or decimal (e.g., ż) character references in text or in attribute values are converted to utf8 or other encodings (based on the current display character set) when 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). Note that only the display character sets which have src/chrtrans/foo_uni.tbl mappings can have such multibyte character references converted. - FM 1997-07-18 * Added support for chartrans handling of attribute values. - FM * 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 * 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 (But check for the slash after stripping any lead space characters. - FM) * Added support for "MACOS AppleShare IP FTP Server" to HTFTP.c (based on and tested with the current incarnation of ftp://www.unicode.org/). - KW 1997-07-16 * Added the Windows Cyrillic display character set. - AAC * Define USE_DIRENT for the FreeBSD builds. - AAC 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 capabilites. 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... I take back my NOTE of 1997-07-11.). - FM 1997-07-12 * 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 * Fixed typo under case LY_SOFT_HYPHEN in display_line() of GridText.c - 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. Is the W3C's "doublespeak" for "implemented" and "market forces" finally reverting back to the original principles and values of the Web -- in practice rather than just in "position" statements??? - FM 1997-07-10 * 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. - HEN 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 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). When Lynx is built with FANCY_CURSES or slang, strings to be edited are cast to bold, and fixed values to be selected are cast to reverse (otherwise, you get whatever the system's standout() does for both editable strings and fixed 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. - FM 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 * Worked in KW's chartrans support, casting all of its code to the Lynx Programming Style, adapting it for features not yet included in the development code set, and adding a build procedure for VMS. With this support, the display character set need not match the document's charset when the latter is not iso-8859-1. See the README files in src/chrtrans for more information. Three new configuration symbols (ASSUME_CHARSET, ASSUME_LOCAL_CHARSET, and ASSUME_UNREC_CHARSET) and command line switches (-assume_charset=MIMEname, -assume_local_charset=MIMEname, and -assume_unrec_charset=MIMEname) are added. See lynx.cfg for more information about them. - FM * 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 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-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, because more often than not we don't really know what it is, and so instead we'll just assume that if Lynx is invoked to read that mailed message, its display character set will be the same as when the document was handled originally. If not, it can be changed appropriately via the 'o'ptions menu and the mailed message will be reloaded. - FM 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 hightlighting 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 * Escape characters properly when constructing URLs from filenames in LYConvertToURL. If a string given for startfile, home page, or a 'g'oto command which does not already have the form of an absolute URL starting with a URL scheme and which does not start with '~' (but may start with '/') specifies an existing file or directory in valid Unix-like format for the native filesystem, i.e. without using escaping, it gets URL-escaped, otherwise it is assumed to already be URL-escaped. - KW (Note that the development code is applying this test for VMS, and shouldn't. - 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 * Changed a residual (void *) typecast to the explicit type in HTML.c. - 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 in 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 HTList.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 severly 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. * In LYLocal.c, modified the code handling DIRED_MENU to do more careful checking of the selected file. In addition to "TAG", "FILE", and "DIR", DIRED_MENU definitions in lynx.cfg now also recognize LINK as a type. DIRED_MENU definitions with a type field of "LINK" are only used if the current selection is a symbolic link ("FILE" and "DIR" definitions are not used in that case). The default menu definitions have been updated to reflect this change, and to avoid the showing of menu items whose action would always fail - KW * Cast all of 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 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 large number of options, and supplements the HOME, END and WHEREIS functions for seeking positions in the list (again, regardless of keypad mode, if F_LINK_NUM is used to invoke the prompt). A "page" is defined as the number of lines within the vertical dimension of the popup box. - FM * Mods in LYEdit.c to seek the current page and line when the editor is sedt on VMS. - FM * Updated the online 'h'elp concerning the "Follow link (or page) number:" and "Select option (or page) number:" features (Lynx_users_guide.html, follow_help.html, keystroke_help.html and other_help.html). - FM 1997-05-30 * Worked in LE's patch for keeping track of whether links occur in an underlining context, and if so, restore it when slang color is on and a current link is made non-current, thereby actually dealing with the longstanding bug discussed in the 1997-05-27 mods (This is just a hobby, and I always reserve the right to change my mind! :). - FM * Mods of LYForms.c and LYStrings.c to deal with form field values too long to fit in the line editor's buffer (such as long TEXTAREA values which have no newlines in them). As much of the tail as fits in the buffer is offered for editing, with statusline messages explaining the situation. If the tail is modified, it is combined with the unmodified head when the form field is made non-current. The result can be edited further by making the form field current again. If the form has a Reset button, it can be used to restore the original value. The vanilla code would crash on buffer overflow (Ugh! A potential security hole.). - FM 1997-05-29 * Restored underlining in conjunction with reversing for the current link with slang when colors are being used, but not otherwise. - FM * The 1997-05-26 mods to bypass screen redraws on retractions of SELECT popups when the selected OPTION was not changed worked properly only for VMS curses. Tweaked the for-slang code so that it now works like VMS curses (though not as efficiently). However, with Unix curses, the delwin() - refresh() sequence does not restore what was there before the popup was invoked, and none of the tweaks I tried got that to work, so the poor Unix folks using Unix curses are now stuck again with screen redraws for every popup retraction. - FM 1997-05-27 * Changed the label for the currently selected link from "Filename:" to "URL:" in the showinfo display, and fixed an alignment glitch for the 9th item on the History and Visited Links pages. - KW * Changed an "8-bit" occurring in HTInit.c to "8bit", and tweaked two comments in LYKeymap.c. - KW * Tweak of the code in LYLegitimizeHREF() of LYCharUtils.c for stripping a dot pair as the first symbolic path element if that would result from valid resolving of a partial reference for submission to an http or https server. The original code was not taking into account the possibility of the base having a path length greater than one, but only a lead slash. (Note that the lead slash is not considered just a separator for http or https URLs in the Fielding URL draft.) - KW & FM * Eliminated underlining in conjunction with reversing for the current link with slang, to avoid the longstanding bug of underlining being lost (and distracting color changes occurring) when that link ceases to be current and it was embedded in an underlined region of text. The attributes of the current link can be better handled in the development code based on configureable style sheets, so there's no point letting this bug ride, nor trying to deal with it through temporary internal mods, in this code set. - FM 1997-05-26 * Mods of display_title() in GridText.c to eliminate the "format" mask as in KW's 1997-05-14 development code mods, and to make the memory management more efficient. - FM * Mods of change_form_link() in LYForms.c to bypass the screen redraw on retraction of a SELECT popup if the SELECT block is DISABLE-ed or the selected OPTION was not changed. Note that the complete elimination of the screen redraw in the 1997-05-20 development code mods, i.e., even when the selected OPTION was changed, results in the change not being made evident to the user in the retracted popup unless the screen is redrawn fortuituously (e.g., due to subsequent paging). - FM * Implemented -restrictions=suspend handling for slang (though it's intended for curses implementations which have problems with ^Z within Lynx; see the PROBLEMS file). - KW & FM * Recognize linux console F1 key in LYgetch() (applies if -DNO_KEYPAD is in effect, as for all binaries built with slang). - KW * Protect LYgetch() against returning raw values of keypad() symbols which are invalid when used later as an index into keymap[], override[], etc. - KW * Change in LYUnEscapeToLatinOne() to use isdigit() instead of isalnum() for recognizing numeric character references like LYUnEscapeEntities() does. - KW * Set HTTP_ACCEPT_CHARSET environment variable for the child process in LYCgi.c if pref_charset is not NULL. - KW * Mods in LYMainLoop.c to force a reload if "preferred document lan(G)uage" or "preferred document c(H)arset" are changed via the 'o'ptions menu, and to set the "reloading" flag for forcing a proxy cache refresh if those or "user (A)gent" are changed and the current document has an http, https or lynxcgi scheme, but not force a proxy cache refresh if we're reloading due to an INLINE_TOGGLE, IMAGE_TOGGLE, or RAW_TOGGLE command. - KW & FM 1997-05-25 * Mods in LYMain.c to convert $USER if present in the TEMP_SPACE definition or LYNX_TEMP_SPACE environment variable to the string returned by getenv("USER"). - FM * Fixed two typos for me->inFONT settings in HTML.c - TD * Added chmod(file, 0600) calls for most files created by Lynx. - FM 1997-05-21 * Mods in HTML.c and LYCharUtils.c so that TABLE blocks are treated as divisions in the DIV nest, with a default alignment of HT_LEFT if the TABLE start tag lacks an ALIGN attribute, and otherwise, that attribute's value. Nested TABLEs extend the DIV nest. This avoids the problem in the vanilla code of TABLE content inheriting the alignment of a containing CENTER or DIV which is intended for alignment of the TABLE as a whole. Also added support for ALIGN attributes in TR elements. If the TR has no ALIGN attribute, it inherits that of the current division, which should be that of the current TABLE. This, of course, still does not yield true TABLEs for truly tabular content, but makes TABLEs used for formatting more readable. - FM 1997-05-20 * Tweak of HTFWriter.c so that it does the anti-spoof tests normally done by tempname() (see the 1997-05-19 mods) in all cases for which it changes the temporary file suffix from any of those checked by tempname() itself. At this point, every way I've thought of for trying to spoof Lynx via links for temporary files is blocked, but people should beat on today's code to see if there's any spoofing strategy I haven't yet blocked. - FM * Modified the Lynx Trace Log handling so that it doesn't use actual redirection of stderr via freopen() calls, and restores the original value of stderr during any escape to shell. This avoids the problem on Unix that sh and ksh send their prompt strings to stderr, and that bash sends both its prompt and command line echo to stderr, so they end up in the log instead of being visible. I had tested the initial design on VMS and with csh on Unix, and thus didn't notice this foolishness for the other Unix shells. Anyway, it's OK for all of them now. - FM 1997-05-19 * Tweak of HTFile.c so that we no longer lose an LYforce_HTML_mode directive if the file is gzipped or compressed and the uncompressed suffix is not mapped to text/html. - FM * Modified tempname() in LYUtils.c so that it checks whether files with the current PID and target count already exist, and if so, increments the count until a name for a non-existing file has been created. - FM 1997-05-18 * Mods in LYMainLoop.c and LYClean.c so that Control-G is treated as a synonym for 'n'o in quit confirmation prompts. - FM * Mods in LYPrint.c to strip any gzip or compress suffix from the suggested filename, on the assumption that we're deal with a text/html or text/plain file that had a corresponding Content-Encoding and no Content-Disposition: file; filename=name.suffix header indicating the appropriate filename after uncompression. This assumption does apply for our current ftp gateway, and for most present-day http servers. This mod in turn ensures that text/html files which are not being printed as source will have their uncompressed suffixes converted to .txt, indicated that they are rendered. - FM 1997-05-17 * Fixed long-standing bug in display_page() of GridText.c. When it was updating the links structures, it wasn't re-initializing the form element if the links structure is not for a form field. - FM * Mods in HTML.c to deal more effectively with H# headers used instead of LH in lists. We now, in effect, treat them fully as if they were LH, so that their left indentations are in register with the current list nesting depth, and we apply better error recovery in cases where the author is mis-using H# for a FONT change rather than as an actual header. - FM 1997-05-16 * Oops, hadn't put the final HTTP.c for the proxy authentication mods in the zip on 1997-05-12 (minor typo fix). It's in there now. - FM * Tweak of PRE block handling in HTML.c to ensure an implied paragraph after the block if it is in a list and not followed by an LI. - FM * Tweaks of SGML.c and LYCharUtils.c to allow any non-digit to terminate a numeric character reference once at least one digit has been found in the reference. - FM 1997-05-15 * Worked in JED's mods for taking a suspend into account during select() calls. Note that this does not correct the problems with invoking a suspend on some systems, since nobody has figured out why there's a problem suspending on them. It simply avoids display and/or command key glitches when you "fg" back to Lynx after a suspend. - FM 1997-05-13 * Tweak of case LYK_REFRESH: in LYMainLoop.c so that the REFRESH command still invokes an obligatory, complete refresh of the screen for slang on Unix with the new LY_SLclear() function (see 1997-05-09 mods). - FM * Changed the local variable name, lines, in follow_link_number() of LYGetFile.c to nlines, to deal with the AIX 4.2 bug of treating lines as a macro. Also changed the variable name, pages, to npages for logical complementarity (they both refer to the total number). - FM * Mods in HTML.c, LYCharUtils.c and GridText.c to deal with links for positioning, specified via NAME or ID attributes, when they are embedded in Anchors which have an HREF, so that they now don't force premature closing of those Anchors. Also tweaked the code for creating links for the sources of images or other for-GUI embedded objects when clickable images ('*') is toggled on, so they use those mods as well, when possible. Note, however, that the clickable images feature is creating Anchors with HREFs which aren't actually there, and still can create technically invalid markup, on occassion, when the non-doctored markup actually is valid. The latter mods still need some improvements in the formatting, but are OK to use for now, and my brain hurts from trying to think through all the possible markup we might encounter. - FM * Tweaks of the Lynx Trace Log handling to deal with reloads when the HText structure for the log has been dumped. Made the first letter of the filename uppercase (Lynx.trace), complementary to Lynx.leaks. Eliminated the log from the Visited Links Page so it can't be sought there as a forward link. Use the History Page if you want to 'd'ownload the log, or use the 'p'rint option while viewing the log. Note that suffix maps do tail matching, and thus the so-called suffixes need not begin with a dot. If you want to use an external viewer for the log, you can put: SUFFIX:Lynx.trace:application/x-LynxTrace VIEWER:application/x-LynxTrace:most +s %s in your lynx.cfg, or their equivalents in your mime.types and mailcap files. - FM 1997-05-12 * Added support for proxy authentication. - AJL & FM * Updated follow_help.html to indicate that 0 is the universal F_LINK_NUM mapping for invoking the "Follow link (or page) number:" prompt. - FM 1997-05-11 * Tweaks in LYMainLoop.c to ensure that the LYforce_HTML_mode flag is reset reliably, so it doesn't carry over to requests for text/plain documents, as it was doing under some circumstances in the vanilla code, e.g., when a bookmark file was used as the startfile via a file://localhost/path URL rather than via the -book switch. - FM 1997-05-10 * Fixed a typo in statusline() of LYUtils.c. The check for whether the string is zero length before bothering to convert CJK multi-bytes was checking a holding buffer instead of the string. - FM * Fixed a bug in LYHandleMETA() of LYCharUtils.c. The check for a URL following the SECONDS value in REFRESH directives was not taking into account that an EOL might follow the digits for the SECONDS value. - FM * Changed the behavior of boolean_choice() in LYOptions.c so that the cursor is positioned immediately at the option display line instead of staying at the statusline instructions until an initial entry is made, and modified the statusline instructions accordingly. - LE & FM * Changes to avoid memory leaks in LYCookie.c - KW * Added a check for a NULL pointer in the LYCookie.c code for blocking sharing of SSL encrypted cookies with http servers, based on a patch from RT, and added a comment on why code for a block based on the scheme is there, despite its being redundant with the current blanket restriction based of the ports. - FM * Mapped 0 to F_LINK_NUM (as suggested by KW), and restored 5 to a dead key when in NUMBERS_AS_ARROWS mode, so that 0 invokes the "Follow link (or page) number:" prompt under all circumstances (but with the 0 not treated as the first digit of the number entry). That's a better way to do it, because then the F_LINK_NUM command and explanation always appears in the "Current Key Map" display, and only the mappings of numbers to functions drop out when going from NUMBERS_AS_ARROWS to LINKS_ARE_NUMBERS mode (as they should, 'cuz the numbers no longer are mapped to functions; though maybe they should stay mapped to functions now that we have an explicit command key for invoking the prompt; something to think about...). - FM * Updated the PROBLEMS file to indicate that you should try changing -lresolve to -lbind if you have upgraded to the bind-8.1 or later library on a Sun system and keep getting the message "Alert!: Unable to connect to remote host". - FM 1997-05-09 * Typo fix in follow_help.html. - FM * Added an LY_SLclear() function in LYCurses.c as a more efficient substitute for slang of the curses clear(), based on a patch from JED. - FM * Added a USE_TRACE_LOG compilation (userdefs.h) symbol and -tlog command line toggle of the compilation default (normally TRUE), for directing syserr messages to a lynx.trace file in the user's home directory when TRACE mode has been turned on (either via the -trace command line switch, or the TOGGLE_TRACE (Control-T) command. Also added a TRACE_LOG command (normally ';') for viewing the "Lynx Trace Log" (lynx.trace) at any time, if one has been initiated during the current session. The trace log feature is disabled automatically in anonymous or validation accounts, and should not be used in any account which could have different users simultaneously. The mods work well to the extent I've exercised them thus far on VMS and for the solaris2 target, but possibly need more refinements, depending on the behavior for other Unix flavors of freopen(), which is used for redirecting stderr to the log. Updated lynx.man, lynx.hlp, and the online 'h'elp to describe these new features. - FM 1997-05-07 * Added another argument in follow_link_number() of LYGetFile.c for returning the number entered at the "Follow link (or page) number:" prompt to the mainloop(), and modified the statusline error messages that may be issued from the mainloop() in conjunction the with 'g' or 'p' suffixes so that they report that number when appropriate. - FM * Tweaked case HTML_DD: in HTML.c so that it checks whether a wrap has just occurred naturally before imposing a newline for DD start tags. Without that check, seemingly random, extra newlines could occur in the DL/DT/DD blocks. - FM * Created a follow_help.html for the keystroke_commands subdirectory of the online 'h'elp, describing the "Follow link (or page) number:" features, and added links to it in Lynx_users_guide.html and keystroke_help.html. - FM 1997-05-06 * Further tweaked KW's mainloop() tweak (see yesterday's entry), so that newdoc.link is reintialized properly when we're going to, but not ACTIVATE-ing, a link in the current page due to a 'g' suffix for a "Follow link (or page) number:" entry. Otherwise, if the number with a 'g' suffix was used to make the last link on the current page the current link, and then a NEXT_LINK command was used, one could end up on a link beyond the first one in the next page. Also added a statusline message if the 'g' suffix is used with a number which corresponds to a link that already is current. - FM * Tweaked yesterday's LYList.c mods so that an OL with the CONTINUE attribute is used when a "Hidden links:" list is appended to a "Visible links:" list and NUMBERS_AS_ARROWS mode is on. This allows you to see the number to enter at "Follow link (or page) number:" prompts, as when LINKS_ARE_NUMBERED mode is on. - FM * Mods in HTML.c for LI and LH handling so that a pointless wrap will not occur at the spacer following the bullet in UL blocks or the Arabic number, Roman numeral, or upper- or lowercase letter in OL blocks if the subsequent text has no spaces, itself, up to the right margin. In such cases, that text now stays on the initial LI or LH line, and wraps at the right margin to the left indentation for a second or greater line in the LI or LH. - FM 1997-05-05 * Added HText_AddHiddenLink(), HText_HiddenLinkCount(), and HText_HiddenLinkAt() functions in GridText.c for keeping track of the addresses (URL, plus fragment if present) for links that were converted to hidden by HText_endAnchor() due to their having no visible link name, and modified showlist() and printlist() in LYList.c so that if any hidden links were create during the rendition, the "References in this document:" menu for the 'l'ist command or appendix on dumps segregates and clearly labels the visible versus hidden links. This may help obviate an apparent need for people to treat some bugs in the vanilla or development code as if they were features. - FM * Plugged a memory leak in LYEntify() of LYCharUtils.c. - FM * Tweak in mainloop() handling of DO_GOTOLINK_STUFF. Going to a link with the 'g' suffix and then immediately ACTIVATE-ing that link could show the wrong page of the new document, since newdoc.line was not being reset. - KW 1997-05-04 * Tweak of 'g'oto handling in LYMainLoop.c complementary to yesterday's tweaks for valid handling of a no_cache anchor element in conjunction with the presence or absense of a fragment appended to the 'g'oto URL and whether the actual URL (i.e., preceding any positioning instruction via a fragment) corresponds to the currently loaded document. Try: http://www.wfbr.edu/lynx/no-cache.html http://www.wfbr.edu/lynx/expires.html for testing today's and yesterday's mods. - FM * Fixed glitch in HText_endAnchor() of GridText.c which caused failure to decrement the visible anchor count in NUMBERS_AS_ARROWS mode when anchors are found to be content-less (hidden), thereby causing their inclusion inappropriately in the 'l'ist menu . - FM 1997-05-03 * Added support for setting an anchor's no_cache element based on a comparison between Expires and Date headers if both were received and we didn't set it based on a Cache-Control directive. Also added equivalent support for a comparison between an Expires value from a META tag and a Date header. We still compare Expires header or META values versus the system time if no Date header was received, and still do not accept Date values from META tags because they are unlikely to be reliable. - FM * Tweaks and extensive expansions of the comments for the code in HTAccess.c and GridText.c which checks whether we should override a no_cache anchor element if we are using a fragment for positioning in the currently loaded document, homologously to our override for PREV_DOC commands or ACTIVATE-tions via the History Page, but to respect it under other circumstances, in compliance with both the HTTP/1.0 and HTTP/1.1 RFCs, the meaning of fragments as defined in the URL RFCs and drafts, and of NAME- and ID-based positioning in the HTML RFCs and drafts (accessible via the online 'h'elp). - FM 1997-05-02 * Fixed a bug in LYAddImageMap() of LYMap.c which could cause multiple insertions of the same MAP into the LynxMaps structure, and crashes on some systems due to the consequent multiple FREE()'s at exit. - FM 1997-05-01 * More mods in HTML.c, LYCharUtils.c and GridText.c for rational handling of potentially wrapped form fields in PRE blocks. We now artificially wrap the line if the form field would start within 6 columns from the right margin. This makes sure that editing windows and the highlighted segments of submit or reset buttons will not ever be ridiculously short, and is homologous to our use of a collapsible space before input fields and buttons when not in PRE blocks to promote a wrap there instead of within the fields or buttons. - FM * Expanded the WHEREIS query support so that it also locates the values of form fields within the current document and repositions or pages accordingly, as for normal (Anchor) links and for text strings. Note that if the hit was for an OPTION value in a retracted SELECT popup, you are positioned on the retracted window, and must pop it up and search again to be positioned on the OPTION value with the hit, unless it already is the selected OPTION. The mods are hairy enough without trying to do the latter automatically, at least for now. - FM 1997-04-29 * Added support for a 'p' suffix, like the 'g' suffix for making a link number the current link rather than ACTIVATE-ing it (see the 1997-04-24 mods), but for displaying the page indicated by the number preceding the 'p' suffix entered at the "follow link (or page) number:" prompt. When NUMBERS_AS_ARROWS mode is on, the '5' key invokes that prompt but is not treated as the first digit (see the 1997-04-26 mods). If the number entered at the prompt is '1' or less followed by the 'p' suffix, or only 'p' is entered, you get the same behavior as for the HOME command. If the number is equal to or greater than the number of pages, you get the last page displayed as you would if you had used successive PAGE_DOWN commands from the HOME position to reach it. This differs from the END command, which fills the screen with lines from the end of the document if you are not already displaying the end of the document. Note that if you enter a number without a suffix (to ACTIVATE the link with that number) or with the 'g' suffix (to make the link with that number the current link) it must correspond to a valid link number or an error statusline message will be issued, in contrast to the 'p' suffix for which an out of range number is treated as a request to display the first or last actual page in the current document. - FM * Fixed some typos in lynx.man. - LWV * More modifications of the anchor counting code for HTGetLinkInfo() in GridText.c so that it properly skips hidden form fields and anchors without selectable text. - KW * More modifications in GridText.c and HTML.c so that it deals rationally with submit or reset button values, and the underscore placeholders for other form fields, when in versus not in PRE blocks. The entire submit or reset button values are now always displayed, whether or not a portion of it was wrapped, but we still can only highlight the portion before the wrap to indicate a link for submission of the form or for resetting the form field values. - FM 1997-04-28 * Updated lynx_url_support.html so as to make clear that the offer to include the currently displayed document with right-angle-bracket prefixing for mailto, newsreply, and snewsreply URLs is made only if the user has defined an external editor via the Options Menu, and that the user is expected to edit this inclusion so that it retains only those passages relevant to the email or followup message which the user will add. - FM * Tweak of INPUT handling in HTML.c so that we use nbsp instead of any spaces when loading a submit or reset button's actual value instead of a series of underscores into the HText structure, so that we still promote a wrap, if needed, at the space we ensured would be present before each INPUT. - FM 1997-04-27 * Tweak of Control-C and Control-G handling for popup_options() in LYForms.c. They were being sought improperly as command keys rather than as raw keyboard entries. Note that only Control-G should be used as "cancel" within popup windows on Unix, because Control-C is not being trapped to a handler as on VMS. - LE & FM * Tweak of the anchor counting code for HTGetLinkInfo() in GridText.c so that it takes form fields into account when making a link current based on a "Follow link number" entry with the 'g' suffix. - KW 1997-04-26 * Tweak of the 1997-04-23 mods in LYCharUtils.c for stripping lead dot pairs in the path for http or https requests. An inappropriate FREE() was occuring when the lead symbolic element had a single dot, rather than pair. - FM * When NUMBERS_AS_ARROWS mode is on, '5' is normally a dead key. Made it a command to invoke the "Follow link number" prompt in that mode, but without being used as the first digit for the link number (still is used when LINKS_ARE_NUMBERED mode is on). That feature may not be useful with unfamiliar documents in NUMBERS_AS_ARROWS mode, but for example, when invoking a bookmark file, if you know that your favorite bookmark link is number 108, you can enter '5', followed by "108" at the prompt, to ACTIVATE it, rather than having to page and/or down-arrow to it first, or you can use "108g" at the prompt, so that Lynx will page "automatically" and make that the current link. - FM 1997-04-25 * Mods in LYMainLoop.c, Gridtext.c, and HTAccess.c for more efficient and reliable decisions on whether to respect an anchor's no_cache element when acting on commands that would load another rendered document presently in the HText cache versus seek another position in the currently loaded document, and expanded the comments about the logic of the code for these decisions. - FM * Added information in the "Lynx bookmarks" section of the Users Guide about appropriate versus unsupported modifications when editing the bookmark files. - FM 1997-04-24 * Added an LYHandleSELECT function in LYCharUtils.c for handling SELECT start and end tags, in lieu of the previous code in HTML.c, but via SGML.c calls to HTML_start_element() or HTML_end_element(). Also put code in the latter two functions to deal with functionally embedded or unclosed SELECT elements due to bad HTML, with precautions to avoid throwing the HTML.c stack out of whack. - FM * Added an LYHandleP() function in LYCharUtils.c for handling P start and end tags, in lieu of the previous code in HTML.c, but via SGML.c calls to HTML_start_element() or HTML_end_element(), and modified SGML.c to call HTML_end_element() for P end tags, instead of the old hack to use HTML_start_element() for both start and end tags. - FM * Worked in KW's development code mods for treating a 'g' appended to the number in the statusline entry when in LINK_ARE_NUMBERED mode as an instruction to make the link with that number the current link (including paging down or up if it is not presently on the screen) instead of ACTIVATE-ing it. Without the 'g', the link corresponding to that number is ACTIVATE-ed, as in previous Lynx versions. - FM 1997-04-23 * Modified LYCharUtils.c, HTML.c and LYMessages_en.h so that if a partial reference (HREF or SRC value) would be resolved to an http or https URL which has only two dots as the first symbolic element in the path (e.g., http://host/../foo.html), such that the server would reject the request, that element is excluded from the resultant URL, but a statusline message is issued (once per document) about a bad partial reference, as immediate feedback which might lead to the document provider correcting the bad partial reference(s). We still retain that first symbolic element, in compliance with the IETF RFCs and IDs for resolving URLs, with other URL schemes (e.g., ftp). - FM 1997-04-22 * SGML_abort() did not free memory used by the SGML.c parser stack. Now it does, but still doesn't call HTML_end_element() for the stacked elements (it's an abort after all...) - KW * Plugged memory leak in deleteLinks() of HTAnchor.c. - KW * When dumping or outputting a rendered document via the 'p'rint menu, Lynx would use the underscore placeholders for submit/image/reset buttons as for other INPUT fields. We now load the values of submit/image/reset buttons instead of placeholders into the HText structure, so the values will be seen when dumping or outputting via the 'p'rint menu. See the comments under case HTML_INPUT: in HTML.c for the still less than optimal things that happen if a wrap occurs within the INPUT value or placeholder strings, as might happen in PRE blocks, or for strings wider than the screen. - LE & FM 1997-04-21 * Tweaks of the 1997-04-11 and 1997-04-09 mods in HText_endAnchor() of GridText.c so as to take possible wrapping of Anchor content into account when deciding whether or not to implement the Anchor as an ACTIVATE-able link. - FM 1997-04-20 * Tweaks in LYCharUtils.c to bind META CONTENT to a header value only via an HTTP-EQUIV attribute (i.e., not via a NAME attribute). - FM * Mod in HTAccess.c to ignore the anchor's no_cache element if we're seeking a position in the currently loaded document. - FM * Fixed a typo in the bookmark file lead text. - DK 1997-04-19 * Changed the inappropriate StrAllocCat() to StrAllocCopy() for loading the XLOADIMAGE_COMMAND in LYReadCFG.c. - PC 1997-04-18 * Based on recent discussions in www-html@w3.org, added HY and SHY to the DTD (treated as synonyms; one or the other is most likely to be used in future HTML specs, so for now, we support both), as markup equivalent to the named entity ­ and numeric character reference ­ (soft hyphen). Note that Lynx implements soft hyphens as specified in IETF RFC 2070 (link "HTML i18n" in the Users Guide). Use of a tag instead of entity is preferable for a soft hyphen because browsers which do not support soft hyphen will ignore it as an "unknown tag" instead of inappropriately inserting a hyphen or displaying the raw entity. Also added WBR, which is handled like soft hyphen (indicating a permissible wrap point), but does not insert a hyphen at the wrap. - FM 1997-04-17 * Mods in HTML.c, HTML.h, and LYMessages_en.h to issue an HTML stack overrun message only once per document, and as a statusline message if not in TRACE mode, and to check in HTML_end_element() for correspondence between the SGML and HTML stacks if an overrun should occur. - FM * Corrections in HTML.c for the bounds checks associated with DIV and CENTER nesting levels, and for an HTML stack underrun. - KW * Plugged a memory leak under case HTML_IMG: of HTML_start_element() in HTML.c, and removed an inappropriate if(){} in HText_endAnchor() of GridText.c. - FM & KW * Modified the lead text created for bookmark files in LYBoomark.c so that it indicates that an editor can be used to delete or reorder the links, but that the format within lines should not be changed, nor other HTML markup added. Note that the new lead text will be used only when new bookmark files are created via the 'a'dd bookmark link command. A new bookmark file is not created if the one being sought already exists, so existing ones will still have the old lead text. - FM 1997-04-15 * Miscellanous additional tweaks in HTML.c for more robust error recovery from bad HTML involving emphasis or style elements (B, BLINK, CITE, EM, FONT, I, STRONG, and U), or HREF-less NAME-ed Anchors without matching end tags. - FM * Modified the declarations in HTMLDTD.c and code in SGML.C, HTML.c, and GridText.c to handle A, B, BLINK, CITE, EM, FONT, I, STRONG, and U container elements homologously to the modified handling of FORM (see 1997-04-05 mods) so that if they are invalidly interdigitated or have spurious end tags in the markup, substitutions of the "expected" end tags by the SGML.c stack-based parser will not be made, and without messing up the HTML.c stack-based parser. Appears to work reliably for all of the elements, and to be reasonably crash safe (hopefully as safe as the vanilla v2.7.1), but there are no guarantees. - FM 1997-04-14 * Tweaked LYAddImageMap() in LYMap.c so that it removes all pre-existing AREA element entries when updating MAP element content, and set the no_cache anchor element in LYLoadIMGmap() so that the updated MAPs always will be used when rendering. - FM * Created an LYHaveImageMap() function in LYMap.c, and trimmed yesterday's mods in HTML.c so that they use that function (can't let HTML.c get so big again that it chokes some compilers 8-). - FM * Removed two spurious lines under case LYK_PRINT: in LYMainLoop.c (from an old cut and paste from case LYK_HISTORY: done too late at night 8-). - FM 1997-04-13 * Modified the handling of BASE for resolving HREFs in relation to MAP and AREA elements, and USEMAPs in IMG and OBJECT elements. The formally released code was treating such links equivalently to the handling of fragments for positioning the display to ID-ed elements or NAME-ed Anchors, and assuming they're in the same document if the associated HREF value begins with a '#', rather than resolving versus the BASE, and was always resolving versus the BASE for MAP ID or NAME attributes, and for the AREA HREFs in MAP content. We now always resolve the MAP ID or NAME attributes versus the current stream's address (since the MAP must be in it or we wouldn't be handling it), but still resolve the AREA HREFs versus the BASE, if one was present. According the original draft and the current HTML 3.2 Proposed Standard, MAPs need not be in the same document as the IMG or OBJECT elements which specify links to the MAPs. Because MAPs are "deferred objects", they logically should be placed above any IMG or OBJECT elements which reference them in the same document (as is done for SCRIPTs), but this isn't stated in the specs, nor always done in practice. Also, there aren't any guidelines in any specs on whether to resolve versus the BASE or current stream's address. So for now, the code checks for whether the absolute address when resolved versus the current stream's address is in the LynxMaps structure, as would be true if the MAP were placed above the IMG or OBJECT element in the same document, and uses that if so, but otherwise uses the BASE (and authors who place the MAPs further down in the same document should be informed about "deferred objects" and encouraged to move them up 8-). - FM * Fixed bug in HTML_free() for the case when LYMapsOnly is set. We didn't create an HText structure for the stream (just scanned it for MAPs and processed them into LYMap.c's LynxMaps structure), nor do we want to create a blank one (as was being done) since we didn't render the stream, nor would we have a me->target set. So we just free any me elements that might still be allocated (though they should have been freed already), and return rather than continuing through the rest of the HTML_free() code. - FM 1997-04-11 * Fixed bugs in Gridtext.c and HTML.c which could cause mishandling of anchors in LINKS_ARE_NUMBERS mode if a line wrap occurred in the numbered bracket or the anchor content following the bracket, and failures to suppress the numbered bracket if the anchor content was empty due to ALT="" in an IMG tag, or if Lynx was configured or toggled to suppress the link for the server-side image map if both ISMAP and USEMAP attibutes were present in the IMG tag. - FM * Extended the disk_save restriction to the print menu as well as the download menu, and accordingly updated lynx.hlp, lynx.man, and Lynx_users_guide.html. - NHE & FM 1997-04-09 * Tweak to ensure that a newline isn't inserted by virtue of a FORM start tag if it's in the first line of a list element and no text precedes it other than a UL's bullet or OL's number on that line. - FM * Added pauses for the "Bad HTML" statusline messages under cases HTML_HTML and HTML_BODY in HTML_end_element(), and eliminated their checks for an unclosed FORM because we no longer expect that to cause a serious problem. - LE & FM * Added a NO_ISMAP_IF_USEMAP configuration symbol and -ismap command line toggle for suppressing inclusion of a link for the server-side-image-map if an IMG or OBJECT element has both ISMAP and USEMAP attributes such that a client-side-image-map link is created. Updated lynx.man, lynx.hlp and Lynx_users_guide.html accordingly. - FM * Fixed a glitch in HText_endAnchor() of Gridtext.c which could cause dangling Anchors in LINKS_ARE_NUMBERED mode if the Anchor's content was handled in a manner which caused it to become zero length (e.g., due to an IMG element with ALT=""). - FM * Moved the check for NEWS_POSTING to case 'N' in LYReadCFG.c (was in case 'I', ugh). - FM * Typo fixes for the comment concerning NO_ANONYMOUS_EMAIL in userdefs.h - NHE & FM 1997-04-08 * Use a generic test for a non-SGML_EMPTY element for bypassing the stack pop in HTML_end_element() of HTML.c instead of an explicit test for HTML_FORM. - KW 1997-04-05 * Handle invalidly interdigitated container elements or spurious container end tags without substitutions of "expected" FORM end tags by the SGML.c stack-based parser, and without messing up the HTML.c stack-based parser. Reliably succeeds in not closing FORMs before all of the FORM elements, including submit buttons, have been processed. Should be reasonably crash safe (hopefully as safe as the vanilla v2.7.1), but there are no guarantees. - FM ======================================================================= --- Start of v2.7.1FM --- ======================================================================= --- Release of Lynx2-7FM as Lynx v2.7.1 (April 4, 1997) --- ======================================================================= 1997-04-04 * Fixed typos in LYHistory.c, LYMail.c and LYMain.c which caused failures of flag setting in the distributed code. - TD 1997-03-31 * Added a missing check for whether the fragment token is NULL in LYConvertToURL() of LYUtils.c. Without the check, the for-Unix code could crash if a local file spec was entered as a startfile or goto with escaped characters. - KW * Mod in HTML.c to retain "[INLINE]" as the default ALT string if an IMG element has an ISMAP attribute but is not in Anchor content such that it could not in fact function as a server-side image map. - FM 1997-03-28 * In mainloop(), after the call to HText_pageDisplay() following a change of the document view, ensure that curdoc.link does not remain set to -1 if there are any links on the screen. This would otherwise happen if a document is pushed to the history stack while there are no links, and later popped (and refreshed) after one or more links have been created. This change prevents segmentation faults which occurred after creation of a new file in a previously empty directory via the DIRED menu. The access to invalid memory only occurred if the screen showing the empty directory did not have a parent dir reference link (which is always the case if NO_PARENT_DIR_REFERENCE was specified at compilation time). - KW 1997-03-27 * Fixed a typo and added comments for the code in LYMainLoop.c which decides whether to load the URLs for homepage and/or startfile into the goto buffer at startup. The typo in the distributed code caused the startfile URL always to be added to the goto buffer, even if it had POST content such that it could be resent inappropriately as a GET request via the goto buffer. - FM * Added a bsdi-slang target to the Makefile. - LE 1997-03-26 * Modified the HTStream structure and associated code in src/HTFWriter.c so that we save and use the relevant content of the associated HTPresentation structure as two HTFormat elements rather than via a pointer to the HTPresentation structure itself, because the latter structure might not be valid under some circumstances when HTFWriter_free() is called. The distributed code might indirectly result in segmentation faults during downloading on linux and some other flavors of Unix (though they don't occur for most flavors, or on VMS). - KW 1997-03-21 * Mods in LYPrint.c to use ".txt" as the output file extension for all rendered text/html files regardless of their original extension. The distributed code was doing this only for ones with an extension of ".html". The original extension still is retained if the file is being output as source. - FM * Added protection against passing a NULL pointer for path_url to render_item() from dired_options() in LYLocal.c. - GN 1997-03-20 * Tweaked the protection against URLs directed to port 19 or port 25 so that it can't be circumvented via lead zeros in the port numbers. - FM * Changed the compilation default so as not to send From MIME headers to http or https servers. The default can still be changed via lynx.cfg. Replaced the -nofrom disabling switch to a -from switch for toggling the compilation or configuration default. Sending the From header has become widely regarded as an invasion of privacy risk, particularly in conjunction with cookie support. - FM * Corrected a typo in the lynx.cfg comments concerning TRUSTED_LYNXCGI rules. - KW 1997-03-17 * Mods of LYNews.c and LYMail.c to prepend a "-- " separator before appending the LYNX_SIG_FILE signature file to news and email messages. - FM * Made the installation mode 755 in the top-level Makefile. The distributed code used 555, and some install commands were unable to do the strip. - LWV 1997-03-14 * Corrected typos and expanded the comments concerning lynxcgi symbols in userdefs.h and lynx.cfg. - FM * Modified SGML.c, LYCharSets.c and LYCharUtils.c to handle the numeric character reference ™ as the named entity ™ and use "(TM)" as the ASCII substitution if the current character set does not have the trademark character. The distributed code was substituting ®. - FM * Include time.h via tcp.h for SVR4 systems. The tcp.h header does include sys/time.h for Unix systems, but this apparently doesn't get struct tm and extern char * ctime() declared for SVR4. - FM 1997-03-13 * Added protection in LYGetFile.c against connections to the port 25 ESMTP service. - FM 1997-03-11 * Added protection in LYGetFile.c against denial of service attacks via the port 19 CHARGEN service. The distributed code left Lynx or proxies vulnerable to such attacks via direct or redirection URLs. - FM 1997-03-10 * Fixed error in the handling of numeric character references with values greater than 255 in SGML.c. The distributed code was breaking after substitutions instead of falling through to reset the string chunk and recycle the terminator if not a semi-colon. - FM 1997-03-08 * Fixed error in the switch positioning of checks for XLOADIMAGE_COMMAND and wais_proxy in LYReadCFG.c. The distributed code had them reversed under case 'W' versus case 'X'. - PDS * Expanded the copyright and licensing statements in the -version output. - FM 1997-03-04 * Corrected the offset computation in textsearch() of LYSearch.c so that WHEREIS searches repeated on a page with no links seek the target starting at the line immediately following the last displayed. The distributed code was setting a greater offset. - JS 1997-03-02 * Don't entify post content for the showinfo display, now that we are making it an XMP block in that display to handle all of the supported enctypes. - FM 1997-02-28 * Changed all references to "image/*" to just "image" in the userdefs.h and lynx.cfg comments about XLOADIMAGE_COMMAND. The "/*" within the userdefs.h comments was generating warnings from some compilers. - FM * Added a snake-slang target to the Makefile, and added -DUNIX to the LYFLAGS for the snake3 and snake3-slang targets (HP-UX apparently does not define "unix" itself with the -Ae switch, and thus needs to have that definition forced via -DUNIX). - HL 1997-02-26 * Close both descriptors of the pipe() for the NSL_FORK enabled code in HTTCP.c. The distributed code was closing only one of them on completed gethostbyname() calls, and neither on 'z'aps. - FM * Changed the HREF for the "Lynx FAQ" link in the online 'h'elp to its new URL (http://www.slcc.edu/lynx/faq.html). - FM 1997-02-25 * More reverse engineering to cope with Netscape's bogus cookie header parsing. The parser must not require an '=' between the expires attribute name and value, because Set-Cookie headers are being transmitted without it (e.g., by http://law.agps.gov.au). So Lynx now treats that as another special case. - FM * Cope with invalid use of expires attributes in Version 1 cookies. An -06 State Management draft recommends that for "backward compatibility", and has been severely criticized in the HTTP-WG, but it would be foolish not to assume Netscape will do that. See the expanded comments in LYSetCookie() of LYCookie.c for more information. Note that "expires" thus cannot be used as a Version 1 cookie name, but a provider would be foolish to use that, anyway. Note also that the possibility of using different header names for Version 1 versus Version 0 (a.k.a., "Netscape") cookies is being discussed in the HTTP-WG, which might have been better to do in the first place, but the -05 draft has been approved as RFC 2109: http://info.internet.isi.edu/in-notes/rfc/files/rfc2109.txt so it would be a while before that were done, if ever. - FM 1997-02-22 * Fixed a memory management glitch which could cause a crash if the MIME type of a reply to a FORM submission with METHOD=POST caused a download offer to be invoked. - FM * Don't simplify ftp URLs by trimming trailing slashes if the URL is being proxied. The Netscape proxy server for some unknown reason can return redirection for ftp URLs with the slash appended, and trimming it can result in a redirection loop. Based on a posted patch from KW. - FM * Fixed two typos in the checks for HTPassHighCtrlRaw in LYExpandString() of LYCharUtils.c. - KW * Fixed typo in the equality check on line 1553 in HTGopher.c. - AM 1997-02-19 * Reset the host string after an '@', if present, when trimming default ":port" fields in the new code aimed at compliance with the Masinter and Fielding URL drafts, expected to replace RFCs 1738 and 1808. The distributed code neglected to do that, and was ending up on a ":password" field, if present, instead of on the ":port" field, causing the username to be treated as the host name. - FM * Expand the default port trimming so as to include all of the registered URL schemes which support a port field in the v2.7 release. - FM * Correctly uncache the current directory listing when invoking an 'u'pload, so that it will be updated to include the uploaded file if placed in the current directory. The released code attempted to do this in a manner which prevented a pop, so that the directory listing couldn't be restored on return from the uploader menu. - FM * Recognize a bookmark file used as the startfile, whether it resides in the home directory or in a subdirectory off home. The released code failed if the file was in home, and not in a subdirectory, unless the -book switch was used instead of a startfile entry or WWW_HOME variable. - FM ======================================================================= --- Start of v2.7FM --- ======================================================================= --- Release of Lynx2-6FM as Lynx v2.7 (February 15, 1997) --- ======================================================================= 1997-02-15 * Release of Lynx2-6FM as Lynx v2.7. - FM * Included -Ae when compiling the Implementation modules for the snake3 target. - FM 1997-02-14 * Mods to issue an alert about a BASE tag not having an absolute URL only once per document. - FM * Added code for appending LYNX_SIG_FILE to email messages as well as to news posts or followups, and updated the Users Guide accordingly. - FM * Updated build-slang.com. - FM 1997-02-12 * Fixed some problems in the code for using a hookless Lynx image with snew_proxy, snewspost_proxy, and snewsreply_proxy set to "nntp://host:port/" so that it uses Tom Zerucha's (tz@execpc.com) daemon which handles the SSL communications on behalf of the Lynx image. Also polished up all of the news gateway code, and added comments for the benefit of new developers. - FM * Added an ECGOTO command mapped by default to 'G', complementary to the GOTO command (default 'g'), to edit the current document's URL and then go to it. Using case-sensitive letters with different command definitions ensures that both will appear with their brief explanations in the 'k'eymap listing. For ECGOTO, Control-G, failure to modify the URL, or complete deletion of it, all act as a cancel. If the current document has POST content associated with it, a warning will be issued before offering the URL to edit. The POST content is retained if the modification merely involves a change in fragment for the URL. Otherwise, the modified URL (if it has an http scheme) will be submitted with method GET and no POST content. If the ECGOTO command is not cancelled, or not simply a fragment change, the modified URL will be added to the 'g'oto buffer, and can be re-accessed, to edit further, via the GOTO command. See the updated online 'h'elp for more information. - FM 1997-02-10 * Amplified the comments concerning deletion of prototypes for MultiNet socket library functions as they get added to MultiNet's own headers in newer versions of it's socket library. - FM * Added a missing fclose() in post_article() of HTNews.c, and added code to delete the temporary file there, so it's gone as soon as we're done with it. - FM 02-09-97 * Enhanced the Set-Cookie header parser to handle values that contain spaces but were not enclosed in double-quotes, and to use such quoting or not when sending Cookie headers, depending on whether this was done in the Set-Cookie header. Also added anti-crash checks should the parser's efforts to handle both historical (a.k.a. original Netscape) cookies and Version 1 cookies go awry (does deal successfully now with all the cookies which had been reported as problematic). - FM * Mods of the screen handling in LYNews.c for cleaning up any screen trash created by the external editor. - FM * Tracked down an uninitialized pointer in LYNews.c that probably was behind reports of crashes when posting to newsgroups. - FM * Plugged a memory leak in LYMainLoop.c. - TJC * Added posting ability to the news gateway, in lieu of the previous, variably reliable, use of a spawned news client for posting. The news, nntp, and snews URLs now all return links for posting new messages or followups (replies) to the server from which a newsgroup listing or news article was retrieved, unless the server indicates that it does not accept posts from the site at which Lynx is running. See the updated INSTALLATION, userdefs.h, and lynx.cfg files, the "USENET News posting" section of the Users Guide, and "Supported URLs" page of the online 'h'elp for more information. * Fixed typo for e-dieresis in the KOI8-R charset. - AJF * Replaced an inappropriate _user_message() call in HTConfirmCookie() of HTAlert.c with a _statusline() call. The original code could cause crashes with some cookie values. - FM 02-06-97 * Added support for both hex escaped and unescaped white characters in lynxexec and lynxprog URLs. Normally, Lynx strips out any white characters that are not hex escaped in attribute values that are to be resolved as URLs, on the assumption that they were derived from wrapping in the markup. Any serial white characters in lynxexec and lynxprog URLs are condensed to one space (' '), and any lead or trailing white characters are trimmed. Note that we still require hex escaping of spaces in mailto URLs, e.g, HREF="mailto:lynx-dev@sig.net%20(I%20found%20a%20bug.)". - FM * Removed the 'e' switch from tar commands in LYLocal.c for greater portability across all supported Unix flavors. - FM * Expanded the information in the PROBLEMS file on how to deal with DECC and MultiNet header incompatibilites for different combinations of the VMS compiler and socket library versions. - FM * Added TRACE message of the edit command created for the system() call in LYEdit.c. - LWV * Fixed a typo in the userdefs.h comments. - NHE 02-04-97 * Mod in LYMainLoop.c to bypass mailing "not found" messages when MAIL_SYSTEM_ERROR_LOGGING was set TRUE (which it should NOT be, indescriminately) if the document's owner is the lynx-dev list. - FM * Added crash protection checks for the actual presence of anchors in all HText structure anchor scans in GridText.c, based on a crash report and suggested fix for one of them from Jonathan Sergent (sergent@hillres55-129.cc.purdue.edu). - FM * Eliminated the typecast for ttytype (apparently varies across flavors, and each flavor should know it's own typing; we'll see) in LYCurses.c, and moved VMS system definitions with non-ANSI conformant tokens to a separate header for VMS (LYVMSdef.h). - BL * Made the description of HISTORY in the 'k'eymap page more clear that it invokes a list of the "suspended" documents currently held in the history stack. - DC * Typo fixes in the help files and lynx.cfg. - LWV 02-03-97 * Today's distribution is a pre-release of v2.7. The projected official release date is 02-15-97. All header, help and documentation files, and the top directory name, have been updated for v2.7. - FM * Made xli, which is freeware, the default XLOADIMAGE_COMMAND for Unix in userdefs.h (still xv on VMS, since its port is freeware), and expanded the "self-documentation" to indicate where to get this freeware. Added XLOADIMAGE_COMMAND as a configuration symbol in lynx.cfg, so that the compilation default can be overridden on systems which have and prefer xv (all users can override the default mappings for image helper apps via their mailcap files) - FM * Added a -base command line switch which can be used with -source or -mime_header to prepend the request URL as a comment, and a BASE tag (which may or may not be the same as the request URL, depending on HTTP/1.1 headers) for text/html documents, equivalent to the prepend kludge for 'd'ownloads (see 09-20-96 mods). - FM * Added a check for an "ORGANIZATION" environment variable for inclusion as a news post header on Unix (all system logicals intended for news post headers automatically are included on VMS), and a sleep() before restoring curses mode after the post, to allow reading of any error messages from the news software. - FM * Fixed bug which yielded a "[LINK]" instead of "[INLINE]" pseduo-ALT for ALT-less IMG tags used as the content for NAME-ed Anchors without an HREF. - FM * Portability tweaks for the mini inews utility. - FM * Fixed an old and irrelevant typo in HTWriter.c. - JS 01-29-97 * Added more REL tokens that are acceptible for banner links. - FM * Ifdef'ed the standard foo_PATH definitions for FreeBSD at the bottom of userdefs.h, based on a patch from AAC, and assuming they also apply for NetBSD, BSDI, and Linux (we'll see 8-). - FM * Added make freebsd-slang target. - AAC 01-28-97 * Mods of LYSetCookie() to ensure setting of 443 as the default port for https URLs, and force the secure flag on for https URLs whether or not the Set-Cookie header had a secure parameter (too many Version 0 cookies don't, when they should). - FM * Removed -ltermcap from make for all ncurses targets. - FM * Tweaks of make for FreeBSD. - AAC * Use SLtt_get_screen_size() instead of the apparently less portable code for slang in size_change() of LYUtils.c. - JED 01-27-97 * Made ALT a synonym for VALUE in INPUTs with TYPE="image" to cooperate with well-intentioned (though misinformed) providers who use ALT instead of VALUE for the benefit of text clients or GUIs with image handling turned off. - FM * Modified the code for submission of form content with TYPE="image" NAME-ed INPUTs that have a VALUE (or ALT) to "fake" a 0,0 coordinate pair, as when a VALUE (or ALT) is absent, instead of sending a single name=value pair. Requests that using a name=value pair in such cases to indicate that the submission was from a text client or GUI with image handling turned off be included in the HTML specifications keep falling on deaf ears, so we may as well "fake" something closer to what the CGI scripts are expecting, and hope that the script interprets 0,0 as an indicator that the user did not see the image and make a conscious choice within it. * Added code to offer a link for the SRC of the image in INPUTs with TYPE="image", distinct from the submit button, when clickable images is on. - FM * Updated the "HTML Forms" section of the Users Guide. - FM * Fixed a typo in the parsing of Cache-Control MIME headers and META directives. - FM 01-25-97 * Updated lynx_help_main.html, about_lynx.html and about_lynx-dev.html. - FM * Mods to indicate a toolbar by a '#' preceding its first link when the toolbar is being displayed, and to indicate the availability of a toolbar by a '#' in the top, left-hand corner of the screen when the toolbar is not being displayed. Added explanation of this in the online 'h'elp. - FM * Indicate the 'allow' setting (always, never, or via prompt) for each domain in the Cookie Jar Page. - AK * Don't delete cookie-less domains silently during garbage collections if they have their 'allow' set to always or never. - AK & FM * Added ability to change the 'allow' settings for domains via the Cookie Jar Page. - FM * Added basic protection against "denial of service attacks" by limiting a domain to 50 cookies, the total number of stored cookies to 500, and the maximum processed size of a cookie to 4096 bytes. - FM * SGML escape any ampersands or angle brackets in the cookie names, values, parameters, and comments when creating the HTML stream for the Cookie Jar Page, and only include entries for comments if they were present in the servers' Set-Cookie headers. - FM * Updated the online 'h'elp for cookies. - FM * Removed -DNO_KEYPAD from all ncurses targets in the Makefile. - FM 01-23-97 * Added a "Lynx State Management (Me want cookie!)" section to the Lynx Users Guide, and a cross-linked cookie_help.html file for the Cookie Jar Page. - FM * Added prompting for whether to show the body of a 401 status reply or simply return to the current document when an activated link requires authentication via a username and password, and the user has none for that realm, or forgot them. - FM 01-22-97 * Added handling of expires attribute values in Version 0 (a.k.a. Netscape) Set-Cookie MIME headers or META tags, and added "Maximum Gobble Date" entries in the Cookie Jar Page which indicate the maximum intended age for each cookie based on the Version 0 expires or Version 1 max-age attribute values. - FM * Added an LYmktime() function in LYUtils.c which accepts strings in the format "Day, dd-Mon-yy hh:mm:ss GMT" or "Day, dd Mon yyyy hh:mm:ss GMT", parses and converts them to time_t format (seconds since 00:00:00 Jan 1 1970), and returns the time_t value, or zero if the date is in the past. It is used for handling Expires headers or attribute values. - FM * Added parsing of Cache-Control and Expires MIME headers and META tags sufficient to determine whether the no_cache element should be set in the document's structures. - FM * Eliminated the "; $Path=foo; $Domain=blah" attr=value pairs when sending Version 0 (a.k.a. Netscape) cookies in request headers, because too may CGI scripts in the real world have brain-dead parsers and fail when they are included. - FM * Added handling of Set-Cookie directives in META tags. - AK 01-20-97 * Added confirmation prompts for deletions from the Cookie Jar, expanded the garbage collecting for expired cookies, debugged and implemented the code for security checks based on lead and embedded dots in domain values and host prefixes as described in Section 4.3.2 of the -05 State Management draft, added requirement for https URLs (direct, or via proxy) to include cookies which have the secure flag set in request headers, and extensively annotated the cookie support code for ease of further development. - FM * Added ability to set SHOW_CURSOR in lynx.cfg, to override the compilation setting in userdefs.h, and made the -show_cursor command line switch a toggle for the compilation or configuration default. - FM 01-18-97 * Bug fixes and memory leak plugs for the cookie support. Added ability to delete individual cookies or entire domains via the Cookie Jar Page (Ctrl-K). The domains and cookies are displayed as DL/DT/DD blocks, with links for each domain and cookies name. The deletions are done by activating those links, which can be numbered, so it should be OK for blind users. - FM * Tweaks of the news/nntp/snews gateway. - FM * Tweaks of paragraphing if ADDRESS, BANNER, BLOCKQUOTE, BQ, FN, MARQUEE or NOTE blocks are nested (note that nesting does not yield progressive indentations of these blocks). - FM 01-16-97 * Added "first pass" cookie support based on patches from Andrew Kuchling (amk@magnet.com). Still needs work (see comments at top of LYCookie.c). A SET_COOKIE symbol in userdefs.h and lynx.cfg determines whether cookie support will be on or off by default, and the default can be toggled via a -cookies command line switch. When on, Set-Cookie headers invoke confirmations with possible replies of 'Y'es or 'N'o for that cookie, 'A'lways, to accept all cookies from that domain, or ne'V'er to never accept cookies from that domain. The Cookie Jar can be examined via the COOKIE_JAR keystroke command, mapped by default to Ctrl-K. The Cookie Jar, and any 'A'lways or ne'V'er settings, do not presently outlast the Lynx session. - FM 01-14-97 * Added use of DEFAULT_INDEX_FILE or the URL from an -index=URL command line switch as the the HREF for a banner LINK with REL="Index" and no HREF of its own (see the 01-01-97 mods and the HTML Banners section of the Lynx Users Guide). - FM 01-13-97 * Tweaks of the news gateway. - FM * Added "Negotiate: trans" header for GET and HEAD requests. Shouldn't be necessary to get 300 instead of 406 replies when nothing matches the Accept and Accept-foo request headers, but some HTTP/1.1 servers apparently want it when the UA declares itself as HTTP/1.0, as Lynx still does. - FM 01-12-97 * More updates of the online 'h'elp files. - FM * Simplified the code for checking whether a startfile is a bookmark file entered as a URL instead of invoked via the -book switch. The previous code was tripping up some versions of the osf and linux compilers. - FM 01-10-97 * Replaced the realloc() in split_line() of GridText.c with a calloc(), memcpy(), FREE() sequence for all systems, not just AIX and ultrix, based on analysis of memory wastage by Hans Reiser (dl9rdz@cip.e-technik.uni-erlangen.de). - FM * Tweaks of the body= handling in mailto URLs. - FM * Tweaks of the ftp gateway. - FM * Restored inheritence when resolving versus a base with the same scheme, because the RFC1808 and Fielding Draft behavior of not doing so yields too many failures in the real world (sigh...). - FM 01-09-97 * Ugh! The distribution zip still had the Nov 4, 1996 HTTCP.c instead of the one I modified on Christmas. No wonder people were still reporting the wrong messaging with -DNSL_FORK. The right HTTCP.c is in there now. - FM * Mods to resolve the HREFs for LINKs with REV="made" or REV="owner" versus the base (a many, many year old bug finally caught 8-). - FM * Added HTAlert messages about BASE HREF vaules, Location header values, and Refresh URL values that were not received as absolute URLs. We still resolve them versus the RequestURI, since that's invariably what is intended, and thus the optimum "error recovery" strategy. - FM * Added handling of cc= and body= fields in ?searchpart strings of mailto URLs. They are described in draft-hoffman-mailto-url-00.txt recently posted to the URI-WG list. This draft ignores the objections which have been filed about changing the semantics of mailto and breaking clients which are fully conformant with the mailto specs in RFC1738, instead of using a new scheme name (e.g., smtp:) for URLs with mail headers, and it extends the ill-advised use of '&' as puctuation in URLs instead of honoring the previous IETF effort to seek it's replacement by ';' as the URL name=value separator and, in effect, treating them as parameters without need to worry about confusions with entities when the URLs are attribute values in text/html. However, the chairman of the URI-WG is a co-author of this draft, so, sigh... As far as this Lynx code is concerned, the mods are more "error recovery" to cope with the sad things which have afflicted the Web during the past 2-3 years, and use of a ?searchpart in mailto URLs is still DISadvised. Lynx uses only subject=, cc=, and body= fields from a ?searchpart, using it's own "safe" rules for other mail headers, and ignoring ones other than those three in the ?searchpart as "unsafe". The cc= values in a ?searchpart are added to the primary address as a comma-separated list for the mail agent, and Lynx's own Cc: is that entered, optionally, by the user. Any body= field is passed to the external editor, if one has been defined, for review and possible modification. Otherwise, it is scrolled for review. The mailing can be cancelled at any time (via Ctrl-G), and via a statusline prompt after everything has been reviewed, if the user judges the body and/or addresses to be unsafe or inappropriate. - FM * Moved information and prompt strings in LYMail.c to installer-modifiable symbols in LYMessages_en.h. - FM 01-07-97 * Eliminated forced exits for keyboard input buffer overruns on VMS. There's no perfect way to deal with it, but Lynx should recover gracefully most of the time now, and do nothing bad if ungraceful. - FM * Added handling of Content-Base and Content-Location MIME headers when 'd'ownloading, 'p'rinting, or mailing HTML source. For this, as for rendered HTML streams (see 01-06-97 mods) the base is determined according to HTTP/1.1 rules: If a Content-Base header was received, that's the base. Otherwise, if a Content-Location header was received and it's an absolute URL, that's the base. Otherwise, the URL used to retrieve the document is the base. When actually rendering, any BASE tag in the document overrides the base derived from headers. When 'd'ownloading, or outputting HTML source for a 'p'rint option, an X-URL comment with the URL used to retrieve the document and a BASE tag with the header or URL-derived base are inserted at the top of the document. These should be moved down into the actual HEAD section to make the HTML fully legal, but will work as is if the output is used in conjunction with automatic invocation of Lynx or Netscape as a text/html helper application. When mailing with an SMTP-conformant mailer, the actual URL used to retrieve the document is indicated via an X-URL header, and for HTML source, a Content-Base and a Content-Location header are included, set to what was actually received by Lynx via MIME headers, or to the retrieval URL. - FM 01-06-97 * More updates of the online 'h'elp. The Visited Links Page ('V'), multi-bookmark file support, REL/REV and META enhancements, and new switches are now all fully documented in the 'h'elp. - FM * Added handling of Content-Base and Content-Location MIME headers for rendered HTML streams (still using the document's URL in the 'd'ownload and 'p'rint (and mailing) BASE prepending kludge). - FM * Added code to avoid getting tripped up by double-quoted header values in HTMIME.c. We still need more sophisticated parsing of possibly compound HTTP/1.1 headers, but we don't yet use any of those. - FM * Tweak of the efficiency mods for command line parsing in LYMain.c. - FM * Simplified some code in LYMainLoop.c that was tripping up the AIX32 compiler. - FM 01-04-97 * More updates of the online 'h'elp. - FM * Added DIRED_MENU support for .tgz files as for .tar.gz files. - FM 01-03-97 * Made the command line parsing in LYMain.c more efficient. - FM * Added -nopause switch for setting InfoSecs, MessageSecs, and AlertSecs to zero. Can be used to eliminate forced statusline pauses during traversals. - FM * Mods to allow absolute zero quality values for Accept headers, so that in mailcap files users can do things like map image/* to a helper app but exclude particular image subtypes which the app can't handle by assigning q=0 for that subtype. HTTP/1.1 still specifies 4 significant figures for quality values, so if the value is non-zero, Lynx still forces a minimum of q=0.001. - FM * Typo fixes in lynx.cfg. - LWV 01-02-97 * Updates of the online 'h'elp files. - FM * Made the parsing of lynx.cfg in LYReadCFG.c more efficient. - FM 01-01-97 -- Happy New Year! * More partial/relative HREF resolving enhancements. Everything is now handled as recommended in Larry Masinter's -03 revision of Roy Fielding's -02 URL ID, except file and ftp URLs (which Lynx handles as described in the online 'h'elp ). Note, though, that Lynx handles known schemes on a scheme-by-scheme basis, and for schemes that involve substitutions of "/" for a NULL/zero-length path, Lynx inserts the "/" at the resolving stage, so those slashes are present where the Fielding test suite doesn't indicate them, but the actual requests sent to servers (or bad URL message if it's a scheme that requires a host field and doesn't have a default) will be the same. Note, also, that Lynx sends only the path ("absolute path") in it's direct http requests and indicates the host of the URL in the Host: header, i.e., sends the absolute URL only to proxies. Note, as well, that Lynx treats a zero-length attribute value for an HREF, SRC, etc. as a reference to the currently displayed document, but still uses the base (which might not be the current document's address) as the default for FORMs without an ACTION specified, or ISINDEX tags without an HREF or ACTION specified. - FM * Expanded REL/REV handling. All of the REL values in the (expired) Maloney and Quin draft-ietf-relrev-00.txt ID which make sense for banner links in Lynx have been added. For REL="Help" without an HREF in the LINK, Lynx uses its helpfile URL. For REL="Home" without an HREF in the LINK, it uses the configuration startfile or WWW_HOME URL (i.e., not a startfile specified on the command line), or the command line homepage, if it was specified. - FM * Added handling of fragments in conjunction with URL expansion guessing for startfile, homepage and 'g'oto strings. Note that any '#' that is not a fragment delimiter should be hex escaped (%23), and ideally all reserved or unsafe characters will be hex escaped in the user-entered string, though you can get away with not using the hex codes for most others, depending on their positions in the string. Also note that on VMS if you include the version for local files it must precede the fragment (e.g., foo.html;3#frag) as for parameters. - FM 12-26-96 * Mods of HREF resolving to be more consistent with the latest IETF draft (http://www.ics.uci.edu/pub/ietf/uri/draft-fielding-url-syntax-02.txt). Most importantly, lone fragments (HREF="#fragment") are resolved versus the current document's URL, and no longer versus the BASE, if present. There are a few things in the draft which are at odds with what virtually all currently deployed browsers do, and so I stuck with the "deployed" behavior. Try the tests in http://www.ics.uci.edu/~fielding/url/ to see where Lynx still differs from the draft. - FM * Tweaks of 'z'ap handling. - FM 12-24-96 * Tweaks of DIRED_SUPPORT and make for osf. - FM 12-23-96 * Added code to check if the startfile has BOOKMARK_TITLE as its title, and if so, and it's in the bookmark file list, add the bookmark element and reload to have it treated as if it were invoked with -book. - FM 12-21-96 * Added code for the DIRED_MENU command ('f' and 'F' by default) to invoke CSwing on VMS if CSWING_PATH is defined, as explained in userdefs.h and lynx.cfg . - FM 12-20-96 * More improvements in the fatal error and memory exhaustion handling, and plugging of memory leaks. - FM * Changed "newline" to "Newline" in LYMainLoop.c to deal with another reported, ill-advised, macro in the AIX 4.2 curses.h. - FM * More tweaks of lynx.cfg. - FM 12-19-96 * Improvements in the messaging and cleanups for aborts on fatal errors and exits on memory exhaustion. - FM * Worked v2.1 of lpansi.c into the distribution. - FM * Modified lynx.cfg to reflect the compilation defaults consistently, and changed the compilation default for SUBSTITUTE_UNDERSCORES to FALSE. - FM * Changed the "lines" element to "Lines" in the HText structure and the "tab" structure name to "Tab" to cope with some unwise employee reportedly using all lower case "lines" and "tab" strings as macros in the AIX 4.2 curses.h. - FM 12-17-96 * Restored use of the -l format in the parent links of local Unix directory listings if LONG_LIST is defined, without the v2.6 bug of creating strange, trailing relative or escaped strings. As far as I can tell from exercizing them, the DIRED_SUPPORT and LONG_LIST handling are now fully debugged (famous last words... 8-). - FM 12-16-96 * Don't reiterate parent links in local directory listings. They are offered only in the top, up to parent link if NO_PARENT_DIR_REFERENCE is not defined. - FM * Moved more HTML.c functions to LYCharUtils.c. - FM * Tweak of META handling, which was causing crashes (due to freeing an anchor structure prematurely in the 12-13-96 mods for moving HTML.c code to LYCharUtils.c). - FM * Block Unix relative path strings in lynxexec and lynxprog URLs. - DT 12-14-96 * Added a COLLAPSE_BR_TAGS compilation and configuration symbol for determinining whether Lynx collapses serial BR tags. Note that the valid way to create extra blank lines in HTML is with PRE blocks that contain only newlines. - FM * Fixed a longstanding glitch in the alignment handling which could cause a Paragraph's ALIGN value to cross embebbed blocks, rather than restoring the appropriate alignment for the outer division or block on close of the embedded block. - FM * Modified HR handling so that it inserts the same before and after spacing regardless of whether P end and/or start tags are present before and/or after the HR. - FM * Don't insert the bookmark file description and filepath if multiple bookmark file support has been turned off, and this is the default bookmark file (but they will still be inserted if it's not the default, e.g., if it's another bookmark file viewed before the support was turned off, and retrieved as a previous document). - FM 12-13-96 * Added parsing of Content-Disposition in META tags and setting the suggested file name if file; filename=name.suffix is in the value of the Content attribute and we don't already have that via a server header. - FM * Incorporated almost all globals related to stream parsing and page display in HTML.c and GridText.c into the HTML object structure and HText structure to make the parsing and display functions more nearly re-entrant, and moved several functions from HTML.c to LYCharUtils.c to reduce the size of HTML.c. - FM * Added -cckr to the libwww Makefile compiler options for SGI. - Carl Buxbaum (crb@world.std.com) * Fixed typo in LYMainLoop.c that affected the 'd'ownload command when DIRED_SUPPORT is enabled. - FM 12-10-96 * Implemented Safe header handling and prompting about resubmissions of forms with method POST along the lines described in the 24-Nov-96 IETF ID: http://gewis.win.tue.nl/~koen/draft-holtman-http-safe-01.txt Lynx prompts for confirmation whenever it detects that a resubmission would occur, unless the previous reply included "Safe: yes". Prompts always will occur if the -resubmit_post toggle is on (since resubmission always would occur; not advised). If not toggled on, resubmissions would occur when no_cache is set or the previous reply has been dumped from the cache. When using the PREV_DOC command or History Page, if confirmation is not obtained, Lynx will skip to the yet earlier document, or cancel, as appropriate. - FM * Added parsing of the Safe header in HTMIME.c, and added a safe element to the anchor and document structures. Will be FALSE unless a Safe header is received that specifies "YES" or "TRUE" (case-insensitive, only "YES" is in the specs), and applies only to replies from form submissions with the POST method. - FM * Cleanup of code in HTAccess.c. May correct problem of crashes for ISINDEX searches on some systems, though I couldn't reproduce that problem here. - FM 12-09-96 * Added an HTSetPresentation() for image/x-xbitmap in HTInit.c when DISPLAY is set. - FM * Added an LYOutOfMemory boolean that is set by the outofmem() macro, and code in the Unix FatalProblem() and VMS exit handler for reporting the memory exhaustion instead of the misleading "bug" message when they are invoked due to memory exhaustion. May not be reported reliably for linux, because for some reason I don't understand, the SIGBUS trapping is ifdef'ed out for linux in LYMain.c. - FM * Fixed typo in the new LYAddVisitedLink() in LYHistory.c of yesterday's mods. - KW 12-08-96 * Added a VLINKS command, mapped by default to upper case 'V', and code for creating a list of all links 'V'isited during the current Lynx session in order of recency (most recent highest in the list). Lower case 'v' is still mapped to VIEW_BOOKMARKS. The VLINKS listing is complementary to the History Page listing, and formatted similarly. It excludes POST replies, and bookmark, menu and list files (use the History Page or direct keystroke commands for those). It includes any links that were downloaded, or passed to a helper app (except mailto and newsreply or newsfollowup links, since those require activation in the original document for proper inclusion of it in the email message or news post). You can print the Visited Links Page, or 'd'ownload it via the History Page. - FM * Added reporting of the Charset parameter, if present in a server reply header, META tag, or by virtue of a suffix map, to the showinfo ('=') display. - FM 12-07-96 * Added 'p'rint menu support for the History Page. - FM * Added a content_length element to the anchor structure and use that, if a Content-Length header has been received, to indicate the total bytes in the statusline when receiving the stream. - FM * Include HTTP_ACCEPT_LANGUAGE in the lynxcgi environment. - David Trueman (david@cs.dal.ca). 12-06-96 * Many more cleanups and commenting of the code for the benefit of new developers. - FM * Tweaks of URL parsing and path simplifications. Added simplification of the file://localhost paths from startup and 'g'oto guesses. - FM * More anti-crash protections for bad HTML in SELECT blocks. - FM * Usability enhancement for DIRED's 'F' menu: list number and names of (some of) the tagged items, and provide a way to untag all items. - KW * Force screen refresh after a DIRED system command has failed. - KW * Modified HTFile.c to handle relative and "Up to parent" links more effectively. - KW * Added KEYGEN to the DTD (but no code to do anything with it yet). - FM 12-05-96 * Fixed typo in the for-Unix section of LYAddPathToHome() that was added yesterday in LYUtils.c. - James Troup (J.J.Troup@comp.brad.ac.uk) 12-04-96 * Numerous cleanups and commenting of the LYfoo.c and LYfoo.h modules, for the benefit of new Lynx developers. - FM * More security-related enhancements and polishing up of the multiple bookmark file support. - FM * Increased the sizes of MAXHIST and MAXLINKS, added statusline messages should they ever be exceeded (not likely now 8-), and code for freeing all excess pointers on each page draw instead of letting them grow and freeing them on exit (should help for memory-limited systems 8-). - FM * Tweaks of DIRED_SUPPORT. - KW 12-02-96 * Show nntp server status messages in group listings when not 221 (normal reply to HEAD request), so the user will know that the articles are not available from the server, rather than a bug in Lynx. - FM * Tweaks of BASE resolving. - FM * Added "trick" to send hostname guesses to stdout when the startfile or homepage are not URLs, as we send to the statusline for 'g'oto guesses (but don't use stdout if we are not interactive and the desired output is going to stdout). If the DNS lookup stalls, one thus can Control-C out, instead of wondering why Lynx is taking so long to start up. - FM * Cleaned up the read_rc() and save_rc() functions in LYrcFile.c. - FM * Eliminated all printw() calls to avoid problems with non-ASCII and/or multibyte/CJK characters. - FM * Numerous additional bug fixes and enhancements of the multiple bookmark file support. - FM * Got rid of the ADVANCED_MULTI_BOOKMARKS symbol now that the choice can be made in the 'o'ptions menu and saved in the .lynxrc file. - FM 11-30-96 * Added the ability to set the advanced mode for multiple bookmarks from the options menu and save the defaults in the .lynxrc file - HL * Various typo corrections including one which kept LYMainLoop.c from compiling under Unix when DIRED_SUPPORT was defined. - HL 11-29-96 * Numerous additional refinements and enhancements of the multiple bookmark support. Added support for REFRESH and PREV_DOC in the options and bookmark menus, and NEXT_PAGE, PREV_PAGE, and ACTIVATE in the bookmark menus or prompts. Expanded the anchor and document structures to keep track of different bookmark files in conjunction with VIEW_BOOKMARK, ADD_BOOKMARK, and DEL_BOOKMARK commands, to restore the proper bookmark files on reloads (overt, or because the cache was dumped for subsequent documents accessed via bookmark links), and in conjunction with security-related restrictions. Multiple bookmark support can be regulated via MULTI_BOOKMARK_SUPPORT, BLOCK_MULTI_BOOKMARKS and ADVANCED_MULTI_BOOKMARKS symbols in userdefs.h (or as SITE_DEFS in the Makefile) and lynx.cfg. The multiple bookmark support can be blocked via a -restrictions=multibook command line switch, which is also set for -anonymous and -validate. Prompting or display of the bookmark file selection menu occurs only if bookmark files in addition to the startup default have been defined (via the B)ookmark command in the 'o'ptions menu, if mu(L)ti bookmarks has been turned on; the setting and definitions can be saved in the .lynxrc file). Plugged memory leaks in the previous implementation of multiple bookmark support. Added code for inserting the current description and filepath for each bookmark file dynamically during rendering. - FM * Another tweak of attribute order in HTMLDTD.c. - KW 11-28-96 * Tweaked multiple bookmark support to fix an error which was causing a crash on some systems and incorrect behavior on others - HL * Tweaked editing of multiple bookmark filenames to correct shifting of screen between multiple pages - HL 11-26-96 * Added support for setting the rendering of SELECT OPTIONs as popup menus versus radio button lists via the 'o'ptions menu, and saving the default in the RC file. Changed NO_SELECT_POPUPS to USE_SELECT_POPUPS in lynx.cfg and userdefs.h. The -popup switch still overrides everything. - FM * Added multiple bookmark support along the lines of the patch from Filip M. Gieszczykiewicz (filipg@paranoia.com), plus numerous enhancements of the 'o'ptions menu and bookmark handling. - FM * Tweaks of attribute orders in HTMLDTD.h and HTMLDTD.c. - KW 11-25-96 * Updated the "Lynx Enhanced Pages" links to the new "Lynx links" (http://www.crl.com/~subir/lynx.html) throughout the help, docs, and code. - FM 11-24-96 * Modified the ENCTYPE="multipart/form-data" handling to indicate the Content-Type with charset parameter, when known, within each part rather than in the main Content-Type header. - FM * Corrected typo in HTNews.c. - FM * Added support for setting the suggested filename in 'd'ownload and 'p'rint options based on the Content-Disposition header if it included the string file; filename=name.suffix in its value. Can be used by CGI scripts to set the suggested filename for saves to disk, downloads or mailings of the script's reply body, so it won't be the last symbolic element in the path field of the form's ACTION (which is normally the the script, itself, or a PATH_INFO element, and thus misleading). - FM * Tweaks of change_sug_filename() in LYUtils.c for better handling of gzipped files on VMS. - FM 11-23-96 * Added reporting of the Server, Date and Last-Modified headers, if present in server replies, to the showinfo ('=') display. - FM * Added the ability to store the NO_SELECT_POPUPS in the .lynxrc, but the .lynxrc must be edited manually until the options handling is converted to a form-like interface that accommodates more options. For now, select 'O'ptions and write out the options with '>' to create a block in .lynxrc with an explanation of the switch. The switch is "select_popups" and can have the values of "on", "off", or nothing. If nothing, the default set in userdefs.h or lynx.cfg will persist. Otherwise, "on" will set use of popups and "off" will set use of radio buttons as the default. The startup default always can be toggled via the -popup switch. - HL & FM * Corrected a couple of typos in the help files. - HL 11-22-96 * Added support for WHEREIS ('/') and 'n'ext searches within SELECT popups. The buffering for 'n'ext is separate from that in the main loop (i.e., for non-form field document searches), but all previously entered search strings are still combined into a circular buffer and can be accessed via the up-arrow or down-arrow keys at the prompt for a search string. The searches within popup menus do not yield highlighting of the search string, but simply positioning of the cursor on successive options which contain the search string. - FM * Added support for all of the navigation commands within SELECT popup windows, including HOME, END, UP_TWO, DOWN_TWO, UP_HALF and DOWN_HALF, in addition to the single line and paging navigation commands. - FM * Added support for the REFRESH command within SELECT popup windows. - FM * Tweak of hookless snews handling. - FM 11-21-96 * Added handling of forms with ENCTYPE="multipart/form-data". Note that we still don't support INPUTs with TYPE="file" or TYPE="range", and thus still set the DISABLED attribute for all fields in the form if either of those two TYPEs are present in it. - FM * Tweak of -mime_header handling. - FM * Typo fixes of comments in HTML.c. - Albert S Woodhull (aswNS@hamp.hampshire.edu) 11-20-96 * Added a NO_SELECT_POPUPS compilation (userdefs.h) and configuration (lynx.cfg) definition, normally set FALSE. If set TRUE, single-choice SELECT blocks (i.e., ones without the MULTIPLE attribute) will be handled as a list of radio buttons instead of via a popup window. Also added a -popup command line switch for toggling the compilation or configuration setting. - FM 11-18-96 * Tweak of LYFindEndOfComment() in LYCharUtils.c. - Brian Borowski (brianb@braille.uwo.ca) 11-17-96 * Added links to the lynx-dev hypertext archive at FLORA in the online 'h'elp. - FM * Tweaks of my_spawn() in LYLocal.c. - KW 11-16-96 * Added support for use of the 'd'ownload command on TYPE="submit" and TYPE="image" submit buttons. You still must use the History Page for TYPE="text" INPUT fields that also act as submit buttons by virtue of being the only non-hidden field, because the 'd'ownload command key could be a text entry into the field, and thus must be treated as such. - FM 11-15-96 * Mods of HTFormat.c and HTTP.c for better handling of unexpected server disconnects. - FM 11-13-96 * Wind down the element stack on EOF if any unclosed tags were received. - FM * Fixed typos in the HTMLDTD.c BODYTEXT definitions. - FM 11-10-96 * More tweaks of hook-less snews handling. - FM * Changed the default STARTFILE to http://lynx.browser.org/ and the default HELPFILE to the v2.6 set at NYU in userdefs.h and lynx.cfg. - FM * New function HTUnEscapeSome() in HTParse.c for unescaping selected characters in a string.. - KW * Numerous changes to make DIRED_SUPPORT work as intended, to use the library's HTList functions and macros for managing the list of tagged file URLs, and to keep track of proper levels of URL escaping so that unusual filenames which contain #% etc. are handled properly. Can now edit, move, etc. Abc%25252525def.html, #xy#~, etc. - KW 11-09-96 * Treat 301 or 302 redirection of a POST as 303 when the Lynx process is non-interactive, rather than rejecting the redirection, since 303 is still most likely what the CGI script actually intends (will still prompt if the process is interactive). - FM * Added parsing and trace mode reporting of Content-Disposition headers in HTMIME.c (should be used, someday, to set the suggested file name for disk saves and downloads based on any filename=foo.blah field). - FM * Further mods of HTNews.c to facilitate use of Lynx without SSL-hooks in conjunction with an SSL-capable daemon/proxy for snews URLs that returns NNTP streams for Lynx itself to convert into HTML, instead of already converted streams as from a standard proxy. - TZ & FM 11-08-96 * Changed information returned by "-version" in LYMain.c to point to lynx.browser.org and added a date to the copyright info. - HL 11-07-96 * Mods of HTNews.c to facilitate use of Lynx without SSL-hooks in conjunction with an SSL-capable daemon/proxy for snews URLs. - TZ 11-05-96 * Typo fixes in HTMIME.c. - KW * Tweak of NSL_FORK mods. - FM 11-04-96 * Tweaks of host parsing when a password and/or username is present in override_proxy() of HTAccess.c. - FM * Tweaks of the UNDERSCORES and STARS macro setup and useage to avoid possible crashes for FORMs with long values. - FM * Worked in Tom Zerucha's (tz@execpc.com) code for fork-based name server lookups that can be 'z'apped. May not yet be portable to all flavors of Unix. Add -DNSL_FORK to your SITE_LYDEFS to try it. - FM 11-02-96 * Fixed typo in HTAlert.h. - FM * Cleaned up HTTCP.c code, simplified some of its spaghetti ifdef'ing, and worked in mods to bypass connection confirmations when Lynx is SOCKSified and the socks_flag is set. - FM * Added recognition and acceptance of text/x-sgml and text/sgml MIME types (all that I've encountered thus far work fine with Lynx, though it doesn't yet interpret marked sections). - FM * Added socket function prototypes for MultiNet in tcp.h. - FM * Mods to facilitate application of the SSL patches (after some corrections in the patches to keep HTLoadHTTP re-entrant, make CONNECT work as intended again, and eliminate memory leaks in the SSLeay adaption) - FM * Adding info about -DNO_TTYTYPE in top level Makefile. - FM * Use clrtoeol() in LYOptions.c to ensure that no terminals which use reverse video for standout() will have trailing reverse fields on edits of option vaules. - DK * Offer user@host instead of WebMaster@host for the 'c'omment command if the path for the URL begins with a tilde and there is no LINK REV="made" present. - FM * Tweaks of inews Makefile and clientlib.c. - Christopher R. Maden (crm@ebt.com) * Check nhist before attempting a DIRED_SUPPORT directory listing in LYShowInfo.c. - KW 10-21-96 * Offer WebMaster@host for the 'c'omment command if no LINK REV="made" was present in a text/html document, and save a known owner URL when toggling to source ('\') so that the 'c'omment command can still be used with that owner's (mailto or homepage) URL, but the source can be included in the comment, as would be desireable (instead of a bad rendering) when sending a comment about bad HTML in the document. - FM 10-20-96 * Added code for traversing the pseudo-documents created for client-side image MAPs. See the updated CRAWL.announce for more information. - FM 10-19-96 * Added definitions in LYCurses.h relating curses function calls to slang functions or emulations for compatibility with new versions of slang, based on patch from John E. Davis (davis@space.mit.edu). - FM * Added unescaping of the full address fields in mailto URLs or ACTIONs, and improved the reliability of the parsing of the subject header from the ?searchpart Netscapism when present. - FM * Give user option to use 303-like coversion of POST to GET in confirmation requests for redirection of POSTs, base on patches from Drazen Kacar (dave@fly.cc.fer.hr). - FM * Tweaks of POST content submissions in HTTP.c, based on patch from KW. - FM * Fixed EOF checks in HTAAFile.c, HTGroup.c and HTPasswd.c, and improved host address parsing in HTTCP.c, based on patches from Larry Schwimmer (schwim@cyclone.stanford.edu) and Klaus Weide (kweide@tezcat.com). - FM * Added targets for umaxv and umaxv-slang for Encore's UMAXV - Thanh Ma (tma@encore.com) 10-16-96 * Send the rendering of decompressed files to stdout with -dump, don't spawn a viewer under any circumstances if -dump was used instead of -source for Content-Types that are not text/html, and remove the temporary decompressed files before exiting with -dump or -source. - FM * Properly handle TYPE="radio" versus TYPE="checkbox" INPUTs with NULL or zero-length VALUEs. - FM * Added a continuation line token for the netbsd-ncurses target - HL * Fixed a typo in HTMIME.c in the trace output - HL * Block predictable buffer overrun in GridText.c if a page has more than MAXLINKS links in it. - FM 10-01-96 * Add a Mime-Version header to the other headers in LYPrint.c so that the 09-20-96 mods for mailing source do what they were intended to do. :) - Hamish MacEwan (macewanh@diatp.dia.govt.nz) 09-20-96 * Add a BASE tag to the tops of HTML source files, a la Netscape, when mailing or downloading, and don't worry, for now, if that creates technically invalid HTML (since Lynx copes with it as of the 09-15-96 mods 8-). - FM * Include Content-Type, Content-Location and Content-Base headers when mailing HTML source on Unix. - FM * Use .txt versus .html suffixes when submitting rendered versus HTML source temporary files to VMS MAIL, so that transports such as PMDF will indicate the appropriate Content-Type. - FM 09-17-96 * Handle illegally positioned BASE tags. - FM * Tweak of Q nesting level checks. - Pawel Wiecek (coven@i17linuxb.ists.pwr.wroc.pl) * Fixed typo in HTMIME.c for parsing of Pragma header. - Wilson Cheung (wcheung@netcom.com) * Added parsing of Set-Cookie header in HTMIME.c (see IETF ID http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-state-mgmt-03.txt for info on how to implement it's use). - FM * Fixed typo in LYMainLoop.c for display of error message when up arrow is pressed at the top of a document. - Hiram Lester, Jr. (hwlester@pobox.com) 09-16-96 * Use standard ls -l parsing of LIST output for Windows_NT ftp servers in Lynx v2.6 as in v2.5. - FM --- Rename of Lynx2-5FM and release as Lynx2-6 (02-Sep-1996) --- (see CHANGES2-6, CHANGES2-5, CHANGES2-4 and CHANGES2-3) ==============================================================================