Changes since Lynx 2.8 release =============================================================================== 1999-06-11 (2.8.3dev.1) (This is KW's patch, with minor corrections) * Key handling changes: - Extended lynxkeycodes: a bit flag is used to indicate that the lower bits of the value already are a lynxactioncode and need not be looked up again. Reduces need for back and forth forward and reverse binding lookups; currently only used in some places. - Extended lynxkeycodes: several (currently three) bit flags are used to indicate key modifiers. - Added some macros for manipulating and mapping of these codes, see especially LYKeymap.h, LKC_TO_LAC() etc. Added some comments about the various kinds of codes. - Added several editaction codes and flags for setting key modifier on next key (i.e. for declaring keys as prefix keys, for the purposes of line editing); for flagging a key for different action if same key is repeated; for exiting input field line editing and passing a specific lynxactioncode on; and for undoing 8-bit C1 -> 7-bit replacement transformation for some chars. Added code to line-editor implementation to react to these new editactions. Note that the mapping of lynxkeycode to lynxactioncode outside of line editing, i.e. KEYMAP in lynx.cfg etc., ignores the modifiers. The main loop just drops modifier flags or ignores the modified key; modifier flags cannot be used in lynx.cfg KEYMAP 'keystroke' values. - An ESC not recognized as part of an escape sequence can set the appropriate modifier flag in LYgetch(), except for SLANG which normally uses a different LYgetch() implementation. Interpreting an ESC prefix as modifier is very useful for situations where a held-down Alt key (or some other key) is encoded this way: linux console, kermit with emacs key mappings, possibly xterm with '*eightBitInput: false'. OTOH it doesn't work for all characters or in all situations. - Extended syntax recognized in .lynx-keymaps file (which is only used if compiling with USE_KEYMAPS defined, which in turn depends on slang and ncurses version): (a) Meta-foo can be used to map an escape sequence to a key + modifier. (b) LAC:foo can be used to map an escape sequence directly to a lynxactioncode (actually, to an extended lynxkeycode that encapsulates a lynxactioncode). See examples added to samples/lynx-keymaps. - Extended syntax of KEYMAP option, additional field can override line-editor behavior. PASS documented in lynx.cfg. - Extended syntax that can be used for specifying key in KEYMAP, some of the forms allowed in .lynx-keymaps file are now additionally recognized, but only if compiling with USE_KEYMAPS defined. Left undocumented in lynx.cfg (maybe subject to change). - New "Bash-like" Line Editor binding. Adds several new emacs-like editing functions. Adds tables for keys with modifiers (actually the same table is currently used for all modifiers, to save some space). Most notably, ^X is a prefix key to set a modifier flag. Keys with second function when pressed twice are ^E^E and ^K^K. ESC is also recognized as setting a modifier flag, in case it gets through without been having been handled in LYgetch(). See new file keystrokes/bashlike_edit_help.html for more info. The Bash-like Line Editor Bindings are only compiled in if compiled with -DEXP_ALT_BINDINGS / configured with --enable-alt-bindings (but not subject to a new macro). Implementation code for the new emacs-like functions additionally ifdef'd with ENHANCED_LINEEDIT. - Avoid dependency on DNARROW key binding when form field line-editing is ended with Enter or Return key. - Take setting of real_c/old_c into consideration after return from form field line-editing. Previously there were some strange effects: statusline messages would sometimes not appear when they should, the KEYMAP command would sometimes not work when invoked with ^Vk while in a form field. - Make NOCACHE ('x') work for TEXT_SUBMIT_TYPE form fields (i.e. forms with a single text input field where Enter automatically submits). Of course 'x' has to be typed as ^Vx while line-editing the field (or NOCACHE mapped to a different key). Similarly allow DOWNLOAD, and HEAD to work for such fields. Try to ensure that all permission checks that apply to other form submissions are also done for TEXT_SUBMIT_TYPE fields, this wasn't the case before. - New key actions LPOS_PREV_LINK and LPOS_NEXT_LINK. They are like PREV_LINK and NEXT_LINK, with the difference that, when moving to a form input or textarea line, the last column position (relative to the field) is remembered. They are not mapped by default, but mentioned in lynx.cfg. - New key action DWIMHELP. It should give some context-sensitive help. Currentely the appropriate Line Editor Binding help page is shown if a form input field is selected, otherwise it defaults to the main HELP page. - New key action DWIMEDIT. Revert meaning of EDIT back to previous meaning: always edit document file, not textarea content. DWIMEDIT acts like EDITTEXTAREA if the current link is a form textarea or input field and AUTOEXTEDIT was defined, and like EDIT otherwise. Also added slightly different statusline message if form field external editiong cannot be done because editing is disabled: it shouldn't refer to "The 'e'dit command". - Summary of reasonable ways to invoke external texarea editing (assuming that it is desired to keep the action of 'e' to edit files at least outside of input fields): 1) KEYMAP 'e' to DWIMEDIT, invoke ^Ve. (if AUTOEXTEDIT is defined, which is the case by default.) 1a) KEYMAP to DWIMEDIT, invoke ^V. 1b) KEYMAP to EDITTEXTAREA, invoke ^V. 2) KEYMAP a key (function or control, not printable!) to EDITTEXTAREA or DWIMEDIT, using PASS in the KEYMAP line. 2a) Find some key whose LineEdit binding is already LYE_FORM_PASS, and KEYMAP it to EDITTEXTAREA or DWIMEDIT. 3) compile with EXP_ALT_BINDINGS defined (--enable-alt-bindings), select Bash-like Bindings, invoke ^E^E or ^X^E (or ESC ^E aka M-C-e), or invoke ^Xe (or ESC e aka M-e), or 3a) compile with EXP_ALT_BINDINGS defined (--enable-alt-bindings), and without selecting Bash-like Bindings (invoke ESC ^E aka M-C-e or ESC e aka M-e). Bindings in parentheses under 3/3a may not work with slang unless a tweaked .lynx-keymaps file is used. * Other changes related to textarea handling: - More appropriate message statusline message if GROWTEXTAREA or INSERTFILE cannot be done because a textarea is not selected: it shouldn't refer to "external editor". - Check whether an editor is defined before trying to use it for textarea editing. Generate message if spawning of external textarea editor failed. - Allow INSERTFILE only if file access is not restricted. - Enforce dotfiles restriction and "show dot files" setting for INSERTFILE. * Mouse handling changes, mostly only if mouse support comes via ncurses: - Re-enabled changing link by clicking in area *near* a link (but not on the link text), but limit max. distance to 2 character positions. - Make mouse popup menu disappear when it should, by applying the right magic touchline() in popup_choice(). - Lots of small tweaks to remove glitches in mouse handling, among them: No left scrolling of long input fields on entering with mouse. Try to ensure statusline is updated after mouse menu. Make menu actions work as expected. Avoid acting on mouse events, especially invoking mouse menu, in wrong context (e.g. while at a prompt), at least in many places. - Clicking on left or right border of mouse menu now only moves selection. - At right end of top/bottom line, where single click causes HISTORY action, double click now causes VLINKS action. - Allow to distinguish between submitting and just positioning into a TEXT_SUBMIT_TYPE input field. Single click positions, double click submits, 'activate' from menu also submits. - When initializing ncurses mouse, call mousemask() with only those bits set that we may actually be interested in. * Changes relevant for handling window size changes: - For ncurses, changed the way how mainloop() notifies the curses library about a window size change. The approach taken previously, and still used if we are not using ncurses, has more overhead, can unnecessarily switch out of the alternative screen buffer (and back) under xterm, and didn't really make ncurses update the WINDOW structures for the new size in time. - Other tweaks for size change: make sure curdoc.link is valid after refresh. - Detection of size changes in more situations: tolerate EOF from GetChar in the (non-SLANG) LYgetch_for() in more cases if errno is EINTR, if this happens check for a size change and generate trace output. Recognize KEY_RESIZE from ncurses, check for a size change and generate trace output when it occurs. - Added NONRESTARTING_SIGWINCH lynx.cfg option and -nonrestarting_sigwinch flag. If set, lynx *may* react more immediately to window size changes when running under xterm or similar. Whether this actually has an effect depends on the implementation of sigaction() and on the behavior of the curses (or similar) library when a read() (or other system call) is interrupted by signals. Depends on '#if HAVE_SIGACTION', which currently has to be defined by hand, for example by 'make SITE_DEFS="-DHAVE_SIGACTION"'. The command line flag is only available on systems with HAVE_SIGACTION and SIGWINCH. - Tweaks so that lynx in an xterm can survive when the window size is made (probably temporarily) very small, for example 1x1. Avoid display_page's work if it wouldn't be displayable anyway. Make display_title handle very small screen widths, at least to the degree that it doesn't crash. * Except for VMS or when DOSPATH is defined, set restore_sigpipe_for_children. Fixes Debian bug #33853, maybe not really a bug but let's be nice. * Changes in HTTCP.c: - Added a CTRACE_FLUSH before creation of NSL_FORK child process. - Block certain signals during creation of NSL_FORK child process, if sigprocmask() and friends are available. This should prevent a rare problem where sometimes the child process could be killed before it has a chance to modify its signal handlers, resulting in screen corruption, a seemingly hanging lynx, and/or other problems. It is assumed that sigprocmask() etc. are available if HAVE_SIGACTION is true. It currently has to be defined by hand, for example by 'make SITE_LYDEFS="-DHAVE_SIGACTION"'. - Generate diagnostic messages for some failures of forked lookup. Depends on HAVE_H_ERRNO. In particular, try to detect whether the child process failed because of memory problems, and also fake a 'z' in that case to short-circuit a URL guessing cycle. - For most systems, generate more trace output for connection attempts, close to the actual connect() and select() calls to prevent clobbering errno. See SOCKET_DEBUG_TRACE. This should help diagnose some obscure system-dependent problems that have occasionally been reported. * Added some missing stuff for color handling to forms Option Menu code. * Printing to screen sometimes didn't show anything for short texts, if screen output was buffered (and ncurses makes stdout buffered). Added another fflush(stdout) in send_file_to_screen(). * Some checks for specific URLs (helpfilepath, lynxlistfile, and lynxjumpfile) in LYGetFile.c were inappropriately case-insensitive for Unix. The comparison is now case-sensitive except for VMS. This may need tweaking for DOS and similar systems. * Added additional LYNoRefererForThis check in getfile(), the one in mainloop() could be missed for TEXT_SUBMIT_TYPE form fields. Also moved other check for whether to send Referer header earlier, and made it apply for URL types that might be proxied. * LYAddVisitedLink tried to regard documents with the same address but a different title string as different documents, but this was coded wrong. Removed ineffective comparison, but keep old title string if new title string is empty. * Correct long-standing logic error in MAIL_SYSTEM_ERROR_LOGGING handling. Apparently not many people are using it... * Fix for traversal code to put the right address into the TRAVERSE_REJECT_FILE if a request fails after popping a document from the history stack (this can only occur if a previous request for the same document had succeeded). Also don't try to send mail in such a case if MAIL_SYSTEM_ERROR_LOGGING is on. Also prevent possible history stack underflow if this occurs on return to the first document. * According to lynx.cfg, error logging mail may be sent to ALERTMAIL if no document owner is known, but this was not implemented; now it is. ALERTMAIL is used if it is defined non-empty in userdefs.h. Of course normally it should be left undefined. * Fix for traversal code to reject form fields a bit earlier. This prevents unnecessary lookups as well as adding of an empty line to the TRAVERSE_REJECT_FILE for each form field encountered. * Format -crawl output as was documented in CRAWL.announce: with this switch, link numbering is always off by default (userdefs.h and lynx.cfg defaults und saved user preference are ignored) unless -number_links is given, and -crawl -traversal format is now consistent with -crawl -dump with respect to link numbering. As a side effect, -crawl without either -traversal or -dump now also turns link numbering off unless -number_links is used (the meaning of -crawl without either of these was undocumented), so it then acts effectively as a (less powerful) negation of the -number_links switch. * For -crawl -dump, the list of links was appended twice. Fixed. * Check URL as well as title before deciding that a document should not be pushed on the history stack because it looks like a generated special page. * Made "Don't waste the cache" optimization in historytarget() subject to additional checks, to avoid uncaching of the wrong document in some cases. * LYSafeGets() would drop the last line from a file if it was not terminated. Changed to return the unterminated line like fgets(). * Clarifications on restrictions. "download" does not imply "disk_save" while "print" does, this doesn't seem to make much sense but has been the behavior for a long time. * Restrictions inside_news, outside_news now apply to reading as well as posting. The documentation (except for the corresponding comments in userdefs.h) said that they apply to posting, while in fact they were implemented for reading only. [Does nobody read this stuff???] Also, the implementation only checked the flag for news: URLs, but not for nntp: URLs, which doesn't make much sense given that the latter provide an alternative way for most (if not all) purposes of the first. So now these restrictions apply to news:, nntp:, newspost:, and newsreply: (but not to snews:, snewspost:, or snewsreply:). * Document -restrictions=externals. * Some of the restriction stuff not added to VMS lynx.hlp file, since I'm not quite sure whether the corresponding features work there at all. * Changed restriction parsing so that "all" and "default" don't get ignored if they appear as one of several items in the same list. * Implement listing of current restrictions to stdout with new -restrictions=? option. This should appear as the last command line option, otherwise the effect of options appearing later may not be shown. The '?' may require quoting. * Made -restrictions= (without any option flags) act like -restrictions (without equal sign either) as implied by documentation, i.e. list recognized restriction options. * LYRestricted has been greatly abused. Once upon a time it was a PRIVATE flag in LYMain.c (then called anon_restrictions_set), used only to get the precedence of various command line options right. Recently it has been misused as a check (and as the only one) whether "anonymous restrictions" are in effect. This undermines various assumptions: - that -anonymous is basically an aggregate set of restrictions which could be specified individually with -restrictions=. - that individually listed restrictions (-restrictions=...) act as expected, and can be used to restrict various aspects in a useful manner. - that -validate implies the strongest restrictions, except for what is explicitly exempted (i.e. 'g'oto for http/https URLs). Use specific restrictions instead: - new "compileopts_info" for LYNXCOMPILEOPTS: - for anonymous default see userdefs.h - new "lynxcfg_info" for LYNXCFG: - for anonymous default see userdefs.h - new "lynxcfg_xinfo" for extended LYNXCFG: - for anonymous default see userdefs.h - new invisible "goto_configinfo" for LYNXCOMPILEOPTS: & LYNXCFG: for anonymous default, see userdefs.h - additionally check existing "option_save" for LYNXCFG://reload/ - always restricted by anonymous default ("invisible" means that this restriction cannot be explicitly listed in a -restrictions=... list, but has a value derived from userdefs.h that is used with -anonymous and -restrictions=default.) * Forms options menu can now be used with -validate. * Allow following local help file links, even if "file_url" restriction is set, from LYNXKEYMAP, LYNXCOOKIES. (Possibly more need to be added.) * Apparently realm checking (with -realm option) is bypassed for URLs from (some) form submissions (it seems to be intentional, but why?). Made sure this at least doesn't weaken -validate restrictions. * Apply -localhost check in getfile for news URLs that include a hostname, i.e., that begin with with "news://". * Add '&' to nonalphanumeric characters forbidden by exec_ok() for lynxexec and lynxprog URLs, but keep allowing it for lynxcgi. There's not much point in excluding ';' and so on if '&' is acceptable! * Tweaked LYNXMESSAGES: handling slightly: don't bypass normal getfile handling. * Reset LYforce_no_cache flag in mainloop() after failed access, before popping the previous (or, actually, probably currently still displayed) document. * Tweak for 'no data' handling: it isn't always an error, but was sometimes treated as such. It mostly doesn't make a difference, except for the message printed when the startfile cannot be accessed and for traversal and mail error logging. This needs to be revised to apply for all protocols. * Added new functionality for rules: Redirect, UseProxy, various others. See cernrules.txt in samples directory for details. * Prevent crashes in HTNews.c with HEAD. * Allow HEAD requests for proxied URLs (checking whether any applicable proxy begins with http: or lynxcgi:), as far as this can be determined based on regular environment settings (i.e. unaware of proxying by rules). * Modified add_item_to_list() so that if the restriction flag is omitted from a DOWNLOADER/UPLOADER/EXTERNAL line in lynx.cfg, it is assumed FALSE. This modifies the change of 1998-10-17 to be on the safer side, it is more consistent with how PRINTER lines or lines with the colon separator present but the flag value absent are handled, and it only makes a difference when a -restriction command line option or its equivalent is in effect anyway. * Deal with unusual cases where telnet and similar protocols are proxied, or possibly changed to a different type of protocol by rules. Normally such protocols should never be proxied, but there was no protection against it, and lynx could crash. The approach now taken does not disallow it, but just tries to deal with the situation in a way that avoids crashing; it is conceivable that one may want to direct e.g. telnet or rlogin URLs to a HTTP page that explains why theses types are not supported. A similar problem that occurred when e.g. telnet was forbidden by a rule is also dealt with. * Protect start_curses calls in getfile against being executed if dump_output_immediately is in effect. Maybe access to telnet, rlogin, lynxexec URLs should be completely disabled for this case; skipping the start_curses at least avoids being left with non-restored tty settings after the program exits, is someone attempts to use -dump or -source with such a URL (the -dump or -source flags is then effectively more or less ignored). * Tweaks in fix_http_urls, renamed fix_httplike_urls. * Moved LYStrerror from LYStrings.{h,c} to HTAlert.{h,c}, so that it can be used in HT*.c files without pulling in yet more LY*.h headers. * Reset 'safe' flag in anchor on parsing "Safe: no" and "Safe: false" headers. * The top makefile.in had some 'rm -rf' for whole directories $(helpdir) and $(docdir) in install targets that could potentially wipe out unrelated files; added checks to make sure the directories haven't been changed to something not lynx-specific (they are regarded as lynx-specific if the last component is lynx_help and lynx_doc, respectively). * Various doc tweaks. * Updated README.defines. Other contributors should please add their stuff there, too. 1999-06-01 (2.8.2rel.1) ----------------------- 1999-06-01 (2.8.2pre.11) * minor fixes from W3C HTML validation -TD * update links to HTML'ized lynxcfg in users' guide -VH 1999-05-31 (2.8.2pre.10) * add links to HTML'ized lynxcfg to users' guide -LP * cleanup temporary files left by lynx -dump LYNXCFG:// > /dev/null (analysis by LP) -VH * add comments to lynx.cfg describing effect of restricting configuration settings in nested includes -VH * delineate URL's in README with "", with space in lynx.man -LV * add some comments to lynx.lss -TD * minor improvements to configure script: use newer config.guess and config.sub from xterm, which adds case for HP 9000/800 (fix problem reported by Peter Jones ) -TD 1999-05-29 (2.8.2pre.9) * use StrAllocCopy rather than HTSprintf in LYstore_message() because no formatting is done there; the message may contain formatting controls such as %s (related to bug report by Frederic L W Meunier ) -TD * add/use function LYRenamedTemp() to update our record of temporary filename when using external decompression program, so we will remove the decompressed file correctly on exit. This is the usual case if we do not link with zlib (reported by HN) -TD * modify LYValidateFilename() to derive original directory preferably from Current_Dir() rather than environment variable $PWD, since the $PWD directory may not be writable if Lynx is invoked from another application rather than directly from the command line -TD * add/use function Current_Dir(), to check for failure in getcwd/getwd -TD * change ALL_LINGUAS assignment in configure script to use the .po file which actually reside in the po directory, making it simpler to drop/add message files from a distribution of Lynx. Also, make the assignment contigent on ALL_LINGUAS not being set externally, making it simple to override -TD 1999-05-28 (2.8.2pre.8) * when reloading/reparsing the document with forms, issue a warning only when user input is detected (forms content is changed from its default so information will be lost). New function HText_HaveUserChangedForms() is called from HTReparse_document() and HTuncache_current_document() -LP * fix exit from postoptions() when need_reload is set but no source_cache, was broken in dev23 -LP * remove unneeded float from integer calculations -LP * move comment for 'const' off the definition line, to simplify debugging configure problem on HPUX for David Eaton -TD * move LYGetYX() out of conditional expression, just in case it cannot be evaluated as a function, i.e., return a value (from bug report by David Eaton) -TD * make install for COPYHEADER and COPYING work when the build directory is not the top source directory -PG * add check to FastTrimColorClass() to avoid updating stylename and pointer into it when the tag to be trimmed is not found (fixes a core dump reported by VH) -TD 1999-05-25 (2.8.2pre.7) * update illustration of forms options menu in Lynx User Guide according to current lynx output -LP * old-style options menu: hot key for "local e(X)ecution links" is now displayed in bold (call addlbl() instead of addstr() like the other options do), adapted from Hiroyuki diffs -LP * fix handling of incorrect html in psrc mode. If a piece of html matched the pattern "", then styles of internal markup were unbalanced - resulted in cluttered colors -VH * comment-out (for release) configure option --enable-libjs -TD * change configure script defaults for --enable-persistent-cookies and --enable-alt-bindings to 'yes' -TD * add DESTDIR variable to top-level makefile to facilitate packaging releases with compiled-in pathnames -TD * further correction to VMS pathname in HFTPLoad.c, to translate /vms/fileserv/ to [vms.fileserv], for example. The wku fileserver gives back a Unix-style listing rather than VMS-style when given a Unix-style CWD, which confuses Lynx into discarding the listing (reported by Andy Harper) -TD * modify LYCookies.c to append new items to the end of the list rather than at the start, so cookies will be written and read from .lynx_cookies in consistent order (reported by KED) -TD 1999-05-24 (2.8.2pre.6) * fix for problem reported by LP -VH Load an html file with META charset and switch "\" to source mode. Now press ^R to reload: (1) In -prettysrc case you got a broken document (charset will be assumed by lynx from assume_charset or assume_local_charset, not from a META charset which was previously pushed with LYPushAssumed() so you get a problem with 8bit documents when assume_charset != META charset). (2) Without -prettysrc you got a document handled properly via META charset assumption. Now if you press ^R again you will get a broken document. * LYK_SOURCE & HTreparse_document(): when using SOURCE_CACHE_MEMORY fix tiny charset problem when switching to the source mode and the original document have its charset specified. Now aligned with SOURCE_CACHE_NONE and SOURCE_CACHE_FILE. More LYK_SOURCE fixes that might affect next coming document in come cases (mainly Info page and Options menu, which now show correct charset information) -LP * add CTRACE_FLUSH call before fork() in NSL_FORK logic so child's messages will not mess parent ones -LP * add a few trace messages -LP * HTReadProgress message now display statusline properly in TRACE mode (was always broken since early HTReadProgress days) -LP * install COPYING and COPYRIGHT for install-help rule as well as install-doc, so we can refer to local copies of those files -TD * tweak HTParse trace message -LP * minor formatting change for Lynx_users_guide.html -Hiroyuki * correct a few mismatches between variable declarations (char vs BOOLEAN) (from win32 version by Hiroyuki Senshu ). 1999-05-20 (2.8.2pre.5) * correct links to COPYHEADER and COPYING in about_lynx.html, by pointing to author's URLs, rather than to files which are not installed anyway -PG * shorten a couple of identifiers to keep with 31-character limit: hash_code_aggregate_lower_on_fly -> hash_code_aggregate_lower_str LYprint_statusline_messages_on_exit -> LYstatusline_messages_on_exit (reported by Andy Harper) -TD * correct VMS pathname in HTFTPLoad(), allowing connect to ftp://ftp.wku.edu/vms/fileserv (reported by Andy Harper) -TD * chartrans: cpXXXX Microsoft codepages verified against ftp.unicode.org - apparently cp1256 (Arabic) was updated recently. Although Arabic letters are hardly useful for lynx (no right-to-left support) this codepage is supported under chrtrans. So update, just for fun -LP * fix core dump when starting "lynx LYNXOPTIONS:" command. All phases of forms options logic now handled by postoptions(): LYNXOPTIONS:/ without post_data create a page (gen_options() now PRIVATE), LYNXOPTIONS:/ with post_data do proccess changes as before. Also LYK_ADD_BOOKMARK fixed: forms options page will not be added to bookmarks file -LP * modify HTGetRelLinkNum(), removing increment of HText_getTopOfScreen() value so checks for line number begin at the very top of the screen, fixing a problem reported when processing the 123[g][+-] command -LE * minor change to LYReadCFG.c to combine similar gettext'd strings -HN 1999-05-16 (2.8.2pre.4) * add 'fixit' parameter to LYEnsureAbsoluteURL() to suppress logic in LYConvertToURL() that was changed in 2.8.1dev.4, to re-offer the original string after an invalid URL is entered at a 'g' prompt. The calls to support 'g' are unmodified; other calls revert to the older behavior (recommended by KW) -TD * add/use string functions that make EBCDIC comparisons sort in the ASCII collating sequence, eliminating some special ifdef's in HTMLDTD.c -PG * when STARTFILE cannot not be loaded, lynx now exits with more understandable status messages: all important statusline messages are now printed to stderr/stdout -LP * add definition for _DECC_V4_SOURCE for VMS SOCKETSHR_TCP configuration to top-level and ./src build*.com files (reported by Andy Harper) -TD * change UNKNOWN_URL_TYPE to 1, to keep it distinct from NOT_A_URL_TYPE, fixes an error introduced when changing UrlTypes to an enum (reported by KW) -TD 1999-05-12 (2.8.2pre.3) * add DEBUG_SOURCE_CACHE makefile flag so all documents will be cached in SOURCE_CACHE mode, including local files. Normally undef'ed so only http served documents cached with sources -LP * in LYK_HISTORY, set newdoc.link = 1 so position at link #2 bypassing "recent statusline messages" link -LP * comment out "partial_thres=" option in .lynxrc (it was coded so the changes from lynx.cfg file could not be activated) -LP * add a sanity check to LYCurses.h to point out problems with the FANCY_CURSES configure checks -TD * fix uninitialized pointer used in decoding of -term switch (patch by Sergey Svishchev) * define _DECC_V4_SOURCE for VMS SOCKETSHR_TCP configuration, to fix conflict with unistd.h versus non-POSIX prototypes in the other headers (report by Andy Harper) -TD * ifdef'd includes for HTUtils.h to limit size of preprocessor listings with DEC C; verify that all header files include definitions needed for their contents -TD * add docs/OS-390.announce (Paul Gilmartin ) * add fallback extern declaration for h_errno to HTTCP.c for systems that have that variable but do not declare it (reported by Jean-Pierre Radley for SCO OpenServer 5.0.5) -BL * correct SortaSGML element info: SPAN can contain SPAN -KW * fix several small memory leaks (John Bley): + minor (~ 7 bytes) leak in LYCookie.c + leak in the warning message about invalid cookies + obvious leak in do_readme + small leak in dired_options (LYLocal.c) + leak with -selective option in HTFile.c + a few leaks and a minor cleanup in local_dired 1999-05-08 (2.8.2pre.2) * substitute a few more free()s with FREE()s in files HTString.c and LYReadCFG.c (John Bley) * fix buffer problems with long filenames and custom DOWNLOADERs (John Bley) * fix typical alloc-fail-return-error-without-free leakage in save_bookmark_link (LYBookmark.c) (John Bley) * modify generated WWW/*/makefile and src/chrtrans/makefile to omit include from intl directory if it is not used (report by LP) -TD * add configure test for h_errno, by splitting CF_ERRNO macro and reusing test for external data. Noticed that DECL_ERRNO was not defined/used, added that as well. The h_errno symbol is provided in some network libraries, e.g., on SCO and Linux, but may/may not be declared (report by BL) -TD * fix some serious lossage in lookup_reject (LYTraversal.c): memory and logic errors. This (replaced) line is one for the record books: frag = strlen(buffer) - 1; /* real length, minus trailing null */ Previously, this code caused a read before an array boundary as well as failing to compare the right number of characters in a pattern (John Bley) * fix some minor leakage in the cookie jar (John Bley) * fix up some casts and mode_t types in HTAAProt.c, HTFile.c, LYLocal.c, LYUtils.c (John Bley) 1999-05-05 (2.8.2dev.26 - 2.8.2pre.1) * remove some weird cruft from HTAAUtil.h (yeah, "/home2/luotonen" is a good default path) (John Bley) * correct a buffer overflow in LYDownload.c (reported by John Bley) -TD * 8bit attribute values are now translated in psrc view (reported by LP) -VH * trailing ';' now is shown after HTML entities (reported by LP) -VH * split-up/correct typo in text at top of generated bookmark file -JS, -TD * allow anchors as input for commands 'g','G','E' -VH * correct off-by-one error in pointer to filename in DOSPATH configuration for LYPathLeaf() -DK * fix infinite recursion bug in lynx.cfg includes, from dev.25 integration (reported by LP) -VH * implement the following separators in lynx.cfg "include" commands: ":" on Unix " for " on all OS's -VH * fixes for LYList.c, adding title info to the (mostly unused) HTLinkType -KW * change remaining 's to
in other html files, fix a few escapes that tidy (15-apr-99) reports. Leaving 's alone for the moment because there appears to be no standard equivalent -TD * change in lynx-dev.html to
since the latter is standard, correct IEFT version and supply

's as needed (Karl Eichwalder) * correct a couple of two documentation inconsistencies in the sources for USE_PSRC and -prettysrc (Karl Eichwalder ) * register free_messages_stack with atexit to fix some statusline leakage, explicitly fill out a struct initializer (John Bley) * fix a few html nits in the docs (John Bley) * cleanup some gcc -Wundef warnings -TD * add logic to free_lynx_cfg() to unset environment variables (requested by LP) -TD * modify SafeHTUnEscape() to work with EBCDIC (pg@sweng.stortek.com) * remove dangling comma in UrlTypes enum (reported by pg@sweng.stortek.com) -TD * make description of STARTFILE in userdefs.h agree with lynx.cfg -TD * fix: newline position when we come from the history stack and cached HText is used (say, return from 'p'rint menu), was broken in dev23 -LP * remove numerous HTMLSetCharacterHandling() calls from getfile(), use single call in mainloop instead -LP * #define PUTS() in LYCookie.c and LYMap.c to make code more readable -LP * fix: LYmouse_menu() in LYStrings.c calls popup_choice(), which is #ifdef'd out when --disable-menu-options is used (patch by Sergey Svishchev) * modify generated src/makefile to omit include from intl directory if it is not used. This in turn required fixing a redefinition of gettext on Solaris when using cc, since the locale.h file includes Sun's libintl.h file which prototypes gettext. Successfully built/ran using Sun's msgfmt utility, (had to manually add -lintl to src/makefile) though the generated message objects are incompatible, resulting in a core dump if not reinstalled (unnecessary include reported by LP) -TD * change VMS WWW descrip.mms file to use prefix=all rather than prefix=ansi, so that POSIX functions such as 'read()' are linked properly (reported by Andy Harper) this is a detail I overlooked in dev.18 -TD * fixes to compile with SunOS K&R cc -TD 1999-04-27 (2.8.2dev.25) * updates to INSTALLATION -HN * undo some redundant dev23 changes, in particular PSRC_TEST in HText_new was responsible for a wrong line breaking in -prettysrc mode (try "lynx . -prettysrc" and press "\" to see wrapping with altered define). Also fix Visited Links for internal pages -LP * restore links in lynx-dev.html to original form, to make redirection work properly -TD * add to MAKEFILE.W32 (untested - suggested by LP) -TD * definitions for DISP_PARTIAL;SOURCE_CACHE;USE_PSRC * lypretty.obj to the list of objects. * remove CF_MAKE_INCLUDE from configure script, since it is not needed -TD * merge WWW/Library/Implementation/CommonMakefile into WWW/.../makefile.in -TD * corrections/simplification of LYSafeGets(), and remove sizeof(buf) from related code in LYCookie.c (analysis by KW) -TD 1999-04-23 (2.8.2dev.24) * added overlooked WWW/Library/Implementation/makefile.in -TD 1999-04-23 (2.8.2dev.23) * add/use new function LYSafeGets to replace reads into fixed-size buffers -TD * change xxxx_URL_TYPE definitions in LYUtils.h to a enum -TD * use HTSprintf0 in LYCurses.c, LYReadCFG.c -TD * implement restrictions on options that can be set via the lynx.cfg "include" directive -VH For example, admins may specify include:~/.lynx/colors:COLOR include:~/.lynx/keymap:KEYMAP include:~/.lynx/viewers:VIEWER safely - and be sure that no critical options were altered by those files. The syntax is include:[:[* ] ] More samples: include:~/.lynx/rc:COLOR KEYMAP VIEWER SUFFIX include:/usr/local/lib/lynx-cfg.part: #all settings can be changed The patch does this: * It prints warnings to stderr about unknown options specified in the list of allowed options in include command. When 'o'->'lynx.cfg'->'RELOAD THE CHANGES' is activated, these warnings are also printed on stderr - so the screen will be corrupted if lynx.cfg and included are incorrect. * Only options, allowed for a given file are printed in 'o'->'lynx.cfg'->'RELOAD THE CHANGES'. * Fully backward compatible - lines of the form include:filename will work as they did(i.e., if the list of allowed options is not specified, then the included file can use the same set of options, as the file that contained that 'include' command). * If you wish to allow an included file to include others, you must specify 'include' in the list of allowed options. Sample: include:~/.lynx/suffixes:INCLUDE SUFFIX so that users will be able to use 'include' command in '~/.lynx/suffixes' (otherwise included file will be unable to include anything). * Option sets are ANDed. If file lynx.cfg contains: include:/usr/lib/lynx.cfg.0:COLOR SUFFIX VIEWER INCLUDE and /usr/lib/lynx.cfg.0 contains include:/usr/lib/lynx.cfg.1:SUFFIX VIEWER INCLUDE STARTFILE HELPFILE then /usr/lib/lynx.cfg.1 can use the following options: SUFFIX VIEWER INCLUDE * change the STARTFILE description in lynx.cfg to offer the user's home directory as an alternative to lynx.browser.org (amended this to reflect consensus that l.b.o should be the default) -TD * move a big chunk of code into print_status_message() -LP * also add numerous HTProgress messages to LYNXMESSAGES:/ page (but not HTReadProgress) -LP * HTAlert, HTUserMsg and HTInfoMsg statusline messages are now stored in a cycled buffer and accessible from the History Page as LYNXMESSAGES:/ link. This allows us to decrease the messages delay in lynx.cfg when we feel messages too annoying, but have a nice history list for diagnostic purposes. Uses a 40-line buffer (suggested by Bela Lubkin) -LP * fix reloading with HTreparse_document() for LYK_MINIMAL, LYK_HISTORICAL, LYK_SOFT_DQUOTES, LYK_SWITCH_DTD mainloop events (hope we work around replies from POST properly) -LP * elaborate description in Lynx_users_guide.html for "comments" (Michael Sobolev ) * fix --disable-trace (by making the ifdef's directly depend on NO_LYNX_TRACE rather than DEBUG), chop more unneeded #includes (John Bley) * combine WWW/Library/unix and WWW/Library/Implementation to simplify make dependencies, drop Makefile.old -TD * fixes for DOS port - DK (a) When exiting with interrupt, the message was printed in binary mode, leaving the cursor in the middle of the screen (b) In the PDCurses build, the keypad enter key only worked when LYK_ACTIVATE was utilized, but not in GOTOLINK or GOTOPAGE. This maps the keypad enter to '\n', so it works in all situations, but keypad enter will no longer be able to be mapped separately. CTRL-PADENTER and ALT-PADENTER can still be separately mapped. * various changes to userdefs.h and lynx.cfg explanatory text -KW * corrected placement of "partial_thres" code in LYrcFile.c, removed an unused prototype in LYUtils.h -KW * add a note about LYNX_SAVE_SPACE to INSTALLATION -JS * remove docs/*.old (request by HN) -TD * update INSTALLATION notes for DJGPP with PDCurses; a suggested patch is no longer applicable -DK * fixes for control/C and control/BREAK handling on DJGPP -DK * tweak in HTML_start_element case HTML_DT: prevent generation of empty line between multiple simple DT elements without intervening DD elements (Debian bug #3846) -KW * add list of downloaders to lynx_help_main.html -PW * add attributes for {bq,blockquote}.cite,{frame,iframe,img}.longdesc, {table,td}.background, td.{height,width} -VH * define DISP_PARTIAL for VMS (request by Andy Harper) -TD * include for DEC C, to prototype sleep() and alarm(). Ifdef'd include of HTString.h by HTUtils.h, but keep include as general rule for making headers standalone (report by Andy Harper) -TD * modified LYrcFile.c to avoid putting '#' characters at the beginning of lines, since that confuses VAX C (report by Tony Bolton) -TD * fix redefinition of h_errno (report by Tony Bolton) -TD * ifdef'd print_local_dir in HTFile.c since this function does not compile on VMS (report by Andy Harper, Tony Bolton) -TD * fix reload_read_cfg() to avoid persistent cookies mode changing at run time; reload printers list, downloaders list, environments - as expected. - LP * fixes for SOURCE_CACHE!=NONE mode, trying to accommodate HTreparse_document() for mainloop() events: - add/use flag "from_source_cache" for better mainloop maintenance - add partial display mode for HTreparse_document() operations - add warning when the reparsed document may lose its forms content - fix options menu stuff to use HTreparse_document() when possible - LP * fix exit from postoptions() when the reloaded document was in source mode -LP * update flags to correct behavior with SOURCE_CACHE!=NONE: the length of the re-rendered text may vary so the scrolling down is broken (especially nice when switching to source). ("more" updated, "lines_in_file" inlined) -LP * use configure script macro CF_CHECK_CACHE to compile-in Unix SYSTEM_NAME, for info screen (request by LP) -TD * minor fixes for uncaching document, other items missed in dev.22 -LP * merge the two versions of start_curses() function -LP * add -DSOURCE_CACHE and -DUSE_PSRC to djgpp makefiles -LP * add a few words for CHANGES and INSTALLATION -LP * add a configure option for prettysrc -TD * separate ifdef's for prettysrc from color-style -LP * fix for -prettysrc: when pressing '\' on non-local files, the prettysrc view is shown, but there is no way out of this mode -VH * change all PUTS() with a string of length 1 to PUTC(), fix a uid_t/int assumption in LYLocal.c, remove some unneeded #includes, remove some spurious semicolons. (John Bley) * fix typo in configure --help for --disable-direct (reported by LV) -TD * update user's guide and lynx.cfg descriptions of jumps files - PW * fixes for related bugs tweaked by going to an internal page while viewing source, and a few blurbs in the documentation -DSB * fixes to separate RAW_MODE from internal variable LYRawMode by adding new variable LYUseDefaultRawMode -LP * add a missing null-pointer check in expand_tiname() (from report by KW) -TD 1999-04-13 (2.8.2dev.22) * correct a missing include for LYLeaks.h in UCAuto.c -TD * implement HTML source caching. In this implementation, each document kept in cache has associated with it a temporary file containing the HTML source for the document (well, not all of them -- only those using the HTTP protocol, on the premise that file:// documents are probably local and ftp:// documents are probably not HTML). The temporary file is deleted when the document is uncached. For certain operations, instead of reloading the document via HTLoad(), the source file is reparsed with HTParseFile(). The cached document also remembers certain parser settings (screen size, historical vs. minimal vs. valid comment parsing, and the like), and is regenerated from source if it is fetched out of cache under different settings. This behavior is selectable by a configure option --enable-source-cache and by a lynx.cfg option SOURCE_CACHE; I didn't add a command-line argument or an options menu entry, as this didn't seem to be the sort of thing one would want to change You had to challenge me, didn't you? ;) Okay, after some pfutzing around with HTChunks, I think I've got a working version of memory caching of source. The SOURCE_CACHE option now has settings FILE, MEMORY and NONE, with the obvious meanings, defaulting to NONE. (DSB - Scott Bigham ) * amend HTConfirmDefault() logic so that a second character will cause the default response to be returned, e.g,. so that pressing "qq" will make Lynx exit (reported by John Bley) - TD * change the PUTS("\n") calls in HTFile.c to PUTC('\n') since that would be a little more efficient (noted by KW) - TD * minor cleanup: remove obsolete parameters from command-line parsing functions in LYMain.c, add newlines in HTFile.c for readability of html - LP * change default STARTFILE to the current directory, "." - PW * revised lynx-dev.html - PW * lynx.cfg and further included cfg files can be edited from LYNXCFG:/ page with the default editor and changes can be activated for the same lynx session. NOT allowed for restricted users (LYRestricted) and occasionally for user mode other than ADVANCED. This is an *experimental* code (reload_read_cfg() in LYMain.c - more work required): currently command-line switches may be lost when overridden by lynx.cfg changes, file paths like lynx_save_space and LYCookieFile should not be changed (unwanted results) -LP * retest PARSE_DEBUG ifdef's (LYMain.c, LYReadCFG.c), minor corrections but found no specific reason for LP's problem with tables, except possibly different effect from "&(value)" versus "(&value)" - TD * fix the problem of reading included lynx.cfg files by changing LYReadCFG.c table signature (now it is more close to one in LYMain.c). The problem was the ignoring of *some* values got from the included cfg file (at least for DJGPP2.02/gcc2.8.1 build). Probably we calculate the addresses of variables on a later stage now. - LP * DOSPATH changes: local directory style now configurable from lynx.cfg (LONG_LIST defined). Unlike UNIX it is not "ls -l" by default but a more compact form (date and size present, from lynx.cfg example) - LP * cookies: domains now match case insensitively (reported by Paul Wagner ) - LP * correct an ifdef in LYGetFile.c for config-page - LP * reading of long local directories now benefits from partial mode and fully interruptible. Split out print_local_dir() function from HTLoadFile() - LP * behave sanely if NSL_FORK fork() fails -BL * NSL_FORK try for dns_patience *seconds*, not dns_patience select() calls, which might have been shortened by keyboard input -BL * fix some screwy comment indentation -BL * add section on editing TEXTAREA to user's guide - PW * add a null-pointer check in LYCookie.c (Bill Nottingham ) * revise changes ifdef'ing LY_FIND_LEAKS by making atexit a no-op function since the DOS port depends on atexit to keep the DOS BREAK function properly set on exit. Put back atexit, and ifdef's each place where atexit isn't needed except when finding leaks - DK * modify LYMain.c on DOS, fixing the determination of BREAK status to be independent of SLANG or PDCurses - DK * spawn a new function, www_user_search_internals, to begin canceling the effects of cut-n-paste coding in www_user_search. The body of www_user_search_internals used to be duplicated at two points in www_user_search. See comment in GridText.c for more details. (John Bley) * big pile of unneeded #includes removed (John Bley) * remove obsolete files from the distribution (John Bley) WWW/Library/Implementation/HTWriter.* * one malloc check, fix --disable-ftp (John Bley) * fixes for compiler warnings when building for OpenVMS 6.2 using DEC C and the SOCKETSHR library (reported by Andy Harper) - TD * add cpp -H option for HPUX bundled C compiler, which otherwise does not have enough symbol table space (reported by JS). Also, modify ifdef's for vs to avoid including the former when ANSI_VARARGS is not defined since HPUX had a broken - TD * changed OMIT_SCN_KEEPING ifdef to 0 (inactive) in LYCurses.c and in HTML.c, still enabling the Style_className:HTML.c keeping and making lynx with lss slightly slower than it could be (though faster then dev21). If somebody wishes to fix a bug, here is a description: If contents of some tag that has corresponding color style occupies more than 2 screens, after navigating to the page, on which the content of that block starts, and then pressing PGDN PGDN PGUP, the effect (color style) of that tag will be lost. The same (loosing style) happens when jumping to the anchor that is in such block and is located not on the 1st page. IMO this is something with style stack. If this will be fixed, then keeping of Style_className:HTML.c can be omitted again -VH * fixed the bug in lynx with lss support -when displaying html pieces such as A B C , only 'AB' was drawn in style corresponding to -VH * added HTML source syntax highlighting (when option -prettysrc that is added is given to lynx). It's available for lynx compiled with and without lss support (it can be much more beautiful when compiled with lss support - read lynx.cfg for description). The code is ifdef'ed with USE_PSRC. This functionality coexists with old source view and with -preparsed logic (ie different commandline options make source view logic different) -VH * HTChunkPutc was inlined in SGML.c for better performance -VH * keeping of Style_className was omitted in HTML.c to increase performance of lynx compiled with lss support. -VH * performance of lynx compiled with lss support is increased ~ by 15-20% for normal documents, and by up to 50% for documents with a lot of tags VH * fixed bug in lynx compiled with lss support that caused it to load local CSS stylesheets - lynx didn't understand their syntax so it was exiting VH * added type information for attributes in HTMLDTD.c (it's used in source syntax highlighting mode) VH * sample .lss files are updated to support source syntax highlighting VH 1999-03-30 (2.8.2dev.21) * disable LYatexit if memory-leak testing is not configured. * fixes for unhighlighting problems with color-style support (Vlad Harchev) * remove '(default: on)' and '(default: off)' strings from configure script help message (much lynx-dev discussion) - TD * remove outdated link to the WebTechs HTML Validation Service from help menu and change link to more suitable location for rfc1945 - PW * correct logic of --disable-full-paths configure option (reported by Georg Schwarz) - TD * fix problems building on OpenVMS with DECC 6.2 (reported by Andy Harper ) + remove 'DEBUG' definition from build scripts since it is defined in the source code. + turn off code that tries to use getpwuid(), by defining NOUSERS, since those functions are not present on VMS. + provide a dummy location for h_errno for systems without that symbol. + correct string syntax in VMSexit function + ifdef'd use of lynx_version_putenv_command in LYMain.c + correct spurious parenthesis in mailform function + correct missing COPY_PATH definition for LYUtils.c * check for 'z' user interrupt in HTLoadHTTP before setting up the output stream. This avoids doing unnecessary work, including possible creation of a new HText structure that most likely is never displayed but still pushes another document out of the. cache. Most commonly this occurs when a HTTP error response is received and the user presses 'z' while the resulting alert message is shown - KW * fix of HTUnEscapeSome in HTParse.c for non-ASCII - KW, PG * tidy up around ed_offset initialization in GridText.c - KED (the patch as given did not compile on a non-ANSI compiler because it used aggregate initialization - TD) * add samples/mild-colors.lss (Vlad Harchev) * add samples/blue-background.lss (from Sergey Svishchev ) * documentation updates for INSTALLATION and PROBLEMS - PW * use HTConfirm and HTConfirmDefault to gettext'ify CONFIRM_BOOKMARK_DELETE, CONFIRM_COMMENT, CONFIRM_LONG_PAGE_PRINT, CONFIRM_LONG_SCREEN_PRINT, CONFIRM_MAIL_SOURCE_PREPARSED, CONFIRM_MAIN_SCREEN, FILE_EXISTS_HPROMPT, FILE_EXISTS_OPROMPT, NO_OWNER_USE, PREV_DOC_QUERY, REALLY_EXIT_N, REALLY_EXIT_Y, REALLY_QUIT_N, REALLY_QUIT_Y (based on report by LP) - TD * at LYNXCFG:/ page, add links for every included configuration file so we can read and edit them (no, currently the changes will be active the next session only. Minor reorganization of LYMain.c done, more required) - LP * correct test/spaces.html - it should not be in a

 mode by default - LP
* undo recent   changes so it is a single space as before (suggested by
  KW) - LP
* add ETag anchor element (currently not used, only for information) - LP
* assign LYNXCFG:/ and LYNXCOMPILEOPTS:/ for internal pages of parsed lynx.cfg
  and compile-time info.  Now we will not see a temp file link name in a
  statusline in advanced mode, also kill overhead since pages created only when
  really accessed - LP
* form-based options menu:  the bug described in 1999-03-17 changes now finally
  fixed - LP
* fix expanding entities for x-transparent display charset
  (was broken from 1999-03-04 changes) - LP
* trimmed trailing blanks from *.tbl, fixed chrtrans/def7_uni.tbl and
  chrtrans/viscii_uni.tbl, ensure that it produces correct result - TD
* chrtrans/def7_uni.tbl - entries with trailing spaces now explicitly enclosed
  in quotes to avoid problems with integrating the patches sent by e-mail,
  more comments added - LP
* attempt to implement --disable-ftp (John Bley)
* fix tiny memory leak in HTAAUtil.c (John Bley)
* chop useless #includes from LYHash.c, LYExtern.c, LYCurses.h (John Bley)
* --disable-news was also disabling ftp, --disable-finger without
  --disable-gopher wasn't right (John Bley)
* remove a duplicate #include from HTFTP.c (John Bley)
* remove several obsolete files from the source distribution (John Bley)
  WWW/Library/Implementation/HTAAServ.*
  WWW/Library/Implementation/HTAAFile.*
  WWW/Library/Implementation/HTAuth.*
  WWW/Library/Implementation/HTACL.*
  WWW/Library/Implementation/HTPasswd.*
  WWW/Library/Implementation/HTHistory.*
* --disable-partial wasn't compiling because of a suppressed #include, replace
  one more free() with FREE() (John Bley)
* correct typo LIsListpageTitle vs LYIsListpageTitle
  (reported by Artur Frysiak  and KED)
* don't append sed expression to help_files.sed if the $(COMPRESS_EXT)
  variable is empty - TD
1999-03-17 (2.8.2dev.20)
* protect a couple of spaces with quotes in def7_uni.tbl (suggested by KW) - TD
* add ifdef's for NO_RULES to HTAAServ.c - HN
* add configure --disable-news option - JS
* add configure --disable-finger option - JS
* add malloc checks, remove some #includes that don't need to exist, and
  cleanup where somebody decided to waste instructions setting fields to 0 when
  he already memset()ed the whole struct to 0 (John Bley).
* remove obsolete/unmaintained SHORT_NAMES ifdef's (John Bley).
* add/use LYTrimStartfile function (suggested by LP) - TD
* correct missing null-pointer check in add_printer_to_list function (forwarded
  by BJP from Debian bug-reports) - TD
* add notes about $CC variable to INSTALLATION and PROBLEMS - JS, PW
* tweak for TABLE formatting: break line at  end tag (don't wait
  for next  start tag), effective in SortaSGML mode only - KW
* lots of color style changes, only effective if compiled with USE_COLOR_STYLE;
  together they seem to make color styles act much more reliably and
  consistently - KW
  - Moved some extern definitions and declarations.
  - Made extra handling for LINK REL (or TITLE) attributes consistent
    with example lynx.lss file.
  - More complete (and hopefully more consistent) setting of "normal"
    attributes, especially background color, on screen refresh and after
    statusline messages.  Set normal attributes for statusline prompts.
  - Various other small tweaks, mostly to not lose color changes in a
    document and to avoid color leaking.
  - Attributes for highlighting WHEREIS search targets can be controlled
    by setting style for "whereis" in lynx.lss.
  - Allow mono attribute field in lynx.lss to be a combination of several
    attributes separated by '+' characters.
  - Changes of example lynx.lss file: more logical ordering, added some
    comments, document new stuff.  Changed a few styles for demonstration
    purposes or because text was really hard to read.
* apply color styles to HTML source display, using the same methods as
  for displaying the rendered version.  This is done if and only if
  the -preparsed flag is used (and lynx is compiled with -DUSE_COLOR_STYLE,
  of course).  Please remember that the source displayed with -preparsed
  is *not* the same as the original text/html document, it has been
  mangled by lynx (as the name implies) and may itself not be a valid
  HTML document even if the original was - KW
* changed some slightly suspicious casts in HText_endAnchor's casting hell:
  prefer to cast a line's size element to (int), rather than various int
  variables to (unsigned) - KW
* remove some unnecessary use of dynamic buffers where there is no apparent
  benefit for using them, for the sake of performance or to avoid a minor
  memory leak - KW
* stuffed small memory leak (MultipartContentType) - KW
* absorb 'len' parameter into logic of argncmp, so it still achieves its
  purpose of comparing prefixes of options without undue maintenance effort -TD
* retain logic that uses final URL on command-line (request by KW) - TD
* add/use new functions argcmp and argncmp to allow the use of '--' prefix as
  well as '-' for commandline options.  This means that '-localhost' and
  '--localhost' mean the same thing for lynx.  If EXTENDED_OPTION_LOGIC is
  defined then the extended commandline option logic will be used.  It means
  that '--' will be accepted and will be treated as an end of options.
  Anything after it will be treated as URL even if begins with '-' or '--'
  (Vlad Harchev)
* correct some typos in docs and in scripts (Vlad Harchev )
* modify generated sed script to handle special case of alt_edit_help.html,
  which was being rendered in --enable-gzip-help as alt_edit_help.html.gz.gz
  (reported by KED) - TD
* modify lynx_help/help_files.txt to update links to gzip'd versions of
  alt_edit_help.html, environments.html, test_display.html - KED
* tweak for SGML_LITTERAL (sic) parsing, so that the first nonmatching
  character after the beginning of a putative end tag goes through character
  translation - KW
* add some more pieces of info (if available) to '=' page in advanced user
  mode.  Also show mode as "source" instead of "normal" if viewing SOURCE, in
  all user modes - KW
* minor FASTBACKW_LINK / FASTFORW_LINK tweaks - KW
* removed documentation for nonimplemented chargen URLs - KW
* remove num_n256 hack introduced in dev18 UCDomap.* - LP
* forms-based options menu: fix reloading of previous document *only* when
  necessary (was always, since early forms-based options menu days).  Still
  have a bug - while submitting the options menu lynx reload menu again, but
  this is much faster to load small local file twice than fetch previous
  (possible large) document over the net.  - LP
* — (—) now display as "--" (popular requests) - LP
*   are now displayed as two   (popular requests),
  previous definition of HT_EM_SPACE now renamed to HT_EN_SPACE. - LP
* minor tweaks in postoptions(), new flag added - LP
* minor changes to make this build with SunOS K&R cc - TD
* entities.h:  clean HTML4.0 entities table added, it is #ifdef'ed with
  ENTITIES_HTML40_ONLY (may be useful for page validation), file entities.h
  moved to src/chrtrans directory - LP
* save few KB of static memory by storing unicodes as 'u16' (was 'long') - LP
* trace log toggle now really interruptible - LP
* move entities.h to src/chrtrans - LP
* fix display of -help output: (on/off) info was wrong for UNSET_ARG case - LP
* ifdef'd recent changes to LYPrint.c to build with djgpp - LP
* remove redundant -DDEBUG from djgpp makefiles - LP
* remove nonstandard ISO-9945-2 - LP
* eliminate a duplicate --enable-included-msgs in configure --help, (reported
  by LV) - TD
* redefine LY_BOLD_START_CHAR for EBCDIC platforms to avoid conflict, adjust
  IsSpecialAttrChar() to take this into account - PG
* rewrite LYKeymapCodes with leading commas to avoid accidental/illegal
  use of trailing comma in an enum list - PG
* modify UCdomap.h to avoid gcc-specific construct using cast to struct of
  data aggregate - PG
* modify makefiles to allow .c.i rule to work with --srcdir - PG
* add a rule to makefile.in to generate patches - PG
* correction to LYCookie.c, to get it to eat all cookies (reported by LV) - BJP
* corrections/updates to entities.h (Jacob Poon):
  HTML 4.0 compliance:
  - Added support for Euro currency symbol.
  - Fixed duplicated ◊ definitions.
  Fixes:
  - Fixed some typos in the old references. (fixed: b.delta)
* update follow_help.html for LE's 123g changes - PW
* further correction to 123g logic - LE
1999-03-04 (2.8.2dev.19)
* forgot to update PRCS when renaming src/chrtrans/iso9945uni.tbl - TD
1999-03-04 (2.8.2dev.18)
* modify configure script to recover if the intl and po directories are
  missing, allow experimentation with --enable-nls --disable-included-msgs
  --without-included-gettext options (request by HN) - TD
* add sanity-check for EBCDIC FixCharacters() in LYMain.c - PG
* ifdef'd the ADDRLIST code with EXP_ADDRLIST_PAGE, making this available as
  a configure script option --enable-addrlist-page - TD
* create a new command called ADDRLIST, which behaves exactly the same as LIST,
  but which *should* always show only the URL's.  Rather than make it a config
  option (which would have taken me quite a bit longer to do), I've bound it to
  the "A" key (that's a capital "A").  Why not "L" you ask?  Because of the "vi
  keys" option, whereby "l" is used for cursor movement, and "L" stays reserved
  for L(ist) - KED
* change the LYK_xxx keymap definitions to an enum, to simplify ifdef's - TD
* add configure options --disable-gopher, to remove GOPHER code, and
  --disable-trace to remove TRACE code - JS
* modify trace log header to always inform us if anonymous restrictions are
  set - LP
* chartrans: old-style declarations of charsets which do not have Unicode
  tables (CJK, x-transparent, also UTF-8) now moved from LYCharSets.c to
  UCdomap.h and now included with UCInit() in UCdomap.c in a standard way - LP
  (Please re-test CJK and UTF-8)
* add configure --enable-libjs option (Lalo Martins )
* add checks for some more LINK tags as listed in "6.12 Link types" of the HTML
  4.0 Specification (Masayasu Ishikawa )
* changed the effect of some LINK tags with REL attribute of a very relative
  character (Up, Next, Prev, ...) on titles as they appear e.g.  on the LIST
  page:  the title of the target HTParentAnchor isn't being set when such a
  LINK tag is parsed, but the relation is now stored as a property of the
  link itself rather than its destination.  The LIST page shows the relation
  as additional info, not superseding a URL or title string obtained
  otherwise - KW
* move commands in top-level makefile.in which clean *.rej and *.orig from
  'distclean' rule to 'maintainer-clean', make distinct from the @SRCDIR_CLEAN@
  substitution which is intended for use with the configure --srcdir option
  (from reports by Glenn E.  Thobe  and BL) - TD
* correct LYRemoveTemp() to close file before attempting to remove it; else
  the remove fails on some platforms, e.g., DOS/Windows (report by KW) - TD
* improved documentation for the new cookie options, e.g,.
  COOKIE_ACCEPT_DOMAINS, in lynx.cfg - BJP
* fix some memory leaks in LYCookie.c - BJP
* modify 123g (and similar movement) commands to allow for relative links,
  e.g., by using a '+' or '-' after the 'g' - LE
* modify help_files.sed to include '$', making regular expressions work for
  HP-UX (Jens Schmalzing )
* add a comment to aclocal.m4 to show where patches for autoconf, needed for
  this configure script, can be found - JS
* add toggling trace log on/off in partial mode, when the downloading is still
  in progress - LP
* more consistent docs for debugging of invalidly nested HTML:  important trace
  messages from actions on invalid tags now have '***' prefix such as "SGML:
  ...  ***ignored" (well:  illegal, forced, assumed, etc.), -preparsed mode now
  better documented - LP
* minor code cleanup: remove redundant includes, fill in 0's for some static
  data initialization (John Bley).
* add 'joe' editor, and variants, to list of those editors that are assumed to
  position the file to a given line number using the "+line" command-line
  option - IC
* remove redundant "(y/n)" substrings from LYMessages_en.h - LV
* add new command named GROWTEXTAREA which adds 5 new blank lines to the bottom
  of a TEXTAREA when executed.  It does not have a default binding, so you need
  to add a KEYMAP for it in your lynx.cfg.  The number of lines added is fixed
  by a #define, but 5 seems to be a "reasonable" increment to use - KED
* add new command named INSERTFILE, which (obviously) inserts a file's contents
  into a TEXTAREA, just above the line the cursor is on when invoked (which
  means you cannot insert a file *below* the final existing TEXTAREA line ...
  but see 1) and 3) for easy ways to over- come this limitation).  It too, has
  no default binding, so a KEYMAP entry is also needed for it - KED
* by default, when the cursor is on the last line of a TEXTAREA, if you hit the
  ENTER key, a new line will be added to the TEXTAREA, with the cursor
  positioned on it.  If that should happen at the bottom of the screen, a
  DOWN_HALF scroll operation is (effectively) performed - KED
* ifdef'd this feature (since at least one person objected to this automatic
  behavior when it was discussed awhile back - BL?), for easy disabling (and to
  make adding a ./configure option easier).  The symbol is AUTOGROW is
  #define'd in LYMainLoop.h - KED
