about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--CHANGES36
-rw-r--r--LYMessages_en.h4
-rw-r--r--WWW/Library/Implementation/HTAABrow.c4
-rw-r--r--WWW/Library/Implementation/HTTCP.c17
-rw-r--r--WWW/Library/Implementation/SGML.c78
-rw-r--r--WWW/Library/djgpp/makefile1
-rw-r--r--aclocal.m42
-rwxr-xr-xconfigure2
-rw-r--r--lynx.cfg15
-rw-r--r--lynx.hlp3
-rw-r--r--lynx.man3
-rw-r--r--lynx_help/Lynx_users_guide.html8
-rw-r--r--makefile.in7
-rw-r--r--src/GridText.c6
-rw-r--r--src/HTML.c24
-rw-r--r--src/LYCurses.c16
-rw-r--r--src/LYMail.c18
-rw-r--r--src/LYMain.c23
-rw-r--r--src/LYPrint.c54
-rw-r--r--userdefs.h6
-rw-r--r--utils/lpansi/Makefile24
-rw-r--r--utils/lpansi/README82
-rw-r--r--utils/lpansi/lpansi.177
-rw-r--r--utils/lpansi/lpansi.c160
-rw-r--r--utils/lpansi/vmsbuild.com73
25 files changed, 238 insertions, 505 deletions
diff --git a/CHANGES b/CHANGES
index e69feab6..53ea67af 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,38 @@
 Changes since Lynx 2.8 release
 ================================================================================
 
+1998-04-18 (2.8.1dev.6)
+* correct misplaced ifdef in LYMail.c, which caused Cc to not work (patch
+  by LE).
+* convert \x escapes to octal form (reported by Claude Soma). - TD
+* modify configure script to check for cursesX before curses library, for
+  ultrix 4.3 (reported by Claude Soma <soma_c@decus.fr>). - TD
+* incorporate lpansi into LYPrint.c (patch by HN).
+* modify top-level makefile to use INSTALL_PROGRAM and INSTALL_DATA
+  consistently, rather than installbin and installdoc (reported by
+  <karl@deas.harvard.edu>).  - TD
+* modify treatment of -auth and -pauth options to allow setting a blank
+  password, e.g., -pauth=user:  specifies a blank password, and -pauth=user
+  leaves the password unspecified (patch by Frederick P Herrmann
+  <fph@tiac.net>).
+* Change documentation to indicate "Lynx.trace" file rather than "lynx.trace".
+* Change default for USE_TRACE_LOG in userdefs.h to TRUE, to make behavior
+  consistent with 2.7.2 - TD
+* Rename no_color_video symbol in LYCurses.c to NoColorVideo, to avoid conflict
+  with term.h, which is included by curses.h on some systems (reported by Paul
+  Gilmartin). - TD
+* modify include-path in djgpp makefile to avoid conflicting tcp.h - DK
+* Add -tagsoup option, for initializing parser directly to TagSoup. - TD
+* Modify HTML.c, ifdef'ing some of the logic involved in unstacking tags.  It
+  appears to be not completely necessary:  makes Lynx a little faster, at the
+  cost of making the tagsoup parser do the wrong thing.  Some entries in the
+  tagsoup DTD table versus the sortasgml table have SGML_EMPTY versus
+  SGML_MIXED.  This information is used to control unstacking (in the
+  color-style configuration as well).  There is still a problem evidenced
+  when toggling between the two parsers in the Lynx main help page, but that
+  appears to be missing logic in 2.8's version of the tagsoup parser.  - TD
+* Modify HTTCP.c to check the length returned from gethostbyname(), which
+  returns 0 on error on a SunOS 4 system (reported by Paul Gilmartin). - TD
 1998-03-29 (2.8.1dev.5)
 * Fixed my typo for FNAMES_8_3 define. WB
 * Added SYSTEM_MAIL and SYSTEM_MAIL_FLAGS defines for DOSPATH target. WB
@@ -12,8 +44,8 @@ Changes since Lynx 2.8 release
 1998-03-25 (2.8.1dev.4)
 * restore original string in LYUtils.c when user enters a badly formed or
   nonexistent URL when prompted for Goto/history list (patch by Randall
-  <hezekiah@may98.rahul.net>).  Otherwise Lynx would always attempt to load
-  a local file.
+  <hezekiah@may98.rahul.net>).  Otherwise Lynx would always attempt to load a
+  local file if the original string omits scheme:// prefix but guessing fails.
 * tweak formatting of .message in HTFTP.c so it has leading/trailing blank
   lines (patch by Ismael Cordeiro <ismael@CAM.ORG>)
 * retested 'make depend' rule (for Larry Virden) - TD
diff --git a/LYMessages_en.h b/LYMessages_en.h
index 0ceb1273..1f9d923a 100644
--- a/LYMessages_en.h
+++ b/LYMessages_en.h
@@ -460,6 +460,8 @@
 #define PRESS_RETURN_TO_FINISH "Press <return> to finish: "
 #define CONFIRM_LONG_PAGE_PRINT \
  "File is %d pages long.  Are you sure you want to print? [y]"
+#define CHECK_PRINTER \
+ "Be sure your printer is on-line.  Press <return> to start printing:"
 #define FILE_ALLOC_FAILED "ERROR - Unable to allocate file space!!!"
 #define UNABLE_TO_OPEN_TEMPFILE "Unable to open tempfile"
 #define UNABLE_TO_OPEN_PRINTOP_FILE "Unable to open print options file"
@@ -562,7 +564,7 @@
  "Maximum links per page exceeded!  Use half-page or two-line scrolling."
 #define MAXHIST_REACHED \
  "History List maximum reached!  Document not pushed."
-#define VISITED_LINKS_EMPTY "No previously visited links available!" 
+#define VISITED_LINKS_EMPTY "No previously visited links available!"
 #define MEMORY_EXHAUSTED_ABORT "Memory exhausted!  Program aborted!"
 #define DFM_NOT_AVAILABLE "Directory/File Manager not available"
 #define BASE_NOT_ABSOLUTE "HREF in BASE tag is not an absolute URL."
