about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorThomas E. Dickey <dickey@invisible-island.net>2006-09-10 23:47:00 -0400
committerThomas E. Dickey <dickey@invisible-island.net>2006-09-10 23:47:00 -0400
commit24a47fee30cfc3e2da82571f9c13c896a601a8df (patch)
tree34e6d98955850ffba8d43bc0b9bf7f8a1143f045
parentc6cec39ad0f9474e910e321e1b4d95054f5529a1 (diff)
downloadlynx-snapshots-24a47fee30cfc3e2da82571f9c13c896a601a8df.tar.gz
snapshot of project "lynx", label v2-8-6pre_3
-rw-r--r--CHANGES28
-rw-r--r--COPYHEADER14
-rwxr-xr-xconfigure2
-rw-r--r--configure.in4
-rw-r--r--docs/README.metrics29
-rw-r--r--lynx.cfg13
-rw-r--r--makefile.msc21
-rw-r--r--po/tr.po71
-rw-r--r--src/LYCurses.c6
-rw-r--r--src/LYHistory.c7
-rw-r--r--src/LYMain.c2
-rw-r--r--src/LYMainLoop.c7
-rw-r--r--src/LYReadCFG.c3
-rw-r--r--src/LYStrings.c4
-rw-r--r--src/LYUtils.c39
-rw-r--r--src/LYrcFile.h1
-rw-r--r--src/UCAux.c8
-rw-r--r--userdefs.h4
18 files changed, 191 insertions, 72 deletions
diff --git a/CHANGES b/CHANGES
index 9b7fce87..2de48a70 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,30 @@
 Changes since Lynx 2.8 release
 ===============================================================================
 