* added an ifdef for the code that causes the external editor to be
  invoked "automatically" on the TEXTAREA contents when ^Ve (or whatever
  the EDIT binding is), rather than attempting to invoke it on the .html
  source file.  This should allow adding a ./configure option to control
  this behavior, until we come up with a different binding/mechanism to
  do the job, that we can all agree on.  The symbol AUTOEXTEDIT is also
  #define'd in LYMainLoop.h.   The command EDITTEXTAREA is still available
  for separate KEYMAP binding, per KW's suggestion - KED
* check the range of chars between 0x80 and LYlowest_eightbit[current_char_set]
  for validity against the charset in use.  If such chars are detected in
  edited or inserted data, a "." char is substituted for them, as with normal
  control chars.  (Suggested by LP) - KED
* added KW's LYCloseTempFP bugfix - KED
* add/use function GetFileName(), e.g., by INSERTFILE.  It is fairly general
  purpose, and can be used whenever the name of an existing file needs to be
  input.  It uses the same mechanism for filename expansion and "history" as
  does the PRINT function - KED
* reorganized a lot of the code into subroutines to provide for 1) and 2);
  still need to do a bit more cleanup of some other (nearly) common code - KED
* rename iso9945_uni.tbl to iso9945uni.tbl to accommodate 'make' programs on
  old systems (such as CLIX 3.1) whose suffix rules fail for filenames longer
  than 14 characters - TD
