CHANGES2.7 47.5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831
---      Release of Lynx2-6FM as Lynx v2.7 (February 15, 1997)      ---
* Release of Lynx2-6FM as Lynx v2.7. - FM
* Included -Ae when compiling the Implementation modules for the snake3
  target. - FM
* Mods to issue an alert about a BASE tag not having an absolute URL only
  once per document. - FM
* Added code for appending LYNX_SIG_FILE to email messages as well as to
  news posts or followups, and updated the Users Guide accordingly. - FM
* Updated - FM
* Fixed some problems in the code for using a hookless Lynx image with
  snew_proxy, snewspost_proxy, and snewsreply_proxy set to
  "nntp://host:port/" so that it uses Tom Zerucha's (
  daemon which handles the SSL communications on behalf of the Lynx
  image.  Also polished up all of the news gateway code, and added
  comments for the benefit of new developers. - FM
* Added an ECGOTO command mapped by default to 'G', complementary to the
  GOTO command (default 'g'), to edit the current document's URL and then
  go to it.  Using case-sensitive letters with different command definitions
  ensures that both will appear with their brief explanations in the 'k'eymap
  listing.  For ECGOTO, Control-G, failure to modify the URL, or complete
  deletion of it, all act as a cancel.  If the current document has POST
  content associated with it, a warning will be issued before offering the
  URL to edit.  The POST content is retained if the modification merely
  involves a change in fragment for the URL.  Otherwise, the modified URL
  (if it has an http scheme) will be submitted with method GET and no POST
  content.  If the ECGOTO command is not cancelled, or not simply a fragment
  change, the modified URL will be added to the 'g'oto buffer, and can be
  re-accessed, to edit further, via the GOTO command.  See the updated online
  'h'elp for more information. - FM
* Amplified the comments concerning deletion of prototypes for MultiNet
  socket library functions as they get added to MultiNet's own headers
  in newer versions of it's socket library. - FM
* Added a missing fclose() in post_article() of HTNews.c, and added code
  to delete the temporary file there, so it's gone as soon as we're done
  with it. - FM
* Enhanced the Set-Cookie header parser to handle values that contain
  spaces but were not enclosed in double-quotes, and to use such
  quoting or not when sending Cookie headers, depending on whether
  this was done in the Set-Cookie header.  Also added anti-crash
  checks should the parser's efforts to handle both historical (a.k.a.
  original Netscape) cookies and Version 1 cookies go awry (does deal
  successfully now with all the cookies which had been reported as
  problematic). - FM
* Mods of the screen handling in LYNews.c for cleaning up any screen
  trash created by the external editor. - FM
* Tracked down an uninitialized pointer in LYNews.c that probably was
  behind reports of crashes when posting to newsgroups. - FM
* Plugged a memory leak in LYMainLoop.c. - TJC
* Added posting ability to the news gateway, in lieu of the previous,
  variably reliable, use of a spawned news client for posting.  The
  news, nntp, and snews URLs now all return links for posting new
  messages or followups (replies) to the server from which a newsgroup
  listing or news article was retrieved, unless the server indicates
  that it does not accept posts from the site at which Lynx is running.
  See the updated INSTALLATION, userdefs.h, and lynx.cfg files, the
  "USENET News posting" section of the Users Guide, and "Supported URLs"
  page of the online 'h'elp for more information.
* Fixed typo for e-dieresis in the KOI8-R charset. - AJF
* Replaced an inappropriate _user_message() call in HTConfirmCookie()
  of HTAlert.c with a _statusline() call.  The original code could
  cause crashes with some cookie values. - FM
* Added support for both hex escaped and unescaped white characters
  in lynxexec and lynxprog URLs.  Normally, Lynx strips out any white
  characters that are not hex escaped in attribute values that are
  to be resolved as URLs, on the assumption that they were derived
  from wrapping in the markup.  Any serial white characters in
  lynxexec and lynxprog URLs are condensed to one space (' '), and
  any lead or trailing white characters are trimmed.  Note that we
  still require hex escaping of spaces in mailto URLs, e.g,
  HREF="". - FM
* Removed the 'e' switch from tar commands in LYLocal.c for greater
  portability across all supported Unix flavors. - FM
* Expanded the information in the PROBLEMS file on how to deal with
  DECC and MultiNet header incompatibilites for different combinations
  of the VMS compiler and socket library versions. - FM
* Added TRACE message of the edit command created for the system()
  call in LYEdit.c. - LWV
* Fixed a typo in the userdefs.h comments. - NHE 
* Mod in LYMainLoop.c to bypass mailing "not found" messages when
  MAIL_SYSTEM_ERROR_LOGGING was set TRUE (which it should NOT be,
  indescriminately) if the document's owner is the lynx-dev list. - FM
