about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorThomas E. Dickey <dickey@invisible-island.net>1999-11-18 04:13:09 -0500
committerThomas E. Dickey <dickey@invisible-island.net>1999-11-18 04:13:09 -0500
commit45f1aadc261561566cd074da1d9b0fb21a6ad78c (patch)
treeb1d2c414300b50815acb7b986077556e5dda712d
parent0f88481e93b50612489cc8e5b1ca365196439373 (diff)
downloadlynx-snapshots-45f1aadc261561566cd074da1d9b0fb21a6ad78c.tar.gz
snapshot of project "lynx", label v2-8-3dev_15
-rw-r--r--CHANGES72
-rw-r--r--INSTALLATION5
-rw-r--r--LYMessages_en.h8
-rw-r--r--WWW/Library/Implementation/HTDOS.c4
-rw-r--r--WWW/Library/Implementation/HTDOS.h2
-rw-r--r--WWW/Library/Implementation/HTFormat.c2
-rw-r--r--WWW/Library/Implementation/HTTP.c3
-rw-r--r--WWW/Library/Implementation/HTUtils.h6
-rw-r--r--WWW/Library/Implementation/HTVMSUtils.c4
-rw-r--r--WWW/Library/Implementation/HTVMSUtils.h2
-rw-r--r--WWW/Library/Implementation/HTWSRC.c2
-rwxr-xr-xcfg_defs.sh5
-rwxr-xr-xconfigure807
-rw-r--r--configure.in5
-rw-r--r--docs/README.defines3
-rw-r--r--lynx.cfg51
-rw-r--r--lynx_help/Lynx_users_guide.html60
-rw-r--r--lynx_help/keystrokes/bashlike_edit_help.html16
-rw-r--r--lynx_help/lynx_url_support.html31
-rw-r--r--makefile.in4
-rw-r--r--makelynx.bat470
-rw-r--r--src/GridText.c100
-rw-r--r--src/GridText.h4
-rw-r--r--src/HTForms.h3
-rw-r--r--src/LYBookmark.c4
-rw-r--r--src/LYCharUtils.c2
-rw-r--r--src/LYCurses.c20
-rw-r--r--src/LYEditmap.c209
-rw-r--r--src/LYForms.c38
-rw-r--r--src/LYGetFile.c27
-rw-r--r--src/LYGlobalDefs.h8
-rw-r--r--src/LYHistory.c253
-rw-r--r--src/LYKeymap.c153
-rw-r--r--src/LYKeymap.h3
-rw-r--r--src/LYMain.c9
-rw-r--r--src/LYMainLoop.c296
-rw-r--r--src/LYMainLoop.h11
-rw-r--r--src/LYOptions.c22
-rw-r--r--src/LYReadCFG.c13
-rw-r--r--src/LYSearch.c58
-rw-r--r--src/LYStrings.c6
-rw-r--r--src/LYStrings.h2
-rw-r--r--src/LYStructs.h13
-rw-r--r--src/LYUtils.c67
-rw-r--r--src/LYUtils.h2
-rw-r--r--src/TRSTable.c3
-rw-r--r--src/makefile.dos56
-rw-r--r--src/makefile.dsl52
-rw-r--r--userdefs.h36
49 files changed, 2000 insertions, 1032 deletions
diff --git a/CHANGES b/CHANGES
index e5a70f1a..031e156c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,62 @@
 Changes since Lynx 2.8 release
 ===============================================================================
 
+1999-11-17 (2.8.3dev.15)
+* add popup in options menu to control alternate organizations of the
+  visited links page (Ilya Zakharevich)
+* reformatted src/makefile.dos and src/makefile.dsl to make them simpler to
+  modify -TD
+* add -DOK_OVERRIDE to DIRED_DEFS for djgpp -LP
+* change the samples in "URL Schemes Supported in Lynx" so they would appear
+  without //user:passw@ but //user@ with the explanation of yet another
+  possibility added in words...  So user will not get a wrong impression if
+  reading that document not so carefully (you know, samples are so easy
+  remembered without details), -KW, LP
+* ifdef bkgd() call in force_repaint that accommodated pre-ncurses 4.1 bugfix,
+  from early 1997.  With current code, a ^L when a popup is displayed causes
+  the screen colors to be reset (reported by KW) -TD
+* undo recent no_color_video check for A_BOLD, A_UNDERLINE since this did not
+  have the intended effect (reported by KW) -TD
+* add note to lynx_url_support.html about lynxcgi -PW
+* reorganize the code:  'search_target' now became global, so display_page()
+  and highlight() could be called from any place easily.  This was a mainloop
+  local variable (name changed from 'prev_target' to avoid conflict elsewhere),
+  the value currently changed in mainloop(), handle_LYK_WHEREIS() and
+  textsearch() -LP
+* add user search in partial mode (while loading of the document is in
+  progress).  Scrolling to the string in question is not working properly yet
+  if you repeat 'n' next time.  More work required -LP
+* improved makelynx.bat (<vtailor@gte.net>)
+* fixed bug that corrupted memory (resulting in crashes) in situations when
+  line ends with LY_SOFT_HYPHEN -VH
+* correct comment in userdefs.h regarding renaming of
+  LINKS_AND_FORM_FIELDS_ARE_NUMBERED to LINKS_AND_FIELDS_ARE_NUMBERED and
+  change DEFAULT_KEYPAD_MODE to LINKS_AND_FIELDS_ARE_NUMBERED -PW
+* fix bug that caused lss-enabled lynx to crash on growing textarea or inserting
+  file into it -VH
+* new lynx.cfg option REFERER_WITH_QUERY:[SEND|PARTIAL|DROP] -KW
+* don't send Referer if we have to load a document again that we got
+  from the history stack.  Lynx would send the URL of the current
+  document (the one "later" in history) which could only accidentally
+  be right -KW
+* changed default for PERSISTENT_COOKIES from TRUE to FALSE, since
+  persistent cookie support is now configured in by default -KW
+* new functions (key_for_func_ext) to return a "best" key (or key pair) to
+  invoke a given lynx  action, either in the Line Editor or in normal mode.
+  Currently only used for a couple of statusline messages (those that had ^V
+  hardcoded).  The statusline info while in a textarea now gives the right
+  key(s) for invoking external editing, or omits the info if appropriate
+  (no key bound, or no editor defined or allowed) -KW
+* doc updates for TEXTAREA special functions -KW
+* moved #defines for TEXTAREA_EXPAND_SIZE, AUTOGROW, AUTOEXTEDIT from
+  LYMainLoop.h to userdefs.h, the latter two renamed to TEXTAREA_AUTOGROW
+  and TEXTAREA_AUTOEXTEDIT, added description -KW
+* minor tweaks: -accept_all_cookies help string, some formatting changes,
+  minor text additions and corrections -KW
+* set $(PROG_EXT) variable in makefiles for cygwin -TD
+* define __CYGWIN__ if needed, e.g., for betas that define __CYGWIN32__ -TD
+* workaround cygwin b19.1 problem generating cfg_defs.h because it did not
+  properly export $PATH -TD
 1999-11-03 (2.8.3dev.14)
 * modify no_color_video check for A_UNDERLINE so it is active for any
   combination that uses underlining (reported by KW) -TD
@@ -69,7 +125,7 @@ Changes since Lynx 2.8 release
   the first letters of the translation of "yes" and "no" in a localized lynx,
   the latter will still be the ones that appear in the prompt text and will
   have precedence.  Message translations using multibyte character sets should
-  continue to *not* translate "yes" and "no".  Added a note to that effect. 
+  continue to *not* translate "yes" and "no".  Added a note to that effect.
 * small update for some chartrans tables, minor comment changes.
 * for Unix, use LYSystem instead of system for invoking telnet, rlogin,
   rtn3270 commands.
@@ -113,15 +169,15 @@ Changes since Lynx 2.8 release
   access.
 * The previous changes in link redrawing made things worse instead of better
   for UTF-8 display with ncurses (without color style).  This time (using
-  wredrawln, not touchline) it should really get better... 
+  wredrawln, not touchline) it should really get better...
   [ The UTF-8 related changes would need testing with non-ncurses curses libs,
     if anyone has one of those AND a working UTF-8 environment - late xterm
     betas(?) from Tom's site should do.  If the functions used for ncurses are
     available in other curses libs, the code should probably look the same as
     for ncurses.  ]
 * SGML.c to compile without --enable-prettysrc (reported by HN) -KW
-* fixes an invalid memory problem from previous patch 
-* adds alignment inheritance from COLGROUP / COL / THEAD / TFOOT / TBODY. 
+* fixes an invalid memory problem from previous patch
+* adds alignment inheritance from COLGROUP / COL / THEAD / TFOOT / TBODY.
 * remove some logic from LYmbcsstrlen() that gave an incorrect count for
   the number of cells displaying multibyte characters, resulting in too-few
   cells being highlighted (reported by HN, HS) -KW
@@ -226,7 +282,7 @@ Changes since Lynx 2.8 release
 * added a missing significant cast in UCReverseTransChar.
 * for scrollbar mouse clicking, use codes that work independent of current
   line-editor key bindings.
-* better calculation of "subjective distance" from next anchor for mouse. 
+* better calculation of "subjective distance" from next anchor for mouse.
   Change of 1999-07-30 had various problems, it wasn't quite intuitive.  Use
   scaled numbers for finer granularity.  Don't make "basin of attraction" too
   wide, or it becomes hard to find a "background" spot to click on that doesn't
@@ -244,7 +300,7 @@ Changes since Lynx 2.8 release
   argument 'count_gcells' that tells them how to count.
   This removes some long-standing, somewhat obscure problems with search target
   highlighting under CJK display character sets, as well as new (and less
-  obscure) CJK problems introduces by the latest changes for highlighting. 
+  obscure) CJK problems introduces by the latest changes for highlighting.
   Also fixed some details in the *strstr functions.  The positioning of the
   highlighting in CJK mode should now be correct and work as expected (as for
   other display character sets) for anchors, search targets, and combinations
@@ -556,9 +612,9 @@ Changes since Lynx 2.8 release
   the password with "******" (Gisle Vanem <giva@bryggen.bgnett.no>).
 * fix mismatch of const's from call of map_string_to_keysym() in
   lkcstring_to_lkc() -TD
-* Supply trailing slash for protocol_proxy settings (whether environment
+* supply trailing slash for protocol_proxy settings (whether environment
   variables or lynx.cfg) in HTAccess.c if the slash was omitted and if the
-  content otherwise looks normal (starts with http, no su) -KW
+  content otherwise looks normal (starts with http, no superfluous slashes) -KW
 * add links for "Free WWW E-mail services" to online help -PW
 * add links in online help to FAQ-o-matic -JS
 * more fixes to build with slang under cygwin32 - DK
diff --git a/INSTALLATION b/INSTALLATION
index a33c61b2..6ee711d6 100644
--- a/INSTALLATION
+++ b/INSTALLATION
@@ -316,7 +316,10 @@ II. Compile instructions -- UNIX
 	(Also defines USE_HASH, LINKEDSTYLES)
 
   --enable-debug			(The symbol DEBUG is always defined.)
-  	Use this option to compile-in support for debugging.
+        Use this option to compile-in support for debugging. 
+        Note that this flag is ignored if the CFLAGS environment 
+        variable is set, in that case "-g" (or whatever) has to 
+        be included in the CFLAGS value to get debugging. 
 
   --enable-default-colors		(define USE_DEFAULT_COLORS)
   	Enable use of default-color background (ncurses/slang).  Either
diff --git a/LYMessages_en.h b/LYMessages_en.h
index f2ff4939..e9edf3e8 100644
--- a/LYMessages_en.h
+++ b/LYMessages_en.h
@@ -60,11 +60,15 @@
 #define FORM_LINK_TEXT_MESSAGE \
  gettext("(Text entry field) Enter text.  Use UP or DOWN arrows or tab to move off.")
 #define FORM_LINK_TEXTAREA_MESSAGE \
- gettext("(Textarea) Enter text. Use UP/DOWN arrows or TAB to move off (^Ve for editor).")
+ gettext("(Textarea) Enter text. Use UP/DOWN arrows or TAB to move off.")
+#define FORM_LINK_TEXTAREA_MESSAGE_E \
+ gettext("(Textarea) Enter text. Use UP/DOWN arrows or TAB to move off (%s for editor).")
 #define FORM_LINK_TEXT_UNM_MSG \
  gettext("UNMODIFIABLE form text field.  Use UP or DOWN arrows or tab to move off.")
 #define FORM_LINK_TEXT_SUBMIT_MESSAGE \
- gettext("(Form field) Enter text.  Use <return> to submit (^Vx for no cache).")
+ gettext("(Form field) Enter text.  Use <return> to submit.")
+#define FORM_LINK_TEXT_SUBMIT_MESSAGE_X \
+ gettext("(Form field) Enter text.  Use <return> to submit (%s for no cache).")
 #define FORM_LINK_TEXT_RESUBMIT_MESSAGE \
  gettext("(Form field) Enter text.  Use <return> to submit, arrows or tab to move off.")
 #define FORM_LINK_TEXT_SUBMIT_UNM_MSG \
diff --git a/WWW/Library/Implementation/HTDOS.c b/WWW/Library/Implementation/HTDOS.c
index c90702d4..8ec1caf5 100644
--- a/WWW/Library/Implementation/HTDOS.c
+++ b/WWW/Library/Implementation/HTDOS.c
@@ -9,7 +9,7 @@
  * Make a copy of the source argument in the result, allowing some extra
  * space so we can append directly onto the result without reallocating.
  */
-PRIVATE char * copy_plus ARGS2(char **, result, char *, source)
+PRIVATE char * copy_plus ARGS2(char **, result, CONST char *, source)
 {
     int length = strlen(source);
     HTSprintf0(result, "%-*s", length+10, source);
@@ -26,7 +26,7 @@ PRIVATE char * copy_plus ARGS2(char **, result, char *, source)
 **	returns 	WWW file specification
 **
 */
-char * HTDOS_wwwName ARGS1(char *, dosname)
+char * HTDOS_wwwName ARGS1(CONST char *, dosname)
 {
     static char *wwwname = NULL;
     char *cp_url = copy_plus(&wwwname, dosname);
diff --git a/WWW/Library/Implementation/HTDOS.h b/WWW/Library/Implementation/HTDOS.h
index 4907f6ae..319a6358 100644
--- a/WWW/Library/Implementation/HTDOS.h
+++ b/WWW/Library/Implementation/HTDOS.h
@@ -16,7 +16,7 @@
 **	returns		WWW file specification
 **
 */
-char * HTDOS_wwwName PARAMS((char * dosname));
+char * HTDOS_wwwName PARAMS((CONST char * dosname));
 
 
 /* PUBLIC                                                       HTDOS_name()
diff --git a/WWW/Library/Implementation/HTFormat.c b/WWW/Library/Implementation/HTFormat.c
index 868d5d51..e71b12f4 100644
--- a/WWW/Library/Implementation/HTFormat.c
+++ b/WWW/Library/Implementation/HTFormat.c
@@ -541,7 +541,7 @@ PUBLIC void HTDisplayPartial NOARGS
 		 */
 	) {
 	    NumOfLines_partial = HText_getNumOfLines();
-	    HText_pageDisplay(Newline_partial, "");
+	    HText_pageDisplay(Newline_partial);
 	}
     }
 #else /* nothing */
diff --git a/WWW/Library/Implementation/HTTP.c b/WWW/Library/Implementation/HTTP.c
index 193cf4bd..3e39dee7 100644
--- a/WWW/Library/Implementation/HTTP.c
+++ b/WWW/Library/Implementation/HTTP.c
@@ -558,7 +558,8 @@ try_again:
       if (!(LYUserSpecifiedURL ||
 	    LYNoRefererHeader || LYNoRefererForThis) &&
 	  strcmp(HTLoadedDocumentURL(), "")) {
-	  char *cp = HTLoadedDocumentURL();
+	  char *cp = LYRequestReferer;
+	  if (!cp) cp = HTLoadedDocumentURL(); /* @@@ Try both? - kw */
 	  StrAllocCat(command, "Referer: ");
 	  if (!strncasecomp(cp, "LYNXIMGMAP:", 11)) {
 	      char *cp1 = strchr(cp, '#');
diff --git a/WWW/Library/Implementation/HTUtils.h b/WWW/Library/Implementation/HTUtils.h
index fa19ea51..38710d77 100644
--- a/WWW/Library/Implementation/HTUtils.h
+++ b/WWW/Library/Implementation/HTUtils.h
@@ -114,7 +114,11 @@
 #define ANSI_PREPRO 1
 #endif
 
-#if defined(__CYGWIN__)			/* 1998/12/31 (Thu) 16:13:46 */
+#if defined(__CYGWIN32__) && ! defined(__CYGWIN__)
+#define __CYGWIN__ 1
+#endif
+
+#if defined(__CYGWIN__)		/* 1998/12/31 (Thu) 16:13:46 */
 #include <windows.h>		/* #include "windef.h" */
 #define BOOLEAN_DEFINED
 #undef HAVE_POPEN		/* FIXME: does this not work, or is it missing */
diff --git a/WWW/Library/Implementation/HTVMSUtils.c b/WWW/Library/Implementation/HTVMSUtils.c
index 57eeb09b..cc367a66 100644
--- a/WWW/Library/Implementation/HTVMSUtils.c
+++ b/WWW/Library/Implementation/HTVMSUtils.c
@@ -243,9 +243,9 @@ char *colon;
 **
 */
 PUBLIC char * HTVMS_wwwName ARGS1(
-	char *, vmsname)
+	CONST char *,	vmsname)
 {
-static char wwwname[256];
+static char wwwname[LY_MAXPATH];
 char *src, *dst;
 int dir;
    dst = wwwname;
diff --git a/WWW/Library/Implementation/HTVMSUtils.h b/WWW/Library/Implementation/HTVMSUtils.h
index c5bcb666..9bcff503 100644
--- a/WWW/Library/Implementation/HTVMSUtils.h
+++ b/WWW/Library/Implementation/HTVMSUtils.h
@@ -87,7 +87,7 @@ PUBLIC BOOL HTVMS_checkAccess PARAMS((
 **	
 */
 PUBLIC char * HTVMS_wwwName PARAMS((
-	char * vmsname));
+	CONST char *	vmsname));
 
 /* PUBLIC							HTVMS_name()
 **		CONVERTS WWW name into a VMS name
diff --git a/WWW/Library/Implementation/HTWSRC.c b/WWW/Library/Implementation/HTWSRC.c
index 5dd7856a..7e1d899c 100644
--- a/WWW/Library/Implementation/HTWSRC.c
+++ b/WWW/Library/Implementation/HTWSRC.c
@@ -244,7 +244,7 @@ PRIVATE void WSRCParser_put_character ARGS2(HTStream*, me, char, c)
 PRIVATE BOOL write_cache ARGS1(HTStream *, me)
 {
     FILE * fp;
-    char cache_file_name[256];
+    char cache_file_name[LY_MAXPATH];
     char * www_database;
     if (!me->par_value[PAR_DATABASE_NAME]
 	|| !me->par_value[PAR_IP_NAME]
diff --git a/cfg_defs.sh b/cfg_defs.sh
index 4f8a0034..e134e90a 100755
--- a/cfg_defs.sh
+++ b/cfg_defs.sh
@@ -2,6 +2,7 @@
 # Translate the lynx_cfg.h and config.cache data into a table, useful for
 # display at runtime.
 
+TOP="${1-.}"
 OUT=cfg_defs.h
 
 cat >$OUT <<EOF
@@ -19,7 +20,7 @@ sed \
 	-e 's/^.[^=]*_cv_//' \
 	-e 's/=\${.*=/=/'  \
 	-e 's/}$//'          \
-	config.cache | cfg_edit.sh >>$OUT
+	config.cache | $TOP/cfg_edit.sh >>$OUT
 
 cat >>$OUT <<EOF
 };
@@ -35,7 +36,7 @@ sed	-e 's@	@ @g' \
 	-e 's@^[ 	]*#define[ 	]*@@' \
 	-e 's@[ ]*/\*.*\*/@@' \
 	-e 's@[ 	][ 	]*@=@' \
-    | cfg_edit.sh >>$OUT
+    | $TOP/cfg_edit.sh >>$OUT
 
 cat >>$OUT <<EOF
 };
diff --git a/configure b/configure
index 3093902e..9a432135 100755
--- a/configure
+++ b/configure
@@ -187,7 +187,7 @@ cat <<EOF
 Development Options:
   --disable-echo          display "compiling" commands
   --enable-find-leaks     logic for testing memory leaks
-  --enable-debug          logic for object code debugging
+  --enable-debug          compile w/ debugging (if \$CFLAGS is set, add -g there, too)
   --disable-trace         disable logic for trace code
   --enable-warnings       GCC compiler warnings
 Basic Configuration Options:
@@ -5305,6 +5305,9 @@ fi
 convex*)
 	CFLAGS="$CFLAGS -D__STDC__ -Dunix"
 	;;
+cygwin*)
+	PROG_EXT=".exe"
+	;;
 dgux*)
 	CFLAGS="$CFLAGS -DDGUX"
 	;;
@@ -5364,7 +5367,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:5368: checking for $ac_word" >&5
+echo "configure:5371: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5409,17 +5412,17 @@ sony-newsos*)
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5413: checking for $ac_hdr" >&5
+echo "configure:5416: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5418 "configure"
+#line 5421 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5423: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5426: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5463,17 +5466,17 @@ ultrix*)
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5467: checking for $ac_hdr" >&5
+echo "configure:5470: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5472 "configure"
+#line 5475 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5477: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5480: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5509,13 +5512,13 @@ esac
 
 
 echo $ac_n "checking if we must define _GNU_SOURCE""... $ac_c" 1>&6
-echo "configure:5513: checking if we must define _GNU_SOURCE" >&5
+echo "configure:5516: checking if we must define _GNU_SOURCE" >&5
 if eval "test \"`echo '$''{'cf_cv_gnu_source'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 5519 "configure"
+#line 5522 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -5525,7 +5528,7 @@ make an error
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:5529: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5532: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_gnu_source=no
 else
@@ -5535,7 +5538,7 @@ else
   cf_save="$CFLAGS"
 	 CFLAGS="$CFLAGS -D_GNU_SOURCE"
 	 cat > conftest.$ac_ext <<EOF
-#line 5539 "configure"
+#line 5542 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -5545,7 +5548,7 @@ make an error
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:5549: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_gnu_source=no
 else
@@ -5570,16 +5573,16 @@ if test -n "$TRY_CFLAGS" ; then
 	cf_save_CFLAGS="$CFLAGS"
 	CFLAGS="$CFLAGS $TRY_CFLAGS"
 	echo $ac_n "checking if we should use compile options $TRY_CFLAGS""... $ac_c" 1>&6
-echo "configure:5574: checking if we should use compile options $TRY_CFLAGS" >&5
+echo "configure:5577: checking if we should use compile options $TRY_CFLAGS" >&5
 	cat > conftest.$ac_ext <<EOF
-#line 5576 "configure"
+#line 5579 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 FILE *fp = stdin
 ; return 0; }
 EOF