* change VMS WWW build-script to use prefix=all rather than prefix=ansi,
  so that POSIX functions such as 'stat()' are linked properly (reported by
  Morris D Cox ) - TD
* modify configure macro CF_EBCDIC to avoid using #error, since that is not
  recognized by all compilers - TD
* include  in CF_INET_ADDR macro, to accommodate systems which
  require that to compile test program with the socket.h, other network
  headers - TD
* removed a cast in free_lynx_cfg, on FREE's argument, which caused some
  compilers to report that an rvalue was being modified (reported by PW) - TD
1999-02-16 (2.8.2dev.17)
* modify LYReadCFG.c to avoid duplicating data for cookies - BJP
* modify HTConfirm to use gettext values for yes/no.  Use HTConfirm in a few
  more places, though completing this will require more work - TD
* add note about resolv library to PROBLEMS - PW
* minor clarification about DOS/Windows binaries in README - PW
* modify ./makefile.in so that portions which are commented-out will be done
  without a leading tab, since that confuses the make program on Digital Unix
  3.2 - TD
* Unix: Don't accept HOME variable as valid if it does not begin with
  a slash - KW
* changed HTGetCharacter to be 8-bit clean, it could not distinguish between a
  character value 255 and EOF.  Changes affect several protocols:  nntp,
  gopher, finger, ftp.  Most notably, news articles containing byte value 255
  could not be completely read - KW