* Added crash protection checks for the actual presence of anchors
  in all HText structure anchor scans in GridText.c, based on a crash
  report and suggested fix for one of them from Jonathan Sergent
  ( - FM
* Eliminated the typecast for ttytype (apparently varies across flavors,
  and each flavor should know it's own typing; we'll see) in LYCurses.c,
  and moved VMS system definitions with non-ANSI conformant tokens to a
  separate header for VMS (LYVMSdef.h). - BL
* Made the description of HISTORY in the 'k'eymap page more clear that
  it invokes a list of the "suspended" documents currently held in the
  history stack. - DC
* Typo fixes in the help files and lynx.cfg. - LWV
* Today's distribution is a pre-release of v2.7.  The projected official
  release date is 02-15-97.  All header, help and documentation files,
  and the top directory name, have been updated for v2.7. - FM
* Made xli, which is freeware, the default XLOADIMAGE_COMMAND for Unix
  in userdefs.h (still xv on VMS, since its port is freeware), and
  expanded the "self-documentation" to indicate where to get this
  freeware.  Added XLOADIMAGE_COMMAND as a configuration symbol in
  lynx.cfg, so that the compilation default can be overridden on
  systems which have and prefer xv (all users can override the default
  mappings for image helper apps via their mailcap files) - FM
* Added a -base command line switch which can be used with -source or
  -mime_header to prepend the request URL as a comment, and a BASE tag
  (which may or may not be the same as the request URL, depending on
  HTTP/1.1 headers) for text/html documents, equivalent to the prepend
  kludge for 'd'ownloads (see 09-20-96 mods). - FM
* Added a check for an "ORGANIZATION" environment variable for inclusion
  as a news post header on Unix (all system logicals intended for news
  post headers automatically are included on VMS), and a sleep() before
  restoring curses mode after the post, to allow reading of any error
  messages from the news software. - FM
* Fixed bug which yielded a "[LINK]" instead of "[INLINE]" pseduo-ALT
  for ALT-less IMG tags used as the content for NAME-ed Anchors without
  an HREF. - FM
* Portability tweaks for the mini inews utility. - FM
* Fixed an old and irrelevant typo in HTWriter.c. - JS
* Added more REL tokens that are acceptible for banner links. - FM
* Ifdef'ed the standard foo_PATH definitions for FreeBSD at the bottom of
  userdefs.h, based on a patch from AAC, and assuming they also apply for
  NetBSD, BSDI, and Linux (we'll see 8-). - FM
* Added make freebsd-slang target. - AAC
* Mods of LYSetCookie() to ensure setting of 443 as the default port for
  https URLs, and force the secure flag on for https URLs whether or not
  the Set-Cookie header had a secure parameter (too many Version 0
  cookies don't, when they should). - FM
* Removed -ltermcap from make for all ncurses targets. - FM
* Tweaks of make for FreeBSD. - AAC
* Use SLtt_get_screen_size() instead of the apparently less portable
  code for slang in size_change() of LYUtils.c. - JED
* Made ALT a synonym for VALUE in INPUTs with TYPE="image" to cooperate
  with well-intentioned (though misinformed) providers who use ALT instead
  of VALUE for the benefit of text clients or GUIs with image handling
  turned off. - FM
* Modified the code for submission of form content with TYPE="image" NAME-ed
  INPUTs that have a VALUE (or ALT) to "fake" a 0,0 coordinate pair, as when
  a VALUE (or ALT) is absent, instead of sending a single name=value pair.
  Requests that using a name=value pair in such cases to indicate that the
  submission was from a text client or GUI with image handling turned off
  be included in the HTML specifications keep falling on deaf ears, so we
  may as well "fake" something closer to what the CGI scripts are expecting,
  and hope that the script interprets 0,0 as an indicator that the user did
  not see the image and make a conscious choice within it.
* Added code to offer a link for the SRC of the image in INPUTs with
  TYPE="image", distinct from the submit button, when clickable images
  is on. - FM
* Updated the "HTML Forms" section of the Users Guide. - FM
* Fixed a typo in the parsing of Cache-Control MIME headers and META
  directives. - FM
* Updated lynx_help_main.html, about_lynx.html and about_lynx-dev.html. - FM
* Mods to indicate a toolbar by a '#' preceding its first link when the
  toolbar is being displayed, and to indicate the availability of a toolbar
  by a '#' in the top, left-hand corner of the screen when the toolbar is
  not being displayed.  Added explanation of this in the online 'h'elp. - FM
* Indicate the 'allow' setting (always, never, or via prompt) for each
  domain in the Cookie Jar Page. - AK
* Don't delete cookie-less domains silently during garbage collections if
  they have their 'allow' set to always or never. - AK & FM
* Added ability to change the 'allow' settings for domains via the Cookie
  Jar Page. - FM
* Added basic protection against "denial of service attacks" by limiting
  a domain to 50 cookies, the total number of stored cookies to 500, and
  the maximum processed size of a cookie to 4096 bytes. - FM
* SGML escape any ampersands or angle brackets in the cookie names, values,
  parameters, and comments when creating the HTML stream for the Cookie
  Jar Page, and only include entries for comments if they were present in
  the servers' Set-Cookie headers. - FM 
* Updated the online 'h'elp for cookies. - FM
* Removed -DNO_KEYPAD from all ncurses targets in the Makefile. - FM
* Added a "Lynx State Management (Me want cookie!)" section to the Lynx
  Users Guide, and a cross-linked cookie_help.html file for the Cookie
  Jar Page. - FM
* Added prompting for whether to show the body of a 401 status reply or
  simply return to the current document when an activated link requires
  authentication via a username and password, and the user has none for
  that realm, or forgot them. - FM
* Added handling of expires attribute values in Version 0 (a.k.a. Netscape)
  Set-Cookie MIME headers or META tags, and added "Maximum Gobble Date"
  entries in the Cookie Jar Page which indicate the maximum intended age
  for each cookie based on the Version 0 expires or Version 1 max-age
  attribute values. - FM 
* Added an LYmktime() function in LYUtils.c which accepts strings in the
  format "Day, dd-Mon-yy hh:mm:ss GMT" or "Day, dd Mon yyyy hh:mm:ss GMT",
  parses and converts them to time_t format (seconds since 00:00:00 Jan 1
  1970), and returns the time_t value, or zero if the date is in the
  past.  It is used for handling Expires headers or attribute values. - FM
* Added parsing of Cache-Control and Expires MIME headers and META tags
  sufficient to determine whether the no_cache element should be set in
  the document's structures. - FM
* Eliminated the "; $Path=foo; $Domain=blah" attr=value pairs when sending
  Version 0 (a.k.a. Netscape) cookies in request headers, because too may
  CGI scripts in the real world have brain-dead parsers and fail when they
  are included. - FM
* Added handling of Set-Cookie directives in META tags. - AK
* Added confirmation prompts for deletions from the Cookie Jar, expanded
  the garbage collecting for expired cookies, debugged and implemented the
  code for security checks based on lead and embedded dots in domain values
  and host prefixes as described in Section 4.3.2 of the -05 State Management
  draft, added requirement for https URLs (direct, or via proxy) to include
  cookies which have the secure flag set in request headers, and extensively
  annotated the cookie support code for ease of further development. - FM
* Added ability to set SHOW_CURSOR in lynx.cfg, to override the compilation
  setting in userdefs.h, and made the -show_cursor command line switch a
  toggle for the compilation or configuration default. - FM
* Bug fixes and memory leak plugs for the cookie support.  Added ability
  to delete individual cookies or entire domains via the Cookie Jar Page
  (Ctrl-K).  The domains and cookies are displayed as DL/DT/DD blocks,
  with links for each domain and cookies name.  The deletions are done
  by activating those links, which can be numbered, so it should be OK
  for blind users. - FM
* Tweaks of the news/nntp/snews gateway. - FM
* Tweaks of paragraphing if ADDRESS, BANNER, BLOCKQUOTE, BQ, FN, MARQUEE
  or NOTE blocks are nested (note that nesting does not yield progressive
  indentations of these blocks). - FM
* Added "first pass" cookie support based on patches from Andrew Kuchling
  (  Still needs work (see comments at top of LYCookie.c).
  A SET_COOKIE symbol in userdefs.h and lynx.cfg determines whether cookie
  support will be on or off by default, and the default can be toggled
  via a -cookies command line switch.  When on, Set-Cookie headers invoke
  confirmations with possible replies of 'Y'es or 'N'o for that cookie,
  'A'lways, to accept all cookies from that domain, or ne'V'er to never
  accept cookies from that domain.  The Cookie Jar can be examined via
  the COOKIE_JAR keystroke command, mapped by default to Ctrl-K.  The
  Cookie Jar, and any 'A'lways or ne'V'er settings, do not presently
  outlast the Lynx session. - FM
* Added use of DEFAULT_INDEX_FILE or the URL from an -index=URL command
  line switch as the the HREF for a banner LINK with REL="Index" and no
  HREF of its own (see the 01-01-97 mods and the HTML Banners section of
  the Lynx Users Guide). - FM
* Tweaks of the news gateway. - FM
* Added "Negotiate: trans" header for GET and HEAD requests.  Shouldn't
  be necessary to get 300 instead of 406 replies when nothing matches
  the Accept and Accept-foo request headers, but some HTTP/1.1 servers
  apparently want it when the UA declares itself as HTTP/1.0, as Lynx
  still does. - FM
* More updates of the online 'h'elp files. - FM
* Simplified the code for checking whether a startfile is a bookmark file
  entered as a URL instead of invoked via the -book switch.  The previous
  code was tripping up some versions of the osf and linux compilers. - FM
* Replaced the realloc() in split_line() of GridText.c with a calloc(),
  memcpy(), FREE() sequence for all systems, not just AIX and ultrix,
  based on analysis of memory wastage by Hans Reiser
  ( - FM
* Tweaks of the body= handling in mailto URLs. - FM
* Tweaks of the ftp gateway. - FM
* Restored inheritence when resolving versus a base with the same scheme,
  because the RFC1808 and Fielding Draft behavior of not doing so yields
  too many failures in the real world (sigh...). - FM
* Ugh!  The distribution zip still had the Nov 4, 1996 HTTCP.c instead of
  the one I modified on Christmas.  No wonder people were still reporting
  the wrong messaging with -DNSL_FORK.  The right HTTCP.c is in there
  now. - FM
* Mods to resolve the HREFs for LINKs with REV="made" or REV="owner"
  versus the base (a many, many year old bug finally caught 8-). - FM 
* Added HTAlert messages about BASE HREF vaules, Location header values,
  and Refresh URL values that were not received as absolute URLs.  We
  still resolve them versus the RequestURI, since that's invariably
  what is intended, and thus the optimum "error recovery" strategy. - FM
* Added handling of cc= and body= fields in ?searchpart strings of mailto
  URLs.  They are described in draft-hoffman-mailto-url-00.txt recently
  posted to the URI-WG list.  This draft ignores the objections which have
  been filed about changing the semantics of mailto and breaking clients
  which are fully conformant with the mailto specs in RFC1738, instead of
  using a new scheme name (e.g., smtp:) for URLs with mail headers, and it
  extends the ill-advised use of '&' as puctuation in URLs instead of
  honoring the previous IETF effort to seek it's replacement by ';' as the
  URL name=value separator and, in effect, treating them as parameters
  without need to worry about confusions with entities when the URLs are
  attribute values in text/html.  However, the chairman of the URI-WG is
  a co-author of this draft, so, sigh...  As far as this Lynx code is
  concerned, the mods are more "error recovery" to cope with the sad things
  which have afflicted the Web during the past 2-3 years, and use of a
  ?searchpart in mailto URLs is still DISadvised.  Lynx uses only subject=,
  cc=, and body= fields from a ?searchpart, using it's own "safe" rules for
  other mail headers, and ignoring ones other than those three in the
  ?searchpart as "unsafe".  The cc= values in a ?searchpart are added to
  the primary address as a comma-separated list for the mail agent, and
  Lynx's own Cc: is that entered, optionally, by the user.  Any body= field
  is passed to the external editor, if one has been defined, for review and
  possible modification.  Otherwise, it is scrolled for review.  The mailing
  can be cancelled at any time (via Ctrl-G), and via a statusline prompt
  after everything has been reviewed, if the user judges the body and/or
  addresses to be unsafe or inappropriate. - FM
* Moved information and prompt strings in LYMail.c to installer-modifiable
  symbols in LYMessages_en.h. - FM
* Eliminated forced exits for keyboard input buffer overruns on VMS.
  There's no perfect way to deal with it, but Lynx should recover
  gracefully most of the time now, and do nothing bad if ungraceful. - FM
* Added handling of Content-Base and Content-Location MIME headers when
  'd'ownloading, 'p'rinting, or mailing HTML source.  For this, as
  for rendered HTML streams (see 01-06-97 mods) the base is determined
  according to HTTP/1.1 rules:  If a Content-Base header was received,
  that's the base.  Otherwise, if a Content-Location header was received
  and it's an absolute URL, that's the base.  Otherwise, the URL used
  to retrieve the document is the base.  When actually rendering, any
  BASE tag in the document overrides the base derived from headers.
  When 'd'ownloading, or outputting HTML source for a 'p'rint option,
  an X-URL comment with the URL used to retrieve the document and a
  BASE tag with the header or URL-derived base are inserted at the top
  of the document.  These should be moved down into the actual HEAD
  section to make the HTML fully legal, but will work as is if the
  output is used in conjunction with automatic invocation of Lynx or
  Netscape as a text/html helper application.  When mailing with an
  SMTP-conformant mailer, the actual URL used to retrieve the document
  is indicated via an X-URL header, and for HTML source, a Content-Base
  and a Content-Location header are included, set to what was actually
  received by Lynx via MIME headers, or to the retrieval URL. - FM
* More updates of the online 'h'elp.  The Visited Links Page ('V'),
  multi-bookmark file support, REL/REV and META enhancements, and new
  switches are now all fully documented in the 'h'elp. - FM
* Added handling of Content-Base and Content-Location MIME headers for
  rendered HTML streams (still using the document's URL in the 'd'ownload
  and 'p'rint (and mailing) BASE prepending kludge). - FM
* Added code to avoid getting tripped up by double-quoted header values
  in HTMIME.c.  We still need more sophisticated parsing of possibly
  compound HTTP/1.1 headers, but we don't yet use any of those. - FM
* Tweak of the efficiency mods for command line parsing in LYMain.c. - FM
* Simplified some code in LYMainLoop.c that was tripping up the AIX32
  compiler. - FM
* More updates of the online 'h'elp. - FM
* Added DIRED_MENU support for .tgz files as for .tar.gz files. - FM
* Made the command line parsing in LYMain.c more efficient. - FM
* Added -nopause switch for setting InfoSecs, MessageSecs, and AlertSecs
  to zero.  Can be used to eliminate forced statusline pauses during
  traversals. - FM
* Mods to allow absolute zero quality values for Accept headers, so that
  in mailcap files users can do things like map image/* to a helper app
  but exclude particular image subtypes which the app can't handle by
  assigning q=0 for that subtype.  HTTP/1.1 still specifies 4 significant
  figures for quality values, so if the value is non-zero, Lynx still
  forces a minimum of q=0.001. - FM
* Typo fixes in lynx.cfg. - LWV
* Updates of the online 'h'elp files. - FM
* Made the parsing of lynx.cfg in LYReadCFG.c more efficient. - FM
01-01-97 -- Happy New Year!
* More partial/relative HREF resolving enhancements.  Everything is now
  handled as recommended in Larry Masinter's -03 revision of Roy Fielding's
  -02 URL ID, except file and ftp URLs (which Lynx handles as described
  in the online 'h'elp ).  Note, though, that Lynx handles known schemes
  on a scheme-by-scheme basis, and for schemes that involve substitutions
  of "/" for a NULL/zero-length path, Lynx inserts the "/" at the resolving
  stage, so those slashes are present where the Fielding test suite doesn't
  indicate them, but the actual requests sent to servers (or bad URL message
  if it's a scheme that requires a host field and doesn't have a default)
  will be the same.  Note, also, that Lynx sends only the  path<?searchpart>
  ("absolute path") in it's direct http requests and indicates the host of
  the URL in the Host:  header, i.e., sends the absolute URL only to proxies.
  Note, as well, that Lynx treats a zero-length attribute value for an HREF,
  SRC, etc. as a reference to the currently displayed document, but still
  uses the base (which might not be the current document's address) as the
  default for FORMs without an ACTION specified, or ISINDEX tags without
  an HREF or ACTION specified. - FM
* Expanded REL/REV handling.  All of the REL values in the (expired) Maloney
  and Quin draft-ietf-relrev-00.txt ID which make sense for banner links in
  Lynx have been added.  For REL="Help" without an HREF in the LINK, Lynx
  uses its helpfile URL.  For REL="Home" without an HREF in the LINK, it
  uses the configuration startfile or WWW_HOME URL (i.e., not a startfile
  specified on the command line), or the command line homepage, if it was
  specified. - FM
* Added handling of fragments in conjunction with URL expansion guessing for
  startfile, homepage and 'g'oto strings.  Note that any '#' that is not a
  fragment delimiter should be hex escaped (%23), and ideally all reserved
  or unsafe characters will be hex escaped in the user-entered string, though
  you can get away with not using the hex codes for most others, depending on
  their positions in the string.  Also note that on VMS if you include the
  version for local files it must precede the fragment (e.g., foo.html;3#frag)
  as for parameters. - FM
* Mods of HREF resolving to be more consistent with the latest IETF draft
  Most importantly, lone fragments (HREF="#fragment") are resolved versus
  the current document's URL, and no longer versus the BASE, if present.
  There are a few things in the draft which are at odds with what virtually
  all currently deployed browsers do, and so I stuck with the "deployed"
  behavior.  Try the tests in  to
  see where Lynx still differs from the draft. - FM
* Tweaks of 'z'ap handling. - FM
* Tweaks of DIRED_SUPPORT and make for osf. - FM
* Added code to check if the startfile has BOOKMARK_TITLE as its title,
  and if so, and it's in the bookmark file list, add the bookmark element
  and reload to have it treated as if it were invoked with -book. - FM
* Added code for the DIRED_MENU command ('f' and 'F' by default) to invoke
  CSwing on VMS if CSWING_PATH is defined, as explained in userdefs.h and
  lynx.cfg . - FM
* More improvements in the fatal error and memory exhaustion handling, and
  plugging of memory leaks. - FM
* Changed "newline" to "Newline" in LYMainLoop.c to deal with another
  reported, ill-advised, macro in the AIX 4.2 curses.h. - FM
* More tweaks of lynx.cfg. - FM
* Improvements in the messaging and cleanups for aborts on fatal errors
  and exits on memory exhaustion. - FM
* Worked v2.1 of lpansi.c into the distribution. - FM
* Modified lynx.cfg to reflect the compilation defaults consistently, and
  changed the compilation default for SUBSTITUTE_UNDERSCORES to FALSE. - FM
* Changed the "lines" element to "Lines" in the HText structure and the
  "tab" structure name to "Tab" to cope with some unwise employee reportedly
  using all lower case "lines" and "tab" strings as macros in the AIX 4.2
  curses.h. - FM
* Restored use of the -l format in the parent links of local Unix directory
  listings if LONG_LIST is defined, without the v2.6 bug of creating strange,
  trailing relative or escaped strings.  As far as I can tell from exercizing
  them, the DIRED_SUPPORT and LONG_LIST handling are now fully debugged
  (famous last words...  8-). - FM
* Don't reiterate parent links in local directory listings.  They are
  offered only in the top, up to parent link if NO_PARENT_DIR_REFERENCE
  is not defined. - FM
* Moved more HTML.c functions to LYCharUtils.c. - FM
* Tweak of META handling, which was causing crashes (due to freeing an
  anchor structure prematurely in the 12-13-96 mods for moving HTML.c
  code to LYCharUtils.c). - FM
* Block Unix relative path strings in lynxexec and lynxprog URLs. - DT
* Added a COLLAPSE_BR_TAGS compilation and configuration symbol for
  determinining whether Lynx collapses serial BR tags.  Note that the
  valid way to create extra blank lines in HTML is with PRE blocks that
  contain only newlines. - FM
* Fixed a longstanding glitch in the alignment handling which could
  cause a Paragraph's ALIGN value to cross embebbed blocks, rather than
  restoring the appropriate alignment for the outer division or block
  on close of the embedded block. - FM 
* Modified HR handling so that it inserts the same before and after
  spacing regardless of whether P end and/or start tags are present
  before and/or after the HR. - FM
* Don't insert the bookmark file description and filepath if multiple
  bookmark file support has been turned off, and this is the default
  bookmark file (but they will still be inserted if it's not the default,
  e.g., if it's another bookmark file viewed before the support was
  turned off, and retrieved as a previous document). - FM
* Added parsing of Content-Disposition in META tags and setting the
  suggested file name if  file; filename=name.suffix  is in the value
  of the Content attribute and we don't already have that via a server
  header. - FM
* Incorporated almost all globals related to stream parsing and page
  display in HTML.c and GridText.c into the HTML object structure and
  HText structure to make the parsing and display functions more nearly
  re-entrant, and moved several functions from HTML.c to LYCharUtils.c
  to reduce the size of HTML.c. - FM
* Added -cckr to the libwww Makefile compiler options for SGI. - Carl
  Buxbaum (
* Fixed typo in LYMainLoop.c that affected the 'd'ownload command when
  DIRED_SUPPORT is enabled. - FM
* Implemented Safe header handling and prompting about resubmissions of
  forms with method POST along the lines described in the 24-Nov-96 IETF
  Lynx prompts for confirmation whenever it detects that a resubmission
  would occur, unless the previous reply included "Safe: yes".  Prompts
  always will occur if the -resubmit_post toggle is on (since resubmission
  always would occur; not advised).  If not toggled on, resubmissions
  would occur when no_cache is set or the previous reply has been dumped
  from the cache.  When using the PREV_DOC command or History Page, if
  confirmation is not obtained, Lynx will skip to the yet earlier document,
  or cancel, as appropriate. - FM
* Added parsing of the Safe header in HTMIME.c, and added a safe element
  to the anchor and document structures.  Will be FALSE unless a Safe
  header is received that specifies "YES" or "TRUE" (case-insensitive,
  only "YES" is in the specs), and applies only to replies from form
  submissions with the POST method. - FM
* Cleanup of code in HTAccess.c.  May correct problem of crashes for
  ISINDEX searches on some systems, though I couldn't reproduce that
  problem here. - FM
* Added an HTSetPresentation() for image/x-xbitmap in HTInit.c when DISPLAY
  is set. - FM
* Added an LYOutOfMemory boolean that is set by the outofmem() macro, and
  code in the Unix FatalProblem() and VMS exit handler for reporting the
  memory exhaustion instead of the misleading "bug" message when they are
  invoked due to memory exhaustion.  May not be reported reliably for
  linux, because for some reason I don't understand, the SIGBUS trapping
  is ifdef'ed out for linux in LYMain.c. - FM
* Fixed typo in the new LYAddVisitedLink() in LYHistory.c of yesterday's
  mods. - KW
* Added a VLINKS command, mapped by default to upper case 'V', and code
  for creating a list of all links 'V'isited during the current Lynx session
  in order of recency (most recent highest in the list).  Lower case 'v' is
  still mapped to VIEW_BOOKMARKS.  The VLINKS listing is complementary to
  the History Page listing, and formatted similarly.  It excludes POST
  replies, and bookmark, menu and list files (use the History Page or
  direct keystroke commands for those).  It includes any links that were
  downloaded, or passed to a helper app (except mailto and newsreply or
  newsfollowup links, since those require activation in the original
  document for proper inclusion of it in the email message or news
  post).  You can print the Visited Links Page, or 'd'ownload it via
  the History Page. - FM
* Added reporting of the Charset parameter, if present in a server reply
  header, META tag, or by virtue of a suffix map, to the showinfo ('=')
  display. - FM
* Added 'p'rint menu support for the History Page. - FM
* Added a content_length element to the anchor structure and use that,
  if a Content-Length header has been received, to indicate the total
  bytes in the statusline when receiving the stream. - FM
* Include HTTP_ACCEPT_LANGUAGE in the lynxcgi environment. - David Trueman
* Many more cleanups and commenting of the code for the benefit of new
  developers. - FM
* Tweaks of URL parsing and path simplifications.  Added simplification
  of the file://localhost paths from startup and 'g'oto guesses. - FM
* More anti-crash protections for bad HTML in SELECT blocks. - FM
* Usability enhancement for DIRED's 'F' menu: list number and names of
  (some of) the tagged items, and provide a way to untag all items. - KW
* Force screen refresh after a DIRED system command has failed. - KW
* Modified HTFile.c to handle relative and "Up to parent" links more
  effectively. - KW
* Added KEYGEN to the DTD (but no code to do anything with it yet). - FM
* Fixed typo in the for-Unix section of LYAddPathToHome() that was added
  yesterday in LYUtils.c. - James Troup (
* Numerous cleanups and commenting of the LYfoo.c and LYfoo.h modules,
  for the benefit of new Lynx developers. - FM
* More security-related enhancements and polishing up of the multiple
  bookmark file support. - FM
* Increased the sizes of MAXHIST and MAXLINKS, added statusline messages
  should they ever be exceeded (not likely now 8-), and code for freeing
  all excess pointers on each page draw instead of letting them grow and
  freeing them on exit (should help for memory-limited systems 8-). - FM
* Tweaks of DIRED_SUPPORT. - KW
* Show nntp server status messages in group listings when not 221 (normal
  reply to HEAD request), so the user will know that the articles are
  not available from the server, rather than a bug in Lynx. - FM
* Tweaks of BASE resolving. - FM
* Added "trick" to send hostname guesses to stdout when the startfile or
  homepage are not URLs, as we send to the statusline for 'g'oto guesses
  (but don't use stdout if we are not interactive and the desired output
  is going to stdout).  If the DNS lookup stalls, one thus can Control-C
  out, instead of wondering why Lynx is taking so long to start up. - FM
* Cleaned up the read_rc() and save_rc() functions in LYrcFile.c. - FM
* Eliminated all printw() calls to avoid problems with non-ASCII and/or
  multibyte/CJK characters. - FM
* Numerous additional bug fixes and enhancements of the multiple bookmark
  file support. - FM
* Got rid of the ADVANCED_MULTI_BOOKMARKS symbol now that the choice can
  be made in the 'o'ptions menu and saved in the .lynxrc file. - FM
* Added the ability to set the advanced mode for multiple bookmarks from
  the options menu and save the defaults in the .lynxrc file - HL
* Various typo corrections including one which kept LYMainLoop.c from
  compiling under Unix when DIRED_SUPPORT was defined. - HL
* Numerous additional refinements and enhancements of the multiple bookmark
  support.  Added support for REFRESH and PREV_DOC in the options and bookmark
  menus, and NEXT_PAGE, PREV_PAGE, and ACTIVATE in the bookmark menus or
  prompts.  Expanded the anchor and document structures to keep track of
  different bookmark files in conjunction with VIEW_BOOKMARK, ADD_BOOKMARK,
  and DEL_BOOKMARK commands, to restore the proper bookmark files on reloads
  (overt, or because the cache was dumped for subsequent documents accessed
  via bookmark links), and in conjunction with security-related restrictions.
  Multiple bookmark support can be regulated via MULTI_BOOKMARK_SUPPORT,
  (or as SITE_DEFS in the Makefile) and lynx.cfg.  The multiple bookmark
  support can be blocked via a -restrictions=multibook command line switch,
  which is also set for -anonymous and -validate.  Prompting or display of
  the bookmark file selection menu occurs only if bookmark files in addition
  to the startup default have been defined (via the B)ookmark command in the
  'o'ptions menu, if mu(L)ti bookmarks has been turned on; the setting and
  definitions can be saved in the .lynxrc file).  Plugged memory leaks in
  the previous implementation of multiple bookmark support.  Added code for
  inserting the current description and filepath for each bookmark file
  dynamically during rendering. - FM
* Another tweak of attribute order in HTMLDTD.c. - KW
* Tweaked multiple bookmark support to fix an error which was causing a
  crash on some systems and incorrect behavior on others - HL
* Tweaked editing of multiple bookmark filenames to correct shifting of 
  screen between multiple pages - HL
* Added support for setting the rendering of SELECT OPTIONs as popup menus
  versus radio button lists via the 'o'ptions menu, and saving the default
  in the RC file.  Changed NO_SELECT_POPUPS to USE_SELECT_POPUPS in lynx.cfg
  and userdefs.h.  The -popup switch still overrides everything. - FM
* Added multiple bookmark support along the lines of the patch from Filip M.
  Gieszczykiewicz (, plus numerous enhancements of the
  'o'ptions menu and bookmark handling. - FM
* Tweaks of attribute orders in HTMLDTD.h and HTMLDTD.c. - KW
* Updated the "Lynx Enhanced Pages" links to the new "Lynx links"
  ( throughout the help, docs,
  and code. - FM 
* Modified the ENCTYPE="multipart/form-data" handling to indicate the
  Content-Type with charset parameter, when known, within each part
  rather than in the main Content-Type header. - FM
* Corrected typo in HTNews.c. - FM
* Added support for setting the suggested filename in 'd'ownload and
  'p'rint options based on the Content-Disposition header if it included
  the string  file; filename=name.suffix  in its value.  Can be used by
  CGI scripts to set the suggested filename for saves to disk, downloads
  or mailings of the script's reply body, so it won't be the last symbolic
  element in the path field of the form's ACTION (which is normally the
  the script, itself, or a PATH_INFO element, and thus misleading). - FM 
* Tweaks of change_sug_filename() in LYUtils.c for better handling of
  gzipped files on VMS. - FM
* Added reporting of the Server, Date and Last-Modified headers, if present
  in server replies, to the showinfo ('=') display. - FM
* Added the ability to store the NO_SELECT_POPUPS in the .lynxrc, but the
  .lynxrc must be edited manually until the options handling is converted
  to a form-like interface that accommodates more options.  For now, select
  'O'ptions and write out the options with '>' to create a block in .lynxrc
  with an explanation of the switch.  The switch is "select_popups" and
  can have the values of "on", "off", or nothing.  If nothing, the default
  set in userdefs.h or lynx.cfg will persist.  Otherwise, "on" will set use
  of popups and "off" will set use of radio buttons as the default.  The
  startup default always can be toggled via the -popup switch. - HL & FM
* Corrected a couple of typos in the help files. - HL
* Added support for WHEREIS ('/') and 'n'ext searches within SELECT popups.
  The buffering for 'n'ext is separate from that in the main loop (i.e.,
  for non-form field document searches), but all previously entered search
  strings are still combined into a circular buffer and can be accessed via
  the up-arrow or down-arrow keys at the prompt for a search string.  The
  searches within popup menus do not yield highlighting of the search string,
  but simply positioning of the cursor on successive options which contain
  the search string. - FM
* Added support for all of the navigation commands within SELECT popup
  windows, including HOME, END, UP_TWO, DOWN_TWO, UP_HALF and DOWN_HALF,
  in addition to the single line and paging navigation commands. - FM
* Added support for the REFRESH command within SELECT popup windows. - FM
* Tweak of hookless snews handling. - FM
* Added handling of forms with ENCTYPE="multipart/form-data".  Note that
  we still don't support INPUTs with TYPE="file" or TYPE="range", and
  thus still set the DISABLED attribute for all fields in the form if
  either of those two TYPEs are present in it. - FM
* Tweak of -mime_header handling. - FM
* Typo fixes of comments in HTML.c. - Albert S Woodhull
* Added a NO_SELECT_POPUPS compilation (userdefs.h) and configuration
  (lynx.cfg) definition, normally set FALSE.  If set TRUE, single-choice
  SELECT blocks (i.e., ones without the MULTIPLE attribute) will be handled
  as a list of radio buttons instead of via a popup window.  Also added a
  -popup command line switch for toggling the compilation or configuration
  setting. - FM
* Tweak of LYFindEndOfComment() in LYCharUtils.c. - Brian Borowski
* Added links to the lynx-dev hypertext archive at FLORA in the online
  'h'elp. - FM
* Tweaks of my_spawn() in LYLocal.c. - KW
* Added support for use of the 'd'ownload command on TYPE="submit" and
  TYPE="image" submit buttons.  You still must use the History Page for
  TYPE="text" INPUT fields that also act as submit buttons by virtue of
  being the only non-hidden field, because the 'd'ownload command key
  could be a text entry into the field, and thus must be treated as
  such. - FM 
* Mods of HTFormat.c and HTTP.c for better handling of unexpected server
  disconnects. - FM
* Wind down the element stack on EOF if any unclosed tags were received. - FM
* Fixed typos in the HTMLDTD.c BODYTEXT definitions. - FM
* More tweaks of hook-less snews handling. - FM
* Changed the default STARTFILE to and the default
  HELPFILE to the v2.6 set at NYU in userdefs.h and lynx.cfg. - FM
* New function HTUnEscapeSome() in HTParse.c for unescaping selected
  characters in a string.. - KW
* Numerous changes to make DIRED_SUPPORT work as intended, to use the
  library's HTList functions and macros for managing the list of tagged
  file URLs, and to keep track of proper levels of URL escaping so that
  unusual filenames which contain #% etc. are handled properly.  Can now
  edit, move, etc. Abc%25252525def.html, #xy#~, etc. - KW
* Treat 301 or 302 redirection of a POST as 303 when the Lynx process is
  non-interactive, rather than rejecting the redirection, since 303 is
  still most likely what the CGI script actually intends (will still
  prompt if the process is interactive). - FM
* Added parsing and trace mode reporting of Content-Disposition headers
  in HTMIME.c (should be used, someday, to set the suggested file name
  for disk saves and downloads based on any filename=foo.blah field). - FM
* Further mods of HTNews.c to facilitate use of Lynx without SSL-hooks
  in conjunction with an SSL-capable daemon/proxy for snews URLs that
  returns NNTP streams for Lynx itself to convert into HTML, instead
  of already converted streams as from a standard proxy. - TZ & FM
* Changed information returned by "-version" in LYMain.c to point to and added a date to the copyright info. - HL
* Mods of HTNews.c to facilitate use of Lynx without SSL-hooks in
  conjunction with an SSL-capable daemon/proxy for snews URLs. - TZ
* Typo fixes in HTMIME.c. - KW
* Tweak of NSL_FORK mods. - FM
* Tweaks of host parsing when a password and/or username is present
  in override_proxy() of HTAccess.c. - FM
* Tweaks of the UNDERSCORES and STARS macro setup and useage to avoid
  possible crashes for FORMs with long values. - FM
* Worked in Tom Zerucha's ( code for fork-based name
  server lookups that can be 'z'apped.  May not yet be portable to
  all flavors of Unix.  Add -DNSL_FORK to your SITE_LYDEFS to try
  it. - FM
* Fixed typo in HTAlert.h. - FM
* Cleaned up HTTCP.c code, simplified some of its spaghetti
  ifdef'ing, and worked in mods to bypass connection confirmations
  when Lynx is SOCKSified and the socks_flag is set. - FM
* Added recognition and acceptance of text/x-sgml and text/sgml
  MIME types (all that I've encountered thus far work fine with
  Lynx, though it doesn't yet interpret marked sections). - FM
* Added socket function prototypes for MultiNet in tcp.h. - FM
* Mods to facilitate application of the SSL patches (after some
  corrections in the patches to keep HTLoadHTTP re-entrant, make
  CONNECT work as intended again, and eliminate memory leaks in
  the SSLeay adaption) - FM
* Adding info about -DNO_TTYTYPE in top level Makefile. - FM
* Use clrtoeol() in LYOptions.c to ensure that no terminals which use
  reverse video for standout() will have trailing reverse fields on
  edits of option vaules. - DK
* Offer user@host instead of WebMaster@host for the 'c'omment command
  if the path for the URL begins with a tilde and there is no
  LINK REV="made" present. - FM
* Tweaks of inews Makefile and clientlib.c. - Christopher R. Maden
* Check nhist before attempting a DIRED_SUPPORT directory listing in
  LYShowInfo.c. - KW
* Offer WebMaster@host for the 'c'omment command if no LINK REV="made"
  was present in a text/html document, and save a known owner URL when
  toggling to source ('\') so that the 'c'omment command can still be
  used with that owner's (mailto or homepage) URL, but the source can
  be included in the comment, as would be desireable (instead of a bad
  rendering) when sending a comment about bad HTML in the document. - FM
* Added code for traversing the pseudo-documents created for client-side
  image MAPs.  See the updated CRAWL.announce for more information. - FM
* Added definitions in LYCurses.h relating curses function calls to slang
  functions or emulations for compatibility with new versions of slang,
  based on patch from John E. Davis ( - FM
* Added unescaping of the full address fields in mailto URLs or ACTIONs,
  and improved the reliability of the parsing of the subject header from
  the ?searchpart Netscapism when present. - FM
* Give user option to use 303-like coversion of POST to GET in confirmation
  requests for redirection of POSTs, base on patches from Drazen Kacar
  ( - FM
* Tweaks of POST content submissions in HTTP.c, based on patch from
  KW. - FM
* Fixed EOF checks in HTAAFile.c, HTGroup.c and HTPasswd.c, and improved
  host address parsing in HTTCP.c, based on patches from Larry Schwimmer
  ( and Klaus Weide ( - FM
* Added targets for umaxv and umaxv-slang for Encore's UMAXV - Thanh Ma
* Send the rendering of decompressed files to stdout with -dump, don't
  spawn a viewer under any circumstances if -dump was used instead of
  -source for Content-Types that are not text/html, and remove the
  temporary decompressed files before exiting with -dump or -source. - FM
* Properly handle TYPE="radio" versus TYPE="checkbox" INPUTs with NULL
  or zero-length VALUEs. - FM
* Added a continuation line token for the netbsd-ncurses target - HL
* Fixed a typo in HTMIME.c in the trace output - HL
* Block predictable buffer overrun in GridText.c if a page has more
  than MAXLINKS links in it. - FM
* Add a Mime-Version header to the other headers in LYPrint.c so that the
  09-20-96 mods for mailing source do what they were intended to do. :) -
  Hamish MacEwan (
* Add a BASE tag to the tops of HTML source files, a la Netscape, when
  mailing or downloading, and don't worry, for now, if that creates
  technically invalid HTML (since Lynx copes with it as of the 09-15-96
  mods 8-). - FM
* Include Content-Type, Content-Location and Content-Base headers when
  mailing HTML source on Unix. - FM
* Use .txt versus .html suffixes when submitting rendered versus HTML source
  temporary files to VMS MAIL, so that transports such as PMDF will indicate
  the appropriate Content-Type. - FM
* Handle illegally positioned BASE tags. - FM
* Tweak of Q nesting level checks. - Pawel Wiecek
* Fixed typo in HTMIME.c for parsing of Pragma header. - Wilson Cheung
* Added parsing of Set-Cookie header in HTMIME.c (see IETF ID
  for info on how to implement it's use). - FM
* Fixed typo in LYMainLoop.c for display of error message when up arrow is
  pressed at the top of a document. - Hiram Lester, Jr. (
* Use standard ls -l parsing of LIST output for Windows_NT ftp servers in
  Lynx v2.6 as in v2.5. - FM

--- Rename of Lynx2-5FM and release as Lynx2-6  (02-Sep-1996) ---
    (see CHANGES2-6, CHANGES2-5, CHANGES2-4 and CHANGES2-3)