+2006-09-10 (2.8.6pre.3)
+* add NESTED_TABLES setting to lynx.cfg to allow site override of the built-in
+  default (see 2001-08-15 comments by TH) -TD
+* update tr.po from
+    http://www.iro.umontreal.ca/translation/maint/lynx/
+* fix a different aspect of Debian #171312, ensuring that if the side-effect
+  of getfile() is unneeded, we restore the link number as well as the line
+  number (Debian #386561) -TD
+* modify makefile.msc to allow building with slang configuration -TD
+* fixes for keyboard input of slang configuration in win32 (not mingw) which
+  was broken in 2.8.3dev.5 -TD
+* fix LYgetTableString(), making the monochome appearance with an empty ".lss"
+  file for color-style look like the non-color-style (Debian #386216) -TD
+* fix change made to LYwaddnstr() which did not update the position in LYwin
+  after writing text to a subwindow.  This caused some cases where the status
+  line would be cleared by the filler color -TD 
+* modify noviceline() function to account for trailing newlines in the message
+  text which caused the message to be displayed on the wrong lines (report
+  by Atsuhito Kohda) -TD
+* make "lynx -version" work in the absence of ".cfg" or ".lss" files -TD
+* add docs/README.metrics to support the changes to COPYHEADER -TD
+* update COPYHEADER to reflect the ten years of development after release
+  of Lynx 2.4.2 -TD
+
 2006-09-03 (2.8.6pre.2)
 * change configure script to put the ".cfg" and ".lss" files by default in the
   --sysconfdir, e.g., $prefix/etc, and the help-files in lynx_doc and lynx_help
@@ -44,8 +68,8 @@ Changes since Lynx 2.8 release
 * improve wrapping logic in LYwaddnstr() by using a derived window.  This fixes
   a problem with wrapping of multibyte character links -TD
 * repair fix for Debian #171312 by ensuring that it is only invoked if the
-  document was not being reloaded, or popped off the history stack (report
-  by TH) -TD
+  document was not being reloaded, or popped off the history stack.  See logic
+  for popped_doc vs LYSetNewline() in LYMainLoop.c (report by TH) -TD
 * add error-reporting for the PRETTYSRC_SPEC data in lynx.cfg
   (prompted by discussion by OpenMacNews and Thorsten Glaser) -TD
 * add a carriage-return in stop_curses() to work around PDCurses leaving the
diff --git a/COPYHEADER b/COPYHEADER
index 8c88e974..b2dda528 100644
--- a/COPYHEADER
+++ b/COPYHEADER
@@ -1,3 +1,17 @@
+Most of the content of the lynx release is the work of developers on the
+lynx-dev mailing list, who have agreed to distribute their work under the
+terms and conditions of the GNU Public License (Version 2).
+
+Any licensing questions should be directed to the mailing list:
+
+	lynx-dev@nongnu.org
+
+or to the maintainer (Thomas E. Dickey):
+
+	dickey@invisible-island.net
+
+For reference, below is the original copyright notice for Lynx (2.4.2).
+------------------------------------------------------------------------------
 /* Copyright (C) 1995 University of Kansas.
 
    This file is part of Lynx, a text-based WWW browser. 
diff --git a/configure b/configure
index de0b6297..b682655e 100755
--- a/configure
+++ b/configure
@@ -1228,7 +1228,7 @@ fi;
 
 PACKAGE=lynx
 # $Format: "VERSION=$ProjectVersion$"$
-VERSION=2.8.6pre.2
+VERSION=2.8.6pre.3
 
 test -z "$ALL_LINGUAS" && ALL_LINGUAS=`test -d $srcdir/po && cd $srcdir/po && echo *.po|sed -e 's/\.po//g' -e 's/*//'`
 
diff --git a/configure.in b/configure.in
index 659103a1..7b3606f8 100644
--- a/configure.in
+++ b/configure.in
@@ -25,7 +25,7 @@ dnl ---------------------------------------------------------------------------
 dnl
 dnl ask PRCS to plug-in the project-version for the configure-script.
 dnl $Format: "AC_REVISION($ProjectVersion$)"$
-AC_REVISION(2.8.6pre.2)
+AC_REVISION(2.8.6pre.3)
 
 # Save the original $CFLAGS so we can distinguish whether the user set those
 # in the environment, or whether autoconf added -O and -g options:
@@ -57,7 +57,7 @@ AC_ARG_WITH(system-type,
 PACKAGE=lynx
 dnl ask PRCS to plug-in the project-version for the packages.
 # $Format: "VERSION=$ProjectVersion$"$
-VERSION=2.8.6pre.2
+VERSION=2.8.6pre.3
 AC_SUBST(PACKAGE)
 AC_SUBST(VERSION)
 AC_SUBST(DESTDIR)
diff --git a/docs/README.metrics b/docs/README.metrics
new file mode 100644
index 00000000..5c3eb365
--- /dev/null
+++ b/docs/README.metrics
@@ -0,0 +1,29 @@
+This is a short summary of code metrics showing how lynx has grown from
+release to release.  It also shows how the original codebase has
+been almost completely replaced by contributors after the release of
+lynx 2.4.2 in 1996.  The numbers shown are for lines of text, to keep
+the presentation simple.
+
+Release         Current                 Original
+-------------------------------------------------------------------------------
+                Text    C-code          Text    C-code  % Text  % Code
+-------------------------------------------------------------------------------
+2.4.2            77210   63463          77210   63463   100     100
+2.6             112970   92869          58859   49665    52      53
+2.7.1           125723  103489          54121   45111    43      43
+2.7.2           162228  123130          48979   40655    30      33
+2.8.1           191738  133778          37286   33582    19      25
+2.8.2           227160  147485          32227   29004    14      19
+2.8.3           248646  166833          29035   26346    11      15
+2.8.4           310436  168108          28364   25751     9      15
+2.8.5           362834  167358          26900   24355     7      14
+2.8.6           395237  169885          23380   20801     5      12
+
+Beginning with 2.8.6, the fraction of remaining original codebase is an
+estimate, since all C source code is automatically indented using the
+indent.sh script.  That added 7216 lines of change since it was not possible
+to completely match the hand-edited indention scheme.
+
+Current lynx releases contain a large amount of text other than C code.
+That includes plain text, html, message libraries, custom and generated
+scripts.
diff --git a/lynx.cfg b/lynx.cfg
index 5e0cc97d..ba08e986 100644
--- a/lynx.cfg
+++ b/lynx.cfg
@@ -3,10 +3,10 @@
 #                                     or Lynx_Dir:lynx.cfg (VMS)
 #
 # $Format: "#PRCS LYNX_VERSION \"$ProjectVersion$\""$
-#PRCS LYNX_VERSION "2.8.6pre.2"
+#PRCS LYNX_VERSION "2.8.6pre.3"
 #
 # $Format: "#PRCS LYNX_DATE \"$ProjectDate$\""$
-#PRCS LYNX_DATE "Sun, 03 Sep 2006 16:25:39 -0700"
+#PRCS LYNX_DATE "Sun, 10 Sep 2006 16:38:39 -0700"
 #
 # Definition pairs are of the form  VARIABLE:DEFINITION
 # NO spaces are allowed between the pair items.
@@ -2958,7 +2958,14 @@ COLOR:6:brightred:black
 # lynx tries the environment variables "LYNX_LSS" and "lynx_lss".  If neither
 # is set, lynx uses the compiled-in value (which as noted, may be empty).
 #
-# COLOR_STYLE: lynx.lss
+#COLOR_STYLE: lynx.lss
+
+.h2 NESTED_TABLES
+# This is an experimental feature for improving table layout.
+# It is enabled by default when the COLOR_STYLE configuration is used,
+# and false otherwise.
+#
+#NESTED_TABLES: true
 
 
 .h2 ASSUMED_COLOR
diff --git a/makefile.msc b/makefile.msc
index 735215db..201dd620 100644
--- a/makefile.msc
+++ b/makefile.msc
@@ -10,6 +10,7 @@
 #	OPT_SOCK - nonempty to build with winsock2
 #	OPT_SSL  - nonempty to build with OpenSSL
 #	SSL_DIR  - directory containing OpenSSL
+#	SCREEN   - name of screen-library (pdcurses)
 #	PROGNAME - name of executable (lynx.exe)
 ###############################################################################
 
@@ -24,6 +25,11 @@ WWW_DIR = WWW\Library\Implementation
 ETC_LIB = lib
 !endif
 
+# Select a screen-library
+!if "$(SCREEN)" == ""
+SCREEN = pdcurses
+!endif
+
 # Enable the CS_DEFS and CS_OBJS lines if you wish to build the color-style
 # configuration.
 !if "$(OPT_CS)" != ""
@@ -45,16 +51,23 @@ SSL_DEFS = /D "USE_SSL" -I "$(SSL_DIR)\include" -I"$(SSL_DIR)\include\openssl"
 SSL_LIBS = "$(SSL_DIR)\lib\ssleay32.lib" "$(SSL_DIR)\lib\libeay32.lib"
 !endif
 
+!if "$(SCREEN)" == "pdcurses"
+SCREEN_DEFS = /D "PDCURSES" /D "COLOR_CURSES" /D "FANCY_CURSES"
+SCREEN_LIB  = pdcurses
+!else
+SCREEN_DEFS = /D "USE_SLANG"
+SCREEN_LIB  = wslang32
+!endif
+
 INCLUDES = \
  /I "." \
  /I "$(SRC_DIR)" \
  /I "$(SRC_DIR)\chrtrans" \
  /I "$(WWW_DIR)" \
  /I "$(ETC_LIB)"
-DEFS = $(CS_DEFS) $(SOCK_DEFS) $(SSL_DEFS) \
+DEFS = $(CS_DEFS) $(SOCK_DEFS) $(SSL_DEFS) $(SCREEN_DEFS) \
  /D "ACCESS_AUTH" \
  /D "CJK_EX" \
- /D "COLOR_CURSES" \
  /D "DIRED_SUPPORT" \
  /D "DISP_PARTIAL" \
  /D "DOSPATH" \
@@ -62,7 +75,6 @@ DEFS = $(CS_DEFS) $(SOCK_DEFS) $(SSL_DEFS) \
  /D "EXP_CMD_LOGGING" \
  /D "EXP_JUSTIFY_ELTS" \
  /D "EXP_NESTED_TABLES" \
- /D "FANCY_CURSES" \
  /D "HAVE_KEYPAD" \
  /D "LONG_LIST" \
  /D "NDEBUG" \
@@ -75,7 +87,6 @@ DEFS = $(CS_DEFS) $(SOCK_DEFS) $(SSL_DEFS) \
  /D "NO_UNISTD_H" \
  /D "NO_UTMP" \
  /D "OK_OVERRIDE" \
- /D "PDCURSES" \
  /D "SH_EX" \
  /D "USE_EXTERNALS" \
  /D "USE_FILE_UPLOAD" \
@@ -105,7 +116,7 @@ LDFLAGS  = /debug /nologo /subsystem:console /incremental:no /machine:I386
 !endif
 
 LIBS     = kernel32.lib user32.lib wsock32.lib /NODEFAULTLIB:libc\
- $(ETC_LIB)\pdcurses.lib $(ETC_LIB)\zlib.lib dirent.obj $(SSL_LIBS)
+ $(ETC_LIB)\$(SCREEN_LIB).lib $(ETC_LIB)\zlib.lib dirent.obj $(SSL_LIBS)
 
 COMPILE = $(CC) $(CFLAGS) $(INCLUDES) $(DEFS)
 LINK    = $(LD) $(LDFLAGS) /map:lynx.map /out:$@
diff --git a/po/tr.po b/po/tr.po
index 9aeb3e5e..4c41625e 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -1,20 +1,19 @@
-# translation of lynx-2.8.6-dev8.po to Turkish
-# lynx-2.8.6-dev8.po'nun Türkçe çevirisi
-# Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-# Eyüp Hakan Duran <hakan_duran@hotmail.com>, 2002, 2004.
-#
+# translation of lynx-2.8.6-dev19.po to Turkish
+# lynx-2.8.6-dev19.po'nun Türkçe çevirisi
+# Copyright (C) 2002, 2004, 2006 Free Software Foundation, Inc.
+# Eyüp Hakan Duran <hakan_duran@hotmail.com>, 2006.
 msgid ""
 msgstr ""
-"Project-Id-Version: lynx-2.8.6-dev8\n"
+"Project-Id-Version: lynx-2.8.6-dev19\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2006-08-31 18:50-0400\n"
-"PO-Revision-Date: 2004-11-19 22:25+0200\n"
+"PO-Revision-Date: 2006-09-10 15:30-0400\n"
 "Last-Translator: Eyüp Hakan Duran <hakan_duran@hotmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-9\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3\n"
+"X-Generator: KBabel 1.10.2\n"
 
 #. ******************************************************************
 #. * The following definitions are for status line prompts, messages, or
@@ -2552,9 +2551,9 @@ msgid "Retrying with proxy authorization information."
 msgstr "Vekil(proxy) yetkilendirme bilgisiyle yeniden deneniyor."
 
 #: LYMessages.c:796
-#, fuzzy, c-format
+#, c-format
 msgid "SSL error:%s-Continue?"
-msgstr "SSL hatası:makina(%s)!=sert(%s)-Devam edilsin mi?"
+msgstr "SSL hatası:%s-Devam edilsin mi?"
 
 #. HTWAIS.c
 #: LYMessages.c:799
@@ -2847,7 +2846,8 @@ msgstr "ana soket için soket"
 #. * It's a symbolic link, does the user care about knowing if it is
 #. * symbolic?  I think so since it might be a directory.
 #.
-#: WWW/Library/Implementation/HTFTP.c:1697 WWW/Library/Implementation/HTFTP.c:2314
+#: WWW/Library/Implementation/HTFTP.c:1697
+#: WWW/Library/Implementation/HTFTP.c:2314
 msgid "Symbolic Link"
 msgstr "Simgesel Link"
 
@@ -3023,7 +3023,8 @@ msgstr "Adres portu geçersiz"
 msgid "Address length looks invalid"
 msgstr "Adres uzunluğu geçersiz görünüyor"
 
-#: WWW/Library/Implementation/HTTCP.c:1581 WWW/Library/Implementation/HTTCP.c:1599
+#: WWW/Library/Implementation/HTTCP.c:1581
+#: WWW/Library/Implementation/HTTCP.c:1599
 #, c-format
 msgid "Unable to locate remote host %s."
 msgstr "%s adlı karşı makina konumlandırılamıyor."
@@ -3032,7 +3033,8 @@ msgstr "%s adlı karşı makina konumlandırılamıyor."
 #. * but not HTAlert, because typically there will be other
 #. * alerts from the callers.  - kw
 #.
-#: WWW/Library/Implementation/HTTCP.c:1596 WWW/Library/Implementation/HTTelnet.c:108
+#: WWW/Library/Implementation/HTTCP.c:1596
+#: WWW/Library/Implementation/HTTelnet.c:108
 #, c-format
 msgid "Invalid hostname %s"
 msgstr "Geçersiz makina adı %s"
@@ -3086,34 +3088,32 @@ msgstr "Bağlantı, TLS'siz tekrar deneniyor."
 
 #: WWW/Library/Implementation/HTTP.c:664
 msgid "no issuer was found"
-msgstr ""
+msgstr "yayınlayıcı bulunamadı"
 
 #: WWW/Library/Implementation/HTTP.c:666
 msgid "issuer is not a CA"
-msgstr ""
+msgstr "yayınlayıcı bir CA değil"
 
 #: WWW/Library/Implementation/HTTP.c:668
 msgid "the certificate has no known issuer"
-msgstr ""
+msgstr "sertifikanın bilinen bir yayınlayıcısı yok"
 
 #: WWW/Library/Implementation/HTTP.c:670
-#, fuzzy
 msgid "the certificate has been revoked"
-msgstr "Çerez yendi!"
+msgstr "sertifika hükümsüz kılınmış"
 
 #: WWW/Library/Implementation/HTTP.c:672
 msgid "the certificate is not trusted"
-msgstr ""
+msgstr "sertifikaya güvenilmiyor"
 
 #: WWW/Library/Implementation/HTTP.c:747
 #, c-format
 msgid "Verified connection to %s (cert=%s)"
-msgstr ""
+msgstr "%1$s'e doğrulanmış bağlantı (cert=%2$s)"
 
 #: WWW/Library/Implementation/HTTP.c:771
-#, fuzzy
 msgid "Can't find common name in certificate"
-msgstr "SSL hatası:sertifikada ortak ad bulunamadı-Devam?"
+msgstr "Sertifikada ortak ad bulunamadı"
 
 #: WWW/Library/Implementation/HTTP.c:774
 #, c-format
@@ -3662,7 +3662,7 @@ msgstr "Dosya, bu oturum boyunca %s'den kurtarılabilir"
 #: src/LYCgi.c:159
 #, c-format
 msgid "Do you want to execute \"%s\"?"
-msgstr ""
+msgstr "\"%s\"'i çalıştırmak ister misiniz?"
 
 #.
 #. * Neither the path as given nor any components examined by backing up
@@ -4238,7 +4238,7 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Ayarlama dosyası %s temin edilemiyor.\n"
+"Ayarlama dosyası \"%s\" temin edilemiyor.\n"
 "\n"
 
 #: src/LYMain.c:1466
@@ -4271,7 +4271,7 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Lynx dosyası %s temin edilemiyor.\n"
+"Lynx dosyası \"%s\" temin edilemiyor.\n"
 "\n"
 
 #: src/LYMain.c:1762
@@ -4502,7 +4502,8 @@ msgid "ON"
 msgstr "AÇIK"
 
 #. verbose_img variable
-#: src/LYOptions.c:2127 src/LYOptions.c:2132 src/LYOptions.c:2280 src/LYOptions.c:2291
+#: src/LYOptions.c:2127 src/LYOptions.c:2132 src/LYOptions.c:2280
+#: src/LYOptions.c:2291
 msgid "OFF"
 msgstr "KAPALI"
 
@@ -4909,9 +4910,8 @@ msgstr "Kişisel mektup adresi"
 
 #. Mail Address: INPUT
 #: src/LYOptions.c:3720
-#, fuzzy
 msgid "Password for anonymous ftp"
-msgstr "'%s' adlı haber makinası için parola:"
+msgstr "Anonim ftp için parola"
 
 #. Preferred media type: SELECT
 #: src/LYOptions.c:3725
@@ -5280,9 +5280,8 @@ msgid "Content-Length:"
 msgstr "İçerik Uzunluğu:"
 
 #: src/LYShowInfo.c:360
-#, fuzzy
 msgid "Length:"
-msgstr "İçerik Uzunluğu:"
+msgstr "Uzunluk:"
 
 #: src/LYShowInfo.c:365
 msgid "Language:"
@@ -5474,6 +5473,9 @@ msgid ""
 "Lynx will use the personal email address.  Set anonftp_password\n"
 "to a different value if you choose.\n"
 msgstr ""
+"anonftp_password ile kullanıcı Lynx'e kişisel e-posta adresini\n"
+"anonim ftp için parola olarak kullanmasını bildirir.  Eğer bir değer verilmezse,\n"
+"Lynx kişisel e-posta adresini kullanacaktır.  anonftp_password'ü başka bir değere kurmayı seçebilirsiniz.\n"
 
 #: src/LYrcFile.c:331
 msgid ""
@@ -5994,12 +5996,3 @@ msgstr ""
 "Eğer genel ayarlama dosyasını arıyorsanız - normalde lynx.cfg olarak\n"
 "anılır, onun farklı bir içeriği ve biçemi vardır.\n"
 "O, bu dosya değildir.\n"
-
-#~ msgid "KB"
-#~ msgstr "KB"
-
-#~ msgid "Remove '%s' and all of its contents?"
-#~ msgstr "'%s' ve tüm içeriği çıkartılsın mı?"
-
-#~ msgid "Remove directory and all of its contents?"
-#~ msgstr "Dizin ve tüm içeriği çıkartılsın mı?"
diff --git a/src/LYCurses.c b/src/LYCurses.c
index cbe949e1..7f1c371a 100644
--- a/src/LYCurses.c
+++ b/src/LYCurses.c
@@ -711,7 +711,7 @@ char *LYgetTableString(int code)
     int mask = decode_mono_code(code);
     int second = encode_color_attr(mask);
     int pair = PAIR_NUMBER(second);
-    int mono = second & A_ATTRIBUTES;
+    int mono = mask & A_ATTRIBUTES;
     int fg = lynx_color_pairs[pair].fg;
     int bg = lynx_color_pairs[pair].bg;
     unsigned n;
@@ -722,7 +722,7 @@ char *LYgetTableString(int code)
     if (fg == 0 && bg == 0) {
 	fg = COLOR_WHITE;
     }
-    CTRACE((tfp, "%#x -> %#x (%d) fg=%d, bg=%d\n", mask, second, pair, fg, bg));
+    CTRACE((tfp, "%#x -> %#x (mono %#x pair %d) fg=%d, bg=%d\n", mask, second, mono, pair, fg, bg));
     for (n = 0; n < TABLESIZE(Mono_Attrs); ++n) {
 	if ((Mono_Attrs[n].code & mono) != 0) {
 	    if (result != 0)
@@ -1870,7 +1870,9 @@ void LYwaddnstr(WINDOW * w GCC_UNUSED,
 	    wmove(sub, y0, x0);
 	    LYwideLines = TRUE;
 	    LYwaddnstr(sub, src, len);
+	    getyx(sub, y0, x0);
 	    delwin(sub);
+	    wmove(LYwin, y0, x0);
 	}
 	LYwideLines = FALSE;
 
diff --git a/src/LYHistory.c b/src/LYHistory.c
index 0e3da111..66ec15ca 100644
--- a/src/LYHistory.c
+++ b/src/LYHistory.c
@@ -629,6 +629,13 @@ void LYpop_num(int number,
 	/* assume we pop the 'doc' to show it soon... */
 	LYSetNewline(doc->line);	/* reinitialize */
 #endif /* DISP_PARTIAL */
+	if (TRACE) {
+	    CTRACE((tfp, "LYpop_num(%d)\n", number));
+	    CTRACE((tfp, "  link    %d\n", doc->link));
+	    CTRACE((tfp, "  line    %d\n", doc->line));
+	    CTRACE((tfp, "  title   %s\n", NonNull(doc->title)));
+	    CTRACE((tfp, "  address %s\n", NonNull(doc->address)));
+	}
     }
 }
 
diff --git a/src/LYMain.c b/src/LYMain.c
index 00498122..00c387e6 100644
--- a/src/LYMain.c
+++ b/src/LYMain.c
@@ -3864,7 +3864,7 @@ treated '>' as a co-terminator for double-quotes and tags"
       "toggles [LINK], [IMAGE] and [INLINE] comments \nwith filenames of these images"
    ),
    PARSE_FUN(
-      "version",	4|FUNCTION_ARG,		version_fun,
+      "version",	1|FUNCTION_ARG,		version_fun,
       "print Lynx version information"
    ),
    PARSE_SET(
diff --git a/src/LYMainLoop.c b/src/LYMainLoop.c
index e20ebf53..226e565f 100644
--- a/src/LYMainLoop.c
+++ b/src/LYMainLoop.c
@@ -5224,6 +5224,7 @@ int mainloop(void)
     int i;
     int follow_col = -1, key_count = 0, last_key = 0;
     int tmpNewline;
+    DocInfo tmpDocInfo;
 
     /* "internal" means "within the same document, with certainty".  It includes a
      * space so it cannot conflict with any (valid) "TYPE" attributes on A
@@ -5547,17 +5548,23 @@ int mainloop(void)
 		    newdoc.address = temp;
 		    temp = NULL;
 		}
+		tmpDocInfo = newdoc;
 		tmpNewline = -1;
 		getresult = getfile(&newdoc, &tmpNewline);
 		if (!reloading && !popped_doc && (tmpNewline >= 0)) {
 		    LYSetNewline(tmpNewline);
+		} else {
+		    newdoc.link = tmpDocInfo.link;
 		}
 	    }
 #else /* TRACK_INTERNAL_LINKS */
+	    tmpDocInfo = newdoc;
 	    tmpNewline = -1;
 	    getresult = getfile(&newdoc, &tmpNewline);
 	    if (!reloading && !popped_doc && (tmpNewline >= 0)) {
 		LYSetNewline(tmpNewline);
+	    } else {
+		newdoc.link = tmpDocInfo.link;
 	    }
 #endif /* TRACK_INTERNAL_LINKS */
 
diff --git a/src/LYReadCFG.c b/src/LYReadCFG.c
index ce7a758c..89fb9390 100644
--- a/src/LYReadCFG.c
+++ b/src/LYReadCFG.c
@@ -1390,6 +1390,9 @@ static Config_Type Config_Table [] =
      PARSE_ENU(RC_MULTI_BOOKMARK_SUPPORT, LYMultiBookmarks, tbl_multi_bookmarks),
      PARSE_PRG(RC_MV_PATH,              ppMV),
      PARSE_SET(RC_NCR_IN_BOOKMARKS,     UCSaveBookmarksInUnicode),
+#ifdef EXP_NESTED_TABLES
+     PARSE_SET(RC_NESTED_TABLES,        nested_tables),
+#endif
 #ifndef DISABLE_NEWS
      PARSE_FUN(RC_NEWS_CHUNK_SIZE,      news_chunk_size_fun),
      PARSE_FUN(RC_NEWS_MAX_CHUNK,       news_max_chunk_fun),
diff --git a/src/LYStrings.c b/src/LYStrings.c
index cb8aa198..a40bfb0f 100644
--- a/src/LYStrings.c
+++ b/src/LYStrings.c
@@ -1366,7 +1366,7 @@ static void setup_vtXXX_keymap(void)
 	INTERN_KEY( "\033OP",	F1,		KEY_F(1) ),
 	INTERN_KEY( "\033[OP",	F1,		KEY_F(1) ),
 	INTERN_KEY( "\033[29~",	DO_KEY,		KEY_F(16) ),
-#if defined(USE_SLANG) && defined(__MINGW32__)
+#if defined(USE_SLANG) && (defined(__WIN32__) || defined(__MINGW32__))
 	INTERN_KEY( "\xE0H",	UPARROW,	KEY_UP ),
 	INTERN_KEY( "\xE0P",	DNARROW,	KEY_DOWN ),
 	INTERN_KEY( "\xE0M",	RTARROW,	KEY_RIGHT ),
@@ -1575,7 +1575,7 @@ static int LYgetch_for(int code)
 
     key = SLang_do_key(Keymap_List, myGetChar);
     if ((key == NULL) || (key->type != SLKEY_F_KEYSYM)) {
-#ifdef __MINGW32__
+#if defined(__WIN32__) || defined(__MINGW32__)
 	if ((key == NULL) && (current_sl_modifier == LKC_ISLKC)) {
 	    key = SLang_do_key(Keymap_List, myGetChar);
 	    keysym = key->f.keysym;
diff --git a/src/LYUtils.c b/src/LYUtils.c
index 0cfd1340..2a795d99 100644
--- a/src/LYUtils.c
+++ b/src/LYUtils.c
@@ -1023,17 +1023,25 @@ void LYhighlight(int flag,
 #endif
     tmp[0] = tmp[1] = tmp[2] = '\0';
 
-    CTRACE((tfp, "LYhighlight %s %d:%s\n",
-	    flag ? "on" : "off", cur, NONNULL(target)));
-
     /*
      * Bugs in the history code might cause -1 to be sent for cur, which yields
      * a crash when LYstrncpy() is called with a nonsense pointer.  As far as I
      * know, such bugs have been squashed, but if they should reappear, this
      * works around them.  -FM
      */
-    if (cur < 0)
+    if (cur < 0) {
+	CTRACE((tfp, "LYhighlight cur %d (bug workaround)\n", cur));
 	cur = 0;
+    }
+
+    CTRACE((tfp, "LYhighlight %s %d [%d]:%s\n",
+	    (flag
+	     ? "on"
+	     : "off"),
+	    cur,
+	    links[cur].anchor_number,
+	    NONNULL(target)));
+
 #if defined(TEXTFIELDS_MAY_NEED_ACTIVATION) && defined(INACTIVE_INPUT_STYLE_VH)
     if (flag == OFF)
 	textinput_redrawn = FALSE;
@@ -1272,6 +1280,7 @@ void statusline(const char *text)
     char buffer[MAX_LINE];
     unsigned char *temp = NULL;
     int max_length, len, i, j;
+    int at_lineno;
     unsigned char k;
     char *p;
     char text_buff[MAX_LINE];
@@ -1399,15 +1408,16 @@ void statusline(const char *text)
      */
     if (LYStatusLine >= 0) {
 	if (LYStatusLine < LYlines - 1) {
-	    LYmove(LYStatusLine, 0);
+	    at_lineno = LYStatusLine;
 	} else {
-	    LYmove(LYlines - 1, 0);
+	    at_lineno = LYlines - 1;
 	}
     } else if (user_mode == NOVICE_MODE) {
-	LYmove(LYlines - 3, 0);
+	at_lineno = LYlines - 3;
     } else {
-	LYmove(LYlines - 1, 0);
+	at_lineno = LYlines - 1;
     }
+    LYmove(at_lineno, 0);
     LYclrtoeol();
 
     if (non_empty(buffer)) {
@@ -1436,6 +1446,7 @@ void statusline(const char *text)
 #else
 	/* draw the status bar in the STATUS style */
 	{
+	    int y, x;
 	    int a = ((strncmp(buffer, ALERT_FORMAT, ALERT_PREFIX_LEN)
 		      || !hashStyles[s_alert].name)
 		     ? s_status
@@ -1447,7 +1458,10 @@ void statusline(const char *text)
 		     ((lynx_has_color && LYShowColor >= SHOW_COLOR_ON)
 		      ? (chtype) hashStyles[a].color
 		      : A_NORMAL) | ' ');
-	    LYclrtoeol();
+	    LYGetYX(y, x);
+	    if (y == at_lineno) {
+		LYclrtoeol();
+	    }
 	    if (!(lynx_has_color && LYShowColor >= SHOW_COLOR_ON))
 		wbkgdset(LYwin, A_NORMAL | ' ');
 	    else if (s_normal != NOSTYLE)
@@ -1493,9 +1507,10 @@ void noviceline(int more_flag GCC_UNUSED)
 	return;
 
     LYmove(LYlines - 2, 0);
-    /* lynx_stop_reverse(); */
     LYclrtoeol();
     LYaddstr(NOVICE_LINE_ONE);
+
+    LYmove(LYlines - 1, 0);
     LYclrtoeol();
 #if defined(DIRED_SUPPORT ) && defined(OK_OVERRIDE)
     if (lynx_edit_mode && !no_dired_support)
@@ -1741,6 +1756,10 @@ int HTCheckForInterrupt(void)
     nodelay(LYwin, TRUE);
     c = LYgetch();
     nodelay(LYwin, FALSE);
+#elif defined(USE_SLANG) && defined(_WINDOWS)
+    if (!SLang_input_pending(0))
+	return ((int) FALSE);
+    c = LYgetch();
 #else
     c = LYgetch();
 #endif
diff --git a/src/LYrcFile.h b/src/LYrcFile.h
index c39d8a37..43e29631 100644
--- a/src/LYrcFile.h
+++ b/src/LYrcFile.h
@@ -133,6 +133,7 @@
 #define RC_MULTI_BOOKMARK_SUPPORT       "multi_bookmark_support"
 #define RC_MV_PATH                      "mv_path"
 #define RC_NCR_IN_BOOKMARKS             "ncr_in_bookmarks"
+#define RC_NESTED_TABLES                "nested_tables"
 #define RC_NEWSPOST_PROXY               "newspost_proxy"
 #define RC_NEWSREPLY_PROXY              "newsreply_proxy"
 #define RC_NEWS_CHUNK_SIZE              "news_chunk_size"
diff --git a/src/UCAux.c b/src/UCAux.c
index f7114fd4..49b8692e 100644
--- a/src/UCAux.c
+++ b/src/UCAux.c
@@ -376,7 +376,7 @@ void UCSetBoxChars(int cset,
 		char *map = tigetstr("acsc");
 
 		if (map != 0) {
-		    CTRACE((tfp, "check terminal line-drawing map\n"));
+		    CTRACE((tfp, "build terminal line-drawing map\n"));
 		    while (map[0] != 0 && map[1] != 0) {
 			for (n = 0; n < TABLESIZE(table); ++n) {
 			    if (table[n].mapping == map[0]) {
@@ -397,12 +397,14 @@ void UCSetBoxChars(int cset,
 	    if (cset == last_cset) {
 		fix_lines = last_result;
 	    } else {
+		CTRACE((tfp, "check terminal line-drawing map\n"));
 		for (n = 0; n < TABLESIZE(table); ++n) {
 		    int test = UCTransUniChar(table[n].internal, cset);
 
 		    if (test != table[n].external) {
-			CTRACE((tfp, "line-drawing map %c mismatch\n",
-				table[n].mapping));
+			CTRACE((tfp, "line-drawing map %c mismatch (have %#x, want %#x)\n",
+				table[n].mapping,
+				test, table[n].external));
 			fix_lines = TRUE;
 			break;
 		    }
diff --git a/userdefs.h b/userdefs.h
index be1dbfe8..07c4617d 100644
--- a/userdefs.h
+++ b/userdefs.h
@@ -1360,11 +1360,11 @@
  * the version definition with the Project Version on checkout.  Just
  * ignore it. - kw */
 /* $Format: "#define LYNX_VERSION \"$ProjectVersion$\""$ */
-#define LYNX_VERSION "2.8.6pre.2"
+#define LYNX_VERSION "2.8.6pre.3"
 #define LYNX_WWW_HOME "http://lynx.isc.org/"
 #define LYNX_WWW_DIST "http://lynx.isc.org/current/"
 /* $Format: "#define LYNX_DATE \"$ProjectDate$\""$ */
-#define LYNX_DATE "Sun, 03 Sep 2006 16:25:39 -0700"
+#define LYNX_DATE "Sun, 10 Sep 2006 16:38:39 -0700"
 #define LYNX_DATE_OFF 5		/* truncate the automatically-generated date */
 #define LYNX_DATE_LEN 11	/* truncate the automatically-generated date */