* removed a memory leak in HTFTP.c for some directory data, added a few gettext
  calls - KW
* added ability to show file type description in local Unix directory listings:
  new format codes for use in LIST_FORMAT %t, %T, they are not used by default
  - KW
* modify "clean" makefile rule to allow for FreeBSD, which generates core
  files such as lynx.core - KED, TD
* correct sign-extension when converting characters after edit of TEXTAREA
  (upper-128 characters were being translated to dots, reported by IC) - KED
* worked with some pathological/boundary-case pages, and fixed some some edges
  that could fail (eg, last line of document is also last line of a TEXTAREA,
  and lines are being added; page containing *only* a one-line TEXTAREA field;
  etc).  While it was unlikely one would run into such beasts in real life,
  they all work correctly now.  Thanks to Greg Marr and Serge Munhov for
  providing some very basic pages that I was able to easily modify for various
  test cases - KED
* added a few flags to the TextAnchor and HTLine struct's, to indicate an
  expansion line.  These were added to allow for line deletion when a TEXTAREA
  is "reset" or shrinks (when we get around to tackling those tasks) - KED
* the editor's cursor is now positioned on the same line in the edit file, as
  it was on when the editor was invoked (relative to the beginning of the
  TEXTAREA).  At least for those editors that lynx knows support initial
  positioning (emacs, vi, pico, jove, and jed for non-VMS platforms; sedt for
  VMS) - KED