diff --git a/WWW/Library/Implementation/HTAABrow.c b/WWW/Library/Implementation/HTAABrow.c
index 4082d96a..38c6ca50 100644
--- a/WWW/Library/Implementation/HTAABrow.c
+++ b/WWW/Library/Implementation/HTAABrow.c
@@ -603,7 +603,7 @@ PRIVATE char *compose_auth_string ARGS3(
     realm = HTAARealm_lookup(setup->server->realms, realmname);
     if (!(realm &&
     	  realm->username && *realm->username &&
-	  realm->password && *realm->password) || setup->retry) {
+	  realm->password) || setup->retry) { 
 	if (!realm) {
 	    if (TRACE)
 	        fprintf(stderr, "%s `%s' %s\n",
@@ -675,7 +675,7 @@ PRIVATE char *compose_auth_string ARGS3(
 	     *  Signals to retry. - FM
 	     */
 	    return NULL;
-	} else if (*realm->username == '\0' || *realm->password == '\0') {
+	} else if (*realm->username == '\0') { 
 	    /*
 	     *  Signals to abort. - FM
 	     */
diff --git a/WWW/Library/Implementation/HTTCP.c b/WWW/Library/Implementation/HTTCP.c
index daf37411..9749e530 100644
--- a/WWW/Library/Implementation/HTTCP.c
+++ b/WWW/Library/Implementation/HTTCP.c
@@ -30,6 +30,8 @@
 
 #define FREE(x) if (x) {free(x); x = NULL;}
 
+#define OK_HOST(p) ((p) != 0 && (p->h_length) != 0)
+
 extern int HTCheckForInterrupt NOPARAMS;
 
 #ifdef SVR4_BSDSELECT
@@ -456,14 +458,13 @@ PUBLIC int HTParseInet ARGS2(
 		/*
 		**  Return value (or nulls).
 		*/
-		if (phost != NULL)
+		if (OK_HOST(phost)) {
 		    write(pfd[1], phost->h_addr, phost->h_length);
-		else
+		    _exit(0);
+		} else {
 		    write(pfd[1], &cst1, 4);
-		/*
-		**  Return an error code.
-		*/
-		_exit(phost == NULL);
+		    _exit(1);	/* return an error code */
+		}
 	    }
 
 	    /*
@@ -541,7 +542,7 @@ PUBLIC int HTParseInet ARGS2(
 			"             Trying again without forking.\n");
 		}
 		phost = gethostbyname(host);	/* See netdb.h */
-		if (!phost) {
+		if (!OK_HOST(phost)) {
 		    if (TRACE) {
 			fprintf(stderr,
 			 "HTParseInet: Can't find internet node name `%s'.\n",
@@ -727,7 +728,7 @@ PRIVATE void get_host_details NOARGS
 #ifndef DECNET	/* Decnet ain't got no damn name server 8#OO */
 #ifdef NEED_HOST_ADDRESS		/* no -- needs name server! */
     phost = gethostbyname(name);	/* See netdb.h */
-    if (!phost) {
+    if (!OK_HOST(phost)) {
 	if (TRACE) fprintf(stderr,
 		"TCP: Can't find my own internet node address for `%s'!!\n",
 		name);
diff --git a/WWW/Library/Implementation/SGML.c b/WWW/Library/Implementation/SGML.c
index 91c1b00d..90210c13 100644
--- a/WWW/Library/Implementation/SGML.c
+++ b/WWW/Library/Implementation/SGML.c
@@ -3296,19 +3296,69 @@ PUBLIC void JISx0201TO0208_EUC ARGS4(
 	register unsigned char *,	OLO)
 {
     static char *table[] = {
-	"\xA1\xA3", "\xA1\xD6", "\xA1\xD7", "\xA1\xA2", "\xA1\xA6", "\xA5\xF2",
-	"\xA5\xA1", "\xA5\xA3", "\xA5\xA5", "\xA5\xA7", "\xA5\xA9",
-	"\xA5\xE3", "\xA5\xE5", "\xA5\xE7", "\xA5\xC3", "\xA1\xBC",
-	"\xA5\xA2", "\xA5\xA4", "\xA5\xA6", "\xA5\xA8", "\xA5\xAA",
-	"\xA5\xAB", "\xA5\xAD", "\xA5\xAF", "\xA5\xB1", "\xA5\xB3",
-	"\xA5\xB5", "\xA5\xB7", "\xA5\xB9", "\xA5\xBB", "\xA5\xBD",
-	"\xA5\xBF", "\xA5\xC1", "\xA5\xC4", "\xA5\xC6", "\xA5\xC8",
-	"\xA5\xCA", "\xA5\xCB", "\xA5\xCC", "\xA5\xCD", "\xA5\xCE",
-	"\xA5\xCF", "\xA5\xD2", "\xA5\xD5", "\xA5\xD8", "\xA5\xDB",
-	"\xA5\xDE", "\xA5\xDF", "\xA5\xE0", "\xA5\xE1", "\xA5\xE2",
-	"\xA5\xE4", "\xA5\xE6", "\xA5\xE8", "\xA5\xE9", "\xA5\xEA",
-	"\xA5\xEB", "\xA5\xEC", "\xA5\xED", "\xA5\xEF", "\xA5\xF3",
-	"\xA1\xAB", "\xA1\xAC"
+	"\241\243",	/* A1,A3 */
+	"\241\326",	/* A1,D6 */
+	"\241\327",	/* A1,D7 */
+	"\241\242",	/* A1,A2 */
+	"\241\246",	/* A1,A6 */
+	"\245\362",	/* A5,F2 */
+	"\245\241",	/* A5,A1 */
+	"\245\243",	/* A5,A3 */
+	"\245\245",	/* A5,A5 */
+	"\245\247",	/* A5,A7 */
+	"\245\251",	/* A5,A9 */
+	"\245\343",	/* A5,E3 */
+	"\245\345",	/* A5,E5 */
+	"\245\347",	/* A5,E7 */
+	"\245\303",	/* A5,C3 */
+	"\241\274",	/* A1,BC */
+	"\245\242",	/* A5,A2 */
+	"\245\244",	/* A5,A4 */
+	"\245\246",	/* A5,A6 */
+	"\245\250",	/* A5,A8 */
+	"\245\252",	/* A5,AA */
+	"\245\253",	/* A5,AB */
+	"\245\255",	/* A5,AD */
+	"\245\257",	/* A5,AF */
+	"\245\261",	/* A5,B1 */
+	"\245\263",	/* A5,B3 */
+	"\245\265",	/* A5,B5 */
+	"\245\267",	/* A5,B7 */
+	"\245\271",	/* A5,B9 */
+	"\245\273",	/* A5,BB */
+	"\245\275",	/* A5,BD */
+	"\245\277",	/* A5,BF */
+	"\245\301",	/* A5,C1 */
+	"\245\304",	/* A5,C4 */
+	"\245\306",	/* A5,C6 */
+	"\245\310",	/* A5,C8 */
+	"\245\312",	/* A5,CA */
+	"\245\313",	/* A5,CB */
+	"\245\314",	/* A5,CC */
+	"\245\315",	/* A5,CD */
+	"\245\316",	/* A5,CE */
+	"\245\317",	/* A5,CF */
+	"\245\322",	/* A5,D2 */
+	"\245\325",	/* A5,D5 */
+	"\245\330",	/* A5,D8 */
+	"\245\333",	/* A5,DB */
+	"\245\336",	/* A5,DE */
+	"\245\337",	/* A5,DF */
+	"\245\340",	/* A5,E0 */
+	"\245\341",	/* A5,E1 */
+	"\245\342",	/* A5,E2 */
+	"\245\344",	/* A5,E4 */
+	"\245\346",	/* A5,E6 */
+	"\245\350",	/* A5,E8 */
+	"\245\351",	/* A5,E9 */
+	"\245\352",	/* A5,EA */
+	"\245\353",	/* A5,EB */
+	"\245\354",	/* A5,EC */
+	"\245\355",	/* A5,ED */
+	"\245\357",	/* A5,EF */
+	"\245\363",	/* A5,F3 */
+	"\241\253",	/* A1,AB */
+	"\241\254"	/* A1,AC */
     };
 
     if ((IHI == 0x8E) && (ILO >= 0xA1) && (ILO <= 0xDF)) {
@@ -3377,7 +3427,7 @@ PUBLIC void JISx0201TO0208_SJIS ARGS3(
 {
     unsigned char SJCODE[2];
 
-    JISx0201TO0208_EUC('\x8E', I, OHI, OLO);
+    JISx0201TO0208_EUC('\216', I, OHI, OLO);
     JIS_TO_SJIS1(*OHI&0x7F, *OLO&0x7F, SJCODE);
     *OHI = SJCODE[0];
     *OLO = SJCODE[1];
diff --git a/WWW/Library/djgpp/makefile b/WWW/Library/djgpp/makefile
index 87a9a103..5e1783e6 100644
--- a/WWW/Library/djgpp/makefile
+++ b/WWW/Library/djgpp/makefile
@@ -8,6 +8,7 @@ WWW_MACH = djgpp
 #ASIS_MACH = hardware/os
 
 CFLAGS = -O3 -DUSE_ZLIB -DDOSPATH -DNOUSERS -DDEBUG \
+-I../implemen \
 -I../../../djgpp/tcplib/include \
 -I../../../djgpp/tcplib/include/tcp \
 -I../../../src \
diff --git a/aclocal.m4 b/aclocal.m4
index dfd05a1a..b4c7f6ae 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -304,7 +304,7 @@ if test ".$ac_cv_func_initscr" != .yes ; then
 
 	# Check for library containing initscr
 	test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
-	for cf_curs_lib in curses ncurses xcurses cursesX jcurses unknown
+	for cf_curs_lib in cursesX curses ncurses xcurses jcurses unknown
 	do
 		AC_CHECK_LIB($cf_curs_lib,initscr,[break])
 	done
diff --git a/configure b/configure
index b31e4ed4..ab0cabe7 100755
--- a/configure
+++ b/configure
@@ -3634,7 +3634,7 @@ fi
 
 	# Check for library containing initscr
 	test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
-	for cf_curs_lib in curses ncurses xcurses cursesX jcurses unknown
+	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:3641: checking for initscr in -l$cf_curs_lib" >&5
diff --git a/lynx.cfg b/lynx.cfg
index 500da747..cff38277 100644
--- a/lynx.cfg
+++ b/lynx.cfg
@@ -371,13 +371,13 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html
 #SHOW_CURSOR:FALSE
 
 # VERBOSE_IMAGES controls whether or not Lynx replaces the [LINK], [INLINE] and
-# [IMAGE] comments (for images without ALT) with filenames of these images. 
+# [IMAGE] comments (for images without ALT) with filenames of these images.
 # This is extremely useful because now we can determine immediately what images
-# are just decorations (button.gif, line.gif) and what images are important. 
-# 
-# If this option is set here, it will override the setting in userdefs.h. 
-#VERBOSE_IMAGES:FALSE 
- 
+# are just decorations (button.gif, line.gif) and what images are important.
+#
+# If this option is set here, it will override the setting in userdefs.h.
+#VERBOSE_IMAGES:FALSE
+
 # If BOLD_HEADERS is set to TRUE the HT_BOLD default style will be acted
 # upon for <H1> through <H6> headers.  The compilation default is FALSE
 # (only the indentation styles are acted upon, but see BOLD_H1, below).
@@ -964,9 +964,6 @@ DEFAULT_INDEX_FILE:http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html
 #PRINTER:Office printer:lpr -POffprt %s:TRUE
 #PRINTER:VMS printer:print /queue=cc$print %s:FALSE:58
 #PRINTER:Busy VMS printer:@Lynx_Dir\:VMSPrint sys$print %s:FALSE:58
-#  Check out the lpansi program in utils/ for printing on vt100
-#  attached printers.
-#PRINTER:Use vt100 print sequence to print from your local terminal:lpansi %s:TRUE
 #  Don't use the following printer on anonymous accounts since
 #  allowing shell input is very dangerous.
 #PRINTER:Specify your own print command:echo -n "Enter a print command\: "; read word; sh -c "$word %s":FALSE
diff --git a/lynx.hlp b/lynx.hlp
index 895e421f..5b591082 100644
--- a/lynx.hlp
+++ b/lynx.hlp
@@ -372,6 +372,9 @@
   -startfile_ok
        allow non-http startfile and homepage with -validate.
 
+  -tagsoup
+       initialize parser, using Tag Soup DTD rather than SortaSGML.
+
   -telnet
        disable recognition of telnet commands.
 
diff --git a/lynx.man b/lynx.man
index 7ae40c47..ecfc44d5 100644
--- a/lynx.man
+++ b/lynx.man
@@ -457,6 +457,9 @@ formatted text.
 .B -startfile_ok
 allow non-http startfile and homepage with -validate.
 .TP
+.B -tagsoup
+initialize parser, using Tag Soup DTD rather than SortaSGML.
+.TP
 .B -telnet
 disable recognition of telnet commands.
 .TP
diff --git a/lynx_help/Lynx_users_guide.html b/lynx_help/Lynx_users_guide.html
index 49cec8d3..b5e5cd5d 100644
--- a/lynx_help/Lynx_users_guide.html
+++ b/lynx_help/Lynx_users_guide.html
@@ -1096,7 +1096,7 @@ commands.
 	    document's author.
    <dt><em>;</em>
 	<dd>The <em>;</em> command shows the <em>Lynx Trace Log</em>
-	    (<em>lynx.trace</em> in the home directory) if one has been
+	    (<em>Lynx.trace</em> in the home directory) if one has been
 	    started for the current session.  If a log has not been started,
 	    any trace and other stderr messages will be sent to the screen
 	    (and will disturb the normal display) unless the system supports
@@ -2174,6 +2174,8 @@ where
 	     <dt><code>-startfile_ok</code>
 		<dd>allow non-http startfile and homepage with
 		    <em>-validate</em>.
+	     <dt><code>-tagsoup</code>
+		<dd>initialize DTD with "TagSoup" tables.
 	     <dt><code>-telnet</code>
 		<dd>disable recognition of telnet commands.
 	     <dt><code>-term=TERM</code>
@@ -2183,7 +2185,7 @@ where
 		    a script that, in turn, starts another Lynx process.)
 	     <dt><code>-tlog</code>
 		<dd>toggles use of a <em>Lynx Trace Log</em> for the current
-		    session.  The log is named <em>lynx.trace</em> and is
+		    session.  The log is named <em>Lynx.trace</em> and is
 		    created in the home directory when Lynx trace mode is
 		    turned on via the <em>-trace</em> command line switch
 		    (see below), or via the TOGGLE_TRACE (<em>Control-T</em>)
@@ -2194,7 +2196,7 @@ where
 		    keystroke command.
 	     <dt><code>-trace</code>
 		<dd>turns on Lynx trace mode.  If a Lynx Trace Log
-		    (<em>lynx.trace</em> in the home directory) has
+		    (<em>Lynx.trace</em> in the home directory) has
 		    been started for the current session, all trace and
 		    other stderr messages are written to that log, and
 		    can be examined during the session via the TRACE_LOG
diff --git a/makefile.in b/makefile.in
index ffe0dafe..e4f4070b 100644
--- a/makefile.in
+++ b/makefile.in
@@ -39,9 +39,6 @@ libdir= @libdir@
 ## Where you want the help-files installed
 helpdir= @libdir@/lynx_help
 
-installbin= @INSTALL_PROGRAM@ -s -m 755
-installdoc= @INSTALL_DATA@
-
 ##set the relative location of the WWW library Implementation directory,
 ##from this directory
 ##do not set this to be an absolute path!!!
@@ -247,10 +244,10 @@ install: lynx$x install-bin install-man install-cfg @INSTALL_LSS@
 
 install-bin: $(bindir)
 	-mv -f $(bindir)/lynx$x $(bindir)/lynx.old
-	$(installbin) lynx$x $(bindir)/
+	$(INSTALL_PROGRAM) lynx$x $(bindir)/
 
 install-man : $(mandir) 
-	$(installdoc) $(srcdir)/lynx.man $(mandir)/lynx.1
+	$(INSTALL_DATA) $(srcdir)/lynx.man $(mandir)/lynx.1
 
 install-help : $(helpdir)
 	(cd $(helpdir) && rm -rf *)
diff --git a/src/GridText.c b/src/GridText.c
index 0e489dbb..fcbe065e 100644
--- a/src/GridText.c
+++ b/src/GridText.c
@@ -755,7 +755,7 @@ PRIVATE int display_line ARGS2(
 	while (current_style < line->numstyles &&
 	       i >= CStyle.horizpos + line->offset + 1)
 	{
-		(void) LynxChangeStyle (CStyle.style,CStyle.direction,CStyle.previous);
+		LynxChangeStyle (CStyle.style,CStyle.direction,CStyle.previous);
 		current_style++;
 	}
 #endif
@@ -884,7 +884,7 @@ PRIVATE int display_line ARGS2(
 #else
     while (current_style < line->numstyles)
     {
-	(void) LynxChangeStyle (CStyle.style, CStyle.direction, CStyle.previous);
+	LynxChangeStyle (CStyle.style, CStyle.direction, CStyle.previous);
 	current_style++;
     }
 #undef CStyle
@@ -2189,7 +2189,7 @@ PUBLIC void HText_appendCharacter ARGS2(
 		    text->kanji_buf = '\0';
 		    return;
 		} else {
-		    text->kanji_buf = '\x8E';
+		    text->kanji_buf = '\216';
 		    ch |= 0200;
 		}
 		break;
diff --git a/src/HTML.c b/src/HTML.c
index c456d6e5..29eb130a 100644
--- a/src/HTML.c
+++ b/src/HTML.c
@@ -11,6 +11,8 @@
 **   Being Overidden
 **
 */
+#define DICKEY_TEST
+
 #include <HTUtils.h>
 #include <tcp.h>
 
@@ -64,6 +66,8 @@ char Style_className[16384];
 
 #define FREE(x) if (x) {free(x); x = NULL;}
 
+#define STACKLEVEL(me) ((me->stack + MAX_NESTING - 1) - me->sp)
+
 extern BOOL HTPassEightBitRaw;
 extern HTCJKlang HTCJK;
 
@@ -5223,7 +5227,10 @@ PRIVATE void HTML_start_element ARGS6(
 
     } /* end switch */
 
-    if (HTML_dtd.tags[ElementNumber].contents != SGML_EMPTY) {
+#if defined(DICKEY_TEST)
+    if (HTML_dtd.tags[ElementNumber].contents != SGML_EMPTY)
+#endif
+    {
 	if (me->skip_stack > 0) {
 	    if (TRACE)
 		fprintf(stderr,
@@ -5247,16 +5254,16 @@ PRIVATE void HTML_start_element ARGS6(
 	    return;
 	}
 
+	if (TRACE)
+	    fprintf(stderr,"HTML:begin_element[%d]: adding style to stack - %s\n",
+	    						STACKLEVEL(me),
+							me->new_style->name);
 	(me->sp)--;
 	me->sp[0].style = me->new_style;	/* Stack new style */
 	me->sp[0].tag_number = ElementNumber;
-
-	if (TRACE)
-	    fprintf(stderr,"HTML:begin_element: adding style to stack - %s\n",
-							me->new_style->name);
     }
 
-#if defined(USE_COLOR_STYLE)
+#if defined(DICKEY_TEST) && defined(USE_COLOR_STYLE)
 /* end empty tags straight away */
 	if (HTML_dtd.tags[ElementNumber].contents == SGML_EMPTY)
 	{
@@ -5421,7 +5428,8 @@ PRIVATE void HTML_end_element ARGS3(
 	    (me->sp)++;
 	    if (TRACE)
 		fprintf(stderr,
-			"HTML:end_element: Popped style off stack - %s\n",
+			"HTML:end_element[%d]: Popped style off stack - %s\n",
+	    		STACKLEVEL(me),
 			me->sp->style->name);
 	} else {
 	    if (TRACE)
@@ -6689,7 +6697,9 @@ End_Object:
 	    fprintf(stderr, "CSS:%s (trimmed %s, END_ELEMENT)\n", Style_className, tmp);
     }
 
+#if defined(DICKEY_TEST)
     if (HTML_dtd.tags[element_number].contents != SGML_EMPTY)
+#endif
     {
 	if (TRACE)
 	    fprintf(stderr, "STYLE:end_element: ending non-EMPTY style\n");
diff --git a/src/LYCurses.c b/src/LYCurses.c
index 00458ff9..1fba3f69 100644
--- a/src/LYCurses.c
+++ b/src/LYCurses.c
@@ -300,7 +300,7 @@ PUBLIC void setHashStyle ARGS5(int,style,int,color,int,cattr,int,mono,char*,elem
 PRIVATE int LYAttrset ARGS3(WINDOW*,win,int,color,int,mono)
 {
 	if (TRACE)
-		fprintf(stderr, "CSS:LYAttrset (%d, %d)\n", color, mono);
+		fprintf(stderr, "CSS:LYAttrset (%#x, %#x)\n", color, mono);
 	if (lynx_has_color && LYShowColor >= SHOW_COLOR_ON && color > -1)
 	{
 		wattrset(win,color);
@@ -475,7 +475,7 @@ PRIVATE void LYsetWAttr ARGS1(WINDOW *, win)
 	int attr = A_NORMAL;
 	int offs = 1;
 	static int have_underline = -1;
-	static int no_color_video = -1;
+	static int NoColorVideo = -1;
 
 	if (have_underline < 0) {
 #ifndef DOSPATH
@@ -486,11 +486,11 @@ PRIVATE void LYsetWAttr ARGS1(WINDOW *, win)
 	}
 
 #if ( !defined(__DJGPP__) && !defined(_WINDOWS) )
-	if (no_color_video < 0) {
-		no_color_video = tigetnum("ncv");
+	if (NoColorVideo < 0) {
+		NoColorVideo = tigetnum("ncv");
 	}
-	if (no_color_video < 0)
-		no_color_video = 0;
+	if (NoColorVideo < 0)
+		NoColorVideo = 0;
 #endif /* !__DJGPP__ and !_WINDOWS */
 
 	if (Current_Attr & A_BOLD)
@@ -505,11 +505,11 @@ PRIVATE void LYsetWAttr ARGS1(WINDOW *, win)
 	 * FIXME:  no_color_video isn't implemented (97/4/14) in ncurses 4.x,
 	 * but may be in SVr4 (which would make this redundant for the latter).
 	 */
-	if ((Current_Attr & A_BOLD) && !(no_color_video & 33)) {
+	if ((Current_Attr & A_BOLD) && !(NoColorVideo & 33)) {
 		attr |= A_BOLD;
 	}
 
-	if ((Current_Attr == A_UNDERLINE) && !(no_color_video & 2)) {
+	if ((Current_Attr == A_UNDERLINE) && !(NoColorVideo & 2)) {
 		attr |= A_UNDERLINE;
 	}
 
diff --git a/src/LYMail.c b/src/LYMail.c
index f3a69290..1b49c2aa 100644
--- a/src/LYMail.c
+++ b/src/LYMail.c
@@ -575,6 +575,12 @@ PUBLIC void mailmsg ARGS4(
     char hdrfile[256];
     FILE *hfd;
 
+    if(TRACE)
+	fprintf(stderr,"mailmsg(%d, \"%s\", \"%s\", \"%s\")\n",cur,
+	cur, owner_address?owner_address:"<nil>",
+	filename?filename:"<nil>",
+	linkname?linkname:"<nil>");
+
     if (!strncasecomp(system_mail, "PMDF SEND", 9)) {
 	isPMDF = TRUE;
     }
@@ -870,6 +876,12 @@ PUBLIC void reply_by_mail ARGS3(
     char hdrfile[256];
     FILE *hfd;
 
+    if(TRACE)
+	fprintf(stderr,"reply_by_mail(\"%s\", \"%s\", \"%s\")\n",
+	mail_address?mail_address:"<nil>",
+	filename?filename:"<nil>",
+	title?tilde:"<nil>");
+
     if (!strncasecomp(system_mail, "PMDF SEND", 9)) {
 	isPMDF = TRUE;
     }
@@ -1466,7 +1478,7 @@ PUBLIC void reply_by_mail ARGS3(
 	addstr("\n");
     }
     remove_tildes(user_input);
-#if defined (VMS) || defined (DOSPATH)
+
     if (*user_input) {
 	cp = user_input;
 	while (*cp == ',' || isspace((unsigned char)*cp))
@@ -1480,7 +1492,7 @@ PUBLIC void reply_by_mail ARGS3(
 	    }
 	}
     }
-#endif
+
 #ifdef DOSPATH
     if (*address) {
 	sprintf(buf, "To: %s\n", address);
@@ -1514,6 +1526,8 @@ PUBLIC void reply_by_mail ARGS3(
     StrAllocCat(header, buf);
 #endif /* !VMS */
 
+    if(TRACE)
+	fprintf(stderr,"**header==\n%s",header);
     if (!no_editor && editor && *editor != '\0') {
 	/*
 	 *  Use an external editor for the message.
diff --git a/src/LYMain.c b/src/LYMain.c
index f34be98d..9f39c5db 100644
--- a/src/LYMain.c
+++ b/src/LYMain.c
@@ -1786,6 +1786,7 @@ PRIVATE void parse_arg ARGS3(
 	int *,		i,
 	int,		argc)
 {
+    static int ignored;
     char *cp;
 #ifndef VMS
     static char display_putenv_command[142];
@@ -1884,10 +1885,8 @@ PRIVATE void parse_arg ARGS3(
 	if (auth_info != NULL)	{
 	    if ((cp = strchr(auth_info, ':')) != NULL) {	/* Pw */
 		*cp++ = '\0';	/* Terminate ID */
-		if (*cp) {
-		    HTUnEscape(cp);
-		    StrAllocCopy(authentication_info[1], cp);
-		}
+		HTUnEscape(cp); 
+		StrAllocCopy(authentication_info[1], cp); 
 	    }
 	    if (*auth_info) {					/* Id */
 		HTUnEscape(auth_info);
@@ -1960,7 +1959,7 @@ PRIVATE void parse_arg ARGS3(
 	 *  so just check whether we need to increment i
 	 */
 	if (nextarg)
-	    ; /* do nothing */
+	    ignored++; /* do nothing */
 
     } else if (strncmp(argv[0], "-child", 6) == 0) {
 	child_lynx = TRUE;
@@ -2227,7 +2226,7 @@ PRIVATE void parse_arg ARGS3(
 	 *  so just check whether we need to increment i
 	 */
 	if (nextarg)
-	    ; /* do nothing */
+	    ignored++; /* do nothing */
 #endif
 
     } else {
@@ -2356,10 +2355,8 @@ PRIVATE void parse_arg ARGS3(
 	if (pauth_info != NULL)  {
 	    if ((cp = strchr(pauth_info, ':')) != NULL) {	/* Pw */
 		*cp++ = '\0';	/* Terminate ID */
-		if (*cp) {
-		    HTUnEscape(cp);
-		    StrAllocCopy(proxyauth_info[1], cp);
-		}
+		HTUnEscape(cp); 
+		StrAllocCopy(proxyauth_info[1], cp); 
 	    }
 	    if (*pauth_info) {					/* Id */
 		HTUnEscape(pauth_info);
@@ -2574,7 +2571,10 @@ PRIVATE void parse_arg ARGS3(
     break;
 
     case 't':
-    if (strncmp(argv[0], "-telnet", 7) == 0) {
+    if (strncmp(argv[0], "-tagsoup", 8) == 0) {
+        HTSwitchDTD(New_DTD = NO);
+
+    } else if (strncmp(argv[0], "-telnet", 7) == 0) {
 	telnet_ok = FALSE;
 
     } else if (strncmp(argv[0], "-term", 5) == 0) {
@@ -2800,6 +2800,7 @@ Output_Help_List:
 ,"    -syslog=text     information for syslog call"
 #endif /* SYSLOG_REQUESTED_URLS */
 #endif /* !VMS */
+,"    -tagsoup         use TagSoup rather than SortaSGML parser"
 ,"    -telnet          disable telnets"
 ,"    -term=TERM       set terminal type to TERM"
 ,"    -tlog            toggles use of a Lynx Trace Log for the current session"
diff --git a/src/LYPrint.c b/src/LYPrint.c
index 2ad75810..76018a56 100644
--- a/src/LYPrint.c
+++ b/src/LYPrint.c
@@ -38,13 +38,30 @@
  *  LYNXPRINT://LOCAL_FILE/lines=##
  *  LYNXPRINT://MAIL_FILE/lines=##
  *  LYNXPRINT://TO_SCREEN/lines=##
+ *  LYNXPRINT://LPANSI/lines=##
  *  LYNXPRINT://PRINTER/lines=##/number=#
  */
 
 #define TO_FILE   1
 #define TO_SCREEN 2
-#define MAIL	  3
-#define PRINTER   4
+/*
+ * "lpansi.c"
+ * Original author: Gary Day (gday@comp.uark.edu), 11/30/93
+ * Current version: 2.1 by Noel Hunter (noel@wfu.edu), 10/20/94
+ *
+ * Basic structure based on print -- format files for printing from
+ * _Practical_C_Programming by Steve Oualline, O'Reilly & Associates
+ *
+ * adapted from the README for lpansi.c v2.1, dated 10/20/1994:
+ *		    Print to ANSI printer on local terminal
+ *     The VT100 standard defines printer on and off escape sequences,
+ *     esc[5i is printer on, and esc[4i is printer off.
+ *
+ * incorporate the idea of "lpansi" directly into LYPrint.c - HN
+ */
+#define LPANSI    3
+#define MAIL      4
+#define PRINTER   5
 
 #ifdef VMS
 PRIVATE int remove_quotes PARAMS((char *string));
@@ -62,6 +79,7 @@ PUBLIC int printfile ARGS1(
     int printer_number = 0;
     int pages = 0;
     int type = 0, c, len;
+    BOOLEAN Lpansi = FALSE;
     FILE *outfile_fp;
     char *cp = NULL;
     lynx_printer_item_type *cur_printer;
@@ -196,6 +214,9 @@ PUBLIC int printfile ARGS1(
 	type = TO_FILE;
     } else if (strstr(link_info, "TO_SCREEN")) {
 	type = TO_SCREEN;
+    } else if (strstr(link_info, "LPANSI")) {
+	Lpansi = TRUE;
+	type = TO_SCREEN;
     } else if (strstr(link_info, "MAIL_FILE")) {
 	type = MAIL;
     } else if (strstr(link_info, "PRINTER")) {
@@ -882,7 +903,7 @@ PUBLIC int printfile ARGS1(
 		if (pages > 4) {
 		    sprintf(filename, CONFIRM_LONG_SCREEN_PRINT, pages);
 		    _statusline(filename);
-		    c=LYgetch();
+		    c = LYgetch();
 #ifdef VMS
 		    if (HadVMSInterrupt) {
 			HadVMSInterrupt = FALSE;
@@ -901,7 +922,11 @@ PUBLIC int printfile ARGS1(
 		    }
 		}
 
-		_statusline(PRESS_RETURN_TO_BEGIN);
+		if (Lpansi) {
+		      _statusline(CHECK_PRINTER);
+		} else	{
+		      _statusline(PRESS_RETURN_TO_BEGIN);
+		}
 		*filename = '\0';
 		if (LYgetstr(filename, VISIBLE,
 			     sizeof(filename), NORECALL) < 0) {
@@ -930,6 +955,8 @@ PUBLIC int printfile ARGS1(
 			    "<!-- X-URL: %s -->\n<BASE HREF=\"%s\">\n\n",
 			    newdoc->address, content_base);
 		}
+		if (Lpansi)
+		    printf("\033[5i");
 		print_wwwfile_to_fd(outfile_fp, 0);
 		if (keypad_mode)
 		    printlist(outfile_fp, FALSE);
@@ -941,13 +968,18 @@ PUBLIC int printfile ARGS1(
 		     break;
 		}
 #endif /* VMS */
-		fprintf(stdout,"\n\n%s", PRESS_RETURN_TO_FINISH);
-
-		fflush(stdout);  /* refresh to screen */
-		LYgetch();  /* grab some user input to pause */
+		if (Lpansi) {
+		     printf("\n\014");  /* Form feed */
+		     printf("\033[4i");
+		     Lpansi = FALSE;
+		} else {
+		     fprintf(stdout,"\n\n%s", PRESS_RETURN_TO_FINISH);
+		     LYgetch();  /* grab some user input to pause */
 #ifdef VMS
-		HadVMSInterrupt = FALSE;
+		     HadVMSInterrupt = FALSE;
 #endif /* VMS */
+		}
+		fflush(stdout);  /* refresh to screen */
 		start_curses();
 		break;
 
@@ -1275,6 +1307,7 @@ PRIVATE int remove_quotes ARGS1(
  * printer links look like
  *  LYNXPRINT://LOCAL_FILE/lines=#	     print to a local file
  *  LYNXPRINT://TO_SCREEN/lines=#	     print to the screen
+ *  LYNXPRINT://LPANSI/lines=#		     print to the local terminal
  *  LYNXPRINT://MAIL_FILE/lines=#	     mail the file
  *  LYNXPRINT://PRINTER/lines=#/number=#   print to printer number #
  */
@@ -1346,6 +1379,9 @@ PUBLIC int print_options ARGS2(
     fprintf(fp0,
    "   <a href=\"LYNXPRINT://TO_SCREEN/lines=%d\">Print to the screen</a>\n",
 		lines_in_file);
+    fprintf(fp0,
+   "   <a href=\"LYNXPRINT://LPANSI/lines=%d\">Print out on a printer attached to your vt100 terminal</a>\n",
+		lines_in_file);
 
     for (count = 0, cur_printer = printers; cur_printer != NULL;
 	cur_printer = cur_printer->next, count++)
diff --git a/userdefs.h b/userdefs.h
index 35dcc4d6..d191cb99 100644
--- a/userdefs.h
+++ b/userdefs.h
@@ -453,7 +453,7 @@
 
 /*****************************
  * If USE_TRACE_LOG is set FALSE, then when TRACE mode is invoked the
- * syserr messages will not be directed to a log file named lynx.trace
+ * syserr messages will not be directed to a log file named Lynx.trace
  * in the account's HOME directory.  The default defined here can be
  * toggled via the -tlog command line switch.  Also, it is set FALSE
  * automatically when Lynx is executed in an anonymous or validation
@@ -468,7 +468,7 @@
  * the log, even if TRACE mode is turned off via the TOGGLE_TRACE
  * (Control-T) command.
  */
-#define USE_TRACE_LOG	FALSE
+#define USE_TRACE_LOG	TRUE
 
 /*******************************
  * If GOTOBUFFER is set to TRUE here or in lynx.cfg the last entered
@@ -1202,7 +1202,7 @@
  * the version definition with the Project Version on checkout. Just
  * ignore it. - kw */
 /* $Format: "#define LYNX_VERSION \"$ProjectVersion$\""$ */
-#define LYNX_VERSION "2.8.1dev.4"
+#define LYNX_VERSION "2.8.1dev.6"
 
 #ifndef MAXINT
 #define MAXINT 2147483647	/* max integer */
diff --git a/utils/lpansi/Makefile b/utils/lpansi/Makefile
deleted file mode 100644
index a88c6dca..00000000
--- a/utils/lpansi/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Makefile for lpansi
-#
-VERSION=2.1
-# For hp-ux
-# CFLAGS=-Aa -O 
-# For others:
-CFLAGS=-O
-BINDIR=/usr/local/bin
-MANDIR=/usr/local/man/man1
-
-lpansi:	lpansi.o Makefile
-	$(CC) -o lpansi lpansi.o
-
-clean:
-	rm -f lpansi.o
-
-shar:
-	shar -v README lpansi.c lpansi.1 Makefile > lpansi-$(VERSION).shar
-
-install: lpansi
-	chmod o+rx,g+rx,u+rx lpansi; cp -p lpansi $(BINDIR)/lpansi
-
-install_man:
-	chmod o+rx,g+rx,u+rx lpansi.1; cp -p lpansi.1 $(MANDIR)/lpansi.1
diff --git a/utils/lpansi/README b/utils/lpansi/README
deleted file mode 100644
index 252614a8..00000000
--- a/utils/lpansi/README
+++ /dev/null
@@ -1,82 +0,0 @@
-README for lpansi.c v2.1					10/20/1994
-
-		   Print to ANSI printer on local terminal
-
- SYNOPSIS
-      lpansi [options] [file-list]
-
- DESCRIPTION
- The Problem
-      UNIX supplies a printing program called lp <filename> which allows the
-      user to print a text (or any really) file to a printer.
-      Unfortunately, that printer is attached to the UNIX server which is
-      not where the user usually is.  In my case, it is about 230 miles
-      away.  I needed a similar program that would allow me to print to my
-      home printer.
-
- The solution:
-      The VT100 standard defines a printer on and off escape sequence.
-      [FYI: esc[5i is printer on, esc[4i is printer off.] Lpansi is a VERY
-      simple program that issues a printer on sequence, opens the files sent
-      as an argument, reads it character by character, echos it to stdout
-      (now your local printer) and ends by sending a form feed and printer
-      off command.
-
- Usage:
-      I had several purposes in mind when I wrote this.  The first was to
-      find a way to replace lp in a gopher client I had with something that
-      would print at home.  I also wanted to be able to print text files to
-      my home printer directly from the UNIX prompt.  A natural extension of
-      this is to add it to LYNX, and other printing clients as your printer
-      command.
-
- Syntax:
-      This program accepts miltiple filenames as an argument.  If no
-      filename is present, lpansi will use standard input.
-
- Thanks:
-      Thanks go to Michael Seibel on the PINE development team for helping
-      me find the correct ANSI codes to turn off the printer. I found out
-      later that PINE distributes a similar program called ansiprt which is
-      supposed to do the same thing.  Here, the source code is provided so
-      you may incorporate the concept directly in your program.
-
-
- Options:
-	  -f  Form feed off, no form feed at end of each file
-	  -v  Verbose, prints helpful information for debugging purposes.
-
- Disclaimer:
-      [Everyone has one so...] I make no promises whatsoever about how this
-      will work for you.  If you have VT100 and/or ANSI, it should work just
-      fine.  If it doesn't, quit using it.  :)	This program is free to use
-      and modify, but try to keep my name with it.  I don't do that much
-      cool stuff, so I need all the credit I can get.  Thanks.
-
- AUTHOR
-      Written by Gary Day (gday@comp.uark.edu)
-
- MODIFICATIONS
-      Version 1.1 Modified by Noel Hunter (noel@wfu.edu)
-      Version 2.0 Modified by Noel Hunter (noel@wfu.edu)
-      Version 2.1 Modified by Noel Hunter (noel@wfu.edu)
-
- FILES
-      /usr/local/bin/lpansi
-
- SEE ALSO
-      lp, lynx, pine
-
- EXAMPLES
-      lpansi .profile
-
-      Will print the file named .profile to a printer attached to your
-      terminal.  NCSA Telnet, WRC Reflections for PC, and Kermit are known
-      to work.
-
-      In pine, use lpansi by typing "m" for "Main Menu", then selecting "s"
-      for setup.  Next, enter "p" for "Printer", and select "1. Printer
-      attached to IBM PC or compatible, Macintosh".  From then on, when you
-      choose print in pine, it will be sent to your terminal program and
-      attached printer.
-
diff --git a/utils/lpansi/lpansi.1 b/utils/lpansi/lpansi.1
deleted file mode 100644
index d0b854f7..00000000
--- a/utils/lpansi/lpansi.1
+++ /dev/null
@@ -1,77 +0,0 @@
-.TH lpansi 1 "Print to ANSI printer on local terminal"
-.ds)H LPANSI
-.ds]W Release 2.1: October, 1994
-.SH lpansi
-.SH
-.SH SYNOPSIS
-lpansi [options] [file-list]
-.SH DESCRIPTION
-.SH The Problem
-UNIX supplies a printing program called lp <filename> which 
-allows the user to print a text (or any really) file to a 
-printer.  Unfortunately, that printer is attached to the UNIX 
-server which is not where the user usually is.  In my case, it is 
-about 230 miles away.  I needed a similar program that would 
-allow me to print to my home printer.  
-
-.SH The solution: 
-The VT100 standard defines a printer on and off escape 
-sequence.  [FYI: esc[5i is printer on, esc[4i is printer off.]
-Lpansi is a VERY simple program that issues a printer on 
-sequence, opens the files sent as an argument, reads it character
-by character, echos it to stdout (now your local printer) and
-ends by sending a form feed and printer off command.
-
-.SH Usage:  
-I had several purposes in mind when I wrote this.  The first was to
-find a way to replace lp in a gopher client I had with something that
-would print at home.  I also wanted to be able to print text 
-files to my home printer directly from the UNIX prompt.  A 
-natural extension of this is to add it to LYNX, and other printing
-clients as your printer command.
-
-.SH Syntax:
-This program accepts miltiple filenames as an argument.
-If no filename is present, lpansi will use standard input.
-.SH Thanks: 
-Thanks go to Michael Seibel on the PINE development team for 
-helping me find the correct ANSI codes to turn off the printer.  
-I found out later that PINE distributes a similar program called 
-ansiprt which is supposed to do the same thing.  Here, the source
-code is provided so you may incorporate the concept directly in your
-program.
-
-.SH Options:
-.nfill
-    -f  Form feed off, no form feed at end of each file
-    -v  Verbose, prints helpful information for debugging purposes.
-.fill
-.SH Disclaimer:  
-[Everyone has one so...] I make no promises whatsoever about 
-how this will work for you.  If you have VT100 and/or ANSI, it
-should work just fine.  If it doesn't, quit using it.  :)  This
-program is free to use and modify, but try to keep my name with
-it.  I don't do that much cool stuff, so I need all the credit
-I can get.  Thanks.
-.SH AUTHOR
-Written by Gary Day (gday@comp.uark.edu)
-.SH MODIFICATIONS
-.nfill
-Version 1.1 Modified by Noel Hunter (noel@wfu.edu)
-Version 2.0 Modified by Noel Hunter (noel@wfu.edu)
-Version 2.1 Modified by Noel Hunter (noel@wfu.edu)
-.fill
-.SH FILES
-/usr/local/bin/lpansi
-.SH SEE ALSO
-lp, lynx, pine
-.SH EXAMPLES
-lpansi .profile
-
-Will print the file named .profile to a printer attached to your terminal.
-NCSA Telnet, WRC Reflections for PC, and Kermit are known to work.
-
-In pine, use lpansi by typing "m" for "Main Menu", then selecting "s" for
-setup.  Next, enter "p" for "Printer", and select "1. Printer attached to 
-IBM PC or compatible, Macintosh".  From then on, when you choose print
-in pine, it will be sent to your terminal program and attached printer.
diff --git a/utils/lpansi/lpansi.c b/utils/lpansi/lpansi.c
deleted file mode 100644
index 4ea10e4f..00000000
--- a/utils/lpansi/lpansi.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/********************************************************
- * lpansi.c                                             *
- * Original author: Gary Day, 11/30/93                  *
- * Current version: 2.1 by Noel Hunter, 10/20/94        *
- *                                                      *
- * Basic structure based on print -- format files for   *
- * printing from _Pratical_C_Programming by Steve       *
- * Oualline, O'Reilly & Associates                      *
- ********************************************************/
-#include <stdio.h>
-#include <stdlib.h>      /* ANSI Standard only */
-#include <string.h>
-#ifdef VMS
-#include <unixio.h>
-#include <unixlib.h>
-#endif /* VMS */
-
-int verbose = 0;         /* verbose mode (default = false) */
-int formfeed = 1;	 /* form feed mode (default = true) */
-char *program_name;      /* name of the program (for errors) */
-
-/* Ansi C function prototypes */
-void ansi_printer_on(void);
-void ansi_printer_off(void);
-int main(int argc, char *argv[]);
-
-main(int argc, char *argv[])
-{
-    void do_file(char *); /* print a file */
-    void usage(void);     /* tell user how to use the program */
-
-    /* save the program name for future use */
-    program_name = argv[0];
-
-    /* 
-     * loop for each option.  
-     *   Stop if we run out of arguments
-     *   or we get an argument without a dash.
-     */
-    while ((argc > 1) && (argv[1][0] == '-')) {
-        /*
-         * argv[1][1] is the actual option character.
-         */
-        switch (argv[1][1]) {
-            /*
-             * -v verbose 
-             */
-            case 'v':
-                verbose = 1; 
-                (void)printf("VERBOSE mode ON\n");
-                break;
-            case 'f':
-                formfeed = 0;
-                break;
-            default:
-                (void)fprintf(stderr,"Bad option %s\n", argv[1]);
-                usage();
-        }
-        /*
-         * move the argument list up one
-         * move the count down one
-         */
-        argv++;
-        argc--;
-    }
-
-    /*
-     * At this point all the options have been processed.
-     * Check to see if we have no files in the list
-     * and if so, we need to process just standard in.
-     */
-    if (argc == 1) {
-        do_file("stdin");
-    } else {
-        while (argc > 1) {
-          do_file(argv[1]);
-          argv++;
-          argc--;
-        }
-    }
-    return (0);
-}
-/********************************************************
- * do_file -- send a file to the printer                *
- *                                                      *
- * Parameter                                            *
- *      name -- name of the file to print               *
- ********************************************************/
-void do_file(char *name)
-{
-  int  ch;    /* Where we store our characters */
-  FILE *fp;   /* File pointer */
-
-  if ( verbose == 1 ) (void)printf("Processing: %s\n", name);
-
-  ansi_printer_on();
-
-  if ( strcmp(name,"stdin") == 0 )
-  {
-    while ((ch=getc(stdin))!=EOF)
-    {
-     putc(ch,stdout);
-    }
-  }
-  else        /* Reading from a file */
-  {
-    if ((fp=fopen(name, "r"))==NULL)
-    {
-    printf("Can't open %s\n",name);
-    exit(1);
-    }
-    while ((ch=getc(fp))!=EOF)
-    {
-     putc(ch,stdout);
-    }
-    fclose(fp);
-  }
-
-  if ( formfeed == 1 )
-  {
-    printf("\n\x0C");  /* Do a form feed at the end of the document */
-  }
-
-  ansi_printer_off();
- 
-  if ( verbose == 1 ) (void)printf("Finished processing: %s\n", name);
-
-}
-
-/********************************************************
- * usage -- tell the user how to use this program and   *
- *              exit                                    *
- ********************************************************/
-void usage(void)
-{
-    (void)fprintf(stderr,"Usage is %s [options] [file-list]\n", 
-                                program_name);
-    (void)fprintf(stderr,"Options\n");
-    (void)fprintf(stderr,"  -f          form feed OFF\n");
-    (void)fprintf(stderr,"  -v          verbose\n");
-    exit (1);
-}
-
-/********************************************************
- * Send a printer on escape sequence                    *
- *******************************************************/
-void ansi_printer_on(void)
-{
-  if ( verbose == 1 ) (void)printf("ANSI printer ON\n");
-  printf("\x1B[5i");
-}
-
-/********************************************************
- * Send a printer off escape sequence                   *
- *******************************************************/
-void ansi_printer_off(void)
-{
-  printf("\x1B[4i");
-  if ( verbose == 1 ) (void)printf("ANSI printer OFF\n");
-}
diff --git a/utils/lpansi/vmsbuild.com b/utils/lpansi/vmsbuild.com
deleted file mode 100644
index 12e44b46..00000000
--- a/utils/lpansi/vmsbuild.com
+++ /dev/null
@@ -1,73 +0,0 @@
-$ v = 'f$verify(0)'
-$!			VMSBUILD.COM for lpansi.c
-$!
-$!   Command file to build LPANSI.EXE on VMS systems.
-$!
-$!   19-Dec-1996	F.Macrides		macrides@sci.wfeb.edu
-$!	Initial version, for Lynx.
-$!
-$ ON CONTROL_Y THEN GOTO CLEANUP
-$ ON ERROR THEN GOTO CLEANUP
-$ proc = f$environment("PROCEDURE")
-$ where = f$parse(proc,,,"DEVICE") + f$parse(proc,,,"DIRECTORY")
-$ set default 'where'
-$ write sys$output "Default directory:"
-$ show default
-$ write sys$output ""
-$!
-$!
-$ if p1 .nes. ""
-$   then
-$      cc_opts = "/DEBUG/NOOPT"
-$      link_opts = "/DEBUG"
-$   else
-$      cc_opts = ""
-$      link_opts = ""
-$ endif
-$!
-$ v1 = f$verify(1)
-$!
-$!	Build LPANSI.EXE
-$!
-$ v1 = 'f$verify(0)'
-$ IF f$trnlnm("VAXCMSG") .eqs. "DECC$MSG" .or. -
-     f$trnlnm("DECC$CC_DEFAULT") .eqs. "/DECC" .or. -
-     f$trnlnm("DECC$CC_DEFAULT") .eqs. "/VAXC"
-$ THEN
-$  compiler := "DECC"
-$  v1 = f$verify(1)
-$! Compile with DECC:
-$  cc := cc/decc/prefix=all 'cc_opts'
-$  v1 = 'f$verify(0)'
-$ ELSE
-$  IF f$search("gnu_cc:[000000]gcclib.olb") .nes. ""
-$  THEN
-$   compiler := "GNUC"
-$   v1 = f$verify(1)
-$! Compile with GNUC:
-$   cc := gcc 'cc_opts'
-$   v1 = 'f$verify(0)'
-$  ELSE
-$   compiler := "VAXC"
-$   v1 = f$verify(1)
-$! Compile with VAXC:
-$   cc := cc 'cc_opts'
-$   v1 = 'f$verify(0)'
-$  ENDIF
-$ ENDIF
-$ v1 = f$verify(1)
-$!
-$ cc lpansi
-$!
-$!	Link the objects and libaries.
-$!
-$ link/exe=lpansi.exe 'link_opts' -
-lpansi.obj, -
-sys$disk:[--.src]'compiler'.opt/opt
-$ v1 = 'f$verify(0)'
-$ CLEANUP:
-$    v1 = 'f$verify(0)'
-$    write sys$output "Default directory:"
-$    show default
-$    v1 = f$verify(v)
-$ exit