-if { (eval echo configure:5583: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5586: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -5597,7 +5600,7 @@ fi
 ### Look for network libraries first, since some functions (such as gethostname)
 ### are used in a lot of places.
 echo $ac_n "checking if you want socks library""... $ac_c" 1>&6
-echo "configure:5601: checking if you want socks library" >&5
+echo "configure:5604: checking if you want socks library" >&5
 if eval "test \"`echo '$''{'cf_cv_use_libsocks'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5617,7 +5620,7 @@ fi
 echo "$ac_t""$cf_cv_use_libsocks" 1>&6
 
 echo $ac_n "checking if you want socks5 library""... $ac_c" 1>&6
-echo "configure:5621: checking if you want socks5 library" >&5
+echo "configure:5624: checking if you want socks5 library" >&5
 if eval "test \"`echo '$''{'cf_cv_use_libsocks5'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5683,7 +5686,7 @@ cat >> confdefs.h <<\EOF
 EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 5687 "configure"
+#line 5690 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -5692,7 +5695,7 @@ int main() {
 	accept((char *)0)
 ; return 0; }
 EOF
-if { (eval echo configure:5696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -5722,9 +5725,9 @@ cat >> confdefs.h <<\EOF
 EOF
 
 echo $ac_n "checking if the socks library uses socks4 prefix""... $ac_c" 1>&6
-echo "configure:5726: checking if the socks library uses socks4 prefix" >&5
+echo "configure:5729: checking if the socks library uses socks4 prefix" >&5
 cat > conftest.$ac_ext <<EOF
-#line 5728 "configure"
+#line 5731 "configure"
 #include "confdefs.h"
 
 #include <socks.h>
@@ -5733,7 +5736,7 @@ int main() {
 	Rinit((char *)0)
 ; return 0; }
 EOF
-if { (eval echo configure:5737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5740: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cat >> confdefs.h <<\EOF
 #define USE_SOCKS4_PREFIX 1
@@ -5745,14 +5748,14 @@ else
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 5749 "configure"
+#line 5752 "configure"
 #include "confdefs.h"
 #include <socks.h>
 int main() {
 SOCKSinit((char *)0)
 ; return 0; }
 EOF
-if { (eval echo configure:5756: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5759: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_use_socks4=no
 else
@@ -5821,7 +5824,7 @@ else
 	
 cf_test_netlibs=no
 echo $ac_n "checking for network libraries""... $ac_c" 1>&6
-echo "configure:5825: checking for network libraries" >&5
+echo "configure:5828: checking for network libraries" >&5
 if eval "test \"`echo '$''{'cf_cv_netlibs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5832,12 +5835,12 @@ cf_test_netlibs=yes
 for ac_func in gethostname
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5836: checking for $ac_func" >&5
+echo "configure:5839: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5841 "configure"
+#line 5844 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5860,7 +5863,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5867: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5883,7 +5886,7 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for gethostname in -lnsl""... $ac_c" 1>&6
-echo "configure:5887: checking for gethostname in -lnsl" >&5
+echo "configure:5890: checking for gethostname in -lnsl" >&5
 ac_lib_var=`echo nsl'_'gethostname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5891,7 +5894,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl $cf_cv_netlibs $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5895 "configure"
+#line 5898 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5902,7 +5905,7 @@ int main() {
 gethostname()
 ; return 0; }
 EOF
-if { (eval echo configure:5906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5935,7 +5938,7 @@ else
 	
 		
 echo $ac_n "checking for gethostname in -lsocket""... $ac_c" 1>&6
-echo "configure:5939: checking for gethostname in -lsocket" >&5
+echo "configure:5942: checking for gethostname in -lsocket" >&5
 ac_lib_var=`echo socket'_'gethostname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5943,7 +5946,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket $cf_cv_netlibs $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5947 "configure"
+#line 5950 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5954,7 +5957,7 @@ int main() {
 gethostname()
 ; return 0; }
 EOF
-if { (eval echo configure:5958: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5998,21 +6001,21 @@ done
 # FIXME:  sequent needs this library (i.e., -lsocket -linet -lnsl), but
 # I don't know the entrypoints - 97/7/22 TD
 echo $ac_n "checking for -linet""... $ac_c" 1>&6
-echo "configure:6002: checking for -linet" >&5
+echo "configure:6005: checking for -linet" >&5
 if eval "test \"`echo '$''{'ac_cv_lib_inet'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
 LIBS="-linet  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6009 "configure"
+#line 6012 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_lib_inet=yes
 else
@@ -6035,12 +6038,12 @@ if test "$ac_cv_func_lsocket" != no ; then
 for ac_func in socket
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6039: checking for $ac_func" >&5
+echo "configure:6042: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6044 "configure"
+#line 6047 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6063,7 +6066,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6086,7 +6089,7 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
-echo "configure:6090: checking for socket in -lsocket" >&5
+echo "configure:6093: checking for socket in -lsocket" >&5
 ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6094,7 +6097,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket $cf_cv_netlibs $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6098 "configure"
+#line 6101 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6105,7 +6108,7 @@ int main() {
 socket()
 ; return 0; }
 EOF
-if { (eval echo configure:6109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6138,7 +6141,7 @@ else
 	
 		
 echo $ac_n "checking for socket in -lbsd""... $ac_c" 1>&6
-echo "configure:6142: checking for socket in -lbsd" >&5
+echo "configure:6145: checking for socket in -lbsd" >&5
 ac_lib_var=`echo bsd'_'socket | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6146,7 +6149,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lbsd $cf_cv_netlibs $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6150 "configure"
+#line 6153 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6157,7 +6160,7 @@ int main() {
 socket()
 ; return 0; }
 EOF
-if { (eval echo configure:6161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6202,12 +6205,12 @@ fi
 for ac_func in gethostbyname
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6206: checking for $ac_func" >&5
+echo "configure:6209: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6211 "configure"
+#line 6214 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6230,7 +6233,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6253,7 +6256,7 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:6257: checking for gethostbyname in -lnsl" >&5
+echo "configure:6260: checking for gethostbyname in -lnsl" >&5
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6261,7 +6264,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl $cf_cv_netlibs $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6265 "configure"
+#line 6268 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6272,7 +6275,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:6276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6313,12 +6316,12 @@ done
 for ac_func in strcasecmp
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6317: checking for $ac_func" >&5
+echo "configure:6320: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6322 "configure"
+#line 6325 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6341,7 +6344,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6345: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6364,7 +6367,7 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for strcasecmp in -lresolv""... $ac_c" 1>&6
-echo "configure:6368: checking for strcasecmp in -lresolv" >&5
+echo "configure:6371: checking for strcasecmp in -lresolv" >&5
 ac_lib_var=`echo resolv'_'strcasecmp | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6372,7 +6375,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lresolv $cf_cv_netlibs $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6376 "configure"
+#line 6379 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6383,7 +6386,7 @@ int main() {
 strcasecmp()
 ; return 0; }
 EOF
-if { (eval echo configure:6387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6429,13 +6432,13 @@ test $cf_test_netlibs = no && echo "$cf_cv_netlibs" >&6
 fi
 
 echo $ac_n "checking for inet_aton function""... $ac_c" 1>&6
-echo "configure:6433: checking for inet_aton function" >&5
+echo "configure:6436: checking for inet_aton function" >&5
 if eval "test \"`echo '$''{'cf_cv_have_inet_aton'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 6439 "configure"
+#line 6442 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -6446,7 +6449,7 @@ int main() {
 inet_aton(0, (struct in_addr *)0)
 ; return 0; }
 EOF
-if { (eval echo configure:6450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6453: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_have_inet_aton=yes
 else
@@ -6466,13 +6469,13 @@ EOF
 
 else
     echo $ac_n "checking for inet_addr function""... $ac_c" 1>&6
-echo "configure:6470: checking for inet_addr function" >&5
+echo "configure:6473: checking for inet_addr function" >&5
 if eval "test \"`echo '$''{'cf_cv_have_inet_addr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
     cat > conftest.$ac_ext <<EOF
-#line 6476 "configure"
+#line 6479 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -6483,7 +6486,7 @@ int main() {
 inet_addr(0)
 ; return 0; }
 EOF
-if { (eval echo configure:6487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_have_inet_addr=yes
 else
@@ -6498,7 +6501,7 @@ fi
 echo "$ac_t""$cf_cv_have_inet_addr" 1>&6
     if test "$cf_cv_have_inet_addr" = no ; then
 	echo $ac_n "checking for library with inet_addr""... $ac_c" 1>&6
-echo "configure:6502: checking for library with inet_addr" >&5
+echo "configure:6505: checking for library with inet_addr" >&5
 if eval "test \"`echo '$''{'cf_cv_lib_inet_addr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6508,7 +6511,7 @@ else
 	    do
 		LIBS="$cf_save_LIBS $cf_inetlib"
 		cat > conftest.$ac_ext <<EOF
-#line 6512 "configure"
+#line 6515 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -6519,7 +6522,7 @@ int main() {
 inet_addr(0)
 ; return 0; }
 EOF
-if { (eval echo configure:6523: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_lib_inet_addr=$cf_inetlib
 else
@@ -6546,7 +6549,7 @@ fi
 
 
 echo $ac_n "checking for screen type""... $ac_c" 1>&6
-echo "configure:6550: checking for screen type" >&5
+echo "configure:6553: checking for screen type" >&5
 if eval "test \"`echo '$''{'cf_cv_screen'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6581,12 +6584,12 @@ case $cf_cv_screen in
 curses)
 	
 echo $ac_n "checking for initscr""... $ac_c" 1>&6
-echo "configure:6585: checking for initscr" >&5
+echo "configure:6588: checking for initscr" >&5
 if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6590 "configure"
+#line 6593 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char initscr(); below.  */
@@ -6609,7 +6612,7 @@ initscr();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6616: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_initscr=yes"
 else
@@ -6630,7 +6633,7 @@ else
 case $host_os in #(vi
 freebsd*) #(vi
 	echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:6634: checking for tgoto in -lmytinfo" >&5
+echo "configure:6637: checking for tgoto in -lmytinfo" >&5
 ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6638,7 +6641,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lmytinfo  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6642 "configure"
+#line 6645 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6649,7 +6652,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:6653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6672,7 +6675,7 @@ fi
 	;;
 hpux10.*)
 	echo $ac_n "checking for initscr in -lcur_colr""... $ac_c" 1>&6
-echo "configure:6676: checking for initscr in -lcur_colr" >&5
+echo "configure:6679: checking for initscr in -lcur_colr" >&5
 ac_lib_var=`echo cur_colr'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6680,7 +6683,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcur_colr  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6684 "configure"
+#line 6687 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6691,7 +6694,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:6695: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6698: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6715,7 +6718,7 @@ else
   echo "$ac_t""no" 1>&6
 
 	echo $ac_n "checking for initscr in -lHcurses""... $ac_c" 1>&6
-echo "configure:6719: checking for initscr in -lHcurses" >&5
+echo "configure:6722: checking for initscr in -lHcurses" >&5
 ac_lib_var=`echo Hcurses'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6723,7 +6726,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lHcurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6727 "configure"
+#line 6730 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6734,7 +6737,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:6738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6741: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6783,12 +6786,12 @@ if test ".$ac_cv_func_initscr" != .yes ; then
 	# Check for library containing tgoto.  Do this before curses library
 	# because it may be needed to link the test-case for initscr.
 	echo $ac_n "checking for tgoto""... $ac_c" 1>&6
-echo "configure:6787: checking for tgoto" >&5
+echo "configure:6790: checking for tgoto" >&5
 if eval "test \"`echo '$''{'ac_cv_func_tgoto'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6792 "configure"
+#line 6795 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char tgoto(); below.  */
@@ -6811,7 +6814,7 @@ tgoto();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6818: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_tgoto=yes"
 else
@@ -6832,7 +6835,7 @@ else
 		for cf_term_lib in termcap termlib unknown
 		do
 			echo $ac_n "checking for tgoto in -l$cf_term_lib""... $ac_c" 1>&6
-echo "configure:6836: checking for tgoto in -l$cf_term_lib" >&5
+echo "configure:6839: checking for tgoto in -l$cf_term_lib" >&5
 ac_lib_var=`echo $cf_term_lib'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6840,7 +6843,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-l$cf_term_lib  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6844 "configure"
+#line 6847 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6851,7 +6854,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:6855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6858: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6881,7 +6884,7 @@ fi
 	for cf_curs_lib in cursesX curses ncurses xcurses jcurses unknown
 	do
 		echo $ac_n "checking for initscr in -l$cf_curs_lib""... $ac_c" 1>&6
-echo "configure:6885: checking for initscr in -l$cf_curs_lib" >&5
+echo "configure:6888: checking for initscr in -l$cf_curs_lib" >&5
 ac_lib_var=`echo $cf_curs_lib'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6889,7 +6892,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-l$cf_curs_lib  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6893 "configure"
+#line 6896 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6900,7 +6903,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:6904: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6926,16 +6929,16 @@ fi
 	LIBS="-l$cf_curs_lib $cf_save_LIBS"
 	if test "$cf_term_lib" = unknown ; then
 		echo $ac_n "checking if we can link with $cf_curs_lib library""... $ac_c" 1>&6
-echo "configure:6930: checking if we can link with $cf_curs_lib library" >&5
+echo "configure:6933: checking if we can link with $cf_curs_lib library" >&5
 		cat > conftest.$ac_ext <<EOF
-#line 6932 "configure"
+#line 6935 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:6939: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6942: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -6949,16 +6952,16 @@ rm -f conftest*
 		test $cf_result = no && { echo "configure: error: Cannot link curses library" 1>&2; exit 1; }
 	elif test "$cf_term_lib" != predefined ; then
 		echo $ac_n "checking if we need both $cf_curs_lib and $cf_term_lib libraries""... $ac_c" 1>&6
-echo "configure:6953: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
+echo "configure:6956: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
 		cat > conftest.$ac_ext <<EOF
-#line 6955 "configure"
+#line 6958 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr(); tgoto((char *)0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:6962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=no
 else
@@ -6968,14 +6971,14 @@ else
   
 			LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
 			cat > conftest.$ac_ext <<EOF
-#line 6972 "configure"
+#line 6975 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:6979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -6997,14 +7000,14 @@ fi
 
 	
 echo $ac_n "checking for curses performance tradeoff""... $ac_c" 1>&6
-echo "configure:7001: checking for curses performance tradeoff" >&5
+echo "configure:7004: checking for curses performance tradeoff" >&5
 if eval "test \"`echo '$''{'cf_cv_curs_performance'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
     cf_cv_curs_performance=no
     cat > conftest.$ac_ext <<EOF
-#line 7008 "configure"
+#line 7011 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -7018,11 +7021,11 @@ int main() {
 	
 ; return 0; }
 EOF
-if { (eval echo configure:7022: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7025: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
 	cat > conftest.$ac_ext <<EOF
-#line 7026 "configure"
+#line 7029 "configure"
 #include "confdefs.h"
 
 #define CURS_PERFORMANCE
@@ -7037,7 +7040,7 @@ int main() {
 	
 ; return 0; }
 EOF
-if { (eval echo configure:7041: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7044: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_curs_performance=yes
 else
@@ -7062,13 +7065,13 @@ EOF
 ncurses)
 	
 echo $ac_n "checking for ncurses header file""... $ac_c" 1>&6
-echo "configure:7066: checking for ncurses header file" >&5
+echo "configure:7069: checking for ncurses header file" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_header'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	cat > conftest.$ac_ext <<EOF
-#line 7072 "configure"
+#line 7075 "configure"
 #include "confdefs.h"
 #include <curses.h>
 int main() {
@@ -7085,7 +7088,7 @@ make an error
 	
 ; return 0; }
 EOF
-if { (eval echo configure:7089: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7092: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_header=predefined
 else
@@ -7172,7 +7175,7 @@ done
 	;;
 esac
 echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:7176: checking for ncurses version" >&5
+echo "configure:7179: checking for ncurses version" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7197,7 +7200,7 @@ Autoconf "old"
 #endif
 EOF
 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-	{ (eval echo configure:7201: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+	{ (eval echo configure:7204: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
 	if test -f conftest.out ; then
 		cf_out=`cat conftest.out | sed -e 's@^Autoconf @@' -e 's@^[^"]*"@@' -e 's@".*@@'`
 		test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
@@ -7206,7 +7209,7 @@ EOF
 
 else
   cat > conftest.$ac_ext <<EOF
-#line 7210 "configure"
+#line 7213 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -7229,7 +7232,7 @@ int main()
 	exit(0);
 }
 EOF
-if { (eval echo configure:7233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7236: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   
 	cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -7254,7 +7257,7 @@ echo "$ac_t""$cf_cv_ncurses_version" 1>&6
 cf_ncurses_LIBS=""
 cf_ncurses_SAVE="$LIBS"
 echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:7258: checking for Gpm_Open in -lgpm" >&5
+echo "configure:7261: checking for Gpm_Open in -lgpm" >&5
 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7262,7 +7265,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgpm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7266 "configure"
+#line 7269 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7273,7 +7276,7 @@ int main() {
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:7277: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7289,7 +7292,7 @@ fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6
-echo "configure:7293: checking for initscr in -lgpm" >&5
+echo "configure:7296: checking for initscr in -lgpm" >&5
 ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7297,7 +7300,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgpm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7301 "configure"
+#line 7304 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7308,7 +7311,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:7312: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7339,7 +7342,7 @@ freebsd*)
 	# This is only necessary if you are linking against an obsolete
 	# version of ncurses (but it should do no harm, since it's static).
 	echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:7343: checking for tgoto in -lmytinfo" >&5
+echo "configure:7346: checking for tgoto in -lmytinfo" >&5
 ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7347,7 +7350,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lmytinfo  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7351 "configure"
+#line 7354 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7358,7 +7361,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:7362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7386,12 +7389,12 @@ LIBS="$cf_ncurses_LIBS $LIBS"
 	cf_cv_have_lib_ncurses=no
 	cf_libdir=""
 	echo $ac_n "checking for initscr""... $ac_c" 1>&6
-echo "configure:7390: checking for initscr" >&5
+echo "configure:7393: checking for initscr" >&5
 if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7395 "configure"
+#line 7398 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char initscr(); below.  */
@@ -7414,7 +7417,7 @@ initscr();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7421: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_initscr=yes"
 else
@@ -7434,17 +7437,17 @@ else
 
 		cf_save_LIBS="$LIBS"
 		echo $ac_n "checking for initscr in -lncurses""... $ac_c" 1>&6
-echo "configure:7438: checking for initscr in -lncurses" >&5
+echo "configure:7441: checking for initscr in -lncurses" >&5
 		LIBS="-lncurses $LIBS"
 		cat > conftest.$ac_ext <<EOF
-#line 7441 "configure"
+#line 7444 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:7448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 			 cf_cv_have_lib_ncurses=yes
@@ -7472,17 +7475,17 @@ test "$prefix" != /opt           && cf_search="$cf_search /opt/lib /opt/lib/ncur
 			for cf_libdir in $cf_search
 			do
 				echo $ac_n "checking for -lncurses in $cf_libdir""... $ac_c" 1>&6
-echo "configure:7476: checking for -lncurses in $cf_libdir" >&5
+echo "configure:7479: checking for -lncurses in $cf_libdir" >&5
 				LIBS="-L$cf_libdir -lncurses $cf_save_LIBS"
 				cat > conftest.$ac_ext <<EOF
-#line 7479 "configure"
+#line 7482 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:7486: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 			 		 cf_cv_have_lib_ncurses=yes
@@ -7514,7 +7517,7 @@ esac
 
 if test -n "$cf_ncurses_LIBS" ; then
 	echo $ac_n "checking if we can link ncurses without $cf_ncurses_LIBS""... $ac_c" 1>&6
-echo "configure:7518: checking if we can link ncurses without $cf_ncurses_LIBS" >&5
+echo "configure:7521: checking if we can link ncurses without $cf_ncurses_LIBS" >&5
 	cf_ncurses_SAVE="$LIBS"
 	for p in $cf_ncurses_LIBS ; do
 		q=`echo $LIBS | sed -e 's/'$p' //' -e 's/'$p'$//'`
@@ -7523,14 +7526,14 @@ echo "configure:7518: checking if we can link ncurses without $cf_ncurses_LIBS"
 		fi
 	done
 	cat > conftest.$ac_ext <<EOF
-#line 7527 "configure"
+#line 7530 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:7534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -7547,20 +7550,20 @@ fi
 slang)
 	
 echo $ac_n "checking for slang header file""... $ac_c" 1>&6
-echo "configure:7551: checking for slang header file" >&5
+echo "configure:7554: checking for slang header file" >&5
 if eval "test \"`echo '$''{'cf_cv_slang_header'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	cat > conftest.$ac_ext <<EOF
-#line 7557 "configure"
+#line 7560 "configure"
 #include "confdefs.h"
 #include <slang.h>
 int main() {
 printf("%s\n", SLANG_VERSION)
 ; return 0; }
 EOF
-if { (eval echo configure:7564: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7567: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_slang_header=predefined
 else
@@ -7643,24 +7646,24 @@ else
   
 cf_cv_termlib=none
 cat > conftest.$ac_ext <<EOF
-#line 7647 "configure"
+#line 7650 "configure"
 #include "confdefs.h"
 
 int main() {
 char *x=(char*)tgoto("",0,0)
 ; return 0; }
 EOF
-if { (eval echo configure:7654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 7657 "configure"
+#line 7660 "configure"
 #include "confdefs.h"
 
 int main() {
 int x=tigetstr("")
 ; return 0; }
 EOF
-if { (eval echo configure:7664: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_termlib=terminfo
 else
@@ -7681,7 +7684,7 @@ else
 
 if test "$cf_cv_termlib" = none; then
 	echo $ac_n "checking for tgetstr in -lcurses""... $ac_c" 1>&6
-echo "configure:7685: checking for tgetstr in -lcurses" >&5
+echo "configure:7688: checking for tgetstr in -lcurses" >&5
 ac_lib_var=`echo curses'_'tgetstr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7689,7 +7692,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7693 "configure"
+#line 7696 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7700,7 +7703,7 @@ int main() {
 tgetstr()
 ; return 0; }
 EOF
-if { (eval echo configure:7704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7724,7 +7727,7 @@ fi
 # HP-UX 9.x terminfo has setupterm, but no tigetstr.
 if test "$cf_cv_termlib" = none; then
 	echo $ac_n "checking for tigetstr in -ltermlib""... $ac_c" 1>&6
-echo "configure:7728: checking for tigetstr in -ltermlib" >&5
+echo "configure:7731: checking for tigetstr in -ltermlib" >&5
 ac_lib_var=`echo termlib'_'tigetstr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7732,7 +7735,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ltermlib  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7736 "configure"
+#line 7739 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7743,7 +7746,7 @@ int main() {
 tigetstr()
 ; return 0; }
 EOF
-if { (eval echo configure:7747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7766,7 +7769,7 @@ fi
 fi
 if test "$cf_cv_termlib" = none; then
 	echo $ac_n "checking for tgoto in -ltermlib""... $ac_c" 1>&6
-echo "configure:7770: checking for tgoto in -ltermlib" >&5
+echo "configure:7773: checking for tgoto in -ltermlib" >&5
 ac_lib_var=`echo termlib'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7774,7 +7777,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ltermlib  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7778 "configure"
+#line 7781 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7785,7 +7788,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:7789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7792: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7809,7 +7812,7 @@ fi
 if test "$cf_cv_termlib" = none; then
 	# allow curses library for broken AIX system.
 	echo $ac_n "checking for initscr in -lcurses""... $ac_c" 1>&6
-echo "configure:7813: checking for initscr in -lcurses" >&5
+echo "configure:7816: checking for initscr in -lcurses" >&5
 ac_lib_var=`echo curses'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7817,7 +7820,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7821 "configure"
+#line 7824 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7828,7 +7831,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:7832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7849,7 +7852,7 @@ else
 fi
 
 	echo $ac_n "checking for tgoto in -ltermcap""... $ac_c" 1>&6
-echo "configure:7853: checking for tgoto in -ltermcap" >&5
+echo "configure:7856: checking for tgoto in -ltermcap" >&5
 ac_lib_var=`echo termcap'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7857,7 +7860,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ltermcap  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7861 "configure"
+#line 7864 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7868,7 +7871,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:7872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7891,7 +7894,7 @@ fi
 fi
 if test "$cf_cv_termlib" = none; then
 	echo $ac_n "checking for tgoto in -ltermcap""... $ac_c" 1>&6
-echo "configure:7895: checking for tgoto in -ltermcap" >&5
+echo "configure:7898: checking for tgoto in -ltermcap" >&5
 ac_lib_var=`echo termcap'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7899,7 +7902,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ltermcap  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7903 "configure"
+#line 7906 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7910,7 +7913,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:7914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7933,7 +7936,7 @@ fi
 fi
 if test "$cf_cv_termlib" = none; then
 	echo $ac_n "checking for tgoto in -lncurses""... $ac_c" 1>&6
-echo "configure:7937: checking for tgoto in -lncurses" >&5
+echo "configure:7940: checking for tgoto in -lncurses" >&5
 ac_lib_var=`echo ncurses'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7941,7 +7944,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lncurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7945 "configure"
+#line 7948 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7952,7 +7955,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:7956: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7984,12 +7987,12 @@ fi
 
 cf_slang_LIBS2="$LIBS"
 echo $ac_n "checking for acos""... $ac_c" 1>&6
-echo "configure:7988: checking for acos" >&5
+echo "configure:7991: checking for acos" >&5
 if eval "test \"`echo '$''{'ac_cv_func_acos'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7993 "configure"
+#line 7996 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char acos(); below.  */
@@ -8012,7 +8015,7 @@ acos();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_acos=yes"
 else
@@ -8031,7 +8034,7 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for acos in -lm""... $ac_c" 1>&6
-echo "configure:8035: checking for acos in -lm" >&5
+echo "configure:8038: checking for acos in -lm" >&5
 ac_lib_var=`echo m'_'acos | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8039,7 +8042,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lm $LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 8043 "configure"
+#line 8046 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8050,7 +8053,7 @@ int main() {
 acos()
 ; return 0; }
 EOF
-if { (eval echo configure:8054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8057: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8090,12 +8093,12 @@ fi
 	cf_cv_have_lib_slang=no
 	cf_libdir=""
 	echo $ac_n "checking for SLtt_get_screen_size""... $ac_c" 1>&6
-echo "configure:8094: checking for SLtt_get_screen_size" >&5
+echo "configure:8097: checking for SLtt_get_screen_size" >&5
 if eval "test \"`echo '$''{'ac_cv_func_SLtt_get_screen_size'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8099 "configure"
+#line 8102 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char SLtt_get_screen_size(); below.  */
@@ -8118,7 +8121,7 @@ SLtt_get_screen_size();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8122: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_SLtt_get_screen_size=yes"
 else
@@ -8138,17 +8141,17 @@ else
 
 		cf_save_LIBS="$LIBS"
 		echo $ac_n "checking for SLtt_get_screen_size in -lslang""... $ac_c" 1>&6
-echo "configure:8142: checking for SLtt_get_screen_size in -lslang" >&5
+echo "configure:8145: checking for SLtt_get_screen_size in -lslang" >&5
 		LIBS="-lslang $LIBS"
 		cat > conftest.$ac_ext <<EOF
-#line 8145 "configure"
+#line 8148 "configure"
 #include "confdefs.h"
 #include <slang.h>
 int main() {
 SLtt_get_screen_size()
 ; return 0; }
 EOF
-if { (eval echo configure:8152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8155: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 			 cf_cv_have_lib_slang=yes
@@ -8176,17 +8179,17 @@ test "$prefix" != /opt           && cf_search="$cf_search /opt/lib /opt/lib/slan
 			for cf_libdir in $cf_search
 			do
 				echo $ac_n "checking for -lslang in $cf_libdir""... $ac_c" 1>&6
-echo "configure:8180: checking for -lslang in $cf_libdir" >&5
+echo "configure:8183: checking for -lslang in $cf_libdir" >&5
 				LIBS="-L$cf_libdir -lslang $cf_save_LIBS"
 				cat > conftest.$ac_ext <<EOF
-#line 8183 "configure"
+#line 8186 "configure"
 #include "confdefs.h"
 #include <slang.h>
 int main() {
 SLtt_get_screen_size()
 ; return 0; }
 EOF
-if { (eval echo configure:8190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 			 		 cf_cv_have_lib_slang=yes
@@ -8217,7 +8220,7 @@ esac
 
 cf_slang_LIBS3="$LIBS"
 echo $ac_n "checking if we can link slang without termcap""... $ac_c" 1>&6
-echo "configure:8221: checking if we can link slang without termcap" >&5
+echo "configure:8224: checking if we can link slang without termcap" >&5
 if test -n "`echo $cf_slang_LIBS1 | sed -e 's/ //g'`" ; then
 	cf_exclude=`echo ".$cf_slang_LIBS2" | sed -e "s@$cf_slang_LIBS1@@" -e 's@^.@@'`
 else
@@ -8225,14 +8228,14 @@ else
 fi
 LIBS=`echo ".$cf_slang_LIBS3" | sed -e "s@$cf_exclude@@" -e 's@^.@@'`
 cat > conftest.$ac_ext <<EOF
-#line 8229 "configure"
+#line 8232 "configure"
 #include "confdefs.h"
 #include <slang.h>
 int main() {
 SLtt_get_screen_size()
 ; return 0; }
 EOF
-if { (eval echo configure:8236: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -8252,7 +8255,7 @@ eval cf_libdir=$libdir
 cf_libdir=`echo $cf_libdir | sed -e s@'^NONE/'@$prefix/@ -e s@'^NONE/'@$ac_default_prefix/@`
 
 echo $ac_n "checking for location of config-file""... $ac_c" 1>&6
-echo "configure:8256: checking for location of config-file" >&5
+echo "configure:8259: checking for location of config-file" >&5
 LYNX_CFG_FILE=$cf_libdir/lynx.cfg
 cat >> confdefs.h <<EOF
 #define LYNX_CFG_FILE "$LYNX_CFG_FILE"
@@ -8264,7 +8267,7 @@ CHARSET_DEFS=
 
 
 echo $ac_n "checking if you want only a few charsets""... $ac_c" 1>&6
-echo "configure:8268: checking if you want only a few charsets" >&5
+echo "configure:8271: checking if you want only a few charsets" >&5
 
 # Check whether --with-charsets or --without-charsets was given.
 if test "${with_charsets+set}" = set; then
@@ -8309,12 +8312,12 @@ fi
 
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:8313: checking for ANSI C header files" >&5
+echo "configure:8316: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8318 "configure"
+#line 8321 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -8322,7 +8325,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8326: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8329: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8339,7 +8342,7 @@ rm -f conftest*
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 8343 "configure"
+#line 8346 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -8357,7 +8360,7 @@ fi
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 8361 "configure"
+#line 8364 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -8378,7 +8381,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 8382 "configure"
+#line 8385 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -8389,7 +8392,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:8393: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:8396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -8413,12 +8416,12 @@ EOF
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:8417: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:8420: checking whether time.h and sys/time.h may both be included" >&5
 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8422 "configure"
+#line 8425 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -8427,7 +8430,7 @@ int main() {
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:8431: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8434: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -8452,12 +8455,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:8456: checking for $ac_hdr that defines DIR" >&5
+echo "configure:8459: checking for $ac_hdr that defines DIR" >&5
 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8461 "configure"
+#line 8464 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -8465,7 +8468,7 @@ int main() {
 DIR *dirp = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:8469: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8472: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "ac_cv_header_dirent_$ac_safe=yes"
 else
@@ -8490,7 +8493,7 @@ done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
 echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:8494: checking for opendir in -ldir" >&5
+echo "configure:8497: checking for opendir in -ldir" >&5
 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8498,7 +8501,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldir  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 8502 "configure"
+#line 8505 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8509,7 +8512,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:8513: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8531,7 +8534,7 @@ fi
 
 else
 echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:8535: checking for opendir in -lx" >&5
+echo "configure:8538: checking for opendir in -lx" >&5
 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8539,7 +8542,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lx  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 8543 "configure"
+#line 8546 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8550,7 +8553,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:8554: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8590,17 +8593,17 @@ for ac_hdr in \
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:8594: checking for $ac_hdr" >&5
+echo "configure:8597: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8599 "configure"
+#line 8602 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8604: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8607: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8628,13 +8631,13 @@ done
 
 
 echo $ac_n "checking termio.h and termios.h""... $ac_c" 1>&6
-echo "configure:8632: checking termio.h and termios.h" >&5
+echo "configure:8635: checking termio.h and termios.h" >&5
 if eval "test \"`echo '$''{'cf_cv_termio_and_termios'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
     cat > conftest.$ac_ext <<EOF
-#line 8638 "configure"
+#line 8641 "configure"
 #include "confdefs.h"
 
 #if HAVE_TERMIO_H
@@ -8647,7 +8650,7 @@ int main() {
 putchar (0x0a)
 ; return 0; }
 EOF
-if { (eval echo configure:8651: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_termio_and_termios=yes
 else
@@ -8667,13 +8670,13 @@ EOF
 
 
 echo $ac_n "checking for sigaction and structs""... $ac_c" 1>&6
-echo "configure:8671: checking for sigaction and structs" >&5
+echo "configure:8674: checking for sigaction and structs" >&5
 if eval "test \"`echo '$''{'cf_cv_func_sigaction'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 8677 "configure"
+#line 8680 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -8688,7 +8691,7 @@ struct sigaction act;
 	
 ; return 0; }
 EOF
-if { (eval echo configure:8692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8695: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_func_sigaction=yes
 else
@@ -8712,17 +8715,17 @@ for ac_hdr in sys/wait.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:8716: checking for $ac_hdr" >&5
+echo "configure:8719: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8721 "configure"
+#line 8724 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8726: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8729: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8759,17 +8762,17 @@ for ac_hdr in wait.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:8763: checking for $ac_hdr" >&5
+echo "configure:8766: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8768 "configure"
+#line 8771 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8773: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8776: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8799,17 +8802,17 @@ for ac_hdr in waitstatus.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:8803: checking for $ac_hdr" >&5
+echo "configure:8806: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8808 "configure"
+#line 8811 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8813: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8816: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8850,13 +8853,13 @@ fi
 
 
 echo $ac_n "checking for union wait""... $ac_c" 1>&6
-echo "configure:8854: checking for union wait" >&5
+echo "configure:8857: checking for union wait" >&5
 if eval "test \"`echo '$''{'cf_cv_type_unionwait'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	cat > conftest.$ac_ext <<EOF
-#line 8860 "configure"
+#line 8863 "configure"
 #include "confdefs.h"
 $cf_wait_headers
 int main() {
@@ -8867,7 +8870,7 @@ int x;
 	
 ; return 0; }
 EOF
-if { (eval echo configure:8871: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_type_unionwait=no
 	 echo compiles ok w/o union wait 1>&5
@@ -8878,7 +8881,7 @@ else
   rm -rf conftest*
   
 	cat > conftest.$ac_ext <<EOF
-#line 8882 "configure"
+#line 8885 "configure"
 #include "confdefs.h"
 $cf_wait_headers
 int main() {
@@ -8893,7 +8896,7 @@ union wait x;
 	
 ; return 0; }
 EOF
-if { (eval echo configure:8897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_type_unionwait=yes
 	 echo compiles ok with union wait and possibly macros too 1>&5
@@ -8920,20 +8923,20 @@ EOF
 if test $cf_cv_type_unionwait = yes; then
 
 	echo $ac_n "checking if union wait can be used as wait-arg""... $ac_c" 1>&6
-echo "configure:8924: checking if union wait can be used as wait-arg" >&5
+echo "configure:8927: checking if union wait can be used as wait-arg" >&5
 	if eval "test \"`echo '$''{'cf_cv_arg_union_wait'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 		cat > conftest.$ac_ext <<EOF
-#line 8930 "configure"
+#line 8933 "configure"
 #include "confdefs.h"
 $cf_wait_headers
 int main() {
 union wait x; wait(&x)
 ; return 0; }
 EOF
-if { (eval echo configure:8937: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8940: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_arg_union_wait=yes
 else
@@ -8953,20 +8956,20 @@ EOF
 
 
 	echo $ac_n "checking if union wait can be used as waitpid-arg""... $ac_c" 1>&6
-echo "configure:8957: checking if union wait can be used as waitpid-arg" >&5
+echo "configure:8960: checking if union wait can be used as waitpid-arg" >&5
 	if eval "test \"`echo '$''{'cf_cv_arg_union_waitpid'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 		cat > conftest.$ac_ext <<EOF
-#line 8963 "configure"
+#line 8966 "configure"
 #include "confdefs.h"
 $cf_wait_headers
 int main() {
 union wait x; waitpid(0, &x, 0)
 ; return 0; }
 EOF
-if { (eval echo configure:8970: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_arg_union_waitpid=yes
 else
@@ -8992,17 +8995,17 @@ for ac_hdr in stdarg.h varargs.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:8996: checking for $ac_hdr" >&5
+echo "configure:8999: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9001 "configure"
+#line 9004 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9006: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9009: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9029,13 +9032,13 @@ fi
 done
 
 echo $ac_n "checking for standard varargs""... $ac_c" 1>&6
-echo "configure:9033: checking for standard varargs" >&5
+echo "configure:9036: checking for standard varargs" >&5
 if eval "test \"`echo '$''{'cf_cv_ansi_varargs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	cat > conftest.$ac_ext <<EOF
-#line 9039 "configure"
+#line 9042 "configure"
 #include "confdefs.h"
 
 #if HAVE_STDARG_H
@@ -9050,7 +9053,7 @@ int main() {
 return 0;} int foo(char *fmt,...){va_list args;va_start(args,fmt);va_end(args)
 ; return 0; }
 EOF
-if { (eval echo configure:9054: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9057: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ansi_varargs=yes
 else
@@ -9070,12 +9073,12 @@ EOF
 
 
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:9074: checking for uid_t in sys/types.h" >&5
+echo "configure:9077: checking for uid_t in sys/types.h" >&5
 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9079 "configure"
+#line 9082 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -9104,7 +9107,7 @@ EOF
 fi
 
 echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1>&6
-echo "configure:9108: checking type of array argument to getgroups" >&5
+echo "configure:9111: checking type of array argument to getgroups" >&5
 if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9112,7 +9115,7 @@ else
   ac_cv_type_getgroups=cross
 else
   cat > conftest.$ac_ext <<EOF
-#line 9116 "configure"
+#line 9119 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Rendell for this test.  */
@@ -9137,7 +9140,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:9141: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:9144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
     ac_cv_type_getgroups=gid_t
 else
@@ -9151,7 +9154,7 @@ fi
 
 if test $ac_cv_type_getgroups = cross; then
         cat > conftest.$ac_ext <<EOF
-#line 9155 "configure"
+#line 9158 "configure"
 #include "confdefs.h"
 #include <unistd.h>
 EOF
@@ -9175,12 +9178,12 @@ EOF
 
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:9179: checking for pid_t" >&5
+echo "configure:9182: checking for pid_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9184 "configure"
+#line 9187 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -9208,12 +9211,12 @@ EOF
 fi
 
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:9212: checking for uid_t in sys/types.h" >&5
+echo "configure:9215: checking for uid_t in sys/types.h" >&5
 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9217 "configure"
+#line 9220 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -9242,12 +9245,12 @@ EOF
 fi
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:9246: checking for mode_t" >&5
+echo "configure:9249: checking for mode_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9251 "configure"
+#line 9254 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -9278,17 +9281,17 @@ fi
 
 ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:9282: checking for vfork.h" >&5
+echo "configure:9285: checking for vfork.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9287 "configure"
+#line 9290 "configure"
 #include "confdefs.h"
 #include <vfork.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9292: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9295: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9313,18 +9316,18 @@ else
 fi
 
 echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:9317: checking for working vfork" >&5
+echo "configure:9320: checking for working vfork" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vfork_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test "$cross_compiling" = yes; then
   echo $ac_n "checking for vfork""... $ac_c" 1>&6
-echo "configure:9323: checking for vfork" >&5
+echo "configure:9326: checking for vfork" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vfork'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9328 "configure"
+#line 9331 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vfork(); below.  */
@@ -9347,7 +9350,7 @@ vfork();
 
 ; return 0; }
 EOF
-if { (eval echo configure:9351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_vfork=yes"
 else
@@ -9369,7 +9372,7 @@ fi
 ac_cv_func_vfork_works=$ac_cv_func_vfork
 else
   cat > conftest.$ac_ext <<EOF
-#line 9373 "configure"
+#line 9376 "configure"
 #include "confdefs.h"
 /* Thanks to Paul Eggert for this test.  */
 #include <stdio.h>
@@ -9464,7 +9467,7 @@ main() {
   }
 }
 EOF
-if { (eval echo configure:9468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:9471: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_vfork_works=yes
 else
@@ -9488,13 +9491,13 @@ fi
 
 
 echo $ac_n "checking if we should use fcntl or ioctl""... $ac_c" 1>&6
-echo "configure:9492: checking if we should use fcntl or ioctl" >&5
+echo "configure:9495: checking if we should use fcntl or ioctl" >&5
 if eval "test \"`echo '$''{'cf_cv_fionbio'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 9498 "configure"
+#line 9501 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -9506,7 +9509,7 @@ int main() {
 	
 ; return 0; }
 EOF
-if { (eval echo configure:9510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9513: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_fionbio=ioctl
 else
@@ -9515,7 +9518,7 @@ else
   rm -rf conftest*
   
 cat > conftest.$ac_ext <<EOF
-#line 9519 "configure"
+#line 9522 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -9532,7 +9535,7 @@ int main() {
 	
 ; return 0; }
 EOF
-if { (eval echo configure:9536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9539: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_fionbio=fcntl
 else
@@ -9555,20 +9558,20 @@ EOF
 
 
 echo $ac_n "checking for broken/missing definition of remove""... $ac_c" 1>&6
-echo "configure:9559: checking for broken/missing definition of remove" >&5
+echo "configure:9562: checking for broken/missing definition of remove" >&5
 if eval "test \"`echo '$''{'cf_cv_baddef_remove'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 9565 "configure"
+#line 9568 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 remove("dummy")
 ; return 0; }
 EOF
-if { (eval echo configure:9572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_baddef_remove=no
 else
@@ -9576,7 +9579,7 @@ else
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 9580 "configure"
+#line 9583 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 		int __unlink(name) { return unlink(name); } 
@@ -9584,7 +9587,7 @@ int main() {
 remove("dummy")
 ; return 0; }
 EOF
-if { (eval echo configure:9588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_baddef_remove=yes
 else
@@ -9608,13 +9611,13 @@ EOF
 
 
 echo $ac_n "checking for lstat""... $ac_c" 1>&6
-echo "configure:9612: checking for lstat" >&5
+echo "configure:9615: checking for lstat" >&5
 if eval "test \"`echo '$''{'ac_cv_func_lstat'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 9618 "configure"
+#line 9621 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -9623,7 +9626,7 @@ int main() {
 lstat(".", (struct stat *)0)
 ; return 0; }
 EOF
-if { (eval echo configure:9627: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_func_lstat=yes
 else
@@ -9660,12 +9663,12 @@ for ac_func in \
 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9664: checking for $ac_func" >&5
+echo "configure:9667: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9669 "configure"
+#line 9672 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9688,7 +9691,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:9692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9695: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -9718,12 +9721,12 @@ for ac_func in \
 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9722: checking for $ac_func" >&5
+echo "configure:9725: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9727 "configure"
+#line 9730 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9746,7 +9749,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:9750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -9777,12 +9780,12 @@ for ac_func in strstr
 do
 
 echo $ac_n "checking for $ac_func declaration""... $ac_c" 1>&6
-echo "configure:9781: checking for $ac_func declaration" >&5
+echo "configure:9784: checking for $ac_func declaration" >&5
 if eval "test \"`echo '$''{'ac_cv_func_decl_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9786 "configure"
+#line 9789 "configure"
 #include "confdefs.h"
 #include <string.h>
 int main() {
@@ -9791,11 +9794,11 @@ extern	int	${ac_func}();
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:9795: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9798: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
 cat > conftest.$ac_ext <<EOF
-#line 9799 "configure"
+#line 9802 "configure"
 #include "confdefs.h"
 #include <string.h>
 int main() {
@@ -9804,7 +9807,7 @@ int	(*p)() = ${ac_func};
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:9808: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9811: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
 eval "ac_cv_func_decl_$ac_func=yes"
@@ -9846,12 +9849,12 @@ for ac_func in getgrgid getgrnam
 do
 
 echo $ac_n "checking for $ac_func declaration""... $ac_c" 1>&6
-echo "configure:9850: checking for $ac_func declaration" >&5
+echo "configure:9853: checking for $ac_func declaration" >&5
 if eval "test \"`echo '$''{'ac_cv_func_decl_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9855 "configure"
+#line 9858 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -9862,11 +9865,11 @@ extern	int	${ac_func}();
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:9866: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9869: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
 cat > conftest.$ac_ext <<EOF
-#line 9870 "configure"
+#line 9873 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -9877,7 +9880,7 @@ int	(*p)() = ${ac_func};
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:9881: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9884: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
 eval "ac_cv_func_decl_$ac_func=yes"
@@ -9919,13 +9922,13 @@ done
 
 
 echo $ac_n "checking if TRUE/FALSE are defined""... $ac_c" 1>&6
-echo "configure:9923: checking if TRUE/FALSE are defined" >&5
+echo "configure:9926: checking if TRUE/FALSE are defined" >&5
 if eval "test \"`echo '$''{'cf_cv_bool_defs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 9929 "configure"
+#line 9932 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -9934,7 +9937,7 @@ int main() {
 int x = TRUE, y = FALSE
 ; return 0; }
 EOF
-if { (eval echo configure:9938: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9941: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_bool_defs=yes
 else
@@ -9961,13 +9964,13 @@ fi
 
 
 echo $ac_n "checking if external errno is declared""... $ac_c" 1>&6
-echo "configure:9965: checking if external errno is declared" >&5
+echo "configure:9968: checking if external errno is declared" >&5
 if eval "test \"`echo '$''{'cf_cv_dcl_errno'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
     cat > conftest.$ac_ext <<EOF
-#line 9971 "configure"
+#line 9974 "configure"
 #include "confdefs.h"
 
 #if HAVE_STDLIB_H
@@ -9980,7 +9983,7 @@ int main() {
 long x = (long) errno
 ; return 0; }
 EOF
-if { (eval echo configure:9984: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9987: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval 'cf_cv_dcl_'errno'=yes'
 else
@@ -10011,13 +10014,13 @@ fi
 # It's possible (for near-UNIX clones) that the data doesn't exist
 
 echo $ac_n "checking if external errno exists""... $ac_c" 1>&6
-echo "configure:10015: checking if external errno exists" >&5
+echo "configure:10018: checking if external errno exists" >&5
 if eval "test \"`echo '$''{'cf_cv_have_errno'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
     cat > conftest.$ac_ext <<EOF
-#line 10021 "configure"
+#line 10024 "configure"
 #include "confdefs.h"
 
 #undef errno
@@ -10027,7 +10030,7 @@ int main() {
 errno = 2
 ; return 0; }
 EOF
-if { (eval echo configure:10031: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10034: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval 'cf_cv_have_'errno'=yes'
 else
@@ -10059,20 +10062,20 @@ fi
 
 
 echo $ac_n "checking for setlocale()""... $ac_c" 1>&6
-echo "configure:10063: checking for setlocale()" >&5
+echo "configure:10066: checking for setlocale()" >&5
 if eval "test \"`echo '$''{'cf_cv_locale'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 10069 "configure"
+#line 10072 "configure"
 #include "confdefs.h"
 #include <locale.h>
 int main() {
 setlocale(LC_ALL, "")
 ; return 0; }
 EOF
-if { (eval echo configure:10076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_locale=yes
 else
@@ -10093,13 +10096,13 @@ EOF
 
 
 echo $ac_n "checking if NGROUPS is defined""... $ac_c" 1>&6
-echo "configure:10097: checking if NGROUPS is defined" >&5
+echo "configure:10100: checking if NGROUPS is defined" >&5
 if eval "test \"`echo '$''{'cf_cv_ngroups'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 10103 "configure"
+#line 10106 "configure"
 #include "confdefs.h"
 
 #if HAVE_SYS_PARAM_H
@@ -10113,7 +10116,7 @@ int main() {
 int x = NGROUPS
 ; return 0; }
 EOF
-if { (eval echo configure:10117: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10120: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ngroups=yes
 else
@@ -10121,7 +10124,7 @@ else
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 10125 "configure"
+#line 10128 "configure"
 #include "confdefs.h"
 
 #if HAVE_SYS_PARAM_H
@@ -10135,7 +10138,7 @@ int main() {
 int x = NGROUPS_MAX
 ; return 0; }
 EOF
-if { (eval echo configure:10139: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10142: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ngroups=NGROUPS_MAX
 else
@@ -10169,13 +10172,13 @@ for cf_name in sys_nerr sys_errlist
 do
     
 echo $ac_n "checking if external $cf_name is declared""... $ac_c" 1>&6
-echo "configure:10173: checking if external $cf_name is declared" >&5
+echo "configure:10176: checking if external $cf_name is declared" >&5
 if eval "test \"`echo '$''{'cf_cv_dcl_$cf_name'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
     cat > conftest.$ac_ext <<EOF
-#line 10179 "configure"
+#line 10182 "configure"
 #include "confdefs.h"
 
 #if HAVE_STDLIB_H
@@ -10188,7 +10191,7 @@ int main() {
 long x = (long) $cf_name
 ; return 0; }
 EOF
-if { (eval echo configure:10192: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10195: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval 'cf_cv_dcl_'$cf_name'=yes'
 else
@@ -10219,13 +10222,13 @@ fi
 # It's possible (for near-UNIX clones) that the data doesn't exist
 
 echo $ac_n "checking if external $cf_name exists""... $ac_c" 1>&6
-echo "configure:10223: checking if external $cf_name exists" >&5
+echo "configure:10226: checking if external $cf_name exists" >&5
 if eval "test \"`echo '$''{'cf_cv_have_$cf_name'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
     cat > conftest.$ac_ext <<EOF
-#line 10229 "configure"
+#line 10232 "configure"
 #include "confdefs.h"
 
 #undef $cf_name
@@ -10235,7 +10238,7 @@ int main() {
 $cf_name = 2
 ; return 0; }
 EOF
-if { (eval echo configure:10239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval 'cf_cv_have_'$cf_name'=yes'
 else
@@ -10268,13 +10271,13 @@ done
 
 
 echo $ac_n "checking if struct utmp is declared""... $ac_c" 1>&6
-echo "configure:10272: checking if struct utmp is declared" >&5
+echo "configure:10275: checking if struct utmp is declared" >&5
 if eval "test \"`echo '$''{'cf_cv_have_utmp'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	cat > conftest.$ac_ext <<EOF
-#line 10278 "configure"
+#line 10281 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -10283,7 +10286,7 @@ int main() {
 struct utmp x; char *y = &x.ut_host[0]
 ; return 0; }
 EOF
-if { (eval echo configure:10287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10290: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_have_utmp=yes
 else
@@ -10291,14 +10294,14 @@ else
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 10295 "configure"
+#line 10298 "configure"
 #include "confdefs.h"
 #include <utmpx.h>
 int main() {
 struct utmpx x; char *y = &x.ut_host[0]
 ; return 0; }
 EOF
-if { (eval echo configure:10302: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10305: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_have_utmp=utmpx
 else
@@ -10326,13 +10329,13 @@ EOF
 
 
 echo $ac_n "checking if external h_errno exists""... $ac_c" 1>&6
-echo "configure:10330: checking if external h_errno exists" >&5
+echo "configure:10333: checking if external h_errno exists" >&5
 if eval "test \"`echo '$''{'cf_cv_have_h_errno'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
     cat > conftest.$ac_ext <<EOF
-#line 10336 "configure"
+#line 10339 "configure"
 #include "confdefs.h"
 
 #undef h_errno
@@ -10342,7 +10345,7 @@ int main() {
 h_errno = 2
 ; return 0; }
 EOF
-if { (eval echo configure:10346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10349: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval 'cf_cv_have_'h_errno'=yes'
 else
@@ -10373,13 +10376,13 @@ fi
 
 
 echo $ac_n "checking if character set is EBCDIC""... $ac_c" 1>&6
-echo "configure:10377: checking if character set is EBCDIC" >&5
+echo "configure:10380: checking if character set is EBCDIC" >&5
 if eval "test \"`echo '$''{'cf_cv_ebcdic'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	cat > conftest.$ac_ext <<EOF
-#line 10383 "configure"
+#line 10386 "configure"
 #include "confdefs.h"
  
 int main() {
@@ -10392,7 +10395,7 @@ make an error "Character set is not EBCDIC"
 #endif 
 ; return 0; }
 EOF
-if { (eval echo configure:10396: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
    # TryCompile action if true
 cf_cv_ebcdic=yes 
@@ -10426,7 +10429,7 @@ esac
 if test $cf_cv_screen != slang ; then
 	
 echo $ac_n "checking if curses supports alternate-character set""... $ac_c" 1>&6
-echo "configure:10430: checking if curses supports alternate-character set" >&5
+echo "configure:10433: checking if curses supports alternate-character set" >&5
 if eval "test \"`echo '$''{'cf_cv_alt_char_set'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -10434,7 +10437,7 @@ else
 for mapname in acs_map _acs_map
 do
 	cat > conftest.$ac_ext <<EOF
-#line 10438 "configure"
+#line 10441 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -10443,7 +10446,7 @@ int main() {
 chtype x = $mapname['l']; $mapname['m'] = 0
 ; return 0; }
 EOF
-if { (eval echo configure:10447: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_alt_char_set=$mapname
 	 break
@@ -10466,13 +10469,13 @@ EOF
 
 	
 echo $ac_n "checking if curses supports fancy attributes""... $ac_c" 1>&6
-echo "configure:10470: checking if curses supports fancy attributes" >&5
+echo "configure:10473: checking if curses supports fancy attributes" >&5
 if eval "test \"`echo '$''{'cf_cv_fancy_curses'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	cat > conftest.$ac_ext <<EOF
-#line 10476 "configure"
+#line 10479 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -10485,7 +10488,7 @@ attrset(A_UNDERLINE|A_BOLD|A_REVERSE);
 	
 ; return 0; }
 EOF
-if { (eval echo configure:10489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_fancy_curses=yes
 else
@@ -10505,7 +10508,7 @@ EOF
 
 
 	echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:10509: checking for ncurses version" >&5
+echo "configure:10512: checking for ncurses version" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -10530,7 +10533,7 @@ Autoconf "old"
 #endif
 EOF
 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-	{ (eval echo configure:10534: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+	{ (eval echo configure:10537: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
 	if test -f conftest.out ; then
 		cf_out=`cat conftest.out | sed -e 's@^Autoconf @@' -e 's@^[^"]*"@@' -e 's@".*@@'`
 		test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
@@ -10539,7 +10542,7 @@ EOF
 
 else
   cat > conftest.$ac_ext <<EOF
-#line 10543 "configure"
+#line 10546 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -10562,7 +10565,7 @@ int main()
 	exit(0);
 }
 EOF
-if { (eval echo configure:10566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:10569: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   
 	cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -10582,13 +10585,13 @@ echo "$ac_t""$cf_cv_ncurses_version" 1>&6
 
 if test "$cf_cv_ncurses_version" != no ; then
 echo $ac_n "checking for obsolete/broken version of ncurses""... $ac_c" 1>&6
-echo "configure:10586: checking for obsolete/broken version of ncurses" >&5
+echo "configure:10589: checking for obsolete/broken version of ncurses" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_broken'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 10592 "configure"
+#line 10595 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -10602,7 +10605,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:10606: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10609: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_broken=no
 else
@@ -10627,13 +10630,13 @@ fi
 
 	
 echo $ac_n "checking if curses supports color attributes""... $ac_c" 1>&6
-echo "configure:10631: checking if curses supports color attributes" >&5
+echo "configure:10634: checking if curses supports color attributes" >&5
 if eval "test \"`echo '$''{'cf_cv_color_curses'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	cat > conftest.$ac_ext <<EOF
-#line 10637 "configure"
+#line 10640 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -10648,7 +10651,7 @@ chtype x = COLOR_BLUE;
 	
 ; return 0; }
 EOF
-if { (eval echo configure:10652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10655: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_color_curses=yes
 else
@@ -10675,7 +10678,7 @@ fi
 
 	
 echo $ac_n "checking declaration of size-change""... $ac_c" 1>&6
-echo "configure:10679: checking declaration of size-change" >&5
+echo "configure:10682: checking declaration of size-change" >&5
 if eval "test \"`echo '$''{'cf_cv_sizechange'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -10689,7 +10692,7 @@ do
     CFLAGS="$cf_save_CFLAGS"
     test -n "$cf_opts" && CFLAGS="$CFLAGS -D$cf_opts"
     cat > conftest.$ac_ext <<EOF
-#line 10693 "configure"
+#line 10696 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if HAVE_TERMIOS_H
@@ -10728,7 +10731,7 @@ int main() {
 	
 ; return 0; }
 EOF
-if { (eval echo configure:10732: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10735: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_sizechange=yes
 else
@@ -10760,20 +10763,20 @@ EOF
 
 	
 echo $ac_n "checking if ttytype is declared in curses library""... $ac_c" 1>&6
-echo "configure:10764: checking if ttytype is declared in curses library" >&5
+echo "configure:10767: checking if ttytype is declared in curses library" >&5
 if eval "test \"`echo '$''{'cf_cv_have_ttytype'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	cat > conftest.$ac_ext <<EOF
-#line 10770 "configure"
+#line 10773 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 char *x = &ttytype[1]; *x = 1
 ; return 0; }
 EOF
-if { (eval echo configure:10777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_have_ttytype=yes
 else
@@ -10801,12 +10804,12 @@ EOF
 		wborder 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10805: checking for $ac_func" >&5
+echo "configure:10808: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10810 "configure"
+#line 10813 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10829,7 +10832,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -10859,7 +10862,7 @@ fi
 
 
 echo $ac_n "checking if configuration info should be browsable""... $ac_c" 1>&6
-echo "configure:10863: checking if configuration info should be browsable" >&5
+echo "configure:10866: checking if configuration info should be browsable" >&5
 
 # Check whether --enable-config-info or --disable-config-info was given.
 if test "${enable_config_info+set}" = set; then
@@ -10883,7 +10886,7 @@ EOF
 
 
 echo $ac_n "checking if new-style forms-based options screen should be used""... $ac_c" 1>&6
-echo "configure:10887: checking if new-style forms-based options screen should be used" >&5
+echo "configure:10890: checking if new-style forms-based options screen should be used" >&5
 
 # Check whether --enable-forms-options or --disable-forms-options was given.
 if test "${enable_forms_options+set}" = set; then
@@ -10907,7 +10910,7 @@ EOF
 
 
 echo $ac_n "checking if old-style options menu should be used""... $ac_c" 1>&6
-echo "configure:10911: checking if old-style options menu should be used" >&5
+echo "configure:10914: checking if old-style options menu should be used" >&5
 
 # Check whether --enable-menu-options or --disable-menu-options was given.
 if test "${enable_menu_options+set}" = set; then
@@ -10931,7 +10934,7 @@ EOF
 
 
 echo $ac_n "checking if experimental address-list page should be used""... $ac_c" 1>&6
-echo "configure:10935: checking if experimental address-list page should be used" >&5
+echo "configure:10938: checking if experimental address-list page should be used" >&5
 
 # Check whether --enable-addrlist-page or --disable-addrlist-page was given.
 if test "${enable_addrlist_page+set}" = set; then
@@ -10955,7 +10958,7 @@ EOF
 
 
 echo $ac_n "checking if experimental charset-selection logic should be used""... $ac_c" 1>&6
-echo "configure:10959: checking if experimental charset-selection logic should be used" >&5
+echo "configure:10962: checking if experimental charset-selection logic should be used" >&5
 
 # Check whether --enable-charset-choice or --disable-charset-choice was given.
 if test "${enable_charset_choice+set}" = set; then
@@ -10979,7 +10982,7 @@ EOF
 
 
 echo $ac_n "checking if experimental CJK logic should be used""... $ac_c" 1>&6
-echo "configure:10983: checking if experimental CJK logic should be used" >&5
+echo "configure:10986: checking if experimental CJK logic should be used" >&5
 
 # Check whether --enable-cjk or --disable-cjk was given.
 if test "${enable_cjk+set}" = set; then
@@ -11003,7 +11006,7 @@ EOF
 
 
 echo $ac_n "checking if color-style code should be used""... $ac_c" 1>&6
-echo "configure:11007: checking if color-style code should be used" >&5
+echo "configure:11010: checking if color-style code should be used" >&5
 
 # Check whether --enable-color-style or --disable-color-style was given.
 if test "${enable_color_style+set}" = set; then
@@ -11051,7 +11054,7 @@ EOF
 	echo "$ac_t""yes" 1>&6
 
 	echo $ac_n "checking for location of style-sheet file""... $ac_c" 1>&6
-echo "configure:11055: checking for location of style-sheet file" >&5
+echo "configure:11058: checking for location of style-sheet file" >&5
 	LYNX_LSS_FILE=$cf_libdir/lynx.lss
 	cat >> confdefs.h <<EOF
 #define LYNX_LSS_FILE "$LYNX_LSS_FILE"
@@ -11069,7 +11072,7 @@ test ".$ac_cv_func_use_default_colors" = ".yes" && use_dft_colors=maybe
 
 if test "$use_dft_colors" != no ; then
 echo $ac_n "checking if you want to use default-colors""... $ac_c" 1>&6
-echo "configure:11073: checking if you want to use default-colors" >&5
+echo "configure:11076: checking if you want to use default-colors" >&5
 
 # Check whether --enable-default-colors or --disable-default-colors was given.
 if test "${enable_default_colors+set}" = set; then
@@ -11094,7 +11097,7 @@ EOF
 fi
 
 echo $ac_n "checking if experimental file-upload logic should be used""... $ac_c" 1>&6
-echo "configure:11098: checking if experimental file-upload logic should be used" >&5
+echo "configure:11101: checking if experimental file-upload logic should be used" >&5
 
 # Check whether --enable-file-upload or --disable-file-upload was given.
 if test "${enable_file_upload+set}" = set; then
@@ -11118,7 +11121,7 @@ EOF
 
 
 echo $ac_n "checking if experimental element-justification logic should be used""... $ac_c" 1>&6
-echo "configure:11122: checking if experimental element-justification logic should be used" >&5
+echo "configure:11125: checking if experimental element-justification logic should be used" >&5
 
 # Check whether --enable-justify-elts or --disable-justify-elts was given.
 if test "${enable_justify_elts+set}" = set; then
@@ -11142,7 +11145,7 @@ EOF
 
 
 echo $ac_n "checking if experimental keyboard-layout logic should be used""... $ac_c" 1>&6
-echo "configure:11146: checking if experimental keyboard-layout logic should be used" >&5
+echo "configure:11149: checking if experimental keyboard-layout logic should be used" >&5
 
 # Check whether --enable-kbd-layout or --disable-kbd-layout was given.
 if test "${enable_kbd_layout+set}" = set; then
@@ -11166,7 +11169,7 @@ EOF
 
 
 echo $ac_n "checking if experimental JavaScript support should be used""... $ac_c" 1>&6
-echo "configure:11170: checking if experimental JavaScript support should be used" >&5
+echo "configure:11173: checking if experimental JavaScript support should be used" >&5
 
 # Check whether --enable-libjs or --disable-libjs was given.
 if test "${enable_libjs+set}" = set; then
@@ -11190,7 +11193,7 @@ EOF
 
 
 echo $ac_n "checking if html source should be colorized""... $ac_c" 1>&6
-echo "configure:11194: checking if html source should be colorized" >&5
+echo "configure:11197: checking if html source should be colorized" >&5
 
 # Check whether --enable-prettysrc or --disable-prettysrc was given.
 if test "${enable_prettysrc+set}" = set; then
@@ -11214,7 +11217,7 @@ EOF
 
 
 echo $ac_n "checking if read-progress message should show ETA""... $ac_c" 1>&6
-echo "configure:11218: checking if read-progress message should show ETA" >&5
+echo "configure:11221: checking if read-progress message should show ETA" >&5
 
 # Check whether --enable-read-eta or --disable-read-eta was given.
 if test "${enable_read_eta+set}" = set; then
@@ -11238,7 +11241,7 @@ EOF
 
 
 echo $ac_n "checking if scrollbar code should be used""... $ac_c" 1>&6
-echo "configure:11242: checking if scrollbar code should be used" >&5
+echo "configure:11245: checking if scrollbar code should be used" >&5
 
 # Check whether --enable-scrollbar or --disable-scrollbar was given.
 if test "${enable_scrollbar+set}" = set; then
@@ -11269,7 +11272,7 @@ EOF
 fi
 
 echo $ac_n "checking if source caching should be used""... $ac_c" 1>&6
-echo "configure:11273: checking if source caching should be used" >&5
+echo "configure:11276: checking if source caching should be used" >&5
 
 # Check whether --enable-source-cache or --disable-source-cache was given.
 if test "${enable_source_cache+set}" = set; then
@@ -11296,7 +11299,7 @@ EOF
 
 
 echo $ac_n "checking if alternative line-edit bindings should be used""... $ac_c" 1>&6
-echo "configure:11300: checking if alternative line-edit bindings should be used" >&5
+echo "configure:11303: checking if alternative line-edit bindings should be used" >&5
 
 # Check whether --enable-alt-bindings or --disable-alt-bindings was given.
 if test "${enable_alt_bindings+set}" = set; then
@@ -11320,7 +11323,7 @@ EOF
 
 
 echo $ac_n "checking if you want to use extended HTML DTD logic""... $ac_c" 1>&6
-echo "configure:11324: checking if you want to use extended HTML DTD logic" >&5
+echo "configure:11327: checking if you want to use extended HTML DTD logic" >&5
 
 # Check whether --enable-extended-dtd or --disable-extended-dtd was given.
 if test "${enable_extended_dtd+set}" = set; then
@@ -11344,7 +11347,7 @@ EOF
 
 
 echo $ac_n "checking if partial-display should be used""... $ac_c" 1>&6
-echo "configure:11348: checking if partial-display should be used" >&5
+echo "configure:11351: checking if partial-display should be used" >&5
 
 # Check whether --enable-partial or --disable-partial was given.
 if test "${enable_partial+set}" = set; then
@@ -11368,7 +11371,7 @@ EOF
 
 
 echo $ac_n "checking if you want to use external commands""... $ac_c" 1>&6
-echo "configure:11372: checking if you want to use external commands" >&5
+echo "configure:11375: checking if you want to use external commands" >&5
 
 # Check whether --enable-externs or --disable-externs was given.
 if test "${enable_externs+set}" = set; then
@@ -11392,7 +11395,7 @@ EOF
 
 
 echo $ac_n "checking if you want to use setfont support""... $ac_c" 1>&6
-echo "configure:11396: checking if you want to use setfont support" >&5
+echo "configure:11399: checking if you want to use setfont support" >&5
 
 # Check whether --enable-font-switch or --disable-font-switch was given.
 if test "${enable_font_switch+set}" = set; then
@@ -11416,7 +11419,7 @@ EOF
 
 
 echo $ac_n "checking if you want cgi-link support""... $ac_c" 1>&6
-echo "configure:11420: checking if you want cgi-link support" >&5
+echo "configure:11423: checking if you want cgi-link support" >&5
 
 # Check whether --enable-cgi-links or --disable-cgi-links was given.
 if test "${enable_cgi_links+set}" = set; then
@@ -11435,7 +11438,7 @@ fi
 echo "$ac_t""$enableval" 1>&6
 
 echo $ac_n "checking if you want change-exec support""... $ac_c" 1>&6
-echo "configure:11439: checking if you want change-exec support" >&5
+echo "configure:11442: checking if you want change-exec support" >&5
 
 # Check whether --enable-change-exec or --disable-change-exec was given.
 if test "${enable_change_exec+set}" = set; then
@@ -11459,7 +11462,7 @@ EOF
 
 
 echo $ac_n "checking if you want exec-links support""... $ac_c" 1>&6
-echo "configure:11463: checking if you want exec-links support" >&5
+echo "configure:11466: checking if you want exec-links support" >&5
 
 # Check whether --enable-exec-links or --disable-exec-links was given.
 if test "${enable_exec_links+set}" = set; then
@@ -11483,7 +11486,7 @@ EOF
 
 
 echo $ac_n "checking if you want exec-scripts support""... $ac_c" 1>&6
-echo "configure:11487: checking if you want exec-scripts support" >&5
+echo "configure:11490: checking if you want exec-scripts support" >&5
 
 # Check whether --enable-exec-scripts or --disable-exec-scripts was given.
 if test "${enable_exec_scripts+set}" = set; then
@@ -11507,7 +11510,7 @@ EOF
 
 
 echo $ac_n "checking if you want internal-links feature""... $ac_c" 1>&6
-echo "configure:11511: checking if you want internal-links feature" >&5
+echo "configure:11514: checking if you want internal-links feature" >&5
 
 # Check whether --enable-internal-links or --disable-internal-links was given.
 if test "${enable_internal_links+set}" = set; then
@@ -11531,7 +11534,7 @@ EOF
 
 
 echo $ac_n "checking if you want to fork NSL requests""... $ac_c" 1>&6
-echo "configure:11535: checking if you want to fork NSL requests" >&5
+echo "configure:11538: checking if you want to fork NSL requests" >&5
 
 # Check whether --enable-nsl-fork or --disable-nsl-fork was given.
 if test "${enable_nsl_fork+set}" = set; then
@@ -11555,7 +11558,7 @@ EOF
 
 
 echo $ac_n "checking if you want to log URL requests via syslog""... $ac_c" 1>&6
-echo "configure:11559: checking if you want to log URL requests via syslog" >&5
+echo "configure:11562: checking if you want to log URL requests via syslog" >&5
 
 # Check whether --enable-syslog or --disable-syslog was given.
 if test "${enable_syslog+set}" = set; then
@@ -11579,7 +11582,7 @@ EOF
 
 
 echo $ac_n "checking if persistent-cookie logic should be used""... $ac_c" 1>&6
-echo "configure:11583: checking if persistent-cookie logic should be used" >&5
+echo "configure:11586: checking if persistent-cookie logic should be used" >&5
 
 # Check whether --enable-persistent-cookies or --disable-persistent-cookies was given.
 if test "${enable_persistent_cookies+set}" = set; then
@@ -11603,7 +11606,7 @@ EOF
 
 
 echo $ac_n "checking if you want to underline links""... $ac_c" 1>&6
-echo "configure:11607: checking if you want to underline links" >&5
+echo "configure:11610: checking if you want to underline links" >&5
 
 # Check whether --enable-underlines or --disable-underlines was given.
 if test "${enable_underlines+set}" = set; then
@@ -11627,7 +11630,7 @@ EOF
 
 
 echo $ac_n "checking if help files should be gzip'ed""... $ac_c" 1>&6
-echo "configure:11631: checking if help files should be gzip'ed" >&5
+echo "configure:11634: checking if help files should be gzip'ed" >&5
 
 # Check whether --enable-gzip-help or --disable-gzip-help was given.
 if test "${enable_gzip_help+set}" = set; then
@@ -11656,7 +11659,7 @@ fi
 
 
 echo $ac_n "checking if you want to use zlib for decompression of some gzip files""... $ac_c" 1>&6
-echo "configure:11660: checking if you want to use zlib for decompression of some gzip files" >&5
+echo "configure:11663: checking if you want to use zlib for decompression of some gzip files" >&5
 
 # Check whether --with-zlib or --without-zlib was given.
 if test "${with_zlib+set}" = set; then
@@ -11673,12 +11676,12 @@ if test ".$use_zlib" != ".no" ; then
 	cf_cv_have_lib_z=no
 	cf_libdir=""
 	echo $ac_n "checking for gzopen""... $ac_c" 1>&6
-echo "configure:11677: checking for gzopen" >&5
+echo "configure:11680: checking for gzopen" >&5
 if eval "test \"`echo '$''{'ac_cv_func_gzopen'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11682 "configure"
+#line 11685 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gzopen(); below.  */
@@ -11701,7 +11704,7 @@ gzopen();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11705: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_gzopen=yes"
 else
@@ -11721,17 +11724,17 @@ else
 
 		cf_save_LIBS="$LIBS"
 		echo $ac_n "checking for gzopen in -lz""... $ac_c" 1>&6
-echo "configure:11725: checking for gzopen in -lz" >&5
+echo "configure:11728: checking for gzopen in -lz" >&5
 		LIBS="-lz $LIBS"
 		cat > conftest.$ac_ext <<EOF
-#line 11728 "configure"
+#line 11731 "configure"
 #include "confdefs.h"
 #include <zlib.h>
 int main() {
 gzopen("name","mode")
 ; return 0; }
 EOF
-if { (eval echo configure:11735: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 			 cf_cv_have_lib_z=yes
@@ -11759,17 +11762,17 @@ test "$prefix" != /opt           && cf_search="$cf_search /opt/lib /opt/lib/z"
 			for cf_libdir in $cf_search
 			do
 				echo $ac_n "checking for -lz in $cf_libdir""... $ac_c" 1>&6
-echo "configure:11763: checking for -lz in $cf_libdir" >&5
+echo "configure:11766: checking for -lz in $cf_libdir" >&5
 				LIBS="-L$cf_libdir -lz $cf_save_LIBS"
 				cat > conftest.$ac_ext <<EOF
-#line 11766 "configure"
+#line 11769 "configure"
 #include "confdefs.h"
 #include <zlib.h>
 int main() {
 gzopen("name","mode")
 ; return 0; }
 EOF
-if { (eval echo configure:11773: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 			 		 cf_cv_have_lib_z=yes
@@ -11805,7 +11808,7 @@ EOF
 fi
 
 echo $ac_n "checking if you want to exclude FINGER code""... $ac_c" 1>&6
-echo "configure:11809: checking if you want to exclude FINGER code" >&5
+echo "configure:11812: checking if you want to exclude FINGER code" >&5
 
 # Check whether --enable-finger or --disable-finger was given.
 if test "${enable_finger+set}" = set; then
@@ -11829,7 +11832,7 @@ EOF
 
 
 echo $ac_n "checking if you want to exclude GOPHER code""... $ac_c" 1>&6
-echo "configure:11833: checking if you want to exclude GOPHER code" >&5
+echo "configure:11836: checking if you want to exclude GOPHER code" >&5
 
 # Check whether --enable-gopher or --disable-gopher was given.
 if test "${enable_gopher+set}" = set; then
@@ -11853,7 +11856,7 @@ EOF
 
 
 echo $ac_n "checking if you want to exclude NEWS code""... $ac_c" 1>&6
-echo "configure:11857: checking if you want to exclude NEWS code" >&5
+echo "configure:11860: checking if you want to exclude NEWS code" >&5
 
 # Check whether --enable-news or --disable-news was given.
 if test "${enable_news+set}" = set; then
@@ -11877,7 +11880,7 @@ EOF
 
 
 echo $ac_n "checking if you want to exclude FTP code""... $ac_c" 1>&6
-echo "configure:11881: checking if you want to exclude FTP code" >&5
+echo "configure:11884: checking if you want to exclude FTP code" >&5
 
 # Check whether --enable-ftp or --disable-ftp was given.
 if test "${enable_ftp+set}" = set; then
@@ -11906,7 +11909,7 @@ EOF
 # All DirEd functions that were enabled on compilation can be disabled
 # or modified at run time via DIRED_MENU symbols in lynx.cfg.
 echo $ac_n "checking if directory-editor code should be used""... $ac_c" 1>&6
-echo "configure:11910: checking if directory-editor code should be used" >&5
+echo "configure:11913: checking if directory-editor code should be used" >&5
 
 # Check whether --enable-dired or --disable-dired was given.
 if test "${enable_dired+set}" = set; then
@@ -11932,7 +11935,7 @@ EOF
 
 
 	echo $ac_n "checking if you wish to allow extracting from archives via DirEd""... $ac_c" 1>&6
-echo "configure:11936: checking if you wish to allow extracting from archives via DirEd" >&5
+echo "configure:11939: checking if you wish to allow extracting from archives via DirEd" >&5
 	
 # Check whether --enable-dired-archive or --disable-dired-archive was given.
 if test "${enable_dired_archive+set}" = set; then
@@ -11951,7 +11954,7 @@ fi
 	echo "$ac_t""$enableval" 1>&6
 
 	echo $ac_n "checking if you wish to allow users to redefine DirEd keys""... $ac_c" 1>&6
-echo "configure:11955: checking if you wish to allow users to redefine DirEd keys" >&5
+echo "configure:11958: checking if you wish to allow users to redefine DirEd keys" >&5
 	
 # Check whether --enable-dired-override or --disable-dired-override was given.
 if test "${enable_dired_override+set}" = set; then
@@ -11977,7 +11980,7 @@ fi
 	echo "$ac_t""$enableval" 1>&6
 
 	echo $ac_n "checking if you wish to allow permissions commands via DirEd""... $ac_c" 1>&6
-echo "configure:11981: checking if you wish to allow permissions commands via DirEd" >&5
+echo "configure:11984: checking if you wish to allow permissions commands via DirEd" >&5
 	
 # Check whether --enable-dired-permit or --disable-dired-permit was given.
 if test "${enable_dired_permit+set}" = set; then
@@ -12003,7 +12006,7 @@ fi
 	echo "$ac_t""$enableval" 1>&6
 
 	echo $ac_n "checking if you wish to allow executable-permission commands via DirEd""... $ac_c" 1>&6
-echo "configure:12007: checking if you wish to allow executable-permission commands via DirEd" >&5
+echo "configure:12010: checking if you wish to allow executable-permission commands via DirEd" >&5
 	
 # Check whether --enable-dired-xpermit or --disable-dired-xpermit was given.
 if test "${enable_dired_xpermit+set}" = set; then
@@ -12022,7 +12025,7 @@ fi
 	echo "$ac_t""$enableval" 1>&6
 
 	echo $ac_n "checking if you wish to allow "tar" commands from DirEd""... $ac_c" 1>&6
-echo "configure:12026: checking if you wish to allow "tar" commands from DirEd" >&5
+echo "configure:12029: checking if you wish to allow "tar" commands from DirEd" >&5
 	
 # Check whether --enable-dired-tar or --disable-dired-tar was given.
 if test "${enable_dired_tar+set}" = set; then
@@ -12048,7 +12051,7 @@ fi
 	echo "$ac_t""$enableval" 1>&6
 
 	echo $ac_n "checking if you wish to allow "uudecode" commands from DirEd""... $ac_c" 1>&6
-echo "configure:12052: checking if you wish to allow "uudecode" commands from DirEd" >&5
+echo "configure:12055: checking if you wish to allow "uudecode" commands from DirEd" >&5
 	
 # Check whether --enable-dired-uudecode or --disable-dired-uudecode was given.
 if test "${enable_dired_uudecode+set}" = set; then
@@ -12074,7 +12077,7 @@ fi
 	echo "$ac_t""$enableval" 1>&6
 
 	echo $ac_n "checking if you wish to allow "zip" and "unzip" commands from DirEd""... $ac_c" 1>&6
-echo "configure:12078: checking if you wish to allow "zip" and "unzip" commands from DirEd" >&5
+echo "configure:12081: checking if you wish to allow "zip" and "unzip" commands from DirEd" >&5
 	
 # Check whether --enable-dired-zip or --disable-dired-zip was given.
 if test "${enable_dired_zip+set}" = set; then
@@ -12100,7 +12103,7 @@ fi
 	echo "$ac_t""$enableval" 1>&6
 
 	echo $ac_n "checking if you wish to allow "gzip" and "gunzip" commands from DirEd""... $ac_c" 1>&6
-echo "configure:12104: checking if you wish to allow "gzip" and "gunzip" commands from DirEd" >&5
+echo "configure:12107: checking if you wish to allow "gzip" and "gunzip" commands from DirEd" >&5
 	
 # Check whether --enable-dired-gzip or --disable-dired-gzip was given.
 if test "${enable_dired_gzip+set}" = set; then
@@ -12127,7 +12130,7 @@ fi
 fi
 
 echo $ac_n "checking if you want long-directory listings""... $ac_c" 1>&6
-echo "configure:12131: checking if you want long-directory listings" >&5
+echo "configure:12134: checking if you want long-directory listings" >&5
 
 # Check whether --enable-long-list or --disable-long-list was given.
 if test "${enable_long_list+set}" = set; then
@@ -12153,7 +12156,7 @@ fi
 echo "$ac_t""$enableval" 1>&6
 
 echo $ac_n "checking if parent-directory references are permitted""... $ac_c" 1>&6
-echo "configure:12157: checking if parent-directory references are permitted" >&5
+echo "configure:12160: checking if parent-directory references are permitted" >&5
 
 # Check whether --enable-parent-dir-refs or --disable-parent-dir-refs was given.
 if test "${enable_parent_dir_refs+set}" = set; then
@@ -12173,7 +12176,7 @@ echo "$ac_t""$enableval" 1>&6
 
 
 echo $ac_n "checking if we can include termio.h with curses""... $ac_c" 1>&6
-echo "configure:12177: checking if we can include termio.h with curses" >&5
+echo "configure:12180: checking if we can include termio.h with curses" >&5
 if eval "test \"`echo '$''{'cf_cv_termio_and_curses'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -12182,7 +12185,7 @@ else
     CFLAGS="$CFLAGS -DHAVE_CONFIG_H -I. -I${srcdir-.} -I${srcdir-.}/src -I${srcdir-.}/WWW/Library/Implementation"
     touch lynx_cfg.h
     cat > conftest.$ac_ext <<EOF
-#line 12186 "configure"
+#line 12189 "configure"
 #include "confdefs.h"
 
 #include <LYCurses.h>
@@ -12191,7 +12194,7 @@ int main() {
 putchar(0x0a)
 ; return 0; }
 EOF
-if { (eval echo configure:12195: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12198: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_termio_and_curses=yes
 else
diff --git a/configure.in b/configure.in
index 92a6ee47..558ef4b6 100644
--- a/configure.in
+++ b/configure.in
@@ -58,7 +58,7 @@ test "$with_leak_checks" = "yes" && AC_DEFINE(LY_FIND_LEAKS)
 
 AC_MSG_CHECKING(if you want to enable debug-code)
 CF_ARG_ENABLE(debug,
-	[  --enable-debug          logic for object code debugging],
+	[  --enable-debug          compile w/ debugging (if \$CFLAGS is set, add -g there, too)],
 	[with_debug=yes],
 	[with_debug=no])
 AC_MSG_RESULT($with_debug)
@@ -268,6 +268,9 @@ clix*)
 convex*)
 	CFLAGS="$CFLAGS -D__STDC__ -Dunix"
 	;;
+cygwin*)
+	PROG_EXT=".exe"
+	;;
 dgux*)
 	CFLAGS="$CFLAGS -DDGUX"
 	;;
diff --git a/docs/README.defines b/docs/README.defines
index 286c5b71..ba80b0cc 100644
--- a/docs/README.defines
+++ b/docs/README.defines
@@ -142,7 +142,8 @@ They may directly affect several source files.  Filenames show where
 they are set.  Normally installers shouldn't have to care about these
 symbols.
 
-SAVE_TIME_NOT_SPACE	HTString.c	minmize number of some malloc calls
+COOKIE_FILE		LYMain.c	default cookie file in HOME dir
+SAVE_TIME_NOT_SPACE	HTString.c	minimize number of some malloc calls
 SHOW_WHEREIS_TARGETS	LYCurses.h	whereis search highlighting
 USE_KEYMAPS		LYCurses.h	use of .lynx-keymaps files
 
diff --git a/lynx.cfg b/lynx.cfg
index c321d26a..5c6a90b7 100644
--- a/lynx.cfg
+++ b/lynx.cfg
@@ -998,14 +998,19 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html
 
 # COOKIE_FILE is the default file from which persistent cookies are read
 # at startup (if the file exists), and into which persistent cookies are
-# stored before exiting, if Lynx was compiled with EXP_PERSISTENT_COOKIES.
+# stored before exiting, if Lynx was compiled with EXP_PERSISTENT_COOKIES
+# and the PERSISTENT_COOKIES option is enabled.
 # The cookie file can also be specified in .lynxrc or on the command line.
+#
 #COOKIE_FILE:~/.lynx_cookies
 
-# PERSISTENT_COOKIES indicates that cookies should be stored for use between
-# Lynx sessions.  It is only used if Lynx was compiled with
-# EXP_PERSISTENT_COOKIES.  Use this flag to disable the feature.
-#PERSISTENT_COOKIES:TRUE
+# PERSISTENT_COOKIES indicates that cookies should be read at startup from
+# the COOKIE_FILE, and saved at exit for storage between Lynx sessions.
+# It is not used if Lynx was compiled without EXP_PERSISTENT_COOKIES.
+# The default is FALSE, so that the feature needs to be enabled here
+# explicitly if you want it.
+#
+#PERSISTENT_COOKIES:FALSE
 
 # VMS:
 #=====
@@ -1017,7 +1022,7 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html
 # command line via a /subject="SUBJECT" qualifier, and inclusion
 # of other relevant headers may not be possible.
 # If your mailer uses another syntax, some hacking of the mailform()
-# mailmsg() and reply_by_mail() functions in LYMail.c, and printfile()
+# mailmsg() and reply_by_mail() functions in LYMail.c, and send_file_to_mail()
 # function in LYPrint.c, may be required.
 #
 #SYSTEM_MAIL:PMDF SEND
@@ -1356,6 +1361,28 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html
 #
 #NO_FILE_REFERER:FALSE
 
+# REFERER_WITH_QUERY controls what happens when the URL in a Referer
+# header to be sent would contain a query part in the form of a '?'
+# character followed by one or more attribute=value pairs.  Query parts
+# often contain sensitive or personal information resulting from filling
+# out forms, or other info that allows tracking of a user's browsing path
+# through a site, an thus should not be put in a Referer header (which may
+# get sent to an unrelated third-party site).  On the other hand, some
+# sites (improperly) rely on browsers sending Referer headers, even when
+# the user is coming from a page whose URL has a query part.
+#
+# If REFERER_WITH_QUERY is SEND, full Referer headers will be sent
+# including the query part (unless sending of Referer is disabled in
+# general, see NO_REFERER_HEADER above).  If REFERER_WITH_QUERY is
+# PARTIAL, the Referer header will contain a partial URL, with the query
+# part stripped off.  This is not strictly correct, but should satisfy
+# those sites that check only whether the user arrived at a page from an
+# "outside" link.  If REFERER_WITH_QUERY is set to DROP (or anything else
+# unrecognized), the default, no Referer header is sent at all in this
+# situation.
+#
+#REFERER_WITH_QUERY:DROP
+
 # VERBOSE_IMAGES controls whether Lynx replaces [LINK], [INLINE] and [IMAGE]
 # (for images without ALT) with filenames of these images.
 # This can be useful in determining what images are important
@@ -1363,6 +1390,7 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html
 # provided the author uses meaningful names.
 #
 # The definition here will override the setting in userdefs.h.
+#
 #VERBOSE_IMAGES:TRUE
 
 # If MAKE_LINKS_FOR_ALL_IMAGES is TRUE, all images will be given links
@@ -1376,6 +1404,7 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html
 # and can be toggled via an "-image_links" command-line switch.
 # The user can also use the LYK_IMAGE_TOGGLE key (default `*')
 # or the `Show Images' option in the (new) Options Form.
+#
 #MAKE_LINKS_FOR_ALL_IMAGES:FALSE
 
 # If MAKE_PSEUDO_ALTS_FOR_INLINES is FALSE, inline images which don't specify
@@ -1389,6 +1418,7 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html
 # and can be toggled via a "-pseudo_inlines" command-line switch.
 # The user can also use the LYK_INLINE_TOGGLE key (default `[')
 # or the `Show Images' option in the (new) Options Form.
+#
 #MAKE_PSEUDO_ALTS_FOR_INLINES:TRUE
 
 # If SUBSTITUTE_UNDERSCORES is TRUE, the _underline_ format will be used
@@ -1816,8 +1846,11 @@ MINIMAL_COMMENTS:TRUE
 # level of key mapping is supported via an external ".lynx-keymaps" file.
 # This file, if found in the home directory at startup, will always be
 # used under those conditions; see lynx-keymaps distributed in the samples
-# subdirectory for furhter explanation.  Note that mapping via
-# .lynx-keymaps, if applicable, is a step that precedes KEYMAP.
+# subdirectory for further explanation.  Note that mapping via
+# .lynx-keymaps, if applicable, is a step that logically comes before the
+# mappings done here: KEYMAP maps the result of that step (which still
+# represents a key) to a function (which represents an action that Lynx
+# should perform).
 
 #KEYMAP:0x5C:SOURCE	# Toggle source viewing mode (show HTML source)
 #KEYMAP:^R:RELOAD	# Reload the current document and redisplay
@@ -1854,7 +1887,7 @@ MINIMAL_COMMENTS:TRUE
 #KEYMAP:H:HELP		# Show default help screen
 #KEYMAP:0x108:HELP	# Function key Help - Show default help screen
 #KEYMAP:i:INDEX		# Show default index
-#*** Edit FORM_LINK_SUBMIT_MESSAGE in userdefs.h if you change NOCACHE ***
+#*** Edit FORM_LINK_* messages in LYMessages_en.h if you change NOCACHE ***
 #KEYMAP:x:NOCACHE	# Force submission of form or link with no-cache
 #*** Do not change INTERRUPT from 'z' & 'Z' ***
 #KEYMAP:z:INTERRUPT	# Interrupt network transmission
diff --git a/lynx_help/Lynx_users_guide.html b/lynx_help/Lynx_users_guide.html
index a400ab6e..64ac7eb7 100644
--- a/lynx_help/Lynx_users_guide.html
+++ b/lynx_help/Lynx_users_guide.html
@@ -355,8 +355,8 @@ href="#RemoteSource">Download</a> the source.
 document with a <em>.html</em> or <em>.htm</em> extension, if you
 want to read it with Lynx again later.
 
-<p>Lynx can allow users to edit documents that reside on the local
-system.  To enable editing, documents must be referenced using a
+<p ID="FileEdit">Lynx can allow users to edit documents that reside on the
+local system.  To enable editing, documents must be referenced using a
 "file:" URL or by specifying a plain filename on the command line as
 in the following two examples:
 
@@ -506,6 +506,7 @@ HREF="keystrokes/option_help.html">HELP!</A>
   Show cursor                      : [OFF]
   User mode                        : [Advanced....]
   VI keys                          : [OFF]
+  Visited Pages                    : [As Visit Tree..........]
   Display character set            : [Western (ISO-8859-1)...........]
   X Display                        : __________________________________________
 
@@ -594,9 +595,10 @@ return to Lynx or the '<em>&gt;</em>' command to save the options to a
 
 <dl>
    <dt>Editor
-        <dd>The editor to be invoked when editing browsable files, and
-            sending mail or comments.  The full pathname of the editor
-            command should be specified when possible.
+        <dd>The editor to be invoked when editing browsable files, when
+            sending mail or comments, when preparing a news article for
+	    posting, and for external TEXTAREA editing.  The full pathname
+            of the editor command should be specified when possible.
 
    <dt>DISPLAY variable
         <dd>This option is only relevant to X Window users.  The DISPLAY
@@ -782,6 +784,16 @@ return to Lynx or the '<em>&gt;</em>' command to save the options to a
 
          <p>Note: this has no direct effect on the line-editor's key bindings.
 
+   <dt>Visited Pages
+   	<dd>Enable several different views of the visited links:
+        <dl>
+          <dt>By First Visit
+          <dt>By First Visit Reversed
+          <dt>As Visit Tree
+          <dt>By Last Visit
+          <dt>By Last Visit Reversed
+        </dl>
+
    <dt>Show dot files
         <dd>If display/creation of hidden (dot) files/directories is
             enabled, you can turn the feature on or off via this setting.
@@ -1235,7 +1247,7 @@ commands.
             document in trace mode.  You may then examine the
             <em>Lynx Trace Log</em> file with the <em>;</em> command
             if enabled (see below), watch out especially for lines marked
-            with a number of asterisks '<tt>*****</tt>'.
+            with a number of asterisks '<code>*****</code>'.
             You also can submit the document for
             validation via links in the online help menu.  If you are able
             to diagnose the problem, send a message about it to the
@@ -1374,11 +1386,33 @@ options from a list, and fields for entering text.
     <em>TAB</em> key will move you down beyond the bottom of the TEXTAREA
     field.
 
-<dt>Editing TEXTAREA Fields
-<dd>TEXTAREA fields can be edited using an external editor
-    by entering <em>^Ve</em> when in the TEXTAREA.<p>
-
-    You can also use two other special TEXTAREA functions
+<dt>Editing TEXTAREA Fields and Special TEXTAREA Functions
+<dd>TEXTAREA fields can be edited using an external editor.
+    The statusline should tell you when this is possible and what
+    key to use, it might for example say
+
+<PRE>          <strong>(Textarea) Enter text. </strong>[...] <strong>(^Ve for editor).</strong></PRE>
+
+    An external editor has to be defined, for example in the <a
+    href="#InteractiveOptions">Options Menu</a>, before you can start
+    using this function.
+
+    <p>To map a key so that it will invoke external TEXTAREA editing, you
+    can either configure Lynx to use the <a
+    href="keystrokes/bashlike_edit_help.html">Bash-like Line-Editor
+    Bindings</a>, or add KEYMAP bindings to your <em>lynx.cfg</em> file,
+    e.g.<br>
+    &nbsp;&nbsp;KEYMAP:e:EDITTEXTAREA<br>
+    or<br>
+    &nbsp;&nbsp;KEYMAP:e:DWIMEDIT<br>
+    (the first is only functional for TEXTAREA editing, while the second
+    allows to use the same key for normal <a href="#FileEdit">file
+    editing</A>).</p>
+
+    You can also use two other special TEXTAREA functions.  Again, these
+    are already bound to key sequences in the <a
+    href="keystrokes/bashlike_edit_help.html#TASpecial">Bash-like Bindings</a>.
+    You can invoke them independently of the line edit style
     by adding KEYMAP bindings to your <em>lynx.cfg</em> file, e.g.<p>
 
     &nbsp;&nbsp;KEYMAP:$:GROWTEXTAREA<br>
@@ -1386,7 +1420,7 @@ options from a list, and fields for entering text.
 
     With these bindings -- you can choose other keys -- ,<br>
     (in a TEXTAREA only) <em>^V$</em> adds 5 lines to the TEXTAREA
-    and <em>^V#</em> brings up the name of an existing file
+    and <em>^V#</em> prompts for the name of an existing file
     to be inserted into the TEXTAREA (above the cursorline).
     An automatic variation is normally compiled in,
     so that hitting <em>Enter</em> with the cursor on the last line
@@ -1407,7 +1441,7 @@ options from a list, and fields for entering text.
     &nbsp;&nbsp;stty lnext ^V<br>
     &nbsp;&nbsp;exit</code><p>
 
-    NB when NOT in a TEXTAREA, <em>^V</em> is by default bound
+    NB when NOT in the Line Editor, <em>^V</em> is by default bound
     to the command
     to switch between SortaSGML and TagSoup HTML parsing
     (i.e., SWITCH_DTD ).
diff --git a/lynx_help/keystrokes/bashlike_edit_help.html b/lynx_help/keystrokes/bashlike_edit_help.html
index eea18fd9..e0d63157 100644
--- a/lynx_help/keystrokes/bashlike_edit_help.html
+++ b/lynx_help/keystrokes/bashlike_edit_help.html
@@ -44,12 +44,14 @@ the '.lynxrc' file.
      UPPER  Upper case the line   -  M-u
      LOWER  Lower case the line   -  M-l
 
-<!-- PASS!  Textarea external edit  - C-e C-e - mentioned in note [3] below
-                                    statusline shows binding where relevant
+     LKCMD  Invoke cmd prompt     -  C-v [FORM]
+     SWMAP  Switch input keymap   -  C-^ (if compiled in)
+
+<A NAME="TASpecial">Special commands for use in textarea fields</A> [FORM]:
+
+     PASS!  Textarea external edit  - C-e C-e [4], C-x e
      PASS!  Insert file in textarea - C-x i
      PASS!  Grow textarea           - C-x g
--->     LKCMD  Invoke cmd prompt     -  C-v [FORM]
-     SWMAP  Switch input keymap   -  C-^ (if compiled in)
 
 </pre>
 Here is a little textarea for practice:<BR>
@@ -70,14 +72,14 @@ Advanced emacs-like commands:
     YANK    Insert text last killed (with KILLREG) -  C-y
 </pre>
 <h2>Notes</h2>
-<P><tt>
+<P><samp>
      <DFN>C-</DFN><strong>key</strong> means Control+<strong><kbd>key</kbd></strong>.  <DFN
-     ><tt>C-x </tt></DFN><strong>key</strong> means first Control+<kbd>x</kbd>, then
+     ><code>C-x </code></DFN><strong>key</strong> means first Control+<kbd>x</kbd>, then
      <strong><kbd>key</kbd></strong>.
                                                                        <DFN
                         >M-</DFN>key means Meta+<strong><kbd>key</kbd></strong>, where Meta
      is a modifier that can be entered in a variety of ways:
-</tt></P><UL>
+</samp></P><UL>
 <LI>First ESC, then the <strong><kbd>key</kbd></strong>.
     This doesn't work with all systems or on all connections, and if it
     does may not work for some keys (because the ESC character is also
diff --git a/lynx_help/lynx_url_support.html b/lynx_help/lynx_url_support.html
index 80d6bf1f..47bd0679 100644
--- a/lynx_help/lynx_url_support.html
+++ b/lynx_help/lynx_url_support.html
@@ -209,18 +209,24 @@ URL which Lynx created for it.
 
 The ftp URL has the general format:
 <pre>
-      <em>ftp://username:password@host:port/path;type=[D,I, or A]</em>
+      <em>ftp://host:port/path;type=[D,I, or A]</em>
+      <em>ftp://username@host:port/path;type=[D,I, or A]</em>
 </pre>
 
 <p>The default port is <em>:21</em> and the default <em>username</em>
-is <em>anonymous</em>.  If <em>username</em> is included but not
-<em>:password</em>, Lynx will prompt you for the password.  This is
-recommended, as otherwise the URL will have it completely unencrypted.
-Do not include the <em>@</em> if neither <em>username</em> nor
-<em>:password</em> is included.  For anonymous ftp, Lynx uses your
-<em>personal_mail_address</em> (user@host) as the <em>:password</em>
+is <em>anonymous</em>.  If <em>username</em> is included,
+Lynx will prompt you for the password.  For anonymous ftp, Lynx uses your
+<em>personal_mail_address</em> (user@host) as the <em>password</em>
 if it has been defined via the '<em>o</em>'ptions menu.  Otherwise,
 Lynx uses the dummy password <em>WWWUser</em>.
+(A password can also be embedded in the URL, by replacing
+<em>username</em> with <em>username:password</em>.  This is strongly
+discouraged for 'real' passwords that must be kept secret, since URLs
+with the completely unencrypted <em>password</em> may show up on the
+screen, in HISTORY and LIST pages etc., and may even become visible to
+remote sites for example through Referer headers.)
+Do not include the <em>@</em> if neither <em>username</em> nor
+<em>:password</em> is included.
 
 <p>The <em>;type=</em> parameter can be used with value <em>D</em>,
 <em>I</em>, or <em>A</em> to force handling of the URL as, respectively,
@@ -566,10 +572,13 @@ ACTION for a FORM, and if enabled in your Lynx image has the format:
 <pre>
       <em>lynxcgi://localhost/path_to_CGI_script</em>
 </pre>
-where <em>//localhost/</em> is optional and always implied.
-The output of the script should be text/html and is rendered and displayed
-by Lynx. (Note that restrictions on acceptable paths can be imposed
-by the system administrator.)
+where <em>//localhost</em> is optional and always implied;
+the full path should be specified, as `~' is not recognised;
+if the script is in the directory Lynx was started from,
+the simple file name is adequate.  The output of the script
+should be text/html and is rendered and displayed by Lynx.
+Restrictions on use of lynxcgi and on acceptable paths can be imposed
+in <em>userdefs.h</em> and <em>lynx.cfg</em>, qv.
 
 <p>This is a Lynxism and should be used only in local documents intended
 solely for Lynx, or for limited local testing of CGI scripts without an
diff --git a/makefile.in b/makefile.in
index 9088261d..9c51a79f 100644
--- a/makefile.in
+++ b/makefile.in
@@ -405,9 +405,9 @@ LYHelp.h : LYHelp.hin
 	@echo
 	@echo '**********************************************'
 
-cfg_defs.h : $(srcdir)/cfg_defs.sh config.cache lynx_cfg.h
+cfg_defs.h : $(srcdir)/cfg_defs.sh $(srcdir)/cfg_edit.sh config.cache lynx_cfg.h
 	@rm -f $@
-	PATH=$(srcdir):$$PATH; export PATH; $(SHELL) -c '$(srcdir)/cfg_defs.sh'
+	$(SHELL) -c '$(srcdir)/cfg_defs.sh $(srcdir)'
 
 install-cfg : $(LIBDIR)
 	-mv -f $(LIBDIR)/lynx.cfg $(LIBDIR)/lynx.oldcfg
diff --git a/makelynx.bat b/makelynx.bat
index 6d47b75f..a18bd0a8 100644
--- a/makelynx.bat
+++ b/makelynx.bat
@@ -1,179 +1,291 @@
-REM Rough version of Dos batch makefile for MingW32 and lynx.exe 

-Rem Remember to precede this by "command /E:32000" and set the 

-Rem MingW32 paths 

- 

-SET DEFINES=-DNO_UNISTD_H 

-SET DEFINES=%DEFINES% -D_WINDOWS 

-SET DEFINES=%DEFINES% -DXMOSAIC_HACK 

-SET DEFINES=%DEFINES% -DACCESS_AUTH 

-SET DEFINES=%DEFINES% -DNO_UTMP 

-SET DEFINES=%DEFINES% -DNO_CUSERID 

-SET DEFINES=%DEFINES% -DNO_TTYTYPE 

-SET DEFINES=%DEFINES% -DNOSIGHUP 

-SET DEFINES=%DEFINES% -DDOSPATH 

-SET DEFINES=%DEFINES% -DNOUSERS 

-SET DEFINES=%DEFINES% -DHAVE_KEYPAD 

-SET DEFINES=%DEFINES% -DVC="2.14FM" 

-SET DEFINES=%DEFINES% -DUSE_SLANG 

-SET DEFINES=%DEFINES% -DWIN32 

- 

-SET INCLUDES=-I. -I..\..\..\ -I..\..\..\SRC 

- 

-SET CFLAGS=-O %INCLUDES% %DEFINES% 

-SET COMPILE_CMD=gcc -c %CFLAGS% 

- 

- 

-cd WWW\Library\Implementation 

- 

-SET FILES=crypt.c 

-SET FILES=%FILES% crypt_util.c 

-SET FILES=%FILES% getline.c 

-SET FILES=%FILES% getpass.c 

-SET FILES=%FILES% HTAABrow.c 

-SET FILES=%FILES% HTAAProt.c 

-SET FILES=%FILES% HTAAUtil.c 

-SET FILES=%FILES% HTAccess.c 

-SET FILES=%FILES% HTAnchor.c 

-SET FILES=%FILES% HTAssoc.c 

- 

-PAUSE 

-for %%f in ( %FILES% ) do %COMPILE_CMD% %%f 

-PAUSE 

- 

-SET FILES=HTAtom.c 

-SET FILES=%FILES% HTBTree.c 

-SET FILES=%FILES% HTChunk.c 

-SET FILES=%FILES% HTDOS.c 

-SET FILES=%FILES% HTFile.c 

-SET FILES=%FILES% HTFinger.c 

-SET FILES=%FILES% HTFormat.c 

-SET FILES=%FILES% HTFTP.c 

-SET FILES=%FILES% HTFWriter.c 

-SET FILES=%FILES% HTGopher.c 

-SET FILES=%FILES% HTGroup.c 

- 

-PAUSE 

-for %%f in ( %FILES% ) do %COMPILE_CMD% %%f 

-PAUSE 

- 

-SET FILES=HTLex.c 

-SET FILES=%FILES% HTList.c 

-SET FILES=%FILES% HTMIME.c 

-SET FILES=%FILES% HTMLDTD.c 

-SET FILES=%FILES% HTMLGen.c 

-SET FILES=%FILES% HTNews.c 

-SET FILES=%FILES% HTParse.c 

-SET FILES=%FILES% HTPlain.c 

-SET FILES=%FILES% HTRules.c 

-SET FILES=%FILES% HTString.c 

- 

-PAUSE 

-for %%f in ( %FILES% ) do %COMPILE_CMD% %%f 

-PAUSE 

- 

-SET FILES=HTStyle.c 

-SET FILES=%FILES% HTTCP.c 

-SET FILES=%FILES% HTTelnet.c 

-SET FILES=%FILES% HTTP.c 

-SET FILES=%FILES% HTUU.c 

-SET FILES=%FILES% HTVMS_WaisUI.c 

-SET FILES=%FILES% HTVMS_WaisProt.c 

-SET FILES=%FILES% HTWAIS.c 

-SET FILES=%FILES% HTWSRC.c 

-SET FILES=%FILES% SGML.c 

- 

-PAUSE 

-for %%f in ( %FILES% ) do %COMPILE_CMD% %%f 

-PAUSE 

- 

-ar crv *.o libwww.a 

- 

-PAUSE 

- 

-cd ..\..\..\src\chrtrans 

- 

-SET INCLUDES=-I. -I.. -I..\.. -I..\..\WWW\Library\Implementation 

-SET CFLAGS=-O %INCLUDES% %DEFINES% 

-SET COMPILE_CMD=gcc -c %CFLAGS% 

- 

-%COMPILE_CMD% makeuctb.c 

- 

-PAUSE 

-gcc -o makeuctb.exe makeuctb.o 

-PAUSE 

-call make32.bat 

-PAUSE 

-cd ..\ 

- 

-SET INCLUDES=-I. -I.. -I.\chrtrans -I..\WWW\Library\Implementation 

-SET LIBS=-lslang -L..\WWW\Library\Implementation -lwww 

-SET CFLAGS=-O %INCLUDES% %DEFINES% 

-SET COMPILE_CMD=gcc -c %CFLAGS% 

- 

-SET FILES=%FILES% DefaultStyle.c 

-SET FILES=%FILES% GridText.c 

-SET FILES=%FILES% HTAlert.c 

-SET FILES=%FILES% HTFWriter.c 

-SET FILES=%FILES% HTInit.c 

-SET FILES=%FILES% HTML.c 

-SET FILES=%FILES% LYBookmark.c 

-SET FILES=%FILES% LYCgi.c 

-SET FILES=%FILES% LYCharSets.c 

-SET FILES=%FILES% LYCharUtils.c 

-SET FILES=%FILES% LYClean.c 

-SET FILES=%FILES% LYCookie.c 

-SET FILES=%FILES% LYCurses.c 

-SET FILES=%FILES% LYDownload.c 

- 

-PAUSE 

-for %%f in ( %FILES% ) do %COMPILE_CMD% %%f 

-PAUSE 

- 

-SET FILES=LYEdit.c 

-SET FILES=%FILES% LYEditmap.c 

-SET FILES=%FILES% LYexit.c 

-SET FILES=%FILES% LYExtern.c 

-SET FILES=%FILES% LYForms.c 

-SET FILES=%FILES% LYGetFile.c 

-SET FILES=%FILES% LYHash.c 

-SET FILES=%FILES% LYHistory.c 

-SET FILES=%FILES% LYJump.c 

-SET FILES=%FILES% LYKeymap.c 

-SET FILES=%FILES% LYLeaks.c 

-SET FILES=%FILES% LYList.c 

-SET FILES=%FILES% LYLocal.c 

-SET FILES=%FILES% LYMail.c 

-SET FILES=%FILES% LYMain.c 

-SET FILES=%FILES% LYMainLoop.c 

- 

-PAUSE 

-for %%f in ( %FILES% ) do %COMPILE_CMD% %%f 

-PAUSE 

- 

-SET FILES=LYMap.c 

-SET FILES=%FILES% LYNews.c 

-SET FILES=%FILES% LYOptions.c 

-SET FILES=%FILES% LYPrettySrc.c 

-SET FILES=%FILES% LYPrint.c 

-SET FILES=%FILES% LYrcFile.c 

-SET FILES=%FILES% LYReadCFG.c 

-SET FILES=%FILES% LYSearch.c 

-SET FILES=%FILES% LYShowInfo.c 

-SET FILES=%FILES% LYStrings.c 

-SET FILES=%FILES% LYStyle.c 

-SET FILES=%FILES% LYTraversal.c 

-SET FILES=%FILES% LYUpload.c 

-SET FILES=%FILES% LYUtils.c 

-SET FILES=%FILES% mktime.c 

-SET FILES=%FILES% strstr.c 

-SET FILES=%FILES% UCAuto.c 

-SET FILES=%FILES% UCAux.c 

-SET FILES=%FILES% UCdomap.c 

- 

-PAUSE 

-for %%f in ( %FILES% ) do %COMPILE_CMD% %%f 

-PAUSE 

- 

-gcc -o lynx.exe %LIBS% 

-strip lynx.exe 

-ECHO "Welcome to lynx!" 

+REM Windows/Dos batch makefile for MingW32 and lynx.exe

+REM Remember to precede this by "command /E:32000" and to set the

+REM MingW32 paths

+REM Usage: makelynx [all|src|link]

+REM Default option: all

+REM Specifying "src" causes the libwww code to be skipped.

+REM Specifying "link" causes the batch file to skip to the final

+REM linking phase.

+REM Note that you have to edit i386-mingw32\include\stdlib.h to put

+REM an "#ifndef WIN_EX" around the declaration for `sleep', or the

+REM compile won't work.  There is also an "#ifndef PDCURSES" around

+REM the declaration for `beep' for the same reason.  To change the

+REM console library from libslang to libpdcurses, uncomment the

+REM `SET LIBRARY' line below.

+

+REM Taken from the MSC makefile:

+

+REM PUT THIS IN htutils.h:  LY_MAXPATH=1024

+REM SET LIBRARY=PDCURSES

+

+SET DEFINES=-DCJK_EX

+SET DEFINES=%DEFINES% -DSH_EX

+SET DEFINES=%DEFINES% -DWIN_EX

+SET DEFINES=%DEFINES% -D_WIN_CC

+SET DEFINES=%DEFINES% -D_WINDOWS

+SET DEFINES=%DEFINES% -DDOSPATH

+SET DEFINES=%DEFINES% -DEXP_ALT_BINDINGS

+SET DEFINES=%DEFINES% -DEXP_CHARTRANS_AUTOSWITCH

+SET DEFINES=%DEFINES% -DEXP_PERSISTENT_COOKIES

+SET DEFINES=%DEFINES% -DHAVE_DIRENT_H

+SET DEFINES=%DEFINES% -DHAVE_KEYPAD

+SET DEFINES=%DEFINES% -DXMOSAIC_HACK

+SET DEFINES=%DEFINES% -DACCESS_AUTH

+SET DEFINES=%DEFINES% -DNO_FILIO_H

+SET DEFINES=%DEFINES% -DNO_UNISTD_H

+SET DEFINES=%DEFINES% -DNO_UTMP

+SET DEFINES=%DEFINES% -DNO_CUSERID

+SET DEFINES=%DEFINES% -DNO_TTYTYPE

+SET DEFINES=%DEFINES% -DNOSIGHUP

+SET DEFINES=%DEFINES% -DNOUSERS

+SET DEFINES=%DEFINES% -DLONG_LIST

+SET DEFINES=%DEFINES% -DDISP_PARTIAL

+SET DEFINES=%DEFINES% -DVC="2.14FM"

+if "%LIBRARY%" == "PDCURSES" goto else1

+SET DEFINES=%DEFINES% -DUSE_SLANG

+goto endif1

+:else1

+SET DEFINES=%DEFINES% -DNCURSES

+SET DEFINES=%DEFINES% -DFANCY_CURSES

+SET DEFINES=%DEFINES% -DCOLOR_CURSES

+SET DEFINES=%DEFINES% -DUSE_COLOR_TABLE

+SET DEFINES=%DEFINES% -DNCURSES_VERSION

+SET DEFINES=%DEFINES% -DPDCURSES

+SET DEFINES=%DEFINES% -DSUPPORT_MULTIBYTE_EDIT

+SET DEFINES=%DEFINES% -DUSE_MULTIBYTE_CURSES

+SET DEFINES=%DEFINES% -DNCURSES_MOUSE_VERSION

+:endif1

+SET DEFINES=%DEFINES% -DUSE_EXTERNALS

+

+if not "%1" == "src" goto else

+	cd src

+	goto src

+:else

+if not "%1" == "link" goto endif

+	cd src

+	goto link

+:endif

+

+SET INCLUDES=-I. -I..\..\.. -I..\..\..\src

+

+SET CFLAGS=-O %INCLUDES% %DEFINES%

+SET COMPILE_CMD=gcc -c %CFLAGS%

+

+

+cd WWW\Library\Implementation

+erase *.o

+

+%COMPILE_CMD% HTAABrow.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTAAProt.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTAAUtil.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTAccess.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTAnchor.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTAssoc.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTAtom.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTBTree.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTChunk.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTDOS.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTFile.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTFinger.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTFormat.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTFTP.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTFWriter.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTGopher.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTGroup.c

+if errorlevel 1 PAUSE

+

+%COMPILE_CMD% HTLex.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTList.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTMIME.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTMLDTD.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTMLGen.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTNews.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTParse.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTPlain.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTRules.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTString.c

+if errorlevel 1 PAUSE

+

+%COMPILE_CMD% HTStyle.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTTCP.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTTelnet.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTTP.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTUU.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTWSRC.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% SGML.c

+if errorlevel 1 PAUSE

+

+ar crv libwww.a *.o

+

+if errorlevel 1 PAUSE

+

+cd ..\..\..\src\chrtrans

+erase *.o

+

+SET INCLUDES=-I. -I.. -I..\.. -I..\..\WWW\Library\Implementation

+SET CFLAGS=-O %INCLUDES% %DEFINES%

+SET COMPILE_CMD=gcc -c %CFLAGS%

+

+%COMPILE_CMD% makeuctb.c

+if errorlevel 1 PAUSE

+gcc -o makeuctb.exe makeuctb.o

+if errorlevel 1 PAUSE

+

+call makew32.bat

+if errorlevel 1 PAUSE

+cd ..\

+

+:src

+SET INCLUDES=-I. -I.. -I.\chrtrans -I..\WWW\Library\Implementation

+SET CFLAGS=-O %INCLUDES% %DEFINES%

+SET COMPILE_CMD=gcc -c %CFLAGS%

+SET PATH=..\WWW\Library\Implementation;%PATH%

+erase *.o

+

+%COMPILE_CMD% DefaultStyle.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% GridText.c

+if errorlevel 1 PAUSE

+if not exist TRSTable.c goto notrstable

+%COMPILE_CMD% TRSTable.c

+if errorlevel 1 PAUSE

+:notrstable

+if not exist Xsystem.c goto noxsystem

+%COMPILE_CMD% Xsystem.c

+if errorlevel 1 PAUSE

+:noxsystem

+%COMPILE_CMD% HTAlert.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTFWriter.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTInit.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% HTML.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYBookmark.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYCgi.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYCharSets.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYCharUtils.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYClean.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYCookie.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYCurses.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYDownload.c

+if errorlevel 1 PAUSE

+

+%COMPILE_CMD% LYEdit.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYEditmap.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYexit.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYExtern.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYForms.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYGetFile.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYHash.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYHistory.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYJump.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYKeymap.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYLeaks.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYList.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYLocal.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYMail.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYMain.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD%  LYMainLoop.c

+if errorlevel 1 PAUSE

+

+%COMPILE_CMD% LYMap.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYNews.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYOptions.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYPrettySrc.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYPrint.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYrcFile.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYReadCFG.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYSearch.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYShowInfo.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYStrings.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYStyle.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYTraversal.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYUpload.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% LYUtils.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% UCAuto.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% UCAux.c

+if errorlevel 1 PAUSE

+%COMPILE_CMD% UCdomap.c

+if errorlevel 1 PAUSE

+

+:link

+if not "%LIBRARY%" == "PDCURSES" goto else2

+SET LIBS=-L..\WWW\Library\Implementation -lwww -lpdcurses -lpanel -lwsock32 -luser32

+goto endif2

+:else2

+SET LIBS=-L..\WWW\Library\Implementation -lwww -lslang -lwsock32 -luser32

+:endif2

+

+gcc -o lynx *.o %LIBS%

+strip lynx.exe

+if exist lynx.exe ECHO "Welcome to lynx!"

diff --git a/src/GridText.c b/src/GridText.c
index 8aae54af..b8bdeba6 100644
--- a/src/GridText.c
+++ b/src/GridText.c
@@ -1671,10 +1671,9 @@ PRIVATE void display_scrollbar ARGS1(
 /*	Output a page
 **	-------------
 */
-PRIVATE void display_page ARGS3(
+PRIVATE void display_page ARGS2(
 	HText *,	text,
-	int,		line_number,
-	char *,		target)
+	int,		line_number)
 {
     HTLine * line = NULL;
     int i;
@@ -1694,6 +1693,7 @@ PRIVATE void display_page ARGS3(
 #ifdef DISP_PARTIAL
     int last_disp_partial = -1;
 #endif
+    CONST char *target = search_target;  /* search_target is global */
 
     lynx_mode = NORMAL_LYNX_MODE;
 
@@ -1723,7 +1723,6 @@ PRIVATE void display_page ARGS3(
 #endif /* DISP_PARTIAL */
 
     tmp[0] = tmp[1] = tmp[2] = '\0';
-    if (target && *target == '\0') target = NULL;
     text->page_has_target = NO;
     if (display_lines <= 0) {
 	/*  No screen space to display anything!
@@ -2167,7 +2166,7 @@ PRIVATE void display_page ARGS3(
 		/*
 		 *  Bold the link after incrementing nlinks.
 		 */
-		highlight(OFF, (nlinks - 1), target);
+		highlight(OFF, (nlinks - 1));
 
 		display_flag = TRUE;
 
@@ -2309,6 +2308,14 @@ PUBLIC void HText_beginAppend ARGS1(
 */
 #define new_line(text) split_line(text, 0)
 
+#define DEBUG_SPLITLINE
+
+#ifdef DEBUG_SPLITLINE
+#define CTRACE_SPLITLINE(p)	CTRACE(p)
+#else
+#define CTRACE_SPLITLINE(p)	/*nothing*/
+#endif
+
 PRIVATE void split_line ARGS2(
 	HText *,	text,
 	unsigned,	split)
@@ -2329,7 +2336,6 @@ PRIVATE void split_line ARGS2(
     int TailTrim = 0;
     int s;
 
-#define DEBUG_SPLITLINE
     /*
      *  Make new line.
      */
@@ -2432,7 +2438,7 @@ PRIVATE void split_line ARGS2(
 		 alignment != HT_LEFT ||
 		 style->wordWrap || style->freeFormat ||
 		 style->spaceBefore || style->spaceAfter)) ||
-	       *p == LY_SOFT_HYPHEN) {
+		*p == LY_SOFT_HYPHEN) {
 	    p++;
 	    HeadTrim++;
 	}
@@ -2776,10 +2782,11 @@ PRIVATE void split_line ARGS2(
 		IS_UTF_EXTRA(*cp) ||
 		*cp == LY_SOFT_HYPHEN)
 		ctrl_chars_on_previous_line++;
-	    if ((previous->size > 0) &&
-		(int)(previous->data[previous->size-1] == LY_SOFT_HYPHEN))
-		ctrl_chars_on_previous_line--;
 	}
+	if ((previous->size > 0) &&
+		(int)(previous->data[previous->size-1] == LY_SOFT_HYPHEN))
+	    ctrl_chars_on_previous_line--;
+
 	/* @@ first line indent */
 	spare =  (LYcols-1) -
 	    (int)style->rightIndent - indent +
@@ -2895,10 +2902,7 @@ PRIVATE void split_line ARGS2(
 		if (!old_e &&
 		    (!a->number || a->show_anchor) &&
 		    a0 <= s + HeadTrim) {
-#ifdef DEBUG_SPLITLINE
-		CTRACE((tfp, "anchor %d case %d: ",
-		       a->number,1));
-#endif
+		    CTRACE_SPLITLINE((tfp, "anchor %d case %d: ", a->number,1));
 		    /*
 		     *  It is meant to be empty, and/or endAnchor
 		     *  has seen it and recognized it as empty.
@@ -2914,10 +2918,7 @@ PRIVATE void split_line ARGS2(
 		} else if (old_e &&
 		     a0 >= s - TailTrim && a0 <= s + HeadTrim &&
 		     a1 <= s + HeadTrim) {
-#ifdef DEBUG_SPLITLINE
-		CTRACE((tfp, "anchor %d case %d: ",
-		       a->number,2));
-#endif
+		    CTRACE_SPLITLINE((tfp, "anchor %d case %d: ", a->number,2));
 		    /*
 		     *  endAnchor has seen it, it is effectively empty
 		     *  after our trimming, but endAnchor has for some
@@ -2936,19 +2937,13 @@ PRIVATE void split_line ARGS2(
 		    }
 		    new_ext = 0;
 		} else if (a0 >= s + HeadTrim) {
-#ifdef DEBUG_SPLITLINE
-		CTRACE((tfp, "anchor %d case %d: ",
-		       a->number,3));
-#endif
+		    CTRACE_SPLITLINE((tfp, "anchor %d case %d: ", a->number,3));
 		    /*
 		     *  Completely after split, just shift.
 		     */
 		    new_pos = a0 - TailTrim + 1 - HeadTrim + SpecialAttrChars;
 		} else if (!old_e) {
-#ifdef DEBUG_SPLITLINE
-		CTRACE((tfp, "anchor %d case %d: ",
-		       a->number,4));
-#endif
+		    CTRACE_SPLITLINE((tfp, "anchor %d case %d: ", a->number,4));
 		    /*
 		     *  No extent set, we may still be growing it.
 		     */
@@ -2966,24 +2961,15 @@ PRIVATE void split_line ARGS2(
 		     */
 		} else if (a0 < s - TailTrim &&
 			   a1 > s + HeadTrim) {
-#ifdef DEBUG_SPLITLINE
-		CTRACE((tfp, "anchor %d case %d: ",
-		       a->number,5));
-#endif
+		    CTRACE_SPLITLINE((tfp, "anchor %d case %d: ", a->number,5));
 		    new_pos = a0;
 		    new_ext = old_e - TailTrim - HeadTrim + SpecialAttrChars;
 		} else if (a0 < s - TailTrim) {
-#ifdef DEBUG_SPLITLINE
-		CTRACE((tfp, "anchor %d case %d: ",
-		       a->number,6));
-#endif
+		    CTRACE_SPLITLINE((tfp, "anchor %d case %d: ", a->number,6));
 		    new_pos = a0;
 		    new_ext = s - TailTrim - a0;
 		} else if (a1 > s + HeadTrim) {
-#ifdef DEBUG_SPLITLINE
-		CTRACE((tfp, "anchor %d case %d: ",
-		       a->number,7));
-#endif
+		    CTRACE_SPLITLINE((tfp, "anchor %d case %d: ", a->number,7));
 		    new_pos = s - TailTrim + 1 + SpecialAttrChars;
 		    new_ext = old_e - (s + HeadTrim - a0);
 		} else {
@@ -2996,11 +2982,9 @@ PRIVATE void split_line ARGS2(
 			   a->line_num,a->start,a->line_pos,a->extent));
 		    continue;
 		}
-#ifdef DEBUG_SPLITLINE
-		CTRACE((tfp, "(T,H,S)=(%d,%d,%d); (line,start,pos,ext):(%d,%d,%d,%d",
+		CTRACE_SPLITLINE((tfp, "(T,H,S)=(%d,%d,%d); (line,start,pos,ext):(%d,%d,%d,%d",
 		       TailTrim,HeadTrim,SpecialAttrChars,
 		       a->line_num,a->start,a->line_pos,a->extent));
-#endif
 		if (new_pos != a->line_pos)
 		    a->start = new_pos + d;
 		if (new_pos > s - TailTrim) {
@@ -3010,11 +2994,8 @@ PRIVATE void split_line ARGS2(
 		a->line_pos = new_pos;
 		a->extent = new_ext;
 
-#ifdef DEBUG_SPLITLINE
-		CTRACE((tfp, "))->(%d,%d,%d,%d)\n",
+		CTRACE_SPLITLINE((tfp, "))->(%d,%d,%d,%d)\n",
 		       a->line_num,a->start,a->line_pos,a->extent));
-#endif
-
 	    }
 	}
     }
@@ -6312,7 +6293,7 @@ PUBLIC BOOL HText_getFirstTargetInLine ARGS7(
 	int *,		offset,
 	int *,		tLen,
 	char **,	data,
-	char *,		target)
+	CONST char *,	target)
 {
     HTLine *line;
     char *LineData;
@@ -6647,9 +6628,8 @@ PUBLIC CONST char * HText_getServer NOARGS
  *  starting from the line 'line_num'-1.
  *  This is the primary call for lynx.
  */
-PUBLIC void HText_pageDisplay ARGS2(
-	int,		line_num,
-	char *,		target)
+PUBLIC void HText_pageDisplay ARGS1(
+	int,		line_num)
 {
 #ifdef DISP_PARTIAL
     if (debug_display_partial || (LYTraceLogFP != NULL)) {
@@ -6673,7 +6653,7 @@ PUBLIC void HText_pageDisplay ARGS2(
     }
 #endif
 
-    display_page(HTMainText, line_num-1, target);
+    display_page(HTMainText, line_num-1);
 
 #ifdef DISP_PARTIAL
     if (display_partial && debug_display_partial)
@@ -6744,7 +6724,7 @@ PUBLIC void HText_refresh ARGS1(
 	HText *,	text)
 {
     if (text->stale)
-	display_page(text, text->top_of_screen, "");
+	display_page(text, text->top_of_screen);
 }
 
 PUBLIC int HText_sourceAnchors ARGS1(
@@ -6772,25 +6752,25 @@ PUBLIC BOOL HText_canScrollDown NOARGS
 PUBLIC void HText_scrollTop ARGS1(
 	HText *,	text)
 {
-    display_page(text, 0, "");
+    display_page(text, 0);
 }
 
 PUBLIC void HText_scrollDown ARGS1(
 	HText *,	text)
 {
-    display_page(text, text->top_of_screen + display_lines, "");
+    display_page(text, text->top_of_screen + display_lines);
 }
 
 PUBLIC void HText_scrollUp ARGS1(
 	HText *,	text)
 {
-    display_page(text, text->top_of_screen - display_lines, "");
+    display_page(text, text->top_of_screen - display_lines);
 }
 
 PUBLIC void HText_scrollBottom ARGS1(
 	HText *,	text)
 {
-    display_page(text, text->Lines - display_lines, "");
+    display_page(text, text->Lines - display_lines);
 }
 
 
@@ -6858,7 +6838,7 @@ PUBLIC BOOL HText_select ARGS1(
 	if (loaded_texts && HTList_removeObject(loaded_texts, text))
 	    HTList_addObject(loaded_texts, text);
 	  /* let lynx do it */
-	/* display_page(text, text->top_of_screen, ""); */
+	/* display_page(text, text->top_of_screen); */
     }
     return YES;
 }
@@ -11720,6 +11700,10 @@ PRIVATE void insert_new_textarea_anchor ARGS2(
 #if defined(USE_COLOR_STYLE)
     /* dup styles[] if needed [no need in TEXTAREA (?); leave 0's] */
     l->numstyles       = htline->numstyles;
+#ifndef OLD_HTSTYLECHANGE
+    /*we fork the pointers!*/
+    l->styles = htline->styles;
+#endif
 #endif
     strcpy (l->data,     htline->data);
     if (keypad_mode == LINKS_AND_FIELDS_ARE_NUMBERED) {
@@ -12589,6 +12573,10 @@ PUBLIC int HText_InsertFile ARGS1(
 #if defined(USE_COLOR_STYLE)
     /* dup styles[] if needed [no need in TEXTAREA (?); leave 0's] */
     l->numstyles       = htline->numstyles;
+#ifndef OLD_HTSTYLECHANGE
+    /*we fork the pointers!*/
+    l->styles = htline->styles;
+#endif
 #endif
     strcpy (l->data,     htline->data);
 
diff --git a/src/GridText.h b/src/GridText.h
index 1f82ec73..c5b05dd2 100644
--- a/src/GridText.h
+++ b/src/GridText.h
@@ -108,7 +108,7 @@ extern void HText_scrollUp PARAMS((HText * text));	/* One page */
 extern void HText_scrollDown PARAMS((HText * text));	/* One page */
 extern void HText_scrollTop PARAMS((HText * text));
 extern void HText_scrollBottom PARAMS((HText * text));
-extern void HText_pageDisplay PARAMS((int line_num, char *target));
+extern void HText_pageDisplay PARAMS((int line_num));
 extern BOOL HText_pageHasPrevTarget NOPARAMS;
 
 extern int HText_LinksInLines PARAMS((HText *text, int line_num, int Lines));
@@ -163,7 +163,7 @@ extern BOOL HText_getFirstTargetInLine PARAMS((
 	int *		offset,
 	int *		tLen,
 	char **		data,
-	char *		target));
+	CONST char *	target));
 extern int HTisDocumentSource NOPARAMS;
 extern void HTuncache_current_document NOPARAMS;
 #ifdef SOURCE_CACHE
diff --git a/src/HTForms.h b/src/HTForms.h
index eb746376..10c383d0 100644
--- a/src/HTForms.h
+++ b/src/HTForms.h
@@ -147,6 +147,7 @@ typedef struct _PerFormInfo
 #define LAST_ORDER   3
 
 /* in LYForms.c */
-extern void show_formlink_statusline PARAMS((CONST FormInfo * form));
+extern void show_formlink_statusline PARAMS((CONST FormInfo *	form,
+					     int		for_what));
 
 #endif /* HTFORMS_H */
diff --git a/src/LYBookmark.c b/src/LYBookmark.c
index c43405b9..3cf838ca 100644
--- a/src/LYBookmark.c
+++ b/src/LYBookmark.c
@@ -598,9 +598,9 @@ PUBLIC void remove_bookmark_link ARGS2(
 #if defined(_WINDOWS) || defined(WIN_EX)
 #if defined(WIN_EX)
 	if (GetLastError() == ERROR_NOT_SAME_DEVICE)
-#else /* !_WIN_CC */
+#else /* !_WIN_EX */
 	if (errno == ENOTSAM)
-#endif /* _WIN_CC */
+#endif /* _WIN_EX */
 	{
 	    if (rename(newfile, filename_buffer) != 0) {
 		if (LYCopyFile(newfile, filename_buffer) == 0)
diff --git a/src/LYCharUtils.c b/src/LYCharUtils.c
index e48aaf8b..af30d9ce 100644
--- a/src/LYCharUtils.c
+++ b/src/LYCharUtils.c
@@ -476,7 +476,7 @@ PUBLIC void LYFillLocalFileURL ARGS2(
      * a listing for the login directory. - FM
      */
     if (!strcmp(*href, "file://localhost/"))
-	StrAllocCat(*href, (HTVMS_wwwName((char *)Home_Dir())+1));
+	StrAllocCat(*href, (HTVMS_wwwName(Home_Dir())+1));
 #endif /* VMS */
 
     FREE(temp);
diff --git a/src/LYCurses.c b/src/LYCurses.c
index e804da1e..e75218a3 100644
--- a/src/LYCurses.c
+++ b/src/LYCurses.c
@@ -4,7 +4,6 @@
 #include <LYStyle.h>
 #include <LYUtils.h>
 #include <LYGlobalDefs.h>
-#include <LYMainLoop.h>
 #include <LYSignal.h>
 #include <LYClean.h>
 #include <LYReadCFG.h>
@@ -519,21 +518,6 @@ PRIVATE void LYsetWAttr ARGS1(WINDOW *, win)
 		code |= 4;
 	attr = lynx_color_cfg[code].attr;
 
-	/*
-	 * no_color_video is implemented in ncurses 4.2, but not in other
-	 * flavors of curses.  So we check before adding video attributes that
-	 * might conflict with colors.  For A_BOLD, check for both the bold and
-	 * standout mask items because standout often uses bold in conjunction
-	 * with another attribute.  -TD
-	 */
-	if ((Current_Attr & A_BOLD) && !(NoColorVideo & 33)) {
-		attr |= A_BOLD;
-	}
-
-	if ((Current_Attr & A_UNDERLINE) && !(NoColorVideo & 2)) {
-		attr |= A_UNDERLINE;
-	}
-
 	if (code+offs < COLOR_PAIRS) {
 		attr |= COLOR_PAIR(code+offs);
 	}
@@ -1810,9 +1794,11 @@ PUBLIC void lynx_force_repaint NOARGS
     else
 	a = A_NORMAL;
     bkgdset(a | ' ');
-#ifndef USE_COLOR_STYLE
+#if !defined(USE_COLOR_STYLE) && defined(NCURSES_VERSION)
+#if NCURSES_VERSION_MAJOR < 4 || (NCURSES_VERSION_MAJOR == 4 && NCURSES_VERSION_MINOR == 0)
     bkgd(a | ' ');
 #endif
+#endif
     attrset(a);
 #endif /* COLOR_CURSES */
     clearok(curscr, TRUE);
diff --git a/src/LYEditmap.c b/src/LYEditmap.c
index 4a23b319..7a50a9ce 100644
--- a/src/LYEditmap.c
+++ b/src/LYEditmap.c
@@ -1051,11 +1051,218 @@ PUBLIC int LYRemapEditBinding ARGS2(
 }
 
 /*
+ *  Macro to walk through lkc-indexed tables up to imax, in the (ASCII) order
+ *     97 - 122  ('a' - 'z'),
+ *     32 -  96  (' ' - '`', includes 'A' - 'Z'),
+ *    123 - 126  ('{' - '~'),
+ *      0 -  31  (^@  - ^_),
+ *    256 - imax,
+ *    127 - 255
+ */
+#define NEXT_I(i,imax) ((i==122) ? 32 : (i==96) ? 123 : (i==126) ? 0 :\
+			(i==31) ? 256 : (i==imax) ? 127 :\
+			(i==255) ? (-1) :i+1)
+#define FIRST_I 97
+
+PUBLIC int LYKeyForEditAction ARGS1(
+    int,		lec)
+{
+    int editaction, i;
+    for (i = FIRST_I; i >= 0; i = NEXT_I(i,KEYMAP_SIZE-2)) {
+        editaction = LYLineEditors[current_lineedit][i];
+	if (editaction == lec) {
+#ifdef NOT_ASCII
+	    if (i < 256) {
+		return FROMASCII(i);
+	    } else
+#endif
+		return i;
+	}
+    }
+    return (-1);
+}
+
+/*
+ *  Given a lynxactioncode, return a key (lynxkeycode) or sequence
+ *  of two keys that results in the given action while forms-editing.
+ *  The main keycode is returned as function value, possibly with modifier
+ *  bits set; in addition, if applicable, a key that sets the required
+ *  modifier flag is returned in *pmodkey if (pmodkey!=NULL).
+ *  Non-lineediting bindings that would require typing LYE_LKCMD (default ^V)
+ *  to activate are not checked here, the caller should do that separately if
+ *  required.  If no key is bound by current line-editor bindings to the
+ *  action, -1 is returned.
+ *  This is all a bit long - it is general enough to continue to work
+ *  should the three Mod<N>Binding[] become different tables. - kw
+ */
+PUBLIC int LYEditKeyForAction ARGS2(
+    int,		lac,
+    int *,		pmodkey)
+{
+    int editaction, i, c;
+    int mod1found = -1, mod2found = -1, mod3found = -1;
+    if (pmodkey)
+	*pmodkey = -1;
+    for (i = FIRST_I; i >= 0; i = NEXT_I(i,KEYMAP_SIZE-2)) {
+        editaction = LYLineEditors[current_lineedit][i];
+#ifdef NOT_ASCII
+	if (i < 256) {
+	    c = FROMASCII(i);
+	} else
+#endif
+	    c = i;
+	if (editaction == (lac | LYE_FORM_LAC))
+	    return c;
+	if (editaction == LYE_FORM_PASS) {
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+	    if (lynx_edit_mode && !no_dired_support && lac &&
+		LKC_TO_LAC(key_override,c) == lac)
+		return c;
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+	    if (LKC_TO_LAC(keymap,c) == lac)
+		return c;
+	}
+	if (editaction == LYE_TAB) {
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+	    if (lynx_edit_mode && !no_dired_support && lac &&
+		LKC_TO_LAC(key_override,'\t') == lac)
+		return c;
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+	    if (LKC_TO_LAC(keymap,'\t') == lac)
+		return c;
+	}
+	if (editaction == LYE_SETM1 && mod1found < 0)
+	    mod1found = i;
+	if (editaction == LYE_SETM2 && mod2found < 0)
+	    mod2found = i;
+	if ((editaction & LYE_DF) && mod3found < 0)
+	    mod3found = i;
+    }
+    if (mod3found >= 0) {
+	for (i = mod3found; i >= 0; i = NEXT_I(i,LAST_MOD3_LKC)) {
+	    editaction = LYLineEditors[current_lineedit][i];
+	    if (!(editaction & LYE_DF))
+		continue;
+	    editaction = Mod3Binding[i];
+#ifdef NOT_ASCII
+	    if (i < 256) {
+		c = FROMASCII(i);
+	    } else
+#endif
+		c = i;
+	    if (pmodkey)
+		*pmodkey = c;
+	    if (editaction == (lac | LYE_FORM_LAC))
+		return (c|LKC_MOD3);
+	    if (editaction == LYE_FORM_PASS) {
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+		if (lynx_edit_mode && !no_dired_support && lac &&
+		    LKC_TO_LAC(key_override,c) == lac)
+		    return (c|LKC_MOD3);
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+		if (LKC_TO_LAC(keymap,c) == lac)
+		    return (c|LKC_MOD3);
+	    }
+	    if (editaction == LYE_TAB) {
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+		if (lynx_edit_mode && !no_dired_support && lac &&
+		    LKC_TO_LAC(key_override,'\t') == lac)
+		    return (c|LKC_MOD3);
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+		if (LKC_TO_LAC(keymap,'\t') == lac)
+		    return (c|LKC_MOD3);
+	    }
+	}
+    }
+    if (mod1found >= 0) {
+	if (pmodkey) {
+#ifdef NOT_ASCII
+	    if (mod1found < 256) {
+		pmodkey = FROMASCII(mod1found);
+	    } else
+#endif
+		*pmodkey = mod1found;
+	}
+	for (i = FIRST_I; i >= 0; i = NEXT_I(i,LAST_MOD1_LKC)) {
+	    editaction = Mod1Binding[i];
+#ifdef NOT_ASCII
+	    if (i < 256) {
+		c = FROMASCII(i);
+	    } else
+#endif
+		c = i;
+	    if (editaction == (lac | LYE_FORM_LAC))
+		return (c|LKC_MOD1);
+	    if (editaction == LYE_FORM_PASS) {
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+		if (lynx_edit_mode && !no_dired_support && lac &&
+		    LKC_TO_LAC(key_override,c) == lac)
+		    return (c|LKC_MOD1);
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+		if (LKC_TO_LAC(keymap,c) == lac)
+		    return (c|LKC_MOD1);
+	    }
+	    if (editaction == LYE_TAB) {
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+		if (lynx_edit_mode && !no_dired_support && lac &&
+		    LKC_TO_LAC(key_override,'\t') == lac)
+		    return (c|LKC_MOD1);
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+		if (LKC_TO_LAC(keymap,'\t') == lac)
+		    return (c|LKC_MOD1);
+	    }
+	}
+    }
+    if (mod2found >= 0) {
+	if (pmodkey) {
+#ifdef NOT_ASCII
+	    if (mod1found < 256) {
+		pmodkey = FROMASCII(mod1found);
+	    } else
+#endif
+		*pmodkey = mod1found;
+	}
+	for (i = FIRST_I; i >= 0; i = NEXT_I(i,LAST_MOD2_LKC)) {
+	    editaction = Mod2Binding[i];
+#ifdef NOT_ASCII
+	    if (i < 256) {
+		c = FROMASCII(i);
+	    } else
+#endif
+		c = i;
+	    if (editaction == (lac | LYE_FORM_LAC))
+		return (c|LKC_MOD2);
+	    if (editaction == LYE_FORM_PASS) {
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+		if (lynx_edit_mode && !no_dired_support && lac &&
+		    LKC_TO_LAC(key_override,c) == lac)
+		    return (c|LKC_MOD2);
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+		if (LKC_TO_LAC(keymap,c) == lac)
+		    return (c|LKC_MOD2);
+	    }
+	    if (editaction == LYE_TAB) {
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+		if (lynx_edit_mode && !no_dired_support && lac &&
+		    LKC_TO_LAC(key_override,'\t') == lac)
+		    return (c|LKC_MOD2);
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+		if (LKC_TO_LAC(keymap,'\t') == lac)
+		    return (c|LKC_MOD2);
+	    }
+	}
+    }
+    if (pmodkey)
+	*pmodkey = -1;
+    return (-1);
+}
+
+/*
  * Dummy initializer to ensure this module is linked
  * if the external model is common block, and the
  * module is ever placed in a library. - FM
  */
-PUBLIC int LYEditmapDeclared NOPARAMS
+PUBLIC int LYEditmapDeclared NOARGS
 {
     int status = 1;
 
diff --git a/src/LYForms.c b/src/LYForms.c
index 6e10025b..28660512 100644
--- a/src/LYForms.c
+++ b/src/LYForms.c
@@ -394,7 +394,7 @@ PRIVATE int form_getstr ARGS3(
 	     *  If we can edit it, report that we are using the tail. - FM
 	     */
 	    HTUserMsg(FORM_VALUE_TOO_LONG);
-	    show_formlink_statusline(form);
+	    show_formlink_statusline(form, FOR_INPUT);
 	    move(startline, startcol);
 	}
     }
@@ -1825,8 +1825,9 @@ restore_popup_statusline:
 /*
  *  Display statusline info tailored for the current form field.
  */
-PUBLIC void show_formlink_statusline ARGS1(
-    CONST FormInfo *,	form)
+PUBLIC void show_formlink_statusline ARGS2(
+    CONST FormInfo *,	form,
+    int,		for_what)
 {
     switch(form->type) {
     case F_PASSWORD_TYPE:
@@ -1865,7 +1866,17 @@ PUBLIC void show_formlink_statusline ARGS1(
 	} else if (form->no_cache) {
 	    statusline(FORM_LINK_TEXT_RESUBMIT_MESSAGE);
 	} else {
-	    statusline(FORM_LINK_TEXT_SUBMIT_MESSAGE);
+	    char *submit_str = NULL;
+	    char *xkey_info = key_for_func_ext(LYK_NOCACHE, for_what);
+	    if (xkey_info && *xkey_info) {
+		HTSprintf0(&submit_str, FORM_LINK_TEXT_SUBMIT_MESSAGE_X,
+			   xkey_info);
+		statusline(submit_str);
+		FREE(submit_str);
+	    } else {
+		statusline(FORM_LINK_TEXT_SUBMIT_MESSAGE);
+	    }
+	    FREE(xkey_info);
 	}
 	break;
     case F_SUBMIT_TYPE:
@@ -1933,8 +1944,25 @@ PUBLIC void show_formlink_statusline ARGS1(
     case F_TEXTAREA_TYPE:
 	if (form->disabled == YES)
 	    statusline(FORM_LINK_TEXT_UNM_MSG);
-	else
+	else if (no_editor || !editor || !*editor) {
 	    statusline(FORM_LINK_TEXTAREA_MESSAGE);
+	} else {
+	    char *submit_str = NULL;
+	    char *xkey_info = key_for_func_ext(LYK_EDIT_TEXTAREA, for_what);
+#ifdef TEXTAREA_AUTOEXTEDIT
+	    if (!xkey_info)
+		xkey_info = key_for_func_ext(LYK_DWIMEDIT, for_what);
+#endif
+	    if (xkey_info && *xkey_info) {
+		HTSprintf0(&submit_str, FORM_LINK_TEXTAREA_MESSAGE_E,
+			   xkey_info);
+		statusline(submit_str);
+		FREE(submit_str);
+	    } else {
+		statusline(FORM_LINK_TEXTAREA_MESSAGE);
+	    }
+	    FREE(xkey_info);
+	}
 	break;
     }
 }
diff --git a/src/LYGetFile.c b/src/LYGetFile.c
index 9a80861c..8649a7c5 100644
--- a/src/LYGetFile.c
+++ b/src/LYGetFile.c
@@ -385,25 +385,44 @@ Try_Redirected_URL:
 #endif /* DIRED_SUPPORT */
 
 		}
+
 		if (LYNoRefererHeader == FALSE &&
 		    LYNoRefererForThis == FALSE) {
+		    char *ref_url = HTLoadedDocumentURL();
+		    if (!strncmp(ref_url, "LYNXIMGMAP:", 11))
+			ref_url += 11;
 		    if (no_filereferer == TRUE &&
-			!strncmp(HTLoadedDocumentURL(), "file:", 5)) {
+			!strncmp(ref_url, "file:", 5)) {
 			LYNoRefererForThis = TRUE;
 		    }
 		    if (LYNoRefererForThis == FALSE &&
-			(cp = strchr(HTLoadedDocumentURL(), '?')) != NULL &&
-		    strchr(cp, '=') != NULL) {
+			(cp = strchr(ref_url, '?')) != NULL &&
+			strchr(cp, '=') != NULL) {
 			/*
 			 *  Don't send a Referer header if the URL is
 			 *  the reply from a form with method GET, in
 			 *  case the content has personal data (e.g.,
 			 *  a password or credit card number) which
 			 *  would become visible in logs. - FM
+			 *
+			 *  Changed 1999-11-01 to be controlled by
+			 *  REFERER_WITH_QUERY option. - kw
 			 */
-			LYNoRefererForThis = TRUE;
+			if (LYRefererWithQuery == 'S') { /* SEND */
+			    StrAllocCopy(LYRequestReferer, ref_url);
+			} else if (LYRefererWithQuery == 'P') { /* PARTIAL */
+			    FREE(LYRequestReferer); /* just to be sure */
+			    LYRequestReferer = HTParse(ref_url, "",
+		PARSE_ACCESS|PARSE_HOST|PARSE_STRICTPATH|PARSE_PUNCTUATION);
+			} else { /* Everyhting else - don't send Referer */
+			    LYNoRefererForThis = TRUE;
+			}
 			cp = NULL;
+		    } else if (LYNoRefererForThis == FALSE) {
+			StrAllocCopy(LYRequestReferer, ref_url);
 		    }
+		} else {
+		    StrAllocCopy(LYRequestReferer, HTLoadedDocumentURL());
 		}
 		if (url_type == LYNXHIST_URL_TYPE) {
 		    /*
diff --git a/src/LYGlobalDefs.h b/src/LYGlobalDefs.h
index dc41af94..7046395d 100644
--- a/src/LYGlobalDefs.h
+++ b/src/LYGlobalDefs.h
@@ -154,6 +154,7 @@ extern BOOLEAN telnet_ok;
 extern BOOLEAN verbose_img;	/* display filenames of images?     */
 extern BOOLEAN vi_keys;		/* TRUE to turn on vi-like key movement */
 extern char *LYRequestTitle;	/* newdoc.title in calls to getfile() */
+extern char *LYRequestReferer;	/* Referer, may be set in getfile() */
 extern char *LynxHome;
 extern char *LynxSigFile;	/* Signature file, in or off home */
 extern char *checked_box;	/* form boxes */
@@ -244,6 +245,7 @@ extern BOOLEAN no_compileopts_info;
 
 extern BOOLEAN no_statusline;
 extern BOOLEAN no_filereferer;
+extern char LYRefererWithQuery;	/* 'S', 'P', or 'D' */
 extern BOOLEAN local_host_only;
 extern BOOLEAN override_no_download;
 extern BOOLEAN show_dotfiles;	/* From rcfile if no_dotfiles is false */
@@ -290,6 +292,10 @@ extern BOOLEAN debug_display_partial;  /* show with MessageSecs delay */
 extern BOOLEAN display_partial_flag; /* permanent flag, not mutable */
 extern int Newline; /* original newline position, from mainloop() */
 #endif
+
+extern char search_target[512];	     /* user search string:                   *
+				      * used by highlight() and display_page(),*
+				      * changed in LYMainLoop.c only          */
 extern char *form_post_data;         /* User data for post form */
 extern char *form_get_data;          /* User data for get form */
 extern char *http_error_file;        /* Place HTTP status code in this file */
@@ -334,7 +340,7 @@ extern char *URLDomainSuffixes;
 extern BOOLEAN startfile_ok;
 extern BOOLEAN LYSelectPopups;		/* Cast popups to radio buttons? */
 extern BOOLEAN LYUseDefSelPop;		/* Command line -popup toggle    */
-extern BOOLEAN LYMultiBookmarks;    	/* Multi bookmark support on?	 */
+extern BOOLEAN LYMultiBookmarks;	/* Multi bookmark support on?	 */
 extern BOOLEAN LYMBMBlocked;		/* Force MBM support off?	 */
 extern BOOLEAN LYMBMAdvanced;		/* MBM statusline for ADVANCED?	 */
 extern int LYStatusLine;		/* Line for statusline() or -1   */
diff --git a/src/LYHistory.c b/src/LYHistory.c
index 9f7a8cca..f405d720 100644
--- a/src/LYHistory.c
+++ b/src/LYHistory.c
@@ -25,6 +25,14 @@
 #include <LYLeaks.h>
 
 PUBLIC HTList * Visited_Links = NULL;	/* List of safe popped docs. */
+PUBLIC int Visited_Links_As = VISITED_LINKS_AS_TREE;
+PRIVATE VisitedLink *PrevVisitedLink = NULL;	    /* NULL on auxillary */
+PRIVATE VisitedLink *PrevActiveVisitedLink = NULL;  /* Last non-auxillary */
+PRIVATE VisitedLink Latest_first;
+PRIVATE VisitedLink Latest_last;
+PRIVATE VisitedLink *Latest_tree;
+PRIVATE VisitedLink *First_tree;
+PRIVATE VisitedLink *Last_by_first;
 
 #ifdef LY_FIND_LEAKS
 /*
@@ -35,6 +43,8 @@ PRIVATE void Visited_Links_free NOARGS
     VisitedLink *vl;
     HTList *cur = Visited_Links;
 
+    PrevVisitedLink = NULL;
+    PrevActiveVisitedLink = NULL;
     if (!cur)
 	return;
 
@@ -45,6 +55,9 @@ PRIVATE void Visited_Links_free NOARGS
     }
     HTList_delete(Visited_Links);
     Visited_Links = NULL;
+    Latest_last.prev_latest = &Latest_first;
+    Latest_first.next_latest = &Latest_last;
+    Last_by_first = Latest_tree = First_tree = 0;
     return;
 }
 #endif /* LY_FIND_LEAKS */
@@ -57,11 +70,13 @@ PUBLIC void LYAddVisitedLink ARGS1(
 	document *,	doc)
 {
     VisitedLink *new;
-    VisitedLink *old;
     HTList *cur;
+    char *title = (doc->title ? doc->title : NO_TITLE);
 
-    if (!(doc->address && *doc->address))
+    if (!(doc->address && *doc->address)) {
+	PrevVisitedLink = NULL;
 	return;
+    }
 
     /*
      *	Exclude POST or HEAD replies, and bookmark, menu
@@ -70,61 +85,115 @@ PUBLIC void LYAddVisitedLink ARGS1(
     if (doc->post_data || doc->isHEAD || doc->bookmark ||
 	(/* special url or a temp file */
 	 (!strncmp(doc->address, "LYNX", 4) ||
-	  !strncmp(doc->address, "file://localhost/", 17))
-	 && (
-	!strcmp((doc->title ? doc->title : ""), HISTORY_PAGE_TITLE) ||
-	!strcmp((doc->title ? doc->title : ""), PRINT_OPTIONS_TITLE) ||
-	!strcmp((doc->title ? doc->title : ""), DOWNLOAD_OPTIONS_TITLE) ||
-	!strcmp((doc->title ? doc->title : ""), OPTIONS_TITLE) ||
+	  !strncmp(doc->address, "file://localhost/", 17)))) {
+	int related = 1;	/* First approximation only */
+
+	if (	!strcmp(title, HISTORY_PAGE_TITLE) ||
+		!strcmp(title, VISITED_LINKS_TITLE) ||
+		!strcmp(title, SHOWINFO_TITLE) ||
+		!strcmp(title, STATUSLINES_TITLE) ||
+			(related = 0)	||
 #ifdef DIRED_SUPPORT
-	!strcmp((doc->title ? doc->title : ""), DIRED_MENU_TITLE) ||
-	!strcmp((doc->title ? doc->title : ""), UPLOAD_OPTIONS_TITLE) ||
-	!strcmp((doc->title ? doc->title : ""), PERMIT_OPTIONS_TITLE) ||
+		!strcmp(title, DIRED_MENU_TITLE) ||
+		!strcmp(title, UPLOAD_OPTIONS_TITLE) ||
+		!strcmp(title, PERMIT_OPTIONS_TITLE) ||
 #endif /* DIRED_SUPPORT */
-	!strcmp((doc->title ? doc->title : ""), CURRENT_KEYMAP_TITLE) ||
-	!strcmp((doc->title ? doc->title : ""), LIST_PAGE_TITLE) ||
+		!strcmp(title, PRINT_OPTIONS_TITLE) ||
+		!strcmp(title, DOWNLOAD_OPTIONS_TITLE) ||
+		!strcmp(title, OPTIONS_TITLE) ||
+		!strcmp(title, CURRENT_KEYMAP_TITLE) ||
+		!strcmp(title, LIST_PAGE_TITLE) ||
 #ifdef EXP_ADDRLIST_PAGE
-	!strcmp((doc->title ? doc->title : ""), ADDRLIST_PAGE_TITLE) ||
+		!strcmp(title, ADDRLIST_PAGE_TITLE) ||
 #endif
-	!strcmp((doc->title ? doc->title : ""), SHOWINFO_TITLE) ||
-	!strcmp((doc->title ? doc->title : ""), STATUSLINES_TITLE) ||
-	!strcmp((doc->title ? doc->title : ""), CONFIG_DEF_TITLE) ||
-	!strcmp((doc->title ? doc->title : ""), LYNXCFG_TITLE) ||
-	!strcmp((doc->title ? doc->title : ""), COOKIE_JAR_TITLE) ||
-	!strcmp((doc->title ? doc->title : ""), VISITED_LINKS_TITLE) ||
-	!strcmp((doc->title ? doc->title : ""), LYNX_TRACELOG_TITLE)))) {
-	return;
+		!strcmp(title, CONFIG_DEF_TITLE) ||
+		!strcmp(title, LYNXCFG_TITLE) ||
+		!strcmp(title, COOKIE_JAR_TITLE) ||
+		!strcmp(title, LYNX_TRACELOG_TITLE)	) {
+	    if (!related)
+		PrevVisitedLink = NULL;
+	    return;
+	}
     }
 
-    if ((new = (VisitedLink *)calloc(1, sizeof(*new))) == NULL)
-	outofmem(__FILE__, "LYAddVisitedLink");
-    StrAllocCopy(new->address, doc->address);
-    StrAllocCopy(new->title, (doc->title ? doc->title : NO_TITLE));
-
     if (!Visited_Links) {
 	Visited_Links = HTList_new();
 #ifdef LY_FIND_LEAKS
 	atexit(Visited_Links_free);
 #endif
-	HTList_addObject(Visited_Links, new);
-	return;
+	Latest_last.prev_latest = &Latest_first;
+	Latest_first.next_latest = &Latest_last;
+	Latest_last.next_latest = NULL;		/* Find bugs quick! */
+	Latest_first.prev_latest = NULL;
+	Last_by_first = Latest_tree = First_tree = NULL;
     }
 
     cur = Visited_Links;
-    while (NULL != (old = (VisitedLink *)HTList_nextObject(cur))) {
-	if (!strcmp((old->address ? old->address : ""),
-		    (new->address ? new->address : ""))) {
-	    if (!(new->title && *new->title) && old->title) {
-		StrAllocCopy(new->title, old->title);
-	    }
-	    FREE(old->address);
-	    FREE(old->title);
-	    HTList_removeObject(Visited_Links, old);
-	    FREE(old);
-	    break;
+    while (NULL != (new = (VisitedLink *)HTList_nextObject(cur))) {
+	if (!strcmp((new->address ? new->address : ""),
+		    (doc->address ? doc->address : ""))) {
+	    PrevVisitedLink = PrevActiveVisitedLink = new;
+	    /* Already visited.  Update the last-visited info. */
+	    if (new->next_latest == &Latest_last)	/* optimization */
+		return;
+
+	    /* Remove from "latest" chain */
+	    new->prev_latest->next_latest = new->next_latest;
+	    new->next_latest->prev_latest = new->prev_latest;
+
+	    /* Insert at the end of the "latest" chain */
+	    Latest_last.prev_latest->next_latest = new;
+	    new->prev_latest = Latest_last.prev_latest;
+	    new->next_latest = &Latest_last;
+	    Latest_last.prev_latest = new;
+	    return;
 	}
     }
-    HTList_addObject(Visited_Links, new);
+
+    if ((new = (VisitedLink *)calloc(1, sizeof(*new))) == NULL)
+	outofmem(__FILE__, "LYAddVisitedLink");
+    StrAllocCopy(new->address, doc->address);
+    StrAllocCopy(new->title, title);
+
+    /* First-visited chain */
+    HTList_appendObject(Visited_Links, new);	/* At end */
+    new->prev_first = Last_by_first;
+    Last_by_first = new;
+
+    /* Tree structure */
+    if (PrevVisitedLink) {
+	VisitedLink *a = PrevVisitedLink;
+	VisitedLink *b = a->next_tree;
+	int l = PrevVisitedLink->level;
+
+	/* Find last on the deeper levels */
+	while (b && b->level > l)
+	    a = b, b = b->next_tree;
+
+	if (a->next_tree)
+	    a->next_tree->prev_tree = new;
+	new->prev_tree = a;
+	new->next_tree = a->next_tree;
+	a->next_tree = new;
+
+	new->level = PrevVisitedLink->level + 1;
+    } else {
+	if (Latest_tree)
+	    Latest_tree->next_tree = new;
+	new->prev_tree = Latest_tree;
+	new->level = 0;
+	new->next_tree = NULL;
+    }
+    PrevVisitedLink = PrevActiveVisitedLink = new;
+    Latest_tree = new;
+    if (!First_tree)
+	First_tree = new;
+
+    /* "latest" chain */
+    Latest_last.prev_latest->next_latest = new;
+    new->prev_latest = Latest_last.prev_latest;
+    new->next_latest = &Latest_last;
+    Latest_last.prev_latest = new;
 
     return;
 }
@@ -560,8 +629,8 @@ PUBLIC BOOLEAN historytarget ARGS1(
 }
 
 /*
- *  This procedure outputs the Visited Links
- *  list into a temporary file. - FM
+ *  This procedure outputs the Visited Links list into a temporary file. - FM
+ *  Returns links's number to make active (1-based), or 0 if not required.
  */
 PUBLIC int LYShowVisitedLinks ARGS1(
 	char **,	newfile)
@@ -569,10 +638,13 @@ PUBLIC int LYShowVisitedLinks ARGS1(
     static char tempfile[LY_MAXPATH] = "\0";
     char *Title = NULL;
     char *Address = NULL;
-    int x;
+    int x, tot;
     FILE *fp0;
     VisitedLink *vl;
     HTList *cur = Visited_Links;
+    int offset;
+    int ret = 0;
+    char *arrow, *post_arrow;
 
     if (!cur)
 	return(-1);
@@ -595,16 +667,78 @@ PUBLIC int LYShowVisitedLinks ARGS1(
 
     BeginInternalPage(fp0, VISITED_LINKS_TITLE, VISITED_LINKS_HELP);
 
+    fprintf(fp0, "<form action=\"LYNXOPTIONS:\" method=\"post\">\n");
+    fprintf(fp0, "<select name=\"visited_pages_type\">\n");
+    fprintf(fp0, " <option value=\"first_visited\" %s>Sort By First Visited\n",
+		 (Visited_Links_As == VISITED_LINKS_AS_FIRST_V ? "selected" : ""));
+    fprintf(fp0, " <option value=\"first_visited_reversed\" %s>Reverse Sort By First Visited\n",
+		 (Visited_Links_As == (VISITED_LINKS_AS_FIRST_V|VISITED_LINKS_REVERSE) ? "selected" : ""));
+    fprintf(fp0, " <option value=\"visit_tree\" %s>View As Visit Tree\n",
+		 (Visited_Links_As == VISITED_LINKS_AS_TREE ? "selected" : ""));
+    fprintf(fp0, " <option value=\"last_visited\" %s>Sort By Last Visited\n",
+		 (Visited_Links_As == VISITED_LINKS_AS_LATEST ? "selected" : ""));
+    fprintf(fp0, " <option value=\"last_visited_reversed\" %s>Reverse Sort By Last Visited\n",
+		 (Visited_Links_As == (VISITED_LINKS_AS_LATEST|VISITED_LINKS_REVERSE)
+		   ? "selected" : ""));
+    fprintf(fp0, "</select>\n");
+    fprintf(fp0, "<input type=\"submit\" value=\"Accept Changes\">\n");
+    fprintf(fp0, "</form>\n");
+    fprintf(fp0, "<P>\n");
+
     fprintf(fp0, "<pre>\n");
     fprintf(fp0, "<em>%s</em>\n",
 	    gettext("You visited (POSTs, bookmark, menu and list files excluded):"));
-    x = HTList_count(Visited_Links);
-    while (NULL != (vl = (VisitedLink *)HTList_nextObject(cur))) {
+    if (Visited_Links_As & VISITED_LINKS_REVERSE)
+	tot = x = HTList_count(Visited_Links);
+    else
+	tot = x = -1;
+
+    if (Visited_Links_As & VISITED_LINKS_AS_TREE) {
+	vl = First_tree;
+    } else if (Visited_Links_As & VISITED_LINKS_AS_LATEST) {
+	if (Visited_Links_As & VISITED_LINKS_REVERSE)
+	    vl = Latest_last.prev_latest;
+	else
+	    vl = Latest_first.next_latest;
+	if (vl == &Latest_last || vl == &Latest_first)
+	    vl = NULL;
+    } else {
+	if (Visited_Links_As & VISITED_LINKS_REVERSE)
+	    vl = Last_by_first;
+	else
+	    vl = (VisitedLink *)HTList_nextObject(cur);
+    }
+    while (NULL != vl) {
 	/*
 	 *  The number of the document (most recent highest),
 	 *  its title in a link, and its address. - FM
 	 */
-	x--;
+	post_arrow = arrow = "";
+	if (Visited_Links_As & VISITED_LINKS_REVERSE)
+	    x--;
+	else
+	    x++;
+	if (vl == PrevActiveVisitedLink) {
+	    if (Visited_Links_As & VISITED_LINKS_REVERSE)
+		ret = tot - x + 2;
+	    else
+		ret = x + 3;
+	}
+	if (vl == PrevActiveVisitedLink) {
+	    post_arrow = "<A NAME=current></A>";
+	    /* Otherwise levels 0 and 1 look the same when with arrow: */
+	    arrow = (vl->level && (Visited_Links_As & VISITED_LINKS_AS_TREE))
+			 ? "==>" : "=>";
+	    StrAllocCat(*newfile, "#current");
+	}
+	if (Visited_Links_As & VISITED_LINKS_AS_TREE) {
+	    offset = 2 * vl->level;
+	    if (offset > 24)
+		offset = (offset + 24)/2;
+	    if (offset > LYcols * 3/4)
+		offset = LYcols * 3/4;
+	} else
+	    offset = (x > 99 ? 0 : x < 10 ? 2 : 1);
 	if (vl->title != NULL && *vl->title != '\0') {
 	    StrAllocCopy(Title, vl->title);
 	    LYEntify(&Title, TRUE);
@@ -619,13 +753,13 @@ PUBLIC int LYShowVisitedLinks ARGS1(
 	    StrAllocCopy(Address, vl->address);
 	    LYEntify(&Address, FALSE);
 	    fprintf(fp0,
-		    "%s<em>%d</em>. <tab id=t%d><a href=\"%s\">%s</a>\n",
-		    (x > 99 ? "" : x < 10 ? "  " : " "),
+		    "%-*s%s<em>%d</em>. <tab id=t%d><a href=\"%s\">%s</a>\n",
+		    offset, arrow, post_arrow,
 		    x, x, Address, Title);
 	} else {
 	    fprintf(fp0,
-		    "%s<em>%d</em>. <tab id=t%d><em>%s</em>\n",
-		    (x > 99 ? "" : x < 10 ? "  " : " "),
+		    "%-*s%s<em>%d</em>. <tab id=t%d><em>%s</em>\n",
+		    offset, arrow, post_arrow,
 		    x, x, Title);
 	}
 	if (Address != NULL) {
@@ -634,6 +768,21 @@ PUBLIC int LYShowVisitedLinks ARGS1(
 	}
 	fprintf(fp0, "<tab to=t%d>%s\n", x,
 		     ((Address != NULL) ? Address : gettext("(no address)")));
+	if (Visited_Links_As & VISITED_LINKS_AS_TREE)
+	    vl = vl->next_tree;
+	else if (Visited_Links_As & VISITED_LINKS_AS_LATEST) {
+	    if (Visited_Links_As & VISITED_LINKS_REVERSE)
+		vl = vl->prev_latest;
+	    else
+		vl = vl->next_latest;
+	    if (vl == &Latest_last || vl == &Latest_first)
+		vl = NULL;
+	} else {
+	    if (Visited_Links_As & VISITED_LINKS_REVERSE)
+		vl = vl->prev_first;
+	    else
+		vl = (VisitedLink *)HTList_nextObject(cur);
+	}
     }
     fprintf(fp0,"</pre>\n");
     EndInternalPage(fp0);
@@ -641,7 +790,7 @@ PUBLIC int LYShowVisitedLinks ARGS1(
     LYCloseTempFP(fp0);
     FREE(Title);
     FREE(Address);
-    return(0);
+    return(ret);
 }
 
 
diff --git a/src/LYKeymap.c b/src/LYKeymap.c
index bd5783b5..47e45e10 100644
--- a/src/LYKeymap.c
+++ b/src/LYKeymap.c
@@ -782,6 +782,39 @@ PRIVATE char *pretty ARGS1 (int, c)
 	static char buf[30];
 
 	if (c == '\t')
+		sprintf(buf, "<tab>");
+	else if (c == '\r')
+		sprintf(buf, "<return>");
+	else if (c == CH_ESC)
+		sprintf(buf, "ESC");
+	else if (c == ' ')
+		sprintf(buf, "<space>");
+	else if (c == '<')
+		sprintf(buf, "<");
+	else if (c == '>')
+		sprintf(buf, ">");
+	else if (c == 0177)
+		sprintf(buf, "<delete>");
+	else if (c > ' ' && c <= 0377)
+		sprintf(buf, "%c", c);
+	else if (c < ' ')
+		sprintf(buf, "^%c", c|0100);
+	else if (c >= 0400 && (c - 0400) < (int) TABLESIZE(funckey)
+		 && funckey[c-0400])
+		sprintf(buf, "%s", funckey[c-0400]);
+	else if (c >= 0400)
+		sprintf(buf, "key-%#x", c);
+	else
+		return 0;
+
+	return buf;
+}
+
+PRIVATE char *pretty_html ARGS1 (int, c)
+{
+	static char buf[30];
+
+	if (c == '\t')
 		sprintf(buf, "&lt;tab&gt;      ");
 	else if (c == '\r')
 		sprintf(buf, "&lt;return&gt;   ");
@@ -820,7 +853,7 @@ PRIVATE char * format_binding ARGS2(
      && the_key < TABLESIZE(revmap)
      && revmap[the_key].name != 0
      && revmap[the_key].doc != 0
-     && (formatted = pretty(i-1)) != 0) {
+     && (formatted = pretty_html(i-1)) != 0) {
 	HTSprintf0(&buf, "%-11s %-13s %s\n", formatted,
 		revmap[the_key].name,
 		revmap[the_key].doc);
@@ -996,7 +1029,7 @@ PUBLIC int remap ARGS2(
     else if (c >= 0) {
 	/* Remapping of key actions is supported only for basic
 	 * lynxkeycodes, without modifiers etc.!  If we get somehow
-	 * called for an invalid lynxkeycode, fail or silently
+	 * called for an invalid lynxkeycode, fail or silently ignore
 	 * modifiers. - kw
 	 */
 	if (c & LKC_ISLAC)
@@ -1166,6 +1199,122 @@ PUBLIC char *key_for_func ARGS1 (
 }
 
 /*
+ *  Given one or two keys as lynxkeycodes, returns an allocated string
+ *  representing the key(s) suitable for statusline messages.
+ *  The caller must free the string. - kw
+ */
+PRIVATE char *fmt_keys ARGS2(
+    int,	lkc_first,
+    int,	lkc_second)
+{
+    char *buf = NULL;
+    BOOLEAN quotes = FALSE;
+    char *fmt_first = pretty(lkc_first);
+    char *fmt_second;
+    if (fmt_first && strlen(fmt_first) == 1 && *fmt_first != '\'') {
+	quotes = TRUE;
+    }
+    if (quotes) {
+	if (lkc_second < 0) {
+	    HTSprintf0(&buf, "'%s'", fmt_first);
+	    return buf;
+	} else {
+	    HTSprintf0(&buf, "'%s", fmt_first);
+	}
+    } else {
+	StrAllocCopy(buf, fmt_first);
+    }
+    if (lkc_second >= 0) {
+	fmt_second = pretty(lkc_second);
+	if (!fmt_second) {
+	    FREE(buf);
+	    return NULL;
+	}
+	HTSprintf(&buf, "%s%s%s",
+		  ((strlen(fmt_second) > 2 && *fmt_second != '<') ||
+		   (strlen(buf) > 2 && buf[strlen(buf)-1] != '>')) ? " " : "",
+		  fmt_second, quotes ? "'" : "");
+    }
+    return buf;
+}
+
+/*
+ *  This function returns the (int)ch mapped to the
+ *  LYK_foo value passed to it as an argument.  It is like
+ *  LYReverseKeymap, only the order of search is different;
+ *  e.g., small ASCII letters will be returned in preference to
+ *  capital ones.  Cf. LYKeyForEditAction, LYEditKeyForAction in
+ *  LYEditmap.c which use the same order to find a best key.
+ *  In addition, this function takes the dired override map into
+ *  account while LYReverseKeymap doesn't.
+ *  The caller must free the returned string. - kw
+ */
+#define FIRST_I 97
+#define NEXT_I(i,imax) ((i==122) ? 32 : (i==96) ? 123 : (i==126) ? 0 :\
+			(i==31) ? 256 : (i==imax) ? 127 :\
+			(i==255) ? (-1) :i+1)
+PRIVATE int best_reverse_keymap ARGS1(
+	int,	lac)
+{
+    int i, c;
+
+    for (i = FIRST_I; i >= 0; i = NEXT_I(i,KEYMAP_SIZE-2)) {
+#ifdef NOT_ASCII
+	if (i < 256) {
+	    c = FROMASCII(i);
+	} else
+#endif
+	    c = i;
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+	if (lynx_edit_mode && !no_dired_support && lac &&
+	    LKC_TO_LAC(key_override,c) == lac)
+	    return c;
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+	if (LKC_TO_LAC(keymap,c) == lac) {
+	    return c;
+	}
+    }
+
+    return(-1);
+}
+
+/*
+ *  This function returns a string representing a key mapped
+ *  to a LYK_foo function, or NULL if not found.  The string
+ *  may represent a pair of keys.  if context_code is FOR_INPUT,
+ *  an appropriate binding for use while in the (forms) line editor
+ *  is sought.  - kw
+ */
+PUBLIC char* key_for_func_ext ARGS2(
+    int,	lac,
+    int,	context_code)
+{
+    int lkc, modkey = -1;
+
+    if (context_code == FOR_INPUT) {
+	lkc = LYEditKeyForAction(lac, &modkey);
+	if (lkc >= 0) {
+	    if (lkc & (LKC_MOD1|LKC_MOD2|LKC_MOD3)) {
+		return fmt_keys(modkey, lkc & ~(LKC_MOD1|LKC_MOD2|LKC_MOD3));
+	    } else {
+		return fmt_keys(lkc, -1);
+	    }
+	}
+    }
+    lkc = best_reverse_keymap(lac);
+    if (lkc < 0)
+	return NULL;
+    if (context_code == FOR_INPUT) {
+	modkey = LYKeyForEditAction(LYE_LKCMD);
+	if (modkey < 0)
+	    return NULL;
+	return fmt_keys(modkey, lkc);
+    } else {
+	return fmt_keys(lkc, -1);
+    }
+}
+
+/*
  *  This function returns TRUE if the ch is non-alphanumeric
  *  and maps to KeyName (LYK_foo in the keymap[] array). - FM
  */
diff --git a/src/LYKeymap.h b/src/LYKeymap.h
index 85ffb087..60d640b7 100644
--- a/src/LYKeymap.h
+++ b/src/LYKeymap.h
@@ -7,10 +7,11 @@
 
 extern BOOLEAN LYisNonAlnumKeyname PARAMS((int ch, int KeyName));
 extern char *key_for_func PARAMS((int func));
+extern char *key_for_func_ext PARAMS((int lac, int context_code));
 extern int LYReverseKeymap PARAMS((int KeyName));
-extern int lookup_keymap PARAMS((int code));
 extern int lacname_to_lac PARAMS((CONST char *func));
 extern int lkcstring_to_lkc PARAMS((CONST char *src));
+extern int lookup_keymap PARAMS((int code));
 extern int remap PARAMS((char *key, char *func));
 extern void print_keymap PARAMS((char **newfile));
 extern void reset_emacs_keys NOPARAMS;
diff --git a/src/LYMain.c b/src/LYMain.c
index 8c06d910..98e6fbbd 100644
--- a/src/LYMain.c
+++ b/src/LYMain.c
@@ -266,6 +266,7 @@ PUBLIC BOOLEAN no_compileopts_info = FALSE;
 
 PUBLIC BOOLEAN no_statusline = FALSE;
 PUBLIC BOOLEAN no_filereferer = FALSE;
+PUBLIC char LYRefererWithQuery = 'D'; /* 'D' for drop */
 PUBLIC BOOLEAN local_host_only = FALSE;
 PUBLIC BOOLEAN override_no_download = FALSE;
 PUBLIC BOOLEAN show_dotfiles = FALSE; /* From rcfile if no_dotfiles is false */
@@ -408,7 +409,7 @@ PUBLIC char *LYCookieSStrictCheckDomains = NULL; /* check strictly  */
 PUBLIC char *LYCookieSLooseCheckDomains = NULL;  /* check loosely   */
 PUBLIC char *LYCookieSQueryCheckDomains = NULL;  /* check w/a query */
 #ifdef EXP_PERSISTENT_COOKIES
-BOOLEAN persistent_cookies = TRUE;
+BOOLEAN persistent_cookies = FALSE; 	/* disabled by default! */
 PUBLIC char *LYCookieFile = NULL;	   /* default cookie file */
 #endif /* EXP_PERSISTENT_COOKIES */
 PUBLIC char *XLoadImageCommand = NULL;	/* Default image viewer for X */
@@ -1370,7 +1371,7 @@ PUBLIC int main ARGS2(
    if ((lynx_cfg_file[0] == '~') && LYIsPathSep(lynx_cfg_file[1]))
      {
 #ifdef VMS
-	StrAllocCopy(temp, HTVMS_wwwName((char *)Home_Dir()));
+	StrAllocCopy(temp, HTVMS_wwwName(Home_Dir()));
 #else
 	StrAllocCopy(temp, Home_Dir());
 #endif /* VMS */
@@ -1455,7 +1456,7 @@ PUBLIC int main ARGS2(
 	StrAllocCopy(temp, lynx_lss_file);
 	LYTrimPathSep(temp);
 #ifdef VMS
-	StrAllocCat(temp, HTVMS_wwwName((char *)Home_Dir()));
+	StrAllocCat(temp, HTVMS_wwwName(Home_Dir()));
 #else
 	StrAllocCat(temp, Home_Dir());
 #endif /* VMS */
@@ -2979,7 +2980,7 @@ static Parse_Args_Type Arg_Table [] =
 {
    PARSE_SET(
       "accept_all_cookies", SET_ARG,		&LYAcceptAllCookies,
-      "\naccepts all cookies"
+      "\naccept cookies without prompting if Set-Cookie handling is on"
    ),
    PARSE_FUN(
       "anonymous",	FUNCTION_ARG,	anonymous_fun,
diff --git a/src/LYMainLoop.c b/src/LYMainLoop.c
index 157fe2a7..96306ab5 100644
--- a/src/LYMainLoop.c
+++ b/src/LYMainLoop.c
@@ -169,7 +169,7 @@ PRIVATE int str_n_cmp(const char *p, const char *q, int n)
 
 PRIVATE void exit_immediately_with_error_message PARAMS((int state, BOOLEAN first_file));
 PRIVATE void status_link PARAMS((char *curlink_name, BOOLEAN show_more, BOOLEAN show_indx));
-PRIVATE void show_main_statusline PARAMS((CONST linkstruct curlink));
+PRIVATE void show_main_statusline PARAMS((CONST linkstruct curlink, int for_what));
 PRIVATE BOOL confirm_post_resub PARAMS((
     CONST char*		address,
     CONST char*		title,
@@ -195,6 +195,9 @@ PRIVATE int sametext ARGS2(
 PUBLIC	HTList * Goto_URLs = NULL;  /* List of Goto URLs */
 
 PUBLIC char * LYRequestTitle = NULL; /* newdoc.title in calls to getfile() */
+PUBLIC char * LYRequestReferer = NULL; /* Referer, may be set in getfile() */
+
+PUBLIC char search_target[512];      /* now global */
 
 #ifdef DISP_PARTIAL
 PUBLIC int Newline_partial = 0;     /* required for display_partial mode */
@@ -246,6 +249,7 @@ PRIVATE void free_mainloop_variables NOARGS
     clear_tags();
 #endif /* DIRED_SUPPORT */
     FREE(WWW_Download_File);	/* LYGetFile.c/HTFWriter.c */
+    FREE(LYRequestReferer);
 
     return;
 }
@@ -355,8 +359,7 @@ PRIVATE BOOLEAN LYReopenTracelog ARGS1(BOOLEAN *, trace_flag_ptr)
     return TRUE;
 }
 
-PRIVATE int do_change_link ARGS1(
-	char *,		prev_target)
+PRIVATE int do_change_link NOARGS
 {
     /* Is there a mouse-clicked link waiting? */
     int mouse_tmp = get_mouse_link();
@@ -364,7 +367,7 @@ PRIVATE int do_change_link ARGS1(
     if (mouse_tmp != -1) {
 	if (curdoc.link >= 0 && curdoc.link < nlinks
 	 && curdoc.link != mouse_tmp) {
-	    highlight(OFF, curdoc.link, prev_target);
+	    highlight(OFF, curdoc.link);
 	}
 	if (mouse_tmp < 0 || mouse_tmp >= nlinks) {
 	    char *msgtmp = NULL;
@@ -859,10 +862,9 @@ PRIVATE BOOLEAN check_history NOARGS
 }
 #endif
 
-PRIVATE int handle_LYK_ACTIVATE ARGS7(
+PRIVATE int handle_LYK_ACTIVATE ARGS6(
     int *,	c,
     int,	cmd GCC_UNUSED,
-    char *,	prev_target,
     BOOLEAN *,	try_internal GCC_UNUSED,
     BOOLEAN *,	refresh_screen,
     BOOLEAN *,	force_load,
@@ -879,11 +881,11 @@ PRIVATE int handle_LYK_ACTIVATE ARGS7(
 	 textinput_activated = TRUE;
 	 textinput_drawn = FALSE;
 	 if (!sticky_inputs)
-	     show_main_statusline(links[curdoc.link]);
+	     show_main_statusline(links[curdoc.link], FOR_INPUT);
 	 return 0;
     }
 #endif
-    if (do_change_link(prev_target) == -1) {
+    if (do_change_link() == -1) {
 	LYforce_no_cache = FALSE;
 	reloading = FALSE;
 	return 1;	/* mouse stuff was confused, ignore - kw */
@@ -1040,7 +1042,12 @@ gettext("Enctype multipart/form-data not yet supported!  Cannot submit."));
 		links[curdoc.link].form->type == F_TEXT_SUBMIT_TYPE ||
 		links[curdoc.link].form->type == F_PASSWORD_TYPE ||
 		links[curdoc.link].form->type == F_TEXTAREA_TYPE) {
-		show_formlink_statusline(links[curdoc.link].form);
+		show_formlink_statusline(links[curdoc.link].form,
+					 (real_cmd==LYK_SUBMIT ||
+					  real_cmd==LYK_NOCACHE ||
+					  real_cmd==LYK_DOWNLOAD ||
+					  real_cmd==LYK_HEAD) ?
+					 FOR_PANEL : FOR_INPUT);
 	    }
 
 	    *c = change_form_link(&links[curdoc.link],
@@ -1854,9 +1861,6 @@ PRIVATE void handle_LYK_DIRED_MENU ARGS3(
     /*
      *	Don't do if not allowed or already viewing the menu.
      */
-#ifdef __DJGPP__
-    lynx_edit_mode = TRUE;
-#endif /* __DJGPP__ */
     if (lynx_edit_mode && !no_dired_support &&
 	strcmp(curdoc.address, LYDiredFileURL) &&
 	strcmp((curdoc.title ? curdoc.title : ""),
@@ -1868,8 +1872,7 @@ PRIVATE void handle_LYK_DIRED_MENU ARGS3(
 #endif /* VMS */
 #endif /* defined(DIRED_SUPPORT) || defined(VMS) */
 
-PRIVATE int handle_LYK_DOWNLOAD ARGS4(
-    char *,	prev_target,
+PRIVATE int handle_LYK_DOWNLOAD ARGS3(
     int *,	cmd,
     int *,	old_c,
     int,	real_c)
@@ -1894,7 +1897,7 @@ PRIVATE int handle_LYK_DOWNLOAD ARGS4(
 		DOWNLOAD_OPTIONS_TITLE))
 	return 0;
 
-    if (do_change_link(prev_target) == -1)
+    if (do_change_link() == -1)
 	return 1;	/* mouse stuff was confused, ignore - kw */
     if (nlinks > 0) {
 	if (links[curdoc.link].type == WWW_FORM_LINK_TYPE) {
@@ -2115,8 +2118,7 @@ PRIVATE void handle_LYK_DOWN_HALF ARGS2(
     }
 }
 
-PRIVATE void handle_LYK_DOWN_LINK ARGS4(
-    char *,	prev_target,
+PRIVATE void handle_LYK_DOWN_LINK ARGS3(
     int *,	follow_col,
     int *,	old_c,
     int,	real_c)
@@ -2133,7 +2135,7 @@ PRIVATE void handle_LYK_DOWN_LINK ARGS4(
 
 	newlink = find_link_near_col(*follow_col, 1);
 	if (newlink > -1) {
-	    highlight(OFF, curdoc.link, prev_target);
+	    highlight(OFF, curdoc.link);
 	    curdoc.link = newlink;
 	} else if (more) {  /* next page */
 		Newline += (display_lines);
@@ -2176,7 +2178,7 @@ PRIVATE int handle_LYK_DWIMEDIT ARGS3(
     int *,	old_c,
     int,	real_c)
 {
-#ifdef AUTOEXTEDIT
+#ifdef TEXTAREA_AUTOEXTEDIT
     /*
      *  If we're in a forms TEXTAREA, invoke the editor on *its*
      *  contents, rather than attempting to edit the html source
@@ -2212,7 +2214,7 @@ PRIVATE int handle_LYK_DWIMEDIT ARGS3(
 	}
 	return 1;
     }
-#endif /* AUTOEXTEDIT */
+#endif /* TEXTAREA_AUTOEXTEDIT */
     return 0;
 }
 
@@ -2570,9 +2572,8 @@ PRIVATE void handle_LYK_EXTERN ARGS1(
 }
 #endif
 
-PRIVATE BOOLEAN handle_LYK_FASTBACKW_LINK ARGS4(
+PRIVATE BOOLEAN handle_LYK_FASTBACKW_LINK ARGS3(
     int *,	cmd,
-    char *,	prev_target,
     int *,	old_c,
     int,	real_c)
 {
@@ -2653,7 +2654,7 @@ PRIVATE BOOLEAN handle_LYK_FASTBACKW_LINK ARGS4(
 		    nextlink--;
 		}
 	}
-	highlight(OFF, curdoc.link, prev_target);
+       highlight(OFF, curdoc.link);
 	curdoc.link = nextlink;
 	return FALSE;		/* and we are done. */
 
@@ -2681,8 +2682,7 @@ PRIVATE BOOLEAN handle_LYK_FASTBACKW_LINK ARGS4(
     return FALSE;
 }
 
-PRIVATE void handle_LYK_FASTFORW_LINK ARGS3(
-    char *,	prev_target,
+PRIVATE void handle_LYK_FASTFORW_LINK ARGS2(
     int *,	old_c,
     int,	real_c)
 {
@@ -2724,7 +2724,7 @@ PRIVATE void handle_LYK_FASTFORW_LINK ARGS3(
 	}
     }
     if (samepage) {
-	highlight(OFF, curdoc.link, prev_target);
+       highlight(OFF, curdoc.link);
 	curdoc.link = nextlink;
 	return;		/* and we are done. */
 
@@ -2733,7 +2733,7 @@ PRIVATE void handle_LYK_FASTFORW_LINK ARGS3(
      *	Move to the top link on the page.
      */
     } else if (!more && Newline == 1 && curdoc.link == nlinks-1) {
-	highlight(OFF, curdoc.link, prev_target);
+       highlight(OFF, curdoc.link);
 	curdoc.link = 0;
 
     } else if (more &&	/* need a later page */
@@ -3148,6 +3148,7 @@ PRIVATE void handle_LYK_INDEX_SEARCH ARGS4(
 	     */
 	    StrAllocCopy(curdoc.address, newdoc.address);
 	    StrAllocCopy(newdoc.post_data, curdoc.post_data);
+	    StrAllocCopy(newdoc.post_content_type, curdoc.post_content_type);
 	    newdoc.internal_link = FALSE;
 	    curdoc.line = -1;
 	    Newline = 0;
@@ -3189,8 +3190,7 @@ PRIVATE void handle_LYK_INDEX_SEARCH ARGS4(
     }
 }
 
-PRIVATE BOOLEAN handle_LYK_INFO ARGS2(
-    char *,	prev_target,
+PRIVATE BOOLEAN handle_LYK_INFO ARGS1(
     int *,	cmd)
 {
     /*
@@ -3198,7 +3198,7 @@ PRIVATE BOOLEAN handle_LYK_INFO ARGS2(
      */
     if (strcmp((curdoc.title ? curdoc.title : ""),
 	       SHOWINFO_TITLE)) {
-	if (do_change_link(prev_target) != -1
+       if (do_change_link() != -1
 	 && showinfo(&curdoc, HText_getNumOfLines(),
 		     &newdoc, owner_address) >= 0) {
 	    StrAllocCopy(newdoc.title, SHOWINFO_TITLE);
@@ -3418,12 +3418,11 @@ PRIVATE void handle_LYK_KEYMAP ARGS4(
     }
 }
 
-PRIVATE void handle_LYK_LEFT_LINK ARGS1(
-    char *,	prev_target)
+PRIVATE void handle_LYK_LEFT_LINK NOARGS
 {
     if (curdoc.link>0 &&
 		links[curdoc.link].ly == links[curdoc.link-1].ly) {
-	highlight(OFF, curdoc.link, prev_target);
+       highlight(OFF, curdoc.link);
 	curdoc.link--;
     }
 }
@@ -3463,8 +3462,7 @@ PRIVATE BOOLEAN handle_LYK_LIST ARGS1(
     return FALSE;
 }
 
-PRIVATE void handle_LYK_MAIN_MENU ARGS3(
-    char *,	prev_target,
+PRIVATE void handle_LYK_MAIN_MENU ARGS2(
     int *,	old_c,
     int,	real_c)
 {
@@ -3482,7 +3480,7 @@ PRIVATE void handle_LYK_MAIN_MENU ARGS3(
 	    newdoc.isHEAD = FALSE;
 	    newdoc.safe = FALSE;
 	    newdoc.internal_link = FALSE;
-	    highlight(OFF, curdoc.link, prev_target);
+	    highlight(OFF, curdoc.link);
 #ifdef DIRED_SUPPORT
 	    if (lynx_edit_mode)
 		HTuncache_current_document();
@@ -3733,14 +3731,13 @@ PRIVATE BOOLEAN handle_LYK_OPTIONS ARGS2(
     return FALSE;
 }
 
-PRIVATE void handle_LYK_NEXT_LINK ARGS4(
+PRIVATE void handle_LYK_NEXT_LINK ARGS3(
     int,	c,
-    char *,	prev_target,
     int *,	old_c,
     int,	real_c)
 {
     if (curdoc.link < nlinks-1) {	/* next link */
-	highlight(OFF, curdoc.link, prev_target);
+       highlight(OFF, curdoc.link);
 #ifdef FASTTAB
 	/*
 	 *  Move to different textarea if TAB in textarea.
@@ -3768,7 +3765,7 @@ PRIVATE void handle_LYK_NEXT_LINK ARGS4(
      *	Move to the top link on the page.
      */
     } else if (!more && Newline == 1 && curdoc.link == nlinks-1) {
-	highlight(OFF, curdoc.link, prev_target);
+       highlight(OFF, curdoc.link);
 	curdoc.link = 0;
 
     } else if (more) {	/* next page */
@@ -3780,15 +3777,14 @@ PRIVATE void handle_LYK_NEXT_LINK ARGS4(
     }
 }
 
-PRIVATE void handle_LYK_NEXT_PAGE ARGS3(
-    char *,	prev_target,
+PRIVATE void handle_LYK_NEXT_PAGE ARGS2(
     int	*,	old_c,
     int,	real_c)
 {
     if (more) {
 	Newline += display_lines;
     } else if (curdoc.link < nlinks-1) {
-	highlight(OFF, curdoc.link, prev_target);
+       highlight(OFF, curdoc.link);
 	curdoc.link = nlinks-1;  /* put on last link */
     } else if (*old_c != real_c) {
 	*old_c = real_c;
@@ -3818,8 +3814,7 @@ PRIVATE BOOLEAN handle_LYK_NOCACHE ARGS2(
     return TRUE;
 }
 
-PRIVATE void handle_LYK_PREV_LINK ARGS4(
-    char *,	prev_target,
+PRIVATE void handle_LYK_PREV_LINK ARGS3(
     int *,	arrowup,
     int	*,	old_c,
     int,	real_c)
@@ -3828,7 +3823,7 @@ PRIVATE void handle_LYK_PREV_LINK ARGS4(
 	/*
 	 *  Unhighlight current link.
 	 */
-	highlight(OFF, curdoc.link, prev_target);
+       highlight(OFF, curdoc.link);
 	curdoc.link--;
 
     } else if (!more &&
@@ -3839,7 +3834,7 @@ PRIVATE void handle_LYK_PREV_LINK ARGS4(
 	 *  link and just move the cursor to last link on
 	 *  the page.
 	 */
-	highlight(OFF, curdoc.link, prev_target);
+       highlight(OFF, curdoc.link);
 	curdoc.link = nlinks-1;  /* the last link */
 
     } else if (curdoc.line > 1) {	/* previous page */
@@ -3975,15 +3970,14 @@ PRIVATE int handle_PREV_DOC ARGS3(
     return 0;
 }
 
-PRIVATE void handle_LYK_PREV_PAGE ARGS3(
-    char *,	prev_target,
+PRIVATE void handle_LYK_PREV_PAGE ARGS2(
     int	*,	old_c,
     int,	real_c)
 {
     if (Newline > 1) {
 	Newline -= display_lines;
     } else if (curdoc.link > 0) {
-	highlight(OFF, curdoc.link, prev_target);
+       highlight(OFF, curdoc.link);
 	curdoc.link = 0;  /* put on first link */
     } else if (*old_c != real_c) {
 	*old_c = real_c;
@@ -4142,12 +4136,11 @@ PRIVATE void handle_LYK_REMOVE NOARGS
 }
 #endif /* DIRED_SUPPORT */
 
-PRIVATE void handle_LYK_RIGHT_LINK ARGS1(
-    char *,	prev_target)
+PRIVATE void handle_LYK_RIGHT_LINK NOARGS
 {
     if (curdoc.link<nlinks-1 &&
 		links[curdoc.link].ly == links[curdoc.link+1].ly) {
-	highlight(OFF, curdoc.link, prev_target);
+       highlight(OFF, curdoc.link);
 	curdoc.link++;
     }
 }
@@ -4338,8 +4331,7 @@ PRIVATE void handle_LYK_SWITCH_DTD NOARGS
 }
 
 #ifdef DIRED_SUPPORT
-PRIVATE void handle_LYK_TAG_LINK ARGS1(
-    char *,	prev_target)
+PRIVATE void handle_LYK_TAG_LINK NOARGS
 {
     if (lynx_edit_mode && nlinks > 0 && !no_dired_support) {
 	if (!strcmp(links[curdoc.link].hightext, ".."))
@@ -4376,10 +4368,10 @@ PRIVATE void handle_LYK_TAG_LINK ARGS1(
 	    }
 	}
 	if (curdoc.link < nlinks-1) {
-	    highlight(OFF, curdoc.link, prev_target);
+	    highlight(OFF, curdoc.link);
 	    curdoc.link++;
 	} else if (!more && Newline == 1 && curdoc.link == nlinks-1) {
-	    highlight(OFF, curdoc.link, prev_target);
+	    highlight(OFF, curdoc.link);
 	    curdoc.link = 0;
 	} else if (more) {  /* next page */
 	    Newline += (display_lines);
@@ -4476,7 +4468,7 @@ PRIVATE void handle_LYK_TRACE_LOG ARGS1(
     LYforce_no_cache = TRUE;
 }
 
-PRIVATE void handle_LYK_TRACE_TOGGLE NOARGS
+PUBLIC void handle_LYK_TRACE_TOGGLE NOARGS
 {
     WWW_TraceFlag = ! WWW_TraceFlag;
     if (LYOpenTraceLog())
@@ -4540,8 +4532,7 @@ PRIVATE void handle_LYK_UP_HALF ARGS3(
     }
 }
 
-PRIVATE void handle_LYK_UP_LINK ARGS5(
-    char *,	prev_target,
+PRIVATE void handle_LYK_UP_LINK ARGS4(
     int *,	follow_col,
     int *,	arrowup,
     int *,	old_c,
@@ -4563,7 +4554,7 @@ PRIVATE void handle_LYK_UP_LINK ARGS5(
 
 	newlink = find_link_near_col(*follow_col, -1);
 	if (newlink > -1) {
-	    highlight(OFF, curdoc.link, prev_target);
+	    highlight(OFF, curdoc.link);
 	    curdoc.link = newlink;
 	} else if (*old_c != real_c) {
 	    *old_c = real_c;
@@ -4664,9 +4655,12 @@ PRIVATE void handle_LYK_VIEW_BOOKMARK ARGS3(
     }
 }
 
-PRIVATE BOOLEAN handle_LYK_VLINKS ARGS1(
-    int *,     cmd)
+PRIVATE BOOLEAN handle_LYK_VLINKS ARGS2(
+    int *,	cmd,
+    BOOLEAN *,	newdoc_link_is_absolute)
 {
+    int c;
+
     if (!strcmp((curdoc.title ? curdoc.title : ""),
 		VISITED_LINKS_TITLE)) {
 	/*
@@ -4679,7 +4673,8 @@ PRIVATE BOOLEAN handle_LYK_VLINKS ARGS1(
     /*
      *	Print visited links page to file.
      */
-    if (LYShowVisitedLinks(&newdoc.address) < 0) {
+    c = LYShowVisitedLinks(&newdoc.address);
+    if (c < 0) {
 	HTUserMsg(VISITED_LINKS_EMPTY);
 	return FALSE;
     }
@@ -4690,6 +4685,11 @@ PRIVATE BOOLEAN handle_LYK_VLINKS ARGS1(
     newdoc.isHEAD = FALSE;
     newdoc.safe = FALSE;
     newdoc.internal_link = FALSE;
+    if (c > 0) {
+	/* Select a correct link. */
+	*newdoc_link_is_absolute = TRUE;
+	newdoc.link = c - 1;
+    }
     if (LYValidate || check_realm) {
 	LYPermitURL = TRUE;
 	StrAllocCopy(lynxlinksfile, newdoc.address);
@@ -4697,42 +4697,41 @@ PRIVATE BOOLEAN handle_LYK_VLINKS ARGS1(
     return FALSE;
 }
 
-PRIVATE void handle_LYK_WHEREIS ARGS3(
+PUBLIC void handle_LYK_WHEREIS ARGS2(
     int,	cmd,
-    char *,	prev_target,
     BOOLEAN *,	refresh_screen)
 {
-    BOOLEAN have_target_onscreen = (*prev_target != '\0' &&
+    BOOLEAN have_target_onscreen = (*search_target != '\0' &&
 				    HText_pageHasPrevTarget());
     BOOL found;
     int oldcur = curdoc.link; /* temporarily remember */
     char *remember_old_target = NULL;
     if (have_target_onscreen)
-	StrAllocCopy(remember_old_target, prev_target);
+       StrAllocCopy(remember_old_target, search_target);
     else
 	StrAllocCopy(remember_old_target, "");
 
     if (cmd != LYK_NEXT) {
 	/*
-	 *  Reset prev_target to force prompting
+	 *  Reset search_target to force prompting
 	 *  for a new search string and to turn
-	 *  off highlighting in no search string
+	 *  off highlighting if no search string
 	 *  is entered by the user.
 	 */
-	*prev_target = '\0';
-	found = textsearch(&curdoc, prev_target, FALSE);
+       *search_target = '\0';
+       found = textsearch(&curdoc, search_target, FALSE);
     } else {
 	/*
 	 *  When the third argument is TRUE, the previous
 	 *  search string, if any, will be recalled from
-	 *  a buffer, loaded into prev_target, and used
+	 *  a buffer, loaded into search_target, and used
 	 *  for the search without prompting for a new
 	 *  search string.  This allows the LYK_NEXT
 	 *  command to repeat a search in a new document,
-	 *  after prev_target was reset on fetch of that
+	 *  after search_target was reset on fetch of that
 	 *  document.
 	 */
-	found = textsearch(&curdoc, prev_target, TRUE);
+       found = textsearch(&curdoc, search_target, TRUE);
     }
 
     /*
@@ -4756,9 +4755,9 @@ PRIVATE void handle_LYK_WHEREIS ARGS3(
 	       curdoc.link >= 0 && nlinks > 0 &&
 	       links[curdoc.link].ly >= (display_lines/3)) {
 	*refresh_screen = TRUE;
-    } else if ((case_sensitive && 0!=strcmp(prev_target,
+    } else if ((case_sensitive && 0!=strcmp(search_target,
 					    remember_old_target)) ||
-	      (!case_sensitive && 0!=strcasecomp8(prev_target,
+	      (!case_sensitive && 0!=strcasecomp8(search_target,
 					    remember_old_target))) {
 	*refresh_screen = TRUE;
     }
@@ -4768,11 +4767,10 @@ PRIVATE void handle_LYK_WHEREIS ARGS3(
 /*
  * Get a number from the user and follow that link number.
  */
-PRIVATE void handle_LYK_digit ARGS7(
+PRIVATE void handle_LYK_digit ARGS6(
     int,	c,
     BOOLEAN *,	force_load,
     char *,	user_input_buffer,
-    char *,	prev_target,
     int *,	old_c,
     int,	real_c,
     BOOLEAN *,	try_internal GCC_UNUSED)
@@ -4825,7 +4823,7 @@ PRIVATE void handle_LYK_digit ARGS7(
 			    newdoc.internal_link = curdoc.internal_link;
 			    HTInfoMsg(CANCELLED);
 			    if (nlinks > 0)
-				HText_pageDisplay(curdoc.line, prev_target);
+				HText_pageDisplay(curdoc.line);
 			    break;
 			} else if (LYresubmit_posts) {
 			    /* If LYresubmit_posts is set, and the
@@ -4911,7 +4909,7 @@ PRIVATE void handle_LYK_digit ARGS7(
 		     *	follow_link_number(), and re-initialize
 		     *	the new link value. - FM
 		     */
-		    highlight(OFF, curdoc.link, prev_target);
+		    highlight(OFF, curdoc.link);
 		    curdoc.link = newdoc.link;
 		    newdoc.link = 0;
 		}
@@ -4977,7 +4975,6 @@ int mainloop NOARGS
     int cmd = LYK_DO_NOTHING, real_cmd = LYK_DO_NOTHING;
     int getresult;
     int arrowup = FALSE, show_help = FALSE;
-    char prev_target[512];
     char user_input_buffer[MAX_LINE];
     CONST char *cshelpfile = NULL;
     BOOLEAN first_file = TRUE;
@@ -5000,6 +4997,7 @@ int mainloop NOARGS
     char *temp = NULL;
     BOOLEAN ForcePush = FALSE;
     BOOLEAN override_LYresubmit_posts = FALSE;
+    BOOLEAN newdoc_link_is_absolute = FALSE;
     unsigned int len;
     int i;
     int follow_col = -1;
@@ -5008,7 +5006,7 @@ int mainloop NOARGS
  *  curdoc.address contains the name of the file that is currently open.
  *  newdoc.address contains the name of the file that will soon be
  *		     opened if it exits.
- *  prev_target    contains the last search string the user searched for.
+ *  search_target  contains the last search string the user searched for.
  *  newdoc.title   contains the link name that the user last chose to get
  *		     into the current link (file).
  */
@@ -5031,7 +5029,7 @@ int mainloop NOARGS
 #endif
     nhist = 0;
     user_input_buffer[(sizeof(user_input_buffer) - 1)] = '\0';
-    *prev_target = '\0';
+    *search_target = '\0';
     *user_input_buffer = '\0';
 #ifdef LY_FIND_LEAKS
     atexit(free_mainloop_variables);
@@ -5249,6 +5247,7 @@ try_again:
 		    LYPermitURL = TRUE;
 		}
 
+		*search_target = '\0';	/* Reset for new coming document */
 		Newline = newdoc.line; /* bypass for partial mode */
 #ifdef DISP_PARTIAL
 		display_partial = display_partial_flag; /* restore */
@@ -5262,12 +5261,24 @@ try_again:
 		 * completed, but only if s/he did not mess screen up by
 		 * scrolling before...  So fall down to old behavior here.
 		 */
-		if (Newline_partial == 1 && strchr(newdoc.address, '#'))
+		if (newdoc.line == 1 && strchr(newdoc.address, '#')) {
 		    display_partial = FALSE;
+		}
 #endif /* DISP_PARTIAL */
 #ifdef USE_PSRC
 		psrc_first_tag = TRUE;
 #endif
+		FREE(LYRequestReferer);
+		/*
+		 *  Don't send Referer if we have to load a document again
+		 *  that we got from the history stack.  We don't know
+		 *  any more how we originally got to that page.  Using
+		 *  a Referer based on the current HTMainText could only
+		 *  be right by coincidence. - kw 1999-11-01
+		 */
+		if (popped_doc)
+		    LYNoRefererForThis = TRUE;
+
 #ifndef DONT_TRACK_INTERNAL_LINKS
 		if (try_internal) {
 		    if (newdoc.address &&
@@ -5559,7 +5570,6 @@ try_again:
 			trace_mode_flag = FALSE;
 			fprintf(tfp, "Turning TRACE back on.\n\n");
 		    }
-		    *prev_target = '\0';    /* Reset for this document. - FM */
 
 		    /*
 		     *	If it's the first file and we're interactive,
@@ -5719,6 +5729,7 @@ try_again:
 		    }
 #else
 		    Newline = newdoc.line; /* now here, no partial mode */
+		    /* *search_target = '\0'; */ /* Reset for this document. - FM */
 #endif
 
 		    /*
@@ -6033,7 +6044,7 @@ try_again:
 
 	    refresh_screen = FALSE;
 
-	    HText_pageDisplay(Newline, prev_target);
+	    HText_pageDisplay(Newline);
 
 #ifdef DIRED_SUPPORT
 	    if (lynx_edit_mode && nlinks > 0 && !HTList_isEmpty(tagged))
@@ -6058,6 +6069,17 @@ try_again:
 		}
 	    }
 
+	    /*
+	     *	If the request is to highlight a link which is counted
+	     *  from the start of document, correct the link number:
+	     */
+	    if (newdoc_link_is_absolute) {
+		newdoc_link_is_absolute = FALSE;
+		if (curdoc.line > 1)
+		    newdoc.link -= HText_LinksInLines(HTMainText, 1,
+						      curdoc.line - 1);
+	    }
+
 	    if (arrowup) {
 		/*
 		 *  arrowup is set if we just came up from
@@ -6101,7 +6123,7 @@ try_again:
 #else
 	    clear();
 #endif /* FANCY_CURSES || USE_SLANG */
-	    HText_pageDisplay(Newline, prev_target);
+	    HText_pageDisplay(Newline);
 
 #ifdef DIRED_SUPPORT
 	    if (lynx_edit_mode && nlinks > 0 && !HTList_isEmpty(tagged))
@@ -6213,7 +6235,13 @@ try_again:
 	 *  to tell the user other misc info.
 	 */
 	if (!show_help) {
-	   show_main_statusline(links[curdoc.link]);
+#ifndef NO_NONSTICKY_INPUTS
+	   show_main_statusline(links[curdoc.link],
+				(!sticky_inputs && !textinput_activated) ?
+				FOR_PANEL : FOR_INPUT);
+#else
+	   show_main_statusline(links[curdoc.link], FOR_INPUT);
+#endif
 	} else {
 	   show_help = FALSE;
 	}
@@ -6225,7 +6253,7 @@ try_again:
 	     /*
 	      *  Highlight current link.
 	      */
-	    highlight(ON, curdoc.link, prev_target);
+	    highlight(ON, curdoc.link);
 	}
 
 	if (traversal) {
@@ -6318,7 +6346,7 @@ try_again:
 		    old_c = 0;
 		if (peek_mouse_link() >= 0 &&
 		    LKC_TO_LAC(keymap,real_c) != LYK_CHANGE_LINK) {
-		    do_change_link(prev_target);
+		    do_change_link();
 		    if ((c == '\n' || c == '\r') &&
 			links[curdoc.link].type == WWW_FORM_LINK_TYPE &&
 			(links[curdoc.link].form->type == F_TEXT_TYPE ||
@@ -6331,7 +6359,7 @@ try_again:
 		    switch (c) {
 		    case '\n':
 		    case '\r':
-#ifdef AUTOGROW
+#ifdef TEXTAREA_AUTOGROW
 		    /*
 		     *  If on the bottom line of a TEXTAREA, and the user hit
 		     *  the ENTER key, we add a new line/anchor automatically,
@@ -6390,7 +6418,7 @@ try_again:
 #endif
 
 		   }
-#endif /* AUTOGROW */
+#endif /* TEXTAREA_AUTOGROW */
 
 		    /*
 		     *	Make return in input field (if it was returned
@@ -6502,7 +6530,7 @@ new_cmd:  /*
 		 links[curdoc.link].form->type == F_PASSWORD_TYPE ||
 		 links[curdoc.link].form->type == F_TEXTAREA_TYPE))
 
-		show_main_statusline(links[curdoc.link]);
+		show_main_statusline(links[curdoc.link], FOR_PANEL);
 	    else if (more)
 		HTInfoMsg(MOREHELP);
 	    else
@@ -6533,7 +6561,7 @@ new_cmd:  /*
 	case LYK_7:
 	case LYK_8:
 	case LYK_9:
-	    handle_LYK_digit(c, &force_load, user_input_buffer, prev_target,
+	    handle_LYK_digit(c, &force_load, user_input_buffer,
 			     &old_c, real_c, &try_internal);
 	    break;
 
@@ -6588,11 +6616,11 @@ new_cmd:  /*
 	    return(0);
 
 	case LYK_NEXT_PAGE:	/* next page */
-	    handle_LYK_NEXT_PAGE(prev_target, &old_c, real_c);
+	    handle_LYK_NEXT_PAGE(&old_c, real_c);
 	    break;
 
 	case LYK_PREV_PAGE:	/* page up */
-	    handle_LYK_PREV_PAGE(prev_target, &old_c, real_c);
+	    handle_LYK_PREV_PAGE(&old_c, real_c);
 	    break;
 
 	case  LYK_UP_TWO:
@@ -6674,44 +6702,44 @@ new_cmd:  /*
 
 	case LYK_PREV_LINK:
 	case LYK_LPOS_PREV_LINK:
-	    handle_LYK_PREV_LINK(prev_target, &arrowup, &old_c, real_c);
+	    handle_LYK_PREV_LINK(&arrowup, &old_c, real_c);
 	    break;
 
 	case LYK_NEXT_LINK:
 	case LYK_LPOS_NEXT_LINK:
-	    handle_LYK_NEXT_LINK(c, prev_target, &old_c, real_c);
+	    handle_LYK_NEXT_LINK(c, &old_c, real_c);
 	    break;
 
 	case LYK_FASTFORW_LINK:
-	    handle_LYK_FASTFORW_LINK(prev_target, &old_c, real_c);
+	    handle_LYK_FASTFORW_LINK(&old_c, real_c);
 	    break;
 
 	case LYK_FASTBACKW_LINK:
-	    if (handle_LYK_FASTBACKW_LINK(&cmd, prev_target, &old_c, real_c))
+	    if (handle_LYK_FASTBACKW_LINK(&cmd, &old_c, real_c))
 		goto new_cmd;
 	    break;
 
 	case LYK_UP_LINK:
-	    handle_LYK_UP_LINK(prev_target, &follow_col, &arrowup, &old_c, real_c);
+	    handle_LYK_UP_LINK(&follow_col, &arrowup, &old_c, real_c);
 	    break;
 
 	case LYK_DOWN_LINK:
-	    handle_LYK_DOWN_LINK(prev_target, &follow_col, &old_c, real_c);
+	    handle_LYK_DOWN_LINK(&follow_col, &old_c, real_c);
 	    break;
 
 	case LYK_CHANGE_LINK:
-	    do_change_link(prev_target);
+	    do_change_link();
 	    break;
 
 	case LYK_RIGHT_LINK:
-	    handle_LYK_RIGHT_LINK(prev_target);
+	    handle_LYK_RIGHT_LINK();
 	    break;
 
 	case LYK_LEFT_LINK:
-	    handle_LYK_LEFT_LINK(prev_target);
+	    handle_LYK_LEFT_LINK();
 	    break;
 
-	case LYK_COOKIE_JAR:	   /* show the cookie jar */
+	case LYK_COOKIE_JAR:	/* show the cookie jar */
 	    if (handle_LYK_COOKIE_JAR(&cmd))
 		goto new_cmd;
 	    break;
@@ -6721,7 +6749,7 @@ new_cmd:  /*
 		break;
 
 	    /* FALLTHRU */
-	case LYK_PREV_DOC:			 /* back up a level */
+	case LYK_PREV_DOC:	/* back up a level */
 	    switch (handle_PREV_DOC(&cmd, &old_c, real_c)) {
 	    case 1:
 		return(0);
@@ -6737,7 +6765,7 @@ new_cmd:  /*
 	    /* FALLTHRU */
 	case LYK_ACTIVATE:	/* follow a link */
 	case LYK_SUBMIT:	/* follow a link, submit TEXT_SUBMIT input */
-	    switch (handle_LYK_ACTIVATE(&c, cmd, prev_target, &try_internal, &refresh_screen, &force_load, real_cmd)) {
+	    switch (handle_LYK_ACTIVATE(&c, cmd, &try_internal, &refresh_screen, &force_load, real_cmd)) {
 	    case 1:
 		continue;
 	    case 2:
@@ -6755,7 +6783,7 @@ new_cmd:  /*
 		do_check_goto_URL(user_input_buffer, &temp, &force_load);
 	    break;
 
-	case LYK_GOTO:	 /* 'g' to goto a random URL  */
+	case LYK_GOTO:	 	/* 'g' to goto a random URL  */
 	    if (handle_LYK_GOTO(&ch, user_input_buffer, &temp, &recall,
 				&URLTotal, &URLNum, &FirstURLRecall, &old_c,
 				real_c)) {
@@ -6778,7 +6806,7 @@ new_cmd:  /*
 	    break;
 
 	case LYK_MAIN_MENU:	/* return to main screen */
-	    handle_LYK_MAIN_MENU(prev_target, &old_c, real_c);
+	    handle_LYK_MAIN_MENU(&old_c, real_c);
 	    break;
 
 	case LYK_OPTIONS:	/* options screen */
@@ -6790,18 +6818,18 @@ new_cmd:  /*
 	    handle_LYK_INDEX_SEARCH(&force_load, ForcePush, &old_c, real_c);
 	    break;
 
-	case LYK_WHEREIS: /* search within the document */
-	case LYK_NEXT:	  /* search for the next occurrence in the document */
-	    handle_LYK_WHEREIS(cmd, prev_target, &refresh_screen);
+	case LYK_WHEREIS: 	/* search within the document */
+	case LYK_NEXT:	  	/* find the next occurrence in the document */
+	    handle_LYK_WHEREIS(cmd, &refresh_screen);
 	    break;
 
-	case LYK_COMMENT: 	/* reply by mail */
+	case LYK_COMMENT:	/* reply by mail */
 	    handle_LYK_COMMENT(&refresh_screen, &owner_address, &old_c, real_c);
 	    break;
 
 #ifdef DIRED_SUPPORT
 	case LYK_TAG_LINK:	/* tag or untag the current link */
-	    handle_LYK_TAG_LINK(prev_target);
+	    handle_LYK_TAG_LINK();
 	    break;
 
 	case LYK_MODIFY:	/* rename a file or directory */
@@ -6822,7 +6850,7 @@ new_cmd:  /*
 	    }
 	    /* FALLTHRU */
 
-	case LYK_EDIT:	/* edit */
+	case LYK_EDIT:		/* edit */
 	    handle_LYK_EDIT(&old_c, real_c);
 	    break;
 
@@ -6843,7 +6871,7 @@ new_cmd:  /*
 #endif /* DIRED_SUPPORT && OK_INSTALL */
 
 	case LYK_INFO:		/* show document info */
-	    if (handle_LYK_INFO(prev_target, &cmd))
+	    if (handle_LYK_INFO(&cmd))
 		goto new_cmd;
 	    break;
 
@@ -6851,32 +6879,32 @@ new_cmd:  /*
 	    handle_LYK_EDIT_TEXTAREA(&refresh_screen, &old_c, real_c);
 	    break;
 
-	case LYK_GROW_TEXTAREA: /* add new lines to bottom of TEXTAREA - KED */
+	case LYK_GROW_TEXTAREA:	/* add new lines to bottom of TEXTAREA - KED */
 	    handle_LYK_GROW_TEXTAREA(&refresh_screen);
 	    break;
 
-	case LYK_INSERT_FILE: /* insert file in TEXTAREA, above cursor - KED */
+	case LYK_INSERT_FILE:	/* insert file in TEXTAREA, above cursor - KED */
 	    handle_LYK_INSERT_FILE(&refresh_screen, &old_c, real_c);
 	    break;
 
-	case LYK_PRINT:  /* print the file */
+	case LYK_PRINT:		/* print the file */
 	    handle_LYK_PRINT(&ForcePush, &old_c, real_c);
 	    break;
 
-	case LYK_LIST:	/* list links in the current document */
+	case LYK_LIST:		/* list links in the current document */
 	    if (handle_LYK_LIST(&cmd))
 		goto new_cmd;
 	    break;
 
 #ifdef EXP_ADDRLIST_PAGE
-	case LYK_ADDRLIST:   /* always list URL's (only) */
+	case LYK_ADDRLIST:	/* always list URL's (only) */
 	    if (handle_LYK_ADDRLIST(&cmd))
 		goto new_cmd;
 	    break;
 #endif /* EXP_ADDRLIST_PAGE */
 
 	case LYK_VLINKS:  /* list links visited during the current session */
-	    if (handle_LYK_VLINKS(&cmd))
+	    if (handle_LYK_VLINKS(&cmd, &newdoc_link_is_absolute))
 		goto new_cmd;
 	    break;
 
@@ -6891,7 +6919,7 @@ new_cmd:  /*
 #endif /* DIRED_SUPPORT || VMS*/
 
 #ifdef USE_EXTERNALS
-	case LYK_EXTERN:  /* use external program on url */
+	case LYK_EXTERN:	/* use external program on url */
 	    handle_LYK_EXTERN(&refresh_screen);
 	    break;
 #endif /* USE_EXTERNALS */
@@ -6900,16 +6928,16 @@ new_cmd:  /*
 	    handle_LYK_ADD_BOOKMARK(&refresh_screen, &old_c, real_c);
 	    break;
 
-	case LYK_VIEW_BOOKMARK:   /* v to view home page */
+	case LYK_VIEW_BOOKMARK:	/* v to view home page */
 	    handle_LYK_VIEW_BOOKMARK(&refresh_screen, &old_c, real_c);
 	    break;
 
-	case LYK_SHELL:  /* (!) shell escape */
+	case LYK_SHELL:		/* (!) shell escape */
 	    handle_LYK_SHELL(&refresh_screen, &old_c, real_c);
 	    break;
 
 	case LYK_DOWNLOAD:
-	    switch (handle_LYK_DOWNLOAD(prev_target, &cmd, &old_c, real_c)) {
+	    switch (handle_LYK_DOWNLOAD(&cmd, &old_c, real_c)) {
 	    case 1:
 		continue;
 	    case 2:
@@ -7266,8 +7294,9 @@ PUBLIC void HTAddGotoURL ARGS1(
  *  put a message on the screen
  *  to tell the user other misc info.
  */
-PRIVATE void show_main_statusline ARGS1(
-    CONST linkstruct,	curlink)
+PRIVATE void show_main_statusline ARGS2(
+    CONST linkstruct,	curlink,
+    int,		for_what)
 {
     /*
      *	Make sure form novice lines are replaced.
@@ -7299,7 +7328,7 @@ PRIVATE void show_main_statusline ARGS1(
 #endif /* NORMAL_NON_FORM_LINK_STATUSLINES_FOR_ALL_USER_MODES */
 #endif /* INDICATE_FORMS_MODE_FOR_ALL_LINKS_ON_PAGE */
 	if (curlink.type == WWW_FORM_LINK_TYPE) {
-	    show_formlink_statusline(curlink.form);
+	    show_formlink_statusline(curlink.form, for_what);
 	} else {
 	    statusline(NORMAL_LINK_MESSAGE);
 	}
@@ -7361,10 +7390,11 @@ PRIVATE void show_main_statusline ARGS1(
  *  selected link.  It should only be called at times when curdoc.link,
  *  nlinks, and the links[] array are valid. - kw
  */
-PUBLIC void repaint_main_statusline NOARGS
+PUBLIC void repaint_main_statusline ARGS1(
+    int,	for_what)
 {
     if (curdoc.link >= 0 && curdoc.link < nlinks)
-	show_main_statusline(links[curdoc.link]);
+	show_main_statusline(links[curdoc.link], for_what);
 }
 
 
diff --git a/src/LYMainLoop.h b/src/LYMainLoop.h
index 44923639..0bc7d1e0 100644
--- a/src/LYMainLoop.h
+++ b/src/LYMainLoop.h
@@ -5,14 +5,15 @@
 #include <HTUtils.h>
 #endif
 
-#define TEXTAREA_EXPAND_SIZE  5
-#define AUTOGROW
-#define AUTOEXTEDIT
-
 extern BOOLEAN LYOpenTraceLog NOPARAMS;
 extern int mainloop NOPARAMS;
 extern void HTAddGotoURL PARAMS((char *url));
 extern void LYCloseTracelog NOPARAMS;
-extern void repaint_main_statusline NOPARAMS;
+extern void repaint_main_statusline PARAMS((int for_what));
+
+/* made them available in partial mode */
+extern void handle_LYK_TRACE_TOGGLE  NOPARAMS;
+extern void handle_LYK_WHEREIS  PARAMS((int cmd, BOOLEAN *refresh_screen));
+
 
 #endif /* LYMAINLOOP_H */
diff --git a/src/LYOptions.c b/src/LYOptions.c
index ab88556a..1b61f780 100644
--- a/src/LYOptions.c
+++ b/src/LYOptions.c
@@ -3336,8 +3336,20 @@ static OptValues user_mode_values[] = {
 	{ INTERMEDIATE_MODE,	"Intermediate", "Intermediate" },
 	{ ADVANCED_MODE,	"Advanced",	"Advanced" },
 	{ 0, 0, 0 }};
+
 static char * vi_keys_string		= "vi_keys";
 
+static char * visited_pages_type_string	= "visited_pages_type";
+static OptValues visited_pages_type_values[] = {
+	{ VISITED_LINKS_AS_FIRST_V, "By First Visit",	"first_visited" },
+	{ VISITED_LINKS_AS_FIRST_V | VISITED_LINKS_REVERSE,
+		    "By First Visit Reversed",	"first_visited_reversed" },
+	{ VISITED_LINKS_AS_TREE,    "As Visit Tree",	"visit_tree" },
+	{ VISITED_LINKS_AS_LATEST,  "By Last Visit",	"last_visited" },
+	{ VISITED_LINKS_AS_LATEST | VISITED_LINKS_REVERSE,
+		    "By Last Visit Reversed",	"last_visited_reversed" },
+	{ 0, 0, 0 }};
+
 /*
  * Document Layout
  */
@@ -3795,6 +3807,10 @@ PUBLIC int postoptions ARGS1(
 	    }
 	}
 
+	/* Type of visited pages page: SELECT */
+	if (!strcmp(data[i].tag, visited_pages_type_string))
+	   GetOptValues(visited_pages_type_values, data[i].value, &Visited_Links_As);
+
 	/* Show Images: SELECT */
 	if (!strcmp(data[i].tag, images_string)) {
 	    if (!strcmp(data[i].value, images_ignore_all_string)
@@ -4357,6 +4373,12 @@ PRIVATE int gen_options ARGS1(
     PutOptValues(fp0, vi_keys, bool_values);
     EndSelect(fp0);
 
+    /* Visited Pages: SELECT */
+    PutLabel(fp0, gettext("Visited Pages"));
+    BeginSelect(fp0, visited_pages_type_string);
+    PutOptValues(fp0, Visited_Links_As, visited_pages_type_values);
+    EndSelect(fp0);
+
     /* Display Character Set: SELECT */
     PutLabel(fp0, gettext("Display character set"));
     BeginSelect(fp0, display_char_set_string);
diff --git a/src/LYReadCFG.c b/src/LYReadCFG.c
index e3adb938..c31f702c 100644
--- a/src/LYReadCFG.c
+++ b/src/LYReadCFG.c
@@ -819,6 +819,18 @@ static int printer_fun ARGS1(
     return 0;
 }
 
+static int referer_with_query_fun ARGS1(
+	char *,		value)
+{
+    if (!strncasecomp(value, "SEND", 4))
+	LYRefererWithQuery = 'S';
+    else if (!strncasecomp(value, "PARTIAL", 7))
+	LYRefererWithQuery = 'P';
+    else
+	LYRefererWithQuery = 'D';
+    return 0;
+}
+
 #ifdef SOURCE_CACHE
 static int source_cache_fun ARGS1(
 	char *,		value)
@@ -1392,6 +1404,7 @@ static Config_Type Config_Table [] =
      PARSE_SET("psrcview_no_anchor_numbering", CONF_BOOL, &psrcview_no_anchor_numbering),
 #endif
      PARSE_SET("quit_default_yes", CONF_BOOL, &LYQuitDefaultYes),
+     PARSE_SET("referer_with_query", CONF_FUN, referer_with_query_fun),
      PARSE_SET("reuse_tempfiles", CONF_BOOL, &LYReuseTempfiles),
 #ifndef NO_RULES
      PARSE_FUN("rule", CONF_FUN, HTSetConfiguration),
diff --git a/src/LYSearch.c b/src/LYSearch.c
index 995d8135..e6960489 100644
--- a/src/LYSearch.c
+++ b/src/LYSearch.c
@@ -28,7 +28,7 @@ PRIVATE int check_for_target_in_links ARGS2(
 	return(FALSE);
 
     for (; i < nlinks; i++) {
-        /*
+	/*
 	 *  Search the hightext string, and hightext2 if present,
 	 *  taking the case_sensitive setting into account. - FM
 	 */
@@ -52,7 +52,7 @@ PRIVATE int check_for_target_in_links ARGS2(
 	if ((links[i].form != NULL && links[i].form->value != NULL) &&
 	    links[i].form->type != F_HIDDEN_TYPE) {
 	    if (links[i].form->type == F_PASSWORD_TYPE) {
-	        /*
+		/*
 		 *  Check the actual, hidden password, and then
 		 *  the displayed string. - FM
 		 */
@@ -100,7 +100,7 @@ PRIVATE int check_for_target_in_links ARGS2(
 		/*
 		 *  Search for checked or unchecked parens. - FM
 		 */
-	        if (links[i].form->num_value) {
+		if (links[i].form->num_value) {
 		    cp = checked_radio;
 		} else {
 		    cp = unchecked_radio;
@@ -115,7 +115,7 @@ PRIVATE int check_for_target_in_links ARGS2(
 		/*
 		 *  Search for checked or unchecked square brackets. - FM
 		 */
-	        if (links[i].form->num_value) {
+		if (links[i].form->num_value) {
 		    cp = checked_box;
 		} else {
 		    cp = unchecked_box;
@@ -127,7 +127,7 @@ PRIVATE int check_for_target_in_links ARGS2(
 		    break;
 		}
 	    } else {
-	        /*
+		/*
 		 *  Check the values intended for display.
 		 *  May have been found already via the
 		 *  hightext search, but make sure here
@@ -192,14 +192,14 @@ PUBLIC BOOL textsearch ARGS3(
     QueryNum = QueryTotal;
 
     if (next)
-        /*
+	/*
 	 *  LYK_NEXT was pressed, so copy the
 	 *  buffer into prev_target. - FM
 	 */
 	strcpy(prev_target, prev_target_buffer);
 
     if (strlen(prev_target) == 0 ) {
-        /*
+	/*
 	 *  This is a new WHEREIS search ('/'), or
 	 *  LYK_NEXT was pressed but there was no
 	 *  previous search, so we need to get a
@@ -208,7 +208,7 @@ PUBLIC BOOL textsearch ARGS3(
 	_statusline(ENTER_WHEREIS_QUERY);
 
 	if ((ch = LYgetstr(prev_target, VISIBLE,
-	    		   sizeof(prev_target_buffer), recall)) < 0) {
+			   sizeof(prev_target_buffer), recall)) < 0) {
 	    /*
 	     *  User cancelled the search via ^G.
 	     *  Restore prev_target and return. - FM
@@ -221,14 +221,14 @@ PUBLIC BOOL textsearch ARGS3(
 
 check_recall:
     if (strlen(prev_target) == 0 &&
-        !(recall && (ch == UPARROW || ch == DNARROW))) {
-        /*
+	!(recall && (ch == UPARROW || ch == DNARROW))) {
+	/*
 	 *  No entry.  Simply return, retaining the current buffer.
 	 *  Because prev_target is now reset, highlighting of the
 	 *  previous search string will no longer occur, but it can
 	 *  be used again via LYK_NEXT.   - FM
 	 */
-        HTInfoMsg(CANCELLED);
+	HTInfoMsg(CANCELLED);
 	return(FALSE);
     }
 
@@ -239,11 +239,11 @@ check_recall:
 	     */
 	    FirstRecall = FALSE;
 	    if (*prev_target_buffer) {
-	        for (QueryNum = (QueryTotal - 1); QueryNum > 0; QueryNum--) {
+		for (QueryNum = (QueryTotal - 1); QueryNum > 0; QueryNum--) {
 		    if ((cp = (char *)HTList_objectAt(search_queries,
-	    					      QueryNum)) != NULL &&
-		        !strcmp(prev_target_buffer, cp)) {
-		        break;
+						      QueryNum)) != NULL &&
+			!strcmp(prev_target_buffer, cp)) {
+			break;
 		    }
 		 }
 	     } else {
@@ -261,10 +261,10 @@ check_recall:
 	     */
 	    QueryNum = 0;
 	if ((cp = (char *)HTList_objectAt(search_queries,
-	    				  QueryNum)) != NULL) {
+					  QueryNum)) != NULL) {
 	    strcpy(prev_target, cp);
 	    if (*prev_target_buffer &&
-	        !strcmp(prev_target_buffer, prev_target)) {
+		!strcmp(prev_target_buffer, prev_target)) {
 		_statusline(EDIT_CURRENT_QUERY);
 	    } else if ((*prev_target_buffer && QueryTotal == 2) ||
 		       (!(*prev_target_buffer) && QueryTotal == 1)) {
@@ -273,9 +273,9 @@ check_recall:
 		_statusline(EDIT_A_PREV_QUERY);
 	    }
 	    if ((ch = LYgetstr(prev_target, VISIBLE,
-	    		       sizeof(prev_target_buffer), recall)) < 0) {
-	        /*
-		 *  User cancelled the search via ^G.
+			       sizeof(prev_target_buffer), recall)) < 0) {
+		/*
+		 *  User canceled the search via ^G.
 		 *  Restore prev_target and return. - FM
 		 */
 		strcpy(prev_target, prev_target_buffer);
@@ -291,11 +291,11 @@ check_recall:
 	     */
 	    FirstRecall = FALSE;
 	    if (*prev_target_buffer) {
-	        for (QueryNum = 0; QueryNum < (QueryTotal - 1); QueryNum++) {
+		for (QueryNum = 0; QueryNum < (QueryTotal - 1); QueryNum++) {
 		    if ((cp = (char *)HTList_objectAt(search_queries,
-	    					      QueryNum)) != NULL &&
-		        !strcmp(prev_target_buffer, cp)) {
-		        break;
+						      QueryNum)) != NULL &&
+			!strcmp(prev_target_buffer, cp)) {
+			break;
 		    }
 		}
 	    } else {
@@ -313,10 +313,10 @@ check_recall:
 	     */
 	    QueryNum = QueryTotal - 1;
 	if ((cp = (char *)HTList_objectAt(search_queries,
-	    				  QueryNum)) != NULL) {
+					  QueryNum)) != NULL) {
 	    strcpy(prev_target, cp);
 	    if (*prev_target_buffer &&
-	        !strcmp(prev_target_buffer, prev_target)) {
+		!strcmp(prev_target_buffer, prev_target)) {
 		_statusline(EDIT_CURRENT_QUERY);
 	    } else if ((*prev_target_buffer && QueryTotal == 2) ||
 		       (!(*prev_target_buffer) && QueryTotal == 1)) {
@@ -326,7 +326,7 @@ check_recall:
 	    }
 	    if ((ch = LYgetstr(prev_target, VISIBLE,
 			       sizeof(prev_target_buffer), recall)) < 0) {
-	        /*
+		/*
 		 *  User cancelled the search via ^G.
 		 *  Restore prev_target and return. - FM
 		 */
@@ -351,7 +351,7 @@ check_recall:
 	/*
 	 *  Found in link, changed cur, we're done.
 	 */
-	highlight(OFF, oldcur, prev_target);
+	highlight(OFF, oldcur);
 	return(TRUE);
     }
 
@@ -371,7 +371,7 @@ check_recall:
      */
     www_user_search((cur_doc->line + offset), cur_doc, prev_target);
     if (cur_doc->link != oldcur) {
-	highlight(OFF, oldcur, prev_target);
+	highlight(OFF, oldcur);
 	return(TRUE);
     }
     return (BOOL) (www_search_result > 0);
diff --git a/src/LYStrings.c b/src/LYStrings.c
index dd55c262..531ce5ec 100644
--- a/src/LYStrings.c
+++ b/src/LYStrings.c
@@ -14,7 +14,9 @@
 #include <HTString.h>
 #include <LYCharUtils.h>
 #include <HTParse.h>
+#ifdef NCURSES_MOUSE_VERSION
 #include <LYMainLoop.h>
+#endif /* NCURSES_MOUSE_VERSION */
 
 #ifdef DJGPP_KEYHANDLER
 #include <pc.h>
@@ -1364,11 +1366,11 @@ PRIVATE int LYmouse_menu ARGS4(int, x, int, y, int, atlink, int, code)
 	mouse_link = -1;	/* mainloop should not change cur link - kw */
     }
     if (code == FOR_INPUT && retlac == LYK_DO_NOTHING) {
-	repaint_main_statusline();
+	repaint_main_statusline(FOR_INPUT);
     }
     return retlac;
 }
-#endif
+#endif /* NCURSES_MOUSE_VERSION */
 
 #if defined(USE_KEYMAPS) && defined(USE_SLANG)
 
diff --git a/src/LYStrings.h b/src/LYStrings.h
index ac85f315..31f7fed0 100644
--- a/src/LYStrings.h
+++ b/src/LYStrings.h
@@ -278,6 +278,8 @@ extern void LYRefreshEdit PARAMS((
 	EditFieldData *	edit));
 extern int EditBinding PARAMS((int ch));		   /* in LYEditmap.c */
 extern int LYRemapEditBinding PARAMS((int xlkc, int lec)); /* in LYEditmap.c */
+extern int LYKeyForEditAction PARAMS((int lec));	   /* in LYEditmap.c */
+extern int LYEditKeyForAction PARAMS((int lac, int *pmodkey));/* LYEditmap.c */
 extern int LYEdit1 PARAMS((
 	EditFieldData *	edit,
 	int		ch,
diff --git a/src/LYStructs.h b/src/LYStructs.h
index 78075f48..f8f276c8 100644
--- a/src/LYStructs.h
+++ b/src/LYStructs.h
@@ -60,9 +60,22 @@ typedef struct _histstruct {
 				   "internal links", otherwise -1 */
 } histstruct;
 
+extern int Visited_Links_As;
+
+#define VISITED_LINKS_AS_FIRST_V 0
+#define VISITED_LINKS_AS_TREE    1
+#define VISITED_LINKS_AS_LATEST  2
+#define VISITED_LINKS_REVERSE    4
+
 typedef struct _VisitedLink {
     char * title;
     char * address;
+    int level;
+    struct _VisitedLink *next_tree;
+    struct _VisitedLink *prev_tree;
+    struct _VisitedLink *prev_latest;
+    struct _VisitedLink *next_latest;
+    struct _VisitedLink *prev_first;
 } VisitedLink;
 
 extern histstruct history[MAXHIST];
diff --git a/src/LYUtils.c b/src/LYUtils.c
index de1c7112..0809b89e 100644
--- a/src/LYUtils.c
+++ b/src/LYUtils.c
@@ -14,8 +14,10 @@
 #include <LYClean.h>
 #include <LYCharSets.h>
 #include <LYCharUtils.h>
+
 #include <LYMainLoop.h>
 #include <LYKeymap.h>
+#include <LYSearch.h>
 
 #ifdef __DJGPP__
 #include <go32.h>
@@ -119,10 +121,9 @@ PUBLIC	HTList * sug_filenames = NULL;		/* Suggested filenames	 */
 /*
  *  Highlight (or unhighlight) a given link.
  */
-PUBLIC void highlight ARGS3(
+PUBLIC void highlight ARGS2(
 	int,		flag,
-	int,		cur,
-	char *,		target)
+	int,		cur)
 {
     char buffer[200];
     int i;
@@ -142,6 +143,7 @@ PUBLIC void highlight ARGS3(
     BOOL hl2_drawn=FALSE;	/* whether links[cur].hightext2 is already drawn
 				   properly */
 #endif
+    CONST char *target = search_target;  /* search_target is global */
     tmp[0] = tmp[1] = tmp[2] = '\0';
 
     /*
@@ -1910,12 +1912,13 @@ PUBLIC void statusline ARGS1(
     }
 #if 0
     /* This is broken.  It shows a truncated name if the complete URL is
-       so long that it has already been shortened by the caller to fit.
-       Moreover it doesn't belong here.  This function should just display
-       what it's asked to and not second-guess its caller.  If you want
-       a different message displayed, pass it a different message.
-       Finally, I dislike the intended change anyway.  It shows less
-       information, it is a dumbed down interface. - kw */
+     * so long that it has already been shortened by the caller to fit.
+     * Moreover it doesn't belong here.  This function should just display
+     * what it's asked to and not second-guess its caller.  If you want
+     * a different message displayed, pass it a different message.
+     * Finally, I dislike the intended change anyway.  It shows less
+     * information, it is a dumbed down interface. - kw
+     */
     if (strncmp(text, "LYNXDOWNLOAD:", 13) == 0) {
 	p = strstr(text + 13, "SugFile=");
 	if (p != NULL) {
@@ -2098,7 +2101,7 @@ PUBLIC void noviceline ARGS1(
     clrtoeol();
 #if defined(DIRED_SUPPORT ) && defined(OK_OVERRIDE)
     if (lynx_edit_mode && !no_dired_support)
-       addstr(DIRED_NOVICELINE);
+	addstr(DIRED_NOVICELINE);
     else
 #endif /* DIRED_SUPPORT && OK_OVERRIDE */
 
@@ -2200,6 +2203,7 @@ PRIVATE int DontCheck NOARGS
 PUBLIC int HTCheckForInterrupt NOARGS
 {
     int c;
+    int cmd;
 #ifndef VMS /* UNIX stuff: */
 #ifndef USE_SLANG
     struct timeval socket_timeout;
@@ -2307,24 +2311,33 @@ PUBLIC int HTCheckForInterrupt NOARGS
 	/* There is a subset of mainloop() actions available at this stage:
 	** no new getfile() cycle is possible until the previous finished.
 	** Currently we have scrolling in partial mode and toggling of trace
-	** log.
+	** log. User search now in progress...
 	*/
-    switch (LKC_TO_LAC(keymap,c))
+    cmd = (LKC_TO_LAC(keymap,c));
+    switch (cmd)
     {
-    case LYK_TRACE_TOGGLE :	       /*  Toggle TRACE mode. */
-	WWW_TraceFlag = ! WWW_TraceFlag;
-	if (LYOpenTraceLog())
-	    HTUserMsg(WWW_TraceFlag ? TRACE_ON : TRACE_OFF);
-	break ;
+    case LYK_TRACE_TOGGLE :	/*  Toggle TRACE mode. */
+	   handle_LYK_TRACE_TOGGLE();
+	   break;
     default :
 
 #ifdef DISP_PARTIAL
 	if (display_partial && (NumOfLines_partial > 2))
 	/* OK, we got several lines from new document and want to scroll... */
 	{
-	    int res;
-	    switch (LKC_TO_LAC(keymap,c))
+	   BOOLEAN do_refresh;
+	   int res;
+	   switch (cmd)
 	    {
+	   case LYK_WHEREIS: /* search within the document */
+	   case LYK_NEXT:	 /* search for the next occurrence in the document */
+	       handle_LYK_WHEREIS(cmd, &do_refresh);
+	       if (do_refresh && www_search_result != -1) {
+		    Newline_partial = www_search_result;
+		    www_search_result = -1;	/* reset */
+	       }
+	       break;
+
 	    case LYK_FASTBACKW_LINK :
 		if (Newline_partial <= (display_lines)+1) {
 		    Newline_partial -= display_lines ;
@@ -2393,7 +2406,7 @@ PUBLIC int HTCheckForInterrupt NOARGS
 	    if (Newline_partial < 1)
 		Newline_partial = 1;
 	    NumOfLines_partial = HText_getNumOfLines();
-	    HText_pageDisplay(Newline_partial, "");
+	    HText_pageDisplay(Newline_partial);
 	}
 #endif /* DISP_PARTIAL */
 	break;
@@ -4303,7 +4316,7 @@ PUBLIC void LYConvertToURL ARGS2(
 	     *	Home_Dir(), and assume the rest of the path, if
 	     *	any, has SHELL syntax.
 	     */
-	    StrAllocCat(*AllocatedString, HTVMS_wwwName((char *)Home_Dir()));
+	    StrAllocCat(*AllocatedString, HTVMS_wwwName(Home_Dir()));
 	    if ((cp = strchr(old_string, '/')) != NULL) {
 		/*
 		 *  Append rest of path, if present, skipping "user" if
@@ -4693,7 +4706,7 @@ have_VMS_URL:
 	     *	login directory. - FM
 	     */
 #ifdef VMS
-	    StrAllocCat(*AllocatedString, HTVMS_wwwName((char *)Home_Dir()));
+	    StrAllocCat(*AllocatedString, HTVMS_wwwName(Home_Dir()));
 #else
 	    StrAllocCat(*AllocatedString, "/");
 	} else if ((stat(old_string, &st) > -1) ||
@@ -5809,7 +5822,7 @@ PUBLIC time_t LYmktime ARGS2(
      */
     start = s;
     while (*s != '\0' && isdigit((unsigned char)*s))
-       s++;
+	s++;
     if (*s == '\0' || (s - start) > 2)
 	return(0);
     LYstrncpy(temp, start, (int)(s - start));
@@ -6740,10 +6753,10 @@ PUBLIC  char * wwwName ARGS1(
     char *cp = NULL;
 
 #ifdef DOSPATH
-    cp = HTDOS_wwwName((char *)pathname);
+    cp = HTDOS_wwwName(pathname);
 #else
 #ifdef VMS
-    cp = HTVMS_wwwName((char *)pathname);
+    cp = HTVMS_wwwName(pathname);
 #else
     cp = (char *)pathname;
 #endif /* VMS */
@@ -7601,7 +7614,7 @@ PUBLIC char * w32_strerror(DWORD ercode)
  * syslog() interface
  */
 PUBLIC void LYOpenlog ARGS1(
-       CONST char *, banner)
+	CONST char *, banner)
 {
 #if defined(WATT32)
     openlog("lynx", LOG_PID|LOG_NDELAY, LOG_LOCAL5);
@@ -7635,7 +7648,7 @@ PRIVATE BOOLEAN looks_like_password ARGS2(
 }
 
 PUBLIC void LYSyslog ARGS1(
-       char *,		arg)
+	char *,		arg)
 {
     char *colon1;
     char *colon2;
diff --git a/src/LYUtils.h b/src/LYUtils.h
index a7072fcd..4f935233 100644
--- a/src/LYUtils.h
+++ b/src/LYUtils.h
@@ -118,7 +118,7 @@ extern void LYsetXDisplay PARAMS((char *new_display));
 extern void change_sug_filename PARAMS((char *fname));
 extern void convert_to_spaces PARAMS((char *string, BOOL condense));
 extern void free_and_clear PARAMS((char **obj));
-extern void highlight PARAMS((int flag, int cur, char *target));
+extern void highlight PARAMS((int flag, int cur));
 extern void noviceline PARAMS((int more_flag));
 extern void parse_restrictions PARAMS((CONST char *s));
 extern void print_restrictions_to_fd PARAMS((FILE *fp));
diff --git a/src/TRSTable.c b/src/TRSTable.c
index 7e65fc2f..68b3fa31 100644
--- a/src/TRSTable.c
+++ b/src/TRSTable.c
@@ -109,8 +109,7 @@ struct _STable_info {
 **  Implemented:
 **  - ALIGN={left,right,center,justify} applied to individual table cells
 **    ("justify" is treated as "left")
-**  - Inheritance of horizontal alignment according to HTML 4.0 (with the
-**    exception of COLGROUP/COL)
+**  - Inheritance of horizontal alignment according to HTML 4.0
 **  - COLSPAN >1 (may work incorrectly for some tables?)
 **  - ROWSPAN >1 (reserving cells in following rows)
 **  - Line breaks at start of first cell or at end of last cell are treated
diff --git a/src/makefile.dos b/src/makefile.dos
index 6c715a54..24c52d2f 100644
--- a/src/makefile.dos
+++ b/src/makefile.dos
@@ -9,23 +9,52 @@ LYLeaks.o LYexit.o LYJump.o LYList.o LYCgi.o LYTraversal.o \
 LYEditmap.o LYCharSets.o LYCharUtils.o LYMap.o LYCookie.o LYExtern.o \
 LYStyle.o LYHash.o LYPrettySrc.o TRSTable.o
 
-CFLAGS= $(MCFLAGS) -I. -I.. $(SLANGINC)
+CFLAGS= $(MCFLAGS) $(INTLFLAGS) -I. -I.. $(SLANGINC)
 
 # comment this line to suppress DIRED support
-DIRED_DEFS = -DDIRED_SUPPORT -DOK_UUDECODE -DOK_TAR -DOK_GZIP -DOK_ZIP
+DIRED_DEFS = \
+ -DDIRED_SUPPORT \
+ -DOK_UUDECODE \
+ -DOK_TAR \
+ -DOK_GZIP \
+ -DOK_ZIP \
+ -DOK_OVERRIDE 
 
 CC = gcc
-MCFLAGS = -O2 -DHAVE_GETBKGD -DDISP_PARTIAL -DUSE_ZLIB \
- -DSOURCE_CACHE -DUSE_PSRC \
- -DUSE_EXTERNALS -DCOLOR_CURSES -DNCURSES -DFANCY_CURSES \
- -DACCESS_AUTH -DNO_CUSERID -DNOUSERS -DDOSPATH -DNO_TTYTYPE -DNO_UTMP \
- -DEXP_PERSISTENT_COOKIES -DEXP_ADDRLIST_PAGE -DEXP_ALT_BINDINGS \
+
+MCFLAGS = -O2 \
+ $(DIRED_DEFS) \
+ -DACCESS_AUTH \
+ -DCOLOR_CURSES \
+ -DDISP_PARTIAL \
+ -DDOSPATH \
+ -DEXP_ADDRLIST_PAGE \
+ -DEXP_ALT_BINDINGS \
  -DEXP_FILE_UPLOAD \
+ -DEXP_PERSISTENT_COOKIES \
+ -DFANCY_CURSES \
+ -DHAVE_GETBKGD \
+ -DNCURSES \
+ -DNOUSERS \
+ -DNO_CUSERID \
+ -DNO_TTYTYPE \
+ -DNO_UTMP \
+ -DSOURCE_CACHE \
+ -DUSE_EXTERNALS \
+ -DUSE_PSRC \
+ -DUSE_ZLIB \
  -DWATT32 \
- $(DIRED_DEFS) \
- -I./chrtrans -I../WWW/Library/Implementation \
- -I../curses -I../djgpp/watt32/inc -I../djgpp/watt32/inc/sys
-WWWLIB = ../WWW/Library/djgpp/libwww.a ../curses/pdcurses.a ../djgpp/watt32/lib/libwatt.a
+ -I./chrtrans \
+ -I../WWW/Library/Implementation \
+ -I../curses \
+ -I../djgpp/watt32/inc \
+ -I../djgpp/watt32/inc/sys
+
+WWWLIB = \
+ ../WWW/Library/djgpp/libwww.a \
+ ../curses/pdcurses.a \
+ ../djgpp/watt32/lib/libwatt.a
+
 LIBS= -lz # -lintl
 #INTLFLAGS = -DHAVE_GETTEXT -DHAVE_LIBINTL_H
 
@@ -33,7 +62,7 @@ all: lynx
 
 lynx:   message $(OBJS) $(WWWLIB)
 	@echo "Linking and creating Lynx executable"
-	$(CC) $(CFLAGS) -o lynx.exe  $(OBJS) $(WWWLIB) $(SLANGLIB) $(LIBS)
+	$(CC) $(CFLAGS) -o lynx.exe  $(OBJS) $(WWWLIB) $(LIBS)
 	@echo "Welcome to Lynx!"
 
 message:
@@ -41,7 +70,7 @@ message:
 
 dbg:	$(OBJS) $(WWWLIB)
 	@echo "Making Lynx code"
-	$(CC) -g $(OBJS) $(CFLAGS) $(WWWLIB) $(SLANGLIB) $(LIBS)
+	$(CC) -g $(OBJS) $(CFLAGS) $(WWWLIB) $(LIBS)
 
 lint:
 	lint *.c  > ../lint.out
@@ -68,3 +97,4 @@ LYReadCFG.o:	../userdefs.h
 LYShowInfo.o:	../userdefs.h
 LYStrings.o:	../userdefs.h
 LYTraversal.o:	../userdefs.h
+LYUtils.o:	../userdefs.h
diff --git a/src/makefile.dsl b/src/makefile.dsl
index 093bcb0c..abb1815d 100644
--- a/src/makefile.dsl
+++ b/src/makefile.dsl
@@ -12,34 +12,57 @@ LYStyle.o LYHash.o LYPrettySrc.o TRSTable.o
 CFLAGS= $(MCFLAGS) $(INTLFLAGS) -I. -I.. $(SLANGINC)
 
 # comment this line to suppress DIRED support
-DIRED_DEFS = -DDIRED_SUPPORT -DOK_UUDECODE -DOK_TAR -DOK_GZIP -DOK_ZIP
+DIRED_DEFS = \
+ -DDIRED_SUPPORT \
+ -DOK_UUDECODE \
+ -DOK_TAR \
+ -DOK_GZIP \
+ -DOK_ZIP \
+ -DOK_OVERRIDE 
 
 CC = gcc
-MCFLAGS = -O2 -DDISP_PARTIAL -DUSE_ZLIB -DUSE_EXTERNALS \
--DWATT32 \
-$(DIRED_DEFS) \
--DSOURCE_CACHE -DUSE_PSRC \
--DUSE_SLANG -DDJGPP_KEYHANDLER -DACCESS_AUTH -DNO_CUSERID \
--DNOUSERS -DDOSPATH -DNO_TTYTYPE -DNO_UTMP -I../WWW/Library/Implementation \
--I../djgpp/watt32/inc -I./chrtrans -I../djgpp/watt32/inc/sys
-WWWLIB = ../WWW/Library/djgpp/libwww.a ../djgpp/watt32/lib/libwatt.a
-LIBS= -lslang -lz # -lintl
-CHRTR= ./chrtrans/
+
+MCFLAGS = -O2 \
+ $(DIRED_DEFS) \
+ -DACCESS_AUTH \
+ -DDISP_PARTIAL \
+ -DDJGPP_KEYHANDLER \
+ -DDOSPATH \
+ -DNOUSERS \
+ -DNO_CUSERID \
+ -DNO_TTYTYPE \
+ -DNO_UTMP \
+ -DSOURCE_CACHE \
+ -DUSE_EXTERNALS \
+ -DUSE_PSRC \
+ -DUSE_SLANG \
+ -DUSE_ZLIB \
+ -DWATT32 \
+ -I./chrtrans \
+ -I../WWW/Library/Implementation \
+ -I../djgpp/watt32/inc \
+ -I../djgpp/watt32/inc/sys
+
+WWWLIB = \
+ ../WWW/Library/djgpp/libwww.a \
+ ../djgpp/watt32/lib/libwatt.a
+
+LIBS= $(SLANGLIB) -lslang -lz # -lintl
 #INTLFLAGS = -DHAVE_GETTEXT -DHAVE_LIBINTL_H
 
 all: lynx.exe
 
 lynx.exe:   message $(OBJS) $(WWWLIB)
 	@echo "Linking and creating Lynx executable"
-	$(CC) $(CFLAGS) -o lynx.exe  $(OBJS) $(WWWLIB) $(SLANGLIB) $(LIBS)
+	$(CC) $(CFLAGS) -o lynx.exe  $(OBJS) $(WWWLIB) $(LIBS)
 	@echo "Welcome to Lynx!"
 
 message:
 	@echo "Compiling Lynx sources"
 
-dbg:    $(OBJS) $(WWWLIB)
+dbg:	$(OBJS) $(WWWLIB)
 	@echo "Making Lynx code"
-	$(CC) $(OBJS) $(CFLAGS) $(WWWLIB) $(SLANGLIB) $(LIBS)
+	$(CC) -g $(OBJS) $(CFLAGS) $(WWWLIB) $(LIBS)
 
 lint:
 	lint *.c  > ../lint.out
@@ -63,7 +86,6 @@ LYMain.o:	../userdefs.h
 LYMainLoop.o:	../userdefs.h
 LYOptions.o:	../userdefs.h
 LYReadCFG.o:	../userdefs.h
-LYReadCFG.o:	../userdefs.h
 LYShowInfo.o:	../userdefs.h
 LYStrings.o:	../userdefs.h
 LYTraversal.o:	../userdefs.h
diff --git a/userdefs.h b/userdefs.h
index a4a4b3a4..85790723 100644
--- a/userdefs.h
+++ b/userdefs.h
@@ -890,7 +890,7 @@
  * Showing the cursor is handy if you are a sighted user with a poor
  * terminal that can't do bold and reverse video at the same time or
  * at all.  It also can be useful to blind users, as an alternative
- * or supplement to setting LINKS_AND_FORM_FIELDS_ARE_NUMBERED or
+ * or supplement to setting LINKS_AND_FIELDS_ARE_NUMBERED or
  * LINKS_ARE_NUMBERED.
  *
  * The default defined here can be changed in lynx.cfg.  It can be
@@ -1059,7 +1059,8 @@
 /**********
  * UNIX:
  * =====
- * CGI script support.  Defining LYNXCGI_LINKS allows you to use the
+ * CGI script support.  Defining LYNXCGI_LINKS (done by the configure script)
+ * allows you to use the
  *
  *   lynxcgi:path
  *
@@ -1089,7 +1090,9 @@
  * lynxcgi:advice  as a G)oto URL for more information and links to the
  * OSU server distribution.
  */
+#ifndef HAVE_CONFIG_H
 /* #define LYNXCGI_LINKS */
+#endif
 
 /*********************************
  *  MAIL_SYSTEM_ERROR_LOGGING will send a message to the owner of
@@ -1150,12 +1153,12 @@
  * DEFAULT KEYPAD MODE may be set to
  *	NUMBERS_AS_ARROWS   or
  *	LINKS_ARE_NUMBERED  or
- *	LINKS_AND_FORM_FIELDS_ARE_NUMBERED
+ *	LINKS_AND_FIELDS_ARE_NUMBERED
  *
  * This default setting can be overridden in lynx.cfg (but not to
  * the third value), and it can be changed at run time by the user.
  */
-#define DEFAULT_KEYPAD_MODE	NUMBERS_AS_ARROWS
+#define DEFAULT_KEYPAD_MODE	LINKS_AND_FIELDS_ARE_NUMBERED
 
 /********************************
  * The default search.
@@ -1235,10 +1238,26 @@
  * case, but some users may find this surprising and expect <return> to just
  * move to the next link as for other text entry fields.
  */
-
 /* #define TEXT_SUBMIT_CONFIRM_WANTED */
 
 /********************************
+ * The following three definitions control some aspects of extended
+ * textarea handling.  TEXTAREA_EXPAND_SIZE is the number of new empty
+ * lines that get appended at the end of a textarea by a GROWTEXTAREA
+ * key.  If TEXTAREA_AUTOGROW is defined (to anything), <return> or
+ * <enter> in the last line of a textarea automatically extends the
+ * area by adding a new line.  If TEXTAREA_AUTOEXTEDIT is defined (to
+ * anything), a key mapped to DWIMEDIT will invoke the external editor
+ * like EDITTEXTAREA when used in a text input field.  Comment those
+ * last two definitions out to disable the corresponding behavior.
+ * See under KEYMAP in lynx.cfg for mapping keys to GROWTEXTAREA or
+ * DWIMEDIT actions.
+ */
+#define TEXTAREA_EXPAND_SIZE  5
+#define TEXTAREA_AUTOGROW
+#define TEXTAREA_AUTOEXTEDIT
+
+/********************************
  * If BUILTIN_SUFFIX_MAPS is defined (to anything), default mappings
  * for file extensions (aka suffixes) will be compiled in (see
  * src/HTInit.c).  By removing the definition, the default mappings
@@ -1279,12 +1298,12 @@
  * the version definition with the Project Version on checkout.  Just
  * ignore it. - kw */
 /* $Format: "#define LYNX_VERSION \"$ProjectVersion$\""$ */
-#define LYNX_VERSION "2.8.3dev.14"
+#define LYNX_VERSION "2.8.3dev.15"
 #define LYNX_WWW_HOME "http://lynx.browser.org/"
 #define LYNX_WWW_DIST "http://www.slcc.edu/lynx/current/"
 #define LYNX_RELEASE FALSE
 /* $Format: "#define LYNX_DATE \"$ProjectDate$\""$ */
-#define LYNX_DATE "Wed, 03 Nov 1999 19:41:39 -0700"
+#define LYNX_DATE "Wed, 17 Nov 1999 21:08:08 -0700"
 #define LYNX_DATE_OFF 5		/* truncate the automatically-generated date */
 #define LYNX_DATE_LEN 11	/* truncate the automatically-generated date */
 #define LYNX_RELEASE_DATE "1999"
@@ -1371,7 +1390,8 @@
 #define MKDIR_PATH      "mkdir"
 #define MV_PATH         "mv"
 #define RM_PATH         "rm"
-#define COPY_PATH       "cp"
+/* COPY_PATH is not required for DOSPATH any more (implemented directly) */
+/* #define COPY_PATH       "cp" */
 #define CHMOD_PATH      "chmod"
 #define TELNET_PATH     "telnet"
 #define TN3270_PATH     "tn3270"