* cleaned up and corrected a few comments; simplified a few small bits of
  code - KED
* added cookie_domain_flags enum to LYCookie.h, usage should be apparent with
  patch applied - BJP
* updated free_lynx_globals() for cookie variables - BJP
* replaced cookie_add_acceptlist, cookie_add_rejectlist and
  cookie_set_invcheck functions with cookie_domain_flag_set - BJP
* saved a bit of memory by dropping useless pointer memory initialization
  (exactly WHAT was I thinking?)  - BJP
* changed LYrcFile.c, LYReadCFG.c to call cookie_domain_flag_set  - BJP
* new lynxkeycode BACKTAB_KEY with value 0x10F.  DO_NOTHING is and shall remain
  0x10E, as documented in lynx.cfg.  Moved MOUSE_KEY out of the way - does it
  need to be in the tables at all?  BACKTAB_KEY will be recognized if the
  (n)curses keypad() input handling returns KEY_BTAB, which happens if the
  terminal description has the right kB or kcbt capability string and the
  terminal actually generates that string (often "^[[Z", generated for
  shift+tab).  May also work with lynx-keymaps mechanism.  Not tested with
  slang, maybe this has to be added to some more of the various tables in
  LYStrings.c - KW
* new user-visible key commands FASTFORW_LINK and FASTBACKW_LINK, with
  lynxactionscodes LYK_FASTFORW_LINK and LYK_FASTBACKW_LINK.  By default mapped
  from  key (^I) and new BACKTAB_KEY, respectively.  Previously  was
  mapped from NEXT_LINK, which has some special handling if the invoking key
  was  (and if FASTTAB was defined in LYMainLoop.c, which was the case by
  default).  The old behavior of  is still available if it is mapped with
  KEYMAP to NEXT_LINK in lynx.cfg - KW
* these commands always go to a previous (or next) link if there is one,
  and skip multiple lines that are part of the same textarea - KW
* recognize the new key actions also during partial file display, for some
  roughly corresponding movement - KW
* new lynxeditactioncode LYE_FORM_PASS, to allow any lynxkeycode to end the
  editing of a form field and be passed up to the caller - it will then
  normally be mapped to a lynxactioncode.  LYE_FORM_PASS keys are generally
  ignored in non-forms line editing.  This is used for BACKTAB_KEY, as well as
  several other keys that were previously handled specially in form_getstr - KW
* extended the maps in LYEditmap.c to cover the same range of lynxkeycodes as
  the LYKeymap.c tables.  Yes, this uses more space, but the tables need to be
  consistent - KW
* map lynxkeycode 0x00 to LYK_DO_NOTHING, as lynx.cfg said all the time - KW
* some tweaks of displayed strings in 'K'ey Map page.  Don't show CHANGE_LINK
  binding if mouse not enabled (it may not be useful even when -use_mouse is
  on) - KW
* function expand_substring used with NCURSES for user-defined mapping keysyms
  to byte sequences was parsing the "^(...)" construct wrong - KW
* other small tweaks in key handling code - KW
* changes to lynx.cfg to better reflect reality. - KW
* terminology note:  lynxkeycode = what's between the colons in lynx.cfg
  KEYMAP:...:..., lynxactioncode = LYK_* code for what's right of the second
  colon, lynxeditactioncode = what's assigned in LYEditmap.c (and which may
  differ between lineedit_mode Default Binding and alternative bindings) - KW
