home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Linux / Divers / lynx2.8.1dev.10.tar.gz / lynx2.8.1dev.10.tar / lynx2-8 / docs / CHANGES2.8 < prev    next >
Text File  |  1998-03-18  |  204KB  |  3,403 lines

  1. =======================================================================
  2. ---            Release of Lynx v2.8 (March 10, 1998)                ---
  3. =======================================================================
  4.  
  5. 1998-03-10
  6. * omit platform-specifics about release (recommended by HN). - TD
  7. * drop samples/lynx.cfg since it is redundant (recommended by HN).  - TD
  8. * modify makefile.in so that "make install-cfg" does not edit lynx.cfg
  9.   to point at local helpfiles, while "make install-help" will now do
  10.   that (reported by LP). - TD
  11. 1998-03-07
  12. * move ifdef's for EXP_8BIT_TOUPPER inside UPPER8 function to allow
  13.   check for DOS/WINDOWS display charsets. - LP
  14. 1998-03-06
  15. * clarify relationship between the configure script and userdefs.h with
  16.   respect to the LYNX_CFG_FILE definition. - TD
  17. * newer CF_FIND_LIBRARY autoconf macro, to allow ncurses library in /lib
  18.   only, needed for SUSE Linux. - TD
  19. * add casts to UPPER8 function's comparison for equality of parameters, and
  20.   to TOUPPER macro to guard against sign-extension due to prototype. - AC
  21. * correct spelling of -lcur_colr library in aclocal.m4, change order of
  22.   tests to put -lHcurses second on HP-UX (patch by Jonathan Sergent).
  23. * restore simple zmodem downloader script, displaced by recent undocumented
  24.   change (there are some concerns about security or permissions with the
  25.   alternate script).  - DK
  26. * DOSPATH localfile patch:  corrected display of file://localhost/c:/,
  27.   which was displayed as file://localhost/c%3A/ (tweak LYConvertToUrl() in
  28.   LYUtils.c).  Now we may start "lynx c:" or 'go' c:  and not see these
  29.   strange letters.  On the other hand, if % and # symbols found in local
  30.   path it will be escaped as before (note that #fragment is not supposed here
  31.   to be used from command line...) - LP
  32. * workaround error in vendor's terminfo description of 'dtterm' by ensuring
  33.   we limit color pair-number accordingly. - TD
  34. 1998-03-04
  35. * strip -g compiler option if not otherwise specified, for debugging (note
  36.   that autoconf 2.12 does not try to use -O option due to concerns about
  37.   compiler optimization). - TD
  38. * correct value of $host_os used in CF_CURSES_LIBS for special-case of
  39.   HP's -lHcurses (Jonathan Sergent <sergent@ecn.purdue.edu>).
  40. * correct def7_uni.tbl for Greek letters, note about UPPER8 assumption
  41.   added to chrtrans/README.format. - LP
  42. * few comments corrected. - LP
  43. 1998-02-28
  44. * create new PRCS revision (2.8pre) for pre-release testing of Lynx 2.8
  45. * remove RELEASE_STATEMENT, merging it into README as per HN's
  46.   recommendation - TD
  47. * comments/minor changes to HTDOS.c, HTDOS.h, LYUtils.c - LP
  48. * document recent fix for RAW_DOS_KEY_HACK in lynx.cfg - DK
  49. * rename CHANGES.new to docs/CHANGES2.8 - TD
  50. * undo last minor change to UPPER8 - LP
  51. 1998-02-27
  52. * add RELEASE_STATEMENT file. - TD
  53. * modify slang configuration to add fake 'scrollok()' - JED
  54. * modify LYmktime() so that 2-digit years must be greater/equal to 70 to be in
  55.   1900's (patch by Bela Lubkin).  Also adjust parse_windows_nt_dir_entry() and
  56.   parse_cms_dir_entry() as noted by Bela - TD
  57. * comment-out entries in cp1252_uni.tbl which correspond to nonprinting
  58.   control-characters - LP
  59. * add logic in SGML.c to correspond with 2.7.2 logic for codes used by
  60.   Microsoft FrontPage. - LP
  61. * remove unneeded code for nbsp, ensp, emsp, thinsp and shy from handle_entity()
  62.   in SGML.c - LP
  63. * ifdef UPPER8 function with EXP_8BIT_TOUPPER,
  64.   add configure option --enable-8bit-toupper to allow testing.  - TD
  65. * case-insensitive search and 8bit letters:  It was realized that
  66.   information about upper/lower mapping got from TOUPPER which depends on
  67.   locale in its 8bit and usually fails on non-UNIX systems.  We introduce
  68.   UPPER8 and strcasecomp8 to implement 8-bit aware case-independent search
  69.   using one simple assumption:  8bit upper/lower case letters have their
  70.   "7bit approximation" images in def7_uni.tbl matched case-insensitively
  71.   (7bit).  The cost of this assumption is that several differently accented
  72.   letters may be interpreted as equal but this is negligible if the search
  73.   string is more than one character long.  (LYStrings.c, also HTString.c
  74.   and LYMainLoop.c).  - LP & TD
  75. * add SunOS 4.x-specific ifdef to quiet redefinition warnings for sys/ioctl.h
  76.   vs sys/termios.h - TD
  77. * convert usage/options messages into arrays to simplify maintenance. - TD
  78. * add "-useragent" command-line option to set "User-Agent" (request by Merlin
  79.   Mathesius <merlin_mathesius@swissbank.com>).  - LP
  80. * tweak HTML in LYDownload.c, LYPrint.c to restore some double-spacing effects
  81.   altered in 'collapsible spaces' change 1998-01-25 (reported by James Elkinton
  82.   <zio@blueneptune.com>).  - LP
  83. * use strncasecomp/strcasecomp consistently throughout to avoid library
  84.   dependency on strncasecmp/strcasecmp. - TD
  85. * correct lengths in several strncasecmp calls for command-line options
  86.   (though -w is still an abbreviation for -width). - TD
  87. * test-build with BSD curses on OS/2 EMX (does not display properly), and
  88.   with ncurses.
  89. * add configure check CF_FUNC_LSTAT.
  90. * modify CF_CHECK_ERRNO so that configure script on OS/2 EMX finds sys_errlist.
  91. * reset styles[] and styleSheet list in DefaultStyle.c, HTML.c so that when
  92.   a user reloads a page with ^R, we undo changes to those data structures
  93.   (reported by Larry Virden). - TD
  94. * remove extra copy of HTML.h from Implementation directory. - TD
  95. * add CF_GCC_ATTRIBUTES to configure script, to use in flushing out unused
  96.   parameter warnings (and later, to support prototypes for logging). - TD
  97. * rename 'extra_entities' to 'unicode_entities' (recommended by LP) - TD
  98. * add configure option --use-default-colors, to allow background color to use
  99.   default value (request by SUNAGAWA Keiki <Keiki_Sunagawa@yokogawa.co.jp>) -
  100.   TD
  101. * change default for --disable-internal-links so it is normally-off - TD
  102. 1998-02-19
  103. * add configure test CF_FIONBIO, some ifdef's (e.g., S_IFLNK) to support
  104.   build on OS/2 EMX. - TD
  105. * add configure option --disable-extended-dtd, for testing - TD
  106. * split-out entities.h from HTMLDTD.c - TD
  107. * remove obsolete mapping in "private" e000 area of mnem_suni.tbl,
  108.   mnem2_suni.tbl, rfc_suni.tbl - LP
  109. * remove unused function HTMLGetLatinOneValue() - LP
  110. * remove logic that would attempt lookup of Unicode entities by index into the
  111.   unicode_entities.put_entity method (e.g., of HTML_dtd), in HTML.c
  112.   (HTML_put_entity) and HTMLGen.c (HTMLGen_put_entity) - LP
  113. * tweaks to HTPlain.c, LYCharUtils.c and SGML.c, remove extra checks for
  114.   Unicode mdash, ndash, trade, as well as "iso-8859-2", "koi8-r", since they
  115.   are done in the chartrans tables - LP
  116. * add an alias 'H' for F1 when using RAWDOSKEYHACK (LYStrings.c) - DK
  117. * restore -DRAWDOSKEYHACK to src/makefile.dos, reported by DK - TD
  118. * correct a typo in CF_CURSES_LIBS configure macro, which caused the configure
  119.   script to not add termcap library to the list - TD
  120. * correct --disable-internal-links, by adding DONT_TRACK_INTERNAL_LINKS to
  121.   config.hin - TD
  122. 1998-02-13
  123. * use size_t in SGML_dtd. - TD
  124. * remove extra trademark symbol and quotes from chrtrans/*.tbl, since
  125.   they are in the default def7_uni.tbl - LP
  126. * New item to lynx.cfg added:  PREPEND_CHARSET_TO_SOURCE (similar to BASE), we
  127.   need it to resolve charset for downloaded/printed HTML sources which became
  128.   local.  This is really useful because downloaded and printed texts may
  129.   happened to have different charsets so assume_local_charset fails.  For
  130.   downloaded source meta charset added from HTTP charset header (if and only if
  131.   present).  For printed source meta charset added from display_charset (real
  132.   charset after chrtrans).  If the original source has its own meta charset
  133.   and we add the second on top - Lynx currently use those on top and ignore
  134.   others (old) value (that is correct, although non standard like BASE on top). 
  135.   The compilation default is FALSE (compatibility).  - LP
  136. * modify ncurses mouse behavior to match slang (use button 3 rather than
  137.   button 2 for "previous document" (reported by Michael Ritzert) - TD
  138. * use case-independent comparison for tail-only comparison in override_proxy
  139.   (patch by pg@sweng.stortek.com) - TD
  140. * remove unneeded definitions of ALT_CHAR_SET, NCURSES_VERSION in
  141.   src/makefile.dos - DK
  142. * correct syntax for the RAW_DOS_KEY_HACK in lynx.cfg, add a little information
  143.   on how to compile this.  Also patched makefile.dos to make compilation of the
  144.   raw dos key hack the default when compiling in DOS. - DK
  145. * change back to boolean since the logic was unused: UCCanTranslateFromTo(),
  146.   UCCanTranslateUniTo(), and UCCanUniTranslateFrom(). - TD
  147. * Mods of SGML.c and LYCharUtils.c to improve handling of entities,
  148.   obsolete stuff removed (not all yet). - LP
  149. * -localhost mode: disable interpreting BASE HREF= if local_host_only
  150.   to resolve local html files with BASE (Lynx add base to downloaded
  151.   sources and this may affect links if looking them with -localhost).
  152.   (tweak in html.c). - LP
  153. * Modify HTMLGetEntityUCValue in LYCharSets.c:
  154.   we begin to move from old style entities[] to unicode-based. - LP
  155. * added a few comments. - LP
  156. 1998-02-07
  157. * Fixed a bug in HTTP.c which could cause trashing of authorization info
  158.   for an origin HTTP(s) server if the request is being proxied. - FM
  159. * Tweak in HTTP.c so that the reloading variable is not reset until
  160.   after any resubmissions due to authorization challenges. - FM
  161. * Tweaks of userdefs.h, lynx.cfg, LYMessages_en.h, LYMain.c, LYMainLoop.c,
  162.   LYClean.c, LYReadCFG.c, and LYGlobalDefs.h so that the QUIT_DEFAULT_YES
  163.   compilation symbol can be overridden in lynx.cfg, in keeping with
  164.   the principle that only strict security-related compilation symbols
  165.   cannot be overridden at run time. - FM
  166. 1998-02-05
  167. * adjust formatting, comments & some messages in WWW files to simplify
  168.   comparison with 2.7.2 version.  (I have preserved some chunks of difference,
  169.   ifdef'd NOTUSED_FOTEMODS or NOTDEFINED for ease of comparison -- these may be
  170.   removed at a later time, when we are done absorbing changes from 2.7.2) - TD
  171. * Update SGML entity to Unicode table in HTMLDTD.c from ftp.unicode.org -
  172.   lots of new entities, iso-latin-1 now included there.
  173.   See also new files in test/ directory:  sgml.html and unicode.html.
  174.   Tweak a few typos in test/*.html according to sgml.html.
  175.   Add a few new entries in def7_uni.tbl according to sgml.html - LP
  176. * Cleanup iso01-iso09, cp866 tables against ones found at ftp.unicode.org
  177. * Strip the fat from LYCharSets.c - unnecessary obsoleted tables removed
  178.   and redirected to SevenBitApproximation table (ones which have unicode tables
  179.   override it anyway, those for CJK had exactly the same tables as
  180.   SevenBit..). - LP
  181. * Remove obsolete "Other ISO Latin" charset, which works _exactly_ the same
  182.   as "7 bit approximation" (See the note on 06-14-96 where it comes from).
  183. * Sort the list of charsets in Options according to 2.7.2 for 1997-10-15,
  184.   see the comments in UCinit at the bottom of UCDomap.c - LP
  185. * add ifdef to HTFile.c to workaround conflicting S_IFIFO vs S_IFSOCK
  186.   (e.g., on Apollo, from a report by Dave Eaton <dwe@arde.com>) - TD
  187. * updated INSTALLATION (patch by HN) - TD
  188. * modify DOS handling of CTL-C and CTL-BREAK handling for DOS to allow
  189.   exiting via SIGINT when pressing CTL-C or CTL-BREAK regardless of the
  190.   BREAK setting in DOS.  This leaves the BREAK setting unchanged unless
  191.   CTL-C or CTL-BREAK is actually pressed (in which case it leaves BREAK
  192.   ON) - DK
  193. * add note about Lynx vs frames to User's Guide (from Al Gilman) - TD
  194. 1998-01-27
  195. * correct lynx.man to reference section "1" (one), not "l", since it is
  196.   not installed in the latter (reported by Jason Castonguay
  197.   <jcast@ntplx.net>) - TD
  198. * fix for VMS declarations of mainloop() and from_hex() (reported by FM) - TD
  199. * add to include-paths in libmake.com, build.com (reported by FM, citing
  200.   Brian Tillman) - TD
  201. * revert HTML.c to use LYHandleSELECT() - TD
  202. * align cases for function keys in LYStrings.c with 2.7.2 - TD
  203. * remove EXP_CHARTRANS ifdef's - TD
  204. * remove symbol USE_SIZECHANGEHACK
  205. * adjust formatting, comments & some messages in most remaining ./src files to
  206.   simplify comparison with 2.7.2 version.  - TD
  207. 1998-01-25
  208. * Changed the utf-8 Display Character Set string to "UNICODE UTF-8"
  209.   (i.e., added the hyphen between UTF and 8), and fixed typos in
  210.   the comments about iso-8859-5. LP & FM
  211. * Modified HTML.c to add collapsible spaces before and after IMG ALT
  212.   strings or pseudo-ALTs whether or not the IMG element is within
  213.   Anchor content.  The occasional absence of such spaces due to poor
  214.   HTML was problematic for blind users.  Note that markup which uses
  215.   an image for a fancy letter with the ASCII letter as an ALT will
  216.   have that letter separated from the rest of the word.  Also note
  217.   that these spaces will not be collapsed in PRE blocks, but IMG is
  218.   invalid in PRE blocks.  The spaces could be omitted when IMG is
  219.   used invalidly in PRE blocks, but that would revive the problem
  220.   for blind users that they might not be present at all, so it seems
  221.   better to suffer extra spaces in such cases. - FM 
  222. 1998-01-24
  223. * Tweak in HTAccess.c to reset the title element in anchors on forced
  224.   reloads. - FM
  225. 1998-01-22
  226. * Tweaks in HTML.c to prevent collapsing of blank lines within TEXTAREA
  227.   default values.  Note that we still strip any leading or trailing
  228.   blank lines (reported by Edward S. Marshall <emarshal@xnet.com>). - FM
  229. * Tweaks of LYCurses.c, LYMain.c, LYOptions.c, LYReadCFG.c, LYUtils.c
  230.   and LYAuto.c to ensure properly setting, with internal buffering, and
  231.   avoid memory leaks for the display and homedir values (reported by
  232.   pg@sweng.stortek.com). - FM
  233. * include userdefs.h in LYCurses.h to address redefinition warnings for
  234.   curses-related configuration. - TD
  235. * adjust formatting, comments & some messages in recently-modified files to
  236.   simplify comparison with 2.7.2 version.  - TD
  237. * remove obsolete logic from UCCanTranslateFromTo, (recommended by LP). - TD
  238. * make character set names (e.g., cp437, cp850, next) consistent in lynx.cfg,
  239.   userdefs.h (reported by LP).  - TD
  240. * change configure script to check for termcap library before curses, in case
  241.   it is dependent.  - TD
  242. * More corrections in the Russian Cyrillic area of def7_uni.tbl. - LP
  243. 1998-01-17
  244. * correct logic for no_color_video by ensuring that if not defined, it
  245.   doesn't disable underline with color. - TD
  246. * remove NSL_CLONE - didn't build. - TD
  247. 1998-01-16
  248. * eliminate gcc "shadowed variable", "nested declaration", "no previous
  249.   prototype" warnings. - TD
  250. * add --disable-internal-links configure option. - TD
  251. * remove W3C gateway (patch by DK, based on email from Gerald Oskoboiny
  252.   <gerald@w3.org>). - TD
  253. * documentation updates (patch by JS). - TD
  254. * add CONTENT_TYPE to environment of lynxcgi POST documents (reported by
  255.   Ty Sarna <tsarna@endicor.com> & FM). - TD
  256. * add NSL_CLONE ifdef that enables use of the Linux clone() call instead of
  257.   fork() for the gethostbyname() calls in HTTCP.c.  (patch by Ryan Nielsen
  258.   <ran@haxor.com>). - TD
  259. from the lynx code.  I think the following patch does this.
  260. 1998-01-15
  261. * Tweak of the NSL_FORK code in HTTCP.c to prevent zombie processes from
  262.   being created when gethostbyname() is interrupted. - RN
  263. * Corrected the Russian Cyrillic area of the def7_uni.tbl Unicode to
  264.   7-bit approximations conversion table. - LP
  265. * Mods of UCAux.c, LYCharUtils.c, SGML.c and HTPlain.c to use 7-bit
  266.   approximations instead of 8th bit stripping when the document charset
  267.   is koi8-r and the Display Character Set does not have the corresponding
  268.   characters. - FM
  269. * Tweaks in HTML.c to ignore a newline character immediately following
  270.   a PRE start tag more consistently.  When PRE blocks are used to create
  271.   blank lines, you should get only as many as are actually included in
  272.   the PRE block, unless you include less than the number specified for
  273.   "before" the block to which you return, in which case you'll get the
  274.   latter number of blank lines. - FM
  275. 1998-01-13
  276. * Fixed a typo in the HTParse() code of HTParse.c for checking whether
  277.   a colon in the host field indeed delimits a port number. - FM
  278. * Changed the internal MIME names for all Microsoft Windows codepages
  279.   from cp#### to windows-####, since the latter is used more commonly
  280.   as the charset value in META elements and/or Content-Type headers,
  281.   and most of them have been registered that way with IANA.  Note,
  282.   however, that Microsoft uses cp instead of windows- prefixes in the
  283.   charset names for the Unicode conversion tables submitted to the
  284.   Unicode Consortium.  Also note that we still treat cp, cp-, and ibm
  285.   prefixes as synonyms for the windows- prefix. - FM
  286. 1998-01-06
  287. * work around for 'keypad()' function w/o corresponding key defines
  288.   (reported by Francisco A. Tomei Torres for NeXTstep 4.0). - TD
  289. * quote message in install rule, just in case (from HN). - TD
  290. * correct expression to supply default value of .cfg file's pathname
  291.   (reported by LE & Ambrose Li <acli@acli.interlog.com>). - TD
  292. * correct dependency of .cfg files upon $(libdir) in makefile.in - TD
  293. 1998-01-04
  294. * correct temporary filename for -traversal -crawl (patch by Doug Kaufman). - TD
  295. * correct redefinition of SYSTEM_MAIL_FLAGS. (reported by Doug Kaufman). - TD
  296. * uncache current document when character set may have changed (patch
  297.   by Andrey A. Chernov) - TD
  298. * modify Linux setfont code to restore the original font on exit - TD
  299. * correct missing backslash (again) in makefile.in
  300.   (reported by Mark Mentovai - again) - TD
  301. 1998-01-02
  302. * workaround for sed expression when rerunning configure with config.cache
  303.   for slang libraries (reported by Hynek Med). - TD
  304. * fix indicated by Laura Eaves (LE) for LYUCFullyTranslateString_1() - TD
  305. * modify SPAWNING_MSG for DOSPATH configuration, avoid unnecessary use
  306.   of clear-screen in shell (patch by Doug Kaufman). - TD
  307. * remove install-help from list for install rule, adding message to
  308.   indicate how to install it. - TD
  309. * install lynx.lss only if color-style is configured. - TD
  310. * correct filemode for DJGPP when processing config-file, patch by
  311.   Doug Kaufman). - TD
  312. * add LYNX_LSS_FILE to config.hin, reported by Ambrose Li
  313.   <acli@acli.interlog.com>. - TD
  314. * new copy of INSTALLATION file from HN. - TD
  315. * add COPY* to install rule. - TD
  316. * simplify includes in UCdomap.c by using include-path in makefiles. - TD
  317. * build configure script with patched autoconf to workaround limited
  318.   environment space on CLIX 3.1 - TD
  319. * rename mnemonic_suni.tbl to mnem2_suni.tbl to accommodate 'make' on
  320.   older system with 14-character name-limit. - TD
  321. * sorted some lists (e.g., character sets) which were unreadable. - TD
  322. * incorporate most of FM's changes from 971124 to 971230 (see below). - TD
  323.   (Note:  don't try to use fflush(stdin) -- it's an FAQ -- nonstandard,
  324.   dumps core on some platforms).
  325. 1997-12-30
  326. * Added Unicode translation support for "DosBaltRim (cp775)" and
  327.   "WinBaltRim (cp1257)". - FM
  328. 1997-12-29
  329. * Fixed bug in the order of re-initializations for the 1997-12-22
  330.   get_connection() mods. - FM
  331. * Fixed typos in some LYCharUtils.c comment. - FM
  332. * Fixed typo in LYrcFile.c comments concerning the NO_FROM_HEADER
  333.   symbol. - DK
  334. 1997-12-24
  335. * resolve conflict between autoconf $INSTALL and lynx's INSTALL_PATH
  336.   (reported by Scott McGee). - TD
  337. * modify CF_CHECK_FUNCDECL to work with non-gcc compilers. - TD
  338. * add <stdio.h> to prototype test for getgrgid getgrnam, needed on SVr3. - TD
  339. * add install-lss to makefile.in. - TD
  340. * modify order of includes in LYKeymap.c so that USE_EXTERNALS is defined
  341.   if it comes from userdefs.h (inferred from a report by Larry Virden). - TD
  342. * correct spelling of USE_EXTERNALS which prevented --enable-externs from
  343.   working. - TD
  344. * move assignment to stderr from VMSexit to cleanup function (reported
  345.   by Brian Tillman & FM). - TD
  346. * modify UCChangeTerminalCodepage() to not use stderr, disentangling it
  347.   from stderr/logfile hack. - TD
  348. * rename docs/CHANGES2-* files to docs/CHANGES2.* (reported by
  349.   Doug Kaufman). - TD
  350. * add start_color() call to DOSPATH version of start_curses() to
  351.   fix problem reported by Doug Kaufman - TD
  352. * correct typo in ColorCode() function (reported by Doug Kaufman) - TD
  353. * modify comments in makefile.in (patch by HN) - TD
  354. * minor fixes for CF_CHECK_ERRNO, CF_SIZECHANGE, CF_SLANG_CPPFLAGS
  355.   macros. - TD
  356. * add configure option --enable-nsl-fork to turn on code defined by
  357.   NSL_FORK. - TD
  358. * add configure option --enable-links to turn on code defined by
  359.   UNDERLINE_LINKS. - TD
  360. * add configure option --enable-font-switch, to turn on code defined by
  361.   EXP_CHARTRANS_AUTOSWITCH. - TD
  362. * modify configure CF_CURSES_LIBS test to look also for ncurses,
  363.   since some systems do not have a "curses" library (reported by
  364.   Michael Ritzert). - TD
  365. 1997-12-22
  366. * Reworked -width=NUMBER command line switch for specifying the screen
  367.   width for formatting of dumps (default is 80; forced wraps occur at one
  368.   column less than the screen width, i.e., at 79 by default). - FM
  369. * Tweak of get_connection() in HTFTP.c to re-initialize the elements of
  370.   the connection structure when using a previously allocated connection
  371.   object. - DW & FM
  372. * Mods of LYexit.c, LYClean.c, LYMain.c and LYMainLoop.c to fflush() all
  373.   standard file descriptors in conjunction with all fopen() and fclose()
  374.   operations on the TRACE log and redirections of stderr via equality
  375.   statements (see 1997-12-16, 1997-12-13 and 1997-07-18 mods). - FM
  376. 1997-12-18 
  377. * forgotten last } UN-inserted (John Line) - WB
  378. * few commented messages corrected according to RFC2068 (HTTP1.1)
  379.   (Leonid Pauzner) - WB
  380. 1997-12-17
  381. * Changed all %i tokens to %d or %ld in functions that always get decimal
  382.   values in their arguments. - FM
  383. 1997-12-17 (all patches by Leonid Pauzner)
  384. * open text mode while writing lynx.rc and bookmarks files
  385.   LYrcFile.c and LYBookmark.c (forgotten last } inserted). - WB
  386. * add a comment about binary mode in LYMain.c and pile them 
  387.   in one ifdef - WB
  388. * few misprinted characters (in comments) corrected in
  389.   \chrtrans\cp850_uni.tbl - WB
  390. 1997-12-16
  391. * Further mods in LYClean.c (see 1997-12-13 mods) do block the
  392.   *stderr = LYOrigStderr;  statement in cleanup() for VMS with VAXC. - FM
  393. * Added an ELGOTO keystroke command, mapped by default to upper case 'E'
  394.   (lower case 'e' still invokes the editor for the current document, if
  395.   it is a local file), for passing the URL (or ACTION) of the current
  396.   link to the line editor for editing as a goto URL.  Works like the
  397.   ECGOTO ('G') keystroke command for editing the URL of the current
  398.   document as a goto URL, i.e., if the URL is not modified, is set to
  399.   a zero-length string, or ^G is entered, the command is cancelled. - FM
  400. * Mods of LYMainLoop.c to disallow ECGOTO or ELGOTO commands for File
  401.   Management (DIRED_SUPPORT) menu URLs. - FM
  402. 1997-12-15
  403. * Added reporting of the Discard value (YES or NO), in the Cookie Jar Page
  404.   (note that until we have code for storing cookies beyond the current
  405.   session, Lynx behaves as if Discard were set, whether or not it was set
  406.   by the server, but we still report the server's instructions, as we do
  407.   for the Maximum Gobble Date). - FM
  408. 1997-12-14
  409. * added a lynx.cfg switch to turn on/off extended dos translations for keys. 
  410.   -WB
  411. * added minor DOS tweaks by Doug Kaufman and myself. - WB
  412. * fixed windows binary mode piping. - WB
  413. 1997-12-13
  414. * Tweaks in LYList.c to make the link numbers correspond with those in
  415.   the current document when LINKS_AND_FORM_FIELDS_ARE_NUMBERED in on,
  416.   and to show the current document's URL in the display. - FM
  417. * Mods in HTTP.c to show the body of a 305 return status instead of ever
  418.   acting on it.  A number of security/privacy problems with this status
  419.   are being discussed in the HTTP-WG, and it's likely to be dropped or
  420.   deprecated in the next revision of the HTTP/1.1 specs. - FM
  421. * Restored the v2.7.1 HTmmdecode() that's specific for iso-2022-jp in
  422.   HTMIME.c.  We still only call it when HTCJK == JAPANESE, and the
  423.   generalized version reportedly has problems. - FM
  424. * Removed the *stderr = LYOrigStderr; statement from VMSexit() in LYCurses.c
  425.   and added it to the if() claused section which closes the TRACE log file,
  426.   if opened, in cleanup() of LYClean.c.  This is just a stab in the dark
  427.   for dealing with reported problems on exit with VAXC on VAXen.  We may
  428.   need to use freopen() for redirecting TRACE messages to a file for VAXC
  429.   or VAXen (there's no apparent problem with the current code with DECC
  430.   on VMS/AXP). - FM
  431. * Added more function key cases to the keypad() mode switch() in LYgetch()
  432.   of LYStrings.c.  We don't need them with this code set, but they may as
  433.   well be there for completeness. - FM
  434. * check for and use ncurses default-color extension, use to make the
  435.   color-style configuration usable on xterm with white background. - TD
  436. * add cases in LYgetch() for remaining VT220-compatible codes, reported
  437.   by Michael Ritzert and FM.  - TD
  438. * add configure test to see if slang can be linked without curses or
  439.   termcap libraries, request by John Davis. - TD
  440. * set umask in mkdirs.sh script to work around users who have set root's
  441.   umask to 077. - TD
  442. * split up install rule to install-bin, install-cfg, install-man and
  443.   install-help. - TD
  444. * suppress suffixes in top-level makefile so 'make' won't try to create
  445.   a file named "install" from install.sh - TD 
  446. * make $(CPPFLAGS) inherit consistently from top-level makefile. - TD
  447.   (reported by Mark Mentovai)
  448. * add configure option --enable-externs, to turn on USE_EXTERNS. - TD
  449. * use explicit comparison for enum values, fix compile problem with VAX C
  450.   for UCAux functions (reported by Brian Tillman). - TD
  451. 1997-12-03
  452. * Remove CHANGES.configure, since it is redundant. - TD
  453. * Make -g3 option check for OSF/1 3.2 consistent with -Olimit check. - TD
  454. * Use 'result' rather than 'time' in mktime.c to avoid shadowing. - TD
  455. * Use wborder only if configure finds it, not ifdef FANCY_CURSES. - PHDM
  456. * List of systems having strerror replaced by configure test. - PHDM
  457. * Beautifying of mktime.c (`now' was misleading). - PHDM
  458. 1997-12-02
  459. * Mods in LYCookie.c to prompt whether to accept (or reject) cookies with
  460.   an invalid domain value which yields a hostname prefix with a dot (as
  461.   specified in section 4.3.2 of the IETF cookie drafts and RFC), rather
  462.   than rejecting it silently.  Note that it is rejected in non-interactive
  463.   (-dump or -source) mode, because the user can't be prompted. - FM
  464. 1997-11-27
  465. * Added a PREPEND_BASE_TO_SOURCE configuration symbol in lynx.cfg which
  466.   can be set FALSE to suppress prepending of a Request URL comment and
  467.   BASE element to text/html sources retrieved for 'd'ownloading or passed
  468.   to 'p'rint functions.  Note that this prepending is not done for -source
  469.   dumps unless the -base switch also was included on the command line, and
  470.   the latter switch overrides the setting of the PREPEND_BASE_TO_SOURCE
  471.   configuration variable. - FM
  472. 1997-11-25
  473. * Mods in LYMail.c and LYPrint.c to handle to=address(es), cc=address(es),
  474.   subject=string, keywords=word_list, and body=message fields in the
  475.   ?searchpart of mailto URLs as specified in the 1997-11-16 draft:
  476.     ftp://ftp.isi.edu/internet-drafts/draft-hoffman-mailto-url-03.txt
  477.   The cc=address(es) values are now handled as a Cc: header, and a self
  478.   copy, if confirmed on prompt, is added to the Cc: header.  Note that
  479.   the draft now allows mailto:?to=address(es)[&foo=blah] as a format,
  480.   i.e., without an address before the ?searchpart.  The Netscape
  481.   ?searchpart tack-on broke all pre-existing implementations of mailto,
  482.   and this breaks Lynx's support through v2.7.1.  Though it's now
  483.   supported in this code set, don't use it.  Complaints and formal
  484.   requests to provide this functionality via a new scheme (e.g.,
  485.   mail: or smtp:) without breaking existing implementation of mailto:,
  486.   including from TimBL (HimSelf :), thus far have fallen on deaf ears.
  487.   You can send email to those deaf ears via:
  488.       mailto:masinter@parc.xerox.com%20(Larry%20Masinter)
  489.   Don't allow the IETF backward compatibility principle to go down
  490.   the drain. - FM
  491. * Mods to support use of the PMDF SEND command on VMS in conjunction with
  492.   a temporary header file, so that all headers specified in the ?searchpart
  493.   of mailto URLs can be included in the mailing, and made that the compilation
  494.   default in userdefs.h to go with the default MAIL_ADRS mask for PMDF (If
  495.   the "generic" VMS MAIL utility is used, not all of the headers can be
  496.   specified on the command line, as it requires).  Look at the code in
  497.   LYMail.c and LYPrint.c that is used when isPMDF is TRUE as a model of how
  498.   to do this with other header-file-capable VMS mailers (but I don't have
  499.   any besides PMDF, and can't do it for you :). - FM
  500. * Tweak of the 1997-11-17 URL parsing mods so that relative symbolic
  501.   elements immediately preceding a ?searchpart are handled identically
  502.   to when a ?searchpart is not present. - FM
  503. * Added support for setting both SYSTEM_MAIL and SYSTEM_MAIL_FLAGS in
  504.   both userdefs.h and lynx.cfg. - FM
  505. 1997-11-23
  506. * integrate PHDM's patch. - TD
  507. * Check for existence of sys/wait.h. - PHDM
  508. * Do not include sys/stat.h twice. - PHDM
  509. * New autoconf-macros to check if a function is declared after including a
  510.   specific set of files. - PHDM
  511. * Declare strstr if it is not declared by string.h. - PHDM
  512. * Declare getgrgid and getgrnam if not declared by grp.h. - PHDM
  513. * Provide strstr and mktime implementations, and use them if needed. - PHDM
  514. * Always include sys/types.h in HTUtils.h. - PHDM
  515. * define NO_GROUPS if we do not have getgroups. - PHDM
  516. * define NEED_REMOVE also if test yields unknown. - PHDM
  517. * define mode_t if not done by system include files. - PHDM (phdm@macqel.be)
  518. * change CF_UNION_WAIT to use compile+link rather than compile, to ensure
  519.   that we pick up the wait-macros rather than an implied function, which
  520.   should fix configure problems on NeXT for Francisco A. Tomei Torres
  521.   <fatomei2@mail.unm.edu>. - TD
  522. * spelling nit from Larry Virden. - TD
  523. * add osf3.0 to special case compiler options using -g3 in place of
  524.   -O -g, from Harsh Kumar <harsh@krcl.ernet.in>. - TD
  525. * remove redundant "-c" option from $(installbin) in makefile.in, reported
  526.   by Michael Warner <warner@wsu.edu>, for OSF/1 4.0. - TD
  527. * if configure --srcdir is not used, comment-out rmdir's in "make distclean"
  528.   rule. - TD
  529. * modify recent erase/clear change so that it applies only to FANCY_CURSES,
  530.   since BSD curses does not otherwise clear the screen when restoring after
  531.   popup. - TD
  532. * modify change for boxes so this builds with BSD curses, which has no
  533.   wborder() function. - TD
  534. * reverse ifdef for NO_SIZECHANGEHACK to USE_SIZECHANGEHACK, which is
  535.   normally off, since this code did not work with BSD 4.4 curses, SVr4
  536.   curses, or ncurses 4.1 with xterm. (Will make a configure test if anyone
  537.   can identify a configuration that works). - TD.
  538. 1997-11-21
  539. * Changed LYE_LINKN to LYE_LKCMD (still mapped by default to Ctrl-V; may
  540.   need to be entered twice for some systems) for invoking a prompt to
  541.   enter any Lynx keystroke command when in form text fields. - FM
  542. 1997-11-20
  543. * Added an LYK_CLEAR_AUTH command, mapped to underscore ('_') by default,
  544.   which clears all authorization info for the current session.  This is
  545.   recommended for the situation when one leaves one's terminal but doesn't
  546.   want to end the browser session, nor want others to be able to retrieve
  547.   protected documents with previously entered username and password info.
  548.   Note that we don't yet have a way to block access to any protected
  549.   documents which are still in cache. - FM
  550. 1997-11-19
  551. * Tweak of HTTP.c to ensure closing of the connection when interrupted
  552.   ('z'apped) on the first socket read. - FM
  553. 1997-11-18
  554. * Mods to use the explicit label "Bad HTML:" in trace messages corresponding
  555.   to BAD_HTML_USE_TRACE messages. - FM & KW
  556. * Tweak of the restored TABLE-in-PRE block handling to deal with the
  557.   case when it's encased in a CENTER or DIV with ALIGN="center". - FM
  558. * Changed docs/README.defines to refer to INSTALLATION file - HN
  559. 1997-11-17
  560. * Changed the default ASCII BOXVERT and BOXHORI definitions from '*' to
  561.   to '|' and '-', and new function LYbox() for non-VMS (n)curses. - FM
  562. * Use explicitly specified characters for drawing the corners of popup
  563.   boxes with non-VMS (n)curses if we have also specified characters for
  564.   vertical and horizontal lines. - KW
  565. * Mods in HTTP.c to trim any "LYNXIMGMAP:" leader from Referer header
  566.   values and strip the #fragment when making http(s) requests via links
  567.   in the pseudo-documents constructed for MAP elements. - FM & KW
  568. * Mods of SGML parsing to better handle SELECT blocks with invalid markup,
  569.   in effect for both TagSoup and SortaSGML parsing (for the latter just
  570.   in case it doesn't already prevent invalid markup from being passed on). 
  571.   Only OPTION elements are accepted in SELECT blocks.
  572.   Otherwise, if the element is a form-related start tag, the
  573.   SELECT block is closed and the new form-related element is started.
  574.   All other elements are ignored.  A FORM end or start tag ends any open
  575.   SELECT block and the current FORM (before starting another FORM if
  576.   it is a start tag).  Note that we now support SELECT blocks outside
  577.   of FORM blocks, which some providers are using for "informational"
  578.   popups, but no Lynx user would do anything that awful, right? - FM
  579. * Tweak in LYMainLoop.c to override an LYresubmit_posts flag if we are
  580.   reloading a popped document due to a NOT_FOUND or NULLFILE return
  581.   value from getfile(). - FM
  582.   (But if the document that would be loaded after such a failure has POST
  583.   data and is not in memory, still jump to the PREV_DOC code, see enttry
  584.   for 1997-11-03. - KW)
  585. * Worked in a variant of AJL's suggestion of setting LINES and COLUMNS
  586.   artificially high before the initscr() call with Unix curses, then
  587.   using a dummy call to size_change() for setting LYlines and LYcols
  588.   to the actual screen dimensions, so that increases in the screen size
  589.   during the Lynx session, and not just decreases, can be handled.
  590.   Note that one still needs to do a RELOAD (^R) overtly to create a
  591.   new HText structure based on the current screen size. - FM
  592.   (The new code can be disabled by defining NO_SIZECHANGEHACK, in case
  593.   some curses version or terminal cannot deal with it. - KW)
  594. * Tweaks of the chartrans code. - FM & KW
  595. * Change in HTNews.c to ignore very long bogus newsgroup names when listing
  596.   available groups. - KW
  597. * Tweaks in code for highlighting search text in anchors, to better deal with
  598.   terminals in UTF-8 mode. - KW
  599. * Mods to ignore anything past a '?' character when simplifying URL paths,
  600.   as is now more clearly specified in the Fielding URL draft.  Note that
  601.   we still assume a ';' is not in fact a parameter delimiter, or won't
  602.   have a value with characters that could be misinterpreted as relative
  603.   path specs. - FM
  604. * Increased the redirection limit to the original Lynx's value of 10,
  605.   because the HTTP/1.1 draft no longer will restrict it to 5, but instead
  606.   will leave it to the discretion of the browser (and I like 10, as a
  607.   reminder of the "good old days" :). - FM
  608. 1997-11-15
  609. * Mods of parsing in HTML.c to restore support for the TABLE-in-PRE-block
  610.   HTML kludge described in http://ppewww.ph.gla.ac.uk/~flavell/tablejob.html,
  611.   which stopped working in conjunction with the 1997-05-21 mods (see below)
  612.   for treating TABLEs as DIVisions to support ALIGNment attributes in TABLE
  613.   markup.  The PRE-in-TABLE-block HTML kludge was not affected by those mods
  614.   but works only with the TagSoup parsing mode. - FM & KW
  615. 1997-11-12
  616. * Made handling of the 'x' in hexadecimal character references (&#xH;)
  617.   case insensitive, as for the "alphabetic digits" (a-f, A-F). - FM
  618. * Added a LINKN command key in the line editor, mapped to Ctrl-V, for
  619.   invoking the F_LINK_NUM prompt when in form text fields.  Ctrl-V is
  620.   still a dead key under other circumstances in the line editor. - FM
  621. * remove options --with-lss-file and --with-cfg-file, since the corresponding
  622.   files will always be installed under $(libdir), reported by Henry Eric
  623.   Nelson (HN).  - TD
  624. * modify configure script and makefile templates to permit builds with the
  625.   --srcdir option, noted by Philippe De Muyter. - TD
  626. 1997-11-08
  627. * Added Unicode support for "DosArabic (cp864)", "WinArabic (cp1256)",
  628.   "DosGreek (cp737)", "DosGreek2 (cp869)", "WinGreek (cp1253)",
  629.   "DosHebrew (cp862)", and "WinHebrew (cp1255)".  Note that we still
  630.   have no code for taking DIR attributes, or directionality in general,
  631.   into account. - FM
  632. * Mods to handle "cp-#" charset names as synonyms for "cp#", and some
  633.   cp# names as synonyms for "windows-#". FM & KW
  634. 1997-11-07
  635. * Change of LY_SLrefresh() in LYCurses.c as suggested by JED - FM
  636. * add logic to make install-directories as needed. - TD
  637. * remove --disable-char-trans option (ifdef's still remain). - TD
  638. * correct type used in first compile-test for union wait. - TD
  639. * correct order of deletions in "make distclean" rule. - TD
  640. * new versions of macros used to check for ncurses version. - TD
  641. * don't suppress -I/usr/local/include when checking -I/usr/local/include/*,
  642.   to accommodate older versions of gcc. - TD
  643. 1997-11-06
  644. * Use erase() instead of clear() in some places, to avoid unnecessary full
  645.   screen repainting even for UNIX (and similar) curses.  Renamed LY_SLclear
  646.   to LY_SLerase, but it is used for erase() and clear() now, so there should
  647.   be no change in behavior for slang introduced by this. - KW
  648. * Added new format for lines in chartrans .tbl files: U+NNNN "a string" where
  649.   the string can have C backslash-escaped characters.  This allows to write
  650.   replacement strings with 8-bit characters that won't be garbled when the
  651.   .tbl files are transferred in some non-binary way.  Note there is no ':'
  652.   between the Unicode value and the beginning quote character. - KW
  653. * Changes to HTMLDTD.c (for SortaSGML parsing) and HTML.c (second line of
  654.   defense) for dealing with invalid SELECT tags.  Also tolerate SELECT
  655.   outside of forms. - KW
  656. * Change in HTLocalName for DOSPATH so that it doesn't depend on whether
  657.   HTDOS_name returns a pointer to static memory or not. - KW
  658. * Started new file docs/README.defines.  Renamed CHANGES to CHANGES2-7,
  659.   removed duplicate 2-7-1 entries.  Minor changes to INSTALLATION, other
  660.   files.  CHANGES.chartrans is gone. - KW
  661. * Tweaked color style stuff again.  Statusline may behave better. - KW
  662. * Don't use memmove for HEAD in HTNews.c. - KW
  663. * For UNIX, use normal umask permissions, instead of the extra-cautious temp
  664.   file permissions, for files saved to disk by the default actions for PRINT
  665.   and DOWNLOAD. - KW
  666. * Changes (untested) in the code dealing with reading of compressed files in
  667.   HTFile.c, in parallel to the code for other systems. - KW
  668. * Mods to avoid va_start redefinition warnings when building with slang. - FM
  669. 1997-11-05
  670. * Change in LYForms.c to avoid full screen repaint after popup is retracted
  671.   for slang. - KW & FM
  672. 1997-11-03
  673. * Internal links code revised.  Some details follow, but first a summary
  674.   of the basic premises.  Links in a document given as href="#fragment" or
  675.   href="" (empty, but href attribute is present) mean something different
  676.   from href="url#fragment" or href="url" (where url is a non-empty absolute
  677.   or relative URL not including a fragment), they are internal links pointing
  678.   to an element or a location within the same copy of the document (or to the
  679.   document itself, for href="").  In contrast, a URL-Reference with a non-
  680.   empty URL refers to a (generally...) external resource.  If the "url"
  681.   happens to coincide with (or, if it is relative, resolve to) the URL from
  682.   which the current document was retrieved, the current document is a 
  683.   representation of the resource, but not the same thing.  In most such cases
  684.   we can treat href="#fragment" and href="url#fragment" the same way, i.e.
  685.   activating such a link is interpreted as a request to reposition within
  686.   the current document; we are using the current document as a cache copy
  687.   of the resource (like we would other documents in the memory cache).  But
  688.   if we have marked our copy as no-cache, it seems more consistent to treat
  689.   activation of a href="url#fragment" link as a request for retrieving a
  690.   new copy and _then_ locating #fragment in it, as we do for "any-other-url
  691.   #fragment" if we have cached a document which represents "any-other-url"
  692.   and which is marked no-cache.  Following a href="" link should just result
  693.   in repositioning to the start of the document, not in a new retrieval for
  694.   no-cache documents.
  695.   If the current document is the result of a POST submission, there is in
  696.   general no way to refer to its underlying resource with a URL, since there
  697.   is no URL notation for "url+post_data".  Internal links can be used within
  698.   the context of this document, but there is no way to hyperlink to it or
  699.   parts of it from "outside".  A link to a href="url" or href="url#fragment"
  700.   target should always imply a GET retrieval, whether it occurs within a
  701.   document from a POST submission or not, for consistency.
  702.   This understanding also applies to other than <A href=..> uses of URL-
  703.   References in documents, for example the link implied between a USEMAP
  704.   attribute and a MAP element; but not to all uses, for example a FORM's
  705.   ACTION requires an external resource and not an internal reference, so
  706.   ACTION="" is resolved to an absolute URL (using a base URL if one is
  707.   given).
  708.   The semantics for URL-less URL-References are given in Internet Draft
  709.   <http://www.ics.uci.edu/~fielding/url/draft-fielding-url-syntax-09.txt>,
  710.   including that "Traversal of such a reference should not result in an 
  711.   additional retrieval action."  No comparable prescriptions are made for
  712.   references which have a URL, in particular it is not stated that they
  713.   should be treated as equivalent when the URL coincides with or resolves
  714.   to the current document's retrieval URL.
  715.   The changes to the Lynx code attempt to implement what is outlined above,
  716.   by keeping track of how a link destination was originally specified. href=
  717.   "#fragment" and href="" links are still "resolved" into a "url#fragment"
  718.   and "url" form, for use internally, and if an explicit NOCACHE action is
  719.   requested, and for generating lists of links etc., and in general for use
  720.   outside of the context of the current document.
  721.   To the best of my knowledge they do not lead to unwanted (or misdirected)
  722.   resubmission of POST content without prompting the user for confirmation
  723.   (although the prompt texts probably need improvement). - KW
  724. * The notion of the context of the "current document" is extended, so that
  725.   auxiliary LYNXIMGMAP documents generated by Lynx are within the scope of
  726.   the underlying document, i.e. the document containing the MAP and AREA
  727.   elements.  Although they are treated as separate documents for display
  728.   and internal handling, following links between the underlying document
  729.   and its LYNXIMGMAP documents will result in display from cached data
  730.   (if available) even for no-cache documents, if a fragment-only (or empty)
  731.   URL-Reference was used in the HTML.  This includes the link generated for
  732.   pointing from the IMG to the LYNXIMGMAP if the USEMAP attribute value was
  733.   was fragment-only; the LYNXIMGMAP is normally regenerated from the list
  734.   of MAP and AREA elements kept internally when a link to it is activated.
  735.   (Note that a LYNXIMGMAP screen is still not reloaded from external sources
  736.   even when RELOAD or NOCACHE keys are used, if data for the MAP is found
  737.   in the internal list; but that reloading the underlying document will
  738.   refresh the internal lists.) - KW
  739. * List Page screens are also in the context of the underlying document, so
  740.   that internal links in the underlying document can be listed and activated
  741.   from the List Page.  When following an internal link from a List Page, it
  742.   is not pushed on the history stack (similar to the History List Page), to
  743.   reduce the chance of confusion when walking back through history. - KW
  744. * LYNXIMGMAP and List Page auxiliary documents can now be associated with
  745.   POST data.  This does not mean that the data is posted to a "LYNXIMGMAP:"
  746.   or "file:" URL, which is impossible; but that the underlying document is
  747.   associated with the POST data.  This way these aux documents can still
  748.   have links regarded as "internal" pointing to the document of which they
  749.   are logically a part, keeping track of what POST data are applicable if
  750.   several form submissions have occurred.  Normally the underlying document
  751.   should be in the document cache when such a link is activated, so that
  752.   resubmission of the POST can be overridden.  If it is not found,
  753.   resubmission may happen after user confirmation.  Although the POST data
  754.   content is not shown on such aux pages, it can be inspected with the INFO
  755.   ('=') command.  Note that the association of LYNXIMGMAPs and List Pages
  756.   with POST data automatically excludes them from various operations which
  757.   may otherwise be possible, such as bookmarking or inclusion in the
  758.   'V'isited Links Page.  Note also that such aux pages are treated internally
  759.   as different documents from their POST-free counterparts with the same
  760.   address, which might be generated for example after typing the address
  761.   at a 'g'oto prompt while viewing a different text.  It may be possible to
  762.   generate confusing situations, but regenerating the displayed data (by
  763.   invoking 'L'IST again, or by following a LYNXIMGMAP: link) will always
  764.   show the currently applicable information.
  765.   For image maps, the change implements link-following capabilities which
  766.   come naturally to graphical UAs, which can handle IMG USEMAP and the
  767.   corresponding MAP elements from the same data stream as objects within
  768.   the same document instance. - KW
  769. * To implement the above, MAP and AREA information from a POST response is
  770.   not kept in the global list shared by all other documents, but in a separate
  771.   list specific to the underlying (containing) document and the POST data.
  772.   The specific lists are managed with the underlying document's anchor
  773.   structure so that they can automatically expire after the anchor is removed
  774.   from memory and will not stay around and accumulate until session end. - KW
  775. * POST data is kept in mainloop when following an internal link, but is now
  776.   always dropped for links that were given with a URL.  This removes the
  777.   limitation by which a link in a POST response to the URL of the POST
  778.   submission script would be inappropriately converted to a resubmission of
  779.   the POST data.  (example: search form from <http://www.marshall.edu/htbin/
  780.   calendar>) - KW
  781. * Changes to the PREV_DOC handling in mainloop.  When encountering documents
  782.   that may need to be reloaded while walking back in history, because they
  783.   have POST data associated and are not marked "safe" and are either not found
  784.   in the memory cache or -resubmit_posts has been set, the user is prompted
  785.   for confirmation as before; if the reply is 'n' the document will be skipped
  786.   but if the user cancels with ^G the walkback operation is cancelled and the
  787.   currently viewed document remains loaded.  Some of the aux documents which
  788.   can new be associated with POST data may be automatically skipped if their
  789.   document structures are not any more in memory. - KW
  790. * When following a link marked internal from a List Page and confirmation is
  791.   required, ^G may also have the different effect of cancelling the operation
  792.   while responding 'n' may attempt to follow the link as a GET request (i.e.
  793.   with POST data dropped). - KW
  794. * In some situations, automatic popping from the history stack in mainloop
  795.   after getfile fails to load a new document could lead to resubmission of
  796.   a previous POST request without prompting.  This is now avoided by jumping
  797.   to the code handling PREV_DOC. - KW
  798. * Use new LYinternal_flag variable for propagating info to HTAccess, rather
  799.   than overloading LYoverride_no_cache. - KW
  800. * Tweaks for bad form tag soup with crashes on unclosed SELECT.  Changes in
  801.   HTML.c and GridText.c to prevent memory leaks resulting from insanely
  802.   placed or unclosed form field tags, hopefully not introducing other
  803.   problems... - KW
  804. 1997-11-02
  805. * Changes in HTParse's scan to leave additional '#' characters alone after
  806.   the first has been found when scanning (from left) for fragments, and
  807.   to apply the "don't treat '#' as start of a fragment for some kinds of
  808.   URLs" hack only when the '#' will become part of what has been scanned
  809.   as a path.  NNTP articles with more than '#' in the message-id are now
  810.   accessible with the "news:" or "nntp:" schemes.  We should actually always
  811.   escape when generating URLs and unescape when parsing them instead. - KW
  812. * Changed HTUnEscape to leave '%' alone if not followed by two valid hex
  813.   digits. - KW
  814. * Allow the HEAD key and -head and -mime_header flags for "lynxcgi:" URLs
  815.   and for "news:" and "nntp:" URLs that specify a single news article. - KW
  816. * Change to writing of POST data in LYCgi.c, to close file descriptor after
  817.   done writing and before reading as suggested by mhw@bcs.org.uk (Mark
  818.   H. Wilkinson), and to check status from the write() call and retry if
  819.   needed.  Note that the code is not appropriate for handling large
  820.   amounts of POST data, since it still first does all the writing and
  821.   then all the reading. - KW
  822. 1997-11-01
  823. * Added support for presentation of text/plain files in SOURCE ('\') mode,
  824.   homologously to text/html files, rather than treating the command as a
  825.   synonym for 'd'ownload when viewing a text/plain file.  Note that if the
  826.   text/plain file has no long lines, the display of it will not change,
  827.   but otherwise, the long lines will not be wrapped in SOURCE mode, and
  828.   thus can be 'p'rinted without line wrapping.  One still should use
  829.   'd'ownload for a faithful copy of the file, i.e., without charset
  830.   conversions and expansions of TABs. - FM
  831. 1997-10-30
  832. * Get numbering of links on List Page right, by faking hidden links for
  833.   form fields which get counted but are not selectable. - KW
  834. * Allow LYNXHIST: links in List Page since the History Page may get 
  835.   'L'isted... - KW
  836. * Mods of HTML.c parsing to close any open Anchor or emphasis elements
  837.   at the starts of TABLE elements, as the Big Two's TABLE handlers appear
  838.   to do now. - FM
  839. * Tweaks of charset handling via META elements and CHARSET attributes. - FM
  840. 1997-10-29
  841. * Tweak of SortaSGML DTD for insane HTML with FORM start before HEAD. - KW
  842. * Prevent memory leaks from HTChunks for option and textarea with very
  843.   bad markup, added TRACE and BAD_HTML_USE_TRACE warnings for those. - KW
  844. * Don't call tigetnum("ncv") for _WINDOWS - BD
  845. * Added Unicode tables for the "DEC Multinational", "Macintosh (8 bit)",
  846.   and "NeXT character set" display character sets. - FM 
  847. 1997-10-28
  848. * Disable setting of the `reloading' flag in HTLoadDocument which would
  849.   generate no-cache headers for request where this is not appropriate. - KW
  850. * Memory leak for first OPTION in SELECT removed. - KW
  851. * Changed HTDOS_name to not return pointer to static area. - Binh Do
  852.   <bdo@mailman.epnet.com>
  853. * Changes to INSTALLATION file. - HN
  854. * Fix in HTMIME.c to recognize Content-location. - KW
  855. 1997-10-27
  856. * Don't disable FORMs that have INPUTs with TYPE="file" or TYPE="range"
  857.   since those fields may be optional and the rest of the FORM may be
  858.   valid to submit. - FM
  859. * Updated links to www.w3.org in help files. - KW
  860. * Some changes for DOS compilation. - DK
  861. * Changes to INSTALLATION file. - HN
  862. * Tweaks of internal links stuff. - KW
  863. * Allow HEAD on URLs starting with LYNXIMGMAP:http by stripping the
  864.   prefix. - KW
  865. * Reverted LYCheckForCSI() to previous incarnation. - KW
  866. 1997-10-26
  867. * If compiled with -DDONT_TRACK_INTERNAL_LINKS, behavior with respect to
  868.   internal links as in FM's code. - KW
  869. * Some chartrans tweaks. - KW
  870. 1997-10-25
  871. * Changes to INSTALLATION file. - HN
  872. * Make temp file names conform to 8+3 naming convention for DOS, and
  873.   give LYNX_TEMP_SPACE priority over TEMP and TMP for DOS. - DK
  874. * Create temp file names with '-' char as separator between pid and
  875.   sequential number for non-8+3 systems, to prevent (unlikely)
  876.   collision. - KW
  877. 1997-10-24
  878. * Change in HTML.c to use the base (rather than current document, if the
  879.   base differs) in all cases for form ACTIONs (i.e., if the ACTION is
  880.   empty, or has a lone fragment, or an ACTION attribute is not included)
  881.   as specified in the -07 to -09 Fielding URL drafts. - FM
  882. 1997-10-23
  883. * Fixed a few typos and glued together a few URLs to make it easier for
  884.   folk to cut and paste them, in the new INSTALLATION file. - LVW
  885. 1997-10-22
  886. * Many locations of files changed, about_lynx/ directory and references to
  887.   aboutfilepath removed, userdefs.h reorganized, changed README, new 
  888.   INSTALLATION file, doc changes, some doc files removed. - HN
  889.   (Removed paragraph in README which doesn't apply yet, some files still
  890.   not done - KW)
  891. * Patch to WWW/Library/djgpp/makefile - WS
  892. * Added entity names from HTML 4.0 draft to extra entities in HTMLDTD.c - KW
  893. * Understand lists in ACCEPT-CHARSET attributes.  Added a list of forms
  894.   to GridText structure (currently underused). - KW
  895. * Don't try to use box drawing chars in UTF-8 display mode. - KW
  896. * Changed chartrans mechanism (UCdomap.c, makeuctb.c) so that the "default"
  897.   translation table is now used as a fallback for other translation tables.
  898.   This also applies to display character sets which do not have a chartrans
  899.   table file but are listed in LYCharSets.c.  Changed syntax of table files
  900.   (see src/chrtrans/README.format), added a keyword to disable using the
  901.   fallback.  Currently def7_uni (corresponding to "7 bit approximations"
  902.   and the MIME charset "us-ascii") is used as default table, as before;
  903.   but previously the default table didn't have any real meaning.
  904.   Conceptually every translation table (unless it disables fallback) is
  905.   extended as if it included all the replacements from the default table.
  906.   Note that mappings for some characters in the default table file still
  907.   differ from the old mappings given in LYCharSets.c, and what is displayed
  908.   e.g. for umlaut characters may not be consistent, this still has to be
  909.   sorted out.  It may just have become more visible now. - KW
  910. * Tweaks to some replacement strings in def7_uni.tbl; contributions of
  911.   more useful strings would be welcome... - KW
  912. * Removed mappings for invalid chars from some chartrans files, removed
  913.   Ethiopic chars from iso01_uni.tbl. - KW
  914. * Some other corrections and tweaks for chartrans mechanisms. - KW
  915. 1997-11-21
  916. * Fixed handling of Control-D (delete character under the cursor) in the
  917.   line editor when the cursor is at the end of the line instead of on a
  918.   character in the string being edited. - FM
  919. * revised tests for wait/waitpid/union-wait. - TD
  920. * correct/update handling of default prefix in CF_WITH_PATH macro, used for
  921.   parsing --with-cfg-file and --with-lss-file options.  - TD
  922. * add uninstall target to top-level makefile. - TD
  923. * remove redundant install options from $(INSTALL_DATA). - TD
  924. * add configure --with-lss-file option.
  925. * minor cleanup of gcc warnings, ifdefs. - TD
  926. 1997-10-20
  927. * Mods in the CSO/PH gateway to set the anchor's safe flag to TRUE so the
  928.   user need not be bothered with confirmation prompts on resubmissions of
  929.   the search form. - FM
  930. * Tweaked the break point setting code in GridText.c for CJK di-bytes
  931.   so that one is set after a recognized "ESC(" ISO 2022 escape sequence
  932.   has been found. - FM
  933. 1997-10-16
  934. * Tweaks to recognition of Japanese (better recognize x-euc-*), and to
  935.   the mechanism in GridText.c keeping track of which encoding is used for
  936.   Japanese.  The state for this is now reset on explicit '\n' and '\r'
  937.   received by the HText object in addition to space chars. - KW
  938. * Tweaks in HTTP.c to avoid access to uninitialized memory and pacify
  939.   paranoid dbx. - KW
  940. * Try to more consistently remember the charset in effect for a document
  941.   when going to SOURCE view, using new LYUC{Push,Pop}Assumed functions.
  942.   Note that this is only in effect immediately when switching to SOURCE
  943.   view; any later reloading while within SOURCE view (including those
  944.   caused by RELOAD, RAW_TOGGLE and other keys, or by Options Screen changes)
  945.   may still revert to the usual assumption about charset, which means a
  946.   charset specified in a META tag may be forgotten at that point; this may
  947.   be considered a feature... - KW
  948. * Refer to TagSoup and SortaSGML parsing (coined by FM), rather than "old"
  949.   and "new" DTD. - KW
  950. * Made some of the changes concerning and removal and location changes of
  951.   files proposed by HN. - KW
  952. * Restored LYCheckForCSI example function to its previous form, with a check
  953.   added and comments added. - KW 
  954. 1997-10-15
  955. * Changed the order of display character set entries for the options menu
  956.   popup.  "ISO Latin 1" and its "DosLatin1 (cp850)" and "WinLatin1 (cp1252)"
  957.   equivalents come first, then the system-based charsets (note that I
  958.   changed "IBM PC character set" to "DosLatinUS (cp437)"), then the CJK
  959.   and Vietnamese charsets, then "Other ISO Latin" (probably don't need
  960.   that one any more), then the known ISO 8859-# charsets with their
  961.   homologs (e.g, Dos and Win Cyrillic and KOI8-R) in groups, then
  962.   "UNICODE UTF 8" and the Unicode mnemonic charsets. - FM
  963. * Various fixes for color style code, should prevent memory corruption. - KW
  964. * Some LYCharUtils.c cleanup. - KW
  965. * Added some of the changes from fotemods to SGML.c, especially handling of
  966.   ‌ as allowing a line break, and conversion to UNICODE UTF-8. - KW
  967. * Mods in code handling mailcap lines, to avoid access to invalid memory. - KW
  968. 1997-10-12
  969. * Added LYLeakSACopy and LYLeakSACat to LYLeaks.c.  Running Lynx compiled
  970.   with LY_FIND_LEAKS defined will now give the source locations where
  971.   StrAllocCopy and StrAllocCat are used, if those create leaks.  Added
  972.   missing include of LYLeaks.h in LYCookie.c. - KW
  973. * More heavy tweaks in LYCharUtils.c.  Associated changes in HTChunk.c
  974.   (new functions), small change for -raw (in connection with attribute
  975.   values) in SGML_character.  LYCharUtils.c is still a work in
  976.   progress... - KW
  977. * Tweaks to allow some chars as data input (0x97, 0x9b, 0xa0) if the
  978.   current display character set seems to have those values as printable
  979.   characters (by testing LYlowest_eightbit[]). - KW
  980. 1997-10-11
  981. * Mods in HTFTP.c to recognize NetPresenz server (variation of AppleShare
  982.   claiming to be Peter Lewis server?, try current ftp://www.unicode.org/),
  983.   and to show server's identification from initial greeting on info
  984.   screen for FTP URLs.  Other cosmetic changes in HTFTP.c. - KW
  985. * Fixed various memory leaks. - KW
  986. * Some more minor cleanup tweaks for color style code. - KW
  987. * Avoid unnecessary pauses if TRACE is on and a Trace Log file is in use. - KW
  988. 1997-10-10
  989. * Renamed lynx_help/keystroke_commands/ directory to lynx_help/keystrokes/
  990.   for the benefit of DOS, and changed references accordingly. - KW
  991. * Changed parsing of command line options for -lss file, it should now
  992.   be used and override the default from userdefs.h or environment variables
  993.   as advertised. - KW
  994. * More tweaks and cleanup in HText_SubmitForm. - KW
  995. * Code to recover from memory exhaustion, sometimes.  The requests for
  996.   dynamic memory which heuristically most often fail for lack of memory
  997.   when rendering large documents are the calloc() calls in split_line.
  998.   They are replaced by LY_check_calloc() which has the same calling
  999.   conventions as calloc() but additionally checks if "enough" memory is
  1000.   available for the requested amount plus some margin and tries some
  1001.   remedial action if this is not the case.  The additional safety margins
  1002.   are required to make it likely that other allocation requests in other
  1003.   places of the program won't fail before the next check.  The actions
  1004.   which may be taken in order to avoid exiting if low memory is detected:
  1005.   (1) Try to unload cached documents (other than the one currently being
  1006.   loaded), until we seem to have enough memory.  (2) If that fails (or
  1007.   there are no other documents cached in memory), try to fake a 'Z' key
  1008.   interruption; this will have the same effect as if the user had pressed
  1009.   'Z' so it will only detected if some other part of the program tests
  1010.   HTCheckForInterrupt() and acts on it.  (3) If this seems not to be
  1011.   sufficient to stop loading, halt appending of normal text data to the
  1012.   document structure (A warning *** MEMORY EXHAUSTED *** is appended
  1013.   instead). - KW
  1014. * A tweak of color style memory allocation. - KW
  1015. 1997-10-09
  1016. * Some more tweaks from FM for VMS build - KW
  1017. * For DJGPP compilation, src/chrtrans/makefile.dos - WS (Bill Schiavo
  1018.   <Wschiavo@concentric.net>)
  1019. * Some cleanup in Hext_SubmitForm (needs more). Start using ACCEPT-CHARSET
  1020.   (doesn't recognize list yet, only recognized if on the INPUT field that
  1021.   causes submission). - KW
  1022. * Added two test files for iso-8859-2 charset. - KW
  1023. * Tweaks in LYMainLoop.c for various keys that page up, to better preserve
  1024.   keep the current link selected if possible and to correct a glitch with
  1025.   UP_LINK. - KW
  1026. * Reorder text/html and text/plain to the beginning of HTPresentations list,
  1027.   so they will be found more quickly and will appear at the beginning of
  1028.   Accept request header fields. - KW
  1029. 1997-10-08
  1030. * add logic to implement mouse button 2 "previous document" for
  1031.   ncurses configuration. - TD
  1032. * add dependencies on 'lynx' to top-level 'all' and 'install' rules
  1033.   in makefile.in - TD
  1034. * add osf4.0 to special case compiler options using -g3 in place of
  1035.   -O -g, for Heikki Kantola <hezu@iki.fi>. - TD
  1036. * correct some of the uninitialized-variable warnings. - TD
  1037. * Removed the compilation of the old libwww-FM HTAlert.c module for VMS,
  1038.   as previously removed for Unix. - FM
  1039. * Added comments and tweaks of build.com, build-slang.com and libmake.com,
  1040.   (and a complementary tweak of tcp.h) to make more clear how compiler
  1041.   definitions and compiler and linker options can be added. - FM
  1042. 1997-10-07
  1043. * Changed PROBLEMS file for ^Z and for "forgetting emphasis of link text"
  1044.   problem (which shouldn't occur any more). - KW
  1045. 1997-10-05
  1046. * Changed SGML.c parsing of unrecognized and invalid start tags. If the
  1047.   '<' character in HTML is followed by a 7-bit letter character, we now
  1048.   do tag parsing even if the element name is not recognized, instead of
  1049.   going to 'S_junk_tag' mode, so that a '>' embedded in an attribute value
  1050.   (which may also be part of a CJK character's encoding) will not
  1051.   prematurely end the tag.  (But "soft double-quotes parsing" mode is
  1052.   recognized.)  Treat a '<' followed by most other 7-bit chars as data,
  1053.   i.e. recover it and the following char. - KW
  1054. 1997-10-04
  1055. * Corrected check for empty string at beginning of LYUnEscapeEntities. - KW
  1056. * Squeezed option for "Assume charset if unknown:" into Options screen.
  1057.   It is selected with a control char (^A), is only available in Advanced User
  1058.   mode, and the value is currently not saved into .lynxrc with '>', i.e.
  1059.   for a persistent change lynx.cfg has to be modified (or use an alias or,
  1060.   for DOS, a batch file to call lynx with -assume_charset=...).  The
  1061.   interaction with the Raw M(O)de setting may be confusing (or confused :) ),
  1062.   and it is possible to set nonsensical values that have no effect. - KW
  1063. * Changed order and criteria of transformation attempts in HTPlain.c to
  1064.   be more like SGML.c.  For plain text KOI8-R would use 8-bit stripping
  1065.   to early.  HTPlain_write still is too different from SGML_character... - KW
  1066. * Reinstate the slash after special interpretation of /~ at beginning of 
  1067.   file URL path for DOSPATH - DK 
  1068. * Changed SGML_character to not try to convert attribute values to UTF-8
  1069.   if HTCJK is in effect (arrggh!) - KW
  1070. * Changed effect of -raw / '@' for CJK display character sets: it now toggles
  1071.   the effective charset assumption between that specified with ASSUME_CHARSET
  1072.   or -assume_charset (or iso-8859-1 if none given) and the charset that
  1073.   corresponds to the selected display character set, as for non-CJK.  An
  1074.   exception is made if both charsets are CJK charsets, so that the toggle
  1075.   will still have the function of toggling CJK mode on and off.  Explicitly
  1076.   specifying a CJK charset as assumed is currently not very useful, since we
  1077.   cannot translate from that to other character sets. - KW
  1078. * Oh, by the way: compilation without defining EXP_CHARTRANS won't work any
  1079.   more.  Regard #ifdef EXP_CHARTRANS as some strange kind of comment for
  1080.   now, until it goes away. - KW
  1081. * Write comment at top of .lynxrc file to make clear that it is different
  1082.   from lynx.cfg, suggested by LWV. - KW 
  1083. 1997-09-30
  1084. * Changed order of display character sets on options screen a bit, and
  1085.   corrected charset listings in lynx.cfg and userdefs.h files - KW
  1086. * Added comment on lynx.lss in userdefs.h, moved it. - KW
  1087. 1997-09-27
  1088. * Made TRACE messages which correspond to BAD_HTML_USE_TRACE warnings stand
  1089.   out more by decorating them with ***** characters, so that users who
  1090.   follow the BAD_HTML_USE_TRACE advice can more easily find the relevant
  1091.   messages. - KW
  1092. * Reworked LYUnEscapeEntities() while loop into a (hopefully) more 
  1093.   understandable and consistent state-based switch, and integrated
  1094.   LYUnEscapeToLatinOne functionality. - KW
  1095. * Non-ASCII characters in URLs and similar strings encountered in the HTML.c
  1096.   processing (previously handled by LYUnEscapeToLatinOne) are now generally
  1097.   URL-encoded, instead of doing this just for 8-bit characters which are
  1098.   the result of entity expansion.  There is no clear standard definition what
  1099.   non-ASCII characters in URLs in HTML attributes (HREF etc.) actually mean,
  1100.   especially if the transmission character encoding is something else than
  1101.   iso-8859-1.  Leaving them as the raw byte values as received runs against
  1102.   the HTML i18n view that the transmission encoding is distinct from the
  1103.   document character set and has to be (conceptually at least) decoded before
  1104.   SGML parsing.  It also won't work in general for entities that expand to
  1105.   to Unicode characters which cannot be expressed at all in the currently
  1106.   effective (or assumed) charset, and would lead to problems with displaying
  1107.   URLs on the statusline or representing them in auxiliary screens or bookmark
  1108.   files.  So now we try to first transform to the document charset "as usual"
  1109.   (undo the transmission encoding), then translate the Unicode value into a
  1110.   sequence of (one or more) byte values which are then URL-encoded.  Since
  1111.   character values > 255 cannot be expressed in a byte, always use UTF-8
  1112.   for them.  It may not be what the author intended, but should be at least
  1113.   consistent between internal (fragment) HREFs and NAME (or ID) attributes
  1114.   in the same document or set of documents.  Since this is dealing with
  1115.   bytes currently disallowed in URLs, it falls under error recovery.  But
  1116.   the handling should be roughly in line with current Internet Drafts
  1117.   (draft-masinter-url-i18n-00.txt, draft-duerst-query-i18n-00.txt,
  1118.   draft-ietf-ftpext-intl-ftp-02.txt).
  1119.   For character values < 256 (but > 127) this isn't currently consistently
  1120.   done, we may still be URL-escaping the byte value without UTF-8 encoding.
  1121.   - KW
  1122. 1997-09-25
  1123. * Integrated the attribute and form field translation stuff from separate
  1124.   code line.  This is still a rough attempt.  Needs testing and refinement,
  1125.   for various character set situations, expect glitches and bugs. - KW
  1126. 1997-09-24
  1127. * Removed the compilations of the old libwww-FM HTInit.c and HTFWriter.c
  1128.   modules for VMS, as previously removed for Unix. - FM
  1129. * Added other changes from FM's feedback for VMS. - KW
  1130. * Fixed a bug in the SGML unescaping of OPTION values. - FM
  1131. * Fixed a bug in the SGML unescaping of TEXTAREA text. - KW
  1132. 1997-09-23
  1133. * Fixed file 'E'dit command from dired directory listing, which I had
  1134.   broken in 2.7.1ac-0.69. - KW
  1135. * Added -width=NUMBER option to specify line width for non-interactive
  1136.   formatting (-dump output).  Also used by -preparsed source mode. - KW
  1137. * Changed suffix mapping mechanism to deal with "real" content-encoding
  1138.   parameters (gzip, compress) in addition to 7bit, 8bit, and binary.  Added
  1139.   a new field for brief descriptive text, so that the MIME type doesn't have
  1140.   to be abused for this purpose, but left most settings in HTInit.c unchanged
  1141.   for now. - KW
  1142. * Changes in HTFWriter.c and HTFile.c so that we don't forget the file type
  1143.   and encoding information we already have for a compressed file when passing
  1144.   control to HTLoadFile (possibly after uncompression). - KW
  1145. * Introduced FNAMES_8_3 symbol (for DOS 8+3 file system), and HTML_SUFFIX
  1146.   which should be defined as ".htm" for DOS and ".html" otherwise.  Various
  1147.   tweaks to deal with systems with 8+3 restricted filenames, in general and
  1148.   in connection with uncompression. - KW
  1149. * Applied diffs from FM for VMS, compared with recent fotemods. - KW
  1150. 1997-09-21
  1151. * Use 0.01 rather than 0.001 as the q value for inserted iso-8859-1 and
  1152.   us-ascii charset parameters in Accept-Charset headers. - FM
  1153. * Added internal buffering of I.value elements in HTML_start_element()
  1154.   of HTML.c. - FM
  1155. 1997-09-20
  1156. * Show HTTP header for all 2xx status codes (including 204-206) if requested
  1157.   with HEAD or -head. - KW
  1158. 1997-09-19
  1159. * Modified the Unix "strange character" filter in exec_ok() of LYGetFile.c
  1160.   to allow '+', '&' and '=' characters. - FM
  1161. * minor ifdef/declaration fixes required to build on IRIX 6.2,
  1162.   SunOS (K&R) and VAX C. - TD
  1163. 1997-09-18
  1164. * Try again after interrupted waitpid() in LYLoadCGI(), as in LYExecv() - KW
  1165. * Tweak in LYKeymap.c to bypass the isalpha() test for non-ASCII values,
  1166.   including values > 255 mapped to arrow keys, etc., when generating the
  1167.   'k'eymap display. - KW
  1168. * Changes to prevent many (but not all) compiler warnings about `const'.
  1169.   Not that this is different from TD's recent changes. Also some other minor
  1170.   tweaks relating to (gcc) compiler warnings. - KW
  1171. 1997-09-17
  1172. * Mods in GridText.c to use HTEscapeSP() for space-to-plus conversions of
  1173.   name fields, and not just value fields, in submitted form content.  Note
  1174.   that some CGI scripts may still be doing plus-to-space restorations only
  1175.   for value fields, and only hex unescaping for name fields, while others
  1176.   may not be hex unescaping the name fields, so we may as well follow the
  1177.   specs fully (and cross our fingers :). - KW & FM
  1178. * merge symbols 'has_color' and 'lynx_has_color' to simplify ifdef's,
  1179.   and correct a problem building color-style configuration. - TD
  1180. * add configure symbol for ifdef'ing presence of waitpid, which
  1181.   was stopping build on HP-UX. - TD
  1182. * correct the symbol that is defined by CF_SIZECHANGE test, noted
  1183.   by failure to build SCO version after making an include for
  1184.   <sys/ioctl.h> ifdef'd according to configure test. - TD
  1185. * corrected check for broken (pre-1.9.9g) ncurses versions so that
  1186.   they can build with color support. - TD
  1187. * cache state of CF_NETLIBS so that rerunning configure will yield
  1188.   the same results for network libraries. - TD
  1189. * Add configure test for HP-UX -lHcurses library. - TD
  1190. * Minor adjustments to names of configure-script variables, to make
  1191.   them the same as other programs (e.g., tin-unoff). - TD
  1192. 1997-09-16
  1193. * Added code to JKT's and KW's mods in LYPrint.c to also handle VMS:
  1194.   set the document's title as a logical on VMS (can be accessed via 
  1195.   f$trnlnm("LYNX_PRINT_TITLE") in scripts). - FM
  1196. * Smaller cleanups here and there - FM & KW
  1197. 97-09-15
  1198. * Recover from bad sequence "<=" in SGML.c by outputting those characters
  1199.   literally. - KW
  1200. * Try again after interrupted waitpid() in LYExecv(). - JED
  1201. * Some tweaks in new DTD, some doc typo corrections. - KW
  1202. 97-09-13
  1203. * Changes in LYConvertToURL() for better handling of the case when the
  1204.   pathname of the current directory (when Lynx is invoked) contains
  1205.   unusual, URL-reserved characters (especially '#') and we test for
  1206.   a relative but URL-encoded path. (no change for VMS) - KW
  1207. 97-09-13
  1208. * Changes in LYStrings.c to enable keypad() processing for non-NCURSES
  1209.   if HAVE_KEYPAD is defined. - KW
  1210. 97-09-12
  1211. * Correct mismatch/omission of HAVE_TYPE_UNIONWAIT symbol from
  1212.   change for wait vs waitpid. - TD
  1213. 97-09-11
  1214. * Tweaks in HTMLGen.c for display of special characters and line breaking
  1215.   with -preparsed. - KW
  1216. * Got rid of use of underlining together with reverse for non-current 
  1217.   links for (n)curses if color is not used. - KW
  1218. * Small HTMLDTD.c changes for new parsing. - KW
  1219. * Change in SGML.c to always recognize SOFT HYPHEN when given as ­. - KW
  1220. 97-09-10
  1221. * Modify CF_WITH_PATH to allow substitution of --libdir and other
  1222.   configure options pathnames, e.g., for --with-cfg-file. - TD
  1223. * Include lynx_cfg.h in userdefs.h to resolve redefinition reported by
  1224.   AC. - TD
  1225. * Remove Ultrix/sony_news -specific ifdef's for curses headers,
  1226.   replace with configure-tests. - TD
  1227. * Remove AIX/NeXT/sony_news -specific ifdef's for wait vs waitpid,
  1228.   replace with configure-tests. - TD
  1229. * Add/use CF_HELP_MESSAGE macro to visually break down the very long
  1230.   help message into sections. - TD
  1231. * Move the development options to the beginning of the configure script,
  1232.   to facilitate adjustment of compiler options (especially for Ultrix)
  1233.   to reduce the number of spurious warnings from miscombining -g/-O
  1234.   options. - TD
  1235. * Correct misplaced assignment to cf_cv_ncurses_header in configure.in,
  1236.   which caused misconfigure against vendor curses, reported by Hynek Med
  1237.   (Ultrix) and Roger Hill (HP-UX 10.x). - TD
  1238. 1997-09-09
  1239. * Added arguments to the multinet_htons() and multinet_ntohs() declarations
  1240.   in tcp.h. - FM
  1241. * Tweak of the this_MIMEcharset[] and this_LYNXcharset[] checks in
  1242.   makeuctb.c. - FM
  1243. * Replaced the index() and bcopy() with strchr() and memcpy() in the
  1244.   putenv() for NeXT in LYUtils.c. - FM
  1245. 1997-09-08
  1246. * Added a -preparsed flag, to be used with -source or with SOURCE view.
  1247.   When invoked with this flag, show HTML text as it is output from the SGML
  1248.   parsing stage, regenerated via HTMLGen.c functions, rather than the usual
  1249.   more raw rendering (in SOURCE view) or the original byte stream (as with
  1250.   the -source flag, possibly with BASE information prepended).  Lynx will
  1251.   attempt to wrap the text to screen width (or 80 cols for the -source flag),
  1252.   but will not always succeed.  Unrecognized tags and attributes as well as 
  1253.   comments are dropped, attributes reordered, missing end tags supplied, 
  1254.   abd other changes made, showing how Lynx internally treats the document's
  1255.   structure.  This is probably most useful for debugging (of either Lynx's
  1256.   parsing or of HTML documents, although a real validator should be used for 
  1257.   the latter!).  It can also be instructive to switch the DTD parsing mode
  1258.   (with the ^V key) while viewing preparsed source.
  1259.   Note that this doesn't work so well now with character translations and 
  1260.   entity expansion don't work well now, showing some of the same problems
  1261.   which appear for rendered documents and dropping some characters.  Making
  1262.   those problems of parsing more directly visible was one of the motivations
  1263.   for this flag.  Also note that META tags which may contain charset info
  1264.   are never interpreted when using -source (with or without the -preparsed
  1265.   flag), but when interactively switching to SOURCE view, Lynx MAY remember
  1266.   that charset info from the previous non-SOURCE full parsing (again this
  1267.   applies with or without -preparsed); the INFO screen should always show
  1268.   the assumption currently in effect. - KW
  1269. * Updated some HTMLGenerator functions to use line wrapping logic found in
  1270.   newer libwww versions, and further mods in HTMLGen.c. - KW
  1271. * Tweaks to use of chartrans stages, should now better preserve charset
  1272.   info from META tags even in compressed HTML files. - KW
  1273. * Fixed a problem with LYCheckForCSI which could lead to crashes. - KW
  1274. 1997-09-06
  1275. * Modifications to allow the Lynx lynxcgi feature to process
  1276.   PATH_INFO in addition to QUERY_STRINGS in URLs.  DOCUMENT_ROOT
  1277.   may be set by the user in lynx.cfg and is then passed as well.
  1278.   If DOCUMENT_ROOT is set, then PATH_TRANSLATED is calculated and
  1279.   passed as well. - J. Kevin Ternes <jkternes@mindspring.com>
  1280. * Changes to LYPrint.c to put the variable LYNX_PRINT_TITLE
  1281.   into the system()'ed environment for use by post-Lynx, pre-lp
  1282.   formatting scripts.  LYNX_PRINT_TITLE is simply generated by
  1283.   calling HText_GetTitle(). - JKT
  1284. * Corrections to JKT's mods (to avoid memory leaks etc.).  Avoid
  1285.   unnecessary stat() calls.  Other fixes in LYCgi.c.  Make
  1286.   setting of HTTP_ACCEPT_CHARSET actually work.  Now URL-unescape
  1287.   the path in lynxcgi URLs before doing anything with it.  
  1288.   Better logic for when to check for restrictions, the previous checking
  1289.   for !reloading could be easily circumvented.  Also check whether
  1290.   the full path including a possible PATH_INFO passes the restrictions
  1291.   test by exec_ok(), to catch "../" segments.  Don't try to handle
  1292.   a non-executable lynxcgi URL as a file URL if there was a PATH_INFO
  1293.   part, it gets too confusing.  Strip '#' fragments from the lynxcgi
  1294.   path, but leave the interpretation of '#' characters after a '?' as
  1295.   before so that they are still regarded as part of the query or search
  1296.   string. If PATHINFO is present, unescaped '#' characters in it will
  1297.   still be rejected by exec_ok(). - KW
  1298. * added a bit of text about running ./configure to INSTALLATION file.
  1299.   - David Combs <dkcombs@netcom.com> & KW
  1300. * Added a translation table for Vietnamese (VISCII), and associated code
  1301.   changes.  See the file viscii_uni.tbl. - KW
  1302. 1997-09-05
  1303. * Mods in LYGetFile.c to retain a fragment on redirection if the redirection
  1304.   URL does not include a fragment. - FM
  1305. 97-09-04
  1306. * Correct ifdef'ing for getbkgd function calls. - TD
  1307. * Correct ifdef'ing for remaining inline chmod calls. - TD
  1308. * Consolidate various logic for opening secure files into utility
  1309.   functions, correcting portability problems as well.  - TD
  1310. * Add configure option --with-cfg-file to override default location of
  1311.   Lynx configuration file (requested by Laura Eaves).  - TD
  1312. * Strip -g option from CFLAGS for the non-debug version of Ultrix
  1313.   configuration (requested by Hynek Med).  - TD
  1314. * Add configure test for HP "color" curses (noting that this cannot
  1315.   possibly comply with XPG4 due to naming conventions, we'll expect
  1316.   other problems with it). - TD
  1317. * Add checks to configure test for COLOR_CURSES to work around bug
  1318.   report for HP-UX.  - TD
  1319. * Don't cache configure options except where essential (e.g., the
  1320.   setting of 'screen').  - TD
  1321. * Change some configure options to disable/enable for consistency.  - TD
  1322. 1997-09-03
  1323. * Tweaks in HTML_put_string() and LYUnEscapeEntities() to deal with line-
  1324.   breaks within attributes more consistently, and more independently of
  1325.   which convention is used (CRLF, CR, or LF). - KW
  1326. * Tweaks to prevent a few compiler warnings. - KW
  1327. * Tweaks of the iso06_uni.tbl and iso08_uni.tbl files now compiled in.
  1328.   Note that a replacement character or string to replace invalid or
  1329.   unrecognized characters can be defined by mapping the Unicode value
  1330.   U+FFFD, which is done here (for testing, and because these two charsets
  1331.   have a lot of undefined code points).  Also some mods in default 7-bit
  1332.   table for some Hebrew characters and points. - KW
  1333. 1997-09-02
  1334. * Mods to include "ISO 8859-6 Arabic" and "ISO 8859-8 Hebrew" in the display
  1335.   character set options (Note, though, that Lynx presently has no code to
  1336.   deal overtly with non-Latin directionalities.). - DK & FM
  1337. 1997-08-31
  1338. * Mod of HTMIME.c to ignore any Content-Encoding header with a value of
  1339.   "identity" (case insensitive).  Shouldn't happen, but better safe than
  1340.   sorry. - FM
  1341. 1997-08-28
  1342. * Correct a quoting error in CF_RECHECK_FUNC macro. - TD
  1343. 1997-08-27
  1344. * Further refine/correct configure macros for finding network and curses
  1345.   libraries, adding CF_RECHECK_FUNC to simplify CF_NETLIBS. - TD
  1346. * Rename #define for NCURSESHEADER to HAVE_NCURSES_H, for consistency. - TD
  1347. * Add-back test for -lm to support slang shared libraries. - TD
  1348. * Modify test for disentangling ncurses library from mytinfo on FreeBSD
  1349.   to workaround linker limitation. - AC
  1350. 1997-08-22
  1351. * Fixed typo in LYReadCFG.c when checking for a NOVICE mode default. - JN
  1352.   (Note that this and other lynx.cfg defaults which have 'o'ptions settings
  1353.   are overridden when the 'o'ptions are saved to the RC file. - FM)
  1354. 1997-08-21
  1355. * Tweak to LYHistory.c to better remember last position on page. - KW
  1356. * Eliminated two more MIME types (application/html and text/x-sgml) from
  1357.   the Accept header generated by default by setting the q-value to 2.0,
  1358.   since there are more standard alternatives for these names. - KW
  1359. * Lower maximum length for generated Accept header lines from 1000 to 252,
  1360.   to accommodate an incompetent Windows HTTP server. - KW
  1361. * Changed order of some functions in LYCharUtils.c (no other change there
  1362.   yet). - KW
  1363. 1997-08-20
  1364. * Modify top-level install rule to depend on 'all'. - TD
  1365. * Suppress check for ANSI compiler when we are using gcc. - TD
  1366. * Use -g3 option in place of -O -g for Ultrix compiler --debug configuration
  1367.   (request by Hynek Med). - TD
  1368. * Drop "-lm" library from slang configuration, since it does not seem to
  1369.   be used. - TD
  1370. * Add configure --includedir and --oldincludedir values to header search
  1371.   path for ncurses and slang. - TD
  1372. * Modify configure checks for ncurses and slang libraries to generate
  1373.   -L options as required, using new macros CF_FIND_LIBRARY and
  1374.   CF_LIBRARY_PATH. - TD
  1375. * Add substitution for CPP in src/makefile.in so that .c.i rule works. - TD
  1376. * Add configure test for lint program. - TD
  1377. * Add "make depend" target to generated makefiles.  This is intended only
  1378.   for use in editing/developing, since many of the header dependencies in
  1379.   chrtrans are generated during the build process and cannot be determined
  1380.   by makedepend in advance. - TD
  1381. * Add configure option --with-zlib. - TD
  1382. 1997-08-19
  1383. * Tweak of highlight() in LYUtils.c to ensure that split link names with a
  1384.   soft hyphen are handled identically for slang, VMS curses and Unix curses
  1385.   when such links are made current. - FM
  1386. 1997-08-17
  1387. * Use 0.01 rather than 0.001 as the q value for the global wildcard in
  1388.   Accept headers. - FM
  1389. * Put up correct makefile for dos port (oops) - WB
  1390. 1997-08-16
  1391. * Mini tweaks for the win-dos ports.  One fix for the pull down boxes
  1392.   and the rest mostly maintenance. - WB
  1393. * Fixed a bug in LYNews.c which caused overwriting of the first three
  1394.   characters in the Subject for a followup. - FM
  1395. 1997-08-15
  1396. * Hack in highlight() to preserve a '-' character at the end of line
  1397.   within anchor text, which can result from splitting at the position
  1398.   of a ­ or <SHY> or SOFT HYPHEN character. - KW
  1399. * Tweaks in print_wwwfile_to_fd print_crawl_to_fd to output a soft hyphen
  1400.   character if it is present at the end of a line.  For -dump, a raw
  1401.   ISO 8859 SOFT HYPHEN character may be written if the Display Character
  1402.   Set (default from lynx.cfg or saved value in .lynxrc) is an ISO 8859
  1403.   character set, but this may be overridden with the -raw toggle.
  1404.   Otherwise represent soft hyphen with '-' as usual. - KW
  1405. * Modified the news gateway to try XGTITLE for wildcarded lists of
  1406.   available newsgroups (e.g., news:bionet.* for the bionet hierarchy,
  1407.   or news:* for all of its served newsgroups).  If that fails, Lynx
  1408.   retries with the old behavior of using LIST NEWSGROUPS and parsing
  1409.   the reply itself for the desired groups.  Note that LIST NEWSGROUPS
  1410.   can take a wildcarded argument for some nntp servers, but not all,
  1411.   so we don't risk it. - FM
  1412. * Fixed a bug in HTHandleAuthInfo() of yesterday's HTNews.c which could
  1413.   yield an infinite while() loop. - FM
  1414. * Various tweaks in HTNews.c to HTHandleAuthInfo() and elsewhere, to
  1415.   keep connections open more often in some common cases of non-fatal
  1416.   errors, and also avoid trying to use the network socket after some
  1417.   recognized case of closing by the server.  Only based on some testing
  1418.   with INN's nnrpd, not on any written specs. - KW
  1419. 1997-08-14
  1420. * Added nntp authorization (AUTHINFO) handling to the news gateway. - FM
  1421. * Added a "Loading cfg file '%s'." trace message in LYMain.c to indicate
  1422.   the absolute path of the configuration (lynx.cfg) file which was used
  1423.   at startup (if Lynx is invoked with the -trace command line switch). - FM
  1424. * Added code in HTFWriter.c to avoid calling HTLoadFile() on the temporary
  1425.   file which results from decompression of a temporary file created by
  1426.   HTCompressed(), if this would just result in making a copy of the file
  1427.   and then invoking an external viewer.  Instead the viewer command is
  1428.   now invoked directly from the HTFWriter_free of the HTCompressed()
  1429.   stream after decompression. - KW
  1430. * Added code in HTFWriter.c, HTFile.c, and HTFormat.c to support reading
  1431.   of gzipped local files directly, using functions from the zlib library.
  1432.   Note that gzipped files from remote servers are still first copied to
  1433.   a temporary file before lynx can process them further, and an external
  1434.   GZIP_PATH command is still needed at least for passing such files to an
  1435.   external viewer, as well as for various DIRED_SUPPORT File menu functions.
  1436.   To activate this code, the symbol USE_ZLIB has to be defined, it is
  1437.   currently not set by the auto-config script.  The zlib library may be
  1438.   already installed on your system (probably called libz.a or libz.so.1
  1439.   or similar, the required header files are zlib.h and zconf.h), otherwise
  1440.   it is available through <http://www.cdrom.com/pub/infozip/zlib/>, it
  1441.   appears to support all platforms for which lynx is available (including
  1442.   VMS, DOS, MS Win32).  Note that this library would probably also be
  1443.   needed if in the future support for the HTTP/1.1 "deflate" content-coding
  1444.   is added. - KW
  1445. * Don't send MIME types in Accept headers whose q values are outside of the
  1446.   allowed range 0.0 <= q <= 1.0 - KW
  1447. * Tweaks in HTInit.c to use the official names for image/png and image/tiff,
  1448.   but still support the image/x-* forms. - KW
  1449. 1997-08-13
  1450. * Tweaks of LYConvertToURL() in LYUtils.c and HTParseInet() in HTTCP.c
  1451.   to deal more coherently with 'z'ap attempts during gethostbyname()
  1452.   calls. - FM
  1453. * Tweaks of split_line() and HText_endAppend() in GridText.c to handle
  1454.   trimming of spaces from the tails of link names more effectively. - FM
  1455. * Expanded the OL nesting depth and type counters to track up to 12 list
  1456.   depths before punting to the lowest negative number.  Note that the
  1457.   indentations still are limited to 6 nested depths, so use the TYPE
  1458.   attribute to distinguish OLs with deeper nestings. - FM
  1459. 1997-08-12
  1460. * Mods of LYMainLoop.c to maintain treatment of a local startfile as
  1461.   text/html source when it does not have a suffix mapped to that MIME
  1462.   type and the -force_html switch was used. - FM
  1463. * Added .phtml to the default suffix mappings for text/html. - FM
  1464. * Mods of LYCurses.c to avoid using /dev/tty arbitrarily for stdin on
  1465.   Unix when compiling with slang versions greater than 0.99-35, based
  1466.   on JED's suggestion to lynx-dev. - FM
  1467. * Tweaks of HTCheckFnameForCompression() in GridText.c to avoid warnings
  1468.   from some compilers. - FM
  1469. 1997-08-09
  1470. * Changed the code of 1997-08-06 which modifies suggested filenames for a
  1471.   'D'ownload to be more cautious: don't remove a '.gz', '.Z' etc. suffix
  1472.   if there is no header indication that we have a compressed file.  Not
  1473.   all servers and gateways (including the internal FTP gateway) detect
  1474.   and label compressed content reliably. - KW
  1475. 1997-08-08
  1476. * Mods of HTTP.c so that download requests are converted to presentation
  1477.   requests for interactive users, and traversal requests are converted to
  1478.   cancels, when servers return non-success statuses with bodies which
  1479.   should be displayed to interactive users. - FM
  1480. * Added the "DosCyrillic (cp866)" display character set to the chartrans
  1481.   support, and tweaked the other Cyrillic charset tables. - AAC & KW
  1482. * Tweaked MULTI_SUFFIX support in HTFile.c, so that it now somewhat
  1483.   works.  Dunno whether it's useful for anybody. - KW
  1484. 1997-08-07
  1485. * Tweaks of yesterdays mods in GridText.c. - FM
  1486. * Correct storage class of variables in UCMap.h, from -warn-common linker
  1487.   option. - TD
  1488. * Refine configure tests for acs_map, ttytype to accommodate broken linker
  1489.   on FreeBSD 2.1.5 - TD
  1490. * Modify README.configure to indicate the associated definitions for
  1491.   each configure option, as suggested by Klaus Weide. - TD
  1492. * Correct duplicate declaration of Current_Attr, which Linux linker ignores
  1493.   (reported by Hynek Med). - TD
  1494. * Add -G7 option to Ultrix compiler options (request by Hynek Med
  1495.   <xmedh02@lada.vse.cz>). - TD
  1496. * Add include for <sys/types.h> to utmp configure test (reported by Andrey
  1497.   A. Chernov). - TD
  1498. * Add check for FreeBSD library mytinfo (reported by Andrey A. Chernov
  1499.   <ache@null.net>). - TD
  1500. * Modify ./makefile.in so that 'all', the default target, will build the
  1501.   Lynx executable. The old 'all' target is retained as "make help". - TD
  1502. * Modify src/makefile.in to allow development compiles within the src
  1503.   directory. - TD
  1504. * Mask spaces in the bkgd (background attribute) calls for color curses to
  1505.   make the color-style code work better with SVr4 curses. - TD
  1506. * Change workaround for 8-bit acs characters by adding to the initialization
  1507.   a loop forcing the entries of acs_map[] to 8-bits. - TD
  1508. * Many minor tweaks for the DJGPP version by DK - WB
  1509. * A rename of about_lynx_dev.html to lynx_dev.html for 8.3 systems - WB
  1510. 1997-08-06
  1511. * Modified HTMIME.c and LYCharUtils.c so that setting of suggested filenames
  1512.   via a filename=value pair in Content-Disposition headers and META elements
  1513.   is not restricted to the file disposition type. - FM
  1514. * Mods in GridText.c, LYGetFile.c and HTAnchor.c so that suggested filenames
  1515.   will have appropriate suffixes when 'd'ownloading, based on whether or not
  1516.   the file is gzipped or Unix compressed. - FM
  1517. 1997-08-05
  1518. * Mods of the lead relative symbolic element stripping for http/https
  1519.   URLs in cases for which they would persist when resolved to an
  1520.   absolute URL.  The latest URL draft is ambiguous about whether this
  1521.   should be considered an error, and leaves the handling of it up to the
  1522.   UA.  So we now get rid of all lead relative symbolic elements from the
  1523.   resolved http/https URLs, but no others, and still issue a Bad Partial
  1524.   Reference statusline message. - FM
  1525. * Tweaks of title handling in LYMainLoop.c and LYShowInfo.c so that the
  1526.   known title, or link name associated with ACTIVATE-ion, form submission,
  1527.   or a HEAD request, will be used in the INFO ('=') display. - FM & KW
  1528. 1997-08-04
  1529. * Fixed header parsing in HTMIME.c so that "Safe:" is recognized. - KW
  1530. * Changed confirmation prompts for HEAD (']') commands acting on a POST
  1531.   document, to reflect the fact that the POST request body will not
  1532.   actually be submitted in a HEAD request. - KW
  1533. * Reset LYCancelDownload to FALSE at top of getfile(), to prevent delayed
  1534.   effect which can otherwise occur. - KW
  1535. * Block URLs with port numbers outside the range of valid numbers in
  1536.   getfile(). - KW
  1537. 1997-08-03
  1538. * Changed the NSL_FORK code in HTTCP.c so that the gethostbyname() call
  1539.   is retried without forking if the child process exits without returning
  1540.   enough data.  Also added trace output, to show whether something
  1541.   unusual has happened to the child process. - KW
  1542. * The IETF has indicated intent to adopt KW's "status 307" proposal for
  1543.   dealing with the status 302 problems, so HTTP.c and HTAlert.c implement
  1544.   that now.  The 302 status is "General (temporary) Redirection" which
  1545.   can be handled as 303 at the UA's discretion, so we do that in all cases,
  1546.   rather than prompting the user whether to do that when the 302 is for
  1547.   a POST submission.  The 307 (and 305) for POST submissions invokes a
  1548.   prompt whether to P)roceed or C)ancel, without the Use G)ET option.
  1549.   The 301 is treated as permanent, normally, but for POST submissions
  1550.   still is treated as temporary and invokes a prompt which includes the
  1551.   Use G)ET option, because scripts written to empirical behavior may
  1552.   still be expecting that (it's virtually never encountered in redirections
  1553.   of POSTs, though, because the document containing the form typically
  1554.   is redirected, so the user only sees the form if a local copy has been
  1555.   made, and it would be best to C)ancel and get a new local copy of the
  1556.   document from the correct http/https URL, to serve as a BASE for the
  1557.   form's ACTION). - FM
  1558. * Changed the typedef for HTCoord in HTStyle.h from float to int, for
  1559.   significant speedup of rendering on machines without floating-point
  1560.   hardware based on DW's, KW's, BL's analyses.  Note that this should 
  1561.   be taken into account when/if external style sheet support is added
  1562.   for page formatting (e.g., for optimum handling by speech synthesizers
  1563.   and braille interfaces), beyond the current emphasis on colorizing. - FM
  1564. 1997-08-02
  1565. * The cookie pre-draft has been adopted as an IETF ID:
  1566.   ftp://ds.internic.net/internet-drafts/draft-ietf-http-state-man-mec-03.txt
  1567.   so the code for combining Set-Cookie and Set-Cookie2 headers has been
  1568.   eliminated in LYCookie.c (see mods for 1997-07-31). - FM
  1569. 1997-08-01
  1570. * Fixed typos in LYCookie.c. - FM
  1571. 1997-07-31
  1572. * Mods of the cookie handling based on the latest pre-draft.  Add a
  1573.   Cookie2: $Version="1" header in any requests that use historical
  1574.   cookies in the Cookie: request header, so that modern servers will
  1575.   use Set-Cookie2 headers with modern cookies in their subsequent
  1576.   replies.  Limit the scheme for commentURLs to http or https, not
  1577.   just to network servers (e.g., gopher is now barred too).  Include
  1578.   a $Port attribute in modern Cookie request headers if it was set
  1579.   via a server's reply header.  The pre-draft indicates intention
  1580.   to drop the requirement to combine Set-Cookie2 and Set-Cookie
  1581.   headers if both types were received.  We're still combining them,
  1582.   but based on bona fide one-to-one correspondence checks (which were
  1583.   not specified in the earlier draft), so that's OK, and we'll get
  1584.   rid of that needless overhead if the current pre-draft holds up
  1585.   and becomes an official IETF draft. - FM
  1586. * Added a -nocc command line switch for disabling the Cc: prompt
  1587.   for self copies of mailings.  Note that this does not disable
  1588.   any CCs that have been incorporated within a mailto URL or form
  1589.   ACTION. - FM
  1590. * Added a NO_FORCED_CORE_DUMP compilation (userdefs.h) and configuration
  1591.   (lynx.cfg) symbol, normally set FALSE, which if changed to TRUE will
  1592.   block forced core dumps on Unix via abort() calls on fatal errors or
  1593.   assert() calls on potentially fatal error checks.  Also added a -core
  1594.   command line switch for toggling the default. - FM
  1595. * Updated the documentation and 'h'elp concerning the new symbol and
  1596.   switches. - FM
  1597. 1997-07-30
  1598. * Added workaround for curses with broken handling of 8-bit acs characters
  1599.   (which may be used for drawing of popup boxes) to LYCurses.h.  This fixes
  1600.   box characters and attributes/colors for solaris curses used with linux
  1601.   console as terminal.  Currently it is not automatically enabled or
  1602.   configured, but can be enabled by -DBROKEN_CURSES_8BIT_ACS. - KW
  1603. * Mod in HTFWriter.c to change the statusline appropriately when an
  1604.   uncompression has completed. - FM
  1605. * Fixed code in LYOptions.c for the case when NEVER_ALLOW_REMOTE_EXEC was
  1606.   not defined and ALLOW_USERS_TO_CHANGE_EXEC_WITHIN_OPTIONS was defined. - KW
  1607. 1997-07-28
  1608. * Avoid traversing the full list of anchors each time when HText_endAnchor()
  1609.   is called with a non-zero anchor number, if that number corresponds to
  1610.   the last anchor added to the HText structure. It is is the most common case
  1611.   that HText_endAnchor() refers to the last anchor, and the only case that
  1612.   could be handled correctly before FM's changes of 1997-05-13.  Avoiding
  1613.   the loop over the list of anchor can improve loading time significantly,
  1614.   especially for large files with thousands of anchors. - KW
  1615. * Add progress display and 'z'appability for loading of local files.
  1616.   They are activated only after a few hundred k bytes have been read.
  1617.   Added define for HT_PARTIAL_CONTENT to HTUtils.h, used in above.
  1618.   (The WWW Library 5.x uses HTTP-ish status codes like this throughout.
  1619.   I find it much less confusing than -29998 and so on, and there's no
  1620.   conflict in this case. - KW
  1621. * Minor LYUtils.c tweaks. - KW
  1622. 1997-07-27
  1623. * Changed code for checks in LYGetFile.c for URL schemes which should 
  1624.   be rejected when received as redirections, added checks for more 
  1625.   schemes. - FM
  1626. * Rename top-level Makefile to Makefile.old (it's obsolete) - TD
  1627. * Reduce top-level targets to one, 'lynx' - TD
  1628. * Move comments describing DirEd to README.configure from makefile.in,
  1629.   leaving only the definitions that haven't been integrated yet. - TD
  1630. * Add configure options to enable/disable DirEd and its associated modes. - TD
  1631. * Add configure option to enable/disable char-trans support. - TD
  1632. * Correct sense of autoconf'd symbol for size-change. - TD
  1633. * Accommodate systems with obsolete ncurses.h in configure tests. - TD
  1634. 1997-07-26
  1635. * Changed the variable hline in LYUtils.c to hLine, so as not to conflict
  1636.   with a curses function or macro. - FM
  1637. * Fixed an esoteric glitch in highlight() of LYUtils.c which could cause
  1638.   the last character of a current link to receive WHEREIS search target
  1639.   emphasis if it happened to be the first character of the target (though
  1640.   perfection is unattainable, we should strive to achieve it :). - FM
  1641. * Changed the default value for STRIP_DOTDOT_URLS (lynx.cfg) to TRUE. - KW
  1642. * Made some of the additional checks introduced yesterday in LYMainLoop.c
  1643.   for invalid links to internal dired URLs more strict, as they probably
  1644.   were intended. - KW
  1645. * Added checks for some internal URL types, which should be rejected
  1646.   if received in a server redirection, to LYGetFile.c.  Maybe more types
  1647.   should be added to the list. - KW
  1648. 1997-07-25
  1649. * Map charsets of the form "ibmNNN<...>" to "cpNNN<...>" in UCdomap.c
  1650.   if not already recognized.  Also recognize "windows-1252". - KW
  1651. * Compared the handling of 4-way "show color (&)" in the 'o'ptions menu
  1652.   against FM's implementation, and made some changes (mostly in formatting, 
  1653.   variable and constant names and usage, ordering of statements) to aid
  1654.   further comparison.  The logic is still messy and needs further cleanup
  1655.   and simplification, but seems to do what it should.  Note that this
  1656.   also handles color-curses, in a (hopefully) reasonable way.  Command
  1657.   line flags -nocolor and (if using slang) -color override a preference
  1658.   found in the RC file. See updated "Lynx Users Guide" file and the 
  1659.   comments written to the RC file.
  1660.   Documentation changes adapted from FM's changes. - KW
  1661. * Mods of the DIRED_SUPPORT to check the actual URLs of temporary files
  1662.   rather than just their titles when filtering for spoofing attempts via
  1663.   external files with internal URLs.  Also recast the PRIVATE my_spawn()
  1664.   to a PUBLIC LYExecv(), so that it can be used by any module (though
  1665.   presently it's still used only by LYLocal.c functions). - FM
  1666. * Tweaks of LYCharUtils.c to handle Set-Cookie HTTP-EQUIVs in META elements
  1667.   without risking crashes in LYCookie.c or HTParse.c. - FM
  1668. 1997-07-24
  1669. * Made "show color" option a 4-way choice, if compiled with color support
  1670.   and if saving of options to a .lynxrc file is allowed. - KW
  1671. * Made changing file permissions with DIRED_SUPPORT work again; one of
  1672.   the recently added checks in LYMainLoop.c was too restrictive.
  1673.   Added protection to permit_location in LYLocal.c, similar to the changes
  1674.   of 1997-06-24 to LYDownload.c. - KW
  1675. * Generate CANCELLED message when editing of a string value on the Options
  1676.   Screen has been cancelled (typically with ^G), instead of an 
  1677.   inappropriate VALUE_ACCEPTED statusline. - KW
  1678. 1997-07-23
  1679. * Tweaks of the strtok() calls for textarea values in HTML.c, so that they
  1680.   will never be repeated after NULL has been returned, and thus won't cause
  1681.   linux-alpha to crash. - FM
  1682. * Make -nocolor command line flag work if compiled with slang.  Note that
  1683.   -nocolor is strong, it overrides all other reasons that might otherwise
  1684.   turn color on. - KW
  1685. * Tweaks in LYCurses.c to ensure that slang library and Lynx flags for
  1686.   whether color support is on stay in register. - FM
  1687. * Change the default in userdefs.h for SHOW_COLOR to FALSE for USE_SLANG.
  1688.   Because of the different logic used for LYShowColor in the curses code
  1689.   vs. slang code, setting SHOW_COLOR to TRUE makes it difficult to invoke
  1690.   a binary compiled with slang so that color is not used on startup
  1691.   (except by using -nocolor).
  1692.   Note that reading show_color from .lynxrc is still commented out. - KW
  1693. * There is now a "trailing comment" handler in LYReadCFG.c. It treats '#'
  1694.   as a comment token only if it is somewhere after the last colon for the
  1695.   lynx.cfg entry and is preceded by a space or tab. - FM
  1696. * Added TT to the Utterly Tag and Attribute Soup group of HTML elements. - FM
  1697.   (applies only to "old" DTD in this code set, as usual - KW)
  1698. 1997-07-22
  1699. * Modify curses popups in LYForms.c and LYOptions.c to use background color
  1700.   from main window - TD
  1701. * Ifdef'd out the logic that saves "show color" to .lynxrc, since it is
  1702.   deemed to be confusing to users - TD
  1703. * Merged FM's changes to the "show color (&)" toggle to save to .lynxrc,
  1704.   support slang, update online documentation - TD
  1705. * Add error message to show actual context in error-checking for color
  1706.   parsing suggested by Filip M Gieszczykiewicz - TD
  1707. * Check for/suppress duplicate -lsocket in network library configure - TD
  1708. * Remove HP-UX snake2/snake3 targets from makefile.in - TD
  1709. * Add configure script case for 'sequent', drop ptx, ptx2 targets from
  1710.   makefile.in - TD
  1711. * Add logic to configure script handling of slang to suppress spurious
  1712.   -Ipredefined when header location is given in $CFLAGS - TD
  1713. 1997-07-21
  1714. * Check for lynx_uses_color and LYShowColor in lynx_start_status_color()
  1715.   and lynx_stop_status_color() of LYCurses.c so that the statusline
  1716.   will appear reverse (or otherwise highlighted if the terminal doesn't
  1717.   support reverse), if color support is compiled in but not currently
  1718.   used. - KW
  1719. * Added comments on color usage to lynx.cfg. - KW
  1720. 1997-07-20
  1721. * Added command-line option "-nocolor" to disable color on terminals that
  1722.   would otherwise support it.  Added options toggle for colors, tested
  1723.   with ncurses. - TD
  1724. * Remove option value from configure option "--with-color-styles". - TD
  1725. * Correct background of popups in LYOptions.c - TD
  1726. * Add configure check for compiler options to enable prototypes - TD
  1727. * Remove IRIX "-cckr" compiler flags. - TD
  1728. * Correct whitespace as per LPS: LYCurses.c, LYOptions.c - TD
  1729. * Tweaks of LYMainLoop.c in the code controlling how the document is reloaded
  1730.   due to any changes in the 'o'ption menu which require a new rendering of
  1731.   the document (but still without forcing a proxy cache refresh when that is
  1732.   inappropriate; see the 1997-05-26 mods). - FM
  1733. 1997-07-18
  1734. * Mods in LYexit.c and LYCurses.c to ensure restoration of stderr (if it
  1735.   was changed for output to the trace log) on all exits. - BRL & FM
  1736. * Include an unsigned char typecast in the HASH_FUNCTION definition for
  1737.   HTAtom.c - CK
  1738. * Modified change to is_url() of 1997-07-13 to check for the slash after
  1739.   stripping any lead space characters. - FM
  1740. 1997-07-16
  1741. * Added the Windows Cyrillic display character set. - AAC
  1742.   (Andrey A. Chernov <ache@null.net>)
  1743. 1997-07-15
  1744. * Added support for a commentURL attribute in cookies.  This attribute is
  1745.   under discussion in the HTTP-WG and not presently in the draft (see the
  1746.   1997-07-09 mods for the draft's URL), but would be extremely advantageous
  1747.   for multi-lingual and non-English-speaking sites because the comment
  1748.   attribute can have only ASCII characters in its value, whereas a request
  1749.   for the comment via a URL in turn allows use of charset and language
  1750.   negotiation for what the server returns.  The value of the commentURL is
  1751.   resolved and retained only if it's scheme points to a server (i.e., file
  1752.   and special lynx URLs are rejected), and if it is retained, is included
  1753.   as a link in the Cookie Jar Page.  If commentURL is not ultimately
  1754.   included in the revised State Management RFC, sites which wish to use
  1755.   it could do a User-Agent check for Lynx (and any other browsers which
  1756.   implement it). - FM
  1757. * Fixed a typo in HTCompressed() of HTFWriter.c so that the last dot in a
  1758.   tentative temporary filename is sought via strrchr(), as is done for
  1759.   HTSaveAndExecute() and HTSaveToFile(). - KW
  1760. 1997-07-14
  1761. * Yet more tweaks of the cookie support.  We include $PATH and/or $DOMAIN
  1762.   attribute/value pairs in Cookie request headers only when their values
  1763.   were set explicitly via a server's Set-Cookie and/or Set-Cookie2 reply
  1764.   headers (and the cookies are $VERSION="1" or greater). - FM
  1765. * Added support for IFRAME homologous (but not identical) to that for FRAME.
  1766.   It is handled as a block with a blank line before and after style, and
  1767.   with margins and default alignment inherited from the containing block,
  1768.   division, or span.  The IFRAME rendition always begins with an emphasized
  1769.   "IFRAME: " label followed by the NAME attribute's value, if present, or
  1770.   the URL for the SRC attribute, serving as a link for the SRC, followed
  1771.   on a new line by any rendered IFRAME content. - FM
  1772. * Added handling of LEGEND elements.  The content is rendered in place,
  1773.   as for CAPTION elements, since we don't have multiple pass inlining
  1774.   capabilities.  Hopefully, if the LEGEND is intended to be ALIGN-ed at
  1775.   the "top" or "bottom" of the associated insert, the author will place
  1776.   the LEGEND element above or below it, respectively.  Note that LABEL
  1777.   elements similarly are rendered in place, and will be displayed
  1778.   interpretably only if the INPUT to which the LABEL's "for" attribute
  1779.   refers, immediately follows the LABEL element. - FM
  1780. * Added recognition of BUTTON elements, and handling of them (sorta :)
  1781.   when they are TYPE="submit" or TYPE="reset" in forms.  The default
  1782.   "submit" or "reset" string, or the value of a VALUE attribute, if
  1783.   present, is embedded in parentheses and used for the link, and the
  1784.   content is simply rendered and displayed in place.  Until we see what
  1785.   kind of markup the real world puts in such elements, it's too risky
  1786.   to try to use that rendition as the link.  Also, the W3C's HTML 4.0
  1787.   draft presently is very fuzzy about whether, and if so, when, an IMG
  1788.   element in the BUTTON content should be treated as an image map, so
  1789.   the present code doesn't try to cast any submitted BUTTON name/value
  1790.   pairs into the format for INPUTs with TYPE="image".  When the BUTTON
  1791.   is a script control rather than submit or reset button, a "[BUTTON]"
  1792.   pseudo-ALT is inserted to warn users of its presence, but the form
  1793.   is not disabled.  The W3C's HTML 4.0 draft makes scripting intrinsic,
  1794.   with no SGML-based fallbacks if it is not available or is disabled by
  1795.   security-conscious sites.  Dave Raggett of the W3C replied to criticisms
  1796.   of this in www-html@w3c.org by saying that he wished it have been
  1797.   otherwise, but "market forces" prevailed (Sigh...) - FM
  1798. 1997-07-13
  1799. * Changed is_url() to return immediately if the string to check starts with 
  1800.   a slash character.  This prevents some false positives if the string
  1801.   contains ':' characters. - KW
  1802. * Added support for "MACOS AppleShare IP FTP Server" to HTFTP.c.
  1803.   Only based on and tested with (the current incarnation of)
  1804.   <ftp://www.unicode.org/>. - KW
  1805. 1997-07-12
  1806. * Correct some build issues with the merge (ifdefs for the curses modules)
  1807.   as well as minor fix for makefile distclean rule. - TD
  1808. * More refinements of the cookie support in relation to recent discussions
  1809.   in the HTTP-WG, and for more fully effective protection against denial
  1810.   of service attacks.  If the same attribute appears more than once for
  1811.   the same cookie, ensure that the first instance will be used.  Limit
  1812.   the total number of cookies across Set-Cookie and Set-Cookie2 headers
  1813.   to 50 per server reply, and each cookie to a maximum of 4096 bytes. - FM
  1814. 1997-07-11
  1815. * Added support for hexadecimal character references (&#xH;) as proposed
  1816.   in the W3C HTML 4.0 draft. - FM
  1817. 1997-07-10
  1818. * Synchronized the development code against the fotemods patches up to
  1819.   1997-07-06 (relevant changes listed below, as usual).  Note that FM
  1820.   has now included the chartrans code, but has eliminated conditional 
  1821.   compilation of it; however, in this code set setting -DEXP_CHARTRANS 
  1822.   at compile time is still necessary (but compilation without it has not 
  1823.   been tested). - KW
  1824. * Fixed character counting logic in display_line() for lines where 
  1825.   soft hyphens (­ or <SHY> or a soft-hyphen character) are used
  1826.   for their intended purpose. - KW
  1827.   NOTE: The W3C HTML 4.0 draft explicitly specifies handling of ­,
  1828.   ­ (and now also ­) in the manner long implemented by Lynx
  1829.   (i.e., as a truly soft hyphen), and not in the brain-dead manner
  1830.   implemented by Netscape and MSIE. - FM
  1831. * Various tweaks of the cookie support to handle likely (based on past
  1832.   experience in the real world :) abuses of Set-Cookie and Set-Cookie2
  1833.   headers from servers.  Most importantly, apply sanity checks to the
  1834.   values of port attributes so that any unquoted port list will not be
  1835.   misinterpreted as the start of a new cookie within the port list.
  1836.   Also added code to fold (CR LF TAB) Cookie request headers if they
  1837.   contain a long sequence of cookies which would exceed 1024 bytes on
  1838.   one line, since some servers suffer buffer overruns and crash in such
  1839.   cases. - FM
  1840. * Modified HTNews.c to use HTmmdecode() and HTrjis() for the Subject and
  1841.   Author strings in listings of news articles when using a Japanese display
  1842.   character set. - HN
  1843. 1997-07-09
  1844. * Massive updating and revamping of the cookie support in accordance with
  1845.   http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-state-man-mec-02.txt
  1846.   which is scheduled to replace RFC 2109 on July 15, 1997.  Noteworthy
  1847.   changes are that (1) the blanket port restriction is now lifted, and
  1848.   sharing of cookies among servers with matching domains but different
  1849.   ports is blocked only if a port attribute was included in the
  1850.   Set-Cookie2 header (or Set-Cookie header, though it's not expected
  1851.   there), with a value which defaults to the request's port, but can
  1852.   be a comma separated list of ports, and (2) the blanket restriction
  1853.   on sharing of SSL-encrypted (https) cookies with http servers is
  1854.   lifted, and normally depends on the Set-Cookie or Set-Cookie2 header
  1855.   having included a secure attribute.  However, a configuration option
  1856.   (see lynx.cfg) to FORCE_SSL_COOKIES_SECURE is now available, and the
  1857.   compilation or configuration default can be toggled via a -force_secure
  1858.   command line switch. - FM
  1859. * Make NOCACHE ('x' key) work as expected from history list for internal 
  1860.   links. - KW
  1861. * Removed bogus checking for a config file in home directory which had
  1862.   been introduced into the development code. - KW
  1863. 1997-07-08
  1864. * Synchronized the development code against the fotemods patches up to
  1865.   1997-06-24 - TD & KW
  1866. 1997-07-06
  1867. * Implemented popup windows for the 'o'ptions menu, homologous to those
  1868.   for SELECT blocks in forms.  They are implemented when select_popups
  1869.   is on, and include WHEREIS search and 123[g,p] features (very useful
  1870.   for navigating the choice list of 28 display character sets :).  Use
  1871.   the F_LINK_NUM command ('0') to invoke the prompt for a choice list
  1872.   number when in NUMBERS_AS_ARROWS mode.  The popups are not invoked for
  1873.   the simple, binary choice options.  Also modified the options menu so
  1874.   that the cursor is positioned to the left of choices when show_curser
  1875.   is on (but it is still positioned initially at the endings of strings
  1876.   when the line editor is invoked for options that have user-entered
  1877.   values). - FM
  1878. 1997-07-04 (KaBoom! :)
  1879. * Mods of HTMIME.c and HTFile.c to ignore Content-Type parameters other
  1880.   than charset when charset is not present, as we do when it is present
  1881.   and we know we can handle it. - FM
  1882. * Fixed bug in LYNews.c which could cause Lynx to crash when posting or
  1883.   sending followups to news groups and the Organization header was
  1884.   obtained from the /etc/organization file. - FM
  1885. * Fixed bug in LYEdit.c which could cause Lynx to crash when an editor
  1886.   to which a line number is passed as an argument is used and there are
  1887.   no links on the current page of the document to be edited. - FM
  1888. * Added information about the new $USER feature to the comments about
  1889.   TEMP_SPACE in userdefs.h. - FM
  1890. 1997-07-03
  1891. * Tweaks of change_sug_filename() in LYUtils.c to make protections against
  1892.   buffer overruns explicit within the function. - FM
  1893. * Tweaks of the #ifdef'ing in HTTCP.c. - FM
  1894. 1997-07-02
  1895. * Mods in LYDownload.c and LYPrint.c to treat a suggested output file
  1896.   entry of "/dev/null" on Unix, and "nl:" or "/nl/" paths on VMS (case
  1897.   insensitive), as a cancel (^G). - FM
  1898. * Mods in LYGetFile.c to include URLs with content from a form submission
  1899.   with method GET in the group for which Referer headers are never sent,
  1900.   because the content might include private (e.g., password or credit
  1901.   card) information which should not be visible in Referer logs. - FM
  1902. * Added -G 7 to the LYFLAGS and MCFLAGS for the ultrix and ultrix-slang
  1903.   Makefile targets when using the native ultrix compiler. - HM
  1904. * Added -DNSL_FORK to the LYFLAGS for all of the solaris2 and Linux
  1905.   targets in Makefile. - FM
  1906. * The above two changes don't affect the makefile used by auto-config - KW
  1907. 1997-06-30
  1908. * Removed a redundant declaration in UCdomap.c which was causing some
  1909.   compilers to balk. - FM
  1910. * Fixed typos in SGML.c which could cause echoing of numeric character
  1911.   references for some of the display character sets. - FM
  1912. 1997-06-29
  1913. * Updated lynx.hlp, lynx.man and the online 'h'elp concerning the chartrans
  1914.   support. - FM
  1915. 1997-06-26
  1916. * Tweak of the "tag and attribute soup" parsing mods in HTML.c so that the
  1917.   PLAIN attribute works for UL blocks again. - FM
  1918. * More tweaks of LYMainLoop.c to issue informative statusline messages
  1919.   about attempts to ACTIVATE, DOWNLOAD, or submit URLs or ACTIONs which
  1920.   are disallowed in the current context and destined to fail, rather than
  1921.   acting on them and generating actual failures. - FM
  1922. * Mods of LYmktime() in LYUtils.c to support dd-mm-yyyy format for expires
  1923.   headers and cookie attributes. - FM
  1924. * Oops, hadn't included checks for whether there are links on the page
  1925.   in this morning's LYMainLoop.c mods to ensure appropriate statusline
  1926.   messages for attempts to bookmark special URLs that can't be bookmarked,
  1927.   which could yield a crash it there aren't any.  The checks are in there
  1928.   now. - FM
  1929. * Added ability to bookmark links from the Lynx List Page, as from the
  1930.   Visited Links Page, but not for those pages, themselves, since they
  1931.   are temporary files.  Note that Lynx List Page links will not have
  1932.   the documents' titles, as do those in the Visited Links Page, unless
  1933.   you've visited them before invoking the Lynx List Page. - FM
  1934. * Added explicit protections against buffer overruns in the LYDownload.c
  1935.   handling of suggested filenames. - FM
  1936. * Changes in LYCurses.c, GridText.c, HTML.c, and LYUtils.c, and smaller
  1937.   changes to some other files, to fix problems with RP's style code.
  1938.   Color leaking should now be at least much reduced, and some possible
  1939.   crashes avoided. - KW
  1940. 1997-06-24
  1941. * Mods in LYDownload.c to check whether the File= field in a LYNXDOWNLOAD
  1942.   URL has the value that was inserted into the URL via the most recent
  1943.   download options menu.  This prevents spoofing with arbitrary LYNXDOWNLOAD
  1944.   URLs entered via the 'g'oto or ECGOTO commands, or ACTIVATE-ed in a file
  1945.   other than the most recent download options menu which was created by
  1946.   Lynx internally. - FM
  1947. * Mods in LYMainLoop.c to ignore LYNXCOOKIE, LYNXDIRED, LYNXDOWNLOAD, and
  1948.   LYNXPRINT URLs if entered via a 'g'oto or ECGOTO command, and to issue
  1949.   a statusline message explaining that the special URL is not allowed as a
  1950.   goto.  This is just for informational purposes, and the above anti-spoof
  1951.   mod is not dependent on it. - FM
  1952. 1997-06-23
  1953. * remove "Styles" identifier from Lynx version string in userdefs.h
  1954.   since it causes "patch-o-matic" to choke. -- JES
  1955. 1997-06-20
  1956. * Now that we add or subtract attributes for Unix FANCY_CURSES, as for VMS
  1957.   curses and slang, the 1997-05-30 mods based on LE's patch for keeping track
  1958.   of whether links occur in an underlining context, and if so, restoring it
  1959.   when a current link is made non-current, should be extended to FANCY_CURSES
  1960.   as well.  So they are extended, now, in highlight() of LYUtils.c. - FM
  1961. * Added code in LYNewsPost() of LYNews.c for converting any EUC or SJIS to
  1962.   JIS (ISO-2022-JP) in posts or followups to Usenet news groups if the
  1963.   display character set is "Japanese (EUC)" or "Japanese (SJIS)".  The mods
  1964.   need testing by Japanese users, because the TO_JIS() function I added
  1965.   long ago in SGML.c has not actually been used before. - FM
  1966. * Modified the hack in LYPrint.c for mailing HTML source so that it never
  1967.   appends a charset parameter to the "text/html" value of the Content-Type
  1968.   header if compiled without chartrans enabled. - FM & KW
  1969. 1997-06-18
  1970. * Added a check for nonsense LINES and COLS values in setup() of LYCurses.c,
  1971.   homologous to the check in size_change() of LYUtils.c, and set LYlines and
  1972.   LYcols to the 80x24 default if they're nonsense.  The slang library and
  1973.   most curses implementations do the equivalent themselves, but we may as
  1974.   well make sure it's done. - FM
  1975. * Tweaks of the anti-spoof mods in HTFWriter.c for additional protection
  1976.   against extra %s entries in viewer command mappings. - FM
  1977. 1997-06-17
  1978. * Came up with a low overhead way to restore the emphasis for WHEREIS
  1979.   search targets when links are made current or non-current and the
  1980.   target string starts before and/or extends past the end of the link
  1981.   name (hightext or hightext2) string (see 1997-06-14 mods), so the
  1982.   restoration works in that case as well, now. - FM
  1983. 1997-06-14
  1984. * Fixed a longstanding bug in highlight() of LYUtils.c which caused seeking
  1985.   of a column position less than 0 and strange behavior when a link is made
  1986.   current, if show_cursor is on and the link begins at column 0 (as can
  1987.   happen in PRE blocks).  We now position the cursor on the first character
  1988.   of such links, so the current link will remain clear for those with speech
  1989.   or braille interfaces. - FM
  1990. * Added functions in LYCurses.c, along the lines of those in the development
  1991.   code, so that the [w]start_foo() and [w]stop_foo() functions no longer
  1992.   just replace character attributes for Unix FANCY_CURSES, but now add or
  1993.   subtract them as for VMS curses and slang. - FM
  1994. * More mods in GridText.c and LYUtils.c so that the handling of WHEREIS
  1995.   search target emphasis when links are made current and non-current is the
  1996.   full equivalent for Unix FANCY_CURSES of that for VMS curses and slang.
  1997.   Note that the restoration of search target emphasis does not succeed if
  1998.   the hit started before or extends beyond the link name (hightext or
  1999.   hightext2 string).  What it would take to succeed in that case as well
  2000.   doesn't seem worth the overhead, but I'm still thinking about it.  Also
  2001.   note that we still do not emphasize search target hits, but only do link
  2002.   or page re-positioning, for Unix curses when only standout() and standin()
  2003.   are supported.  In that case, standout() is being used for all links,
  2004.   including the current (with the latter indicated via cursor position by
  2005.   turning show_cursor on), so we don't want to create a totally confusing
  2006.   situation by using standout() for search target hits as well.  The code
  2007.   is still designed to degrade gracefully when the terminal does not have
  2008.   the capabilities of the curses or slang with which Lynx was built. - FM
  2009. 1997-06-13
  2010. * Tweak of yesterday's LYGetFile.c mods.  Lost a lynx_edit_mode = FALSE
  2011.   statement that is still needed when DIRED_SUPPORT is defined. - FM
  2012. * Mods in LYForms.c so that the cursor is positioned at the left of the
  2013.   current option in select popup windows when show_cursor is on, as when
  2014.   the cursor is used to indicate the current link in the main document.
  2015.   This is important when Lynx is used with a speech or braille interface,
  2016.   or a terminal which does not respond to the highlighting/color for the
  2017.   current option.  When show_cursor is off, the cursor is still positioned
  2018.   to the right of the current option for curses, and is fully "hidden" in
  2019.   the lower right corner for slang, so that the highlighting or color of
  2020.   the current option can be used without the distraction of a blinking
  2021.   cursor in the left-to-right reading field. - FM
  2022. * Added ability to change the show_cursor setting via the 'o'ptions menu
  2023.   and to save that as the default in the RC file (otherwise, the default
  2024.   is still that set in userdefs.h or lynx.cfg).  The -show_cursor command
  2025.   line switch toggles the default, however obtained, homologously to the
  2026.   -popup toggle.  Updated the online 'h'elp accordingly (option_help.html
  2027.   and Lynx_users_guide.html). - FM
  2028. 1997-06-12
  2029. * Tweaks of the 1997-06-04 mods for restoring emphasis of WHEREIS search
  2030.   targets in link names when they are changed to the current link or again
  2031.   made non-current.  When the link is made current, the first and last
  2032.   characters of the link name never are emphasized, so they'll retain the
  2033.   attributes/color for the current link, and the user can see (if sighted)
  2034.   that the link was made current.  With this change, the restoration of
  2035.   emphasis also is interpretable with Unix FANCY_CURSES, so the block for
  2036.   that is lifted.  Note that I figured out why the bold+reverse+underline
  2037.   combination doesn't work for that.  The vanilla and this Lynx code are
  2038.   not adding or subtracting attributes for their start_foo() and stop_foo()
  2039.   functions (as is done for slang and VMS curses), but are replacing them,
  2040.   so you always end up with the last attribute in a series of start_foo()
  2041.   calls (underlining for the search target emphasis).  I don't know if
  2042.   ability to sum attributes applies to all Unix curses flavors for which
  2043.   FANCY_CURSES is defined in the Makefile, so I left the Unix, non-slang
  2044.   start_foo() and stop_foo() functions the way they are, for now. - FM
  2045. * Mods in LYGetFile.c so that any '~' in file URLs is handled as when in
  2046.   startfile, home page, or 'g'oto commands.  Only the first '~' is converted
  2047.   to Home_Dir(), and only for the first symbolic element in the URL, and if
  2048.   it is followed by a username, that username is stripped (so that the
  2049.   "~username" becomes a reference to the home of the account running Lynx,
  2050.   as if only '~' had been used, and can't be used as a reference for an
  2051.   arbitrary home).  Note that we don't do this stripping for ftp URLs,
  2052.   because the ftp server should decide, itself, whether to grant access to
  2053.   arbitrary homes, based on the username and password that were used to
  2054.   log in.  Note, also, that if the account running Lynx is allowed access
  2055.   to the root of the file system for its home, then access to any arbitrary
  2056.   home in that file system can be gained from there.  Access to the root
  2057.   never is allowed for file URLs in the for-VMS code, but depends on the
  2058.   root's protection in the for-Unix code.  Also, any arbitrary path in file
  2059.   URLs will be attempted if it is specified as an absolute path.  The
  2060.   stripping of the username from "~username" in most cases on Unix only
  2061.   protects against probing for homes in other file systems, without the
  2062.   user knowing the corresponding absolute path. - FM
  2063. 1997-06-11
  2064. * Mods in HTAABrow.c, HTTP.c and HTAlert.c so that auth_proxy is no
  2065.   longer a module wide global, and the structures which handle/create
  2066.   authentication/authorization headers maintain separate setup trees
  2067.   for proxy authentication/authorization versus for protected limbs of
  2068.   http/https data trees (realms) on the same server.  This ensures that
  2069.   each proxy's template, which is the global '*' for all paths (that are
  2070.   in fact full URLs) in its proxying requests, are kept distinct from
  2071.   the templates for true paths of the protected limbs on the same saver,
  2072.   even if the user fails to include that proxy in the no_proxy list, or
  2073.   the server's WebMaster fails to do the equivalent configuration for
  2074.   the server, and the realm names overlap.  Also modified the prompt
  2075.   strings for the username and password to be encrypted for protected
  2076.   document requests versus for proxy access so that they indicate
  2077.   explicitly whether the user's entries will be used for one or the
  2078.   other. - FM
  2079. * Added a -pauth=id:pw switch for proxy servers, homologous to the
  2080.   -auth=id:pw switch for protected documents, along the lines of AJL's
  2081.   patch.  Note that the -pauth value is used only for authorization
  2082.   headers to the first protected proxy server encountered, and the -auth
  2083.   value is used only for the authorization headers in document requests
  2084.   for the first protected limb encountered.  Now that we have an explicit
  2085.   switch for proxy authentication, it should be used explicitly for that,
  2086.   instead of still allowing use of the -auth=id:pw switch for either
  2087.   (IMHO).  Also, there's no serious need to make inclusion of the code
  2088.   for handling these switches a compilation option, because they are only
  2089.   available to users with shell access.  Updated the help files concerning
  2090.   these switches, and included advice to make sure any script files which
  2091.   use these switches have restricted access. - FM
  2092. 1997-06-09
  2093. * More refinements of the code in GridText.c, HTML.c and LYCharUtils.c
  2094.   for handling visible versus hidden links, blank lines, stripping of
  2095.   the numbered brackets for links, and the interactions of these things
  2096.   with soft hyphens. - FM
  2097. 1997-06-06
  2098. * Fixed typos in LYrcFile.c which caused failure to start two comments
  2099.   on new lines when writing to the RC file. - FM
  2100. * Fixed a typo in the lead dot pair stripping code in LYLegitimizeHREF()
  2101.   of LYCharUtils.c. - FM
  2102. * Tweak of code in GridText.c for handling soft hyphens so that we don't
  2103.   display a hyphen if it's the first character in the line, or is preceded
  2104.   by a space, even if it is followed by a newline. - FM
  2105. * Mods of the hidden link handling and numbered bracket stripping code in
  2106.   GridText.c so that it succeeds no matter how many blank lines are in
  2107.   the anchor content. - FM
  2108. 1997-06-04
  2109. * Mods in LYLegitimizeHREF() of LYCharUtils.c for dealing more effectively
  2110.   with fragments which have illegal characters, as is becoming common due
  2111.   to authoring tools such as Microsoft's Frontpage and Netscape's HTML
  2112.   editor.  The actual URL-reference is still handled so as to yield a
  2113.   fully legitimate absolute URL, without any unescaped spaces, but the
  2114.   fragment is checked only for problem characters such as tab or newline,
  2115.   and otherwise is unmodified.  (Try the vanilla versus modified code with
  2116.   the http://www.cnib.org/library/ww_flw96.htm atrocity, brought to you
  2117.   discourtesy of Frontpage. :) - FM
  2118. * Worked into the fotemods code use of bold+reverse+underline highlighting
  2119.   of WHEREIS search hits for VMS curses, and slang on both VMS and Unix (with
  2120.   or without the color mode on), and added code in highlight() of LYUtils.c
  2121.   for restoring that highlighting when links are made current or non-current
  2122.   if the string for the hit was contained within the string for the link (won't
  2123.   be restored if the hit's string starts before or extends past the link's
  2124.   string).  Couldn't get any of this to work with curses and the solaris2
  2125.   target, so for Unix curses the hit string still is just underlined and
  2126.   not restored when links are made current or non-current. - FM
  2127. * Fixed typo in the 1997-06-01 LYOptions.c mods. - FM
  2128. 1997-06-03
  2129. * Mods in LYList.c to skip setting up a list block for visible links if
  2130.   the document has only hidden links, and in HTML.c to include a notice
  2131.   about this with a suggestion to use the 'l'ist command.  Try it with
  2132.   the http://www.sony.com/ atrocity. - FM
  2133. * Tweak in LYMainLoop.c to fix a longstanding bug which would cause the
  2134.   curdoc.line and curdoc.link numbers to be mishandled, and thus cause
  2135.   the wrong page and current link to be restored on return to the document
  2136.   via PREV_DOC or the History Page, if the document was fetched originally
  2137.   with a fragment and a link on its first page had been activated. - FM
  2138. * Tweaks in GridText.c so that returns from image map menus to parent
  2139.   documents are not treated as if a different document is being sought,
  2140.   and thus any no-cache directives associated with the parent will be
  2141.   ignored unless another fetch is initiated within the parent or via
  2142.   another, externally existing document. - FM
  2143. * Added SEEK_FRAG_MAP_IN_CUR and SEEK_FRAG_AREA_IN_CUR configuration
  2144.   (lynx.cfg) options for how to resolve USEMAP attribute values in
  2145.   IMG or OBJECT tags and HREF attribute values in AREA tags when they
  2146.   consist solely of a fragment (USEMAP="#frag" or HREF="#frag").  The
  2147.   compilation default is TRUE, i.e., they are resolved with respect
  2148.   to the current document's URL, even if the base is different, as is
  2149.   being done for the HREF attribute values of Anchors and LINKs.  The
  2150.   compilation default seems to be working out, even though most of the
  2151.   currently deployed browsers still use the base. - FM
  2152. 1997-06-02
  2153. * Mods in LYMain.c so as not to require that a lone "-" argument for
  2154.   invoking input of command line arguments from stdin be the only
  2155.   argument on the actual command line.  That requirement preluded use
  2156.   of this feature when the command for invoking Lynx was aliased so
  2157.   as to include arguments, because the lone "-" then could not be the
  2158.   only argument.  Also tweaked the code so that any stdin-derived
  2159.   arguments which need to be processed early in main() are so processed.
  2160.   The vanilla code had severely flawed logic in this respect.  The
  2161.   security considerations associated with switch handling have gotten
  2162.   hairy beyond reasonable bounds, but I think I've thought it all through
  2163.   (we'll see :), and have plugged some holes in the vanilla code for
  2164.   this feature.  Redirection of stdout and/or stderr to a file now also
  2165.   works reliably in conjunction with this feature. - FM
  2166. * Added an explanation in the PROBLEMS file of the bad getsockname() and
  2167.   getpeername() functions within SOCKETSHR 0.9D which affect the ftp
  2168.   gateway, and the URLs for Andy Harper's (A.HARPER@kcl.ac.uk) fixes of
  2169.   the SOCKETSHR 0.9D sources. - FM
  2170. * Cast LYLocal.c into the Lynx programming style. - FM
  2171. 1997-06-01
  2172. * Added support for numbered form fields, and options in SELECT popups,
  2173.   based on LE's patch.  The LINKS_AND_FORM_FIELDS_ARE_NUMBERED keypad
  2174.   mode can be defined in userdefs.h and via the 'o'ptions menu.  When
  2175.   in SELECT popups, the F_LINK_NUM ('0') command can be used in any mode
  2176.   to invoke a "Select option (or page) number:" prompt, which can take
  2177.   'g' or 'p' suffixes, homologously to the 
  2178.   "Follow link (or goto link or page) number:"
  2179.   prompt in the main document with popups retracted.  Note that when in
  2180.   the main document, the F_LINK_NUM command has an implied 'g' suffix
  2181.   for form links (i.e., will position you on the form link, not, for
  2182.   example, ACTIVATE a submit button), but *not* in popup windows (i.e.,
  2183.   without a 'g' suffix, the option corresponding to the number will be
  2184.   selected, and the popup will be retracted, as if you had pressed
  2185.   ACTIVATE when positioned on that option).  The 123p feature is quite
  2186.   useful in popups with a very large number of options, and supplements
  2187.   the HOME, END and WHEREIS functions for seeking positions in the list
  2188.   (again, regardless of keypad mode, if F_LINK_NUM is used to invoke
  2189.   the prompt).  A "page" is defined as the number of lines within the
  2190.   vertical dimension of the popup box. - FM
  2191. * Mods in LYEdit.c to seek the current page and line when the editor
  2192.   is sedt on VMS. - FM
  2193. * Updated the online 'h'elp concerning the "Follow link (or page) number:"
  2194.   and "Select option (or page) number:" features (Lynx_users_guide.html,
  2195.   follow_help.html, keystroke_help.html and other_help.html). - FM
  2196. * changes to help files to reflect the different prompt string. - KW
  2197. 1997-05-30
  2198. * Worked in LE's patch for keeping track of whether links occur in an
  2199.   underlining context, and if so, restore it when slang color is on and
  2200.   a current link is made non-current, thereby actually dealing with the
  2201.   longstanding bug discussed in the 1997-05-27 mods (This is just a hobby,
  2202.   and I always reserve the right to change my mind! :). - FM
  2203. * Mods of LYForms.c and LYStrings.c to deal with form field values too
  2204.   long to fit in the line editor's buffer (such as long TEXTAREA values
  2205.   which have no newlines in them).  As much of the tail as fits in the
  2206.   buffer is offered for editing, with statusline messages explaining the
  2207.   situation.  If the tail is modified, it is combined with the unmodified
  2208.   head when the form field is made non-current.  The result can be edited
  2209.   further by making the form field current again.  If the form has a
  2210.   Reset button, it can be used to restore the original value.  The
  2211.   vanilla code would crash on buffer overflow (Ugh!  A potential
  2212.   security hole.). - FM
  2213. 1997-05-29
  2214. * Restored underlining in conjunction with reversing for the current link
  2215.   with slang when colors are being used, but not otherwise. - FM
  2216. * The 1997-05-26 mods to bypass screen redraws on retractions of SELECT
  2217.   popups when the selected OPTION was not changed worked properly only
  2218.   for VMS curses.  Tweaked the for-slang code so that it now works like
  2219.   VMS curses (though not as efficiently).  However, with Unix curses,
  2220.   the delwin() - refresh() sequence does not restore what was there
  2221.   before the popup was invoked, and none of the tweaks I tried got that
  2222.   to work, so the poor Unix folks using Unix curses are now stuck again
  2223.   with screen redraws for every popup retraction.  - FM
  2224. 1997-05-27
  2225. * Eliminated in the fotemods code underlining in conjunction with reversing
  2226.   for the current link with slang, to avoid the longstanding bug of 
  2227.   underlining being lost (and distracting color changes occurring) when that
  2228.   link ceases to be current and it was embedded in an underlined region of
  2229.   text.  The attributes of the current link can be better handled in the
  2230.   development code based on configurable style sheets, so there's no
  2231.   point letting this bug ride, nor trying to deal with it through
  2232.   temporary internal mods, in the fotemods code set. - FM
  2233. 1997-05-26
  2234. * Mods of display_title() in GridText.c to eliminate the "format"
  2235.   mask as in KW's 1997-05-14 development code mods, and to make the
  2236.   memory management more efficient. - FM
  2237. * Mods of change_form_link() in LYForms.c to bypass the screen redraw
  2238.   on retraction of a SELECT popup if the SELECT block is DISABLE-ed
  2239.   or the selected OPTION was not changed.  Note that the complete
  2240.   elimination of the screen redraw in the 1997-05-20 development code
  2241.   mods, i.e., even when the selected OPTION was changed, results in
  2242.   the change not being made evident to the user in the retracted popup
  2243.   unless the screen is redrawn fortuitously (e.g., due to subsequent
  2244.   paging). - FM
  2245. * Modified the caching-related changes of 1997-05-15 to LYMainLoop.c,
  2246.   handling automatic reloading after a change of the User-Agent string
  2247.   like after comparable other option changes.
  2248.   We force a reload if "preferred document lan(G)uage"
  2249.   or "preferred document c(H)arset" are changed via the 'o'ptions menu,
  2250.   and to set the "reloading" flag for forcing a proxy cache refresh if
  2251.   those or "user (A)gent" are changed and the current document has an
  2252.   http, https or lynxcgi scheme, but not force a proxy cache refresh if
  2253.   we're reloading due to an INLINE_TOGGLE, IMAGE_TOGGLE, or RAW_TOGGLE
  2254.   command. - KW & FM
  2255. 1997-05-25
  2256. * Mods in LYMain.c to convert $USER if present in the TEMP_SPACE
  2257.   definition or LYNX_TEMP_SPACE environment variable to the string
  2258.   returned by getenv("USER"). - FM
  2259. * Fixed two typos for me->inFONT settings in HTML.c - TD
  2260. * Added chmod(file, 0600) calls for most files created by Lynx. - FM
  2261. 1997-05-24
  2262. * integrate patch JED's mods which support mouse for slang as well as add
  2263.   new functions to encapsulate differences between slang/curses. - TD
  2264. 1997-05-21
  2265. * Mods in HTML.c and LYCharUtils.c so that TABLE blocks are treated
  2266.   as divisions in the DIV nest, with a default alignment of HT_LEFT
  2267.   if the TABLE start tag lacks an ALIGN attribute, and otherwise,
  2268.   that attribute's value.  Nested TABLEs extend the DIV nest.  This
  2269.   avoids the problem in the vanilla code of TABLE content inheriting
  2270.   the alignment of a containing CENTER or DIV which is intended for
  2271.   alignment of the TABLE as a whole.  Also added support for ALIGN
  2272.   attributes in TR elements.  If the TR has no ALIGN attribute, it
  2273.   inherits that of the current division, which should be that of the
  2274.   current TABLE.  This, of course, still does not yield true TABLEs
  2275.   for truly tabular content, but makes TABLEs used for formatting
  2276.   more readable. - FM
  2277. 1997-05-20
  2278. * correct 2 occurrences of "me->inFONT == TRUE;" in HTML.c - TD
  2279. * add configure --with-color-style option to merge RP's alpha changes for
  2280.   color styles (this works only with ncurses, since it does not initialize
  2281.   the window background, leaving it null, thereby exploiting a bug in
  2282.   ncurses which sets null backgrounds to a space).  Also some whitespace
  2283.   (and renamed CS to make this build w/o ncurses) - TD
  2284. * test-built with ncurses 1.8.7, 1.9.4, 1.9.9e and 4.0, as well as bsd 4.4
  2285.   curses and slang - TD
  2286. * Tweak of HTFWriter.c so that it does the anti-spoof tests normally
  2287.   done by tempname() (see the 1997-05-19 mods) in all cases for which
  2288.   it changes the temporary file suffix from any of those checked by
  2289.   tempname() itself.  At this point, every way I've thought of for
  2290.   trying to spoof Lynx via links for temporary files is blocked, but
  2291.   people should beat on today's code to see if there's any spoofing
  2292.   strategy I haven't yet blocked. - FM
  2293. * Modified the Lynx Trace Log handling so that it doesn't use actual
  2294.   redirection of stderr via freopen() calls, and restores the original
  2295.   value of stderr during any escape to shell.  This avoids the problem
  2296.   on Unix that sh and ksh send their prompt strings to stderr, and that
  2297.   bash sends both its prompt and command line echo to stderr, so they
  2298.   end up in the log instead of being visible.  I had tested the initial
  2299.   design on VMS and with csh on Unix, and thus didn't notice this
  2300.   foolishness for the other Unix shells.  Anyway, it's OK for all of
  2301.   them now. - FM
  2302. * Tweaked SIGTSTP interrupt handler in the USE_SLANG for-unix code, so
  2303.   that it gets set to SIG_DFL when stop_curses() is called, to prevent
  2304.   strange interferences experienced when ^Z is used while a helper 
  2305.   process is in the foreground. - KW
  2306. * Change in LYForms.c to prevent forced screen refresh after selection
  2307.   from a popup box. - KW
  2308. 1997-05-19
  2309. * Recognize Linux console F1 key in LYgetch() (applies if -DNO_KEYPAD
  2310.   is in effect, as for all binaries built with slang). - KW
  2311. * Protect LYgetch() against returning raw values of keypad() symbols
  2312.   which are invalid when used later as an index into keymap[],
  2313.   override[], etc. - KW
  2314. * in the USE_SLANG for-unix start_curses(), honor the no_suspend flag
  2315.   if set.  This implements -restrictions=suspend handling for slang 
  2316.   (although it was intended for curses implementations which have 
  2317.   problems with ^Z within Lynx; see the PROBLEMS file).
  2318.   Note that the no_suspend flag cannot be suspected to have
  2319.   the desired effect if lynx is executed from a shell script, unless
  2320.   the shell process forked for the script also ignores the SIGTSTP
  2321.   signal generated (usually) by the ^Z key.  Also if the user is 
  2322.   allowed to execute any helper process (VIEWER, PRINTER, etc.) which
  2323.   does allow suspending while no_suspend is in effect for the Lynx
  2324.   parent process (by overriding the SIG_IGN setting done by Lynx or by 
  2325.   other means), then suspending may still be possible, in addition to
  2326.   strange effects either immediately or when the process or process group
  2327.   is continued (wrong tty and screen state, zombie processes, total
  2328.   hang of the session without any way to interrupt - you get the idea...).
  2329.   Trying to use the suspend restriction in order to prevent users from
  2330.   getting a shell prompt doesn't make much sense anyway when they are
  2331.   allowed access to execute commands which may be interrupted or allow
  2332.   escaping to a shell... - KW
  2333. * Tweak of HTFile.c so that we no longer lose an LYforce_HTML_mode
  2334.   directive if the file is gzipped or compressed and the uncompressed
  2335.   suffix is not mapped to text/html. - FM
  2336. * Modified tempname() in LYUtils.c so that it checks whether files
  2337.   with the current PID and target count already exist, and if so,
  2338.   increments the count until a name for a non-existing file has been
  2339.   created. - FM 
  2340. 1997-05-18
  2341. * Mods in LYMainLoop.c and LYClean.c so that Control-G is treated as
  2342.   a synonym for 'n'o in quit confirmation prompts. - FM
  2343. * Mods in LYPrint.c to strip any gzip or compress suffix from the
  2344.   suggested filename, on the assumption that we're deal with a text/html
  2345.   or text/plain file that had a corresponding Content-Encoding and no
  2346.   Content-Disposition: file; filename=name.suffix  header indicating
  2347.   the appropriate filename after uncompression.  This assumption does
  2348.   apply for our current ftp gateway, and for most present-day http
  2349.   servers.  This mod in turn ensures that text/html files which are
  2350.   not being printed as source will have their uncompressed suffixes
  2351.   converted to .txt, indicated that they are rendered. - FM
  2352. 1997-05-17
  2353. * Fixed long-standing bug in display_page() of GridText.c.  When it
  2354.   was updating the links structures, it wasn't re-initializing the
  2355.   form element if the links structure is not for a form field. - FM
  2356. * Mods in HTML.c to deal more effectively with H# headers used instead
  2357.   of LH in lists.  We now, in effect, treat them fully as if they were
  2358.   LH, so that their left indentations are in register with the current
  2359.   list nesting depth, and we apply better error recovery in cases where
  2360.   the author is mis-using H# for a FONT change rather than as an actual
  2361.   header. - FM
  2362. 1997-05-16
  2363. * Changed the line where a WHEREIS search target should preferably be
  2364.   displayed to the 4th line (not counting the title line).  This can
  2365.   be changed by redefining SEARCH_GOAL_LINE in userdefs.h.
  2366.   SEARCH_GOAL_LINE can also be a simple expression in terms of the
  2367.   variable display_lines, e.g. `#define SEARCH_GOAL_LINE (display_lines/3)',
  2368.   this should then automatically adapt to screen size changes (provided the
  2369.   display system can deal with that...)
  2370.   Note that this this goal line will normally not be used if the next 
  2371.   target, according to the algorithm Lynx uses, is already on the displayed
  2372.   screen.  Also, when the displayed page changes to show a search result,
  2373.   there is no guarantee that it will end up on the line set by 
  2374.   SEARCH_GOAL_LINE.  It should rather be regarded as a maximum.
  2375.   For example the presence of anchors on the line with the target or on
  2376.   the preceding lines will change the positioning. - KW
  2377. * The SEARCH_GOAL_LINE line will also be used for "going to" a link with
  2378.   'g' suffix at the "Follow link ..." prompt, although the algorithm is
  2379.   quite different.  As for a search target, this only applies when Lynx
  2380.   has to position to a different page of the document, and then is only
  2381.   a maximum. - KW
  2382. * Enabled the no-cache setting for the pseudo document Lynx creates for
  2383.   a client-side image map in LYMap.c, for now. - KW
  2384. * Minor typo fix for the proxy authentication mods. - FM
  2385. * Tweak of PRE block handling in HTML.c to ensure an implied paragraph
  2386.   after the block if it is in a list and not followed by an LI. - FM
  2387. * Tweaks of SGML.c and LYCharUtils.c to allow any non-digit to terminate
  2388.   a numeric character reference once at least one digit has been found in
  2389.   the reference. - FM
  2390. * Change in LYUnEscapeToLatinOne() to use isdigit() instead of isalnum()
  2391.   for recognizing numeric character references like LYUnEscapeEntities()
  2392.   does. - KW
  2393. 1997-05-15
  2394. * Worked in JED's mods for taking a suspend into account during select()
  2395.   calls. - FM
  2396. * Mods in LYMainLoop.c to not force a cache refresh on a proxy any more
  2397.   when INLINE_TOGGLE, IMAGE_TOGGLE, RAW_TOGGLE are used.  On the other
  2398.   hand, do force a proxy cache refresh after one of the variables relevant
  2399.   for content negotiation `language' or `pref_charset' has been changed
  2400.   from the Options screen, if the current document is from a http, https, or
  2401.   lynxcgi resource. - KW
  2402. * Set HTTP_ACCEPT_CHARSET environment variable for the child process in
  2403.   LYCgi.c if pref_charset is not NULL. - KW
  2404. * (chartrans) Write a META tag with the current display character sets to
  2405.   the files generated for Bookmarks, List, Info, History, and Visited Links
  2406.   pages, so title strings contained in those files will (hopefully) not
  2407.   get erroneously translated again.  Use new function LYaddMETAcharsetToFD()
  2408.   in LUCharUtils for this purpose. - KW
  2409. * (chartrans) makeuctb now sets RawUni to UCT_ENC_8BIT if not otherwise set
  2410.   and if there are char values above 127. - KW
  2411. * (chartrans) Change in HTuncache_current_document() to prevent caching of
  2412.   UCStages info which should be discarded.  Still allow caching for this
  2413.   in the node_anchor for source display, so that a META tag in the parsed
  2414.   HTML can influence the display after using the SOURCE '\' key. - KW
  2415. 1997-05-14
  2416. * Don't use title in showlist() if it is empty, to prevent "hidden links"
  2417.   on the List Page itself caused by documents with <TITLE></TITLE>. - KW
  2418. * Changed display_title() in GridText.c to not rely on sprintf() to get
  2419.   the number of blanks right. - KW
  2420. * (chartrans) Added new lynx.cfg symbols ASSUME_CHARSET, 
  2421.   ASSUME_LOCAL_CHARSET, and ASSUME_UNREC_CHARSET.  They are only
  2422.   recognized if compiled with -DEXP_CHARTRANS.  They correspond to the
  2423.   command line options -assume_charset, -assume_local_charset, and
  2424.   -assume_unrec_charset.
  2425.   The default for ASSUME_CHARSET is iso-8859-1 (corresponding to display
  2426.   character set "ISO Latin 1").  If no ASSUME_LOCAL_CHARSET is set,
  2427.   the explicit or default value for ASSUME_CHARSET will also be used for
  2428.   local files.  ASSUME_UNREC_CHARSET has no default.  See added text
  2429.   in lynx.cfg. - KW
  2430. * (chartrans) Changes in LYCharSets.c to HTMLSetCharacterHandling() and
  2431.   HTMLSetUseDefaultRawMode() to support (hopefully) more consistent
  2432.   and user-friendly handling of raw mode and its default.
  2433.   Note that the following description does not apply if the display
  2434.   character set is one of the CJK settings.  In that case, -raw and
  2435.   the corresponding Options setting is used as a CJK toggle as before.
  2436.   Note that the -raw flag is a toggle.  It changes the "raw mode"
  2437.   setting from the default.  The current setting of "raw mode" can be
  2438.   seen on the Options screen, and is also shown in a statusline message
  2439.   when the RAW_TOGGLE key (normally '@') is used.
  2440.   The default depends on the display character set (as previously)
  2441.   but now also on the ASSUME_CHARSET setting (as determined by a setting
  2442.   in lynx.cfg, possibly overridden by -assume_charset on the command 
  2443.   line, or the default iso-8859-1).  When the display character set
  2444.   corresponds to the ASSUME_CHARSET, the default for "raw mode" is ON,
  2445.   otherwise it is OFF.
  2446.   The effect of "raw mode" on the interpretation of documents which have
  2447.   no explicit charset label (from HTTP headers, a META tag, or otherwise)
  2448.   is as follows.  There is an internal "assume charset" which may differ
  2449.   from the user-specified ASSUME_CHARSET value.  When "raw mode" is set 
  2450.   ON, the internal variable is set to correspond to the display character
  2451.   set.  When "raw mode" is set OFF, the internal variable changes to
  2452.   the user-specified ASSUME_CHARSET or, if that also corresponds to the
  2453.   display character set (so that otherwise there would be no change),
  2454.   reverts back to the iso-8859-1 Web default.
  2455.   Raw mode doesn't imply total rawness.  HTML character entities may
  2456.   be expanded and translated with either setting, 8-bit characters which
  2457.   are inappropriate for the display character set will not be sent to
  2458.   the terminal.  For a "more raw" setting, try the "Transparent" pseudo
  2459.   display character set. - KW
  2460. 1997-05-13
  2461. * Changed the compilation default in userdefs.h for USE_TRACE_LOG
  2462.   to FALSE, for now. - KW
  2463. * Code for "fixing" of relative http and https URLs which start with a 
  2464.   ../ segment from FM added, but it has to be enabled with the new
  2465.   lynx.cfg symbol STRIP_DOTDOT_URLS (default currently set to FALSE).
  2466.   See FM's description under 1997-04-23. - KW
  2467. * Changed the test for dot segment fixing in LYLegitimizeHREF() so
  2468.   that now (if enabled) it also applies when the http or https base URL
  2469.   in effect does have a non-empty path but without any slashes in it
  2470.   (beyond the initial one between host and path).  The test was too narrow
  2471.   before and did not recognize this case, so that an unmodified URL with
  2472.   ../ in it would still be sent to the server and without generating a
  2473.   statusline message. - KW
  2474. * Tweak of case LYK_REFRESH: in LYMainLoop.c so that the REFRESH command
  2475.   still invokes an obligatory, complete refresh of the screen for slang
  2476.   on Unix with the new LY_SLclear() function (see 1997-05-09 mods),
  2477.   by using scrollok() if USE_SLANG is defined. - FM
  2478. * Changed the local variable name, lines, in follow_link_number() of
  2479.   LYGetFile.c to nlines, to deal with the AIX 4.2 bug of treating lines
  2480.   as a macro.  Also changed the variable name, pages, to npages for
  2481.   logical complementarity (they both refer to the total number). - FM
  2482. * Mods in HTML.c, LYCharUtils.c and GridText.c to deal with links for
  2483.   positioning, specified via NAME or ID attributes, when they are embedded
  2484.   in Anchors which have an HREF, so that they now don't force premature
  2485.   closing of those Anchors.  Also tweaked the code for creating links for
  2486.   the sources of images or other for-GUI embedded objects when clickable
  2487.   images ('*') is toggled on, so they use those mods as well, when
  2488.   possible.  Note, however, that the clickable images feature is creating
  2489.   Anchors with HREFs which aren't actually there, and still can create
  2490.   technically invalid markup, on occasion, when the non-doctored markup
  2491.   actually is valid.  The latter mods still need some improvements in the
  2492.   formatting, but are OK to use for now, and my brain hurts from trying
  2493.   to think through all the possible markup we might encounter. - FM
  2494. * Tweaks of the Lynx Trace Log handling to deal with reloads when the
  2495.   HText structure for the log has been dumped.  Made the first letter
  2496.   of the filename uppercase (Lynx.trace), complementary to Lynx.leaks.
  2497.   Eliminated the log from the Visited Links Page so it can't be sought
  2498.   there as a forward link.  Use the History Page if you want to 'd'ownload
  2499.   the log, or use the 'p'rint option while viewing the log.  Note that
  2500.   suffix maps do tail matching, and thus the so-called suffixes need not
  2501.   begin with a dot.  If you want to use an external viewer for the log,
  2502.   you can put:
  2503.       SUFFIX:Lynx.trace:application/x-LynxTrace
  2504.       VIEWER:application/x-LynxTrace:most +s %s
  2505.   in your lynx.cfg, or their equivalents in your mime.types and mailcap
  2506.   files. - FM
  2507. * Tweaks in LYMainLoop.c to set newdoc.title for various special pages
  2508.   generated by Lynx (History Page, Info Page, etc.) and when following
  2509.   a link. - FM
  2510. * Small change to the heuristics for New_DTD in start_element() 
  2511.   in SGML.c (try a bit more to close containing element if it's the
  2512.   same tag) - KW
  2513. 1997-05-12
  2514. * Added support for proxy authentication. - AJL & FM
  2515. * Updated follow_help.html to indicate that 0 is the universal
  2516.   F_LINK_NUM mapping for invoking the "Follow link (or ...) number:"
  2517.   prompt. - FM
  2518. 1997-05-11
  2519. * Tweaks in LYMainLoop.c to ensure that the LYforce_HTML_mode flag is
  2520.   reset reliably, so it doesn't carry over to requests for text/plain
  2521.   documents, as it was doing under some circumstances in the vanilla
  2522.   code, e.g., when a bookmark file was used as the startfile via a
  2523.   file://localhost/path URL rather than via the -book switch. - FM
  2524. * Very minor change in Lynx_users_guide.html, added two words - KW
  2525. 1997-05-10
  2526. * Fixed a typo in statusline() of LYUtils.c.  The check for whether
  2527.   the string is zero length before bothering to convert CJK multi-bytes
  2528.   was checking a holding buffer instead of the string. - FM
  2529. * Fixed a bug in LYHandleMETA() of LYCharUtils.c.  The check for a
  2530.   URL following the SECONDS value in REFRESH directives was not
  2531.   taking into account that an EOL might follow the digits for the
  2532.   SECONDS value. - FM
  2533. * Changed the behavior of boolean_choice() in LYOptions.c so that the
  2534.   cursor is positioned immediately at the option display line instead
  2535.   of staying at the statusline instructions until an initial entry is
  2536.   made, and modified the statusline instructions accordingly. - LE & FM
  2537. * Added a check for a NULL pointer in the LYCookie.c code for blocking
  2538.   sharing of SSL encrypted cookies with http servers, based on a patch
  2539.   from RT, and added a comment on why code for a block based on the
  2540.   scheme is there, despite its being redundant with the current blanket
  2541.   restriction based of the ports. - FM
  2542. * Mapped 0 to F_LINK_NUM (as suggested by KW), so that 0 invokes the 
  2543.   "Follow link (or goto link or page) number:" prompt under all 
  2544.   circumstances (but with the 0 not treated as the first digit of 
  2545.   the number entry).  That's a better way
  2546.   to do it, because then the F_LINK_NUM command and explanation always
  2547.   appears in the "Current Key Map" display, and only the mappings of
  2548.   numbers to functions drop out when going from NUMBERS_AS_ARROWS to
  2549.   LINKS_ARE_NUMBERS mode (as they should, 'cuz the numbers no longer
  2550.   are mapped to functions; though maybe they should stay mapped to
  2551.   functions now that we have an explicit command key for invoking the
  2552.   prompt; something to think about...). - FM
  2553. * Updated the PROBLEMS file to indicate that you should try changing
  2554.   -lresolve to -lbind if you have upgraded to the bind-8.1 or later
  2555.   library on a Sun system and keep getting the message "Alert!:  Unable
  2556.   to connect to remote host". - FM
  2557. 1997-05-09
  2558. * Typo fix in follow_help.html. - FM
  2559. * Added an LY_SLclear() function in LYCurses.c as a more efficient
  2560.   substitute for slang of the curses clear(), based on a patch from
  2561.   JED. - FM
  2562. * Added a USE_TRACE_LOG compilation (userdefs.h) symbol and -tlog command
  2563.   line toggle of the compilation default (normally TRUE), for directing
  2564.   syserr messages to a lynx.trace file in the user's home directory when
  2565.   TRACE mode has been turned on (either via the -trace command line switch,
  2566.   or the TOGGLE_TRACE (Control-T) command.  Also added a TRACE_LOG command
  2567.   (normally ';') for viewing the "Lynx Trace Log" (lynx.trace) at any time,
  2568.   if one has been initiated during the current session.  The trace log
  2569.   feature is disabled automatically in anonymous or validation accounts,
  2570.   and should not be used in any account which could have different users
  2571.   simultaneously.  The mods work well to the extent I've exercised them
  2572.   thus far on VMS and for the solaris2 target, but possibly need more
  2573.   refinements, depending on the behavior for other Unix flavors of
  2574.   freopen(), which is used for redirecting stderr to the log.  Updated
  2575.   lynx.man, lynx.hlp, and the online 'h'elp to describe these new
  2576.   features. - FM
  2577. 1997-05-08
  2578. * Made the handling of hidden links dependent on a new command line
  2579.   option.  With -hiddenlinks=listonly hidden links are only shown on
  2580.   'l'ist screens and listings generated by -dump or from the 'p'rint
  2581.   menu, but appear separately at the end of those lists.
  2582.   With -hiddenlinks=ignore they don't appear even in listings.
  2583.   With -hiddenlinks=merge hidden links are treated as before,
  2584.   i.e. they show up as bracketed numbers if LINKS_ARE_NUMBERED is on,
  2585.   and are numbered together with other links in the sequence of their
  2586.   occurrence in the document.  The default is -hiddenlinks=listonly.
  2587.   Changed the new follow_help.html file accordingly.
  2588.   This may help obviate an apparent need to call something a bug which
  2589.   others regard as a feature... - KW
  2590. * Function HText_AreDifferent() updated as in FM's code, but still 
  2591.   unused. - KW
  2592. 1997-05-07
  2593. * Added another argument in follow_link_number() of LYGetFile.c for
  2594.   returning the number entered at the "Follow link (or page) number:"
  2595.   prompt to the mainloop(), and modified the statusline error messages
  2596.   that may be issued from the mainloop() in conjunction the with 'g' or
  2597.   'p' suffixes so that they report that number when appropriate. - FM
  2598. * Changed the prompt to "Follow link (or goto link or page) number:" - KW
  2599. * Tweaked case HTML_DD: in HTML.c so that it checks whether a wrap
  2600.   has just occurred naturally before imposing a newline for DD start
  2601.   tags.  Without that check, seemingly random, extra newlines could
  2602.   occur in the DL/DT/DD blocks. - FM
  2603. * Created a follow_help.html for the keystroke_commands subdirectory
  2604.   of the online 'h'elp, describing the "Follow link (or page) number:"
  2605.   features, and added links to it in Lynx_users_guide.html and
  2606.   keystroke_help.html. - FM
  2607. * Changed the help description according to what is implemented here - KW
  2608. 1997-05-06
  2609. * Further tweaked KW's mainloop() tweak (see yesterday's entry), so that
  2610.   newdoc.link is reinitialized properly when we're going to, but not
  2611.   ACTIVATE-ing, a link in the current page due to a 'g' suffix for a
  2612.   "Follow link (or page) number:" entry.  Otherwise, if the number with
  2613.   a 'g' suffix was used to make the last link on the current page the
  2614.   current link, and then a NEXT_LINK command was used, one could end
  2615.   up on a link beyond the first one in the next page.  Also added a
  2616.   statusline message if the 'g' suffix is used with a number which
  2617.   corresponds to a link that already is current. - FM
  2618. * Tweaked yesterday's LYList.c mods so that an OL with the CONTINUE
  2619.   attribute is used when a "Hidden links:" list is appended to a
  2620.   "Visible links:" list and NUMBERS_AS_ARROWS mode is on.  This allows
  2621.   you to see the number to enter at "Follow link (or page) number:"
  2622.   prompts, as when LINKS_ARE_NUMBERED mode is on. - FM
  2623. * Mods in HTML.c for LI and LH handling so that a pointless wrap will not
  2624.   occur at the spacer following the bullet in UL blocks or the Arabic
  2625.   number, Roman numeral, or upper- or lowercase letter in OL blocks if
  2626.   the subsequent text has no spaces, itself, up to the right margin.
  2627.   In such cases, that text now stays on the initial LI or LH line, and
  2628.   wraps at the right margin to the left indentation for a second or
  2629.   greater line in the LI or LH. - FM
  2630. * Changes to avoid memory leaks in LYCookie.c - KW
  2631. * Escape '<' and '>' characters (using the LYEntify functions) in URL
  2632.   strings written to the temporary files for LIST and INFO screens, to
  2633.   avoid invalid HTML and corrupted display as a result of URLs which
  2634.   contain these characters (although they shouldn't) and have not been
  2635.   escaped earlier. - KW
  2636. * Changed the label for the currently selected link from "Filename:"
  2637.   to "URL:", and fixed an alignment glitch for the 9th item on the
  2638.   History and Visited Links pages. - KW
  2639. * Changed an "8-bit" occurring in HtInit.c to "8bit", tweaked LYKeymap.c
  2640.   comments. - KW
  2641. 1997-05-05
  2642. * Added HText_AddHiddenLink(), HText_HiddenLinkCount(), and
  2643.   HText_HiddenLinkAt() functions in GridText.c for keeping track of the
  2644.   addresses (URL, plus fragment if present) for links that were converted
  2645.   to hidden by HText_endAnchor() due to their having no visible link name,
  2646.   and modified showlist() and printlist() in LYList.c so that if any hidden
  2647.   links were create during the rendition, the "References in this document:"
  2648.   menu for the 'l'ist command or appendix on dumps segregates and clearly
  2649.   labels the visible versus hidden links. - FM
  2650. * Plugged a memory leak in LYEntify() of LYCharUtils.c. - FM
  2651. * Modified experimental DTD info to not close anchors when an invalid 
  2652.   P, H1-H6, or ADDRESS start tag is encountered, and to change error
  2653.   recovery for P and MAP. - KW
  2654. * Modified experimental DTD info and HTML.c to not close PRE when
  2655.   an invalid FORM start tag is encountered, and to use the appropriate
  2656.   handling for preformatted text if PRE is in effect but is not the top 
  2657.   element on HTML.c's stack.  The HTStyle structure's freeFormat (which 
  2658.   wasn't used anywhere before) is now used as one test whether we are 
  2659.   within preformatted text, also corrected the style setting of freeFormat
  2660.   for PRE in DefaultStyle.c. - KW
  2661. * Changed internal gateways (in HTNews.c, HTFile.c, HTWAIS.c, HTWSRC.c)
  2662.   to end LI, DT, and DD elements if they are not declared SGML_EMPTY,
  2663.   so that HTML.c's stack won't get overloaded in this case. - KW
  2664. * Tweaks in mainloop() handling of DO_GOTOLINK_STUFF and DO_GOTOPAGE_STUFF.
  2665.   Going to a link with the 'g' suffix and then immediately ACTIVATing that
  2666.   link could previously show the wrong page of the new document, since
  2667.   newdoc.line was not being reset. - KW
  2668. 1997-05-03
  2669. * (chartrans) Now always check for LYlowest_eightbit[current_char_set]
  2670.   near the top of HText_appendCharacter(), to prevent writing C1 control 
  2671.   chars to the terminal if they are not valid as displayable characters 
  2672.   according to the selected "display character set" Option.
  2673.   All this should be handled earlier in processing, and this check may
  2674.   disappear again for testing, but somebody asked for it... - KW
  2675. * (chartrans) Small changes to README files. - KW
  2676. * In the section of HTUtils.h for non-autoconf builds, don't set 
  2677.   HAVE_KEYPAD or HAVE_TTYTYPE if USE_SLANG is defined. - KW
  2678. * Modified HText_LinksInLines() to not count hidden form fields. - KW 
  2679. * Added support for setting an anchor's no_cache element based on a
  2680.   comparison between Expires and Date headers if both were received
  2681.   and we didn't set it based on a Cache-Control directive.  Also
  2682.   added equivalent support for a comparison between an Expires value
  2683.   from a META tag and a Date header.  We still compare Expires header
  2684.   or META values versus the system time if no Date header was received,
  2685.   and still do not accept Date values from META tags because they are
  2686.   unlikely to be reliable. - FM
  2687. 1997-05-02
  2688. * Fixed a bug in LYAddImageMap() of LYMap.c which could cause multiple
  2689.   insertions of the same MAP into the LynxMaps structure, and crashes
  2690.   on some systems due to the consequent multiple FREE()'s at exit. - FM
  2691. 1997-05-01
  2692. * More mods in HTML.c, LYCharUtils.c and GridText.c for rational handling
  2693.   of potentially wrapped form fields in PRE blocks.  We now artificially
  2694.   wrap the line if the form field would start within 6 columns from the
  2695.   right margin.  This makes sure that editing windows and the highlighted
  2696.   segments of submit or reset buttons will not ever be ridiculously short,
  2697.   and is homologous to our use of a collapsible space before input fields
  2698.   and buttons when not in PRE blocks to promote a wrap there instead of
  2699.   within the fields or buttons. - FM
  2700. * Expanded the WHEREIS query support so that it also locates the values
  2701.   of form fields within the current document and repositions or pages
  2702.   accordingly, as for normal (Anchor) links and for text strings.  Note
  2703.   that if the hit was for an OPTION value in a retracted SELECT popup,
  2704.   you are positioned on the retracted window, and must pop it up and
  2705.   search again to be positioned on the OPTION value with the hit, unless
  2706.   it already is the selected OPTION.  The mods are hairy enough without
  2707.   trying to do the latter automatically, at least for now. - FM
  2708. 1997-04-30
  2709. * Quote the URL for external command (not for VMS or DOS or Windows)
  2710.   to avoid dangerous chars and shell spoofing. - KW
  2711. * Escape characters properly when constructing URLs from filenames
  2712.   in LYConvertToURL.  If a string given for startfile, home page, or
  2713.   a goto command which does not already have the form of an absolute 
  2714.   URL starting with an URL scheme and which does not start with '~' 
  2715.   (but may start with '/') specifies an existing file or directory in 
  2716.   valid Unix-like format for the native filesystem, i.e. without using
  2717.   escaping, it gets URL-escaped, otherwise it is assumed to already
  2718.   be URL-escaped. - KW
  2719. 1997-04-29
  2720. * Updated RP Styles 0.2 code, don't allow comma as separator between
  2721.   fg and bg colors after all, fix the LYNX_VERSION string generation
  2722.   in userdefs.h to have `-Styles' appended *within* the quoted string. - KW
  2723. * Added support for a 'p' suffix, like the 'g' suffix for making a link
  2724.   number the current link rather than ACTIVATE-ing it,
  2725.   but for displaying the page indicated by the number preceding the
  2726.   'p' suffix entered at the "follow link (or goto link or page) number:" 
  2727.   prompt.  [...]  If the number
  2728.   entered at the prompt is '1' or less followed by the 'p' suffix, or only
  2729.   'p' is entered, you get the same behavior as for the HOME command.  If
  2730.   the number is equal to or greater than the number of pages, you get the
  2731.   last page displayed as you would if you had used successive PAGE_DOWN
  2732.   commands from the HOME position to reach it.  This differs from the END
  2733.   command, which fills the screen with lines from the end of the document
  2734.   if you are not already displaying the end of the document.  Note that if
  2735.   you enter a number without a suffix (to ACTIVATE the link with that number)
  2736.   or with the 'g' suffix (to make the link with that number the current link)
  2737.   it must correspond to a valid link number or an error statusline message
  2738.   will be issued, in contrast to the 'p' suffix for which an out of range
  2739.   number is treated as a request to display the first or last actual page in
  2740.   the current document. - FM
  2741. * Fixed some typos in lynx.man. - LWV
  2742. * More modifications of the anchor counting code for HTGetLinkInfo() in
  2743.   GridText.c so that it properly skips hidden form fields and anchors
  2744.   without selectable text. - KW
  2745. * More modifications in GridText.c and HTML.c so that it deals rationally
  2746.   with submit or reset button values, and the underscore placeholders for
  2747.   other form fields, when in versus not in PRE blocks.  The entire submit
  2748.   or reset button values are now always displayed, whether or not a portion
  2749.   of it was wrapped, but we still can only highlight the portion before the
  2750.   wrap to indicate a link for submission of the form or for resetting the
  2751.   form field values. - FM
  2752. * Undid some mysterious changes in SIGHUP setting (SIG_IGN vs. SIG_DFL)
  2753.   which had sneaked in in connection with adding the NOSIGHUP
  2754.   conditional. - KW
  2755. * Tweaks to New DTD's extra info for CENTER and H1..H6 - KW
  2756. * New function HText_AreDifferent() from FM added to GridText.c, but
  2757.   not used yet. - KW
  2758. * Tweaks to WB's additions for external command: use strncasecomp, add
  2759.   LYExtern.o to src/makefile.in, changed test for empty command. - KW
  2760. * Changed LYKeymap.h and LYKeymap.c so they agree about the symbols
  2761.   assigned to the new keys (SWITCH_DTD, EXTERN). - KW
  2762. * correct minor syntax err that caused SCO 3.x to fail make-include
  2763.   autoconf test.  also, eliminate whitespace before '#' that causes
  2764.   compile-fail on K&R compilers. - TD
  2765. 1997-04-28
  2766. * Updated lynx_url_support.html so as to make clear that the offer to
  2767.   include the currently displayed document with right-angle-bracket
  2768.   prefixing for mailto, newsreply, and snewsreply URLs is made only if
  2769.   the user has defined an external editor via the Options Menu, and that
  2770.   the user is expected to edit this inclusion so that it retains only
  2771.   those passages relevant to the email or followup message which the
  2772.   user will add. - FM
  2773. * Tweak of INPUT handling in HTML.c so that we use nbsp instead of any
  2774.   spaces when loading a submit or reset button's actual value instead
  2775.   of a series of underscores into the HText structure, so that we
  2776.   still promote a wrap, if needed, at the space we ensured would be
  2777.   present before each INPUT. - FM
  2778. * Made first_option a structure member rather than a static variable 
  2779.   in HTML.c - KW
  2780. 1997-04-27
  2781. * Tweak of Control-C and Control-G handling for popup_options() in
  2782.   LYForms.c.  They were being sought improperly as command keys rather
  2783.   than as raw keyboard entries.  Note that only Control-G should be
  2784.   used as "cancel" within popup windows on Unix, because Control-C
  2785.   is not being trapped to a handler as on VMS. - LE & FM 
  2786. * Tweak of the anchor counting code for HTGetLinkInfo() in GridText.c
  2787.   so that it takes form fields into account when making a link current
  2788.   based on a "Follow link number" entry with the 'g' suffix.
  2789.   Also added comments to that code. - KW
  2790. 1997-04-25
  2791. * Added information in the "Lynx bookmarks" section of the Users Guide
  2792.   about appropriate versus unsupported modifications when editing the
  2793.   bookmark files. - FM
  2794. * RP Styles 0.2 fixed a bit and brought up to current experimental code 
  2795.   level (no autoconfig or simple-curses, only older version of Wayne's 
  2796.   mods, maybe something else is missing, too).  No documentation, no
  2797.   detailed checking, no real cleanup.  Makefile slightly adapted,
  2798.   but still needs changing for new systems - see comments there. - KW
  2799. 1997-04-24
  2800. * Tweaks for enhanced mouse support in Win32 and hooks for 386 which
  2801.   doesn't have mouse support yet. - WB
  2802. * External command added.  See LYExtern.* in src and lynx.cfg.
  2803.   You need to define USE_EXTERNALS to compile this in. - WB
  2804. 1997-04-23
  2805. * Modified LYCharUtils.c, HTML.c and LYMessages_en.h so that if a
  2806.   partial reference (HREF or SRC value) would be resolved to an http
  2807.   or https URL which has only two dots as the first symbolic element in
  2808.   the path (e.g., http://host/../foo.html), such that the server would
  2809.   reject the request, that element is excluded from the resultant URL,
  2810.   but a statusline message is issued (once per document) about a bad
  2811.   partial reference, as immediate feedback which might lead to the
  2812.   document provider correcting the bad partial reference(s).  We still
  2813.   retain that first symbolic element, in compliance with the IETF RFCs
  2814.   and IDs for resolving URLs, with other URL schemes (e.g., ftp). - FM
  2815. * Added a skip_stack int to the HTML.h struct _HTStructured, to use
  2816.   for flagging that the next call to HTML_start_element or 
  2817.   HTML_end_element is an internal shortcut and should skip pushing
  2818.   or popping the HTML.c paragraph style stack even for elements
  2819.   that are not declared SGML_EMPTY.  Added a SET_SKIP_STACK macro
  2820.   to HTML.c to set the flag, use it. - KW
  2821. * Changes to HTML.c to better deal with a number of elements which may
  2822.   or may not have been declared SGML_EMPTY in HTMLDTD.c:
  2823.   if the last stacked element is HTML_OPTION, treat text as for
  2824.   HTML_SELECT in HTML_put_character and HTML_put_character and 
  2825.   HTML_put_string.  Added handling code for </P> to HTML_end_element
  2826.   (similar but not identical to that for P in HTML_start_element).
  2827.   Added check whether a SELECT is still open to FORM handling in
  2828.   HTML_end_element.  Added check whether a FORM is open to SELECT
  2829.   handling in HTML_end_element.  Added cases for end tags of
  2830.   TABLE-related elements (TR, THEAD, TFOOT, TBODY, COLGROUP, TH, TD)
  2831.   and of DT, DD, LH, LI, FONT, OVERLAY to the switch in
  2832.   HTML_end_element, currently just break from the switch. - KW
  2833. * Some tweaks and corrections to the additional element info and
  2834.   to the content types used with New_DTD, in HTMLDTD.c.  Made
  2835.   OPTION non-empty. - KW
  2836. * Now changed the tags_old[] in HTMLDTD.c, which is used with the
  2837.   switchable "old" SGML parsing, to follow the changes for A, B, 
  2838.   BLINK, CITE, EM, FONT, I, STRONG, and U mentioned in the entry
  2839.   of 1997-04-15.  These, together with FORM and P, are all declared
  2840.   as SGML_EMPTY now when the "old" SGML parsing is in effect, but
  2841.   not with new parsing. - KW
  2842. * Changes to LYMail.c and LYPrint.c to send Content-Transfer-Encoding
  2843.   headers and/or a charset parameter when mailing, based on idea from
  2844.   Hynek Med.  Don't use charset if we only have 7-bit characters
  2845.   anyway.  If compiled with EXP_CHARTRANS, use MIME name corresponding
  2846.   to display character set if it looks valid (not "x-"), otherwise
  2847.   only an explicitly given document charset.  In the chartrans case,
  2848.   don't send charset parameter for CJK since it may be wrong... - KW
  2849. * Added TRACE output to UCAuto.c - HM
  2850. 1997-04-22
  2851. * refined check for slang libraries/headers by checking if $CFLAGS has been
  2852.   set so that slang.h is in the search path - TD
  2853. * add check to allow use of broken ncurses 1.9.9e's color - TD
  2854. * add check for NGROUPS, TRUE, FALSE macro definitions - TD
  2855. * remove top-level makefile.in targets that can be combined with the generic
  2856.   target (more work required on the remaining ones) - TD.
  2857. * Plugged memory leak in deleteLinks() of HTAnchor.c. - KW
  2858. * When dumping or outputting a rendered document via the 'p'rint menu,
  2859.   Lynx would use the underscore placeholders for submit/image/reset
  2860.   buttons as for other INPUT fields.  We now load the values of
  2861.   submit/image/reset buttons instead of placeholders into the HText
  2862.   structure, so the values will be seen when dumping or outputting
  2863.   via the 'p'rint menu.  See the comments under case HTML_INPUT: in
  2864.   HTML.c for the still less than optimal things that happen if a
  2865.   wrap occurs within the INPUT value or placeholder strings, as might
  2866.   happen in PRE blocks, or for strings wider than the screen. - LE & FM
  2867. * SGML_abort() did not free memory used by the SGML.c parser stack.
  2868.   Now it does, but still doesn't call HTML_end_element() for the
  2869.   stacked elements (it's an abort after all...) - KW
  2870. 1997-04-21
  2871. * Tweaks of the 1997-04-11 and 1997-04-09 mods in HText_endAnchor() of
  2872.   GridText.c so as to take possible wrapping of Anchor content into
  2873.   account when deciding whether or not to implement the Anchor as an
  2874.   ACTIVATE-able link. - FM
  2875. * New SGML.c parser, and new HTMLDTD.c with additional element info.
  2876.   Extra content information for each tag is now included in the
  2877.   HTTag structure, and given in an extended tags_new[] table in
  2878.   HTMLDTD.c.  Modified start_element() and end_element() in SGML.c
  2879.   to perform some heuristic wind-downs of the parsing stack, based
  2880.   on the extra element info. - KW
  2881. * Revert treatment of some tags which were treated as SGML_EMPTY
  2882.   before to their "natural" content model.  No changes made to
  2883.   HTML.c to accommodate this change, so results may differ where
  2884.   HTML.c relies on previous hacks or has now handling code for
  2885.   end tags of elements which were previously SGML_EMPTY. - KW
  2886. * Made SGML parsing switchable between old and new HTMLDTD info
  2887.   and SGML.c code, controlled by a New_DTD global variable and
  2888.   LYK_SWITCH_DTD toggle key.  Use (temporarily?) ^V for the toggle key.
  2889.   This is not yet changeable via command line, lynx.cfg, etc., and the 
  2890.   default is New_DTD==YES (so that it gets tested :-) ). - KW
  2891. * Made some of the error messages before exit in LYMainLoop.c and 
  2892.   LYMain.c go to stderr instead of stdout, but only for UNIX and,
  2893.   in the case of the LYMainLoop.c messages, only if
  2894.   dump_output_immediately was in effect. - KW
  2895. 1997-04-20
  2896. * Tweaks in LYCharUtils.c to bind META CONTENT to a header value only
  2897.   via an HTTP-EQUIV attribute (i.e., not via a NAME attribute). - FM
  2898. * Mod in HTAccess.c to ignore the anchor's no_cache element if we're
  2899.   seeking a position in the currently loaded document. - FM
  2900. * Commented out the above change in HTAccess.c.  There's a more complete
  2901.   mechanism for it already in this code... - KW
  2902. * Fixed a typo in the bookmark file lead text. - DK (Doug Kaufman
  2903.   <dkaufman@rahul.net>)
  2904. 1997-04-19
  2905. * Changed the inappropriate StrAllocCat() to StrAllocCopy() for
  2906.   loading the XLOADIMAGE_COMMAND in LYReadCFG.c. - PC
  2907. 1997-04-18
  2908. * Based on recent discussions in www-html@w3.org, added HY and SHY
  2909.   to the DTD (treated as synonyms; one or the other is most likely
  2910.   to be used in future HTML specs, so for now, we support both), as
  2911.   markup equivalent to the named entity ­ and numeric character
  2912.   reference ­ (soft hyphen).  Note that Lynx implements soft
  2913.   hyphens as specified in IETF RFC 2070 (link "HTML i18n" in the
  2914.   Users Guide).  Use of a tag instead of entity is preferable for
  2915.   a soft hyphen because browsers which do not support soft hyphen
  2916.   will ignore it as an "unknown tag" instead of inappropriately
  2917.   inserting a hyphen or displaying the raw entity.  Also added WBR,
  2918.   which is handled like soft hyphen (indicating a permissible wrap
  2919.   point), but does not insert a hyphen at the wrap. - FM
  2920. 1997-04-17
  2921. * Mods in HTML.c, HTML.h, and LYMessages_en.h to issue an HTML stack
  2922.   overrun message only once per document, and as a statusline message
  2923.   if not in TRACE mode, and to check in HTML_end_element() for
  2924.   correspondence between the SGML and HTML stacks if an overrun should
  2925.   occur. - FM
  2926. * Corrections in HTML.c for the bounds checks associated with DIV and
  2927.   CENTER nesting levels, and for an HTML stack underrun. - KW
  2928. * Plugged a memory leak under case HTML_IMG: of HTML_start_element() in
  2929.   HTML.c, and removed an inappropriate if(){} in HText_endAnchor() of
  2930.   GridText.c. - FM & KW
  2931. * Modified the lead text created for bookmark files in LYBookmark.c so
  2932.   that it indicates that an editor can be used to delete or reorder
  2933.   the links, but that the format within lines should not be changed,
  2934.   nor other HTML markup added.  Note that the new lead text will be
  2935.   used only when new bookmark files are created via the 'a'dd bookmark
  2936.   link command.  A new bookmark file is not created if the one being
  2937.   sought already exists, so existing ones will still have the old
  2938.   lead text. - FM
  2939. 1997-04-16
  2940. * Extensive changes to try to keep track of whether a document (or 
  2941.   a location within it) was reached by an internal (fragment-only)
  2942.   URL reference or not.  The basic idea is to be serious about I-D
  2943.   (currently) draft-fielding-url-syntax-04.txt.  
  2944.   URL references starting with '#' are always to the current
  2945.   document (from which the reference is made). This leads to a
  2946.   lot of hackery in HTML.c, LYMainLoop.c, LYHistory.c, etc. etc...
  2947.   to distinguish a doc that was reached by an "internal" reference
  2948.   from others.  But it seems necessary to keep track of how the
  2949.   reference to a fragment was specified, whether with a non-empty
  2950.   "real" URL (possibly relative) preceding the '#' or without it, 
  2951.   all the way way from the HTML parsing to the mainloop.  Only then
  2952.   can the mainloop decide to not start a new retrieval for an internal
  2953.   reference without skipping a new retrieval if a full URL reference
  2954.   with fragment is made to a location in the same document (which
  2955.   may be non-cachable or the result of a POST)...
  2956.   This code prevents unnecessary/inappropriate POST form resubmissions
  2957.   on following an internal link in a POST response, as they are
  2958.   present for example in WebTechs validation results. - KW
  2959. * A "Goto numbered link" feature.  The user interface could be improved...
  2960.   Start typing the link number, then add 'g' before hitting enter.
  2961. * Some improvements to WHEREIS search.  Will not always position
  2962.   found string on first line (details depend on whether anchors are
  2963.   present, usually will position in top third of screen), and avoid
  2964.   some unnecessary screen updates. - KW
  2965. 1997-04-15
  2966. * Miscellaneous additional tweaks in HTML.c for more robust error recovery
  2967.   from bad HTML involving emphasis or style elements (B, BLINK, CITE, EM,
  2968.   FONT, I, STRONG, and U), or HREF-less NAME-ed Anchors without matching
  2969.   end tags. - FM
  2970. * Modified the declarations in HTMLDTD.c and code in SGML.C, HTML.c, and
  2971.   GridText.c to handle A, B, BLINK, CITE, EM, FONT, I, STRONG, and U
  2972.   container elements homologously to the modified handling of FORM (see
  2973.   1997-04-05 mods) so that if they are invalidly interdigitated or have
  2974.   spurious end tags in the markup, substitutions of the "expected" end
  2975.   tags by the SGML.c stack-based parser will not be made, and without
  2976.   messing up the HTML.c stack-based parser.  Appears to work reliably
  2977.   for all of the elements, and to be reasonably crash safe (hopefully
  2978.   as safe as the vanilla v2.7.1), but there are no guarantees. - FM
  2979. * Only *some* (most?) of the changes described in the above two
  2980.   entries are used, as far as they change HTML.c.  Not yet using the
  2981.   changes to HTMLDTD.c and SGML.c. - KW
  2982. * refined logic of SVr4 curses color support to test the no_color_video
  2983.   attribute - TD
  2984. * ifdef'd NCURSES_MOUSE_VERSION logic to allow build with ncurses 1.9.4 - TD
  2985. * ifdef'd wgetbkgd misspelling to allow build with ncurses prior to 1.9.9g - TD
  2986. * document USE_MOUSE configuration-option - TD
  2987. * modify configure script and makefile.in templates to make BSDI_Makefile
  2988.   obsolete - TD
  2989. * rename config.h to lynx_cfg.h to minimize conflict when configuring against
  2990.   ncurses or slang in nonstandard locations - TD
  2991. * new autoconf macro CF_HEADER_PATH is used to make header-search for slang
  2992.   the same as ncurses - TD
  2993. * modify CF_CURSES_LIBS, CF_NCURSES_LIBS and CF_SLANG_LIBS to accommodate
  2994.   predefinition of $LIBS variable - TD
  2995. * corrected autoconf'd compiler flags for Ultrix - TD
  2996. * add config.guess & config.sub to allow specialized host-type checks - TD
  2997. * guard against redefinition of NO_FILIO_H - TD
  2998. * use new autoconf macro CF_SYSTEM_MAIL_FLAGS /jes
  2999. 1997-04-14
  3000. * Tweaked LYAddImageMap() in LYMap.c so that it removes all pre-existing
  3001.   AREA element entries when updating MAP element content, and set the
  3002.   no_cache anchor element in LYLoadIMGmap() so that the updated MAPs
  3003.   always will be used when rendering. - FM
  3004. * Not using the no_cache change from last entry, until further 
  3005.   investigation. - KW
  3006. * Removed two spurious lines under case LYK_PRINT: in LYMainLoop.c
  3007.   (from an old cut and paste from case LYK_HISTORY: done too late
  3008.   at night 8-). - FM
  3009. 1997-04-13
  3010. * Modified the handling of BASE for resolving HREFs in relation to MAP
  3011.   and AREA elements, and USEMAPs in IMG and OBJECT elements.  The
  3012.   formally released code was treating such links equivalently to the
  3013.   handling of fragments for positioning the display to ID-ed elements
  3014.   or NAME-ed Anchors, and assuming they're in the same document if the
  3015.   associated HREF value begins with a '#', rather than resolving versus
  3016.   the BASE, and was always resolving versus the BASE for MAP ID or NAME
  3017.   attributes, and for the AREA HREFs in MAP content.  We now always
  3018.   resolve the MAP ID or NAME attributes versus the current stream's
  3019.   address (since the MAP must be in it or we wouldn't be handling it)
  3020.   [...] According to the
  3021.   original draft and the current HTML 3.2 Proposed Standard,
  3022.   MAPs need not be in the same document as the IMG or OBJECT elements
  3023.   which specify links to the MAPs.  Because MAPs are "deferred objects",
  3024.   they logically should be placed above any IMG or OBJECT elements which
  3025.   reference them in the same document (as is done for SCRIPTs), but this
  3026.   isn't stated in the specs, nor always done in practice.  [...]
  3027.   ([A]uthors who place the MAPs further down in the same document should be
  3028.   informed about "deferred objects" and encouraged to move them up 8-). - FM
  3029. * Use logical extension of the rules for HREF references also for
  3030.   USEMAP references to MAPs: relative URL references are resolved with
  3031.   respect to a BASE element if one is present in the document where they
  3032.   occur, unless they are URL references without a URL, i.e. only a
  3033.   fragment starting with '#'.  In the latter case they are taken as
  3034.   internal references referring to a MAP in the same document where
  3035.   the USEMAP occurs, whether the MAP occurs before the USEMAP (as it
  3036.   should, according to previous entry) or after the USEMAP. 
  3037.   HREF's in AREA elements follow the same rules. - KW
  3038. * Fixed bug in HTML_free() for the case when LYMapsOnly is set.  We
  3039.   didn't create an HText structure for the stream (just scanned it for
  3040.   MAPs and processed them into LYMap.c's LynxMaps structure), nor do
  3041.   we want to create a blank one (as was being done) since we didn't
  3042.   render the stream, nor would we have a me->target set.  So we just
  3043.   free any me elements that might still be allocated (though they
  3044.   should have been freed already), and return rather than continuing
  3045.   through the rest of the HTML_free() code. - FM
  3046. 1997-04-11
  3047. * Fixed bugs in Gridtext.c and HTML.c which could cause mishandling
  3048.   of anchors in LINKS_ARE_NUMBERS mode if a line wrap occurred in
  3049.   the numbered bracket or the anchor content following the bracket,
  3050.   and failures to suppress the numbered bracket if the anchor content
  3051.   was empty due to ALT="" in an IMG tag, or if Lynx was configured or
  3052.   toggled to suppress the link for the server-side image map if both
  3053.   ISMAP and USEMAP attibutes were present in the IMG tag. - FM
  3054. * Only using the number-removing code under additional conditions:
  3055.   ISMAPs which appear together with USEMAPs and which are suppressed
  3056.   with LYNoISMAPifUSEMAP in LINKS_ARE_NUMBERS mode. - KW
  3057. * Extended the disk_save restriction to the print menu as well as
  3058.   the download menu, and accordingly updated lynx.hlp, lynx.man, and
  3059.   Lynx_users_guide.html. -  HN & FM
  3060. 1997-04-09
  3061. * Many changes to further the Win32 and 386 ports.  An emulation of
  3062.   the HTVMS_ calls was used to try and cover all the DOS'izms.
  3063.   A specialized ifdef for pdcurses color mapping added.  Some keypad
  3064.   tweaks.  More generalized process spawning.  .lynxrc is lynx.rc for 386.
  3065.   - WB
  3066. * Tweak to ensure that a newline isn't inserted by virtue of a
  3067.   FORM start tag if it's in the first line of a list element and
  3068.   no text precedes it other than a UL's bullet or OL's number
  3069.   on that line. -  FM
  3070. * Added pauses for the "Bad HTML" statusline messages under cases
  3071.   HTML_HTML and HTML_BODY in HTML_end_element(), and eliminated
  3072.   their checks for an unclosed FORM because we no longer expect
  3073.   that to cause a serious problem. - LE & FM
  3074. * Added a NO_ISMAP_IF_USEMAP configuration symbol and -ismap
  3075.   command line toggle for suppressing inclusion of a link for the
  3076.   server-side-image-map if an IMG or OBJECT element has both ISMAP
  3077.   and USEMAP attributes such that a client-side-image-map link is
  3078.   created.  Updated lynx.man, lynx.hlp and Lynx_users_guide.html
  3079.   accordingly. - FM
  3080. * Fixed a glitch in HText_endAnchor() of Gridtext.c which could
  3081.   cause dangling Anchors in LINKS_ARE_NUMBERED mode if the Anchor's
  3082.   content was handled in a manner which caused it to become zero
  3083.   length. - FM
  3084. * Moved handling for NEWS_POSTING in LYReadCFG.c to the right place,
  3085.   so that it can actually have an effect. - LWV
  3086. * Typo fixes for the comment concerning NO_ANONYMOUS_EMAIL in
  3087.   userdefs.h - HN & FM
  3088. 1997-04-08
  3089. * New translation table koi8r_uni for KOI8-R charset.  Lynx can now
  3090.   translate between iso-8859-5 and KOI8-R, at least for the Cyrillic
  3091.   characters present in both. - KW
  3092. * New translation table def7_uni with default 7-bit mappings 
  3093.   (replacement representation).  Based on RFC1345 and mnemonic,ds
  3094.   from ftp://dkuug.dk/i18n/ and previous Lynx replacements
  3095.   in LYCharSets.c and IPA FAQ convention and stuff for Ethiopic and
  3096.   KOI8-R.  It maps many of the accented Latin characters present in
  3097.   Unicode to their unaccented counterparts.  This table is now
  3098.   used for the "7 bit approximations" display "character set". - KW
  3099. * Entities for Latin2 characters added to HTMLDTD.c  These also
  3100.   include many entity names for ASCII characters, and characters
  3101.   which are in both iso-8859-1 and iso-8859-2. - Hynek Med
  3102. * Changes to the non-chartrans translation tables in LYCharSets.c
  3103.   for Đ, Ð, and ð.  Treat Đ more like
  3104.   an entity for the (Latin-2) Unicode character U+0110, since
  3105.   that seems to be SGML standard usage. - KW
  3106. * Added mappings for some "smart quote" characters to several
  3107.   translation tables. - KW
  3108. * Make makeuctb slightly more flexible (accept unicode range for
  3109.   mapping to single code point). - KW
  3110. 1997-04-07
  3111. * Took out special-case handling in the curses-color code for underlining 
  3112.   when lynx is running under Linux using the linux console with color.  
  3113.   The code was introduced on 1997-03-12 and would ignore "smul" capability
  3114.   info from terminfo or termcap under those circumstances, always using
  3115.   bold instead of underline. - KW
  3116. * Slightly modified the FORM handling patch of 1997-04-05, as follows:
  3117.   Use a generic test for a non-SGML_EMPTY element for bypassing the
  3118.   stack pop in HTML_end_element() of HTML.c instead of an explicit
  3119.   test for HTML_FORM. - KW
  3120. 1997-04-06
  3121. * Patch for IMG elements which have both ISMAP and USEMAP in effect.
  3122.   In HTML_start_element() don't generate the "[ISMAP]-" string for 
  3123.   output in this case, unless clickable_images is set TRUE. - KW
  3124. 1997-04-05
  3125. * Patch for Lynx v2.7.1 to handle invalidly interdigitated container
  3126.   elements or spurious container end tags without substitutions of
  3127.   "expected" FORM end tags by the SGML.c stack-based parser, and
  3128.   without messing up the HTML.c stack-based parser.  Reliably succeeds
  3129.   in not closing FORMs before all of the FORM elements, including
  3130.   submit buttons, have been processed.  Should be reasonably crash
  3131.   safe (hopefully as safe as the vanilla v2.7.1), but there are no
  3132.   guarantees. - FM
  3133. 1997-04-04
  3134. ============================================================================
  3135. ---  Release of Lynx2-7 + BUGFIXES as Lynx v2.7.1 (April 4, 1997) by FM  ---
  3136. ============================================================================
  3137. * Note that 2.7.1 was not a release from this code set, but all 2.7 -> 2.7.1
  3138.   bugfixes and other changes are also included in this code set, in either
  3139.   identical or equivalent form.  Therefore the entries below this point
  3140.   comprise the 2.7 -> 2.7.1 changes, and additionally other changes made to
  3141.   the development code set during that time. - KW
  3142. 1997-04-02
  3143. * add Andrew Kuchling's patch to support mouse-clicks with ncurses. - TD
  3144. * refine tests that address porting problems to SCO (detecting struct winsize,
  3145.   workaround for misdefinition of 'remove')
  3146. * refine CF_COLOR_CURSES test to avoid ncurses 1.9.9e bugs. - TD
  3147. * refine CF_PATH_PROG to allow for machines that haven't the given programs,
  3148.   by using only the program name and added configure option
  3149.   --disable-full-paths to enforce this behavior. - TD
  3150. * fixes for some gcc compiler warnings (missing prototypes, unused variables,
  3151.   uninitialized variables, shadowed variables). - TD
  3152. * Fixed typos in LYHistory.c, LYMail.c and LYMain.c which caused
  3153.   failures of flag setting in the distributed code. - TD
  3154. * correct cast in HTFWriter.c that may break if atoi() is not prototyped. - TD
  3155. * add top-level makefile target 'maintainer-clean', use this to remove
  3156.   Lynx.prj - TD
  3157. 1997-03-31
  3158. * Added a missing check for whether the fragment token is NULL in
  3159.   LYConvertToURL() of LYUtils.c.  Without the check, the for-Unix code
  3160.   could crash if a local file spec was entered as a startfile or goto
  3161.   with escaped characters. - KW
  3162. * Mod in HTML.c to retain "[INLINE]" as the default ALT string if an
  3163.   IMG element has an ISMAP attribute but is not in Anchor content such
  3164.   that it could not in fact function as a server-side image map. - FM
  3165. 1997-03-27
  3166. * In mainloop(), after the call to HText_pageDisplay() following a change
  3167.   of the document view, ensure that curdoc.link does not remain set to -1 
  3168.   if there are any links on the screen.  This would otherwise happen if
  3169.   a document is pushed to the history stack while there are no links, and
  3170.   later popped (and refreshed) after one or more links have been created.
  3171.   This change prevents segmentation faults which occurred after creation
  3172.   of a new file in a previously empty directory via the DIRED menu.  The
  3173.   access to invalid memory only occurred if the screen showing the empty
  3174.   directory did not have a parent dir reference link (which is always the
  3175.   case if NO_PARENT_DIR_REFERENCE was specified at compilation time). - KW
  3176. * In LYLocal.c, modified the code handling DIRED_MENU to do more careful
  3177.   checking of the selected file.  In addition to "TAG", "FILE", and "DIR", 
  3178.   DIRED_MENU definitions in lynx.cfg now also recognize LINK as a type.
  3179.   DIRED_MENU definitions with a type field of "LINK" are only used if the
  3180.   current selection is a symbolic link ("FILE" and "DIR" definitions are
  3181.   not used in that case).  The default menu definitions have been updated
  3182.   to reflect this change, and to avoid the showing of menu items whose
  3183.   action would always fail - KW
  3184. * Some cleanup to eliminate compiler warnings, remove some unused 
  3185.   variables - KW
  3186. * Fixed a typo and added comments for the code in LYMainLoop.c which
  3187.   decides whether to load the URLs for homepage and/or startfile into
  3188.   the goto buffer at startup.  The typo in the distributed code caused
  3189.   the startfile URL always to be added to the goto buffer, even if
  3190.   it had POST content such that it could be resent inappropriately
  3191.   as a GET request via the goto buffer. - FM
  3192. * Added a bsdi-slang target to the Makefile. - Laura Eaves
  3193. 1997-03-26
  3194. * Changed highlighting of strings found by a WHEREIS ('/') search.
  3195.   Now uses Christmas tree attribute combination ("all bits are on"),
  3196.   which with color support translates to COLOR:7. - KW
  3197. * Modified the HTStream structure and associated code in src/HTFWriter.c
  3198.   so that we save and use the relevant content of the associated
  3199.   HTPresentation structure as two HTFormat elements rather than via a
  3200.   pointer to the HTPresentation structure itself, because the latter
  3201.   structure might not be valid under some circumstances when
  3202.   HTFWriter_free() is called.  The distributed code might indirectly
  3203.   result in segmentation faults during downloading on Linux and some
  3204.   other flavors of Unix (though they don't occur for most flavors, or
  3205.   on VMS). - KW
  3206. 1997-03-23
  3207. * Further reduction of top-level makefile.in by moving definitions out of
  3208.   WWW/Implementation/*/Makefile, so only one is needed for autoconfigured
  3209.   build (i.e., WWW/Implementation/unix/Makefile).  This highlights the
  3210.   remaining differences between the top-level targets - TD
  3211. * Make configure script generate Unix makefiles in subdirectories, a step
  3212.   toward being able to run make from any directory, for development - TD
  3213. * Add autoconf tests for paths of programs, including sendmail vs mmdf - TD
  3214. * Add configure script options for development (--disable-echo, --enable-debug,
  3215.   --enable-find-leaks, --enable-warnings) - TD
  3216. * Allow user to override search path for ncurses header by setting $CFLAGS or
  3217.   $CPPFLAGS - TD
  3218. * Correct array limit in LYCurses.c for SVr4 color support - TD
  3219. * Use addstr rather than printw in popup-forms to address concern about 8-bit
  3220.   characters - TD
  3221. 1997-03-21
  3222. * Changes in auto config handling of ncurses header location, function
  3223.   used for reading terminal input, some other system dependent tweaks
  3224.   (including SCO broken remove, time.h) - TD
  3225. * Fix for popup handling with late ncurses versions (uses wprintw
  3226.   instead of waddstr in LYForms.c) - TD
  3227. * Mods in LYPrint.c to use ".txt" as the output file extension for
  3228.   all rendered text/html files regardless of their original extension.
  3229.   The distributed code was doing this only for ones with an extension
  3230.   of ".html".  The original extension still is retained if the file
  3231.   is being output as source. - FM
  3232. * Added protection against passing a NULL pointer for path_url to
  3233.   render_item() from dired_options() in LYLocal.c. - GN
  3234. 1997-03-20
  3235. * Tweaked the protection against URLs directed to port 19 or port 25 so
  3236.   that it can't be circumvented via lead zeros in the port numbers. - FM
  3237. * Changed the compilation default so as not to send From MIME headers to
  3238.   http or https servers.  The default can still be changed via lynx.cfg.
  3239.   Replaced the -nofrom disabling switch to a -from switch for toggling
  3240.   the compilation or configuration default.  Sending the From header
  3241.   has become widely regarded as an invasion of privacy risk, particularly
  3242.   in conjunction with cookie support. - FM
  3243. * Corrected a typo in the lynx.cfg comments concerning TRUSTED_LYNXCGI
  3244.   rules. - KW
  3245. 1997-03-17
  3246. * Mods of LYNews.c and LYMail.c to prepend a "-- " separator before
  3247.   appending the LYNX_SIG_FILE signature file to news and email
  3248.   messages. - FM
  3249. * Made the installation mode 755 in the top-level Makefile.  The
  3250.   distributed code used 555, and some install commands were unable
  3251.   to do the strip. - LWV
  3252. 1997-03-14
  3253. * Corrected typos and expanded the comments concerning lynxcgi symbols
  3254.   in userdefs.h and lynx.cfg. - FM
  3255. * Modified SGML.c to handle the numeric character reference ™ as
  3256.   the named entity ™ also in the non-chartrans case.  The
  3257.   trademark character (given by ™ or ™) will be shown as
  3258.   "(TM)" as the ASCII substitution unless the current display character
  3259.   has a code point for the trademark character or unless overridden by a
  3260.   chartrans translation table. The code of 1997-02-25 prevented showing
  3261.   the trademark sign as "(R)" but did not work in all non-chartrans
  3262.   cases. - KW
  3263. * Include time.h via tcp.h for SVR4 systems.  The tcp.h header does include
  3264.   sys/time.h for Unix systems, but this apparently doesn't get  struct tm 
  3265.   and  extern char * ctime()  declared for SVR4. - FM
  3266. 1997-03-13
  3267. * Added protection in LYGetFile.c against connections to the port 25
  3268.   ESMTP service. - FM
  3269. 1997-03-12
  3270. * (chartrans) Make compilation in src/chrtrans less verbose, no more 
  3271.   generating automatic *.h_old backup copies. - KW
  3272. * Refinement to the SVr4 (ncurses) color support, allowing it
  3273.   to more closely model the slang support. - TD
  3274. 1997-03-11
  3275. * Tweak for command line parsing of files with no URL in LYUtils.c.
  3276.   Also added ability to pass partial domain names in the DJGPP version. - WB
  3277. * Added the closing function for Win32 TCP in LYExit.c (did anyone see a
  3278.   difference?!). - WB
  3279. * Altered LYCurses.c so that the DJGPP version could spawn other programs
  3280.   without certain death. - WB
  3281. * Ignoring the whole ~/lynx.cfg problem (expanding '~') entirely for the 
  3282.   Win32 version for now. - WB
  3283. * Some other tweaks for Win32 and DJGPP - WB
  3284. * Added protection in LYGetFile.c against denial of service attacks via
  3285.   the port 19 CHARGEN service.  The distributed code left Lynx or proxies
  3286.   vulnerable to such attacks via direct or redirection URLs. - FM
  3287. 1997-03-10
  3288. * Fixed error in the handling of numeric character references with values
  3289.   greater than 255 in SGML.c.  The distributed code was breaking after
  3290.   substitutions instead of falling through to reset the string chunk and
  3291.   recycle the terminator if not a semi-colon. - FM
  3292. 1997-03-09
  3293. * Integrated (simple) color, auto-configure patches with 2.7 following
  3294.   chrtrans patch - T.Dickey, J.Spath.
  3295. 1997-03-08
  3296. * Fixed error in the switch positioning of checks for XLOADIMAGE_COMMAND
  3297.   and wais_proxy in LYReadCFG.c.  The distributed code had them reversed
  3298.   under case 'W' versus case 'X'. - PDS
  3299. * Expanded the copyright and licensing statements in the -version
  3300.   output. - FM
  3301. 1997-03-04
  3302. * Corrected the offset computation in textsearch() of LYSearch.c so that
  3303.   WHEREIS searches repeated on a page with no links seek the target
  3304.   starting at the line immediately following the last displayed.  The
  3305.   distributed code was setting a greater offset. - JS
  3306. 1997-03-02
  3307. * Don't entify post content for the showinfo display, now that we are
  3308.   making it an XMP block in that display to handle all of the supported
  3309.   enctypes. - FM
  3310. * Patches to fix mail and FTP for Win32 (LYMail.c, HTFile.c). - WB
  3311. * Makefiles to compile chartrans code for Win32. - WB
  3312. * (chartrans) Minor cleanups (makeuctb.c, chrtrans/Makefile, HTPlain.c)
  3313.   to enable successful compilation on Win32. - KW
  3314. 1997-02-28
  3315. * Changed all references to "image/*" to just "image" in the userdefs.h
  3316.   and lynx.cfg comments about XLOADIMAGE_COMMAND.  The "/*" within the
  3317.   userdefs.h comments was generating warnings from some compilers. - FM
  3318. * Added a snake-slang target to the Makefile, and added -DUNIX to the
  3319.   LYFLAGS for the snake3 and snake3-slang targets (HP-UX apparently does
  3320.   not define "unix" itself with the -Ae switch, and thus needs to have
  3321.   that definition forced via -DUNIX). - HL
  3322. * Merged with patches and makefiles from Wayne Buttles 
  3323.   (buttles@wsb.champlain.edu) to enable compilation in two new environments: 
  3324.   Win32 (95/NT) with Borland C++ 4.52 compiler, and 386 DOS with DJGPP 
  3325.   compiler.  To add ports for Win32 (95/NT) and 386 DOS computers with a
  3326.   packet driver, four new defines were created: _WINDOWS (Defined for Win32
  3327.   specific code - Mostly TCP related), DJGPP (Defined for 386 specific code -
  3328.   Mostly TCP related), DOSPATH (Defined for any DOS'ish computer), and
  3329.   NOSIGHUP (Defined for computers not supporting sighup signal calls).
  3330.   Separate utility programs needed for compiling and running Lynx on those
  3331.   platforms are available from Wayne at
  3332.   <http://www.fdisk.com/doslynx/wlynx/>. - WB, KW
  3333. * Fixed Telnet for Win32 - WB
  3334. * (chartrans) Small correction in SGML.c (set_chartrans_handling) - KW
  3335. 1997-02-26
  3336. * Close both descriptors of the pipe() for the NSL_FORK enabled code
  3337.   in HTTCP.c.  The distributed code was closing only one of them on
  3338.   completed gethostbyname() calls, and neither on 'z'aps. - FM
  3339. * Changed the HREF for the "Lynx FAQ" link in the online 'h'elp to
  3340.   its new URL (http://www.slcc.edu/lynx/faq.html). - FM
  3341. 1997-02-25
  3342. * More reverse engineering to cope with Netscape's bogus cookie header
  3343.   parsing.  The parser must not require an '=' between the expires
  3344.   attribute name and value, because Set-Cookie headers are being
  3345.   transmitted without it (e.g., by http://law.agps.gov.au).  So Lynx
  3346.   now treats that as another special case. - FM
  3347. * Cope with invalid use of expires attributes in Version 1 cookies.
  3348.   An -06 State Management draft recommends that for "backward
  3349.   compatibility", and has been severely criticized in the HTTP-WG,
  3350.   but it would be foolish not to assume Netscape will do that.  See the
  3351.   expanded comments in LYSetCookie() of LYCookie.c for more information.
  3352.   Note that "expires" thus cannot be used as a Version 1 cookie name, but
  3353.   a provider would be foolish to use that, anyway.  Note also that the
  3354.   possibility of using different header names for Version 1 versus
  3355.   Version 0 (a.k.a., "Netscape") cookies is being discussed in the
  3356.   HTTP-WG, which might have been better to do in the first place, but
  3357.   the -05 draft has been approved as RFC 2109:
  3358.     http://info.internet.isi.edu/in-notes/rfc/files/rfc2109.txt
  3359.   so it would be a while before that were done, if ever. - FM
  3360. * chartrans code for translation of character sets, handling of Unicode,
  3361.   and i18n updated for Lynx 2.7.  Support for CHARSET attribute on A
  3362.   tags.  New directory src/chrtrans with table files.  Compilation flags
  3363.   -DEXP_CHARTRANS, -DEXP_CHARTRANS_AUTOSWITCH (for Linux), 
  3364.   -DSLANG_MBCS_HACK (for raw unicode console).  
  3365.   New command line options when compiled with -DEXP_CHARTRANS: 
  3366.   -assume_charset, -assume_local_charset, -assume_unrec_charset.  
  3367.   See README.chartrans and README files in src/chrtrans for more info.
  3368.   INFO screen shows of effective charset even if not given explicitly.
  3369.   Translation routines in LYCharUtils.c not chartrans-ified at this point.
  3370.   - KW
  3371. * No showing of ™ or ™ as (R) any more, use (TM) instead. - KW
  3372. * Prefer HTTP-EQUIV over NAME in META tags. - KW
  3373. 1997-02-22
  3374. * Fixed a memory management glitch which could cause a crash if the
  3375.   MIME type of a reply to a FORM submission with METHOD=POST caused a
  3376.   download offer to be invoked. - FM
  3377. * Don't simplify ftp URLs by trimming trailing slashes if the URL is
  3378.   being proxied.  The Netscape proxy server for some unknown reason
  3379.   can return redirection for ftp URLs with the slash appended, and
  3380.   trimming it can result in a redirection loop.  Based on a posted
  3381.   patch from KW. - FM
  3382. * Fixed two typos in the checks for HTPassHighCtrlRaw in LYExpandString()
  3383.   of LYCharUtils.c. - KW
  3384. * Fixed typo in the equality check on line 1553 in HTGopher.c. - AM
  3385. 1997-02-19
  3386. * Reset the host string after an '@', if present, when trimming default
  3387.   ":port" fields in the new code aimed at compliance with the Masinter
  3388.   and Fielding URL drafts, expected to replace RFCs 1738 and 1808.  The
  3389.   distributed code neglected to do that, and was ending up on a ":password"
  3390.   field, if present, instead of on the ":port" field, causing the username
  3391.   to be treated as the host name.  - FM
  3392. * Expand the default port trimming so as to include all of the registered
  3393.   URL schemes which support a port field in the v2.7 release. - FM
  3394. * Correctly uncache the current directory listing when invoking an 'u'pload,
  3395.   so that it will be updated to include the uploaded file if placed in the
  3396.   current directory.  The released code attempted to do this in a manner
  3397.   which prevented a pop, so that the directory listing couldn't be restored
  3398.   on return from the uploader menu. - FM
  3399. * Recognize a bookmark file used as the startfile, whether it resides in the
  3400.   home directory or in a subdirectory off home.  The released code failed if
  3401.   the file was in home, and not in a subdirectory, unless the -book switch
  3402.   was used instead of a startfile entry or WWW_HOME variable. - FM
  3403.