* formatting tweak in HTML.c for 
not preceded by
: Don't use wrong indentation in that case - KW * changes from DK for DOS up to 1999-02-14 - KW * minor documentation tweaks - LP * replace most uses of free with FREE (John Bley). * correct HTEndParam so that if fewer command-parameters are given than expected, we still terminate the command properly (reported by Michael Warner) - TD 1999-02-08 (2.8.2dev.16) * minor documentation tweaks for EDITTEXTAREA - LP * correct uninitialized buffer variable in send_file_to_mail() which caused core dump (reported by LV) - KW * recognize Subject and Message-Id in embedded comments in HTML documents, in the form generated by MHonArc for mailing list archives (including lynx-dev). Use these to generate a default Subject and an In-Reply-To header (currently not for VMS) when replying by mail (sending a 'C'omment, or following a mailto link) from such a page. The old methods to get a title other than the fallback (the URL) still are there and have precedence, by in reality seem to apply very rarely. If no suitable comment strings are found or they are regarded as invalid (bad characters, not exactly right format) they are not used, and the fallback (URL as Subject, no In-Reply-To) applies - KW * use the Message-Id of a news article to generate a References header when posting a reply. Lynx's new article listing doesn't understand threading, but this is nicer for other newsreader that do. The References header of the referenced article is not used, so there will be only one message-id in the generated References header, but this is better than nothing. The article's message-id is appended as a parameter to the URL of the generated newsreply link, in the form ";ref=...", so this extends the syntax of Lynx's newsreply: URL scheme. Nothing should have changed for snews: and other s-versions of the various URL schemes for news access - KW * Message-Id and Subject of a news article are also made available for replying by mail - KW * LYNews.c: Don't post a message that is empty or has only '>'-quoted text - KW * HTNews.c: got rid of some suspicious fixed length buffers. Fixed minor memory leaks. Added abort of the target stream which was missing in some cases. Create mailto: hrefs in URL-escaped form if necessary, they will be unescaped in LYMail.c. (News URLs still don't use escaping the right way, especially for message-ids.) Recognize special meaning of "Followup-to: poster" (don't treat "poster" as a newsgroup name). Other small tweaks - KW * add samples/cernrules.txt - KW * except for DJGPP, move lookup code for domain names (not dotted-quad IP addresses) from HTParseInet into a new function: LYGetHostByName acts like the normal gethostbyname, but includes the NSL_FORK logic. Interruption is indicated in global variable lynx_nsl_status - KW * use LYGetHostByName instead of HTParseInet for URL guessing - KW * select on tty file descriptor in NSL_FORK loop also if compiled with slang. This should make 'z' during lookup more responsive - KW * don't compile in the rules implementation code if NO_RULES is defined (suggested by BL) - KW * fix special case of EDITTEXTAREA where the returned file is empty - BJP * write to .lynxrc values for COOKIE_ACCEPT_DOMAINS and COOKIE_REJECT_DOMAIN when options screen is used - BJP * add lynx.cfg and .lynxrc support for a few new options: COOKIE_STRICT_INVALID_DOMAINS, COOKIE_LOOSE_INVALID_DOMAINS, COOKIE_QUERY_INVALID_DOMAINS They're the same sort as COOKIE_ACCEPT_DOMAINS, comma-delimited lists - BJP * modify LYOpenTemp() to report unusual errors, i.e., other than if the temporary file could not be created because it already exists - PG * more fixes to CF_INET_ADDR - TD * modify README to indicate where win32 binaries are found - JS * add chrtrans tables for Ukrainian Cyrillic: koi8-u, cp866u, iso-9945-2 (patch by Serhii Hlodin ) * patch for TEXTAREA edit feature - KED 1. Handles the renumbering of link number tags [nnn], when the tag itself is split across two lines (see below). 2. Scrolling down, going to the bottom of the document, etc, now work properly, when the TEXTAREA is expanded beyond the bottom of the (original) screen display. 3. Hitting the reset button is now handled properly WRT the "old" text in expansion lines (now *always* empty). 4. Attempting to edit (^Ve) a TEXT field (not a TEXTAREA), is now blocked, with the user getting an error msg. 5. The function call now returns the number of lines that the cursor should be moved from its current position, to end up on the first blank line of any trailing empty lines in the TEXTAREA (there will always be one). * bug fixes for TEXTAREA edit feature - KED 1. Thanks to a suggestion by Bela, your regular EDIT keybinding ("e" by default), will now bring up the editor within a TEXTAREA, so there's no need to "waste" a separate keybinding (though you can still additionally bind the function separately, if desired). 2. Converts any tab chars in the edited file, to spaces in the TEXTAREA anchor line. The tabstop is currently #define'd to the quasi-standard value of 8. (If anyone thinks that needs to be user configurable, feel free to add that to the o(ptions) form/menu, cmd-line-arg/lynx.cfg/.lynxrc/userdefs.h, whatever ... I recommend against doing so though, as tabstops that are not set at 8, are a PITA to deal with, generally speaking. I dunno if tab chars in a TEXTAREA form are prohibited "by spec", or if it is just a "lynxism" that they cause rendering problems (as well as downstream problems with submit/etc, I think), but I felt I needed to do something to make lynx behave rationally if they are present in the edited data (quite possibly from an arbitrary file that one pulled into the editor). Filtering them to spaces, seemed the most reasonable thing to do. 3. Replaces any embedded control chars with something printable (I chose a "." char, since it is less "intrusive" than some other choices, like "*", "+", "#", etc). As with tabs, when some of these chars *are* rendered into the TEXTAREA, strange things may happen. This shouldn't be much of a limitation, since many of these chars perform line-editing or system/job-control functions, when entered directly while one is in the TEXTAREA. They currently cannot be "escaped" and entered as actual text chars, so far as I can tell. Anyway ... I don't know of any "legitimate" reason for them to be used as TEXTAREA data, so for now, you get "dots" in their place. 4. Cleans up a few comments, and such. * update some linked in lynx_help_main.html (Heikki Kantola ) * add checks for null return from malloc to HTInit.c, LYMain.c, LYReadCFG.c, LYUtils.c (patch by John Bley) * add telnet, tn3270 and rlogin program paths to configure script (patch by George.Lindholm@ubc.ca). 1999-01-28 (2.8.2dev.15) * correct calls to HTAddParam() in LYDownLoad.c to handle optional second parameter (reported by KW) - TD * change HTAddXpand() to assume its parameter (an environment variable) is already expanded and simply is not quoted (reported by Ryan Hung ) - TD * add configure --disable-included-msgs option to allow suppressing of bundled ./po directory for the NLS message library contents. If no ./po directory is found, the configure script assumes it is preinstalled anyway (request by HN) - TD * add pattern to script which customizes pathnames in lynx.cfg to support GLOBAL_MAILCAP:/PATH_TO/lynx_doc/samples/mailcap (request by PG) - TD * export $PATH when calling cfg_defs.sh - PG * add a simple test to check if the temporary directory is actually writable if we cannot create a temporary file in LYOpenTemp (reported by PG) - TD * miscellaneous DOS/DJGPP compile/build fixes - LP * enabled CERN-style rules, there are two new lynx.cfg options, RULESFILE and RULE. No example file or documentation yet beyond comments in lynx.cfg. The rules mechanism itself is unchanged from what was present for a long time (but never used), except for some memory cleanup. Use -DNO_RULES at compile time to disable - KW * add changes to invoke external editor on textarea, can be invoked by adding a KEYMAP entry for EDITTEXTAREA area to lynx.cfg (originally from aldomel@ix.netcom.com, but much rework) - KED * use HTSprintf0 in HTTCP.c - TD * added PARSE_STRICTPATH and PARSE_QUERY to interface of HTParse(), for requesting only the relevant part of what is returned for PARSE_PATH. This isn't yet used anywhere - KW * changes to StrAllocVsprintf() to take width and precision in most format specifications into account, and to correct the memory allocation logic. This was tested by setting GROW_SIZE to a small value of 8, so far no crashes, but it is certainly not right for all possible formats, especially involving floating point conversions - KW * changed HTSprintf0() to pass a string already existing in its output buffer on, this should save a few realloc's in StrAllocVsprintf() - KW * changes to code handling LIST_FORMAT to avoid some unnecessary reallocations, to recognize some more format flags, and to treat invalid formats somewhat better - KW * corrected recent HTFile.c change for systems without S_ISVTX - KW * added memory cleanup for uid/gid cache functions in HTAAProt.c - KW * increased ATEXITSIZE to 40 - KW * added TRACE output to HTAnchor.c's free_adult_table. If this shows anything at program exit (if TRACE is on then), it means that HTAnchor structures have been missed by the normal automatic cleanup (walking the history list and following links) - KW * changed more status codes in HTUtils.h to libwww5-like values - KW * added new function to check for a valid Internet hostname - KW Use it before actually trying to resolve an address, it should a. avoid the overhead of NSL_FORK if it would fail anyway, b. prevent DNS queries for invalid names, which may unnecessarily consume time, bandwidth, and DNS server cache memory, and may confuse some resolver libraries and servers, c. speed up address guessing sometimes if something was mistyped, d. thwart some attempts to crash Lynx with invalid URLs. * this time really make "Alert" statusline prefix localizable - KW * new function HTAlwaysAlert(), which can be called even when LYCursesON isn't true and should always produce a visible message - KW * use new valid_hostname to also check telnet, tn3270, and rlogin hostnames before calling the external program (after most invalid character have already been stripped). Added a fflush(stdout) to make sure messages are visible before external program is called - KW * made changes equivalent to the 1998-12-31 HTSACopy and HTSACat modification to the LY_FIND_LEAKS versions of those functions. Having source and target string for StrAllocCopy or StrAllocCat overlap (or being equal) should be considered a programming error, but at least one place in LYEdit.c currently seems to do it and rely on the new behavior. (Editing current file sometimes didn't work with LY_FIND_LEAKS) - KW * closed memory leaks in LYKeymap.c, provided for memory cleanup at exit of LYCgi.c environment strings - KW * explicitly put HTTP_ACCEPT_LANGUAGE and HTTP_ACCEPT_CHARSET strings into lynxcgi environment only if they are non-empty, i.e., set to something in lynx.cfg or the personal configuration or Options screen. This makes the environment a lynxcgi scripts sees resemble more closely that of a remote CGI script handling a request from Lynx with the same configuration - HTTP.c also only sends Accept-{Language,Charset} headers if preferred language and preferred charset (respectively) have been set to non-empty strings. (Strictly speaking, an empty Accept-* header has a different meaning from a non-existing one, but it doesn't make much sense to generate empty Accept-* headers, since they mean "nothing is accepted".) There are other differences in the lynxcgi environment (e.g. HTTP_ACCEPT isn't set, ",iso-8859-1;q=0.01" etc. isn't appended to HTTP_ACCEPT_CHARSET, apart from missing redirections), but apparently nobody has needed a more exact CGI emulation for real scripts - KW * removed sending of "Negotiate: trans" in HTTP.c since it violates transparent content negotiation specs, added comments - KW * correct error handling in CF_INET_ADDR, which did not restore $LIBS when no applicable library was found for inet_addr (reported by IC) - TD * correction to CF_TERMCAP_LIBS, which used inconsistent spelling for the cache variable, so predefined termcap/terminfo library was not necessarily detected - TD * resolved autoconf 2.13 problem, resync configure script with patched autoconf 2.13 - TD 1999-01-18 (2.8.2dev.14) * use HTSprint0 in LYCurses.c, LYForms.c, LYGetFile.c, LYJump.c - TD * modify LYCheckMail so it does not continue to report new mail when the mail file's modification time differs from its access time (reported by LV) - TD * add check for inet_addr function, and (preferred) inet_aton. The first function is reported to be sometimes in -lresolv, or -lbind when it is not present in the conventional network libraries (from report by mattack@area.com and comments by HN) - TD * resync config.sub, config.guess with autoconf 2.13.19990117 (not yet configure, since autoconf 2.13 contains some new bugs) - TD * modified handling of untranslatable charsets, after noticing that a page with charset=ISO-2022-JP produced an alert message with a truncated "iso-2022-j". Looking more closely, the code could also result in memory corruption in some cases. Compared with older versions, then changed the code to something somewhat like what was intended there. But we don't have an "Other ISO Latin" display character set any more; maybe those `else' blocks should just have disappeared completely - KW * minor changes to SortaSGML DTD for PARAM, THEAD - KW * make "Alert" statusline prefix localizable - KW * extend fixtext.sh to also change continued lines - KW * changed LYCheckForProxyURL to act more like it appears to have been indented, and clarify comment. Minor change in is_url - KW * prevent removal of hidden link number from bookmark document in a very obscure case of a bookmarked ISMAP link - KW * HText_SubmitForm: make sure query is always allocated, even if the set of form fields to be sent turned out to be empty - KW * some comments corrected in HTML.c, LYCharSets.c - KW * tweak in curses_w_style for display without color - KW * remove minor memory leak in LYDownload.c - KW * changed error handling in LYTraversal.c to make sure terminal gets restored to sane mode before showing error message and exiting - KW * increased VALUE_SIZE for buffer in HTMIME.c from 1024 to 5120. Someone needed increase for long Set-Cookie headers - KW * two new functions in HTList.c to reverse and to combine lists - KW * Lynx was using the wrong precedence for entries within a mailcap (relative to other entries from the same file): RFC 1524 says "The configuration information will be obtained from the FIRST matching entry in a mailcap file[...]", but Lynx effectively gave precedence to the last match. Recent Debian packages of lynx have had a patch applied to change this, but that patch also seems to affect the precedence order relative to viewers defined in other places, i.e., lynx.cfg and HTInit.c. The patch here instead changes the precedence of mailcap entries form the same files to RFC-like behavior, by reordering the list generated from a mailcap file after we have finished reading it in. It leaves the order relative to viewers from other sources unchanged. Maybe it should be made configurable whether Lynx's traditional precedence or the new one is used; currently there is just a #define in HTInit.c which could be changed to revert to traditional behavior - KW * add checks for null return from malloc to LYCurses.c, LYStrings.c, (patch by John Bley) * add support for HP Roman8 as a display character set. HP Roman8 is used by Hewlett-Packard terminals and hpterm, HP's version of xterm. The character repertoire is largely similar to ISO Latin 1 but the code points are all mixed up (patch by Christian Weisgerber) * modify WWW/Library/Implementation/HTAAUtil.c::HTAA_setupReader(): to use malloc'd buffer rather than static buffer, to avoid overflow (patch by Thomas Braun ) * modifications to allow building the DOS lynx port with support of gettext for producing messages in various languages. The DOS port of the gettext package still needs minor tweaking to get it to function properly, but this shouldn't be a problem for most people trying to compile lynx for DOS themselves. Rather than put yet more DOS-specific makefiles in the distribution, I put the changes to the makefiles within comments, which can easily be removed to enable the changes - DK * add a comment about LYUCcharset struct "UChndl" field. Tweak trace messages - LP * fix parsing of ALT=value attribute when the value is not quoted. When the first character is not us-ascii it was corrupted by chartrans in all versions of lynx. Fix case S_equals in SGML_character() - LP * chartrans: ignore RAW_TOGGLE key and do not change LYUseDefaultRawMode if current document's charset specified explicitly, add status message. (Let user switch toggle only when necessary, to avoid future problems :-) - LP * chartrans: change the default value of PREPEND_CHARSET_TO_SOURCE in lynx.cfg from FALSE to TRUE (better safe than sorry) - LP * reorder forms-based options menu (cosmetic): rename "HTML error tolerance" to "HTML error recovery", reorganize "Character Set Options" section - "Display character set" went to "Personal preferences" section, "Assume character set" and "Raw 8-bit or CJK mode" went to "Document Layout" section; "Execution Links" went to "File management" section. (Hope this helps to reduce confusion) - LP * remove "environment variables" section from INSTALLATION, change references to Lynx User Guide in all docs. Minor tweaks on help files - LP * add a comment to mime.types and lynx.cfg on SUFFIX definition: "This has an effect for ftp and local files only, http server does specify MIME type in the Content-Type header" - LP 1999-01-13 (2.8.2dev.13) * correct a missing trailing newline in caselower.h (this may be a problem patching since 'diff' does not like that) - TD * fix off-by-one alignment download options (reported by LV) - IC * use HTSprintf/HTSprintf0 in UCAuto.c - TD * remove stop/start curses calls around UCChangeTerminalCodepage() in GridText.c, since they are not necessary, and are a little distracting when running Lynx in xterm - TD * correct handling in getfile() of ~/ expansion - KW * modify NSL_FORK logic to prevent child process from running any signal handlers the parent may have installed - KW * the logic added to display_page for avoiding unnecessary screen redraw with partial display (see 1998-12-03) is now disabled if enable_scrollback is set. Otherwise displayed pages could appear as empty (or with only the current link drawn) - KW * modify conditions under which screen style cache is reset (only relevant for color style in combination with partial display) - KW * update the INSTALLATION file, reflecting the changes between the two DJGPP versions of GCC in use. Also, change optimization to -O2 in the other two DOS makefiles - DK * add support for ISO 8859-15, i.e., "Latin 9", make corrections to DEC Multinational character translations (patch by (Christian Weisgerber ) * modify po/makefile.inn to use mkdirs.sh rather than mkinstalldirs script (reported by LV) - TD * modify print_help_and_exit() to print values for the simple options, i.e., toggle, integer and string, as part of "lynx -help" (request by mattack@area.com) - TD * correct sense shown for Old_DTD variable in LYOptions.c (reported by DK). * correct order of params for non-Unix use of HTAddParam in LYBookmark.c (reported by DK) 1998-12-31 * delete unused 'PREVAIL' color-style code from HTML.c, merge a couple of sections of logic with TrimColorClass, and change Style_className to a dynamically-allocated string - TD * modify fmt_tempname() to check for buffer overflow - TD * check/modify for potential buffer overflows: HTAlert.c, LYBookMark.c, LYKeymap.c, LYPrint.c (including splitting it up into functions) - TD * change GetOptValues to return status separately from the decoded value, in case the options form is damaged (suggested by LP) - TD * add new function HTAddXpand to use in special case where Lynx is building shell command using data from user's configuration, which should not be quoted. Use this in LYEdit.c to allow $EDITOR to be given as the editor name (request by PG) - TD * add new function LYOpenTraceLog, to combine logic in LYMain.c and LYMainLoop.c, including Lynx's version message - TD * fix some discrepancies between the code and the documentation (help files), for the alternate line edit keybindings, that were first included in the distribution somewhere around -dev.3, or so - KED * added a delete-to-beginning-of-line (for the alt bindings only), and a help page that describes the alternate bindings - KED * improved description of "HTML error tolerance" - KW * changes for handling lynxcgi: handle failure of execve(), by showing the system error and then _exit()ing the child process. Make sure REQUEST_METHOD is always set. Added checks for EINTR and other errors from read() - KW * DOSPATH or EMX: remove strange code dealing with root of local drive from is_url() and HTDOS_name()/HTDOS_wwwname(), add right code at the earlier stage in LYFillLocalFileURL() - LP (thanks KW) * relax warning from HTAlert to HTUserMsg on REFRESH_URL_NOT_ABSOLUTE - LP * more tweaks on transfer rate calculation - LP * modify HTSACopy and HTSACat in case the source and destination are the same pointer - TD * tested/removed redundant OS/2 EMX adjustment to filename from LYEdit.c - TD * optimized LYEdit.c by moving calls on HTSYS_name(filename) to a single place near the top - LP * forms-based options menu: prevent spoofing attempts from possible overruns (e.g., user can doing 'e'dit in 'o'ptions and get core dump if display_char_set gets an illegal number such as 50, or hang the keyboard with illegal Line edit style) - LP * forms-based options menu: add new logical section - Document Layout, currently with "HTML error tolerance" (TagSoup/SortaSGML), "Pop-up for select fields", "Show images" (no_alt/labels/links) and "Verbose images". New switches added for information purposes mostly, they duplicate hot keys but not so hidden from user's view. Documentation updated also. (Oh yes, "Line edit style" option is now available when we have a real choice >1) - LP * split cfg_defs.sh into two script based on revised script from PG - TD * minor fixes for top-level makefile.in - PG * fixes for makefiles with gcc 2.8.1 using DJGPP 2.02 (do not use "-c -o" combination, strip trailing blanks from makefile.sla, change optimization level to -O2) - DK * rename New_DTD variable to Old_DTD, change logic for -tagsoup option to be consistent with sense in lynx.cfg (reported by LP) 1998-12-26 (2.8.2dev.12) * use HTSprintf0 in LYCgi.c - TD * add tab-completion on URL's, by using previously-entered strings for matching (patch by Kari Davidsson ) - TD * add version number to trace log (patch by IC) * modify HTDOS_name to be consistent with HTVMS_name, which does not modify its parameter (reported by LP). Also, modify HTDOS_name and HTDOS_wwwName so they allocate space for the result rather than using a static buffer - TD * modify LYEdit.c to use HTAddParam - TD * make HREF/NAME for "Environment" consistent in Lynx_users_guide.html (reported by LP) * correct DOS/EMX logic in LYEdit.c which incremented 'filename' pointer when its length was greater than 1 rather than recopying the string, causing a core dump when 'filename' was freed (reported by LP, this applies to 2.8.1rel.2) - TD * correct sense of 'already_exists()' function from dev.11, which caused various file-menu operations to stop working (reported by IC) - TD 1998-12-24 (2.8.2dev.11) * use HTSprintf/HTSprintf0 in about half of the WWW library files where applicable: HTAABrow.c HTAAServ.c HTAAUtil.c HTAccess.c HTAnchor.c HTDOS.c HTFTP.c HTFWriter.c HTFile.c HTFinger.c HTFormat.c HTGopher.c - TD * eliminate most duplicate gettext parameters, reduced the number of files listed in po/POTFILES.in to a size that may allow build with the Solaris xgettext utility - TD * correct rule for remaking po/makefile - TD * workaround for HPUX sed program, providing '$' anchors for ".*" expressions, which is redundant, but should be harmless (suggested by Jean-Yves Levesque ) * add new help file, keystrokes/environments.html - LP * fix HTReadProgress(): more accurate transfer rate calculation - LP * update slang makefile.dos, and corresponding INSTALLATION notes - DK * correct my integration of IZ's LY_CHANGE_LINK code, which resulted in an out-of-bounds index into revmap (reported by LP, LV) - TD * add note about sendmail for Win32 to lynx.cfg - JS * add note for successful build on NeXT to INSTALLATION (Christian Jensen ) * add checks for null return from malloc to HTInit.c, LYMainLoop.c, LYUtils.c, (patch by John Bley ) * remove reference to 'persistent_cookies' in LYCookie.c which prevented compile when persistent cookies configure option was disabled (report by PG) - KW * move assignment to SHELL back from WWW/Library/makefile.in to CommonMakefile, and revert use of $CONFIG_SHELL in configure script, since this appears to stop auto-configure from finding working include feature of 'make' on CLIX (reported by Alex Matulich) - TD 1998-12-16 (2.8.2dev.10) * FROM_FILE is not used any more for a domain (although it is currently still defined. Renamed COOKIE_FLAG_PERSISTENT to COOKIE_FLAG_FROM_FILE. Don't change a domain's "behavior" (ACCEPT_ALWAYS, REJECT_ALWAYS, or QUERY_USER) just because there was a persistent cookie for it. Users who want to always accept cookies from a domain without prompting should use COOKIE_ACCEPT_DOMAINS - KW * FREE domain_entry objects when they are not used any more. Other minor leak removed - KW * some (few) changes for draft-ietf-http-state-man-mec-10.txt. Don't accept invalid port lists (this may need more tweaking). Added some comments - KW * try to preserve cookies (within a domain) in the same order in which they were received, although this is probably not necessary after all. There is no difference any more w.r.t. insertion into the list between cookies from the file and cookies from response headers - KW * use <= instead of < comparison when checking whether a cookie has expired -KW * don't write expired cookies, cookies with discard attribute, or cookies without expiration date to persistent file - KW * don't call HTConfirmCookie for cookies read from file. This doesn't change the logic since previously HTConfirmCookie allowed all file cookies anyway - KW * don't delete the domain_list if it becomes empty. Doing this could result in unnecessary multiple atexit()'s - KW * write the cookie file even if we now have no cookies, if we have previously read cookies from the file. The file should be updated if all cookies that were in it are expired or superseded or deleted - KW * when reading file cookies, set attributes in a way that (hopefully) makes more sense than just ignoring them. See comments in LYLoadCookies. We are restricted a lot by the choice of a Netscape-compatible cookie file format, some version 1 properties just cannot be stored in it AFAIK. Some more tweaking in LYLoadCookies - KW * setting a domains behavior to accept "A)lways" didn't actually work, it had the same effect as "P)rompt". Corrected this simple (probably cut-and-paste) error - KW * some changes in what is displayed on Cookie Jar page: FROM_FILE is a property of individual cookies, not of domains as previously. Cookies from file (which haven't been updated) are shown as "(from a previous session)". Show expiration time ("Max. Gobble Date") whenever we have one. The state of the "discard" attribute is already displayed separately - KW * made color styles code work much better with TagSoup parsing mode. A new flag bit is set for some tags in HTMLDTD which indicates that, even though they may be otherwise handled as SGML_EMPTY, this emptiness is fake. This can only work reasonably for elements that require an end tag (not for LI, for example) - KW * added SUMMARY attribute for TABLE element to HTMLDTD (but we don't do anything with it) - KW * split_line: Try to account for changes in anchor position and extent in all possible cases. This improves some cases where the selectable text could become too short and, in extreme cases, a link could become erroneously "hidden" - KW * split_line: color style changes after the split position are moved to the correct position in the new line - KW * set TextAnchor's line_num in HText_beginInput, so that split_line can adjust the input field's position properly if a split moves it to the next line. Should solve problem reported for www.lycos.com - KW * don't refuse to read from file-descriptor 0 in HTDoRead for Unix if it is not a tty. The socket fd from HTDoConnect can be 0 if fd 0 was not open when lynx was started non-interactively - KW * increase INIT_LINE_SIZE in HTTP.c slightly from 1024 to 1536, so that for a typical ethernet MTU the first packet of a response can more often be read in with a single read() - KW * add a missing FREE() in HTTP.c - KW * use case mapping from ftp.unicode.org /Public/UNIDATA for case-insensitive user search (thanks "Kari E. Hurtta" ), new file src/chrtrans/caselower.h added. This is used instead of UPPER8 assumption introduced in 2.8 release (see 1998-02-27). There is no difference in speed though - LP * fix links in History/Visited Links page for documents with blank , also remove leading spaces from titles to make output a little better - LP * use djgpp's file, which contains default values for autoconf style definitions - LP * updated lynx.man, lynx.hlp for "SEE ALSO" sections - KED, JS * optimize the test commands specified in the mailcap file by remembering which tests have been run already. (patch by Marc Huber ) * add lint rule to makefile.in, as well as corresponding rule in WWW/... - LV * update version in makefile.in to 2-8-2 - PG * fix makefiles to build with DJGPP (problem introduced in dev8) - LP * use new symbol KEYMAP_SIZE to get rid of various constants relating to the size of keymap[] array, e.g, 0x293, 659 - TD * add new mouse and keymap functionality to lynx: a) If one clicks mouse *near* a link, the "point/focus" is moved to this link (without actual activation); b) One can bind keys with ordinals larger than DO_NOTHING; c) Primitive context sensitive menu added to the middle button of a mouse (currently ncurses only); Current micro-problem with "c" is that I do not know how to refresh a screen before triggering the action, so if the action chosen from the menu would not redraw the screen, the menu outline is left on the screen - IZ * modify LYKeymap.c so that it can show internal keymaps above 0400 as hexadecimal codes even if they do not appear in the function-key table - IZ * add HTOptParam to avoid spurious quoting of blanks in rlogin URLs by HTAddParam - TD * correct missing assignment in remote_session(), from dev.9 changes for HTAddParam, which broke telnet/rlogin URLs (reported by IC) - TD 1998-12-12 (2.8.2dev.9) * change location-not-absolute message from an alert to user-message - TD * check for EINTR from read() call in HTDoRead, and retry if necessary. This change only for Unix. Interrupted read() system calls should be rare (or impossible, depending on the system implementation?) since the read() is only done after a successful select(), but checking can't hurt - KW * check for read read() errors in HTDoRead and HTCopy, and generate alert messages for unexpected errors. HTCopy still returns HT_LOADED to indicate success if any data have been received before an unexpected error or disconnection. Previously this happened without any indication to the user that something was wrong and a document or file might be incomplete. These changes currently only for Unix - KW * added/enhanced comments in HTFormat.c to document current behavior of HTCopy, HTFileCopy, HTGzFileCopy, HTParseSocket, HTParseFile, and HTParseGzFile - KW * moved definition of HT_NO_DATA to HTUtils.h, changed value of some status codes to libwww5-like values while we're at it - KW * correct uninitialized de variable in LYCookie.c when dump_output_immediately is set. Also, made a slight change to this mode in LYMain.c, so that cookies received will also be written to the cookie file; cleanup() is not called in -dump mode (reported by Elwin Oost) - BJP * correct include-path for chrtrans makefile to allow builds outside the source tree (Masashi Fujita) * minor cleanup of LYCookie.c, add some traces - BJP * add support for content encoding for x-bzip2, bzip2 for suffix "bz2" - HN * add po directory to install-bin and uninstall rules - TD * modify the environment variable logic to avoid freeing string given to putenv until after giving it a new string - TD * add several environment variables to LYPrint.c - KED * add ENVIRONMENT section to lynx.man and lynx.hlp - KED * add installation note about --enable-gzip-help - KED * update installation notes for WAIS - DK * add/use new functions for building up command-string for shell commands, which quote parameters as needed: HTAddParam(), HTEndParam(). Moved the logic in quote_pathname to HTQuoteParameter, extending that function to quote the parameter only if it contains characters which are problems with various shells (e.g., wildcards), and to escape backslashes. In particular, use these functions to ensure that the user and port strings in HTTelnet.c are quoted (fixes a hole reported by Art Mulder - TD * modify print-to-file logic to permit writing to pipe, provided that the user does not have no-shell restriction - TD * split-out logic for LYValidateFilename() from printfile() and LYDownload - TD * whitespace fixes - BJP * add configure option --with-nls-datadir, to allow installer to specify alternate locale data directory. A separate option from --datadir is required because the GNU gettext code is usually installed under $(prefix)/share rather $(prefix)/lib - TD * add configure check for gettimeofday, to implement 0.1 second interval for skipping HTCheckForInterrupt() - TD * modify configure script to generate references to $CONFIG_SHELL rather than /bin/sh, to allow some testing with alternate shells. Autoconf uses this variable for a similar purpose - TD * correct missing case for 'o', octal in StrAllocVsprintf (reported by IC) - TD * fix -restrictions=bookmark check in forms-based options menu (reported by KW & Rodiger Geys) - LP * fix memory leaks in LYPrint.c and UCdomap.c - KW * when printing HEAD to email use URL in the subject, was title. (it was especially annoying when we have 8bit title being sent as 7bit: no charset information is supplied for letters with 7bit message body) - LP * remove "temp fix for HText_trimHightext side effect from partial mode by introducing a flag in HText_beginInput()" from 1998-09-12 since it is now not needed after KW's changes in HText_trimHightext. - LP 1998-12-03 (2.8.2dev.8) * use HTSprintf/HTSprintf0 in LYCookie.c, LYLocal.c - TD * correct logic in OpenHiddenFile, which did not check if a failure to open a file for append was due to the file's not existing and hence causing IsOurFile to return failure. This caused the -traversal option to fail (reported by Francis Irving , applies to 2.8.1rel.2) - TD * fixed line number removal code in HText_endAnchor in several places, it was modifying the wrong line which could lead to memory corruption - KW * tweaks in HText_startAnchor and HText_endAnchor for handling link numbers: don't swallow space after number if line was split, find link number on previous line even it it is at the very end, adjust line split position after number removal. Generate TRACE output in interesting cases - KW * prevent havoc (access to already freed memory etc.) caused by multiple recursive invocations of HTAnchor_delete on the same HTParentAnchor. This does not seem to actually happen normally during a session, but can occur when the HTAnchor structures are cleaned up while handling a terminating signal or outofmem condition - KW * reset the HTAnchor "underway" flag during final cleanup, so structures are not prevented from being freed. This also should only make a difference when handling a terminating signal or outofmem condition - KW * show sticky-bit in directory listings - LW * correct options-message on Print page - IC * update installation note about freewais library (reported by Chris Maden ) - TD * improvements to mouse code, ncurses-based, from IZ (Ilya Zakharevich) a) Mouse navigation inside text entry fields; b) Mouse navigation to a text entry field (including an empty one) c) Mouse navigation to a specific position of a text field (since I do not know which fields are text fields, I implemented "b" and "c" for F_TEXTAREA_TYPE and F_TEXT_TYPE only, search for these symbols in the patch); d) Mouse navigation in menus: To scroll, one can click on top/bottom border (single=byline, double=bypage, triple=beg/end), or above/below menu (single=bypage, double=beg/end)) mouse-3 ==> quit; e) Double-click-1 on the first and last row are interpreted as goto- start/end/main-window (depending on the location of the click). Other Changes: a) Ask ncurses for all mouse events, but increase mouseinterval() to simulate current behavior (which is effectively an infinite mouseinterval() + masking of repeated clicks); b) Earlier clicking to the left of a link would activate the link. I see no use for this, so consider this a bug. * HText_trimHightext (GridText.c): don't apply final adjustment repeatedly to an anchor that has already been handled by this function; the function may be called repeatedly if partial display is enabled. Some other changes in this function, to interact better with the other GridText.c functions, especially for partial display mode. We don't have to handle all anchors if the new parameter "final" is not set. Also empty anchors should now generally not any more move down over empty lines, if they happen at a line end. Made some trace messages give more information - KW * color styles: reset screen style cache to avoid random coloring when a link is unhighlighted - KW * tweak in HText_setLastOptionValue: if an OPTION tag was directly followed by several newlines, characters could be dropped - KW * tweak havevisible() function in LYBookmark.c to compare against Unicode value rather than ASCII when checking for blanks. - LP * ifdef user/group function caching calls so that this builds with djgpp, which doesn't need/support this (patch by Gisle Vanem) * documentation updates for NLS - HN * separate some html from gettext in LYCgi.c, LYHistory.c, LYLocal.c - JS * avoid setting recent_sizechange during the very first start_curses call for ncurses. This would result in an unnecessary refresh after loading the first document - KW * added logic to display_page to avoid repainting the full screen contents in a specific situation: if it has been called before (for the same lines in the same document) during partial display, and is now being called normally (not during partial display). If this applies, the normal line content is not redrawn, but the title line and form fields are still repainted, and updating of the links structures is always done. There are additional checks for recent_sizechange and a text->stale flag (which was already implemented but unused) to do the full redraw if that may be needed. This should avoid unnecessary screen 'blinking' with curses when partial display is used (which didn't seem to happen with slang) - KW * modify SGML.c to check for SGML_ELEMENT tag contents, fixing a case where an entity that appears within a TABLE but outside of any table row TR will be displayed by Lynx _without_ its entities being interpreted (analysis by Alan J Flavell , applies to 2.8.1rel.2) - KW * check that stdin is really a tty before trying to select from it in the NSL-FORK logic in HTParseInet(), file HTTCP.c (reported by Kim DeVaughn, for someone who was unable to run lynx -dump in a cron job, applies to 2.8.1rel.2) - TD, BL * updates for lynx_help_main.html (JS, IC). * change fopen for write in LYCookie.c to LYNewTxtFile so that the resulting file will be readable by only the owner (Bill Nottingham suggested using umask, but that may not be portable enough) - TD * use CONST in some places in UCdomap.c and makeuctb, to make more tables sharable (suggested by LP) - TD * fixes for SunOS K&R compiler with/without unproto wrapper, i.e., definition of 'const' - TD 1998-11-23 (2.8.2dev.7) * convert KEY_ENTER to newline in LYgetch() to make Lynx work with IRIX's iris-ansi terminfo description, which equates the kent capability with carriage return. Doing this will allow lynx to use the keypad "enter" key as an alias for carriage return on most terminals - KW * correct a few missing ifdef's for disabling the partial-display logic - TD * add/use new functions HTAA_UidToName(), HTAA_NameToUid(), HTAA_GidToName() and HTAA_NameToGid() to hide details of code which uses pwd.h and grp.h, as well as to cache the returned user/group names, improving performance in the dired screen - TD * modify HTCheckForInterrupt() to check for interrupt no more than one per second, since this check is comparatively slow - TD * modify ANSI_VARARGS case for HTSprintf() and HTSprintf0() to always use ANSI prototypes, since __STDC__ may not necessarily be defined on some systems, resulting in an inconsistent definition - PG * add install-full rule to makefile.in - LV * modify PutDefs macro in LYShowInfo.c to check for nonnull table[N].value, which may be null due to limitations of cfg_defs.sh script on some platforms where an empty string was intended (reported by LV, PG, applies to 2.8.1rel.2) - TD * correct typo in 'make distclean' rule; an extra '-' prevented removal of .orig and .rej files (patch by LV). 1998-11-21 (2.8.2dev.6) * add call on dbug_init to LYMain.c, allowing use of the debugging code built into the WATTCP code which is included in the DJGPP port of lynx. This is activated by placing lines in the WATTCP.CFG file for: DEBUG.MODE= (choices are HEADERS, DUMP, or ALL) DEBUG.PROTO= (choices are TCP, UDP, or ALL) DEBUG.FILE= (name of log file. Defaults to WATTCP.DBG) This adds about 2K to the size of the stripped, compressed executable. You get a log of the headers and/or a binary dump of the packets sent and received. Maybe this will help in determining where ftp is failing in this port - DK * correct definitions for ANSI_VARARGS, HAVE_STDARG_H in HTUtils.h (reported by LP, for djgpp) - TD * correct logic in StrAllocVsprintf(), remove spurious test on dst_len (analysis by LV) - TD 1998-11-21 (2.8.2dev.5) * modify HTLoadFile() to make compressed files work with OS/2 EMX and LYSystem() to convert forward slashes in pathnames to backslashes, also for EMX (patches by Ilya Zakharevich). * documentation nits (apostrophes) in lynx.cfg and userdefs.h - LV * fix inconsistent newlines in po/it.po (report by Irving_Wolfe@Wolfe.net) - TD * modify config.guess, added Intergraph 2430 CLIX machines (reported by Alex Matulich ) - TD * minor fix in LYCharSets.c according to recent changes in UCDefs.h introduced by IBM OS/2 codepage number - LP * modify configure script to work with --enable-nls built into a subdirectory of the source tree (reported by PG) - TD * disable regeneration of intl/po2tbl.sed and po/POTFILES if --disable-nls configure option is specified - TD * add configure test for stdarg.h vs varargs.h - TD * fixes to work with SunOS K&R compiler - TD * don't trim trailing and leading spaces from unformatted text lines in some cases (split_line in GridText.c). Prevents corruption of some uuencoded files when they are displayed and then 'P'rinted (although 'D'ownload should be used instead) - KW * some changes in HText_appendCharacter (GridText.c). Splitting of long SOURCE lines now works with color styles - KW * workaround for multiple anchors in the same (invalid) HTML document with the same NAME and different destinations (HTAnchor.c) - KW * check for 'z'ap while constructing local directory listings (non-VMS only, in HTFile.c) - KW * added a couple outofmem checks (HTAnchor.c). Minor TRACE message change in GridText.c for -tlog / USE_TRACE_LOG disabled - KW * when adding bookmark entries, don't accept a title string which appears to consist only of blank characters (LYBookmark.c). When rendering a bookmark file, use hiddenlinks=merge counting, so that numbers after entries with empty titles don't get out of whack (GridText.c). This should prevent 'R' from removing the wrong bookmark entry - KW * prevent generation of some unnecessary temp files when constructing mailcap file test commands (HTInit.c) - KW * include LYLeaks.h in UCdomap.c for memory leak detection - KW * fixed various memory leaks (UCdomap.c, LYShowInfo.c, LYReadCFG.c, LYMain.c, LYDownload.c, LYBookmark.c, HTML.c, DefaultStyle.c) - KW * escape '&' and '<' in HTML generated to display current lynx.cfg option values (LYReadCFG.c) - KW * revert logic in split_line. Emphasis highlighting that should extend over several lines was being lost at line breaks (GridText.c). (IsSpecialAttrChar probably shouldn't return true for LY_SOFT_NEWLINE since in most places it tests whether to skip a character position, but as long as this special char is only used in SOURCE mode it cannot mess up any anchor positions so it should be ok. - KW * correct character counting in SOURCE display continuation lines. A highlighted search target would be shown shifted left by one character position because the LY_SOFT_NEWLINE special was displayed as '+' but not counted (GridText.c) - KW * prevent generation of invalid/unparseable comments if UCSaveBookmarksInUnicode is in effect, other minor changes in LYBookmark.c - KW * correction for color styles in HText_appendCharacter (GridText.c). At some point a memmove was replaced by a for loop, but source and destination were reversed and the counter was wrong - KW * modify HTSprintf/HTSprintf0 to use a more generic approach to varargs by using only va_alist in the parameter list - TD * correct html expression in LYShowInfo.c of dev.3 which did not allow the temp file with the lynx.cfg settings to be accessed from the Configuration Definitions page (patch by IC - Ismael Cordeiro). * correct "Exiting" message format in cleanup_sig(), which had unexpanded %d (reported by BJP) - TD * add to config.hin the definitions set by AM_GNU_GETTEXT macro (PG pointed out that this also sets 'inline', needed for GNU gettext) - TD * modify MakeNewTitle() to check for null pointer, fixing core dump with verbose images when value[src_type] is null (reported by John Bley for 2.8.1rel.2) - TD 1998-11-18 (2.8.2dev.4) * change default for configure option of NLS (gettext) to disabled until we finish porting it to implementations other than GNU gettext. Also, change default for include-gettext configure option to "with" - TD * suppress cookie-storing if the value is null - BJP * ifdef'd alternative set of line-edit bindings with EXP_ALT_BINDINGS, add configure option --enable-alt-bindings, rename DELEOL to DELEL, remove binding of DELEL to '\'. - TD * add alternative set of line-edit bindings to change the behavior of the ^B and ^F line editor bindings to provide emacs/tcsh like behavior (cursor left/right), instead of "word" deletes. Corrected a bug in the ^R (LYE_DELN) function, which is described as "delete next character", but was in fact performing identically to ^D (LYE_DELC) "delete current character". Added a function called LYE_DELEL, which does the expected thing, and deletes from the current cursor position, to the EOL. New bindings: ^B = LYE_BACK cursor backwards ^F = LYE_FORW cursor forwards ^K = LYE_DELEOL delete to end-of-line ^T = LYE_DELNW delete next word ^X = LYE_DELPW delete previous word ^^ = LYE_UPPER upper case line (not active when kbd-layout binding is) ^_ = LYE_LOWER lower case line KED ((Kim DeVaughn )). * modify to show address to submit to on the statusline when in advanced user mode. Also fixes one small typo in LYMainLoop.c. (suggested by ) - BJP * modify HTParseInet() so that it works if stdin has been redirected to /dev/null, e.g., when running a cron job (reported by John H. DuBois III ) - BL * minor documentation updates to lynx.cfg (Larry Virden). * change some character constants from '\hex' and '\octal' form to decimal, to persuade compilers that upper-128 compares are legal - TD * ifdef'd KEYBOARD_LAYOUT with EXP_KEYBOARD_LAYOUT, add configure option --enable-kbd-layout - TD * implement EXP_CHARTRANS_AUTOSWITCH for OS/2 EMX (Sergey Svishchev). * add 'a' response when printing a file to allow append rather than overwrite (Sergey Svishchev). * add KEYBOARD_LAYOUT to lynx.cfg, to support character-translation on input, add missing line editing style selection to Options form. This is enabled and disabled by the line edit control/uparrow (Sergey Svishchev ). * use exit_immediately() to reduce some signal-function clutter - LP * correct dependency in src/makefile.in for cfg_defs.h (Masashi Fujita ) * change quoted includes in intl directory to bracketed includes - TD 1998-11-16 (2.8.2dev.3) * misc documentation updates for the gettext/internationalization - LP * rename po/makefile.in.in to po/makefile.inn, and modify distclean rule to remove the remaining generated files - TD * add preliminary changes from PG (pg@sweng.stortek.com) to support port to OS/390, some ifdef'd with __MVS__, some with EBCDIC and NOT_ASCII. * modify LYCookie.c to accept cookies with no value, in case the site resets a cookie by nulling out the value (reported by Larry Virden) - BJP * modify cookie parsing to ignore comment lines beginning with a '#' (reported by Jonathan Bobin indicates that Netscape adds comments back, confusing Lynx) - BJP * highlight option letters in old options screen (adapted from patch by Ismael Cordeiro) - TD * use HTSprintf functions in HText_SubmitForm(), user_message(), LYLoadIMGmap(), HTTelnet.c. (The HTTelnet.c modifications fix a security hole reported by Martin Mokrejs) - TD * add HTSprintf, HTSprintf0 functions, to use in resolving potential buffer overflows - TD * modify HTVMS_purge() to rename the remaining file to version 1 unless a permissions problem was encountered - TD 1998-11-10 (2.8.2dev.2) * some testing against Solaris gettext implementation, enough to see that it is not really compatible either source or binary with GNU gettext. For the time being, I recommend building NLS support only with GNU gettext (and --with-included-gettext to avoid conflict with Solaris' gettext in the standard library). Otherwise use the --disable-nls configure option - TD * various changes to configure script and makefiles to make this build with and without NLS - TD * undo spurious substitutions such as gettext("") - TD * modify some gettext() expressions to avoid embedding HTML in them - TD * restore definitions in LYMessages_en.h - TD * first cut of integrating Jim Spath's changes to incorporate message library support. 1998-09-20 * Files edited for language hooks: src/HTAlert.c src/HTInit.c src/HTML.c src/LYBookmark.c src/LYCgi.c src/LYClean.c src/LYCookie.c src/LYCurses.c src/LYDownload.c src/LYEdit.c src/LYForms.c src/LYGetFile.c src/LYMail.c src/LYMain.c src/LYMainLoop.c src/LYMap.c src/LYNews.c src/LYPrint.c src/LYUpload.c src/LYUtils.c src/LYexit.c WWW/Library/Implementation/HTAABrow.c WWW/Library/Implementation/HTAAProt.c WWW/Library/Implementation/HTAccess.c WWW/Library/Implementation/HTFTP.c WWW/Library/Implementation/HTFWriter.c WWW/Library/Implementation/HTFinger.c WWW/Library/Implementation/HTFormat.c WWW/Library/Implementation/HTGopher.c WWW/Library/Implementation/HTMIME.c WWW/Library/Implementation/HTNews.c WWW/Library/Implementation/HTRules.c WWW/Library/Implementation/HTStyle.c WWW/Library/Implementation/HTTCP.c WWW/Library/Implementation/HTTP.c WWW/Library/Implementation/HTVMSUtils.c WWW/Library/Implementation/HTWAIS.c WWW/Library/Implementation/HTWSRC.c 1998-09-08 (2.8.1dev25-intl) * Resynch with dev tree - JES 1998-09-07 (2.8.1dev.21-intl) * About half through language hooks in WWW/Lib... - JES Integrated part of Chebucto's French translations. - JES * Included latest ABOUT-NLS from GNU project, 1998-08-27 (2.8.1dev.21-intl) * Tested language hooks using src/LYNews.c and Italian messages file provided by Sabato De Rosa . Made changes to LYMain.c, LYMainLoop.c, LYNews.c and HTNews.c. - JES 1998-08-27 (2.8.1dev.21-intl) * add hooks to GNU gettext for international language support - JES (This is an experimental modification that will be patched into the main Lynx release after other platform testing. I've only done NetBSD.) 1998-11-05 (2.8.2dev.1) * relax the cookie sanity checking for version 0 (old) cookies _only when_ the user has accept_all_cookies set (patch by Risto Widenius ) * modify get_listen_socket() to check if master_socket is set before attempting to use it in FD_CLR (patch by Karl-Andre Skevik ) * minor documentation fixes - DK * use $(LIBS) symbol in src/chrtrans/makefile.in (reported