about summary refs log tree commit diff stats
path: root/WWW
diff options
context:
space:
mode:
authorThomas E. Dickey <dickey@invisible-island.net>1998-02-05 17:00:19 -0500
committerThomas E. Dickey <dickey@invisible-island.net>1998-02-05 17:00:19 -0500
commit4b034492d7e0a45781e340312e0570e5052c42d9 (patch)
tree52d01f4b7bf11032eeab99dbde240eff1b17d2dd /WWW
parentb6d1143cba1a1910742924e8724f02585160f513 (diff)
downloadlynx-snapshots-4b034492d7e0a45781e340312e0570e5052c42d9.tar.gz
snapshot of project "lynx", label v2-7-1ac-0_113
Diffstat (limited to 'WWW')
-rw-r--r--WWW/Library/Implementation/HTACL.c36
-rw-r--r--WWW/Library/Implementation/HTACL.h120
-rw-r--r--WWW/Library/Implementation/HTAccess.c554
-rw-r--r--WWW/Library/Implementation/HTAnchor.c520
-rw-r--r--WWW/Library/Implementation/HTAnchor.h285
-rw-r--r--WWW/Library/Implementation/HTDOS.c8
-rw-r--r--WWW/Library/Implementation/HTFTP.c22
-rw-r--r--WWW/Library/Implementation/HTFile.c708
-rw-r--r--WWW/Library/Implementation/HTFormat.c324
-rw-r--r--WWW/Library/Implementation/HTGopher.c1052
-rw-r--r--WWW/Library/Implementation/HTMIME.c1221
-rw-r--r--WWW/Library/Implementation/HTML.h159
-rw-r--r--WWW/Library/Implementation/HTMLDTD.c1833
-rw-r--r--WWW/Library/Implementation/HTMLDTD.h232
-rw-r--r--WWW/Library/Implementation/HTMLGen.c164
-rw-r--r--WWW/Library/Implementation/HTNews.c852
-rw-r--r--WWW/Library/Implementation/HTParse.c357
-rw-r--r--WWW/Library/Implementation/HTPlain.c268
-rw-r--r--WWW/Library/Implementation/HTString.c74
-rw-r--r--WWW/Library/Implementation/HTStyle.c62
-rw-r--r--WWW/Library/Implementation/HTTelnet.c182
-rw-r--r--WWW/Library/Implementation/HTVMS_WaisUI.c2
-rw-r--r--WWW/Library/Implementation/HTWAIS.c550
-rw-r--r--WWW/Library/Implementation/HTWSRC.c126
-rw-r--r--WWW/Library/Implementation/LYLeaks.h159
-rw-r--r--WWW/Library/Implementation/Makefile489
-rw-r--r--WWW/Library/Implementation/SGML.c1137
-rw-r--r--WWW/Library/Implementation/UCDefs.h3
-rw-r--r--WWW/Library/djgpp/makefile2
-rw-r--r--WWW/Library/unix/Makefile30
30 files changed, 6366 insertions, 5165 deletions
diff --git a/WWW/Library/Implementation/HTACL.c b/WWW/Library/Implementation/HTACL.c
index aeafcafd..2147e23f 100644
--- a/WWW/Library/Implementation/HTACL.c
+++ b/WWW/Library/Implementation/HTACL.c
@@ -4,7 +4,7 @@
 **
 ** AUTHORS:
 **	AL	Ari Luotonen	luotonen@dxcern.cern.ch
-**	MD 	Mark Donszelmann    duns@vxdeop.cern.ch
+**	MD	Mark Donszelmann    duns@vxdeop.cern.ch
 **
 ** HISTORY:
 **	 8 Nov 93  MD	(VMS only) case insensitive compare reading acl entry, filename
@@ -27,7 +27,7 @@
 
 #include "LYLeaks.h"
 
-/* PUBLIC						HTAA_getAclFilename()
+/* PRIVATE						HTAA_getAclFilename()
 **	    RESOLVE THE FULL PATHNAME OF ACL FILE FOR A GIVEN FILE
 ** ON ENTRY:
 **	path	is the pathname of the file for which to
@@ -38,19 +38,19 @@
 **		(this is done to a local copy, of course).
 **
 ** ON EXIT:
-**	returns	the absolute pathname of ACL file
+**	returns the absolute pathname of ACL file
 **		(which is automatically freed next time
 **		this fuction is called).
 */
-PUBLIC char *HTAA_getAclFilename ARGS1(CONST char *, pathname)
+PRIVATE char *HTAA_getAclFilename ARGS1(CONST char *, pathname)
 {
     static char * local_copy = NULL;
     static char * acl_path = NULL;
     char * directory = NULL;
     char * filename = NULL;
 
-    StrAllocCopy(local_copy, pathname);	/* Also frees local_copy */
-                                        /* from previous call.   */
+    StrAllocCopy(local_copy, pathname); /* Also frees local_copy */
+					/* from previous call.	 */
 
     directory = local_copy;
     filename = strrchr(directory, '/');
@@ -62,9 +62,9 @@ PUBLIC char *HTAA_getAclFilename ARGS1(CONST char *, pathname)
 	*filename = '\0'; /* Truncate filename off from directory path */
 	filename++;	  /* and the filename begins from the next character */
     }
-    
+
     StrAllocCopy(acl_path, directory);	/* Also frees acl_path */
-                                        /* from previous call. */
+					/* from previous call. */
     StrAllocCat(acl_path, "/");
     StrAllocCat(acl_path, ACL_FILE_NAME);
 
@@ -79,7 +79,7 @@ PUBLIC char *HTAA_getAclFilename ARGS1(CONST char *, pathname)
 **			the file to be accessed.
 **
 ** ON EXIT:
-**	returns		the FILE* to open ACL.
+**	returns 	the FILE* to open ACL.
 **			NULL, if ACL not found.
 */
 PUBLIC FILE *HTAA_openAcl ARGS1(CONST char *, pathname)
@@ -94,7 +94,7 @@ PUBLIC FILE *HTAA_openAcl ARGS1(CONST char *, pathname)
 **	acl_file is Access Control List file to close.
 **
 ** ON EXIT:
-**	returns	nothing.
+**	returns nothing.
 */
 PUBLIC void HTAA_closeAcl ARGS1(FILE *, acl_file)
 {
@@ -124,7 +124,7 @@ PUBLIC void HTAA_closeAcl ARGS1(FILE *, acl_file)
 **		(user,group,...)@(address, address, ...)
 **
 ** ON EXIT:
-**	returns		NULL, if there is no entry for the file in the ACL,
+**	returns 	NULL, if there is no entry for the file in the ACL,
 **			or ACL doesn't exist.
 **			If there is, a GroupDef object containing the
 **			group and user names allowed to access the file
@@ -147,7 +147,7 @@ PUBLIC void HTAA_closeAcl ARGS1(FILE *, acl_file)
 **	HTAA_readGroupFile()) and after that access authorization
 **	can be checked with function HTAA_userAndInetGroup().
 */
-PUBLIC GroupDef *HTAA_getAclEntry ARGS3(FILE *,		acl_file,
+PUBLIC GroupDef *HTAA_getAclEntry ARGS3(FILE *, 	acl_file,
 					CONST char *,	pathname,
 					HTAAMethod,	method)
 {
@@ -156,8 +156,8 @@ PUBLIC GroupDef *HTAA_getAclEntry ARGS3(FILE *,		acl_file,
     int len;
     char *buf;
 
-    if (!acl_file) return NULL;		/* ACL doesn't exist */
-    
+    if (!acl_file) return NULL; 	/* ACL doesn't exist */
+
     if (group_def) {
 	GroupDef_delete(group_def);	/* From previous call */
 	group_def = NULL;
@@ -171,7 +171,7 @@ PUBLIC GroupDef *HTAA_getAclEntry ARGS3(FILE *,		acl_file,
 
     if (!(buf = (char*)malloc((strlen(filename)+2)*sizeof(char))))
 	outofmem(__FILE__, "HTAA_getAuthorizedGroups");
-    
+
     while (EOF != HTAAFile_readField(acl_file, buf, len+1)) {
 #ifdef VMS
 	if (HTAA_templateCaseMatch(buf, filename)) {
@@ -184,7 +184,7 @@ PUBLIC GroupDef *HTAA_getAclEntry ARGS3(FILE *,		acl_file,
 		fprintf(stderr,
 			"Filename '%s' matched template '%s', allowed methods:",
 			filename, buf);
-	    }	
+	    }
 	    if (HTAAMethod_inList(method, methods)) {	/* right method? */
 		if (TRACE)
 		    fprintf(stderr, " METHOD OK\n");
@@ -198,7 +198,7 @@ PUBLIC GroupDef *HTAA_getAclEntry ARGS3(FILE *,		acl_file,
 		*/
 		return group_def;
 	    } else if (TRACE) {
-	        fprintf(stderr, " METHOD NOT FOUND\n");
+		fprintf(stderr, " METHOD NOT FOUND\n");
 	    }
 	    HTList_delete(methods);
 	    methods = NULL;
@@ -216,6 +216,6 @@ PUBLIC GroupDef *HTAA_getAclEntry ARGS3(FILE *,		acl_file,
     FREE(buf);
 
     return NULL;	/* No entry for requested file */
-                        /* (or an empty entry).        */
+			/* (or an empty entry).        */
 }
 
diff --git a/WWW/Library/Implementation/HTACL.h b/WWW/Library/Implementation/HTACL.h
index 6ae21a97..c0367c9d 100644
--- a/WWW/Library/Implementation/HTACL.h
+++ b/WWW/Library/Implementation/HTACL.h
@@ -1,5 +1,5 @@
-/*                                ACCESS CONTROL LIST ROUTINES
-                                             
+/*				  ACCESS CONTROL LIST ROUTINES
+
  */
 
 #ifndef HTACL_H
@@ -12,10 +12,9 @@
 #include "HTGroup.h"
 
 #ifdef SHORT_NAMES
-#define HTAAgAFn        HTAA_getAclFilename
-#define HTAAoACL        HTAA_openAcl
-#define HTAAcACL        HTAA_closeAcl
-#define HTAAgAEn        HTAA_getAclEntry
+#define HTAAoACL	HTAA_openAcl
+#define HTAAcACL	HTAA_closeAcl
+#define HTAAgAEn	HTAA_getAclEntry
 #endif /* SHORT_NAMES */
 
 /*
@@ -24,43 +23,26 @@ Opening Access Control List File
 
  */
 
-/* PUBLIC						HTAA_getAclFilename()
-**	    RESOLVE THE FULL PATHNAME OF ACL FILE FOR A GIVEN FILE
-** ON ENTRY:
-**	path	is the pathname of the file for which to
-**		ACL file should be found.
-**
-**		ACL filename is computed by replacing
-**		the filename by .www_acl in the pathname
-**		(this is done to a local copy, of course).
-**
-** ON EXIT:
-**	returns	the absolute pathname of ACL file
-**		(which is automatically freed next time
-**		this fuction is called).
-*/
-PUBLIC char *HTAA_getAclFilename PARAMS((CONST char * pathname));
-
-/* PUBLIC                                               HTAA_openAcl()
-**              OPEN THE ACL FILE FOR THE GIVEN DOCUMENT
+/* PUBLIC						HTAA_openAcl()
+**		OPEN THE ACL FILE FOR THE GIVEN DOCUMENT
 ** ON ENTRY:
-**      pathname        is the absolute pathname of
-**                      the file to be accessed.
+**	pathname	is the absolute pathname of
+**			the file to be accessed.
 **
 ** ON EXIT:
-**      returns         the FILE* to open ACL.
-**                      NULL, if ACL not found.
+**	returns 	the FILE* to open ACL.
+**			NULL, if ACL not found.
 */
 PUBLIC FILE *HTAA_openAcl PARAMS((CONST char * pathname));
 
 
-/* PUBLIC                                               HTAA_closeAcl()
-**                      CLOSE ACL FILE
+/* PUBLIC						HTAA_closeAcl()
+**			CLOSE ACL FILE
 ** ON ENTRY:
-**      acl_file is Access Control List file to close.
+**	acl_file is Access Control List file to close.
 **
 ** ON EXIT:
-**      returns nothing.
+**	returns nothing.
 */
 PUBLIC void HTAA_closeAcl PARAMS((FILE * acl_file));
 /*
@@ -69,54 +51,54 @@ Getting ACL Entry
 
  */
 
-/* PUBLIC                                               HTAA_getAclEntry()
-**                      CONSULT THE ACCESS CONTROL LIST AND
-**                      GIVE A LIST OF GROUPS (AND USERS)
-**                      AUTHORIZED TO ACCESS A GIVEN FILE
+/* PUBLIC						HTAA_getAclEntry()
+**			CONSULT THE ACCESS CONTROL LIST AND
+**			GIVE A LIST OF GROUPS (AND USERS)
+**			AUTHORIZED TO ACCESS A GIVEN FILE
 ** ON ENTRY:
-**      acl_file        is an open ACL file.
-**      pathname        is the absolute pathname of
-**                      the file to be accessed.
-**      method          is the method for which access is wanted.
+**	acl_file	is an open ACL file.
+**	pathname	is the absolute pathname of
+**			the file to be accessed.
+**	method		is the method for which access is wanted.
 **
 ** ALC FILE FORMAT:
 **
-**      template : method, method, ... : group@addr, user, group, ...
+**	template : method, method, ... : group@addr, user, group, ...
 **
-**      The last item is in fact in exactly the same format as
-**      group definition in group file, i.e. everything that
-**      follows the 'groupname:' part,
-**      e.g.
-**              user, group, user@address, group@address,
-**              (user,group,...)@(address, address, ...)
+**	The last item is in fact in exactly the same format as
+**	group definition in group file, i.e. everything that
+**	follows the 'groupname:' part,
+**	e.g.
+**		user, group, user@address, group@address,
+**		(user,group,...)@(address, address, ...)
 **
 ** ON EXIT:
-**      returns         NULL, if there is no entry for the file in the ACL,
-**                      or ACL doesn't exist.
-**                      If there is, a GroupDef object containing the
-**                      group and user names allowed to access the file
-**                      is returned (this is automatically freed
-**                      next time this function is called).
+**	returns 	NULL, if there is no entry for the file in the ACL,
+**			or ACL doesn't exist.
+**			If there is, a GroupDef object containing the
+**			group and user names allowed to access the file
+**			is returned (this is automatically freed
+**			next time this function is called).
 ** IMPORTANT:
-**      Returns the first entry with matching template and
-**      method. This function should be called multiple times
-**      to process all the valid entries (until it returns NULL).
-**      This is because there can be multiple entries like:
+**	Returns the first entry with matching template and
+**	method. This function should be called multiple times
+**	to process all the valid entries (until it returns NULL).
+**	This is because there can be multiple entries like:
 **
-**              *.html : get,put : ari,timbl,robert
-**              *.html : get     : jim,james,jonathan,jojo
+**		*.html : get,put : ari,timbl,robert
+**		*.html : get	 : jim,james,jonathan,jojo
 **
 ** NOTE:
-**      The returned group definition may well contain references
-**      to groups defined in group file. Therefore these references
-**      must be resolved according to that rule file by function
-**      HTAA_resolveGroupReferences() (group file is read in by
-**      HTAA_readGroupFile()) and after that access authorization
-**      can be checked with function HTAA_userAndInetGroup().
+**	The returned group definition may well contain references
+**	to groups defined in group file. Therefore these references
+**	must be resolved according to that rule file by function
+**	HTAA_resolveGroupReferences() (group file is read in by
+**	HTAA_readGroupFile()) and after that access authorization
+**	can be checked with function HTAA_userAndInetGroup().
 */
-PUBLIC GroupDef *HTAA_getAclEntry PARAMS((FILE *        acl_file,
-                                          CONST char *  pathname,
-                                          HTAAMethod    method));
+PUBLIC GroupDef *HTAA_getAclEntry PARAMS((FILE *	acl_file,
+					  CONST char *	pathname,
+					  HTAAMethod	method));
 /*
 
  */
diff --git a/WWW/Library/Implementation/HTAccess.c b/WWW/Library/Implementation/HTAccess.c
index c2e75d41..edb91b51 100644
--- a/WWW/Library/Implementation/HTAccess.c
+++ b/WWW/Library/Implementation/HTAccess.c
@@ -6,10 +6,10 @@
 **	JFG	Jean-Francois Groff jfg@dxcern.cern.ch
 **	DD	Denis DeLaRoca (310) 825-4580  <CSP1DWD@mvs.oac.ucla.edu>
 **	FM	Foteos Macrides macrides@sci.wfeb.edu
-**      PDM     Danny Mayer mayer@ljo.dec.com
+**	PDM	Danny Mayer mayer@ljo.dec.com
 **
 **  History
-**       8 Jun 92 Telnet hopping prohibited as telnet is not secure TBL
+**	 8 Jun 92 Telnet hopping prohibited as telnet is not secure TBL
 **	26 Jun 92 When over DECnet, suppressed FTP, Gopher and News. JFG
 **	 6 Oct 92 Moved HTClientHost and logfile into here. TBL
 **	17 Dec 92 Tn3270 added, bug fix. DD
@@ -17,12 +17,12 @@
 **		  PARAMETERS TO HTSEARCH AND HTLOADRELATIVE CHANGED
 **	28 May 93 WAIS gateway explicit if no WAIS library linked in.
 **	31 May 94 Added DIRECT_WAIS support for VMS. FM
-**      27 Jan 95 Fixed proxy support to use NNTPSERVER for checking
-**                whether or not to use the proxy server. PDM
-**      27 Jan 95 Ensured that proxy service will be overridden for files
+**	27 Jan 95 Fixed proxy support to use NNTPSERVER for checking
+**		  whether or not to use the proxy server. PDM
+**	27 Jan 95 Ensured that proxy service will be overridden for files
 **		  on the local host (because HTLoadFile() doesn't try ftp
 **		  for those) and will substitute ftp for remote files. FM
-**      28 Jan 95 Tweeked PDM's proxy override mods to handle port info
+**	28 Jan 95 Tweeked PDM's proxy override mods to handle port info
 **		  for news and wais URL's. FM
 **
 **  Bugs
@@ -70,7 +70,7 @@ extern HTCJKlang HTCJK;
 **  These flags may be set to modify the operation of this module
 */
 PUBLIC char * HTClientHost = NULL; /* Name of remote login host if any */
-PUBLIC FILE * HTlogfile = NULL;	   /* File to which to output one-liners */
+PUBLIC FILE * HTlogfile = NULL;    /* File to which to output one-liners */
 PUBLIC BOOL HTSecure = NO;	   /* Disable access for telnet users? */
 
 PUBLIC BOOL using_proxy = NO; /* are we using a proxy gateway? */
@@ -79,7 +79,7 @@ PUBLIC BOOL using_proxy = NO; /* are we using a proxy gateway? */
 **  To generate other things, play with these:
 */
 PUBLIC HTFormat HTOutputFormat = NULL;
-PUBLIC HTStream* HTOutputStream = NULL;	/* For non-interactive, set this */ 
+PUBLIC HTStream* HTOutputStream = NULL; /* For non-interactive, set this */
 
 PRIVATE HTList * protocols = NULL; /* List of registered protocol descriptors */
 
@@ -102,7 +102,7 @@ PUBLIC BOOL HTRegisterProtocol ARGS1(
 	HTProtocol *,	protocol)
 {
     if (!protocols) {
-        protocols = HTList_new();
+	protocols = HTList_new();
 	atexit(free_protocols);
     }
     HTList_addObject(protocols, protocol);
@@ -116,7 +116,7 @@ PUBLIC BOOL HTRegisterProtocol ARGS1(
 **	Add to or subtract from this list if you add or remove protocol
 **	modules. This routine is called the first time the protocol list
 **	is needed, unless any protocols are already registered, in which
-**	case it is not called.  Therefore the application can override
+**	case it is not called.	Therefore the application can override
 **	this list.
 **
 **	Compiling with NO_INIT prevents all known protocols from being
@@ -197,7 +197,7 @@ PRIVATE void HTAccessInit NOARGS			/* Call me once */
 **	part is present, it applies to all ports on that domain.
 **
 **  Example:
-**          no_proxy="cern.ch,some.domain:8001"
+**	    no_proxy="cern.ch,some.domain:8001"
 **
 **  Use "*" to override all proxy service:
 **	     no_proxy="*"
@@ -218,35 +218,35 @@ PUBLIC BOOL override_proxy ARGS1(
      * Check for global override.
      */
     if (no_proxy) {
-        if (!strcmp(no_proxy, "*"))
-            return YES;
+	if (!strcmp(no_proxy, "*"))
+	    return YES;
     }
 
     /*
-     *  Never proxy file:// URLs if they are on the local host.
-     *  HTLoadFile() will not attempt ftp for those if direct
-     *  access fails.  We'll check that first, in case no_proxy
-     *  hasn't been defined. - FM
+     *	Never proxy file:// URLs if they are on the local host.
+     *	HTLoadFile() will not attempt ftp for those if direct
+     *	access fails.  We'll check that first, in case no_proxy
+     *	hasn't been defined. - FM
      */
     if (!addr)
-        return NO;
+	return NO;
     if (!(host = HTParse(addr, "", PARSE_HOST)))
-        return NO;
+	return NO;
     if (!*host) {
-        FREE(host);
+	FREE(host);
 	return NO;
     }
     Host = (((at = strchr(host, '@')) != NULL) ? (at+1) : host);
 
     if ((acc_method = HTParse(addr, "", PARSE_ACCESS))) {
-        if (!strcmp("file", acc_method) &&
+	if (!strcmp("file", acc_method) &&
 	    (!strcmp(Host, "localhost") ||
 #ifdef VMS
-             !strcasecomp(Host, HTHostName())
+	     !strcasecomp(Host, HTHostName())
 #else
-             !strcmp(Host, HTHostName())
+	     !strcmp(Host, HTHostName())
 #endif /* VMS */
-        )) {
+	)) {
 	    FREE(host);
 	    FREE(acc_method);
 	    return YES;
@@ -255,69 +255,69 @@ PUBLIC BOOL override_proxy ARGS1(
     }
 
     if (!no_proxy) {
-        FREE(host);
-        return NO;
+	FREE(host);
+	return NO;
     }
 
     if (NULL != (p = strrchr(Host, ':'))) {	/* Port specified */
-        *p++ = 0;                   		/* Chop off port */
-        port = atoi(p);
+	*p++ = 0;				/* Chop off port */
+	port = atoi(p);
     } else {					/* Use default port */
-        acc_method = HTParse(addr, "", PARSE_ACCESS);
-        if (acc_method != NULL) {
-            if      (!strcmp(acc_method, "http"))	port = 80;
-            else if (!strcmp(acc_method, "https"))	port = 443;
-            else if (!strcmp(acc_method, "ftp"))	port = 21;
-            else if (!strcmp(acc_method, "gopher"))	port = 70;
-            else if (!strcmp(acc_method, "cso"))	port = 105;
+	acc_method = HTParse(addr, "", PARSE_ACCESS);
+	if (acc_method != NULL) {
+	    if	    (!strcmp(acc_method, "http"))	port = 80;
+	    else if (!strcmp(acc_method, "https"))	port = 443;
+	    else if (!strcmp(acc_method, "ftp"))	port = 21;
+	    else if (!strcmp(acc_method, "gopher"))	port = 70;
+	    else if (!strcmp(acc_method, "cso"))	port = 105;
 	    else if (!strcmp(acc_method, "news"))	port = 119;
 	    else if (!strcmp(acc_method, "nntp"))	port = 119;
 	    else if (!strcmp(acc_method, "newspost"))	port = 119;
 	    else if (!strcmp(acc_method, "newsreply"))	port = 119;
 	    else if (!strcmp(acc_method, "snews"))	port = 563;
 	    else if (!strcmp(acc_method, "snewspost"))	port = 563;
-	    else if (!strcmp(acc_method, "snewsreply"))	port = 563;
+	    else if (!strcmp(acc_method, "snewsreply")) port = 563;
 	    else if (!strcmp(acc_method, "wais"))	port = 210;
 	    else if (!strcmp(acc_method, "finger"))	port = 79;
-            FREE(acc_method);
-        }
+	    FREE(acc_method);
+	}
     }
     if (!port)
-        port = 80;                  /* Default */
+	port = 80;		    /* Default */
     h_len = strlen(Host);
 
     while (*no_proxy) {
-        CONST char * end;
-        CONST char * colon = NULL;
-        int templ_port = 0;
-        int t_len;
-
-        while (*no_proxy && (WHITE(*no_proxy) || *no_proxy == ','))
-            no_proxy++;             /* Skip whitespace and separators */
-
-        end = no_proxy;
-        while (*end && !WHITE(*end) && *end != ',') {	/* Find separator */
-            if (*end == ':') colon = end;		/* Port number given */
-            end++;
-        }
-
-        if (colon) {
-            templ_port = atoi(colon+1);
-            t_len = colon - no_proxy;
-        }
-        else {
-            t_len = end - no_proxy;
-        }
-
-        if ((!templ_port || templ_port == port)  &&
-            (t_len > 0  &&  t_len <= h_len  &&
-             !strncmp(Host + h_len - t_len, no_proxy, t_len))) {
-            FREE(host);
-            return YES;
-        }
-        if (*end)
+	CONST char * end;
+	CONST char * colon = NULL;
+	int templ_port = 0;
+	int t_len;
+
+	while (*no_proxy && (WHITE(*no_proxy) || *no_proxy == ','))
+	    no_proxy++; 	    /* Skip whitespace and separators */
+
+	end = no_proxy;
+	while (*end && !WHITE(*end) && *end != ',') {	/* Find separator */
+	    if (*end == ':') colon = end;		/* Port number given */
+	    end++;
+	}
+
+	if (colon) {
+	    templ_port = atoi(colon+1);
+	    t_len = colon - no_proxy;
+	}
+	else {
+	    t_len = end - no_proxy;
+	}
+
+	if ((!templ_port || templ_port == port)  &&
+	    (t_len > 0	&&  t_len <= h_len  &&
+	     !strncmp(Host + h_len - t_len, no_proxy, t_len))) {
+	    FREE(host);
+	    return YES;
+	}
+	if (*end)
 	    no_proxy = (end + 1);
-        else
+	else
 	    break;
     }
 
@@ -333,7 +333,7 @@ PUBLIC BOOL override_proxy ARGS1(
 **	anchor		a pareent anchor with whose address is addr
 **
 **  On exit,
-**	returns		HT_NO_ACCESS		Error has occured.
+**	returns 	HT_NO_ACCESS		Error has occured.
 **			HT_OK			Success
 */
 PRIVATE int get_physical ARGS2(
@@ -350,7 +350,7 @@ PRIVATE int get_physical ARGS2(
 	return HT_FORBIDDEN;
     }
     if (anchor->isISMAPScript == TRUE) {
-        StrAllocCat(physical, "?0,0");
+	StrAllocCat(physical, "?0,0");
 	if (TRACE)
 	    fprintf(stderr, "HTAccess: Appending '?0,0' coordinate pair.\n");
     }
@@ -358,24 +358,24 @@ PRIVATE int get_physical ARGS2(
     FREE(physical);			/* free our copy */
 #else
     if (anchor->isISMAPScript == TRUE) {
-        StrAllocCopy(physical, addr);
+	StrAllocCopy(physical, addr);
 	StrAllocCat(physical, "?0,0");
 	if (TRACE)
 	    fprintf(stderr, "HTAccess: Appending '?0,0' coordinate pair.\n");
 	HTAnchor_setPhysical(anchor, physical);
-	FREE(physical);			/* free our copy */
+	FREE(physical); 		/* free our copy */
     } else {
-        HTAnchor_setPhysical(anchor, addr);
+	HTAnchor_setPhysical(anchor, addr);
     }
 #endif /* NO_RULES */
 
     acc_method =  HTParse(HTAnchor_physical(anchor),
-    		"file:", PARSE_ACCESS);
+		"file:", PARSE_ACCESS);
 
     /*
-    **  Check whether gateway access has been set up for this.
+    **	Check whether gateway access has been set up for this.
     **
-    **  This function can be replaced by the rule system above.
+    **	This function can be replaced by the rule system above.
     */
 #define USE_GATEWAYS
 #ifdef USE_GATEWAYS
@@ -392,34 +392,34 @@ PRIVATE int get_physical ARGS2(
 	char *host = NULL;
 	if ((host = HTParse(addr, "", PARSE_HOST))) {
 	    if (strchr(host, ':') == NULL) {
-	        StrAllocCopy(Server_addr, "news://");
-	        StrAllocCat(Server_addr, host);
+		StrAllocCopy(Server_addr, "news://");
+		StrAllocCat(Server_addr, host);
 		StrAllocCat(Server_addr, ":119/");
 	    }
 	    FREE(host);
-        } else if (getenv("NNTPSERVER") != NULL) {
-            StrAllocCopy(Server_addr, "news://");
-            StrAllocCat(Server_addr, (char *)getenv("NNTPSERVER"));
-            StrAllocCat(Server_addr, ":119/");
-         }
+	} else if (getenv("NNTPSERVER") != NULL) {
+	    StrAllocCopy(Server_addr, "news://");
+	    StrAllocCat(Server_addr, (char *)getenv("NNTPSERVER"));
+	    StrAllocCat(Server_addr, ":119/");
+	 }
     } else if (!strcasecomp(acc_method, "wais")) {
-    	/*
+	/*
 	**  Wais also needs checking of the default port
 	**  for selective exclusions.
 	*/
 	char *host = NULL;
 	if ((host = HTParse(addr, "", PARSE_HOST))) {
 	    if (!(strchr(host, ':'))) {
-	        StrAllocCopy(Server_addr, "wais://");
-	        StrAllocCat(Server_addr, host);
+		StrAllocCopy(Server_addr, "wais://");
+		StrAllocCat(Server_addr, host);
 		StrAllocCat(Server_addr, ":210/");
 	    }
 	    FREE(host);
 	}
 	else
-            StrAllocCopy(Server_addr, addr);
+	    StrAllocCopy(Server_addr, addr);
     } else {
-        StrAllocCopy(Server_addr, addr);
+	StrAllocCopy(Server_addr, addr);
     }
 
     if (!override_proxy(Server_addr)) {
@@ -446,7 +446,7 @@ PRIVATE int get_physical ARGS2(
 	    strcpy(gateway_parameter, "ftp");
 	else
 	    strcpy(gateway_parameter, acc_method);
-        strcat(gateway_parameter, "_proxy");
+	strcat(gateway_parameter, "_proxy");
 	proxy = (char *)getenv(gateway_parameter);
 	FREE(gateway_parameter);
 
@@ -454,55 +454,55 @@ PRIVATE int get_physical ARGS2(
 	    fprintf(stderr, "Gateway found: %s\n", gateway);
 	if (TRACE && proxy)
 	    fprintf(stderr, "proxy server found: %s\n", proxy);
-	
+
 	/*
 	**  Proxy servers have precedence over gateway servers.
 	*/
 	if (proxy) {
 	    char * gatewayed = NULL;
-            StrAllocCopy(gatewayed,proxy);
+	    StrAllocCopy(gatewayed,proxy);
 	    /*
 	    ** Ensure that the proxy server uses ftp for file URLs. - FM
 	    */
 	    if (!strncmp(addr, "file", 4)) {
-                StrAllocCat(gatewayed, "ftp");
-                StrAllocCat(gatewayed, (addr + 4));
+		StrAllocCat(gatewayed, "ftp");
+		StrAllocCat(gatewayed, (addr + 4));
 	    } else
-                StrAllocCat(gatewayed, addr);
-            using_proxy = YES;
+		StrAllocCat(gatewayed, addr);
+	    using_proxy = YES;
 	    if (anchor->isISMAPScript == TRUE)
-	        StrAllocCat(gatewayed, "?0,0");
-            HTAnchor_setPhysical(anchor, gatewayed);
+		StrAllocCat(gatewayed, "?0,0");
+	    HTAnchor_setPhysical(anchor, gatewayed);
 	    FREE(gatewayed);
 	    FREE(acc_method);
 
-    	    acc_method =  HTParse(HTAnchor_physical(anchor),
-    		"http:", PARSE_ACCESS);
+	    acc_method =  HTParse(HTAnchor_physical(anchor),
+		"http:", PARSE_ACCESS);
 
 	} else if (gateway) {
 	    char * path = HTParse(addr, "",
-	    	PARSE_HOST + PARSE_PATH + PARSE_PUNCTUATION);
+		PARSE_HOST + PARSE_PATH + PARSE_PUNCTUATION);
 		/* Chop leading / off to make host into part of path */
 	    char * gatewayed = HTParse(path+1, gateway, PARSE_ALL);
 	    FREE(path);
-            HTAnchor_setPhysical(anchor, gatewayed);
+	    HTAnchor_setPhysical(anchor, gatewayed);
 	    FREE(gatewayed);
 	    FREE(acc_method);
-	    
-    	    acc_method =  HTParse(HTAnchor_physical(anchor),
-    		"http:", PARSE_ACCESS);
-	} 
+
+	    acc_method =  HTParse(HTAnchor_physical(anchor),
+		"http:", PARSE_ACCESS);
+	}
     }
     FREE(Server_addr);
 #endif /* use gateways */
 
     /*
-    **  Search registered protocols to find suitable one.
+    **	Search registered protocols to find suitable one.
     */
     {
 	int i, n;
 #ifndef NO_INIT
-        if (!protocols) HTAccessInit();
+	if (!protocols) HTAccessInit();
 #endif
 	n = HTList_count(protocols);
 	for (i = 0; i < n; i++) {
@@ -526,7 +526,7 @@ PRIVATE int get_physical ARGS2(
  *  values for later restoration. - kw
  *  @@@ These functions may not really belong here, but where else?
  *  I want the "pop" to occur as soon as possible after loading
- *  has finished. - kw @@@   
+ *  has finished. - kw @@@
  */
 
 extern char*UCAssume_MIMEcharset;
@@ -571,7 +571,7 @@ PRIVATE int LYUCPopAssumed NOARGS
     return -1;
 }
 
-/*	Load a document					HTLoad()
+/*	Load a document 				HTLoad()
 **	---------------
 **
 **	This is an internal routine, which has an address AND a matching
@@ -582,7 +582,7 @@ PRIVATE int LYUCPopAssumed NOARGS
 **	anchor		a pareent anchor with whose address is addr
 **
 **  On exit,
-**	returns		<0		Error has occured.
+**	returns 	<0		Error has occured.
 **			HT_LOADED	Success
 **			HT_NO_DATA	Success, but no document loaded.
 **					(telnet sesssion started etc)
@@ -596,15 +596,15 @@ PRIVATE int HTLoad ARGS4(
     HTProtocol *p;
     int status = get_physical(addr, anchor);
     if (status == HT_FORBIDDEN) {
-        return HTLoadError(sink, 500, "Access forbidden by rule");
+	return HTLoadError(sink, 500, "Access forbidden by rule");
     }
     if (status < 0)
-        return status;	/* Can't resolve or forbidden */
-    
+	return status;	/* Can't resolve or forbidden */
+
     p = (HTProtocol *)HTAnchor_protocol(anchor);
-    anchor->underway = TRUE;            /* Hack to deal with caching */
+    anchor->underway = TRUE;		/* Hack to deal with caching */
     status= (*(p->load))(HTAnchor_physical(anchor),
-    			anchor, format_out, sink);
+			anchor, format_out, sink);
     anchor->underway = FALSE;
     LYUCPopAssumed();
     return status;
@@ -618,8 +618,8 @@ PUBLIC HTStream *HTSaveStream ARGS1(
 {
     HTProtocol *p = (HTProtocol *)HTAnchor_protocol(anchor);
     if (!p)
-        return NULL;
-    
+	return NULL;
+
     return (*p->saveStream)(anchor);
 }
 
@@ -635,18 +635,18 @@ extern char LYinternal_flag;		       /* from LYMainLoop.c */
 **
 **  On Entry,
 **	  anchor	    is the node_anchor for the document
-**        full_address      The address of the document to be accessed.
-**        filter            if YES, treat stdin as HTML
+**	  full_address	    The address of the document to be accessed.
+**	  filter	    if YES, treat stdin as HTML
 **
 **  On Exit,
-**        returns    YES     Success in opening document
-**                   NO      Failure 
+**	  returns    YES     Success in opening document
+**		     NO      Failure
 */
 
-extern char LYforce_no_cache;			         /* from GridText.c */
+extern char LYforce_no_cache;				 /* from GridText.c */
 extern char LYoverride_no_cache;		       /* from LYMainLoop.c */
 extern char * HTLoadedDocumentURL NOPARAMS;		   /* in GridText.c */
-extern BOOL HText_hasNoCacheSet PARAMS((HText *text));     /* in GridText.c */
+extern BOOL HText_hasNoCacheSet PARAMS((HText *text));	   /* in GridText.c */
 extern BOOL reloading;
 extern BOOL permanent_redirection;
 #ifdef DIRED_SUPPORT
@@ -659,7 +659,7 @@ PRIVATE BOOL HTLoadDocument ARGS4(
 	HTFormat,		format_out,
 	HTStream*,		sink)
 {
-    int	        status;
+    int 	status;
     HText *	text;
     CONST char * address_to_load = full_address;
     char *cp;
@@ -667,40 +667,40 @@ PRIVATE BOOL HTLoadDocument ARGS4(
     static int redirection_attempts = 0;
 
     if (TRACE)
-        fprintf (stderr, "HTAccess: loading document %s\n", address_to_load);
+	fprintf (stderr, "HTAccess: loading document %s\n", address_to_load);
 
     /*
-    **  Free use_this_url_instead and reset permanent_redirection
-    **  if not done elsewhere. - FM
+    **	Free use_this_url_instead and reset permanent_redirection
+    **	if not done elsewhere. - FM
     */
     FREE(use_this_url_instead);
     permanent_redirection = FALSE;
 
     /*
-    **  Make sure some yoyo doesn't send us 'round in circles
-    **  with redirecting URLs that point back to themselves.
-    **  We'll set the original Lynx limit of 10 redirections
-    **  per requested URL from a user, because the HTTP/1.1
-    **  will no longer specify a restriction to 5, but will
-    **  leave it up to the browser's discretion, in deference
-    **  to MicroSoft.  - FM
+    **	Make sure some yoyo doesn't send us 'round in circles
+    **	with redirecting URLs that point back to themselves.
+    **	We'll set the original Lynx limit of 10 redirections
+    **	per requested URL from a user, because the HTTP/1.1
+    **	will no longer specify a restriction to 5, but will
+    **	leave it up to the browser's discretion, in deference
+    **	to MicroSoft.  - FM
     */
     if (redirection_attempts > 10) {
-        redirection_attempts = 0;
-	HTAlert("Redirection limit of 10 URLs reached.");
-        return NO;
+	redirection_attempts = 0;
+	HTAlert("Redirection limit of 10 URL's reached.");
+	return NO;
     }
 
     /*
-     *  If this is marked as an internal link but we don't have the
-     *  document loaded any more, and we haven't explicitly flagged
-     *  that we want to reload with LYforce_no_cache, then something
-     *  has disappeared from the cache when we expected it to be still
-     *  there.  The user probably doesn't expect a new network access.
-     *  So if we have POST data and safe is not set in the anchor,
-     *  ask for confirmation, and fail if not granted.  The exception
-     *  are LYNXIMGMAP documents, for which we defer to LYLoadIMGmap
-     *  for prompting if necessary. - kw
+     *	If this is marked as an internal link but we don't have the
+     *	document loaded any more, and we haven't explicitly flagged
+     *	that we want to reload with LYforce_no_cache, then something
+     *	has disappeared from the cache when we expected it to be still
+     *	there.	The user probably doesn't expect a new network access.
+     *	So if we have POST data and safe is not set in the anchor,
+     *	ask for confirmation, and fail if not granted.	The exception
+     *	are LYNXIMGMAP documents, for which we defer to LYLoadIMGmap
+     *	for prompting if necessary. - kw
      */
     if (LYinternal_flag && !LYforce_no_cache &&
 	anchor->post_data && !anchor->safe &&
@@ -712,14 +712,14 @@ PRIVATE BOOL HTLoadDocument ARGS4(
     }
 
     /*
-    **  If we don't have POST content, check whether this is a previous
-    **  redirecting URL, and keep re-checking until we get to the final
-    **  destination or redirection limit.  If we do have POST content,
-    **  we didn't allow permanent redirection, and an interactive user
-    **  will be deciding whether to keep redirecting. - FM
+    **	If we don't have POST content, check whether this is a previous
+    **	redirecting URL, and keep re-checking until we get to the final
+    **	destination or redirection limit.  If we do have POST content,
+    **	we didn't allow permanent redirection, and an interactive user
+    **	will be deciding whether to keep redirecting. - FM
     */
     if (!anchor->post_data) {
-        while ((cp = HTAnchor_physical(anchor)) != NULL &&
+	while ((cp = HTAnchor_physical(anchor)) != NULL &&
 	       !strncmp(cp, "Location=", 9)) {
 	    DocAddress NewDoc;
 
@@ -730,13 +730,13 @@ PRIVATE BOOL HTLoadDocument ARGS4(
 	    }
 
 	    /*
-	    **  Don't exceed the redirection_attempts limit. - FM
+	    **	Don't exceed the redirection_attempts limit. - FM
 	    */
 	    if (++redirection_attempts > 10) {
-		HTAlert("Redirection limit of 10 URLs reached.");
+		HTAlert("Redirection limit of 10 URL's reached.");
 		redirection_attempts = 0;
 		FREE(use_this_url_instead);
- 		return NO;
+		return NO;
 	    }
 
 	    /*
@@ -753,31 +753,31 @@ PRIVATE BOOL HTLoadDocument ARGS4(
 	}
     }
     /*
-    **  If we had previous redirection, go back and check out
-    **  that the URL under the current restrictions. - FM
+    **	If we had previous redirection, go back and check out
+    **	that the URL under the current restrictions. - FM
     */
     if (use_this_url_instead) {
 	FREE(redirecting_url);
-        return(NO);
+	return(NO);
     }
 
     /*
-    **  See if we can use an already loaded document.
+    **	See if we can use an already loaded document.
     */
-    if (!LYforce_no_cache && (text = (HText *)HTAnchor_document(anchor))) {	
+    if (!LYforce_no_cache && (text = (HText *)HTAnchor_document(anchor))) {
 	/*
 	**  We have a cached rendition of the target document.
 	**  Check if it's OK to re-use it.  We consider it OK if:
 	**   (1) the anchor does not have the no_cache element set, or
 	**   (2) we've overridden it, e.g., because we are acting on
-	**       a PREV_DOC command or a link in the History Page and
-	**       it's not a reply from a POST with the LYresubmit_posts
-	**       flag set, or
+	**	 a PREV_DOC command or a link in the History Page and
+	**	 it's not a reply from a POST with the LYresubmit_posts
+	**	 flag set, or
 	**   (3) we are repositioning within the currently loaded document
-	**       based on the target anchor's address (URL_Reference).
+	**	 based on the target anchor's address (URL_Reference).
 	*
 	*    If DONT_TRACK_INTERNAL_LINKS is defined, HText_AreDifferent()
-	*    is used to determine whether (3) applies.  If the target address
+	*    is used to determine whether (3) applies.	If the target address
 	*    differs from that of the current document only by a fragment
 	*    and the taget address has an appended fragment, repositioning
 	*    without reloading is always assumed.
@@ -825,13 +825,13 @@ PRIVATE BOOL HTLoadDocument ARGS4(
 	     strncmp(full_address, "LYNXIMGMAP:", 11)))
 #endif /* TRACK_INTERNAL_LINKS */
 	{
-            if (TRACE)
-	        fprintf(stderr, "HTAccess: Document already in memory.\n");
-            HText_select(text);
+	    if (TRACE)
+		fprintf(stderr, "HTAccess: Document already in memory.\n");
+	    HText_select(text);
 
 #ifdef DIRED_SUPPORT
 	    if (HTAnchor_format(anchor) == WWW_DIRED)
-	        lynx_edit_mode = TRUE;
+		lynx_edit_mode = TRUE;
 #endif
 	    redirection_attempts = 0;
 	    return YES;
@@ -843,17 +843,17 @@ PRIVATE BOOL HTLoadDocument ARGS4(
 	    reloading = TRUE;
 #endif
 	    ForcingNoCache = YES;
-            if (TRACE) {
-	        fprintf(stderr, "HTAccess: Auto-reloading document.\n");
+	    if (TRACE) {
+		fprintf(stderr, "HTAccess: Auto-reloading document.\n");
 	    }
 	}
     }
 
     /*
-    **  Get the document from the net.  If we are auto-reloading,
-    **  the mutable anchor elements from the previous rendition
-    **  should be freed in conjunction with loading of the new
-    **  rendition. - FM
+    **	Get the document from the net.	If we are auto-reloading,
+    **	the mutable anchor elements from the previous rendition
+    **	should be freed in conjunction with loading of the new
+    **	rendition. - FM
     */
     LYforce_no_cache = NO;  /* reset after each time through */
     if (ForcingNoCache) {
@@ -863,9 +863,9 @@ PRIVATE BOOL HTLoadDocument ARGS4(
     if (TRACE) {
 	fprintf(stderr, "HTAccess:  status=%d\n", status);
     }
-    
+
     /*
-    **  Log the access if necessary.
+    **	Log the access if necessary.
     */
     if (HTlogfile) {
 	time_t theTime;
@@ -883,12 +883,12 @@ PRIVATE BOOL HTLoadDocument ARGS4(
 		    status < 0 ? "FAIL" : "GET",
 		    full_address);
     }
-    
+
     /*
-    **  Check out what we received from the net.
+    **	Check out what we received from the net.
     */
     if (status == HT_REDIRECTING) {
-        /*  Exported from HTMIME.c, of all places. *//** NO!! - FM **/
+	/*  Exported from HTMIME.c, of all places. *//** NO!! - FM **/
 	/*
 	**  Doing this via HTMIME.c meant that the redirection cover
 	**  page was already loaded before we learned that we want a
@@ -906,32 +906,32 @@ PRIVATE BOOL HTLoadDocument ARGS4(
 	**  in LYGetFile.c when the status is HT_REDIRECTING.  This may
 	**  seem bizarre, but it works like a charm! - FM
 	*/
-        if (TRACE) {
-            fprintf(stderr, "HTAccess: '%s' is a redirection URL.\n",
+	if (TRACE) {
+	    fprintf(stderr, "HTAccess: '%s' is a redirection URL.\n",
 			    address_to_load);
-            fprintf(stderr, "HTAccess: Redirecting to '%s'\n",
+	    fprintf(stderr, "HTAccess: Redirecting to '%s'\n",
 			     redirecting_url);
-        }
+	}
 	/*
-	**  Prevent circular references. 
+	**  Prevent circular references.
 	*/
 	if (strcmp(address_to_load, redirecting_url)) { /* if different */
 	    /*
-	    **  Load token and redirecting url into anchor->physical
-	    **  if we had 301 Permanent redirection.  HTTP.c does not
-	    **  allow this if we have POST content. - FM
+	    **	Load token and redirecting url into anchor->physical
+	    **	if we had 301 Permanent redirection.  HTTP.c does not
+	    **	allow this if we have POST content. - FM
 	    */
 	    if (permanent_redirection) {
-	        StrAllocCopy(anchor->physical, "Location=");
-	        StrAllocCat(anchor->physical, redirecting_url);
+		StrAllocCopy(anchor->physical, "Location=");
+		StrAllocCat(anchor->physical, redirecting_url);
 	    }
 
-            /*
-	    **  Set up flags before return to getfile. - FM
+	    /*
+	    **	Set up flags before return to getfile. - FM
 	    */
-            StrAllocCopy(use_this_url_instead, redirecting_url);
+	    StrAllocCopy(use_this_url_instead, redirecting_url);
 	    if (ForcingNoCache)
-	        LYforce_no_cache = YES;
+		LYforce_no_cache = YES;
 	    ++redirection_attempts;
 	    FREE(redirecting_url);
 	    permanent_redirection = FALSE;
@@ -944,7 +944,7 @@ PRIVATE BOOL HTLoadDocument ARGS4(
     }
 
     /*
-    **  We did not receive a redirecting URL. - FM
+    **	We did not receive a redirecting URL. - FM
     */
     redirection_attempts = 0;
     FREE(redirecting_url);
@@ -968,25 +968,25 @@ PRIVATE BOOL HTLoadDocument ARGS4(
 
     if (status == HT_NO_DATA) {
 	if (TRACE) {
-	    fprintf(stderr, 
+	    fprintf(stderr,
 	    "HTAccess: `%s' has been accessed, No data left.\n",
 	    full_address);
 	}
 	return NO;
     }
-    
+
     if (status == HT_NOT_LOADED) {
 	if (TRACE) {
-	    fprintf(stderr, 
+	    fprintf(stderr,
 	    "HTAccess: `%s' has been accessed, No data loaded.\n",
 	    full_address);
 	}
 	return NO;
     }
-    
+
     if (status == HT_INTERRUPTED) {
 	if (TRACE) {
-	    fprintf(stderr, 
+	    fprintf(stderr,
 	    "HTAccess: `%s' has been accessed, transfer interrupted.\n",
 	    full_address);
 	}
@@ -1001,15 +1001,15 @@ PRIVATE BOOL HTLoadDocument ARGS4(
 	StrAllocCat(temp, "'");
 	_HTProgress(temp);
 	FREE(temp);
-	if (TRACE) fprintf(stderr, 
+	if (TRACE) fprintf(stderr,
 		"HTAccess: Can't access `%s'\n", full_address);
 	HTLoadError(sink, 500, "Unable to access document.");
 	return NO;
     }
- 
+
     /*
-    **  If you get this, then please find which routine is returning
-    **  a positive unrecognised error code!
+    **	If you get this, then please find which routine is returning
+    **	a positive unrecognised error code!
     */
     fprintf(stderr,
  "**** HTAccess: socket or file number returned by obsolete load routine!\n");
@@ -1024,12 +1024,12 @@ PRIVATE BOOL HTLoadDocument ARGS4(
 **	-----------------------------------
 **
 **  On Entry,
-**        addr     The absolute address of the document to be accessed.
-**        filter   if YES, treat document as HTML
+**	  addr	   The absolute address of the document to be accessed.
+**	  filter   if YES, treat document as HTML
 **
 **  On Exit,
-**        returns    YES     Success in opening document
-**                   NO      Failure 
+**	  returns    YES     Success in opening document
+**		     NO      Failure
 */
 PUBLIC BOOL HTLoadAbsolute ARGS1(
 	CONST DocAddress *,	docaddr)
@@ -1045,17 +1045,17 @@ PUBLIC BOOL HTLoadAbsolute ARGS1(
 **	---------------------------------------------
 **
 **  On Entry,
-**        addr     The absolute address of the document to be accessed.
-**        sink     if non-NULL, send data down this stream
+**	  addr	   The absolute address of the document to be accessed.
+**	  sink	   if non-NULL, send data down this stream
 **
 **  On Exit,
-**        returns    YES     Success in opening document
-**                   NO      Failure 
+**	  returns    YES     Success in opening document
+**		     NO      Failure
 */
 PUBLIC BOOL HTLoadToStream ARGS3(
 	CONST char *,	addr,
-	BOOL, 		filter,
-	HTStream *, 	sink)
+	BOOL,		filter,
+	HTStream *,	sink)
 {
     return HTLoadDocument(addr,
 			  HTAnchor_parent(HTAnchor_findAddress(addr)),
@@ -1068,12 +1068,12 @@ PUBLIC BOOL HTLoadToStream ARGS3(
 **	-----------------------------------
 **
 **  On Entry,
-**        relative_name     The relative address of the document
-**	  		    to be accessed.
+**	  relative_name     The relative address of the document
+**			    to be accessed.
 **
 **  On Exit,
-**        returns    YES     Success in opening document
-**                   NO      Failure 
+**	  returns    YES     Success in opening document
+**		     NO      Failure
 */
 PUBLIC BOOL HTLoadRelative ARGS2(
 	CONST char *,		relative_name,
@@ -1096,14 +1096,14 @@ PUBLIC BOOL HTLoadRelative ARGS2(
 
     stripped = HTStrip(mycopy);
     full_address.address =
-    		HTParse(stripped,
+		HTParse(stripped,
 			current_address,
 			PARSE_ACCESS|PARSE_HOST|PARSE_PATH|PARSE_PUNCTUATION);
     result = HTLoadAbsolute(&full_address);
     /*
-    **  If we got redirection, result will be NO, but use_this_url_instead
-    **  will be set.  The calling routine should check both and do whatever
-    **  is appropriate. - FM
+    **	If we got redirection, result will be NO, but use_this_url_instead
+    **	will be set.  The calling routine should check both and do whatever
+    **	is appropriate. - FM
     */
     FREE(full_address.address);
     FREE(current_address);
@@ -1115,11 +1115,11 @@ PUBLIC BOOL HTLoadRelative ARGS2(
 **	----------------------------------------
 **
 **  On Entry,
-**        destination      	    The child or parenet anchor to be loaded.
+**	  destination		    The child or parenet anchor to be loaded.
 **
 **  On Exit,
-**        returns    YES     Success
-**                   NO      Failure 
+**	  returns    YES     Success
+**		     NO      Failure
 */
 PUBLIC BOOL HTLoadAnchor ARGS1(
 	HTAnchor *,	destination)
@@ -1127,14 +1127,14 @@ PUBLIC BOOL HTLoadAnchor ARGS1(
     HTParentAnchor * parent;
     BOOL loaded = NO;
     if (!destination)
-        return NO;	/* No link */
-    
+	return NO;	/* No link */
+
     parent = HTAnchor_parent(destination);
-    
+
     if (HTAnchor_document(parent) == NULL) {	/* If not alread loaded */
-    						/* TBL 921202 */
-        BOOL result;
-        char * address = HTAnchor_address((HTAnchor*) parent);
+						/* TBL 921202 */
+	BOOL result;
+	char * address = HTAnchor_address((HTAnchor*) parent);
 
 	result = HTLoadDocument(address,
 				parent,
@@ -1145,23 +1145,23 @@ PUBLIC BOOL HTLoadAnchor ARGS1(
 	if (!result) return NO;
 	loaded = YES;
     }
-    
+
     {
 	HText *text = (HText*)HTAnchor_document(parent);
 
 	if (destination != (HTAnchor *)parent) {  /* If child anchor */
-	    HText_selectAnchor(text, 		  /* Double display? @@ */
+	    HText_selectAnchor(text,		  /* Double display? @@ */
 			       (HTChildAnchor*)destination);
 	} else {
 	    if (!loaded)
-	        HText_select(text);
+		HText_select(text);
 	}
     }
     return YES;
-	
+
 } /* HTLoadAnchor */
 
-/*	Search.						HTSearch()
+/*	Search. 					HTSearch()
 **	-------
 **
 **	Performs a keyword search on word given by the user.  Adds the
@@ -1169,7 +1169,7 @@ PUBLIC BOOL HTLoadAnchor ARGS1(
 **	the new address.
 **
 **  On Entry,
-**       *keywords  	space-separated keyword list or similar search list
+**	 *keywords	space-separated keyword list or similar search list
 **	here		is anchor search is to be done on.
 */
 PRIVATE char hex ARGS1(
@@ -1180,8 +1180,8 @@ PRIVATE char hex ARGS1(
 }
 
 PUBLIC BOOL HTSearch ARGS2(
-	CONST char *, 		keywords,
-	HTParentAnchor *, 	here)
+	CONST char *,		keywords,
+	HTParentAnchor *,	here)
 {
 #define acceptable \
 "1234567890abcdefghijlkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-_"
@@ -1193,29 +1193,29 @@ PUBLIC BOOL HTSearch ARGS2(
     char * escaped = (char *)calloc(1, ((strlen(keywords)*3) + 1));
     static CONST BOOL isAcceptable[96] =
 
-    /*   0 1 2 3 4 5 6 7 8 9 A B C D E F */
-    {    0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,	/* 2x   !"#$%&'()*+,-./	 */
-         1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,	/* 3x  0123456789:;<=>?	 */
+    /*	 0 1 2 3 4 5 6 7 8 9 A B C D E F */
+    {	 0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,	/* 2x	!"#$%&'()*+,-./  */
+	 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,	/* 3x  0123456789:;<=>?  */
 	 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,	/* 4x  @ABCDEFGHIJKLMNO  */
-	 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,	/* 5X  PQRSTUVWXYZ[\]^_	 */
-	 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,	/* 6x  `abcdefghijklmno	 */
+	 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,	/* 5X  PQRSTUVWXYZ[\]^_  */
+	 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,	/* 6x  `abcdefghijklmno  */
 	 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0 };	/* 7X  pqrstuvwxyz{\}~	DEL */
 
     if (escaped == NULL)
-        outofmem(__FILE__, "HTSearch");
-    
+	outofmem(__FILE__, "HTSearch");
+
     StrAllocCopy(address, here->isIndexAction);
 
     /*
-    **  Convert spaces to + and hex escape unacceptable characters.
+    **	Convert spaces to + and hex escape unacceptable characters.
     */
     for (s = keywords; *s && WHITE(*s); s++)		 /* Scan */
-        ;	/* Skip white space */
+	;	/* Skip white space */
     for (e = s + strlen(s); e > s && WHITE(*(e-1)); e--) /* Scan */
-        ;	/* Skip trailers */
+	;	/* Skip trailers */
     for (q = escaped, p = s; p < e; p++) {	/* Scan stripped field */
-        unsigned char c = (unsigned char)TOASCII(*p);
-        if (WHITE(*p)) {
+	unsigned char c = (unsigned char)TOASCII(*p);
+	if (WHITE(*p)) {
 	    *q++ = '+';
 	} else if (HTCJK != NOCJK) {
 	    *q++ = *p;
@@ -1230,26 +1230,26 @@ PUBLIC BOOL HTSearch ARGS2(
     *q = '\0';			/* Terminate escaped string */
     u = strchr(address, '?');	/* Find old search string */
     if (u != NULL)
-        *u = '\0';		/* Chop old search off */
+	*u = '\0';		/* Chop old search off */
 
     StrAllocCat(address, "?");
     StrAllocCat(address, escaped);
     FREE(escaped);
     result = HTLoadRelative(address, here);
     FREE(address);
-    
+
     /*
-    **  If we got redirection, result will be NO, but use_this_url_instead
-    **  will be set.  The calling routine should check both and do whatever
-    **  is appropriate.  Only an http server (not a gopher or wais server)
-    **  could return redirection.  Lynx will go all the way back to its
-    **  mainloop() and subject a redirecting URL to all of its security and
-    **  restrictions checks. - FM
+    **	If we got redirection, result will be NO, but use_this_url_instead
+    **	will be set.  The calling routine should check both and do whatever
+    **	is appropriate.  Only an http server (not a gopher or wais server)
+    **	could return redirection.  Lynx will go all the way back to its
+    **	mainloop() and subject a redirecting URL to all of its security and
+    **	restrictions checks. - FM
     */
     return result;
 }
 
-/*	Search Given Indexname.			HTSearchAbsolute()
+/*	Search Given Indexname. 		HTSearchAbsolute()
 **	-----------------------
 **
 **	Performs a keyword search on word given by the user.  Adds the
@@ -1257,12 +1257,12 @@ PUBLIC BOOL HTSearch ARGS2(
 **	the new address.
 **
 **  On Entry,
-**       *keywords  	space-separated keyword list or similar search list
-**	*addres		is name of object search is to be done on.
+**	 *keywords	space-separated keyword list or similar search list
+**	*addres 	is name of object search is to be done on.
 */
 PUBLIC BOOL HTSearchAbsolute ARGS2(
-	CONST char *, 	keywords,
-	CONST char *, 	indexname)
+	CONST char *,	keywords,
+	CONST char *,	indexname)
 {
     DocAddress abs_doc;
     HTParentAnchor * anchor;
@@ -1298,23 +1298,23 @@ PUBLIC HTParentAnchor * HTHomeAnchor NOARGS
     char * home = (char *)getenv(LOGICAL_DEFAULT);
     char * ref;
     HTParentAnchor * anchor;
-    
+
     if (home) {
-        StrAllocCopy(my_home_document, home);
+	StrAllocCopy(my_home_document, home);
 #define MAX_FILE_NAME 1024			/* @@@ */
     } else if (HTClientHost) {			/* Telnet server */
-	/* 
+	/*
 	**  Someone telnets in, they get a special home.
 	*/
-    	FILE * fp = fopen(REMOTE_POINTER, "r");
+	FILE * fp = fopen(REMOTE_POINTER, "r");
 	char * status;
 	if (fp) {
 	    my_home_document = (char*)calloc(1, MAX_FILE_NAME);
 	    if (my_home_document == NULL)
-	        outofmem(__FILE__, "HTHomeAnchor");
+		outofmem(__FILE__, "HTHomeAnchor");
 	    status = fgets(my_home_document, MAX_FILE_NAME, fp);
 	    if (!status) {
-	        FREE(my_home_document);
+		FREE(my_home_document);
 	    }
 	    fclose(fp);
 	}
@@ -1326,15 +1326,15 @@ PUBLIC HTParentAnchor * HTHomeAnchor NOARGS
     if (my_home_document == NULL) {
 	FILE * fp = NULL;
 	CONST char * home =  (CONST char*)getenv("HOME");
-	if (home != null) { 
+	if (home != null) {
 	    my_home_document = (char *)calloc(1,
 		(strlen(home) + 1 + strlen(PERSONAL_DEFAULT) + 1));
 	    if (my_home_document == NULL)
-	        outofmem(__FILE__, "HTAnchorHome");
+		outofmem(__FILE__, "HTAnchorHome");
 	    sprintf(my_home_document, "%s/%s", home, PERSONAL_DEFAULT);
 	    fp = fopen(my_home_document, "r");
 	}
-	
+
 	if (!fp) {
 	    StrAllocCopy(my_home_document, LOCAL_DEFAULT_FILE);
 	    fp = fopen(my_home_document, "r");
@@ -1343,7 +1343,7 @@ PUBLIC HTParentAnchor * HTHomeAnchor NOARGS
 	    fclose(fp);
 	} else {
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTBrowse: No local home document ~/%s or %s\n",
 			PERSONAL_DEFAULT, LOCAL_DEFAULT_FILE);
 	    FREE(my_home_document);
@@ -1351,8 +1351,8 @@ PUBLIC HTParentAnchor * HTHomeAnchor NOARGS
     }
 #endif /* unix */
     ref = HTParse((my_home_document ?
-    		   my_home_document : (HTClientHost ?
-		   		     REMOTE_ADDRESS : LAST_RESORT)),
+		   my_home_document : (HTClientHost ?
+				     REMOTE_ADDRESS : LAST_RESORT)),
 		  "file:",
 		  PARSE_ACCESS|PARSE_HOST|PARSE_PATH|PARSE_PUNCTUATION);
     if (my_home_document) {
diff --git a/WWW/Library/Implementation/HTAnchor.c b/WWW/Library/Implementation/HTAnchor.c
index b15d5e6b..6f8c0d3f 100644
--- a/WWW/Library/Implementation/HTAnchor.c
+++ b/WWW/Library/Implementation/HTAnchor.c
@@ -6,8 +6,8 @@
 **
 ** History
 **
-**         Nov 1990  Written in Objective-C for the NeXT browser (TBL)
-**	24-Oct-1991 (JFG), written in C, browser-independant 
+**	   Nov 1990  Written in Objective-C for the NeXT browser (TBL)
+**	24-Oct-1991 (JFG), written in C, browser-independant
 **	21-Nov-1991 (JFG), first complete version
 **
 **	(c) Copyright CERN 1991 - See Copyright.html
@@ -38,8 +38,8 @@
 	(unsigned short int)TOUPPER(*cp_address) % HASH_SIZE)
 #endif /* NOT_DEFINED */
 /*
- *	This is the original function.  We'll use it again. - FM
- */ 
+ *	This is the original function.	We'll use it again. - FM
+ */
 PRIVATE int HASH_FUNCTION ARGS1(
 	CONST char *,	cp_address)
 {
@@ -47,7 +47,7 @@ PRIVATE int HASH_FUNCTION ARGS1(
     unsigned char *p;
 
     for (p = (unsigned char *)cp_address, hash = 0; *p; p++)
-    	hash = (int) (hash * 3 + (*(unsigned char *)p)) % HASH_SIZE;
+	hash = (int) (hash * 3 + (*(unsigned char *)p)) % HASH_SIZE;
 
     return hash;
 }
@@ -70,24 +70,24 @@ PRIVATE HTList **adult_table = 0;  /* Point to table of lists of all parents */
 */
 PRIVATE HTParentAnchor * HTParentAnchor_new NOARGS
 {
-    HTParentAnchor *newAnchor = 
+    HTParentAnchor *newAnchor =
        (HTParentAnchor *)calloc(1, sizeof(HTParentAnchor));  /* zero-filled */
     newAnchor->parent = newAnchor;
-    newAnchor->bookmark = NULL;		/* Bookmark filename. - FM */
+    newAnchor->bookmark = NULL; 	/* Bookmark filename. - FM */
     newAnchor->isISMAPScript = FALSE;	/* Lynx appends ?0,0 if TRUE. - FM */
     newAnchor->isHEAD = FALSE;		/* HEAD request if TRUE. - FM */
     newAnchor->safe = FALSE;		/* Safe. - FM */
     newAnchor->FileCache = NULL;	/* Path to a disk-cached copy. - FM */
-    newAnchor->SugFname = NULL;		/* Suggested filename. - FM */
-    newAnchor->RevTitle = NULL;		/* TITLE for a LINK with REV. - FM */
+    newAnchor->SugFname = NULL; 	/* Suggested filename. - FM */
+    newAnchor->RevTitle = NULL; 	/* TITLE for a LINK with REV. - FM */
     newAnchor->cache_control = NULL;	/* Cache-Control. - FM */
     newAnchor->no_cache = FALSE;	/* no-cache? - FM */
     newAnchor->content_type = NULL;	/* Content-Type. - FM */
-    newAnchor->content_language = NULL;	/* Content-Language. - FM */
-    newAnchor->content_encoding = NULL;	/* Compression algorith. - FM */
+    newAnchor->content_language = NULL; /* Content-Language. - FM */
+    newAnchor->content_encoding = NULL; /* Compression algorith. - FM */
     newAnchor->content_base = NULL;	/* Content-Base. - FM */
     newAnchor->content_disposition = NULL; /* Content-Disposition. - FM */
-    newAnchor->content_location = NULL;	/* Content-Location. - FM */
+    newAnchor->content_location = NULL; /* Content-Location. - FM */
     newAnchor->content_md5 = NULL;	/* Content-MD5. - FM */
     newAnchor->content_length = 0;	/* Content-Length. - FM */
     newAnchor->date = NULL;		/* Date. - FM */
@@ -110,22 +110,22 @@ PRIVATE HTChildAnchor * HTChildAnchor_new NOARGS
 **	s	Points to one string, null terminated
 **	t	points to the other.
 ** On exit,
-**	returns	YES if the strings are equivalent ignoring case
-**		NO if they differ in more than  their case.
+**	returns YES if the strings are equivalent ignoring case
+**		NO if they differ in more than	their case.
 */
 PRIVATE BOOL HTEquivalent ARGS2(
 	CONST char *,	s,
 	CONST char *,	t)
 {
     if (s && t) {  /* Make sure they point to something */
-        for (; *s && *t; s++, t++) {
-            if (TOUPPER(*s) != TOUPPER(*t)) {
-	        return NO;
+	for (; *s && *t; s++, t++) {
+	    if (TOUPPER(*s) != TOUPPER(*t)) {
+		return NO;
 	    }
-        }
-        return TOUPPER(*s) == TOUPPER(*t);
+	}
+	return TOUPPER(*s) == TOUPPER(*t);
     } else {
-        return s == t;  /* Two NULLs are equivalent, aren't they ? */
+	return s == t;	/* Two NULLs are equivalent, aren't they ? */
     }
 }
 
@@ -137,7 +137,7 @@ PRIVATE BOOL HTEquivalent ARGS2(
 **	s	Points to one string, null terminated
 **	t	points to the other.
 ** On exit,
-**	returns	YES if the strings are identical or both NULL
+**	returns YES if the strings are identical or both NULL
 **		NO if they differ.
 */
 PRIVATE BOOL HTIdentical ARGS2(
@@ -145,14 +145,14 @@ PRIVATE BOOL HTIdentical ARGS2(
 	CONST char *,	t)
 {
     if (s && t) {  /* Make sure they point to something */
-        for (; *s && *t; s++, t++) {
-            if (*s != *t) {
-	        return NO;
+	for (; *s && *t; s++, t++) {
+	    if (*s != *t) {
+		return NO;
 	    }
-        }
-        return *s == *t;
+	}
+	return *s == *t;
     } else {
-        return s == t;  /* Two NULLs are identical, aren't they ? */
+	return s == t;	/* Two NULLs are identical, aren't they ? */
     }
 }
 #endif /* CASE_INSENSITIVE_ANCHORS */
@@ -172,38 +172,38 @@ PUBLIC HTChildAnchor * HTAnchor_findChild ARGS2(
     HTList *kids;
 
     if (!parent) {
-        if (TRACE)
+	if (TRACE)
 	    fprintf(stderr, "HTAnchor_findChild called with NULL parent.\n");
-        return NULL;
+	return NULL;
     }
     if ((kids = parent->children) != 0) {
 	/*
 	**  Parent has children.  Search them.
 	*/
-        if (tag && *tag) {		/* TBL */
+	if (tag && *tag) {		/* TBL */
 	    while (NULL != (child=(HTChildAnchor *)HTList_nextObject(kids))) {
 #ifdef CASE_INSENSITIVE_ANCHORS
-	        if (HTEquivalent(child->tag, tag)) { /* Case insensitive */
+		if (HTEquivalent(child->tag, tag)) { /* Case insensitive */
 #else
-	        if (HTIdentical(child->tag, tag)) {  /* Case sensitive - FM */
+		if (HTIdentical(child->tag, tag)) {  /* Case sensitive - FM */
 #endif /* CASE_INSENSITIVE_ANCHORS */
 		    if (TRACE)
-		        fprintf(stderr,
+			fprintf(stderr,
 	      "Child anchor %p of parent %p with name `%s' already exists.\n",
-		    		(void *)child, (void *)parent, tag);
+				(void *)child, (void *)parent, tag);
 		    return child;
-	        }
+		}
 	    }
-        }  /*  end if tag is void */
+	}  /*  end if tag is void */
     } else {  /* parent doesn't have any children yet : create family */
-        parent->children = HTList_new();
+	parent->children = HTList_new();
     }
 
     child = HTChildAnchor_new();
     if (TRACE)
-        fprintf(stderr,
+	fprintf(stderr,
 		"new Anchor %p named `%s' is child of %p\n",
-       		(void *)child, 
+		(void *)child,
 		tag ? tag : (CONST char *)"",
 		(void *)parent); /* int for apollo */
     HTList_addObject (parent->children, child);
@@ -221,7 +221,7 @@ PUBLIC HTChildAnchor * HTAnchor_findChild ARGS2(
 **	(Code originally in ParseHTML.h)
 */
 PUBLIC HTChildAnchor * HTAnchor_findChildAndLink ARGS4(
-	HTParentAnchor *,	parent,	/* May not be 0   */
+	HTParentAnchor *,	parent, /* May not be 0   */
 	CONST char *,		tag,	/* May be "" or 0 */
 	CONST char *,		href,	/* May be "" or 0 */
 	HTLinkType *,		ltype)	/* May be 0	  */
@@ -229,14 +229,14 @@ PUBLIC HTChildAnchor * HTAnchor_findChildAndLink ARGS4(
     HTChildAnchor * child = HTAnchor_findChild(parent, tag);
 
     if (TRACE)
-        fprintf(stderr,"Entered HTAnchor_findChildAndLink\n");
+	fprintf(stderr,"Entered HTAnchor_findChildAndLink\n");
 
     if (href && *href) {
-        char *relative_to = HTAnchor_address((HTAnchor *)parent);
-        DocAddress parsed_doc;
-        HTAnchor * dest;
+	char *relative_to = HTAnchor_address((HTAnchor *)parent);
+	DocAddress parsed_doc;
+	HTAnchor * dest;
 
-        parsed_doc.address = HTParse(href, relative_to, PARSE_ALL);
+	parsed_doc.address = HTParse(href, relative_to, PARSE_ALL);
 #ifndef DONT_TRACK_INTERNAL_LINKS
 	if (ltype && parent->post_data && ltype == LINK_INTERNAL) {
 	    /* for internal links, find a destination with the same
@@ -252,11 +252,11 @@ PUBLIC HTChildAnchor * HTAnchor_findChildAndLink ARGS4(
 	parsed_doc.bookmark = NULL;
 	parsed_doc.isHEAD = FALSE;
 	parsed_doc.safe = FALSE;
-        dest = HTAnchor_findAddress(&parsed_doc);
+	dest = HTAnchor_findAddress(&parsed_doc);
 
-        HTAnchor_link((HTAnchor *)child, dest, ltype);
-        FREE(parsed_doc.address);
-        FREE(relative_to);
+	HTAnchor_link((HTAnchor *)child, dest, ltype);
+	FREE(parsed_doc.address);
+	FREE(relative_to);
     }
     return child;
 }
@@ -270,7 +270,7 @@ PRIVATE void free_adult_table NOARGS
     HTList * HTAp_freeme;
     HTParentAnchor * parent;
     /*
-     *  Loop through all lists.
+     *	Loop through all lists.
      */
     for (i_counter = 0; i_counter < HASH_SIZE; i_counter++) {
 	/*
@@ -278,7 +278,7 @@ PRIVATE void free_adult_table NOARGS
 	*/
 	while (adult_table[i_counter] != NULL) {
 	    /*
-	    **  Free off items - FM
+	    **	Free off items - FM
 	    */
 	    HTAp_freeme = adult_table[i_counter];
 	    adult_table[i_counter] = HTAp_freeme->next;
@@ -310,95 +310,95 @@ PUBLIC HTAnchor * HTAnchor_findAddress ARGS1(
 	fprintf(stderr,"Entered HTAnchor_findAddress\n");
 
     /*
-    **  If the address represents a sub-anchor, we recursively load its
-    **  parent, then we create a child anchor within that document.
+    **	If the address represents a sub-anchor, we recursively load its
+    **	parent, then we create a child anchor within that document.
     */
     if (*tag) {
-        DocAddress parsed_doc;
-        HTParentAnchor * foundParent;
-        HTChildAnchor * foundAnchor;
+	DocAddress parsed_doc;
+	HTParentAnchor * foundParent;
+	HTChildAnchor * foundAnchor;
 
-        parsed_doc.address = HTParse(newdoc->address, "", 
+	parsed_doc.address = HTParse(newdoc->address, "",
 		PARSE_ACCESS | PARSE_HOST | PARSE_PATH | PARSE_PUNCTUATION);
-        parsed_doc.post_data = newdoc->post_data;
-        parsed_doc.post_content_type = newdoc->post_content_type;
-        parsed_doc.bookmark = newdoc->bookmark;
-        parsed_doc.isHEAD = newdoc->isHEAD;
-        parsed_doc.safe = newdoc->safe;
-
-        foundParent = (HTParentAnchor *)HTAnchor_findAddress(&parsed_doc);
-        foundAnchor = HTAnchor_findChild (foundParent, tag);
-        FREE(parsed_doc.address);
-        FREE(tag);
-        return (HTAnchor *)foundAnchor;
+	parsed_doc.post_data = newdoc->post_data;
+	parsed_doc.post_content_type = newdoc->post_content_type;
+	parsed_doc.bookmark = newdoc->bookmark;
+	parsed_doc.isHEAD = newdoc->isHEAD;
+	parsed_doc.safe = newdoc->safe;
+
+	foundParent = (HTParentAnchor *)HTAnchor_findAddress(&parsed_doc);
+	foundAnchor = HTAnchor_findChild (foundParent, tag);
+	FREE(parsed_doc.address);
+	FREE(tag);
+	return (HTAnchor *)foundAnchor;
     } else {
-        /*
-	**  If the address has no anchor tag, 
+	/*
+	**  If the address has no anchor tag,
 	**  check whether we have this node.
 	*/
-        int hash;
-        HTList * adults;
-        HTList *grownups;
-        HTParentAnchor * foundAnchor;
+	int hash;
+	HTList * adults;
+	HTList *grownups;
+	HTParentAnchor * foundAnchor;
 
-        FREE(tag);
+	FREE(tag);
 
-        /*
+	/*
 	**  Select list from hash table,
 	*/
-        hash = HASH_FUNCTION(newdoc->address);
-        if (!adult_table) {
-            adult_table = (HTList **)calloc(HASH_SIZE, sizeof(HTList *));
+	hash = HASH_FUNCTION(newdoc->address);
+	if (!adult_table) {
+	    adult_table = (HTList **)calloc(HASH_SIZE, sizeof(HTList *));
 	    atexit(free_adult_table);
-        }
-        if (!adult_table[hash])
-            adult_table[hash] = HTList_new();
-        adults = adult_table[hash];
+	}
+	if (!adult_table[hash])
+	    adult_table[hash] = HTList_new();
+	adults = adult_table[hash];
 
-        /*
+	/*
 	**  Search list for anchor.
 	*/
-        grownups = adults;
-        while (NULL != (foundAnchor =
+	grownups = adults;
+	while (NULL != (foundAnchor =
 			(HTParentAnchor *)HTList_nextObject(grownups))) {
 #ifdef CASE_INSENSITIVE_ANCHORS
-            if (HTEquivalent(foundAnchor->address, newdoc->address) &&
-	        HTEquivalent(foundAnchor->post_data, newdoc->post_data) &&
-	        foundAnchor->isHEAD == newdoc->isHEAD)
+	    if (HTEquivalent(foundAnchor->address, newdoc->address) &&
+		HTEquivalent(foundAnchor->post_data, newdoc->post_data) &&
+		foundAnchor->isHEAD == newdoc->isHEAD)
 #else
-            if (HTIdentical(foundAnchor->address, newdoc->address) &&
-	        HTIdentical(foundAnchor->post_data, newdoc->post_data) &&
-	        foundAnchor->isHEAD == newdoc->isHEAD)
+	    if (HTIdentical(foundAnchor->address, newdoc->address) &&
+		HTIdentical(foundAnchor->post_data, newdoc->post_data) &&
+		foundAnchor->isHEAD == newdoc->isHEAD)
 #endif /* CASE_INSENSITIVE_ANCHORS */
 	    {
-	        if (TRACE)
+		if (TRACE)
 		    fprintf(stderr,
-		    	    "Anchor %p with address `%s' already exists.\n",
+			    "Anchor %p with address `%s' already exists.\n",
 			    (void *)foundAnchor, newdoc->address);
-	         return (HTAnchor *)foundAnchor;
-             }
-        }
-    
-        /*
+		 return (HTAnchor *)foundAnchor;
+	     }
+	}
+
+	/*
 	**  Node not found: create new anchor.
 	*/
-        foundAnchor = HTParentAnchor_new();
-        if (TRACE)
+	foundAnchor = HTParentAnchor_new();
+	if (TRACE)
 	    fprintf(stderr,
-	    	    "New anchor %p has hash %d and address `%s'\n",
-    	    	    (void *)foundAnchor, hash, newdoc->address);
-        StrAllocCopy(foundAnchor->address, newdoc->address);
-        if (newdoc->post_data)
+		    "New anchor %p has hash %d and address `%s'\n",
+		    (void *)foundAnchor, hash, newdoc->address);
+	StrAllocCopy(foundAnchor->address, newdoc->address);
+	if (newdoc->post_data)
 	    StrAllocCopy(foundAnchor->post_data, newdoc->post_data);
-        if (newdoc->post_content_type)
+	if (newdoc->post_content_type)
 	    StrAllocCopy(foundAnchor->post_content_type,
-	    		 newdoc->post_content_type);
-        if (newdoc->bookmark)
+			 newdoc->post_content_type);
+	if (newdoc->bookmark)
 	    StrAllocCopy(foundAnchor->bookmark, newdoc->bookmark);
-        foundAnchor->isHEAD = newdoc->isHEAD;
-        foundAnchor->safe = newdoc->safe;
-        HTList_addObject (adults, foundAnchor);
-        return (HTAnchor *)foundAnchor;
+	foundAnchor->isHEAD = newdoc->isHEAD;
+	foundAnchor->safe = newdoc->safe;
+	HTList_addObject (adults, foundAnchor);
+	return (HTAnchor *)foundAnchor;
     }
 }
 
@@ -416,19 +416,19 @@ PRIVATE void deleteLinks ARGS1(
 	HTAnchor *,	me)
 {
     /*
-     *  Memory leaks fixed.
-     *  05-27-94 Lynx 2-3-1 Garrett Arch Blythe
+     *	Memory leaks fixed.
+     *	05-27-94 Lynx 2-3-1 Garrett Arch Blythe
      */
 
     /*
-     *  Anchor is NULL, do nothing.
+     *	Anchor is NULL, do nothing.
      */
     if (!me) {
 	return;
     }
 
     /*
-     *  Unregister me with our mainLink destination anchor's parent.
+     *	Unregister me with our mainLink destination anchor's parent.
      */
     if (me->mainLink.dest) {
 	HTParentAnchor *parent = me->mainLink.dest->parent;
@@ -439,7 +439,7 @@ PRIVATE void deleteLinks ARGS1(
 	 */
 	if (!HTList_isEmpty(parent->sources)) {
 	    /*
-	     *  Really should only need to deregister once.
+	     *	Really should only need to deregister once.
 	     */
 	    HTList_removeObject(parent->sources, (void *)me);
 	}
@@ -470,7 +470,7 @@ PRIVATE void deleteLinks ARGS1(
     }
 
     /*
-     *  Check for extra destinations in our links list.
+     *	Check for extra destinations in our links list.
      */
     if (!HTList_isEmpty(me->links)) {
 	HTLink *target;
@@ -484,48 +484,48 @@ PRIVATE void deleteLinks ARGS1(
 	while ((target = (HTLink *)HTList_removeLastObject(me->links)) != 0) {
 	    parent = target->dest->parent;
 	    if (!HTList_isEmpty(parent->sources)) {
-	        /*
-	         *  Only need to tell destination parent
-	         *  anchor once.
-	         */
-	        HTList_removeObject(parent->sources, (void *)me);
+		/*
+		 *  Only need to tell destination parent
+		 *  anchor once.
+		 */
+		HTList_removeObject(parent->sources, (void *)me);
 	    }
 
 	    /*
-	     *  Avoid calling overhead.
-	     *  If the parent hasn't a loaded document, then
-	     *     we will attempt to have the parent
-	     *     delete itself.
-	     *  Don't call twice if this is the same anchor
-	     *     that we are trying to delete.
-	     *  Also, don't do this if we are trying to delete
-	     *     our parent.
+	     *	Avoid calling overhead.
+	     *	If the parent hasn't a loaded document, then
+	     *	   we will attempt to have the parent
+	     *	   delete itself.
+	     *	Don't call twice if this is the same anchor
+	     *	   that we are trying to delete.
+	     *	Also, don't do this if we are trying to delete
+	     *	   our parent.
 	     */
 	    if (!parent->document &&
-	        (HTParentAnchor *)me != parent &&
-	        me->parent != parent) {
-	        HTAnchor_delete(parent);
+		(HTParentAnchor *)me != parent &&
+		me->parent != parent) {
+		HTAnchor_delete(parent);
 	    }
 	    /*
-	     *  The link structure has to be deleted, too!
-	     *  That was missing, but this code probably never
-	     *  got exercised by Lynx.  - KW
+	     *	The link structure has to be deleted, too!
+	     *	That was missing, but this code probably never
+	     *	got exercised by Lynx.	- KW
 	     */
 	    FREE(target);
-        }
+	}
 
-        /*
-         *  At this point, me no longer has any destination in
-         *  the links list.  Get rid of it.
-         */
-        if (me->links) {
+	/*
+	 *  At this point, me no longer has any destination in
+	 *  the links list.  Get rid of it.
+	 */
+	if (me->links) {
 	    HTList_delete(me->links);
 	    me->links = NULL;
-        }
+	}
     }
 
     /*
-     *  Catch in case links list exists but nothing in it.
+     *	Catch in case links list exists but nothing in it.
      */
     if (me->links) {
 	HTList_delete(me->links);
@@ -537,46 +537,46 @@ PUBLIC BOOL HTAnchor_delete ARGS1(
 	HTParentAnchor *,	me)
 {
     /*
-     *  Memory leaks fixed.
+     *	Memory leaks fixed.
      * 05-27-94 Lynx 2-3-1 Garrett Arch Blythe
      */
     HTList *cur;
     HTChildAnchor *child;
 
     /*
-     *  Do nothing if nothing to do.
+     *	Do nothing if nothing to do.
      */
     if (!me) {
 	return(NO);
     }
 
     /*
-     *  Don't delete if document is loaded or being loaded.
+     *	Don't delete if document is loaded or being loaded.
      */
     if (me->document || me->underway) {
 	return(NO);
     }
 
     /*
-     *  Recursively try to delete destination anchors of this parent.
-     *  In any event, this will tell all destination anchors that we
-     *  no longer consider them a destination.
+     *	Recursively try to delete destination anchors of this parent.
+     *	In any event, this will tell all destination anchors that we
+     *	no longer consider them a destination.
      */
     deleteLinks((HTAnchor *)me);
 
     /*
-     *  There are still incoming links to this one (we are the
-     *  destination of another anchor).
-     *  Don't actually delete this anchor, but children are OK to
-     *  delete their links.
+     *	There are still incoming links to this one (we are the
+     *	destination of another anchor).
+     *	Don't actually delete this anchor, but children are OK to
+     *	delete their links.
      */
     if (!HTList_isEmpty(me->sources)) {
-        /*
+	/*
 	 *  Delete all outgoing links from children, do not
 	 *  delete the children, though.
 	 */
 	if (!HTList_isEmpty(me->children)) {
-	    cur = me->children; 
+	    cur = me->children;
 	    while ((child = (HTChildAnchor *)HTList_nextObject(cur)) != 0) {
 		if (child != NULL) {
 		    deleteLinks((HTAnchor *)child);
@@ -591,8 +591,8 @@ PUBLIC BOOL HTAnchor_delete ARGS1(
     }
 
     /*
-     *  No more incoming links : kill everything
-     *  First, recursively delete children and their links.
+     *	No more incoming links : kill everything
+     *	First, recursively delete children and their links.
      */
     if (!HTList_isEmpty(me->children)) {
 	while ((child = (HTChildAnchor *)HTList_removeLastObject(
@@ -608,7 +608,7 @@ PUBLIC BOOL HTAnchor_delete ARGS1(
     }
 
     /*
-     *  Delete our empty list of children.
+     *	Delete our empty list of children.
      */
     if (me->children) {
 	HTList_delete(me->children);
@@ -624,7 +624,7 @@ PUBLIC BOOL HTAnchor_delete ARGS1(
     }
 
     /*
-     *  Delete the methods list.
+     *	Delete the methods list.
      */
     if (me->methods) {
 	/*
@@ -636,7 +636,7 @@ PUBLIC BOOL HTAnchor_delete ARGS1(
     }
 
     /*
-     *  Free up all allocated members.
+     *	Free up all allocated members.
      */
     FREE(me->charset);
     FREE(me->isIndexAction);
@@ -672,9 +672,9 @@ PUBLIC BOOL HTAnchor_delete ARGS1(
 #ifdef USE_HASH
     FREE(me->style);
 #endif
- 
+
     /*
-     *  Remove ourselves from the hash table's list.
+     *	Remove ourselves from the hash table's list.
      */
     if (adult_table) {
 	unsigned short int usi_hash = HASH_FUNCTION(me->address);
@@ -685,14 +685,14 @@ PUBLIC BOOL HTAnchor_delete ARGS1(
     }
 
     /*
-     *  Original code wanted a way to clean out the HTFormat if no
-     *  longer needed (ref count?).  I'll leave it alone since
-     *  those HTAtom objects are a little harder to know where
-     *  they are being referenced all at one time. (near static)
+     *	Original code wanted a way to clean out the HTFormat if no
+     *	longer needed (ref count?).  I'll leave it alone since
+     *	those HTAtom objects are a little harder to know where
+     *	they are being referenced all at one time. (near static)
      */
 
     /*
-     *  Free the address.
+     *	Free the address.
      */
     FREE(me->address);
 
@@ -701,7 +701,7 @@ PUBLIC BOOL HTAnchor_delete ARGS1(
 
 
     /*
-     *  Finally, kill the parent anchor passed in.
+     *	Finally, kill the parent anchor passed in.
      */
     FREE(me);
 
@@ -719,7 +719,7 @@ PUBLIC void HTAnchor_makeLastChild ARGS1(
 	HTChildAnchor *,	me)
 {
     if (me->parent != (HTParentAnchor *)me) {  /* Make sure it's a child */
-        HTList * siblings = me->parent->children;
+	HTList * siblings = me->parent->children;
 	HTList_removeObject (siblings, me);
 	HTList_addObject (siblings, me);
     }
@@ -739,7 +739,7 @@ PUBLIC void HTAnchor_setDocument ARGS2(
 	HyperDoc *,		doc)
 {
     if (me)
-        me->document = doc;
+	me->document = doc;
 }
 
 PUBLIC HyperDoc * HTAnchor_document ARGS1(
@@ -752,10 +752,10 @@ PUBLIC HyperDoc * HTAnchor_document ARGS1(
 /*  We don't want code to change an address after anchor creation... yet ?
 PUBLIC void HTAnchor_setAddress ARGS2(
 	HTAnchor *,	me,
-	char *,		addr)
+	char *, 	addr)
 {
     if (me)
-        StrAllocCopy (me->parent->address, addr);
+	StrAllocCopy (me->parent->address, addr);
 }
 */
 
@@ -765,18 +765,18 @@ PUBLIC char * HTAnchor_address ARGS1(
     char *addr = NULL;
 
     if (me) {
-        if (((HTParentAnchor *)me == me->parent) ||
-    	    !((HTChildAnchor *)me)->tag) {  /* it's an adult or no tag */
-            StrAllocCopy(addr, me->parent->address);
-        } else {  /* it's a named child */
-            addr = malloc(2 +
-	    		  strlen(me->parent->address) +
+	if (((HTParentAnchor *)me == me->parent) ||
+	    !((HTChildAnchor *)me)->tag) {  /* it's an adult or no tag */
+	    StrAllocCopy(addr, me->parent->address);
+	} else {  /* it's a named child */
+	    addr = malloc(2 +
+			  strlen(me->parent->address) +
 			  strlen(((HTChildAnchor *)me)->tag));
-            if (addr == NULL)
-	        outofmem(__FILE__, "HTAnchor_address");
-            sprintf(addr, "%s#%s",
-	    		   me->parent->address, ((HTChildAnchor *)me)->tag);
-        }
+	    if (addr == NULL)
+		outofmem(__FILE__, "HTAnchor_address");
+	    sprintf(addr, "%s#%s",
+			   me->parent->address, ((HTChildAnchor *)me)->tag);
+	}
     }
     return addr;
 }
@@ -786,7 +786,7 @@ PUBLIC void HTAnchor_setFormat ARGS2(
 	HTFormat,		form)
 {
     if (me)
-        me->format = form;
+	me->format = form;
 }
 
 PUBLIC HTFormat HTAnchor_format ARGS1(
@@ -797,20 +797,20 @@ PUBLIC HTFormat HTAnchor_format ARGS1(
 
 PUBLIC void HTAnchor_setIndex ARGS2(
 	HTParentAnchor *,	me,
-	char *,			address)
+	char *, 		address)
 {
     if (me) {
-        me->isIndex = YES;
+	me->isIndex = YES;
 	StrAllocCopy(me->isIndexAction, address);
     }
 }
 
 PUBLIC void HTAnchor_setPrompt ARGS2(
 	HTParentAnchor *,	me,
-	char *,			prompt)
+	char *, 		prompt)
 {
     if (me) {
-        StrAllocCopy(me->isIndexPrompt, prompt);
+	StrAllocCopy(me->isIndexPrompt, prompt);
     }
 }
 
@@ -836,20 +836,20 @@ PUBLIC BOOL HTAnchor_hasChildren ARGS1(
 }
 
 #if defined(USE_HASH)
-/*      Style handling.
+/*	Style handling.
 */
 PUBLIC CONST char * HTAnchor_style ARGS1(
-        HTParentAnchor *,       me)
+	HTParentAnchor *,	me)
 {
-        return me ? me->style : NULL;
+	return me ? me->style : NULL;
 }
 
 PUBLIC void HTAnchor_setStyle ARGS2(
-        HTParentAnchor *,       me,
-        CONST char *,           style)
+	HTParentAnchor *,	me,
+	CONST char *,		style)
 {
     if (me) {
-        StrAllocCopy(me->style, style);
+	StrAllocCopy(me->style, style);
     }
 }
 #endif
@@ -870,13 +870,13 @@ PUBLIC void HTAnchor_setTitle ARGS2(
     int i;
 
     if (me) {
-        StrAllocCopy(me->title, title);
-        for (i = 0; me->title[i]; i++) {
-            if ((unsigned char)me->title[i] == 1 ||
-	        (unsigned char)me->title[i] == 2) {
-	        me->title[i] = ' ';
+	StrAllocCopy(me->title, title);
+	for (i = 0; me->title[i]; i++) {
+	    if ((unsigned char)me->title[i] == 1 ||
+		(unsigned char)me->title[i] == 2) {
+		me->title[i] = ' ';
 	    }
-        }
+	}
     }
 }
 
@@ -887,13 +887,13 @@ PUBLIC void HTAnchor_appendTitle ARGS2(
     int i;
 
     if (me) {
-        StrAllocCat(me->title, title);
-        for (i = 0; me->title[i]; i++) {
-            if ((unsigned char)me->title[i] == 1 ||
-	        (unsigned char)me->title[i] == 2) {
-	        me->title[i] = ' ';
+	StrAllocCat(me->title, title);
+	for (i = 0; me->title[i]; i++) {
+	    if ((unsigned char)me->title[i] == 1 ||
+		(unsigned char)me->title[i] == 2) {
+		me->title[i] = ' ';
 	    }
-        }
+	}
     }
 }
 
@@ -910,7 +910,7 @@ PUBLIC void HTAnchor_setBookmark ARGS2(
 	CONST char *,		bookmark)
 {
     if (me)
-        StrAllocCopy(me->bookmark, bookmark);
+	StrAllocCopy(me->bookmark, bookmark);
 }
 
 /*	Owner handling.
@@ -926,11 +926,11 @@ PUBLIC void HTAnchor_setOwner ARGS2(
 	CONST char *,		owner)
 {
     if (me) {
-        StrAllocCopy(me->owner, owner);
+	StrAllocCopy(me->owner, owner);
     }
 }
 
-/*      TITLE handling in LINKs with REV="made" or REV="owner". - FM
+/*	TITLE handling in LINKs with REV="made" or REV="owner". - FM
 */
 PUBLIC CONST char * HTAnchor_RevTitle ARGS1(
 	HTParentAnchor *,	me)
@@ -945,13 +945,13 @@ PUBLIC void HTAnchor_setRevTitle ARGS2(
     int i;
 
     if (me) {
-        StrAllocCopy(me->RevTitle, title);
-        for (i = 0; me->RevTitle[i]; i++) {
-            if ((unsigned char)me->RevTitle[i] == 1 ||
-	        (unsigned char)me->RevTitle[i] == 2) {
-	        me->RevTitle[i] = ' ';
+	StrAllocCopy(me->RevTitle, title);
+	for (i = 0; me->RevTitle[i]; i++) {
+	    if ((unsigned char)me->RevTitle[i] == 1 ||
+		(unsigned char)me->RevTitle[i] == 2) {
+		me->RevTitle[i] = ' ';
 	    }
-        }
+	}
     }
 }
 
@@ -1040,25 +1040,25 @@ PUBLIC BOOL HTAnchor_link ARGS3(
 	HTLinkType *,	type)
 {
     if (!(source && destination))
-        return NO;  /* Can't link to/from non-existing anchor */
+	return NO;  /* Can't link to/from non-existing anchor */
     if (TRACE)
-        fprintf(stderr,
-  		"Linking anchor %p to anchor %p\n", source, destination);
+	fprintf(stderr,
+		"Linking anchor %p to anchor %p\n", source, destination);
     if (!source->mainLink.dest) {
-        source->mainLink.dest = destination;
-        source->mainLink.type = type;
+	source->mainLink.dest = destination;
+	source->mainLink.type = type;
     } else {
-        HTLink * newLink = (HTLink *)calloc (1, sizeof (HTLink));
-        if (newLink == NULL)
+	HTLink * newLink = (HTLink *)calloc (1, sizeof (HTLink));
+	if (newLink == NULL)
 	    outofmem(__FILE__, "HTAnchor_link");
-        newLink->dest = destination;
-        newLink->type = type;
-        if (!source->links)
-            source->links = HTList_new();
-        HTList_addObject (source->links, newLink);
+	newLink->dest = destination;
+	newLink->type = type;
+	if (!source->links)
+	    source->links = HTList_new();
+	HTList_addObject (source->links, newLink);
     }
     if (!destination->parent->sources)
-        destination->parent->sources = HTList_new();
+	destination->parent->sources = HTList_new();
     HTList_addObject (destination->parent->sources, source);
     return YES;  /* Success */
 }
@@ -1078,13 +1078,13 @@ PUBLIC HTAnchor * HTAnchor_followTypedLink ARGS2(
 	HTLinkType *,	type)
 {
     if (me->mainLink.type == type)
-        return me->mainLink.dest;
+	return me->mainLink.dest;
     if (me->links) {
-        HTList *links = me->links;
-        HTLink *the_link;
-        while (NULL != (the_link=(HTLink *)HTList_nextObject(links))) {
-            if (the_link->type == type) {
-	        return the_link->dest;
+	HTList *links = me->links;
+	HTLink *the_link;
+	while (NULL != (the_link=(HTLink *)HTList_nextObject(links))) {
+	    if (the_link->type == type) {
+		return the_link->dest;
 	    }
 	}
     }
@@ -1100,21 +1100,21 @@ PUBLIC BOOL HTAnchor_makeMainLink ARGS2(
 {
     /* Check that everything's OK */
     if (!(me && HTList_removeObject (me->links, movingLink))) {
-        return NO;  /* link not found or NULL anchor */
+	return NO;  /* link not found or NULL anchor */
     } else {
-        /* First push current main link onto top of links list */
-        HTLink *newLink = (HTLink *)calloc (1, sizeof (HTLink));
-        if (newLink == NULL)
+	/* First push current main link onto top of links list */
+	HTLink *newLink = (HTLink *)calloc (1, sizeof (HTLink));
+	if (newLink == NULL)
 	    outofmem(__FILE__, "HTAnchor_makeMainLink");
-        memcpy((void *)newLink,
+	memcpy((void *)newLink,
 	       (CONST char *)&me->mainLink, sizeof (HTLink));
-        HTList_addObject (me->links, newLink);
+	HTList_addObject (me->links, newLink);
 
-        /* Now make movingLink the new main link, and free it */
-        memcpy((void *)&me->mainLink,
+	/* Now make movingLink the new main link, and free it */
+	memcpy((void *)&me->mainLink,
 	       (CONST void *)movingLink, sizeof (HTLink));
-        FREE(movingLink);
-        return YES;
+	FREE(movingLink);
+	return YES;
     }
 }
 
@@ -1126,7 +1126,7 @@ PUBLIC HTList * HTAnchor_methods ARGS1(
 	HTParentAnchor *,	me)
 {
     if (!me->methods) {
-        me->methods = HTList_new();
+	me->methods = HTList_new();
     }
     return me->methods;
 }
@@ -1158,10 +1158,10 @@ PUBLIC char * HTAnchor_physical ARGS1(
 
 PUBLIC void HTAnchor_setPhysical ARGS2(
 	HTParentAnchor *,	me,
-	char *,			physical)
+	char *, 		physical)
 {
     if (me) {
-        StrAllocCopy(me->physical, physical);
+	StrAllocCopy(me->physical, physical);
     }
 }
 
@@ -1169,16 +1169,16 @@ PUBLIC void HTAnchor_setPhysical ARGS2(
 **  We store charset info in the HTParentAnchor object, for several
 **  "stages".  (See UCDefs.h)
 **  A stream method is supposed to know what stage in the model it is.
-** 
-**  General model       MIME     ->  parser  ->  structured  ->  HText
+**
+**  General model	MIME	 ->  parser  ->  structured  ->  HText
 **  e.g., text/html
-**      from HTTP:      HTMIME.c ->  SGML.c  ->  HTML.c      ->  GridText.c
-**     text/plain  
-**      from file:      HTFile.c ->  HTPlain.c               ->  GridText.c
+**	from HTTP:	HTMIME.c ->  SGML.c  ->  HTML.c      ->  GridText.c
+**     text/plain
+**	from file:	HTFile.c ->  HTPlain.c		     ->  GridText.c
 **
 **  The lock/set_by is used to lock e.g. a charset set by an explicit
-**  HTTP MIME header against overriding by a HTML META tag - the MIME 
-**  header has higher priority.  Defaults (from -assume_.. options etc.) 
+**  HTTP MIME header against overriding by a HTML META tag - the MIME
+**  header has higher priority.  Defaults (from -assume_.. options etc.)
 **  will not override charset explicitly given by server.
 **
 **  Some advantages of keeping this in the HTAnchor:
@@ -1199,7 +1199,7 @@ PUBLIC LYUCcharset * HTAnchor_getUCInfoStage ARGS2(
 	UCAnchorInfo * stages = (UCAnchorInfo*)calloc(1,
 						      sizeof(UCAnchorInfo));
 	if (stages == NULL)
-            outofmem(__FILE__, "HTAnchor_getUCInfoStage");
+	    outofmem(__FILE__, "HTAnchor_getUCInfoStage");
 	for (i = 0; i < UCT_STAGEMAX; i++) {
 	    stages->s[i].C.MIMEname = "";
 	    stages->s[i].LYhndl = -1;
@@ -1216,7 +1216,7 @@ PUBLIC LYUCcharset * HTAnchor_getUCInfoStage ARGS2(
 	    stages->s[UCT_STAGE_MIME].lock = UCT_SETBY_DEFAULT;
 	} else {
 	    /*
-	     *  Should not happen...
+	     *	Should not happen...
 	     */
 	    stages->s[UCT_STAGE_MIME].C.UChndl = -1;
 	    stages->s[UCT_STAGE_MIME].lock = UCT_SETBY_NONE;
@@ -1232,12 +1232,12 @@ PUBLIC LYUCcharset * HTAnchor_getUCInfoStage ARGS2(
 
 PUBLIC int HTAnchor_getUCLYhndl ARGS2(
 	HTParentAnchor *,	me,
-	int, 			which_stage)
+	int,			which_stage)
 {
     if (me) {
 	if (!me->UCStages) {
 	    /*
-	     *  This will allocate and initialize, if not yet done.
+	     *	This will allocate and initialize, if not yet done.
 	     */
 	    (void) HTAnchor_getUCInfoStage(me, which_stage);
 	}
diff --git a/WWW/Library/Implementation/HTAnchor.h b/WWW/Library/Implementation/HTAnchor.h
index 4b751d03..e3847184 100644
--- a/WWW/Library/Implementation/HTAnchor.h
+++ b/WWW/Library/Implementation/HTAnchor.h
@@ -1,11 +1,11 @@
-/*                 /Net/dxcern/userd/timbl/hypertext/WWW/Library/Implementation/HTAnchor.html
+/*		   /Net/dxcern/userd/timbl/hypertext/WWW/Library/Implementation/HTAnchor.html
  */
 
-/*      Hypertext "Anchor" Object                                    HTAnchor.h
-**      ==========================
+/*	Hypertext "Anchor" Object				     HTAnchor.h
+**	==========================
 **
-**      An anchor represents a region of a hypertext document which is linked
-**      to another anchor in the same or a different document.
+**	An anchor represents a region of a hypertext document which is linked
+**	to another anchor in the same or a different document.
 */
 
 #ifndef HTANCHOR_H
@@ -19,93 +19,93 @@
 #include "UCDefs.h"
 
 #ifdef SHORT_NAMES
-#define HTAnchor_findChild                      HTAnFiCh
-#define HTAnchor_findChildAndLink               HTAnFiLi
-#define HTAnchor_findAddress                    HTAnFiAd
-#define HTAnchor_delete                         HTAnDele
-#define HTAnchor_makeLastChild                  HTAnMaLa
-#define HTAnchor_parent                         HTAnPare
-#define HTAnchor_setDocument                    HTAnSeDo
-#define HTAnchor_document                       HTAnDocu
-#define HTAnchor_setFormat                      HTAnSeFo
-#define HTAnchor_format                         HTAnForm
-#define HTAnchor_setIndex                       HTAnSeIn
-#define HTAnchor_setPrompt                      HTAnSePr
-#define HTAnchor_isIndex                        HTAnIsIn
-#define HTAnchor_address                        HTAnAddr
-#define HTAnchor_hasChildren                    HTAnHaCh
-#define HTAnchor_title                          HTAnTitl
-#define HTAnchor_setTitle                       HTAnSeTi
-#define HTAnchor_appendTitle                    HTAnApTi
-#define HTAnchor_link                           HTAnLink
-#define HTAnchor_followMainLink                 HTAnFoMa
-#define HTAnchor_followTypedLink                HTAnFoTy
-#define HTAnchor_makeMainLink                   HTAnMaMa
-#define HTAnchor_setProtocol                    HTAnSePr
-#define HTAnchor_protocol                       HTAnProt
-#define HTAnchor_physical                       HTAnPhys
-#define HTAnchor_setPhysical                    HTAnSePh
-#define HTAnchor_methods                        HtAnMeth
-#endif
-
-/*                      Main definition of anchor
-**                      =========================
+#define HTAnchor_findChild			HTAnFiCh
+#define HTAnchor_findChildAndLink		HTAnFiLi
+#define HTAnchor_findAddress			HTAnFiAd
+#define HTAnchor_delete 			HTAnDele
+#define HTAnchor_makeLastChild			HTAnMaLa
+#define HTAnchor_parent 			HTAnPare
+#define HTAnchor_setDocument			HTAnSeDo
+#define HTAnchor_document			HTAnDocu
+#define HTAnchor_setFormat			HTAnSeFo
+#define HTAnchor_format 			HTAnForm
+#define HTAnchor_setIndex			HTAnSeIn
+#define HTAnchor_setPrompt			HTAnSePr
+#define HTAnchor_isIndex			HTAnIsIn
+#define HTAnchor_address			HTAnAddr
+#define HTAnchor_hasChildren			HTAnHaCh
+#define HTAnchor_title				HTAnTitl
+#define HTAnchor_setTitle			HTAnSeTi
+#define HTAnchor_appendTitle			HTAnApTi
+#define HTAnchor_link				HTAnLink
+#define HTAnchor_followMainLink 		HTAnFoMa
+#define HTAnchor_followTypedLink		HTAnFoTy
+#define HTAnchor_makeMainLink			HTAnMaMa
+#define HTAnchor_setProtocol			HTAnSePr
+#define HTAnchor_protocol			HTAnProt
+#define HTAnchor_physical			HTAnPhys
+#define HTAnchor_setPhysical			HTAnSePh
+#define HTAnchor_methods			HtAnMeth
+#endif /* SHORT_NAMES */
+
+/*			Main definition of anchor
+**			=========================
 */
 
 typedef struct _HyperDoc HyperDoc;  /* Ready for forward references */
 typedef struct _HTAnchor HTAnchor;
 typedef struct _HTParentAnchor HTParentAnchor;
 
-/*      After definition of HTFormat: */
+/*	After definition of HTFormat: */
 #include "HTFormat.h"
 
 typedef HTAtom HTLinkType;
 
 typedef struct {
-  HTAnchor *    dest;           /* The anchor to which this leads */
-  HTLinkType *  type;           /* Semantics of this link */
+  HTAnchor *	dest;		/* The anchor to which this leads */
+  HTLinkType *	type;		/* Semantics of this link */
 } HTLink;
 
-struct _HTAnchor {              /* Generic anchor : just links */
-  HTLink        mainLink;       /* Main (or default) destination of this */
-  HTList *      links;          /* List of extra links from this, if any */
+struct _HTAnchor {		/* Generic anchor : just links */
+  HTLink	mainLink;	/* Main (or default) destination of this */
+  HTList *	links;		/* List of extra links from this, if any */
   /* We separate the first link from the others to avoid too many small mallocs
      involved by a list creation. Most anchors only point to one place. */
-  HTParentAnchor * parent;      /* Parent of this anchor (self for adults) */
+  HTParentAnchor * parent;	/* Parent of this anchor (self for adults) */
 };
 
 struct _HTParentAnchor {
   /* Common part from the generic anchor structure */
-  HTLink        mainLink;       /* Main (or default) destination of this */
-  HTList *      links;          /* List of extra links from this, if any */
-  HTParentAnchor * parent;      /* Parent of this anchor (self) */
+  HTLink	mainLink;	/* Main (or default) destination of this */
+  HTList *	links;		/* List of extra links from this, if any */
+  HTParentAnchor * parent;	/* Parent of this anchor (self) */
 
   /* ParentAnchor-specific information */
-  HTList *      children;       /* Subanchors of this, if any */
-  HTList *      sources;        /* List of anchors pointing to this, if any */
-  HyperDoc *    document;       /* The document within which this is an anchor */
-  char *        address;        /* Absolute address of this node */
-  char *	post_data;      /* Posting data */
-  char * 	post_content_type;  /* Type of post data */
+  HTList *	children;	/* Subanchors of this, if any */
+  HTList *	sources;	/* List of anchors pointing to this, if any */
+  HyperDoc *	document;	/* The document within which this is an anchor */
+  char *	address;	/* Absolute address of this node */
+  char *	post_data;	/* Posting data */
+  char *	post_content_type;  /* Type of post data */
   char *	bookmark;	/* Bookmark filname */
-  HTFormat      format;         /* Pointer to node format descriptor */
+  HTFormat	format; 	/* Pointer to node format descriptor */
   char *	charset;	/* Pointer to character set (kludge, for now */
-  BOOL          isIndex;        /* Acceptance of a keyword search */
-  char *        isIndexAction;  /* URL of isIndex server */
-  char *        isIndexPrompt;  /* Prompt for isIndex query */
-  char *        title;          /* Title of document */
-  char *        owner;          /* Owner of document */
-  char *        RevTitle;       /* TITLE in REV="made" or REV="owner" LINK */
+  BOOL		isIndex;	/* Acceptance of a keyword search */
+  char *	isIndexAction;	/* URL of isIndex server */
+  char *	isIndexPrompt;	/* Prompt for isIndex query */
+  char *	title;		/* Title of document */
+  char *	owner;		/* Owner of document */
+  char *	RevTitle;	/* TITLE in REV="made" or REV="owner" LINK */
 #ifdef USE_HASH
   char *	style;
 #endif
 
-  HTList*       methods;        /* Methods available as HTAtoms */
-  void *        protocol;       /* Protocol object */
-  char *        physical;       /* Physical address */
-  BOOL          underway;       /* Document about to be attached to it */
+  HTList*	methods;	/* Methods available as HTAtoms */
+  void *	protocol;	/* Protocol object */
+  char *	physical;	/* Physical address */
+  BOOL		underway;	/* Document about to be attached to it */
   BOOL		isISMAPScript;	/* Script for clickable image map */
-  BOOL		isHEAD;		/* Document is headers from a HEAD request */
+  BOOL		isHEAD; 	/* Document is headers from a HEAD request */
   BOOL		safe;			/* Safe */
   char *	FileCache;	/* Path to a disk-cached copy */
   char *	SugFname;	/* Suggested filename */
@@ -118,23 +118,23 @@ struct _HTParentAnchor {
   char *	content_disposition;	/* Content-Dispositon */
   char *	content_location;	/* Content-Location */
   char *	content_md5;		/* Content-MD5 */
-  int		content_length;		/* Content-Length */
+  int		content_length; 	/* Content-Length */
   char *	date;			/* Date */
   char *	expires;		/* Expires */
   char *	last_modified;		/* Last-Modified */
-  char *	server;			/* Server */
-  UCAnchorInfo *	UCStages; 	/* chartrans stages */
+  char *	server; 		/* Server */
+  UCAnchorInfo *UCStages;		/* chartrans stages */
   HTList *	imaps;			/* client side image maps */
 };
 
 typedef struct {
   /* Common part from the generic anchor structure */
-  HTLink        mainLink;       /* Main (or default) destination of this */
-  HTList *      links;          /* List of extra links from this, if any */
-  HTParentAnchor * parent;      /* Parent of this anchor */
+  HTLink	mainLink;	/* Main (or default) destination of this */
+  HTList *	links;		/* List of extra links from this, if any */
+  HTParentAnchor * parent;	/* Parent of this anchor */
 
   /* ChildAnchor-specific information */
-  char *        tag;            /* Address of this anchor relative to parent */
+  char *	tag;		/* Address of this anchor relative to parent */
 } HTChildAnchor;
 
 /*
@@ -156,63 +156,63 @@ typedef struct _DocAddress {
 
 #define LINK_INTERNAL HTAtom_for("internal link")
 
-/*      Create new or find old sub-anchor
-**      ---------------------------------
+/*	Create new or find old sub-anchor
+**	---------------------------------
 **
-**      This one is for a new anchor being edited into an existing
-**      document. The parent anchor must already exist.
+**	This one is for a new anchor being edited into an existing
+**	document. The parent anchor must already exist.
 */
 extern HTChildAnchor * HTAnchor_findChild PARAMS((
 	HTParentAnchor *	parent,
 	CONST char *		tag));
 
-/*      Create or find a child anchor with a possible link
-**      --------------------------------------------------
+/*	Create or find a child anchor with a possible link
+**	--------------------------------------------------
 **
-**      Create new anchor with a given parent and possibly
-**      a name, and possibly a link to a _relatively_ named anchor.
-**      (Code originally in ParseHTML.h)
+**	Create new anchor with a given parent and possibly
+**	a name, and possibly a link to a _relatively_ named anchor.
+**	(Code originally in ParseHTML.h)
 */
 extern HTChildAnchor * HTAnchor_findChildAndLink PARAMS((
       HTParentAnchor * parent,	/* May not be 0 */
-      CONST char * tag,		/* May be "" or 0 */
+      CONST char * tag, 	/* May be "" or 0 */
       CONST char * href,	/* May be "" or 0 */
       HTLinkType * ltype));	/* May be 0 */
 
-/*      Create new or find old named anchor
-**      -----------------------------------
+/*	Create new or find old named anchor
+**	-----------------------------------
 **
-**      This one is for a reference which is found in a document, and might
-**      not be already loaded.
-**      Note: You are not guaranteed a new anchor -- you might get an old one,
-**      like with fonts.
+**	This one is for a reference which is found in a document, and might
+**	not be already loaded.
+**	Note: You are not guaranteed a new anchor -- you might get an old one,
+**	like with fonts.
 */
 extern HTAnchor * HTAnchor_findAddress PARAMS((
 	CONST DocAddress *	address));
 
-/*      Delete an anchor and possibly related things (auto garbage collection)
-**      --------------------------------------------
+/*	Delete an anchor and possibly related things (auto garbage collection)
+**	--------------------------------------------
 **
-**      The anchor is only deleted if the corresponding document is not loaded.
-**      All outgoing links from parent and children are deleted, and this anchor
-**      is removed from the sources list of all its targets.
-**      We also try to delete the targets whose documents are not loaded.
-**      If this anchor's source list is empty, we delete it and its children.
+**	The anchor is only deleted if the corresponding document is not loaded.
+**	All outgoing links from parent and children are deleted, and this anchor
+**	is removed from the sources list of all its targets.
+**	We also try to delete the targets whose documents are not loaded.
+**	If this anchor's source list is empty, we delete it and its children.
 */
 extern BOOL HTAnchor_delete PARAMS((
 	HTParentAnchor *	me));
 
-/*              Move an anchor to the head of the list of its siblings
-**              ------------------------------------------------------
+/*		Move an anchor to the head of the list of its siblings
+**		------------------------------------------------------
 **
-**      This is to ensure that an anchor which might have already existed
-**      is put in the correct order as we load the document.
+**	This is to ensure that an anchor which might have already existed
+**	is put in the correct order as we load the document.
 */
 extern void HTAnchor_makeLastChild PARAMS((
-	HTChildAnchor *		me));
+	HTChildAnchor * 	me));
 
-/*      Data access functions
-**      ---------------------
+/*	Data access functions
+**	---------------------
 */
 extern HTParentAnchor * HTAnchor_parent PARAMS((
 	HTAnchor *		me));
@@ -230,8 +230,8 @@ extern void HTAnchor_setAddress PARAMS((
 	char *			addr));
 */
 
-/*      Returns the full URI of the anchor, child or parent
-**      as a malloc'd string to be freed by the caller.
+/*	Returns the full URI of the anchor, child or parent
+**	as a malloc'd string to be freed by the caller.
 */
 extern char * HTAnchor_address PARAMS((
 	HTAnchor *		me));
@@ -269,7 +269,7 @@ extern void HTAnchor_setStyle PARAMS((
 	CONST char *		style));
 #endif
 
-/*      Title handling.
+/*	Title handling.
 */
 extern CONST char * HTAnchor_title PARAMS((
 	HTParentAnchor *	me));
@@ -291,7 +291,7 @@ extern void HTAnchor_setBookmark PARAMS((
 	HTParentAnchor *	me,
 	CONST char *		bookmark));
 
-/*      Owner handling.
+/*	Owner handling.
 */
 extern CONST char * HTAnchor_owner PARAMS((
 	HTParentAnchor *	me));
@@ -300,7 +300,7 @@ extern void HTAnchor_setOwner PARAMS((
 	HTParentAnchor *	me,
 	CONST char *		owner));
 
-/*      TITLE handling in LINKs with REV="made" or REV="owner". - FM
+/*	TITLE handling in LINKs with REV="made" or REV="owner". - FM
 */
 extern CONST char * HTAnchor_RevTitle PARAMS((
 	HTParentAnchor *	me));
@@ -358,16 +358,16 @@ extern CONST char * HTAnchor_content_base PARAMS((
 extern CONST char * HTAnchor_content_location PARAMS((
 	HTParentAnchor *	me));
 
-/*      Link this Anchor to another given one
-**      -------------------------------------
+/*	Link this Anchor to another given one
+**	-------------------------------------
 */
 extern BOOL HTAnchor_link PARAMS((
 	HTAnchor *		source,
 	HTAnchor *		destination,
 	HTLinkType *		type));
 
-/*      Manipulation of links
-**      ---------------------
+/*	Manipulation of links
+**	---------------------
 */
 extern HTAnchor * HTAnchor_followMainLink PARAMS((
 	HTAnchor *		me));
@@ -380,14 +380,14 @@ extern BOOL HTAnchor_makeMainLink PARAMS((
 	HTAnchor *		me,
 	HTLink *		movingLink));
 
-/*      Read and write methods
-**      ----------------------
+/*	Read and write methods
+**	----------------------
 */
 extern HTList * HTAnchor_methods PARAMS((
 	HTParentAnchor *	me));
 
-/*      Protocol
-**      --------
+/*	Protocol
+**	--------
 */
 extern void * HTAnchor_protocol PARAMS((
 	HTParentAnchor *	me));
@@ -396,8 +396,8 @@ extern void HTAnchor_setProtocol PARAMS((
 	HTParentAnchor *	me,
 	void *			protocol));
 
-/*      Physical address
-**      ----------------
+/*	Physical address
+**	----------------
 */
 extern char * HTAnchor_physical PARAMS((
 	HTParentAnchor *	me));
@@ -406,31 +406,42 @@ extern void HTAnchor_setPhysical PARAMS((
 	HTParentAnchor *	me,
 	char *			protocol));
 
-#endif /* HTANCHOR_H */
+extern LYUCcharset * HTAnchor_getUCInfoStage PARAMS((
+	HTParentAnchor *	me,
+	int			which_stage));
 
+extern int HTAnchor_getUCLYhndl PARAMS((
+	HTParentAnchor *	me,
+	int			which_stage));
+
+extern LYUCcharset * HTAnchor_setUCInfoStage PARAMS((
+	HTParentAnchor *	me,
+	int			LYhndl,
+	int			which_stage,
+	int			set_by));
 
-extern LYUCcharset * HTAnchor_getUCInfoStage PARAMS((HTParentAnchor * me,
-						     int which_stage));
-extern int HTAnchor_getUCLYhndl PARAMS((HTParentAnchor * me,
-						     int which_stage));
-extern LYUCcharset * HTAnchor_setUCInfoStage PARAMS((HTParentAnchor * me,
-						     int LYhndl,
-						     int which_stage,
-						     int set_by));
-extern LYUCcharset * HTAnchor_setUCInfoStage PARAMS((HTParentAnchor * me,
-						     int LYhndl,
-						     int which_stage,
-						     int set_by));
-extern LYUCcharset * HTAnchor_resetUCInfoStage PARAMS((HTParentAnchor * me,
-						     int LYhndl,
-						     int which_stage,
-						     int set_by));
-extern LYUCcharset * HTAnchor_copyUCInfoStage PARAMS((HTParentAnchor * me,
-						     int to_stage,
-						     int from_stage,
-						     int set_by));
+extern LYUCcharset * HTAnchor_setUCInfoStage PARAMS((
+	HTParentAnchor *	me,
+	int			LYhndl,
+	int			which_stage,
+	int			set_by));
+
+extern LYUCcharset * HTAnchor_resetUCInfoStage PARAMS((
+	HTParentAnchor *	me,
+	int			LYhndl,
+	int			which_stage,
+	int			set_by));
+
+extern LYUCcharset * HTAnchor_copyUCInfoStage PARAMS((
+	HTParentAnchor *	me,
+	int			to_stage,
+	int			from_stage,
+	int			set_by));
 
 extern void ImageMapList_free PARAMS((HTList * list));
+
+#endif /* HTANCHOR_H */
+
 /*
 
     */
diff --git a/WWW/Library/Implementation/HTDOS.c b/WWW/Library/Implementation/HTDOS.c
index 05e56194..94fa6d98 100644
--- a/WWW/Library/Implementation/HTDOS.c
+++ b/WWW/Library/Implementation/HTDOS.c
@@ -78,17 +78,17 @@ char * HTDOS_name(char *dosname)	{
 
 	if((cp_url[1] == '\\') || (cp_url[0]  != '\\'))
 	{
-/*
+#if 0
 		printf("\n\n%s = i%\n\n",cp_url,strlen(cp_url));
 		sleep(5);
-/**/
+#endif
       strcpy(dosname, cp_url);
       return(dosname); /* return(cp_url); */
 	} else {
-/*
+#if 0
 		printf("\n\n%s = %i\n\n",cp_url+1,strlen(cp_url));
 		sleep(5);
-/**/
+#endif
 		strcpy(dosname, cp_url+1);
       return(dosname); /* return(cp_url+1);  */
 	}
diff --git a/WWW/Library/Implementation/HTFTP.c b/WWW/Library/Implementation/HTFTP.c
index ac909d75..245e515a 100644
--- a/WWW/Library/Implementation/HTFTP.c
+++ b/WWW/Library/Implementation/HTFTP.c
@@ -186,7 +186,7 @@ PRIVATE int     server_type = GENERIC_SERVER;   /* the type of ftp host */
 PRIVATE int     unsure_type = FALSE;            /* sure about the type? */
 PRIVATE BOOLEAN use_list = FALSE;		/* use the LIST command? */
 
-PRIVATE interrupted_in_next_data_char = FALSE;
+PRIVATE int	interrupted_in_next_data_char = FALSE;
 
 #ifdef POLL_PORTS
 PRIVATE	unsigned short	port_number = FIRST_TCP_PORT;
@@ -213,15 +213,6 @@ PRIVATE int close_connection PARAMS((
 	connection *	con));
 
 
-PRIVATE void cleanup_ftp NOARGS
-{
-    if (control) {
-	if (control->socket != -1)
-	    close_connection(control);
-	FREE(control);
-    }
-}
-
 /*
 **  This function frees module globals. - FM
 */
@@ -229,7 +220,11 @@ PRIVATE void free_FTPGlobals NOARGS
 {
     FREE(user_entered_password);
     FREE(last_username_and_host);
-    cleanup_ftp();
+    if (control) {
+	if (control->socket != -1)
+	    close_connection(control);
+	FREE(control);
+    }
 }
 
 /* PUBLIC						HTMake_VMS_name()
@@ -540,7 +535,7 @@ PRIVATE int set_mac_binary ARGS1(
     if (ServerType == APPLESHARE_SERVER ||
 	ServerType == NETPRESENZ_SERVER) {
 	/*
-	 *  Presumably E means "Enable"  - kw
+	 *  Presumably E means "Enable".  - KW
 	 */
 	return(2 == response("MACB E\r\n"));
     } else {
@@ -660,7 +655,6 @@ PRIVATE int get_connection ARGS2(
 	if (con == NULL)
 	    outofmem(__FILE__, "get_connection");
     }
-
     con->socket = -1;
 
     if (!arg) return -1;		/* Bad if no name specified	*/
@@ -2633,7 +2627,7 @@ unload_btree:
 	server_type == NETPRESENZ_SERVER) {
 	/*
 	 *  Without closing the data socket first,
-	 *  the response(NIL) below hangs... - kw
+	 *  the response(NIL) below hangs. - KW
 	 */
 	NETCLOSE(data_soc);
     }
diff --git a/WWW/Library/Implementation/HTFile.c b/WWW/Library/Implementation/HTFile.c
index d3086008..0b0a830c 100644
--- a/WWW/Library/Implementation/HTFile.c
+++ b/WWW/Library/Implementation/HTFile.c
@@ -13,9 +13,9 @@
 **	   Apr 91	vms-vms access included using DECnet syntax
 **	26 Jun 92 (JFG) When running over DECnet, suppressed FTP.
 **			Fixed access bug for relative names on VMS.
-**	   Sep 93 (MD)  Access to VMS files allows sharing.
+**	   Sep 93 (MD)	Access to VMS files allows sharing.
 **	15 Nov 93 (MD)	Moved HTVMSname to HTVMSUTILS.C
-**      27 Dec 93 (FM)  FTP now works with VMS hosts.
+**	27 Dec 93 (FM)	FTP now works with VMS hosts.
 **			FTP path must be Unix-style and cannot include
 **			 the device or top directory.
 */
@@ -45,13 +45,13 @@
 #include <grp.h>
 #endif /* LONG_LIST */
 #endif /* !VMS */
-  
+
 #ifdef USE_ZLIB
 #include <GridText.h>
 #endif
 
 #define INFINITY 512		/* file name length @@ FIXME */
-#define MULTI_SUFFIX ".multi"   /* Extension for scanning formats */
+#define MULTI_SUFFIX ".multi"	/* Extension for scanning formats */
 
 #define HT_EM_SPACE ((char)2)
 
@@ -88,7 +88,7 @@ typedef struct _HTSuffix {
 	char *		suffix;
 	HTAtom *	rep;
 	HTAtom *	encoding;
-        char *		desc;
+	char *		desc;
 	float		quality;
 } HTSuffix;
 
@@ -107,7 +107,7 @@ typedef struct _HTSuffix {
 #define START(e) (*target->isa->start_element)(target, e, 0, 0, -1, 0)
 #define END(e) (*target->isa->end_element)(target, e, 0)
 #define MAYBE_END(e) if (HTML_dtd.tags[e].contents != SGML_EMPTY) \
-                        (*target->isa->end_element)(target, e, 0)
+			(*target->isa->end_element)(target, e, 0)
 #define FREE_TARGET (*target->isa->_free)(target)
 struct _HTStructured {
 	CONST HTStructuredClass *	isa;
@@ -140,7 +140,7 @@ PRIVATE char *HTCacheRoot = "/WWW$SCRATCH";	/* Where to cache things */
 PRIVATE char *HTCacheRoot = "/tmp/W3_Cache_";	/* Where to cache things */
 #endif /* VMS */
 
-/*PRIVATE char *HTSaveRoot  = "$(HOME)/WWW/";*/	/* Where to save things */
+/*PRIVATE char *HTSaveRoot  = "$(HOME)/WWW/";*/ /* Where to save things */
 
 /*
 **  Suffix registration.
@@ -165,11 +165,11 @@ PRIVATE void free_suffixes NOPARAMS;
 
 #ifdef LONG_LIST
 PRIVATE void LYListFmtParse ARGS5(
-	char *,		fmtstr,
-	char *,		file,
-	HTStructured *,	target,
-	char *,		entry,
-	char *,		tail)
+	char *, 	fmtstr,
+	char *, 	file,
+	HTStructured *, target,
+	char *, 	entry,
+	char *, 	tail)
 {
 	char c;
 	char *s;
@@ -195,7 +195,7 @@ PRIVATE void LYListFmtParse ARGS5(
 
 	if (lstat(file, &st) < 0)
 		fmtstr = "%a";	/* can't stat so just do anchor */
-	
+
 	StrAllocCopy(str, fmtstr);
 	s = str;
 	end = str + strlen(str);
@@ -221,13 +221,13 @@ PRIVATE void LYListFmtParse ARGS5(
 		start = ++s;
 		while (isdigit(*s) || *s == '.' || *s == '-')
 			s++;
-		c = *s;		/* the format char. or \0 */
+		c = *s; 	/* the format char. or \0 */
 		*s = '\0';
 
 		switch (c) {
 		case '\0':
 			break;
-		
+
 		case 'A':
 		case 'a':	/* anchor */
 			HTDirEntry(target, tail, entry);
@@ -288,7 +288,13 @@ PRIVATE void LYListFmtParse ARGS5(
 			case S_IFREG: type = '-'; break;
 			case S_IFLNK: type = 'l'; break;
 #ifdef S_IFSOCK
+# ifdef S_IFIFO 	/* some older machines (e.g., apollo) have a conflict */
+#  if S_IFIFO != S_IFSOCK
+			case S_IFSOCK: type = 's'; break;
+#  endif
+# else
 			case S_IFSOCK: type = 's'; break;
+# endif
 #endif /* S_IFSOCK */
 			default: type = '?'; break;
 			}
@@ -307,7 +313,7 @@ PRIVATE void LYListFmtParse ARGS5(
 				sprintf(fmt, "%%%ss", start);
 				sprintf(buf, fmt, p->pw_name);
 			} else {
-				
+
 				sprintf(fmt, "%%%sd", start);
 				sprintf(buf, fmt, st.st_uid);
 			}
@@ -369,9 +375,9 @@ PUBLIC void HTSetSuffix5 ARGS5(
     BOOL trivial_enc = IsUnityEncStr(encoding);
 
     if (strcmp(suffix, "*") == 0)
-        suff = &no_suffix;
+	suff = &no_suffix;
     else if (strcmp(suffix, "*.*") == 0)
-        suff = &unknown_suffix;
+	suff = &unknown_suffix;
     else {
 	HTList *cur = HTSuffixes;
 
@@ -385,26 +391,26 @@ PUBLIC void HTSetSuffix5 ARGS5(
 	if (!suff) { /* Not found -- create a new node */
 	    suff = (HTSuffix *) calloc(1, sizeof(HTSuffix));
 	    if (suff == NULL)
-	        outofmem(__FILE__, "HTSetSuffix");
+		outofmem(__FILE__, "HTSetSuffix");
 
 	    /*
-            **	Memory leak fixed.
+	    **	Memory leak fixed.
 	    **	05-28-94 Lynx 2-3-1 Garrett Arch Blythe
-	    */	
+	    */
 	    if (!HTSuffixes)	{
 		HTSuffixes = HTList_new();
 		atexit(free_suffixes);
 	    }
 
 	    HTList_addObject(HTSuffixes, suff);
-	
+
 	    StrAllocCopy(suff->suffix, suffix);
 	}
     }
 
     if (representation)
 	suff->rep = HTAtom_for(representation);
-   
+
     /*
     **	Memory leak fixed.
     **	05-28-94 Lynx 2-3-1 Garrett Arch Blythe
@@ -431,7 +437,7 @@ PRIVATE void free_suffixes NOARGS
     HTSuffix * suff = NULL;
 
     /*
-    **  Loop through all suffixes.
+    **	Loop through all suffixes.
     */
     while (!HTList_isEmpty(HTSuffixes)) {
 	/*
@@ -443,7 +449,7 @@ PRIVATE void free_suffixes NOARGS
 	FREE(suff);
     }
     /*
-    **  Free off the list itself.
+    **	Free off the list itself.
     */
     HTList_delete(HTSuffixes);
     HTSuffixes = NULL;
@@ -456,21 +462,21 @@ PRIVATE void free_suffixes NOARGS
 */
 #ifdef HAVE_READDIR
 PRIVATE void do_readme ARGS2(HTStructured *, target, CONST char *, localname)
-{ 
+{
     FILE * fp;
-    char * readme_file_name = 
+    char * readme_file_name =
 	malloc(strlen(localname)+ 1 + strlen(HT_DIR_README_FILE) + 1);
     if (readme_file_name == NULL)
-        outofmem(__FILE__, "do_readme");
+	outofmem(__FILE__, "do_readme");
     strcpy(readme_file_name, localname);
     strcat(readme_file_name, "/");
     strcat(readme_file_name, HT_DIR_README_FILE);
-    
+
     fp = fopen(readme_file_name,  "r");
-    
+
     if (fp) {
 	HTStructuredClass targetClass;
-	
+
 	targetClass =  *target->isa;	/* (Can't init agregate in K&R) */
 	START(HTML_PRE);
 	for (;;){
@@ -478,7 +484,7 @@ PRIVATE void do_readme ARGS2(HTStructured *, target, CONST char *, localname)
 	    if (c == (char)EOF) break;
 #ifdef NOTDEFINED
 	    switch (c) {
-	    	case '&':
+		case '&':
 		case '<':
 		case '>':
 			PUTC('&');
@@ -487,9 +493,9 @@ PRIVATE void do_readme ARGS2(HTStructured *, target, CONST char *, localname)
 			PUTC((char) (c % 10));
 			PUTC(';');
 			break;
-/*	    	case '\n':
-			PUTC('\r');    
-Bug removed thanks to joe@athena.mit.edu */			
+/*		case '\n':
+			PUTC('\r');
+Bug removed thanks to joe@athena.mit.edu */
 		default:
 			PUTC(c);
 	    }
@@ -499,7 +505,7 @@ Bug removed thanks to joe@athena.mit.edu */
 	}
 	END(HTML_PRE);
 	fclose(fp);
-    } 
+    }
 }
 #endif /* HAVE_READDIR */
 
@@ -511,7 +517,7 @@ Bug removed thanks to joe@athena.mit.edu */
 **		/tmp/WWW_Cache_http/crnvmc/FIND/xx.xxx.xx
 **
 **  On exit:
-**	Returns	a malloc'ed string which must be freed by the caller.
+**	Returns a malloc'ed string which must be freed by the caller.
 */
 PUBLIC char * HTCacheFileName ARGS1(
 	CONST char *,	name)
@@ -519,13 +525,13 @@ PUBLIC char * HTCacheFileName ARGS1(
     char * acc_method = HTParse(name, "", PARSE_ACCESS);
     char * host = HTParse(name, "", PARSE_HOST);
     char * path = HTParse(name, "", PARSE_PATH+PARSE_PUNCTUATION);
-    
+
     char * result;
     result = (char *)malloc(
 	    strlen(HTCacheRoot)+strlen(acc_method)
 	    +strlen(host)+strlen(path)+6+1);
     if (result == NULL)
-        outofmem(__FILE__, "HTCacheFileName");
+	outofmem(__FILE__, "HTCacheFileName");
     sprintf(result, "%s/WWW/%s/%s%s", HTCacheRoot, acc_method, host, path);
     FREE(path);
     FREE(acc_method);
@@ -551,7 +557,7 @@ PRIVATE int HTCreatePath ARGS1(CONST char *,path)
 **		$(HOME)/WWW/http/crnvmc/FIND/xx.xxx.xx
 **
 **  On exit:
-**	Returns	a malloc'ed string which must be freed by the caller.
+**	Returns a malloc'ed string which must be freed by the caller.
 */
 PUBLIC char * HTLocalName ARGS1(
 	CONST char *,	name)
@@ -559,16 +565,16 @@ PUBLIC char * HTLocalName ARGS1(
     char * acc_method = HTParse(name, "", PARSE_ACCESS);
     char * host = HTParse(name, "", PARSE_HOST);
     char * path = HTParse(name, "", PARSE_PATH+PARSE_PUNCTUATION);
-    
+
     HTUnEscape(path);	/* Interpret % signs */
-    
+
     if (0 == strcmp(acc_method, "file")) { /* local file */
-        FREE(acc_method);	
+	FREE(acc_method);
 	if ((0 == strcasecomp(host, HTHostName())) ||
 	    (0 == strcasecomp(host, "localhost")) || !*host) {
 	    FREE(host);
 	    if (TRACE)
-	        fprintf(stderr, "Node `%s' means path `%s'\n", name, path);
+		fprintf(stderr, "Node `%s' means path `%s'\n", name, path);
 #ifdef DOSPATH
 	    {
 		char *ret_path = NULL;
@@ -585,33 +591,33 @@ PUBLIC char * HTLocalName ARGS1(
 #endif /* DOSPATH */
 	} else {
 	    char * result = (char *)malloc(
-	    			strlen("/Net/")+strlen(host)+strlen(path)+1);
-              if (result == NULL)
-	          outofmem(__FILE__, "HTLocalName");
+				strlen("/Net/")+strlen(host)+strlen(path)+1);
+	      if (result == NULL)
+		  outofmem(__FILE__, "HTLocalName");
 	    sprintf(result, "%s%s%s", "/Net/", host, path);
 	    FREE(host);
 	    FREE(path);
 	    if (TRACE)
-	        fprintf(stderr, "Node `%s' means file `%s'\n", name, result);
+		fprintf(stderr, "Node `%s' means file `%s'\n", name, result);
 	    return result;
 	}
     } else {  /* other access */
 	char * result;
 #ifdef VMS
-        char * home =  getenv("HOME");
-	if (!home) 
-	    home = HTCacheRoot; 
+	char * home =  getenv("HOME");
+	if (!home)
+	    home = HTCacheRoot;
 	else
-   	    home = HTVMS_wwwName(home);
+	    home = HTVMS_wwwName(home);
 #else
-        CONST char * home =  (CONST char*)getenv("HOME");
+	CONST char * home =  (CONST char*)getenv("HOME");
 	if (!home)
-	    home = "/tmp"; 
+	    home = "/tmp";
 #endif /* VMS */
 	result = (char *)malloc(
 		strlen(home)+strlen(acc_method)+strlen(host)+strlen(path)+6+1);
-        if (result == NULL)
-            outofmem(__FILE__, "HTLocalName");
+	if (result == NULL)
+	    outofmem(__FILE__, "HTLocalName");
 	sprintf(result, "%s/WWW/%s/%s%s", home, acc_method, host, path);
 	FREE(path);
 	FREE(acc_method);
@@ -646,14 +652,13 @@ PUBLIC char * WWW_nameOfFile ARGS1(
 	    outofmem(__FILE__, "WWW_nameOfFile");
 	sprintf(result, "file://%s", name+5);
     } else {
-        result = (char *)malloc(7+strlen(HTHostName())+strlen(name)+1);
+	result = (char *)malloc(7+strlen(HTHostName())+strlen(name)+1);
 	if (result == NULL)
 	    outofmem(__FILE__, "WWW_nameOfFile");
 	sprintf(result, "file://%s%s", HTHostName(), name);
     }
     if (TRACE)
-        fprintf(stderr, "File `%s'\n\tmeans node `%s'\n", name, result);
-
+	fprintf(stderr, "File `%s'\n\tmeans node `%s'\n", name, result);
     return result;
 }
 
@@ -665,7 +670,7 @@ PUBLIC char * WWW_nameOfFile ARGS1(
 **	enc	is an encoding, trivial (8bit, binary, etc.) or gzip etc.
 **
 **  On exit:
-**	Returns	a pointer to a suitable suffix string if one has been
+**	Returns a pointer to a suitable suffix string if one has been
 **	found, else "".
 */
 PUBLIC CONST char * HTFileSuffix ARGS2(
@@ -681,9 +686,9 @@ PUBLIC CONST char * HTFileSuffix ARGS2(
     int i;
 
 #define NO_INIT  /* don't init anymore since I do it in Lynx at startup */
-#ifndef NO_INIT    
+#ifndef NO_INIT
     if (!HTSuffixes)
-        HTFileInit();
+	HTFileInit();
 #endif /* !NO_INIT */
 
     trivial_enc = IsUnityEncStr(enc);
@@ -692,7 +697,7 @@ PUBLIC CONST char * HTFileSuffix ARGS2(
 	suff = (HTSuffix *)HTList_objectAt(HTSuffixes, i);
 	if (suff->rep == rep &&
 #if defined(VMS) || defined(FNAMES_8_3)
-	    /*  Don't return a suffix whose first char is a dot, and which
+	    /*	Don't return a suffix whose first char is a dot, and which
 		has more dots or asterisks after that, for
 		these systems - kw */
 	    (!suff->suffix || !suff->suffix[0] || suff->suffix[0] != '.' ||
@@ -711,7 +716,7 @@ PUBLIC CONST char * HTFileSuffix ARGS2(
 		 */
 		return suff->suffix;
 	    } else if (!first_found) {
-		first_found = suff; 		/* remember this one */
+		first_found = suff;		/* remember this one */
 	    }
 #else
 	    return suff->suffix;		/* OK -- found */
@@ -721,7 +726,6 @@ PUBLIC CONST char * HTFileSuffix ARGS2(
 #ifdef FNAMES_8_3
     if (first_found)
 	return first_found->suffix;
-    else
 #endif
     return "";		/* Dunno */
 }
@@ -733,7 +737,7 @@ PUBLIC CONST char * HTFileSuffix ARGS2(
 **	a variable for the encoding.
 **
 **	Encoding may be a unity encoding (binary, 8bit, etc.) or
-**      a content-coding like gzip, compress.
+**	a content-coding like gzip, compress.
 **
 **	It will handle for example  x.txt, x.txt,Z, x.Z
 */
@@ -757,27 +761,27 @@ PUBLIC HTFormat HTFileFormat ARGS3(
     if (LYforce_HTML_mode) {
 	if (pencoding)
 	    *pencoding = WWW_ENC_8BIT;
-        return WWW_HTML;
+	return WWW_HTML;
     }
 
 #ifdef VMS
     /*
-    **  Trim at semicolon if a version number was
-    **  included, so it doesn't interfere with the
-    **  code for getting the MIME type. - FM
+    **	Trim at semicolon if a version number was
+    **	included, so it doesn't interfere with the
+    **	code for getting the MIME type. - FM
     */
     if ((semicolon = strchr(filename, ';')) != NULL)
-        *semicolon = '\0';
+	*semicolon = '\0';
 #endif /* VMS */
 
-#ifndef NO_INIT    
+#ifndef NO_INIT
     if (!HTSuffixes)
-        HTFileInit();
+	HTFileInit();
 #endif /* !NO_INIT */
-    lf  = strlen(filename);
+    lf	= strlen(filename);
     n = HTList_count(HTSuffixes);
     for (i = 0; i < n; i++) {
-        int ls;
+	int ls;
 	suff = (HTSuffix *)HTList_objectAt(HTSuffixes, i);
 	ls = strlen(suff->suffix);
 	if ((ls <= lf) && 0 == strcasecomp(suff->suffix, filename + lf - ls)) {
@@ -791,7 +795,7 @@ PUBLIC HTFormat HTFileFormat ARGS3(
 		if (semicolon != NULL)
 		    *semicolon = ';';
 #endif /* VMS */
-	        return suff->rep;		/* OK -- found */
+		return suff->rep;		/* OK -- found */
 	    }
 	    for (j = 0; j < n; j++) {  /* Got encoding, need representation */
 		int ls2;
@@ -806,29 +810,29 @@ PUBLIC HTFormat HTFileFormat ARGS3(
 			if (semicolon != NULL)
 			    *semicolon = ';';
 #endif /* VMS */
-		        return suff->rep;
+			return suff->rep;
 		    }
 		}
 	    }
-	    
+
 	}
     }
-    
+
     /* defaults tree */
-    
-    suff = strchr(filename, '.') ? 	/* Unknown suffix */
-    	 ( unknown_suffix.rep ? &unknown_suffix : &no_suffix)
+
+    suff = strchr(filename, '.') ?	/* Unknown suffix */
+	 ( unknown_suffix.rep ? &unknown_suffix : &no_suffix)
 	 : &no_suffix;
-	 
+
     /*
-    **  Set default encoding unless found with suffix already.
+    **	Set default encoding unless found with suffix already.
     */
     if (pencoding && !*pencoding)
-        *pencoding = suff->encoding ? suff->encoding
+	*pencoding = suff->encoding ? suff->encoding
 				    : HTAtom_for("binary");
 #ifdef VMS
     if (semicolon != NULL)
-        *semicolon = ';';
+	*semicolon = ';';
 #endif /* VMS */
     return suff->rep ? suff->rep : WWW_BINARY;
 }
@@ -859,7 +863,7 @@ PUBLIC HTFormat HTCharsetFormat ARGS3(
 	(cp2 = strstr(cp1, "charset")) != NULL) {
 	if (TRACE)
 	    fprintf(stderr,
-	    	    "HTCharsetFormat: Extended MIME Content-Type is %s\n",
+		    "HTCharsetFormat: Extended MIME Content-Type is %s\n",
 		    format->name);
 	cp2 += 7;
 	while (*cp2 == ' ' || *cp2 == '=')
@@ -883,7 +887,7 @@ PUBLIC HTFormat HTCharsetFormat ARGS3(
 				    UCT_SETBY_MIME);
 	} else if (chndl < 0) {
 	    /*
-	    **  Got something but we don't recognize it.
+	    **	Got something but we don't recognize it.
 	    */
 	    chndl = UCLYhndl_for_unrec;
 	    if (UCCanTranslateFromTo(chndl, current_char_set) != TQ_NO) {
@@ -960,7 +964,7 @@ PUBLIC HTFormat HTCharsetFormat ARGS3(
 		   !strncmp(LYchar_set_names[current_char_set],
 			    "Other ISO Latin", 15)) {
 	    /*
-	    **  Hope it's a match, for now. - FM
+	    **	Hope it's a match, for now. - FM
 	    */
 	    *cp1 = '\0';
 	    format = HTAtom_for(cp);
@@ -972,92 +976,6 @@ PUBLIC HTFormat HTCharsetFormat ARGS3(
 	    StrAllocCopy(anchor->charset, cp4);
 	    HTPassEightBitRaw = TRUE;
 	    HTAlert(anchor->charset);
-#ifdef NOT_USED			/* pre chartrans */
-	} else if (!strncmp(cp2, "us-ascii", 8) ||
-	    !strncmp(cp2, "iso-8859-1", 10)) {
-	    *cp1 = '\0';
-	    format = HTAtom_for(cp);
-	    StrAllocCopy(anchor->charset, "iso-8859-1");
-	    HTCJK = NOCJK;
-	} else if (!strncmp(cp2, "iso-8859-2", 10) &&
-		   !strncmp(LYchar_set_names[current_char_set],
-			    "ISO Latin 2", 11)) {
-	    *cp1 = '\0';
-	    format = HTAtom_for(cp);
-	    StrAllocCopy(anchor->charset, "iso-8859-2");
-	    HTPassEightBitRaw = TRUE;
-	} else if (!strncmp(cp2, "iso-8859-", 9) &&
-		   !strncmp(LYchar_set_names[current_char_set],
-			    "Other ISO Latin", 15)) {
-	    /*
-	    **  Hope it's a match, for now. - FM
-	    */
-	    *cp1 = '\0';
-	    format = HTAtom_for(cp);
-	    StrAllocCopy(anchor->charset, "iso-8859- ");
-	    anchor->charset[9] = cp2[9];
-	    HTPassEightBitRaw = TRUE;
-	    HTAlert(anchor->charset);
-	} else if (!strncmp(cp2, "koi8-r", 6) &&
-		   !strncmp(LYchar_set_names[current_char_set],
-			    "KOI8-R Cyrillic", 15)) {
-	    *cp1 = '\0';
-	    format = HTAtom_for(cp);
-	    StrAllocCopy(anchor->charset, "koi8-r");
-	    HTPassEightBitRaw = TRUE;
-	} else if (!strncmp(cp2, "euc-jp", 6) &&
-		   HTCJK == JAPANESE) {
-	    *cp1 = '\0';
-	    format = HTAtom_for(cp);
-	    StrAllocCopy(anchor->charset, "euc-jp");
-	} else if (!strncmp(cp2, "shift_jis", 9) &&
-		   HTCJK == JAPANESE) {
-	    *cp1 = '\0';
-	    format = HTAtom_for(cp);
-	    StrAllocCopy(anchor->charset, "shift_jis");
-	} else if (!strncmp(cp2, "iso-2022-jp", 11) &&
-		   HTCJK == JAPANESE) {
-	    *cp1 = '\0';
-	    format = HTAtom_for(cp);
-	    StrAllocCopy(anchor->charset, "iso-2022-jp");
-	} else if (!strncmp(cp2, "iso-2022-jp-2", 13) &&
-		   HTCJK == JAPANESE) {
-	    *cp1 = '\0';
-	    format = HTAtom_for(cp);
-	    StrAllocCopy(anchor->charset, "iso-2022-jp-2");
-	} else if (!strncmp(cp2, "euc-kr", 6) &&
-		   HTCJK == KOREAN) {
-	    *cp1 = '\0';
-	    format = HTAtom_for(cp);
-	    StrAllocCopy(anchor->charset, "euc-kr");
-	} else if (!strncmp(cp2, "iso-2022-kr", 11) &&
-		   HTCJK == KOREAN) {
-	    *cp1 = '\0';
-	    format = HTAtom_for(cp);
-	    StrAllocCopy(anchor->charset, "iso-2022-kr");
-	} else if ((!strncmp(cp2, "big5", 4) ||
-		    !strncmp(cp2, "cn-big5", 7)) &&
-		   HTCJK == TAIPEI) {
-	    *cp1 = '\0';
-	    format = HTAtom_for(cp);
-	    StrAllocCopy(anchor->charset, "big5");
-	} else if (!strncmp(cp2, "euc-cn", 6) &&
-		   HTCJK == CHINESE) {
-	    *cp1 = '\0';
-	    format = HTAtom_for(cp);
-	    StrAllocCopy(anchor->charset, "euc-cn");
-	} else if ((!strncmp(cp2, "gb2312", 6) ||
-		    !strncmp(cp2, "cn-gb", 5)) &&
-		   HTCJK == CHINESE) {
-	    *cp1 = '\0';
-	    format = HTAtom_for(cp);
-	    StrAllocCopy(anchor->charset, "gb2312");
-	} else if (!strncmp(cp2, "iso-2022-cn", 11) &&
-		   HTCJK == CHINESE) {
-	    *cp1 = '\0';
-	    format = HTAtom_for(cp);
-	    StrAllocCopy(anchor->charset, "iso-2022-cn");
-#endif /* NOT_USED */
 	}
 	FREE(cp3);
     } else if (cp1 != NULL) {
@@ -1071,13 +989,17 @@ PUBLIC HTFormat HTCharsetFormat ARGS3(
     }
     FREE(cp);
 
+    /*
+    **  Set up defaults, if needed. - FM
+    */
     if (!chartrans_ok && !anchor->charset && default_LYhndl >= 0) {
 	HTAnchor_setUCInfoStage(anchor, default_LYhndl,
 				UCT_STAGE_MIME,
 				UCT_SETBY_DEFAULT);
     }
     HTAnchor_copyUCInfoStage(anchor,
-			    UCT_STAGE_PARSER, UCT_STAGE_MIME,
+			    UCT_STAGE_PARSER,
+			    UCT_STAGE_MIME,
 			    -1);
 
     return format;
@@ -1095,23 +1017,23 @@ PUBLIC float HTFileValue ARGS1(
     int i;
     int lf = strlen(filename);
 
-#ifndef NO_INIT    
+#ifndef NO_INIT
     if (!HTSuffixes)
-        HTFileInit();
+	HTFileInit();
 #endif /* !NO_INIT */
     n = HTList_count(HTSuffixes);
     for (i = 0; i < n; i++) {
-        int ls;
+	int ls;
 	suff = (HTSuffix *)HTList_objectAt(HTSuffixes, i);
 	ls = strlen(suff->suffix);
 	if ((ls <= lf) && 0==strcmp(suff->suffix, filename + lf - ls)) {
 	    if (TRACE)
-	        fprintf(stderr, "File: Value of %s is %.3f\n",
-			        filename, suff->quality);
+		fprintf(stderr, "File: Value of %s is %.3f\n",
+				filename, suff->quality);
 	    return suff->quality;		/* OK -- found */
 	}
     }
-    return 0.3;		/* Dunno! */
+    return 0.3; 	/* Dunno! */
 }
 
 /*	Determine write access to a file.
@@ -1155,49 +1077,49 @@ PUBLIC BOOL HTEditable ARGS1(
     return NO;		/* Safe answer till we find the correct algorithm */
 #else
 #ifdef NeXT
-    int		groups[NGROUPS];
+    int 	groups[NGROUPS];
 #else
     gid_t	groups[NGROUPS];
 #endif /* NeXT */
     uid_t	myUid;
-    int		ngroups;			/* The number of groups  */
-    struct stat	fileStatus;
-    int		i;
-        
+    int 	ngroups;			/* The number of groups  */
+    struct stat fileStatus;
+    int 	i;
+
     if (stat(filename, &fileStatus))		/* Get details of filename */
-    	return NO;				/* Can't even access file! */
+	return NO;				/* Can't even access file! */
 
     ngroups = getgroups(NGROUPS, groups);	/* Groups to which I belong  */
     myUid = geteuid();				/* Get my user identifier */
 
     if (TRACE) {
-        int i2;
-	fprintf(stderr, 
+	int i2;
+	fprintf(stderr,
 	    "File mode is 0%o, uid=%d, gid=%d. My uid=%d, %d groups (",
-    	    (unsigned int) fileStatus.st_mode, fileStatus.st_uid,
+	    (unsigned int) fileStatus.st_mode, fileStatus.st_uid,
 	    fileStatus.st_gid,
 	    myUid, ngroups);
 	for (i2 = 0; i2 < ngroups; i2++)
 	    fprintf(stderr, " %d", groups[i2]);
 	fprintf(stderr, ")\n");
     }
-    
+
     if (fileStatus.st_mode & 0002)		/* I can write anyway? */
-    	return YES;
-	
+	return YES;
+
     if ((fileStatus.st_mode & 0200)		/* I can write my own file? */
      && (fileStatus.st_uid == myUid))
-    	return YES;
+	return YES;
 
     if (fileStatus.st_mode & 0020)		/* Group I am in can write? */
     {
-   	for (i = 0; i < ngroups; i++) {
-            if (groups[i] == fileStatus.st_gid)
-	        return YES;
+	for (i = 0; i < ngroups; i++) {
+	    if (groups[i] == fileStatus.st_gid)
+		return YES;
 	}
     }
     if (TRACE)
-        fprintf(stderr, "\tFile is not editable.\n");
+	fprintf(stderr, "\tFile is not editable.\n");
     return NO;					/* If no excuse, can't do */
 #endif /* NO_GROUPS */
 }
@@ -1216,16 +1138,16 @@ PUBLIC HTStream * HTFileSaveStream ARGS1(
 
     FILE* fp = fopen(localname, "w");
     if (!fp)
-        return NULL;
+	return NULL;
 
     return HTFWriter_new(fp);
 }
 
-/*      Output one directory entry.
+/*	Output one directory entry.
 **	---------------------------
 */
 PUBLIC void HTDirEntry ARGS3(
-	HTStructured *,	target,
+	HTStructured *, target,
 	CONST char *,	tail,
 	CONST char *,	entry)
 {
@@ -1234,7 +1156,7 @@ PUBLIC void HTDirEntry ARGS3(
     int len;
 
     if (0 == strcmp(entry,"../")) {
-        /*
+	/*
 	**  Undo slash appending for anchor creation.
 	*/
 	StrAllocCopy(escaped,"..");
@@ -1249,28 +1171,28 @@ PUBLIC void HTDirEntry ARGS3(
     }
 
     if (tail == NULL || *tail == '\0') {
-        /*
+	/*
 	**  Handle extra slash at end of path.
 	*/
-        HTStartAnchor(target, NULL, (escaped[0] != '\0' ? escaped : "/"));
+	HTStartAnchor(target, NULL, (escaped[0] != '\0' ? escaped : "/"));
     } else {
-        /*
+	/*
 	**  If empty tail, gives absolute ref below.
 	*/
-        relative = (char*)malloc(strlen(tail) + strlen(escaped)+2);
-        if (relative == NULL)
+	relative = (char*)malloc(strlen(tail) + strlen(escaped)+2);
+	if (relative == NULL)
 	    outofmem(__FILE__, "HTDirEntry");
-        sprintf(relative, "%s%s%s",
+	sprintf(relative, "%s%s%s",
 			   tail,
 			   (*escaped != '\0' ? "/" : ""),
 			   escaped);
-        HTStartAnchor(target, NULL, relative);
-        FREE(relative);
+	HTStartAnchor(target, NULL, relative);
+	FREE(relative);
     }
     FREE(escaped);
 }
- 
-/*      Output parent directory entry.
+
+/*	Output parent directory entry.
 **	------------------------------
 **
 **    This gives the TITLE and H1 header, and also a link
@@ -1284,7 +1206,7 @@ PUBLIC void HTDirEntry ARGS3(
 **	the parent directory.  Otherwise, it returns FALSE. - FM
 */
 PUBLIC BOOL HTDirTitles ARGS3(
-	HTStructured *,	target,
+	HTStructured *, target,
 	HTAnchor *,	anchor,
 	BOOL,		tildeIsTop)
 {
@@ -1296,26 +1218,26 @@ PUBLIC BOOL HTDirTitles ARGS3(
     int i;
 
 #ifdef DOSPATH
-	 BOOL local_link = FALSE;
-	 if (logical[18] == ':') local_link = TRUE;
+    BOOL local_link = FALSE;
+    if (logical[18] == ':') local_link = TRUE;
 #endif
     /*
-    **  Check tildeIsTop for treating home directory as Welcome
-    **  (assume the tilde is not followed by a username). - FM
-    */ 
+    **	Check tildeIsTop for treating home directory as Welcome
+    **	(assume the tilde is not followed by a username). - FM
+    */
     if (tildeIsTop && !strncmp(path, "/~", 2)) {
-        if (path[2] == '\0') {
+	if (path[2] == '\0') {
 	    path[1] = '\0';
 	} else {
 	    for (i = 0; path[(i + 2)]; i++) {
-	        path[i] = path[(i + 2)];
+		path[i] = path[(i + 2)];
 	    }
 	    path[i] = '\0';
 	}
     }
 
     /*
-    **  Trim out the ;type= parameter, if present. - FM
+    **	Trim out the ;type= parameter, if present. - FM
     */
     if ((cp = strrchr(path, ';')) != NULL) {
 	if (!strncasecomp((cp+1), "type=", 5)) {
@@ -1333,16 +1255,16 @@ PUBLIC BOOL HTDirTitles ARGS3(
 
 #ifdef DIRED_SUPPORT
       if (0 == strncasecomp(path, "/%2F", 4))
-          StrAllocCopy(printable, (path+1));
+	  StrAllocCopy(printable, (path+1));
       else
-          StrAllocCopy(printable, path);
+	  StrAllocCopy(printable, path);
       if (0 == strncasecomp(printable, "/vmsysu%2b", 10) ||
-          0 == strncasecomp(printable, "/anonymou.", 10)) {
-          StrAllocCopy(cp, (printable+1));
+	  0 == strncasecomp(printable, "/anonymou.", 10)) {
+	  StrAllocCopy(cp, (printable+1));
 	  StrAllocCopy(printable, cp);
 	  FREE(cp);
       }
-#else 
+#else
       StrAllocCopy(printable, (current ? current + 1 : ""));
 #endif /* DIRED_SUPPORT */
 
@@ -1370,7 +1292,7 @@ PUBLIC BOOL HTDirTitles ARGS3(
       PUTS("\n");
 #endif /* DIRED_SUPPORT */
       if (((0 == strncasecomp(printable, "vmsysu:", 7)) &&
-           (cp = strchr(printable, '.')) != NULL &&
+	   (cp = strchr(printable, '.')) != NULL &&
 	   strchr(cp, '/') == NULL) ||
 	  (0 == strncasecomp(printable, "anonymou.", 9) &&
 	   strchr(printable, '/') == NULL)) {
@@ -1384,14 +1306,14 @@ PUBLIC BOOL HTDirTitles ARGS3(
 
 #ifndef NO_PARENT_DIR_REFERENCE
     /*
-    **  Make link back to parent directory.
+    **	Make link back to parent directory.
     */
     if (current && current[1]) {   /* was a slash AND something else too */
-        char * parent = NULL;
+	char * parent = NULL;
 	char * relative = NULL;
 
 	*current++ = '\0';
-        parent = strrchr(path, '/');  /* penultimate slash */
+	parent = strrchr(path, '/');  /* penultimate slash */
 
 	if ((parent &&
 	     (!strcmp(parent, "/..") ||
@@ -1400,17 +1322,16 @@ PUBLIC BOOL HTDirTitles ARGS3(
 	    FREE(logical);
 	    FREE(path);
 	    return(need_parent_link);
-	} 
+	}
 
 	relative = (char*) malloc(strlen(current) + 4);
 	if (relative == NULL)
 	    outofmem(__FILE__, "HTDirTitles");
-
 	sprintf(relative, "%s/..", current);
 
 #ifdef DOSPATH
-		if(local_link)
-	  if (strlen(parent) == 3 )
+	if (local_link)
+	    if (strlen(parent) == 3 )
 		StrAllocCat(relative, "/.");
 #endif
 
@@ -1420,11 +1341,11 @@ PUBLIC BOOL HTDirTitles ARGS3(
 #endif
 	{
 	    /*
-	    **  On Unix, if it's not ftp and the directory cannot
-	    **  be read, don't put out a link.
+	    **	On Unix, if it's not ftp and the directory cannot
+	    **	be read, don't put out a link.
 	    **
-	    **  On VMS, this problem is dealt with internally by
-	    **  HTVMSBrowseDir().
+	    **	On VMS, this problem is dealt with internally by
+	    **	HTVMSBrowseDir().
 	    */
 	    DIR  * dp = NULL;
 
@@ -1454,14 +1375,14 @@ PUBLIC BOOL HTDirTitles ARGS3(
 		}
 
 		HTUnEscape(fullparentpath);
-	        if ((dp = opendir(fullparentpath)) == NULL) {
-	            FREE(fullparentpath);
-	            FREE(logical);
-	            FREE(relative);
-	            FREE(path);
-	            return(need_parent_link);
+		if ((dp = opendir(fullparentpath)) == NULL) {
+		    FREE(fullparentpath);
+		    FREE(logical);
+		    FREE(relative);
+		    FREE(path);
+		    return(need_parent_link);
 		}
-	    	closedir(dp);
+		closedir(dp);
 		FREE(fullparentpath);
 #ifdef LONG_LIST
 		need_parent_link = TRUE;
@@ -1479,7 +1400,7 @@ PUBLIC BOOL HTDirTitles ARGS3(
 	PUTS("Up to ");
 	if (parent) {
 	    if ((0 == strcmp(current,".")) ||
-	        (0 == strcmp(current,".."))) {
+		(0 == strcmp(current,".."))) {
 		/*
 		**  Should not happen, but if it does,
 		**  at least avoid giving misleading info. - KW
@@ -1503,7 +1424,7 @@ PUBLIC BOOL HTDirTitles ARGS3(
     FREE(path);
     return(need_parent_link);
 }
-		
+
 /*	Load a document.
 **	----------------
 **
@@ -1512,8 +1433,8 @@ PUBLIC BOOL HTDirTitles ARGS3(
 **			This is the physical address of the file
 **
 **  On exit:
-**	returns		<0		Error has occured.
-**			HTLOADED	OK 
+**	returns 	<0		Error has occured.
+**			HTLOADED	OK
 **
 */
 PUBLIC int HTLoadFile ARGS4(
@@ -1527,8 +1448,8 @@ PUBLIC int HTLoadFile ARGS4(
     HTFormat format;
     char * nodename = NULL;
     char * newname = NULL;	/* Simplified name of file */
-    HTAtom * encoding;		/* @@ not used */
-    HTAtom * myEncoding = NULL;	/* enc of this file, may be gzip etc. */
+    HTAtom * encoding;		/* @@ not used yet */
+    HTAtom * myEncoding = NULL; /* enc of this file, may be gzip etc. */
     int status;
 #ifdef VMS
     struct stat stat_info;
@@ -1539,39 +1460,39 @@ PUBLIC int HTLoadFile ARGS4(
 #endif /* USE_ZLIB */
 
     /*
-    **  Reduce the filename to a basic form (hopefully unique!).
+    **	Reduce the filename to a basic form (hopefully unique!).
     */
     StrAllocCopy(newname, addr);
     filename=HTParse(newname, "", PARSE_PATH|PARSE_PUNCTUATION);
     nodename=HTParse(newname, "", PARSE_HOST);
-    
+
     /*
-    **  If access is ftp, or file is on another host, invoke ftp now.
+    **	If access is ftp, or file is on another host, invoke ftp now.
     */
     acc_method = HTParse(newname, "", PARSE_ACCESS);
     if (strcmp("ftp", acc_method) == 0 ||
        (strcmp("localhost", nodename) != 0 &&
 #ifdef VMS
-        strcasecomp(nodename, HTHostName()) != 0
+	strcasecomp(nodename, HTHostName()) != 0
 #else
-        strcmp(nodename, HTHostName()) != 0
+	strcmp(nodename, HTHostName()) != 0
 #endif /* VMS */
     )) {
-        FREE(newname);
+	FREE(newname);
 	FREE(filename);
 	FREE(nodename);
-        FREE(acc_method);
-        return HTFTPLoad(addr, anchor, format_out, sink);
+	FREE(acc_method);
+	return HTFTPLoad(addr, anchor, format_out, sink);
     } else {
-        FREE(newname);
-        FREE(acc_method);
+	FREE(newname);
+	FREE(acc_method);
     }
 #ifdef VMS
     HTUnEscape(filename);
 #endif /* VMS */
 
     /*
-    **  Determine the format and encoding mapped to any suffix.
+    **	Determine the format and encoding mapped to any suffix.
     */
     if (anchor->content_type && anchor->content_encoding) {
 	/*
@@ -1583,22 +1504,22 @@ PUBLIC int HTLoadFile ARGS4(
 	myEncoding = HTAtom_for(anchor->content_encoding);
     } else {
 	format = HTFileFormat(filename, &myEncoding, NULL);
-    
+
     /*
-    **  Check the format for an extended MIME charset value, and
-    **  act on it if present.  Otherwise, assume what is indicated
-    **  by the last parameter (fallback will effectively be
-    **  UCLYhndl_for_unspec, by default ISO-8859-1). - kw
+    **	Check the format for an extended MIME charset value, and
+    **	act on it if present.  Otherwise, assume what is indicated
+    **	by the last parameter (fallback will effectively be
+    **	UCLYhndl_for_unspec, by default ISO-8859-1). - kw
     */
 	format = HTCharsetFormat(format, anchor, UCLYhndl_HTFile_for_unspec);
     }
 
 #ifdef VMS
     /*
-    **  Check to see if the 'filename' is in fact a directory.  If it is
-    **  create a new hypertext object containing a list of files and 
-    **  subdirectories contained in the directory.  All of these are links
-    **  to the directories or files listed.
+    **	Check to see if the 'filename' is in fact a directory.	If it is
+    **	create a new hypertext object containing a list of files and
+    **	subdirectories contained in the directory.  All of these are links
+    **	to the directories or files listed.
     */
     if (HTStat(filename, &stat_info) == -1) {
 	if (TRACE)
@@ -1613,7 +1534,7 @@ PUBLIC int HTLoadFile ARGS4(
 	    }
 
 	    if (HTDirAccess == HT_DIR_SELECTIVE) {
-		char * enable_file_name = 
+		char * enable_file_name =
 		    malloc(strlen(filename)+ 1 +
 		    strlen(HT_DIR_ENABLE_FILE) + 1);
 		if (enable_file_name == NULL)
@@ -1636,31 +1557,31 @@ PUBLIC int HTLoadFile ARGS4(
     }
 
     /*
-    **  Assume that the file is in Unix-style syntax if it contains a '/'
-    **  after the leading one. @@
+    **	Assume that the file is in Unix-style syntax if it contains a '/'
+    **	after the leading one. @@
     */
     {
-        FILE * fp;
+	FILE * fp;
 	char * vmsname = strchr(filename + 1, '/') ?
 		    HTVMS_name(nodename, filename) : filename + 1;
 	fp = fopen(vmsname, "r", "shr=put", "shr=upd");
-	
-        /*
+
+	/*
 	**  If the file wasn't VMS syntax, then perhaps it is ultrix.
 	*/
 	if (!fp) {
 	    char ultrixname[INFINITY];
 	    if (TRACE)
-	        fprintf(stderr, "HTLoadFile: Can't open as %s\n", vmsname);
+		fprintf(stderr, "HTLoadFile: Can't open as %s\n", vmsname);
 	    sprintf(ultrixname, "%s::\"%s\"", nodename, filename);
-  	    fp = fopen(ultrixname, "r", "shr=put", "shr=upd");
+	    fp = fopen(ultrixname, "r", "shr=put", "shr=upd");
 	    if (!fp) {
 		if (TRACE)
 		    fprintf(stderr, "HTLoadFile: Can't open as %s\n",
-		    		    ultrixname);
+				    ultrixname);
 	    }
 	}
-        if (fp) {
+	if (fp) {
 	    int len;
 	    char *cp = NULL;
 	    char *semicolon = NULL;
@@ -1669,19 +1590,18 @@ PUBLIC int HTLoadFile ARGS4(
 		HTAtom * put = HTAtom_for("PUT");
 		HTList * methods = HTAnchor_methods(anchor);
 		if (HTList_indexOf(methods, put) == (-1)) {
-	   	    HTList_addObject(methods, put);
-	        }
+		    HTList_addObject(methods, put);
+		}
 	    }
-
 	    /*
-	    **  Trim vmsname at semicolon if a version number was
-	    **  included, so it doesn't interfere with the check
-	    **  for a compressed file. - FM
+	    **	Trim vmsname at semicolon if a version number was
+	    **	included, so it doesn't interfere with the check
+	    **	for a compressed file. - FM
 	    */
 	    if ((semicolon = strchr(vmsname, ';')) != NULL)
-	        *semicolon = '\0';
+		*semicolon = '\0';
 	    /*
-	    **  Fake a Content-Encoding for compressed files. - FM
+	    **	Fake a Content-Encoding for compressed files. - FM
 	    */
 	    if (!IsUnityEnc(myEncoding)) {
 		/*
@@ -1704,14 +1624,14 @@ PUBLIC int HTLoadFile ARGS4(
 				vmsname, (void*)gzfp);
 		    use_gzread = YES;
 		} else
-#endif  /* USE_ZLIB */
+#endif	/* USE_ZLIB */
 		{
 		    StrAllocCopy(anchor->content_type, format->name);
 		    StrAllocCopy(anchor->content_encoding, HTAtom_name(myEncoding));
 		    format = HTAtom_for("www/compressed");
 		}
 	    } else if ((len = strlen(vmsname)) > 2) {
-	        if ((vmsname[len - 1] == 'Z') &&
+		if ((vmsname[len - 1] == 'Z') &&
 		    (vmsname[len - 2] == '.' ||
 		     vmsname[len - 2] == '-' ||
 		     vmsname[len - 2] == '_') &&
@@ -1729,7 +1649,7 @@ PUBLIC int HTLoadFile ARGS4(
 		} else if ((len > 3) &&
 			   !strcasecomp((char *)&vmsname[len - 2], "gz")) {
 		    if (vmsname[len - 3] == '.' ||
-		        vmsname[len - 3] == '-' ||
+			vmsname[len - 3] == '-' ||
 			vmsname[len - 3] == '_') {
 			StrAllocCopy(cp, vmsname);
 			cp[len - 3] = '\0';
@@ -1754,12 +1674,12 @@ PUBLIC int HTLoadFile ARGS4(
 			}
 #else  /* USE_ZLIB */
 			format = HTAtom_for("www/compressed");
-#endif  /* USE_ZLIB */
+#endif	/* USE_ZLIB */
 		    }
 		}
 	    }
 	    if (semicolon != NULL)
-	        *semicolon = ';';
+		*semicolon = ';';
 	    FREE(filename);
 	    FREE(nodename);
 #ifdef USE_ZLIB
@@ -1800,29 +1720,29 @@ PUBLIC int HTLoadFile ARGS4(
 		fclose(fp);
 	    }
 	    return status;
-        }  /* If successfull open */
+	}  /* If successfull open */
 	FREE(filename);
     }
 
 #else /* Unix: */
 
     FREE(filename);
-    
+
     /*
-    **  For unix, we try to translate the name into the name of a
-    **  transparently mounted file.
+    **	For unix, we try to translate the name into the name of a
+    **	transparently mounted file.
     **
-    **  Not allowed in secure (HTClienntHost) situations. TBL 921019
+    **	Not allowed in secure (HTClienntHost) situations. TBL 921019
     */
 #ifndef NO_UNIX_IO
-    /*  Need protection here for telnet server but not httpd server. */
-	 
+    /*	Need protection here for telnet server but not httpd server. */
+
     if (!HTSecure) {		/* try local file system */
 	char * localname = HTLocalName(addr);
 	struct stat dir_info;
-	
+
 #ifdef HAVE_READDIR
-        /*
+	/*
 	**  Multiformat handling.
 	**
 	**  If needed, scan directory to find a good file.
@@ -1830,7 +1750,7 @@ PUBLIC int HTLoadFile ARGS4(
 	*/
 	if ((strlen(localname) > strlen(MULTI_SUFFIX)) &&
 	    (0 == strcmp(localname + strlen(localname) - strlen(MULTI_SUFFIX),
-	                 MULTI_SUFFIX))) {
+			 MULTI_SUFFIX))) {
 	    DIR *dp;
 	    BOOL forget_multi = NO;
 
@@ -1841,12 +1761,12 @@ PUBLIC int HTLoadFile ARGS4(
 	    char * best_name = NULL;	/* Best dir entry so far */
 
 	    char *base = strrchr(localname, '/');
-	    int baselen;
+	    int baselen = 0;
 
 	    if (!base || base == localname) {
-	        forget_multi = YES;
+		forget_multi = YES;
 	    } else {
-		*base++ = '\0';		/* Just got directory name */
+		*base++ = '\0'; 	/* Just got directory name */
 		baselen = strlen(base)- strlen(MULTI_SUFFIX);
 		base[baselen] = '\0';	/* Chop off suffix */
 
@@ -1858,7 +1778,7 @@ PUBLIC int HTLoadFile ARGS4(
 		return HTLoadError(sink, 500,
 			"Multiformat: directory scan failed.");
 	    }
-	    
+
 	    while ((dirbuf = readdir(dp)) != NULL) {
 		/*
 		**  While there are directory entries to be read...
@@ -1867,19 +1787,19 @@ PUBLIC int HTLoadFile ARGS4(
 		if (dirbuf->d_ino == 0)
 		    continue;	/* if the entry is not being used, skip it */
 #endif
-		if ((int)strlen(dirbuf->d_name) > baselen &&     /* Match? */
+		if ((int)strlen(dirbuf->d_name) > baselen &&	 /* Match? */
 		    !strncmp(dirbuf->d_name, base, baselen)) {
 		    HTAtom * enc;
 		    HTFormat rep = HTFileFormat(dirbuf->d_name, &enc, NULL);
 		    float filevalue = HTFileValue(dirbuf->d_name);
 		    float value = HTStackValue(rep, format_out,
-		    				filevalue,
+						filevalue,
 						0L  /* @@@@@@ */);
 		    if (value <= 0.0) {
 			char * cp = NULL;
 			int len = strlen(dirbuf->d_name);
 			enc = NULL;
-    			if (len > 2 &&
+			if (len > 2 &&
 			    dirbuf->d_name[len - 1] == 'Z' &&
 			    dirbuf->d_name[len - 2] == '.') {
 			    StrAllocCopy(cp, dirbuf->d_name);
@@ -1921,7 +1841,7 @@ PUBLIC int HTLoadFile ARGS4(
 			}
 		    }
 		    if (value != NO_VALUE_FOUND) {
-		        if (TRACE)
+			if (TRACE)
 			    fprintf(stderr,
 				 "HTLoadFile: value of presenting %s is %f\n",
 				    HTAtom_name(rep), value);
@@ -1931,20 +1851,20 @@ PUBLIC int HTLoadFile ARGS4(
 			    best = value;
 			    StrAllocCopy(best_name, dirbuf->d_name);
 		       }
-		    }	/* if best so far */ 		    
-		 } /* if match */  
-		    
+		    }	/* if best so far */
+		 } /* if match */
+
 	    } /* end while directory entries left to read */
 	    closedir(dp);
-	    
+
 	    if (best_rep) {
 		format = best_rep;
 		myEncoding = best_enc;
-		base[-1] = '/';		/* Restore directory name */
+		base[-1] = '/'; 	/* Restore directory name */
 		base[0] = '\0';
 		StrAllocCat(localname, best_name);
 		FREE(best_name);
-	    } else { 			/* If not found suitable file */
+	    } else {			/* If not found suitable file */
 		FREE(localname);
 		FREE(nodename);
 		return HTLoadError(sink, 403,	/* List formats? */
@@ -1955,8 +1875,8 @@ PUBLIC int HTLoadFile ARGS4(
 
 	/*
 	**  Check to see if the 'localname' is in fact a directory.  If it
-	**  is create a new hypertext object containing a list of files and 
-	**  subdirectories contained in the directory.  All of these are
+	**  is create a new hypertext object containing a list of files and
+	**  subdirectories contained in the directory.	All of these are
 	**  links to the directories or files listed.
 	**  NB This assumes the existance of a type 'STRUCT_DIRENT', which
 	**  will hold the directory entry, and a type 'DIR' which is used
@@ -1968,20 +1888,20 @@ PUBLIC int HTLoadFile ARGS4(
 	if (stat(localname,&dir_info) == -1)	   /* get file information */
 #endif
 	{
-	                               /* if can't read file information */
+				       /* if can't read file information */
 	    if (TRACE)
-	        fprintf(stderr, "HTLoadFile: can't stat %s\n", localname);
+		fprintf(stderr, "HTLoadFile: can't stat %s\n", localname);
 
 	}  else {		/* Stat was OK */
-		
+
 #ifdef _WINDOWS
-	if (stat(localname,&dir_info) == -1) dir_info.st_mode = S_IFDIR;
+	    if (stat(localname,&dir_info) == -1) dir_info.st_mode = S_IFDIR;
 #endif
 
 	    if (((dir_info.st_mode) & S_IFMT) == S_IFDIR) {
 		/*
 		**  If localname is a directory.
-		*/	
+		*/
 		HTStructured *target;		/* HTML object */
 		HTStructuredClass targetClass;
 		DIR *dp;
@@ -1991,12 +1911,12 @@ PUBLIC int HTLoadFile ARGS4(
 		char *tail = NULL;
 		BOOL present[HTML_A_ATTRIBUTES];
 		char * tmpfilename = NULL;
-                BOOL need_parent_link = FALSE;
+		BOOL need_parent_link = FALSE;
 		struct stat file_info;
-		
+
 		if (TRACE)
 		    fprintf(stderr, "%s is a directory\n", localname);
-			
+
 		/*
 		**  Check directory access.
 		**  Selective access means only those directories containing
@@ -2011,7 +1931,7 @@ PUBLIC int HTLoadFile ARGS4(
 
 
 		if (HTDirAccess == HT_DIR_SELECTIVE) {
-		    char * enable_file_name = 
+		    char * enable_file_name =
 			malloc(strlen(localname)+ 1 +
 				      strlen(HT_DIR_ENABLE_FILE) + 1);
 		    if (enable_file_name == NULL)
@@ -2031,23 +1951,23 @@ PUBLIC int HTLoadFile ARGS4(
 		if (!dp) {
 		    FREE(localname);
 		    FREE(nodename);
-		    return HTLoadError(sink, 403, 
-		    		       "This directory is not readable.");
+		    return HTLoadError(sink, 403,
+				       "This directory is not readable.");
 		}
 
 		/*
 		**  Directory access is allowed and possible.
 		*/
 		logical = HTAnchor_address((HTAnchor*)anchor);
-        	pathname = HTParse(logical, "", 
+		pathname = HTParse(logical, "",
 					PARSE_PATH + PARSE_PUNCTUATION);
 
-    		if (!strcmp(pathname,"/")) {
+		if (!strcmp(pathname,"/")) {
 		    /*
-		    **  Root path.
+		    **	Root path.
 		    */
-        	    StrAllocCopy (tail, "/foo/..");
-    	    	} else {
+		    StrAllocCopy (tail, "/foo/..");
+		} else {
 		    char *p = strrchr(pathname, '/');  /* find lastslash */
 
 		    if (!p) {
@@ -2062,9 +1982,9 @@ PUBLIC int HTLoadFile ARGS4(
 			*/
 			StrAllocCopy(tail, (p + 1));
 		    }
-    		}
-    		FREE(pathname);
-		
+		}
+		FREE(pathname);
+
 		if (UCLYhndl_HTFile_for_unspec >= 0) {
 		    HTAnchor_setUCInfoStage(anchor,
 					    UCLYhndl_HTFile_for_unspec,
@@ -2074,12 +1994,12 @@ PUBLIC int HTLoadFile ARGS4(
 
 		target = HTML_new(anchor, format_out, sink);
 		targetClass = *target->isa;	/* Copy routine entry points */
-		    
-  		{ int i;
+
+		{ int i;
 			for (i = 0; i < HTML_A_ATTRIBUTES; i++)
 				present[i] = (i == HTML_A_HREF);
 		}
-		
+
 		/*
 		**  The need_parent_link flag will be set if an
 		**  "Up to <parent>" link was not created for a
@@ -2088,7 +2008,7 @@ PUBLIC int HTLoadFile ARGS4(
 		**  is not defined so that need we to create the
 		**  link via an LYListFmtParse() call. - FM
 		*/
-                need_parent_link = HTDirTitles(target,
+		need_parent_link = HTDirTitles(target,
 					       (HTAnchor *)anchor, FALSE);
 
 #ifdef DIRED_SUPPORT
@@ -2097,7 +2017,7 @@ PUBLIC int HTLoadFile ARGS4(
 		    lynx_edit_mode = TRUE;
 		}
 #endif /* DIRED_SUPPORT */
-                if (HTDirReadme == HT_DIR_README_TOP)
+		if (HTDirReadme == HT_DIR_README_TOP)
 		    do_readme(target, localname);
 		{
 		    HTBTree * bt = HTBTree_new((HTComparer)strcmp);
@@ -2106,12 +2026,12 @@ PUBLIC int HTLoadFile ARGS4(
 			/*
 			**  While there are directory entries to be read...
 			*/
-		        char * dirname = NULL;
+			char * dirname = NULL;
 
 #ifndef DOSPATH
-		        if (dirbuf->d_ino == 0)
+			if (dirbuf->d_ino == 0)
 			    /*
-			    **  If the entry is not being used, skip it.
+			    **	If the entry is not being used, skip it.
 			    */
 			    continue;
 #endif
@@ -2135,27 +2055,27 @@ PUBLIC int HTLoadFile ARGS4(
 			StrAllocCopy(tmpfilename, localname);
 			if (strcmp(localname, "/"))
 			    /*
-			    **  If filename is not root directory.
+			    **	If filename is not root directory.
 			    */
-			    StrAllocCat(tmpfilename, "/"); 
+			    StrAllocCat(tmpfilename, "/");
 
 			StrAllocCat(tmpfilename, dirbuf->d_name);
 			stat(tmpfilename, &file_info);
 			if (((file_info.st_mode) & S_IFMT) == S_IFDIR)
 #ifndef DIRED_SUPPORT
-		            sprintf((char *)dirname, "D%s",dirbuf->d_name);
+			    sprintf((char *)dirname, "D%s",dirbuf->d_name);
 			else
 			    sprintf((char *)dirname, "F%s",dirbuf->d_name);
 			    /* D & F to have first directories, then files */
 #else
 			    if (dir_list_style == MIXED_STYLE)
-			        sprintf((char *)dirname,
+				sprintf((char *)dirname,
 					" %s/", dirbuf->d_name);
 			    else if (!strcmp(dirbuf->d_name, ".."))
-			        sprintf((char *)dirname,
+				sprintf((char *)dirname,
 					"A%s", dirbuf->d_name);
 			    else
-			        sprintf((char *)dirname,
+				sprintf((char *)dirname,
 					"D%s", dirbuf->d_name);
 			else if (dir_list_style == MIXED_STYLE)
 			    sprintf((char *)dirname, " %s", dirbuf->d_name);
@@ -2172,16 +2092,16 @@ PUBLIC int HTLoadFile ARGS4(
 		    }
 
 		    /*
-		    **  Run through tree printing out in order.
+		    **	Run through tree printing out in order.
 		    */
 		    {
-		        HTBTElement * next_element = HTBTree_next(bt,NULL);
+			HTBTElement * next_element = HTBTree_next(bt,NULL);
 			    /* pick up the first element of the list */
 			char state;
 			    /* I for initial (.. file),
 			       D for directory file,
 			       F for file */
-			
+
 #ifdef DIRED_SUPPORT
 			char test;
 #endif /* DIRED_SUPPORT */
@@ -2191,47 +2111,47 @@ PUBLIC int HTLoadFile ARGS4(
 			    char *entry, *file_extra;
 
 			    StrAllocCopy(tmpfilename,localname);
-			    if (strcmp(localname, "/")) 
+			    if (strcmp(localname, "/"))
 				/*
 				**  If filename is not root directory.
 				*/
-			        StrAllocCat(tmpfilename, "/"); 
+				StrAllocCat(tmpfilename, "/");
 
 			    StrAllocCat(tmpfilename,
 					(char *)HTBTree_object(next_element)+1);
 			    /*
-			    **  Append the current entry's filename
-			    **  to the path.
+			    **	Append the current entry's filename
+			    **	to the path.
 			    */
 			    HTSimplify(tmpfilename);
 			    /*
-			    **  Output the directory entry.
+			    **	Output the directory entry.
 			    */
 			    if (strcmp((char *)
 				       (HTBTree_object(next_element)), "D..") &&
-			        strcmp((char *)
+				strcmp((char *)
 				       (HTBTree_object(next_element)), "A.."))
-			    {			    
+			    {
 #ifdef DIRED_SUPPORT
-			        test = (*(char *)(HTBTree_object(next_element))
-				        == 'D' ? 'D' : 'F');
+				test = (*(char *)(HTBTree_object(next_element))
+					== 'D' ? 'D' : 'F');
 				if (state != test) {
 #ifndef LONG_LIST
 				    if (dir_list_style == FILES_FIRST) {
 				       if (state == 'F')
-  					  END(HTML_DIR); 
+					  END(HTML_DIR);
 				    } else if (dir_list_style != MIXED_STYLE)
 				       if (state == 'D')
-  					  END(HTML_DIR); 
+					  END(HTML_DIR);
 #endif /* !LONG_LIST */
-				    state = 
+				    state =
 				       (*(char *)(HTBTree_object(next_element))
-				        == 'D' ? 'D' : 'F');
+					== 'D' ? 'D' : 'F');
 				    START(HTML_H2);
 				    if (dir_list_style != MIXED_STYLE) {
 				       START(HTML_EM);
 				       PUTS(state == 'D' ?
-				          "Subdirectories:" : "Files:");
+					  "Subdirectories:" : "Files:");
 				       END(HTML_EM);
 				    }
 				    END(HTML_H2);
@@ -2244,7 +2164,7 @@ PUBLIC int HTLoadFile ARGS4(
 							 next_element))) {
 #ifndef LONG_LIST
 				    if (state == 'D')
-				        END(HTML_DIR);
+					END(HTML_DIR);
 #endif /* !LONG_LIST */
 				    state =
 				      (*(char *)(HTBTree_object(next_element))
@@ -2261,7 +2181,7 @@ PUBLIC int HTLoadFile ARGS4(
 				}
 #endif /* DIRED_SUPPORT */
 #ifndef LONG_LIST
-			        START(HTML_LI);
+				START(HTML_LI);
 #endif /* !LONG_LIST */
 			    }
 			    entry = (char*)HTBTree_object(next_element)+1;
@@ -2278,11 +2198,11 @@ PUBLIC int HTLoadFile ARGS4(
 				PUTS(file_extra);
 				FREE(file_extra);
 			    }
-                            MAYBE_END(HTML_LI);
+			    MAYBE_END(HTML_LI);
 #endif /* LONG_LIST */
 
 			    next_element = HTBTree_next(bt, next_element);
-			        /* pick up the next element of the list; 
+				/* pick up the next element of the list;
 				 if none, return NULL*/
 			}
 			if (state == 'I') {
@@ -2294,7 +2214,7 @@ PUBLIC int HTLoadFile ARGS4(
 			    END(HTML_DIR);
 #endif /* !LONG_LIST */
 		    }
-		        /* end while directory entries left to read */
+			/* end while directory entries left to read */
 		    closedir(dp);
 		    FREE(logical);
 		    FREE(tmpfilename);
@@ -2310,9 +2230,9 @@ PUBLIC int HTLoadFile ARGS4(
 		}
 
 	    } /* end if localname is directory */
-	
+
 	} /* end if file stat worked */
-	
+
 /* End of directory reading section
 */
 #endif /* HAVE_READDIR */
@@ -2320,10 +2240,10 @@ PUBLIC int HTLoadFile ARGS4(
 	    FILE * fp = fopen(localname, "r");
 
 	    if (TRACE)
-	        fprintf (stderr, "HTLoadFile: Opening `%s' gives %p\n",
+		fprintf (stderr, "HTLoadFile: Opening `%s' gives %p\n",
 				 localname, (void*)fp);
 	    if (fp) {		/* Good! */
-	        int len;
+		int len;
 		char *cp = NULL;
 
 		if (HTEditable(localname)) {
@@ -2338,9 +2258,9 @@ PUBLIC int HTLoadFile ARGS4(
 		*/
 		if (!IsUnityEnc(myEncoding)) {
 		    /*
-		     *  We already know from the call to HTFileFormat above
-		     *  that this is a compressed file, no need to look at
-		     *  the filename again. - kw
+		     *	We already know from the call to HTFileFormat above
+		     *	that this is a compressed file, no need to look at
+		     *	the filename again. - kw
 		     */
 #ifdef USE_ZLIB
 		    if (strcmp(format_out->name, "www/download") != 0 &&
@@ -2355,7 +2275,7 @@ PUBLIC int HTLoadFile ARGS4(
 				    localname, (void*)gzfp);
 			use_gzread = YES;
 		    } else
-#endif  /* USE_ZLIB */
+#endif	/* USE_ZLIB */
 		    {
 			StrAllocCopy(anchor->content_type, format->name);
 			StrAllocCopy(anchor->content_encoding, HTAtom_name(myEncoding));
@@ -2363,7 +2283,7 @@ PUBLIC int HTLoadFile ARGS4(
 		    }
 		} else if ((len = strlen(localname)) > 2) {
 		    if (localname[len - 1] == 'Z' &&
-		        localname[len - 2] == '.') {
+			localname[len - 2] == '.') {
 			StrAllocCopy(cp, localname);
 			cp[len - 2] = '\0';
 			format = HTFileFormat(cp, &encoding, NULL);
@@ -2375,7 +2295,7 @@ PUBLIC int HTLoadFile ARGS4(
 			format = HTAtom_for("www/compressed");
 		    } else if ((len > 3) &&
 			       !strcasecomp((char *)&localname[len - 2],
-			       		    "gz") &&
+					    "gz") &&
 			       localname[len - 3] == '.') {
 			StrAllocCopy(cp, localname);
 			cp[len - 3] = '\0';
@@ -2398,7 +2318,7 @@ PUBLIC int HTLoadFile ARGS4(
 			}
 #else  /* USE_ZLIB */
 			format = HTAtom_for("www/compressed");
-#endif  /* USE_ZLIB */
+#endif	/* USE_ZLIB */
 		    }
 		}
 		FREE(localname);
@@ -2444,31 +2364,31 @@ PUBLIC int HTLoadFile ARGS4(
 	    }  /* If succesfull open */
 	    FREE(localname);
 	}  /* scope of fp */
-    }  /* local unix file system */    
+    }  /* local unix file system */
 #endif /* !NO_UNIX_IO */
 #endif /* VMS */
 
 #ifndef DECNET
     /*
-    **  Now, as transparently mounted access has failed, we try FTP.
+    **	Now, as transparently mounted access has failed, we try FTP.
     */
     {
 	/*
 	**  Deal with case-sensitivity differences on VMS verus Unix.
 	*/
 #ifdef VMS
-        if (strcasecomp(nodename, HTHostName()) != 0)
+	if (strcasecomp(nodename, HTHostName()) != 0)
 #else
 	if (strcmp(nodename, HTHostName()) != 0)
 #endif /* VMS */
 	{
 	    FREE(nodename);
 	    if (!strncmp(addr, "file://localhost", 16)) {
-	        return -1;  /* never go to ftp site when URL
+		return -1;  /* never go to ftp site when URL
 			     * is file://localhost
 			     */
 	    } else {
-	        return HTFTPLoad(addr, anchor, format_out, sink);
+		return HTFTPLoad(addr, anchor, format_out, sink);
 	    }
 	}
 	FREE(nodename);
@@ -2476,10 +2396,10 @@ PUBLIC int HTLoadFile ARGS4(
 #endif /* !DECNET */
 
     /*
-    **  All attempts have failed.
+    **	All attempts have failed.
     */
     {
-    	if (TRACE)
+	if (TRACE)
 	    fprintf(stderr, "Can't open `%s', errno=%d\n", addr, SOCKET_ERRNO);
 
 	return HTLoadError(sink, 403, "Can't access requested file.");
diff --git a/WWW/Library/Implementation/HTFormat.c b/WWW/Library/Implementation/HTFormat.c
index ee0e36c9..cf36c304 100644
--- a/WWW/Library/Implementation/HTFormat.c
+++ b/WWW/Library/Implementation/HTFormat.c
@@ -26,7 +26,7 @@ PUBLIC long int HTMaxBytes  = 0;	/* No effective limit */
 #ifdef NeXT
 #define PRESENT_POSTSCRIPT "open %s; /bin/rm -f %s\n"
 #else
-#define PRESENT_POSTSCRIPT "(ghostview %s ; /bin/rm -f %s)&\n"	
+#define PRESENT_POSTSCRIPT "(ghostview %s ; /bin/rm -f %s)&\n"
 			   /* Full pathname would be better! */
 #endif /* NeXT */
 #endif /* unix */
@@ -69,14 +69,14 @@ struct _HTStream {
 struct _HTStream {
 	CONST HTStreamClass *	isa;
 	BOOL			had_cr;
-	HTStream * 		sink;
+	HTStream *		sink;
 };
 
 /*	Presentation methods
 **	--------------------
 */
-PUBLIC  HTList * HTPresentations = NULL;
-PUBLIC  HTPresentation * default_presentation = NULL;
+PUBLIC	HTList * HTPresentations = NULL;
+PUBLIC	HTPresentation * default_presentation = NULL;
 
 /*
  *	To free off the presentation list.
@@ -90,38 +90,38 @@ PUBLIC void HTSetPresentation ARGS6(
 	CONST char *,	representation,
 	CONST char *,	command,
 	float,		quality,
-	float,		secs, 
+	float,		secs,
 	float,		secs_per_byte,
 	long int,	maxbytes)
 {
     HTPresentation * pres = (HTPresentation *)malloc(sizeof(HTPresentation));
     if (pres == NULL)
-        outofmem(__FILE__, "HTSetPresentation");
-    
+	outofmem(__FILE__, "HTSetPresentation");
+
     pres->rep = HTAtom_for(representation);
     pres->rep_out = WWW_PRESENT;		/* Fixed for now ... :-) */
-    pres->converter = HTSaveAndExecute;		/* Fixed for now ...     */
+    pres->converter = HTSaveAndExecute; 	/* Fixed for now ...	 */
     pres->quality = quality;
     pres->secs = secs;
     pres->secs_per_byte = secs_per_byte;
     pres->maxbytes = maxbytes;
     pres->command = NULL;
     StrAllocCopy(pres->command, command);
-   
+
     /*
      *	Memory leak fixed.
-     *  05-28-94 Lynx 2-3-1 Garrett Arch Blythe
-     */ 
+     *	05-28-94 Lynx 2-3-1 Garrett Arch Blythe
+     */
     if (!HTPresentations)	{
 	HTPresentations = HTList_new();
 	atexit(HTFreePresentations);
     }
-    
+
     if (strcmp(representation, "*")==0) {
 	FREE(default_presentation);
 	default_presentation = pres;
     } else {
-        HTList_addObject(HTPresentations, pres);
+	HTList_addObject(HTPresentations, pres);
     }
 }
 
@@ -133,14 +133,14 @@ PUBLIC void HTSetConversion ARGS7(
 	CONST char *,	representation_out,
 	HTConverter*,	converter,
 	float,		quality,
-	float,		secs, 
+	float,		secs,
 	float,		secs_per_byte,
 	long int,	maxbytes)
 {
     HTPresentation * pres = (HTPresentation *)malloc(sizeof(HTPresentation));
     if (pres == NULL)
-        outofmem(__FILE__, "HTSetConversion");
-    
+	outofmem(__FILE__, "HTSetConversion");
+
     pres->rep = HTAtom_for(representation_in);
     pres->rep_out = HTAtom_for(representation_out);
     pres->converter = converter;
@@ -150,16 +150,16 @@ PUBLIC void HTSetConversion ARGS7(
     pres->secs_per_byte = secs_per_byte;
     pres->maxbytes = maxbytes;
     pres->command = NULL;
-   
+
     /*
      *	Memory Leak fixed.
      *	05-28-94 Lynx 2-3-1 Garrett Arch Blythe
-     */ 
+     */
     if (!HTPresentations)	{
 	HTPresentations = HTList_new();
 	atexit(HTFreePresentations);
     }
-    
+
     HTList_addObject(HTPresentations, pres);
 }
 
@@ -177,7 +177,7 @@ PRIVATE void HTFreePresentations NOARGS
     HTPresentation * pres = NULL;
 
     /*
-     *  Loop through the list.
+     *	Loop through the list.
      */
     while (!HTList_isEmpty(HTPresentations)) {
 	/*
@@ -230,17 +230,17 @@ PUBLIC char HTGetCharacter NOARGS
     do {
 	if (input_pointer >= input_limit) {
 	    int status = NETREAD(input_file_number,
-	    			 input_buffer, INPUT_BUFFER_SIZE);
+				 input_buffer, INPUT_BUFFER_SIZE);
 	    if (status <= 0) {
 		if (status == 0)
 		    return (char)EOF;
 		if (status == HT_INTERRUPTED) {
-                    if (TRACE)
-                        fprintf(stderr,
-			        "HTFormat: Interrupted in HTGetCharacter\n");
-                    interrupted_in_htgetcharacter = 1;
-                    return (char)EOF;
-                }
+		    if (TRACE)
+			fprintf(stderr,
+				"HTFormat: Interrupted in HTGetCharacter\n");
+		    interrupted_in_htgetcharacter = 1;
+		    return (char)EOF;
+		}
 		if (TRACE)
 		    fprintf(stderr, "HTFormat: File read error %d\n", status);
 		return (char)EOF; /* -1 is returned by UCX
@@ -251,29 +251,9 @@ PUBLIC char HTGetCharacter NOARGS
 	}
 	ch = *input_pointer++;
     } while (ch == (char) 13); /* Ignore ASCII carriage return */
-    
-    return FROMASCII(ch);
-}
 
-#ifdef NOT_USED
-/*	Stream the data to an ouput file as binary
-*/
-PUBLIC int HTOutputBinary ARGS2( int, 		input,
-				  FILE *, 	output)
-{
-    do {
-	    int status = NETREAD(input, input_buffer, INPUT_BUFFER_SIZE);
-	    if (status <= 0) {
-		if (status == 0)
-		    return 0;
-		if (TRACE)
-		    fprintf(stderr, "HTFormat: File read error %d\n", status);
-		return 2;			/* Error */
-	    }
-	    fwrite(input_buffer, sizeof(char), status, output);
-    } while (YES);
+    return FROMASCII(ch);
 }
-#endif /* NOT_USED */
 
 /*  Match maintype to any MIME type starting with maintype,
  *  for example:  image/gif should match image
@@ -291,7 +271,7 @@ PRIVATE int half_match ARGS2(char *,trial_type, char *,target)
 						      trial_type, target);
 
 	/* main type matches */
-    if (!strncmp(trial_type, target, (cp-trial_type)-1)) 
+    if (!strncmp(trial_type, target, (cp-trial_type)-1))
 	return 1;
 
     return 0;
@@ -316,13 +296,13 @@ PRIVATE HTPresentation * HTFindPresentation ARGS3(
     HTAtom * wildcard = HTAtom_for("*");
 
     if (TRACE)
-        fprintf(stderr,
+	fprintf(stderr,
 		"HTFormat: Looking up presentation for %s to %s\n",
 		HTAtom_name(rep_in), HTAtom_name(rep_out));
-		
+
     /* don't do anymore do it in the Lynx code at startup LJM */
-    /* if (!HTPresentations) HTFormatInit(); */	/* set up the list */
-    
+    /* if (!HTPresentations) HTFormatInit(); */ /* set up the list */
+
     {
 	int n = HTList_count(HTPresentations);
 	int i;
@@ -335,18 +315,18 @@ PRIVATE HTPresentation * HTFindPresentation ARGS3(
 	for (i = 0; i < n; i++) {
 	    pres = (HTPresentation *)HTList_objectAt(HTPresentations, i);
 	    if (pres->rep == rep_in) {
-	        if (pres->rep_out == rep_out) {
+		if (pres->rep_out == rep_out) {
 		    if (TRACE)
 			fprintf(stderr,
 				"FindPresentation: found exact match: %s\n",
 				HTAtom_name(pres->rep));
-	    	    return pres;
+		    return pres;
 
 		} else if (!fill_in) {
 		    continue;
 		} else if (pres->rep_out == wildcard) {
 		    if (!strong_wildcard_match)
-		        strong_wildcard_match = pres;
+			strong_wildcard_match = pres;
 		    /* otherwise use the first one */
 		    if (TRACE)
 			fprintf(stderr,
@@ -359,9 +339,9 @@ PRIVATE HTPresentation * HTFindPresentation ARGS3(
 
 	    } else if (half_match(HTAtom_name(pres->rep),
 					      HTAtom_name(rep_in))) {
-	        if (pres->rep_out == rep_out) {
+		if (pres->rep_out == rep_out) {
 		    if (!strong_subtype_wildcard_match)
-		        strong_subtype_wildcard_match = pres;
+			strong_subtype_wildcard_match = pres;
 		    /* otherwise use the first one */
 		    if (TRACE)
 			fprintf(stderr,
@@ -373,7 +353,7 @@ PRIVATE HTPresentation * HTFindPresentation ARGS3(
 	    if (pres->rep == WWW_SOURCE) {
 		if (pres->rep_out == rep_out) {
 		    if (!weak_wildcard_match)
-		        weak_wildcard_match = pres;
+			weak_wildcard_match = pres;
 		    /* otherwise use the first one */
 		    if (TRACE)
 			fprintf(stderr,
@@ -382,23 +362,23 @@ PRIVATE HTPresentation * HTFindPresentation ARGS3(
 		}
 		if (pres->rep_out == wildcard) {
 		    if (!last_default_match)
-		         last_default_match = pres;
+			 last_default_match = pres;
 		    /* otherwise use the first one */
 		}
 	    }
 	}
-	
+
 	match = strong_subtype_wildcard_match ? strong_subtype_wildcard_match :
-		strong_wildcard_match ?	strong_wildcard_match : 
-		weak_wildcard_match ? weak_wildcard_match : 
+		strong_wildcard_match ? strong_wildcard_match :
+		weak_wildcard_match ? weak_wildcard_match :
 		last_default_match;
-	
+
 	if (match) {
 	    *fill_in = *match;		/* Specific instance */
 	    fill_in->rep = rep_in;		/* yuk */
-	    fill_in->rep_out = rep_out;	/* yuk */
+	    fill_in->rep_out = rep_out; /* yuk */
 	    return fill_in;
-        }
+	}
     }
 
     return NULL;
@@ -424,10 +404,10 @@ PUBLIC HTStream * HTStreamStack ARGS4(
     HTPresentation *match;
 
     if (TRACE)
-        fprintf(stderr,
+	fprintf(stderr,
 		"HTFormat: Constructing stream stack for %s to %s\n",
 		HTAtom_name(rep_in), HTAtom_name(rep_out));
-		
+
     /* don't return on WWW_SOURCE some people might like
      * to make use of the source!!!!  LJM
      *//*
@@ -435,7 +415,7 @@ PUBLIC HTStream * HTStreamStack ARGS4(
 	return sink;  LJM */
 
     if (rep_out == rep_in)
-        return sink;
+	return sink;
 
     if ((match = HTFindPresentation(rep_in, rep_out, &temp))) {
 	if (match == &temp) {
@@ -469,7 +449,7 @@ PUBLIC void HTReorderPresentation ARGS2(
 	HTList_removeObject(HTPresentations, match);
 	HTList_addObject(HTPresentations, match);
     }
-}    
+}
 /*		Find the cost of a filter stack
 **		-------------------------------
 **
@@ -487,16 +467,16 @@ PUBLIC float HTStackValue ARGS4(
     HTAtom * wildcard = HTAtom_for("*");
 
     if (TRACE)
-        fprintf(stderr,
-    		"HTFormat: Evaluating stream stack for %s worth %.3f to %s\n",
+	fprintf(stderr,
+		"HTFormat: Evaluating stream stack for %s worth %.3f to %s\n",
 		HTAtom_name(rep_in), initial_value, HTAtom_name(rep_out));
-		
+
     if (rep_out == WWW_SOURCE || rep_out == rep_in)
-        return 0.0;
+	return 0.0;
 
     /* don't do anymore do it in the Lynx code at startup LJM */
-    /* if (!HTPresentations) HTFormatInit(); */	/* set up the list */
-    
+    /* if (!HTPresentations) HTFormatInit(); */ /* set up the list */
+
     {
 	int n = HTList_count(HTPresentations);
 	int i;
@@ -504,20 +484,20 @@ PUBLIC float HTStackValue ARGS4(
 	for (i = 0; i < n; i++) {
 	    pres = (HTPresentation *)HTList_objectAt(HTPresentations, i);
 	    if (pres->rep == rep_in &&
-	        (pres->rep_out == rep_out || pres->rep_out == wildcard)) {
-	        float value = initial_value * pres->quality;
+		(pres->rep_out == rep_out || pres->rep_out == wildcard)) {
+		float value = initial_value * pres->quality;
 		if (HTMaxSecs != 0.0)
 		    value = value - (length*pres->secs_per_byte + pres->secs)
-			                 /HTMaxSecs;
+					 /HTMaxSecs;
 		return value;
 	    }
 	}
     }
-    
+
     return -1e30;		/* Really bad */
 
 }
-	
+
 /*	Push data from a socket down a stream
 **	-------------------------------------
 **
@@ -535,18 +515,18 @@ PUBLIC int HTCopy ARGS4(
 	void*,			handle,
 	HTStream*,		sink)
 {
-    HTStreamClass targetClass;    
+    HTStreamClass targetClass;
     char line[256];
     int bytes = 0;
     int rv = 0;
 
-    /*  Push the data down the stream
+    /*	Push the data down the stream
     */
-    targetClass = *(sink->isa);	/* Copy pointers to procedures */
+    targetClass = *(sink->isa); /* Copy pointers to procedures */
 
     /*	Push binary from socket down sink
     **
-    **  This operation could be put into a main event loop
+    **	This operation could be put into a main event loop
     */
     for (;;) {
 	int status;
@@ -562,19 +542,19 @@ PUBLIC int HTCopy ARGS4(
 	    _HTProgress ("Data transfer interrupted.");
 	    (*targetClass._abort)(sink, NULL);
 	    if (bytes)
-	        rv = HT_INTERRUPTED;
+		rv = HT_INTERRUPTED;
 	    else
 		rv = -1;
 	    goto finished;
-        }
+	}
 
-        status = NETREAD(file_number, input_buffer, INPUT_BUFFER_SIZE);
+	status = NETREAD(file_number, input_buffer, INPUT_BUFFER_SIZE);
 
 	if (status <= 0) {
 	    if (status == 0) {
-	        break;
+		break;
 	    } else if (status == HT_INTERRUPTED) {
-	        _HTProgress ("Data transfer interrupted.");
+		_HTProgress ("Data transfer interrupted.");
 		(*targetClass._abort)(sink, NULL);
 		if (bytes)
 		    rv = HT_INTERRUPTED;
@@ -582,18 +562,18 @@ PUBLIC int HTCopy ARGS4(
 		    rv = -1;
 		goto finished;
 	    } else if (SOCKET_ERRNO == ENOTCONN ||
-	    	       SOCKET_ERRNO == ECONNRESET ||
+		       SOCKET_ERRNO == ECONNRESET ||
 		       SOCKET_ERRNO == EPIPE) {
-                /*
+		/*
 		 *  Arrrrgh, HTTP 0/1 compability problem, maybe.
 		 */
 		if (bytes <= 0) {
 		    /*
-		     *  Don't have any data, so let the calling
-		     *  function decide what to do about it. - FM
+		     *	Don't have any data, so let the calling
+		     *	function decide what to do about it. - FM
 		     */
 		    rv = -2;
-	            goto finished;
+		    goto finished;
 		} else {
 		   /*
 		    *  Treat what we've gotten already
@@ -623,7 +603,7 @@ PUBLIC int HTCopy ARGS4(
 	bytes += status;
 	if (anchor && anchor->content_length > 0)
 	    sprintf(line, "Read %d of %d bytes of data.",
-	    		  bytes, anchor->content_length);
+			  bytes, anchor->content_length);
 	else
 	    sprintf(line, "Read %d bytes of data.", bytes);
 	HTProgress(line);
@@ -647,17 +627,17 @@ finished:
 **
 */
 PUBLIC int HTFileCopy ARGS2(
-	FILE *,			fp,
+	FILE *, 		fp,
 	HTStream*,		sink)
 {
-    HTStreamClass targetClass;    
+    HTStreamClass targetClass;
     char line[256];
     int status, bytes = 0, nreads = 0, nprogr = 0;
     int rv = HT_OK;
-    
-    /*  Push the data down the stream
+
+    /*	Push the data down the stream
     */
-    targetClass = *(sink->isa);	/* Copy pointers to procedures */
+    targetClass = *(sink->isa); /* Copy pointers to procedures */
 
     /*	Push binary from socket down sink
     */
@@ -667,10 +647,10 @@ PUBLIC int HTFileCopy ARGS2(
 	if (status == 0) { /* EOF or error */
 	    if (ferror(fp) == 0) {
 		rv = HT_LOADED;
-	        break;
+		break;
 	    }
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTFormat: Read error, read returns %d\n",
 			ferror(fp));
 	    if (bytes) {
@@ -685,11 +665,11 @@ PUBLIC int HTFileCopy ARGS2(
 	bytes += status;
 	if (nreads >= 100) {
 	    /*
-	    **  Show progress messages for local files, and check for
-	    **  user interruption.  Start doing so only after a certain
-	    **  number of reads have been done, and don't update it on
-	    **  every read (normally reading in a local file should be
-	    **  speedy). - KW
+	    **	Show progress messages for local files, and check for
+	    **	user interruption.  Start doing so only after a certain
+	    **	number of reads have been done, and don't update it on
+	    **	every read (normally reading in a local file should be
+	    **	speedy). - KW
 	    */
 	    if (nprogr == 0) {
 		if (bytes < 1024000) {
@@ -731,18 +711,18 @@ PUBLIC int HTFileCopy ARGS2(
 **
 */
 PRIVATE int HTGzFileCopy ARGS2(
-	gzFile,			gzfp,
+	gzFile, 		gzfp,
 	HTStream*,		sink)
 {
-    HTStreamClass targetClass;    
+    HTStreamClass targetClass;
     char line[256];
     int status, bytes = 0, nreads = 0, nprogr = 0;
     int gzerrnum;
     int rv = HT_OK;
-    
-    /*  Push the data down the stream
+
+    /*	Push the data down the stream
     */
-    targetClass = *(sink->isa);	/* Copy pointers to procedures */
+    targetClass = *(sink->isa); /* Copy pointers to procedures */
 
     /*	read and inflate gzipped file, and push binary down sink
     */
@@ -752,13 +732,13 @@ PRIVATE int HTGzFileCopy ARGS2(
 	if (status <= 0) { /* EOF or error */
 	    if (status == 0) {
 		rv = HT_LOADED;
-	        break;
+		break;
 	    }
 	    if (TRACE) {
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTGzFileCopy: Read error, gzread returns %d\n",
 			status);
-	        fprintf(stderr,
+		fprintf(stderr,
 			"gzerror   : %s\n",
 			gzerror(gzfp, &gzerrnum));
 		if (gzerrnum == Z_ERRNO)
@@ -776,11 +756,11 @@ PRIVATE int HTGzFileCopy ARGS2(
 	bytes += status;
 	if (nreads >= 100) {
 	    /*
-	    **  Show progress messages for local files, and check for
-	    **  user interruption.  Start doing so only after a certain
-	    **  number of reads have been done, and don't update it on
-	    **  every read (normally reading in a local file should be
-	    **  speedy). - KW
+	    **	Show progress messages for local files, and check for
+	    **	user interruption.  Start doing so only after a certain
+	    **	number of reads have been done, and don't update it on
+	    **	every read (normally reading in a local file should be
+	    **	speedy). - KW
 	    */
 	    if (nprogr == 0) {
 		if (bytes < 1024000) {
@@ -830,24 +810,24 @@ PUBLIC void HTCopyNoCR ARGS3(
 	int,			file_number,
 	HTStream*,		sink)
 {
-    HTStreamClass targetClass;    
+    HTStreamClass targetClass;
     char character;
 
-    /*  Push the data, ignoring CRLF, down the stream
+    /*	Push the data, ignoring CRLF, down the stream
     */
-    targetClass = *(sink->isa);	/* Copy pointers to procedures */
+    targetClass = *(sink->isa); /* Copy pointers to procedures */
 
-    /*  Push text from telnet socket down sink
+    /*	Push text from telnet socket down sink
     **
-    **  @@@@@ To push strings could be faster? (especially is we
-    **  cheat and don't ignore CR! :-}
-    */  
+    **	@@@@@ To push strings could be faster? (especially is we
+    **	cheat and don't ignore CR! :-}
+    */
     HTInitInput(file_number);
     for (;;) {
 	character = HTGetCharacter();
 	if (character == (char)EOF)
 	    break;
-	(*targetClass.put_character)(sink, character);           
+	(*targetClass.put_character)(sink, character);
     }
 }
 
@@ -873,28 +853,28 @@ PUBLIC int HTParseSocket ARGS5(
     int rv;
 
     stream = HTStreamStack(rep_in, format_out, sink, anchor);
-    
+
     if (!stream) {
-        char buffer[1024];	/* @@@@@@@@ */
-        if (LYCancelDownload) {
+	char buffer[1024];	/* @@@@@@@@ */
+	if (LYCancelDownload) {
 	    LYCancelDownload = FALSE;
 	    return -1;
 	}
 	sprintf(buffer, "Sorry, can't convert from %s to %s.",
-	        HTAtom_name(rep_in), HTAtom_name(format_out));
+		HTAtom_name(rep_in), HTAtom_name(format_out));
 	if (TRACE)
 	    fprintf(stderr, "HTFormat: %s\n", buffer);
-        return HTLoadError(sink, 501, buffer); /* returns -501 */
+	return HTLoadError(sink, 501, buffer); /* returns -501 */
     }
-    
+
     /*
     ** Push the data, don't worry about CRLF we can strip them later.
     */
     targetClass = *(stream->isa);	/* Copy pointers to procedures */
     rv = HTCopy(anchor, file_number, NULL, stream);
     if (rv != -1 && rv != HT_INTERRUPTED)
-        (*targetClass._free)(stream);
-    
+	(*targetClass._free)(stream);
+
     return rv; /* full: HT_LOADED;  partial: HT_INTERRUPTED;  no bytes: -1 */
 }
 
@@ -912,20 +892,20 @@ PUBLIC int HTParseFile ARGS5(
 	HTFormat,		rep_in,
 	HTFormat,		format_out,
 	HTParentAnchor *,	anchor,
-	FILE *,			fp,
+	FILE *, 		fp,
 	HTStream*,		sink)
 {
     HTStream * stream;
-    HTStreamClass targetClass;    
+    HTStreamClass targetClass;
     int rv;
 
     stream = HTStreamStack(rep_in,
 			format_out,
-	 		sink , anchor);
-    
+			sink , anchor);
+
     if (!stream) {
-        char buffer[1024];	/* @@@@@@@@ */
-        if (LYCancelDownload) {
+	char buffer[1024];	/* @@@@@@@@ */
+	if (LYCancelDownload) {
 	    LYCancelDownload = FALSE;
 	    return -1;
 	}
@@ -933,19 +913,19 @@ PUBLIC int HTParseFile ARGS5(
 		HTAtom_name(rep_in), HTAtom_name(format_out));
 	if (TRACE)
 	    fprintf(stderr, "HTFormat(in HTParseFile): %s\n", buffer);
-        return HTLoadError(sink, 501, buffer);
+	return HTLoadError(sink, 501, buffer);
     }
-    
-    /*  Push the data down the stream
+
+    /*	Push the data down the stream
     **
-    **  @@  Bug:  This decision ought to be made based on "encoding"
-    **  rather than on content-type.  @@@  When we handle encoding.
-    **  The current method smells anyway.
+    **	@@  Bug:  This decision ought to be made based on "encoding"
+    **	rather than on content-type.  @@@  When we handle encoding.
+    **	The current method smells anyway.
     */
     targetClass = *(stream->isa);	/* Copy pointers to procedures */
     rv = HTFileCopy(fp, stream);
     if (rv == -1 || rv == HT_INTERRUPTED) {
-        (*targetClass._abort)(stream, NULL);
+	(*targetClass._abort)(stream, NULL);
     } else {
 	(*targetClass._free)(stream);
     }
@@ -960,7 +940,7 @@ PUBLIC int HTParseFile ARGS5(
 
 #ifdef USE_ZLIB
 PRIVATE int HTCloseGzFile ARGS1(
-	gzFile,			gzfp)
+	gzFile, 		gzfp)
 {
     int gzres;
     if (gzfp == NULL)
@@ -975,27 +955,27 @@ PRIVATE int HTCloseGzFile ARGS1(
     }
     return(gzres);
 }
-    
+
 PUBLIC int HTParseGzFile ARGS5(
 	HTFormat,		rep_in,
 	HTFormat,		format_out,
 	HTParentAnchor *,	anchor,
-	gzFile,			gzfp,
+	gzFile, 		gzfp,
 	HTStream*,		sink)
 {
     HTStream * stream;
-    HTStreamClass targetClass;    
+    HTStreamClass targetClass;
     int rv;
 
     stream = HTStreamStack(rep_in,
 			format_out,
-	 		sink , anchor);
-    
+			sink , anchor);
+
     if (!stream) {
-        char buffer[1024];	/* @@@@@@@@ */
+	char buffer[1024];	/* @@@@@@@@ */
 	extern char LYCancelDownload;
 	HTCloseGzFile(gzfp);
-        if (LYCancelDownload) {
+	if (LYCancelDownload) {
 	    LYCancelDownload = FALSE;
 	    return -1;
 	}
@@ -1003,19 +983,19 @@ PUBLIC int HTParseGzFile ARGS5(
 		HTAtom_name(rep_in), HTAtom_name(format_out));
 	if (TRACE)
 	    fprintf(stderr, "HTFormat(in HTParseGzFile): %s\n", buffer);
-        return HTLoadError(sink, 501, buffer);
+	return HTLoadError(sink, 501, buffer);
     }
-    
-    /*  Push the data down the stream
+
+    /*	Push the data down the stream
     **
-    **  @@  Bug:  This decision ought to be made based on "encoding"
-    **  rather than on content-type.  @@@  When we handle encoding.
-    **  The current method smells anyway.
+    **	@@  Bug:  This decision ought to be made based on "encoding"
+    **	rather than on content-type.  @@@  When we handle encoding.
+    **	The current method smells anyway.
     */
     targetClass = *(stream->isa);	/* Copy pointers to procedures */
     rv = HTGzFileCopy(gzfp, stream);
     if (rv == -1 || rv == HT_INTERRUPTED) {
-        (*targetClass._abort)(stream, NULL);
+	(*targetClass._abort)(stream, NULL);
     } else {
 	(*targetClass._free)(stream);
     }
@@ -1044,12 +1024,12 @@ PRIVATE void NetToText_put_character ARGS2(HTStream *, me, char, net_char)
 {
     char c = FROMASCII(net_char);
     if (me->had_cr) {
-        if (c == LF) {
+	if (c == LF) {
 	    me->sink->isa->put_character(me->sink, '\n');	/* Newline */
 	    me->had_cr = NO;
 	    return;
-        } else {
-	    me->sink->isa->put_character(me->sink, CR);	/* leftover */
+	} else {
+	    me->sink->isa->put_character(me->sink, CR); /* leftover */
 	}
     }
     me->had_cr = (c == CR);
@@ -1062,7 +1042,7 @@ PRIVATE void NetToText_put_string ARGS2(HTStream *, me, CONST char *, s)
     CONST char * p;
 
     for (p = s; *p; p++)
-        NetToText_put_character(me, *p);
+	NetToText_put_character(me, *p);
 }
 
 PRIVATE void NetToText_put_block ARGS3(HTStream *, me, CONST char*, s, int, l)
@@ -1070,7 +1050,7 @@ PRIVATE void NetToText_put_block ARGS3(HTStream *, me, CONST char*, s, int, l)
     CONST char * p;
 
     for (p = s; p < (s+l); p++)
-        NetToText_put_character(me, *p);
+	NetToText_put_character(me, *p);
 }
 
 PRIVATE void NetToText_free ARGS1(HTStream *, me)
@@ -1103,9 +1083,9 @@ PUBLIC HTStream * HTNetToText ARGS1(HTStream *, sink)
     HTStream* me = (HTStream*)malloc(sizeof(*me));
 
     if (me == NULL)
-        outofmem(__FILE__, "NetToText");
+	outofmem(__FILE__, "NetToText");
     me->isa = &NetToTextClass;
-    
+
     me->had_cr = NO;
     me->sink = sink;
     return me;
diff --git a/WWW/Library/Implementation/HTGopher.c b/WWW/Library/Implementation/HTGopher.c
index 449a355d..53e4149b 100644
--- a/WWW/Library/Implementation/HTGopher.c
+++ b/WWW/Library/Implementation/HTGopher.c
@@ -7,7 +7,7 @@
 **	10 Mar 96	Foteos Macrides (macrides@sci.wfbr.edu).  Added a
 **			  form-based CSO/PH gateway.  Can be invoked via a
 **			  "cso://host[:port]/" or "gopher://host:105/2"
-**			  URL.  If a gopher URL is used with a query token
+**			  URL.	If a gopher URL is used with a query token
 **			  ('?'), the old ISINDEX procedure will be used
 **			  instead of the form-based gateway.
 **	15 Mar 96	Foteos Macrides (macrides@sci.wfbr.edu).  Pass
@@ -27,12 +27,12 @@
 */
 #include "HTGopher.h"
 
-#define HT_EM_SPACE ((char)2)           /* For now */
+#define HT_EM_SPACE ((char)2)		/* For now */
 
 #define GOPHER_PORT 70		/* See protocol spec */
 #define CSO_PORT 105		/* See protocol spec */
 #define BIG 1024		/* Bug */
-#define LINE_LENGTH 256		/* Bug */
+#define LINE_LENGTH 256 	/* Bug */
 
 /*
 **  Gopher entity types.
@@ -42,24 +42,24 @@
 #define GOPHER_CSO		'2'
 #define GOPHER_ERROR		'3'
 #define GOPHER_MACBINHEX	'4'
-#define GOPHER_PCBINARY		'5'
+#define GOPHER_PCBINARY 	'5'
 #define GOPHER_UUENCODED	'6'
 #define GOPHER_INDEX		'7'
 #define GOPHER_TELNET		'8'
-#define GOPHER_BINARY           '9'
-#define GOPHER_GIF              'g'
-#define GOPHER_HTML		'h'	        /* HTML */
-#define GOPHER_CHTML		'H'	        /* HTML */
-#define GOPHER_SOUND            's'
+#define GOPHER_BINARY		'9'
+#define GOPHER_GIF		'g'
+#define GOPHER_HTML		'h'		/* HTML */
+#define GOPHER_CHTML		'H'		/* HTML */
+#define GOPHER_SOUND		's'
 #define GOPHER_WWW		'w'		/* W3 address */
-#define GOPHER_IMAGE            'I'
-#define GOPHER_TN3270           'T'
-#define GOPHER_INFO             'i'
+#define GOPHER_IMAGE		'I'
+#define GOPHER_TN3270		'T'
+#define GOPHER_INFO		'i'
 #define GOPHER_DUPLICATE	'+'
 #define GOPHER_PLUS_IMAGE	':'		/* Addition from Gopher Plus */
 #define GOPHER_PLUS_MOVIE	';'
 #define GOPHER_PLUS_SOUND	'<'
-#define GOPHER_PLUS_PDF		'P'
+#define GOPHER_PLUS_PDF 	'P'
 
 #include <ctype.h>
 
@@ -84,7 +84,7 @@
 
 #define GOPHER_PROGRESS(foo) HTAlert(foo)
 
-#define NEXT_CHAR HTGetCharacter() 
+#define NEXT_CHAR HTGetCharacter()
 
 /*
 **  Module-wide variables.
@@ -99,25 +99,25 @@ struct _HTStructured {
 PRIVATE HTStructured *target;		/* the new gopher hypertext */
 PRIVATE HTStructuredClass targetClass;	/* Its action routines */
 
-struct _HTStream 
+struct _HTStream
 {
   HTStreamClass * isa;			/* For form-based CSO  gateway - FM */
 };
 
-typedef struct _CSOfield_info {		/* For form-based CSO gateway - FM */
+typedef struct _CSOfield_info { 	/* For form-based CSO gateway - FM */
     struct _CSOfield_info *	next;
     char *			name;
     char *			attributes;
     char *			description;
     int 			id;
-    int				lookup;
-    int				indexed;
-    int				url;
-    int				max_size;
-    int				defreturn;
-    int				explicit_return;
-    int				reserved;
-    int				public;
+    int 			lookup;
+    int 			indexed;
+    int 			url;
+    int 			max_size;
+    int 			defreturn;
+    int 			explicit_return;
+    int 			reserved;
+    int 			public;
     char			name_buf[16];	/* Avoid malloc if we can */
     char			desc_buf[32];	/* Avoid malloc if we can */
     char			attr_buf[80];	/* Avoid malloc if we can */
@@ -129,13 +129,13 @@ typedef struct _CSOformgen_context {	 /* For form-based CSO gateway - FM */
     char *		host;
     char *		seek;
     CSOfield_info *	fld;
-    int			port;
-    int			cur_line;
-    int			cur_off;
-    int			rep_line;
-    int			rep_off;
-    int			public_override;
-    int			field_select;
+    int 		port;
+    int 		cur_line;
+    int 		cur_off;
+    int 		rep_line;
+    int 		rep_off;
+    int 		public_override;
+    int 		field_select;
 } CSOformgen_context;
 
 /*	Matrix of allowed characters in filenames
@@ -147,12 +147,12 @@ PRIVATE BOOL acceptable_inited = NO;
 PRIVATE void init_acceptable NOARGS
 {
     unsigned int i;
-    char * good = 
+    char * good =
       "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./-_$";
     for(i = 0; i < 256; i++)
-        acceptable[i] = NO;
+	acceptable[i] = NO;
     for(; *good; good++)
-        acceptable[(unsigned int)*good] = YES;
+	acceptable[(unsigned int)*good] = YES;
     acceptable_inited = YES;
 }
 
@@ -163,7 +163,7 @@ PRIVATE CONST char hex[17] = "0123456789abcdef";
 
 PRIVATE char from_hex ARGS1(char, c)
 {
-    return 		  (c>='0')&&(c<='9') ? c-'0'
+    return		  (c>='0')&&(c<='9') ? c-'0'
 			: (c>='A')&&(c<='F') ? c-'A'+10
 			: (c>='a')&&(c<='f') ? c-'a'+10
 			:		       0;
@@ -176,8 +176,8 @@ PRIVATE char from_hex ARGS1(char, c)
 **	of knowing what the title is when we arrive.
 **
 ** On entry,
-**	HT 	is in append mode.
-**	text 	points to the text to be put into the file, 0 terminated.
+**	HT	is in append mode.
+**	text	points to the text to be put into the file, 0 terminated.
 **	addr	points to the hypertext refernce address 0 terminated.
 */
 PUBLIC BOOLEAN HT_Is_Gopher_URL=FALSE;
@@ -186,11 +186,11 @@ PRIVATE void write_anchor ARGS2(CONST char *,text, CONST char *,addr)
 {
     BOOL present[HTML_A_ATTRIBUTES];
     CONST char * value[HTML_A_ATTRIBUTES];
-    
+
     int i;
-    
+
     for (i = 0; i < HTML_A_ATTRIBUTES; i++)
-        present[i] = 0;
+	present[i] = 0;
     present[HTML_A_HREF] = YES;
     ((CONST char **)value)[HTML_A_HREF] = addr;
     present[HTML_A_TITLE] = YES;
@@ -198,11 +198,11 @@ PRIVATE void write_anchor ARGS2(CONST char *,text, CONST char *,addr)
 
     if(TRACE)
 	fprintf(stderr,"HTGopher: adding URL: %s\n",addr);
-    
+
     HT_Is_Gopher_URL = TRUE;  /* tell HTML.c that this is a Gopher URL */
     (*targetClass.start_element)(target, HTML_A, present,
-    				 (CONST char **)value, -1, 0);
-	    
+				 (CONST char **)value, -1, 0);
+
     PUTS(text);
     END(HTML_A);
 }
@@ -227,10 +227,10 @@ PRIVATE void parse_menu ARGS2(
     int BytesReported = 0;
     char buffer[128];
 
-#define TAB 		'\t'
-#define HEX_ESCAPE 	'%'
+#define TAB		'\t'
+#define HEX_ESCAPE	'%'
+
 
-    
     START(HTML_HTML);
     PUTS("\n");
     START(HTML_HEAD);
@@ -239,7 +239,7 @@ PRIVATE void parse_menu ARGS2(
     if ((title = HTAnchor_title(anAnchor)))
 	PUTS(title);
     else
-        PUTS("Gopher Menu");
+	PUTS("Gopher Menu");
     END(HTML_TITLE);
     PUTS("\n");
     END(HTML_HEAD);
@@ -251,7 +251,7 @@ PRIVATE void parse_menu ARGS2(
     if ((title = HTAnchor_title(anAnchor)))
 	PUTS(title);
     else
-        PUTS("Gopher Menu");
+	PUTS("Gopher Menu");
     END(HTML_H1);
     PUTS("\n");
     START(HTML_PRE);
@@ -259,39 +259,39 @@ PRIVATE void parse_menu ARGS2(
 
 	if (interrupted_in_htgetcharacter) {
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		    "HTGopher: Interrupted in HTGetCharacter, apparently.\n");
 	    goto end_html;
-        }
+	}
 
-        if (ch != LF) {
+	if (ch != LF) {
 	    *p = ch;		/* Put character in line */
 	    if (p< &line[BIG-1]) p++;
-	    
+
 	} else {
 	    *p++ = '\0';	/* Terminate line */
-	    bytes += p-line;    /* add size */
+	    bytes += p-line;	/* add size */
 	    p = line;		/* Scan it to parse it */
 	    port = 0;		/* Flag "not parsed" */
 	    if (TRACE)
-	        fprintf(stderr, "HTGopher: Menu item: %s\n", line);
+		fprintf(stderr, "HTGopher: Menu item: %s\n", line);
 	    gtype = *p++;
 
 	    if (bytes > BytesReported + 1024) {
-	        sprintf(buffer, "Transferred %d bytes", bytes);
-                HTProgress(buffer);
+		sprintf(buffer, "Transferred %d bytes", bytes);
+		HTProgress(buffer);
 		BytesReported = bytes;
 	    }
-	    
+
 	    /* Break on line with a dot by itself */
 	    if ((gtype=='.') && ((*p=='\r') || (*p==0)))
-	        break;
+		break;
 
 	    if (gtype && *p) {
-	        name = p;
+		name = p;
 		selector = strchr(name, TAB);
 		if (selector) {
-		    *selector++ = '\0';	/* Terminate name */
+		    *selector++ = '\0'; /* Terminate name */
 		    /*
 		     * Gopher+ Type=0+ objects can be binary, and will
 		     * have 9 or 5 beginning their selector.  Make sure
@@ -299,11 +299,11 @@ PRIVATE void parse_menu ARGS2(
 		     * text. - FM
 		     */
 		    if (gtype == GOPHER_TEXT && (*selector == GOPHER_BINARY ||
-		    				 *selector == GOPHER_PCBINARY))
-		        gtype = *selector;
+						 *selector == GOPHER_PCBINARY))
+			gtype = *selector;
 		    host = strchr(selector, TAB);
 		    if (host) {
-			*host++ = '\0';	/* Terminate selector */
+			*host++ = '\0'; /* Terminate selector */
 			port = strchr(host, TAB);
 			if (port) {
 			    char *junk;
@@ -311,15 +311,15 @@ PRIVATE void parse_menu ARGS2(
 			    junk = strchr(port, TAB);
 			    if (junk) *junk++ = '\0';	/* Chop port */
 			    if ((port[1]=='0') && (!port[2]))
-			        port[0] = '\0';	/* 0 means none */
+				port[0] = '\0'; /* 0 means none */
 			} /* no port */
 		    } /* host ok */
 		} /* selector ok */
 	    } /* gtype and name ok */
-	    
+
 	    /* Nameless files are a separator line */
 	    if (gtype == GOPHER_TEXT) {
-	    	int i = strlen(name)-1;
+		int i = strlen(name)-1;
 		while (name[i] == ' ' && i >= 0)
 		    name[i--] = '\0';
 		if (i < 0)
@@ -342,13 +342,13 @@ PRIVATE void parse_menu ARGS2(
 					   selector, host);
 		    else sprintf(address, "telnet://%s/", host);
 		}
-		else if (gtype == GOPHER_TN3270) 
+		else if (gtype == GOPHER_TN3270)
 		{
 		    PUTS("(3270) ");
-		    if (*selector) 
+		    if (*selector)
 			sprintf(address, "tn3270://%s@%s/",
 				selector, host);
-		    else 
+		    else
 			sprintf(address, "tn3270://%s/", host);
 		}
 		else {			/* If parsed ok */
@@ -356,55 +356,55 @@ PRIVATE void parse_menu ARGS2(
 		    char *r;
 
 		    switch(gtype) {
-               		case GOPHER_TEXT:
-                   	    PUTS("(FILE) ");
-                   	    break;
-                	case GOPHER_MENU:
-                    	    PUTS(" (DIR) ");
-                    	    break;
-                	case GOPHER_CSO:
-                    	    PUTS(" (CSO) ");
-                    	    break;
-                	case GOPHER_PCBINARY:
-                    	    PUTS(" (BIN) ");
-                    	    break;
-                	case GOPHER_UUENCODED:
-                    	    PUTS(" (UUE) ");
-                    	    break;
-                	case GOPHER_INDEX:
-                    	    PUTS("  (?)  ");
-                    	    break;
-                	case GOPHER_BINARY:
-                    	    PUTS(" (BIN) ");
-                    	    break;
-                	case GOPHER_GIF:
-                	case GOPHER_IMAGE:
-                	case GOPHER_PLUS_IMAGE:
-                    	    PUTS(" (IMG) ");
-                    	    break;
-                	case GOPHER_SOUND:
-                	case GOPHER_PLUS_SOUND:
-                    	    PUTS(" (SND) ");
-                    	    break;
-                	case GOPHER_MACBINHEX:
-                    	    PUTS(" (HQX) ");
-                    	    break;
+			case GOPHER_TEXT:
+			    PUTS("(FILE) ");
+			    break;
+			case GOPHER_MENU:
+			    PUTS(" (DIR) ");
+			    break;
+			case GOPHER_CSO:
+			    PUTS(" (CSO) ");
+			    break;
+			case GOPHER_PCBINARY:
+			    PUTS(" (BIN) ");
+			    break;
+			case GOPHER_UUENCODED:
+			    PUTS(" (UUE) ");
+			    break;
+			case GOPHER_INDEX:
+			    PUTS("  (?)  ");
+			    break;
+			case GOPHER_BINARY:
+			    PUTS(" (BIN) ");
+			    break;
+			case GOPHER_GIF:
+			case GOPHER_IMAGE:
+			case GOPHER_PLUS_IMAGE:
+			    PUTS(" (IMG) ");
+			    break;
+			case GOPHER_SOUND:
+			case GOPHER_PLUS_SOUND:
+			    PUTS(" (SND) ");
+			    break;
+			case GOPHER_MACBINHEX:
+			    PUTS(" (HQX) ");
+			    break;
 			case GOPHER_HTML:
 			case GOPHER_CHTML:
-                    	    PUTS("(HTML) ");
-                    	    break;
-                	case 'm':
-                    	    PUTS("(MIME) ");
-                    	    break;
-                	case GOPHER_PLUS_MOVIE:
-                    	    PUTS(" (MOV) ");
-                    	    break;
-                	case GOPHER_PLUS_PDF:
-                    	    PUTS(" (PDF) ");
-                    	    break;
-                	default:
-                    	    PUTS("(UNKN) ");
-                    	    break;
+			    PUTS("(HTML) ");
+			    break;
+			case 'm':
+			    PUTS("(MIME) ");
+			    break;
+			case GOPHER_PLUS_MOVIE:
+			    PUTS(" (MOV) ");
+			    break;
+			case GOPHER_PLUS_PDF:
+			    PUTS(" (PDF) ");
+			    break;
+			default:
+			    PUTS("(UNKN) ");
+			    break;
 		    }
 
 		    sprintf(address, "//%s/%c", host, gtype);
@@ -428,19 +428,19 @@ PRIVATE void parse_menu ARGS2(
 		else
 		    PUTS(name);
 	    } else { /* parse error */
-	        if (TRACE)
+		if (TRACE)
 		    fprintf(stderr, "HTGopher: Bad menu item.\n");
 		PUTS(line);
 
 	    } /* parse error */
-	    
+
 	    PUTS("\n");
 	    p = line;	/* Start again at beginning of line */
-	    
+
 	} /* if end of line */
-	
+
     } /* Loop over characters */
-	
+
 end_html:
     END(HTML_PRE);
     PUTS("\n");
@@ -449,7 +449,7 @@ end_html:
     END(HTML_HTML);
     PUTS("\n");
     FREE_TARGET;
-    
+
     return;
 }
 
@@ -463,7 +463,7 @@ end_html:
 **   other source as well???
 **
 **  Taken from hacking by Lou Montulli@ukanaix.cc.ukans.edu
-**  on XMosaic-1.1, and put on libwww 2.11 by Arthur Secret, 
+**  on XMosaic-1.1, and put on libwww 2.11 by Arthur Secret,
 **  secret@dxcern.cern.ch .
 */
 PRIVATE void parse_cso ARGS2(
@@ -475,58 +475,58 @@ PRIVATE void parse_cso ARGS2(
     char *p = line;
     char *second_colon, last_char='\0';
     CONST char *title;
-    
+
     START(HTML_HEAD);
     PUTS("\n");
     START(HTML_TITLE);
     if ((title = HTAnchor_title(anAnchor)))
-        PUTS(title);
+	PUTS(title);
     else
-        PUTS("CSO Search Results");
+	PUTS("CSO Search Results");
     END(HTML_TITLE);
     PUTS("\n");
     END(HTML_HEAD);
     PUTS("\n");
     START(HTML_H1);
     if ((title = HTAnchor_title(anAnchor)))
-        PUTS(title);
+	PUTS(title);
     else {
-        PUTS(arg);
-        PUTS(" Search Results");
+	PUTS(arg);
+	PUTS(" Search Results");
     }
     END(HTML_H1);
     PUTS("\n");
     START(HTML_PRE);
 
     /*
-    **  Start grabbing chars from the network.
+    **	Start grabbing chars from the network.
     */
-    while ((ch=NEXT_CHAR) != (char)EOF) 
+    while ((ch=NEXT_CHAR) != (char)EOF)
 	{
-	    if (ch != LF) 
+	    if (ch != LF)
 		{
 		    *p = ch;		/* Put character in line */
 		    if (p< &line[BIG-1]) p++;
-		} 
-	    else 
+		}
+	    else
 		{
 		    *p = '\0';		/* Terminate line */
 		    p = line;		/* Scan it to parse it */
 		    /*
-		    **  OK we now have a line in 'p'.
-		    **  Lets parse it and print it.
+		    **	OK we now have a line in 'p'.
+		    **	Lets parse it and print it.
 		    */
-		    
+
 		    /*
-		    **  Break on line that begins with a 2.
-		    **  It's the end of data.
+		    **	Break on line that begins with a 2.
+		    **	It's the end of data.
 		    */
 		    if (*p == '2')
 			break;
-		    
+
 		    /*
-		    **  Lines beginning with 5 are errors.
-		    **  Print them and quit.
+		    **	Lines beginning with 5 are errors.
+		    **	Print them and quit.
 		    */
 		    if (*p == '5') {
 			START(HTML_H2);
@@ -534,73 +534,73 @@ PRIVATE void parse_cso ARGS2(
 			END(HTML_H2);
 			break;
 		    }
-		    
+
 		    if (*p == '-') {
 			/*
 			**  Data lines look like  -200:#:
-			**  where # is the search result number and can be  
+			**  where # is the search result number and can be
 			**  multiple digits (infinite?).
 			**  Find the second colon and check the digit to the
 			**  left of it to see if they are diferent.
-			**  If they are then a different person is starting. 
+			**  If they are then a different person is starting.
 			**  Make this line an <h2>.
 			*/
-			
+
 			/*
 			**  Find the second_colon.
 			*/
 			second_colon = strchr( strchr(p,':')+1, ':');
-			
+
 			if(second_colon != NULL) {  /* error check */
-			    
-			    if (*(second_colon-1) != last_char)   
+
+			    if (*(second_colon-1) != last_char)
 				/* print seperator */
 			    {
 				END(HTML_PRE);
 				START(HTML_H2);
 			    }
-				
-			    
+
+
 			    /*
-			    **  Right now the record appears with the alias 
-			    **  (first line) as the header and the rest as
-			    **  <pre> text.
-			    **  It might look better with the name as the
-			    **  header and the rest as a <ul> with <li> tags.
-			    **  I'm not sure whether the name field comes in
-			    **  any special order or if its even required in
-			    **  a record, so for now the first line is the
-			    **  header no matter what it is (it's almost
-			    **  always the alias).
-			    **  A <dl> with the first line as the <DT> and
-			    **  the rest as some form of <DD> might good also?
+			    **	Right now the record appears with the alias
+			    **	(first line) as the header and the rest as
+			    **	<pre> text.
+			    **	It might look better with the name as the
+			    **	header and the rest as a <ul> with <li> tags.
+			    **	I'm not sure whether the name field comes in
+			    **	any special order or if its even required in
+			    **	a record, so for now the first line is the
+			    **	header no matter what it is (it's almost
+			    **	always the alias).
+			    **	A <dl> with the first line as the <DT> and
+			    **	the rest as some form of <DD> might good also?
 			    */
-			    
+
 			    /*
-			    **  Print data.
+			    **	Print data.
 			    */
 			    PUTS(second_colon+1);
 			    PUTS("\n");
-			    
-			    if (*(second_colon-1) != last_char)   
+
+			    if (*(second_colon-1) != last_char)
 				/* end seperator */
 			    {
 				END(HTML_H2);
 				START(HTML_PRE);
 			    }
-							    
+
 			    /*
-			    **  Save the char before the second colon
-			    **  for comparison on the next pass.
+			    **	Save the char before the second colon
+			    **	for comparison on the next pass.
 			    */
 			    last_char =  *(second_colon-1) ;
-			    
+
 			} /* end if second_colon */
 		    } /* end if *p == '-' */
 		} /* if end of line */
-	    
+
 	} /* Loop over characters */
-    
+
     /* end the text block */
     PUTS("\n");
     END(HTML_PRE);
@@ -610,12 +610,12 @@ PRIVATE void parse_cso ARGS2(
     return;  /* all done */
 } /* end of procedure */
 
-/*      Display a Gopher CSO ISINDEX cover page.
+/*	Display a Gopher CSO ISINDEX cover page.
 **	========================================
 */
 PRIVATE void display_cso ARGS2(
-        CONST char *,   	arg,
-        HTParentAnchor *,	anAnchor)
+	CONST char *,		arg,
+	HTParentAnchor *,	anAnchor)
 {
     CONST char * title;
 
@@ -625,7 +625,7 @@ PRIVATE void display_cso ARGS2(
     if ((title = HTAnchor_title(anAnchor)))
 	PUTS(title);
     else
-        PUTS("CSO index");
+	PUTS("CSO index");
     END(HTML_TITLE);
     PUTS("\n");
     START(HTML_ISINDEX);
@@ -642,14 +642,14 @@ PRIVATE void display_cso ARGS2(
     END(HTML_H1);
     PUTS("\nThis is a searchable index of a CSO database.\n");
     START(HTML_P);
-    PUTS("\nPress the 's' key and enter search keywords.\n"); 
+    PUTS("\nPress the 's' key and enter search keywords.\n");
     START(HTML_P);
     PUTS("\nThe keywords that you enter will allow you to search on a");
     PUTS(" person's name in the database.\n");
 
     if (!HTAnchor_title(anAnchor))
-    	HTAnchor_setTitle(anAnchor, arg);
-    
+	HTAnchor_setTitle(anAnchor, arg);
+
     FREE_TARGET;
     return;
 }
@@ -658,11 +658,11 @@ PRIVATE void display_cso ARGS2(
 **	================================
 */
 PRIVATE void display_index ARGS2(
-				  CONST char *,	arg,
+				  CONST char *, arg,
 				  HTParentAnchor *,anAnchor)
 {
     CONST char * title;
-    
+
     START(HTML_HEAD);
     PUTS("\n");
     PUTS("\n");
@@ -670,7 +670,7 @@ PRIVATE void display_index ARGS2(
     if ((title = HTAnchor_title(anAnchor)))
 	PUTS(title);
     else
-        PUTS("Gopher index");
+	PUTS("Gopher index");
     END(HTML_TITLE);
     PUTS("\n");
     START(HTML_ISINDEX);
@@ -688,10 +688,10 @@ PRIVATE void display_index ARGS2(
     PUTS("\nThis is a searchable Gopher index.\n");
     START(HTML_P);
     PUTS("\nPlease enter search keywords.\n");
-    
+
     if (!HTAnchor_title(anAnchor))
-    	HTAnchor_setTitle(anAnchor, arg);
-    
+	HTAnchor_setTitle(anAnchor, arg);
+
     FREE_TARGET;
     return;
 }
@@ -734,7 +734,7 @@ PRIVATE void free_CSOfields NOPARAMS
     CSOfield_info *prev;
 
     while (cur) {
-        if (cur->name != cur->name_buf)
+	if (cur->name != cur->name_buf)
 	    FREE(cur->name);
 	if (cur->attributes != cur->attr_buf)
 	    FREE(cur->attributes);
@@ -752,11 +752,11 @@ PRIVATE void free_CSOfields NOPARAMS
 **	=========================================
 */
 PRIVATE int interpret_cso_key ARGS5(
-	char *,			key,
-	char *,			buf,
+	char *, 		key,
+	char *, 		buf,
 	int *,			length,
 	CSOformgen_context *,	ctx,
-	HTStream *, 		Target)
+	HTStream *,		Target)
 {
     CSOfield_info *fld;
 
@@ -766,22 +766,22 @@ PRIVATE int interpret_cso_key ARGS5(
 	*/
 	int error = 0;
 	if (0 == strncmp(key, "$(FID)", 6)) {
-	    sprintf(buf, "%d", fld->id); 
-        } else if (0 == strncmp(key, "$(FDESC)", 8)) {
+	    sprintf(buf, "%d", fld->id);
+	} else if (0 == strncmp(key, "$(FDESC)", 8)) {
 	    sprintf(buf, "%s%s%s", fld->description,
 		    ctx->public_override ? /***" "***/"" : "",
-		    ctx->public_override ? /***fld->attributes***/"" : ""); 
-        } else if (0 == strncmp(key, "$(FDEF)", 7)) {
-            strcpy(buf, fld->defreturn ? " checked" : "");
-        } else if (0 == strncmp(key, "$(FNDX)", 7)) {
+		    ctx->public_override ? /***fld->attributes***/"" : "");
+	} else if (0 == strncmp(key, "$(FDEF)", 7)) {
+	    strcpy(buf, fld->defreturn ? " checked" : "");
+	} else if (0 == strncmp(key, "$(FNDX)", 7)) {
 	    strcpy(buf, fld->indexed ? "*" : "");
-        } else if (0 == strncmp(key, "$(FSIZE)", 8)) {
+	} else if (0 == strncmp(key, "$(FSIZE)", 8)) {
 	    sprintf(buf, " size=%d maxlength=%d",
 		    fld->max_size > 55 ? 55 : fld->max_size,
 		    fld->max_size);
-        } else if (0 == strncmp(key, "$(FSIZE2)", 9)) {
+	} else if (0 == strncmp(key, "$(FSIZE2)", 9)) {
 	    sprintf(buf, " maxlength=%d", fld->max_size);
-        } else {
+	} else {
 	    error = 1;
 	}
 	if (!error) {
@@ -798,7 +798,7 @@ PRIVATE int interpret_cso_key ARGS5(
 	switch (ctx->field_select) {
 	  case 0:
 	    /*
-	    **  'Query' fields, public and lookup attributes.
+	    **	'Query' fields, public and lookup attributes.
 	    */
 	    for (; fld; fld = fld->next)
 		 if (fld->public && (fld->lookup==1))
@@ -806,27 +806,27 @@ PRIVATE int interpret_cso_key ARGS5(
 	    break;
 	  case 1:
 	    /*
-	    **  'Query' fields, accept lookup attribute.
+	    **	'Query' fields, accept lookup attribute.
 	    */
 	    for (; fld; fld = fld->next)
-	        if (fld->lookup == 1)
+		if (fld->lookup == 1)
 		    break;
 	    break;
 	  case 2:
 	    /*
-	    **  'Return' fields, public only.
+	    **	'Return' fields, public only.
 	    */
 	    for (; fld; fld = fld->next)
-	        if (fld->public)
+		if (fld->public)
 		    break;
 	    break;
 	  case 3:
 	    /*
-	    **  All fields.
+	    **	All fields.
 	    */
 	    break;
 	}
-	if (fld) { 
+	if (fld) {
 	    ctx->cur_line = ctx->rep_line;
 	    ctx->cur_off = ctx->rep_off;
 	}
@@ -851,16 +851,16 @@ PRIVATE int interpret_cso_key ARGS5(
 	*/
 	for (fld = CSOfields; fld; fld = fld->next)
 	    if (strcmp(fld->name, "name") == 0 ||
-	    	strcmp(fld->name, "Name") == 0) { 
+		strcmp(fld->name, "Name") == 0) {
 		if (fld->lookup)
-		    fld->lookup = 2; 
+		    fld->lookup = 2;
 		break;
 	    }
 	ctx->fld = fld;
     } else if (0 == strncmp (key, "$(HOST)", 7)) {
-	strcpy (buf, ctx->host); 
+	strcpy (buf, ctx->host);
     } else if (0 == strncmp (key, "$(PORT)", 7)) {
-	sprintf(buf, "%d", ctx->port); 
+	sprintf(buf, "%d", ctx->port);
     } else {
 	/*
 	**  No match, dump key to buffer so client sees it for debugging.
@@ -869,7 +869,7 @@ PRIVATE int interpret_cso_key ARGS5(
 	while (*key && (*key != ')')) {
 	    buf[out++] = (*key++);
 	    if (out > sizeof(buf)-2) {
-	        buf[out] = '\0';
+		buf[out] = '\0';
 		(*Target->isa->put_block)(Target, buf, strlen(buf));
 		out = 0;
 	    }
@@ -893,35 +893,35 @@ PRIVATE int parse_cso_field_info ARGS1(
     char *info, *max_spec;
 
     /*
-    ** Initialize all fields to default values.  
+    ** Initialize all fields to default values.
     */
     blk->indexed = blk->lookup = blk->reserved = blk->max_size = blk->url = 0;
     blk->defreturn = blk->explicit_return = blk->public = 0;
 
     /*
-    **  Search for keywords in info string and set values.  Attributes
-    **  are converted to all lower-case for comparison.
+    **	Search for keywords in info string and set values.  Attributes
+    **	are converted to all lower-case for comparison.
     */
     info = blk->attributes;
     for (i = 0; info[i]; i++)
-        info[i] = TOLOWER(info[i]);
+	info[i] = TOLOWER(info[i]);
     if (strstr(info, "indexed "))
-        blk->indexed = 1;
+	blk->indexed = 1;
     if (strstr(info, "default "))
-        blk->defreturn = 1;
+	blk->defreturn = 1;
     if (strstr(info, "public "))
-        blk->public = 1;
+	blk->public = 1;
     if (strstr(info, "lookup "))
-        blk->lookup = 1;
+	blk->lookup = 1;
     if (strstr(info, "url ")) {
-        blk->url = 1;
+	blk->url = 1;
 	blk->defreturn = 1;
     }
     max_spec = strstr(info, "max ");
     if (max_spec) {
 	sscanf(&max_spec[4], "%d", &blk->max_size);
     } else {
-        blk->max_size = 32;
+	blk->max_size = 32;
     }
 
     return 0;
@@ -931,7 +931,7 @@ PRIVATE int parse_cso_field_info ARGS1(
 **	================================================
 */
 PRIVATE int parse_cso_fields ARGS2(
-	char *,		buf,
+	char *, 	buf,
 	int,		size)
 {
     char ch;
@@ -945,23 +945,23 @@ PRIVATE int parse_cso_fields ARGS2(
     buf[0] = '\0';
 
     /*
-    **  Start grabbing chars from the network.
+    **	Start grabbing chars from the network.
     */
     while ((ch = NEXT_CHAR) != (char)EOF) {
 	if (interrupted_in_htgetcharacter) {
 	    if (TRACE) {
-	        fprintf(stderr,
+		fprintf(stderr,
 		  "HTLoadCSO: Interrupted in HTGetCharacter, apparently.\n");
 	    }
 	    free_CSOfields();
 	    buf[0] = '\0';
 	    return HT_INTERRUPTED;
-        }
+	}
 
 	if (ch != LF) {
 	    *p = ch;		/* Put character in buffer */
 	    if (p < &buf[size-1]) {
-	        p++;
+		p++;
 	    }
 	} else {
 	    *p = '\0';		/* Terminate line */
@@ -969,126 +969,126 @@ PRIVATE int parse_cso_fields ARGS2(
 
 	    /* OK we now have a line in 'p' lets parse it.
 	     */
-	    
+
 	    /*
-	    **  Break on line that begins with a 2.
-	    **  It's the end of data.
+	    **	Break on line that begins with a 2.
+	    **	It's the end of data.
 	    */
 	    if (*p == '2')
 		break;
 
 	    /*
-	    **  Lines beginning with 5 are errors.
-	    **  Print them and quit.
+	    **	Lines beginning with 5 are errors.
+	    **	Print them and quit.
 	    */
 	    if (*p == '5') {
-	        strcpy (buf, p);
+		strcpy (buf, p);
 		return 5;
 	    }
 
 	    if (*p == '-') {
 		/*
 		**  Data lines look like  -200:#:
-		**  where # is the search result number and can be  
+		**  where # is the search result number and can be
 		**  multiple digits (infinite?).
 		*/
 
 	    /*
-            **  Check status, ignore any non-success.
-            */
+	    **	Check status, ignore any non-success.
+	    */
 	    if (p[1] != '2' )
-	        continue;
+		continue;
 
 	    /*
-	    **  Parse fields within returned line into status, ndx, name, data.
+	    **	Parse fields within returned line into status, ndx, name, data.
 	    */
 	    indx = NULL;
 	    name = NULL;
 	    for (i = 0; p[i]; i++)
-	        if (p[i] == ':' ) {
+		if (p[i] == ':' ) {
 		    p[i] = '\0';
 		    if (!indx) {
-		        indx = (char *)&p[i+1];
+			indx = (char *)&p[i+1];
 			code = atoi (indx);
 		    } else if (!name) {
-		        name = (char *)&p[i+1];
+			name = (char *)&p[i+1];
 		    } else {
 		       i++;
 		       break;
 		    }
-                }
-	        /*
-	        **  Add data to field structure.
-	        */
-	        if (name) {
-	            if (code == prev_code) {
-		        /*
-		        **  Remaining data are description.
+		}
+		/*
+		**  Add data to field structure.
+		*/
+		if (name) {
+		    if (code == prev_code) {
+			/*
+			**  Remaining data are description.
 			**  Save in current info block.
-		        */
-		        alen = strlen((char *)&p[i]) + 1;
-		        if (alen > sizeof(last->desc_buf)) {
+			*/
+			alen = strlen((char *)&p[i]) + 1;
+			if (alen > sizeof(last->desc_buf)) {
 			    if (last->description != last->desc_buf)
-			        FREE(last->description);
-		            if (!(last->description = (char *)malloc(alen))) {
-			        outofmem(__FILE__, "HTLoadCSO");
-		            }
-		        }
-		        strcpy(last->description, (char *)&p[i]);
-	            } else {
-		        /*
-		        **  Initialize new block, append to end of list
-		        **  to preserve order.
-		        */
-		        new = (CSOfield_info *)calloc(1, sizeof(CSOfield_info));
-		        if (!new) {
+				FREE(last->description);
+			    if (!(last->description = (char *)malloc(alen))) {
+				outofmem(__FILE__, "HTLoadCSO");
+			    }
+			}
+			strcpy(last->description, (char *)&p[i]);
+		    } else {
+			/*
+			**  Initialize new block, append to end of list
+			**  to preserve order.
+			*/
+			new = (CSOfield_info *)calloc(1, sizeof(CSOfield_info));
+			if (!new) {
 			    outofmem(__FILE__, "HTLoadCSO");
-		        }
-		        if (last)
-		            last->next = new;
-		        else
-		            CSOfields = new;
-		        last = new;
-
-		        new->next = (CSOfield_info *) 0;
-		        new->name = new->name_buf;
-		        alen = strlen(name) + 1;
-		        if (alen > sizeof(new->name_buf)) {
-		            if (!(new->name = (char *)malloc(alen))) {
-			        outofmem(__FILE__, "HTLoadCSO");
-		            }
-		        }
-		        strcpy (new->name, name);
-
-		        new->attributes = new->attr_buf;
-		        alen = strlen((char *)&p[i]) + 2;
-		        if (alen > sizeof(new->attr_buf)) {
-		            if (!(new->attributes = (char *)malloc(alen))) {
-			        outofmem(__FILE__, "HTLoadCSO");
-		            }
-		        }
-		        strcpy(new->attributes, (char *)&p[i]);
-		        strcpy((char *)&new->attributes[alen-2], " ");
-		        new->description = new->desc_buf; 
-		        new->desc_buf[0] = '\0';
-		        new->id = atoi(indx);
-		        /*
-		        **  Scan for keywords.
-		        */
-		        parse_cso_field_info(new);
-	            }
-	            prev_code = code;
-	        } else
-	            break;
+			}
+			if (last)
+			    last->next = new;
+			else
+			    CSOfields = new;
+			last = new;
+
+			new->next = (CSOfield_info *) 0;
+			new->name = new->name_buf;
+			alen = strlen(name) + 1;
+			if (alen > sizeof(new->name_buf)) {
+			    if (!(new->name = (char *)malloc(alen))) {
+				outofmem(__FILE__, "HTLoadCSO");
+			    }
+			}
+			strcpy (new->name, name);
+
+			new->attributes = new->attr_buf;
+			alen = strlen((char *)&p[i]) + 2;
+			if (alen > sizeof(new->attr_buf)) {
+			    if (!(new->attributes = (char *)malloc(alen))) {
+				outofmem(__FILE__, "HTLoadCSO");
+			    }
+			}
+			strcpy(new->attributes, (char *)&p[i]);
+			strcpy((char *)&new->attributes[alen-2], " ");
+			new->description = new->desc_buf;
+			new->desc_buf[0] = '\0';
+			new->id = atoi(indx);
+			/*
+			**  Scan for keywords.
+			*/
+			parse_cso_field_info(new);
+		    }
+		    prev_code = code;
+		} else
+		    break;
 	    } /* end if *p == '-' */
 	} /* if end of line */
-	    
+
     } /* Loop over characters */
-    
+
     /* end the text block */
 
     if (buf[0] == '\0') {
-        return -1; /* no response */
+	return -1; /* no response */
     }
     buf[0] = '\0';
     return 0;  /* all done */
@@ -1098,10 +1098,10 @@ PRIVATE int parse_cso_fields ARGS2(
 **	====================================================
 */
 PRIVATE int generate_cso_form ARGS4(
-	char *,		host,
+	char *, 	host,
 	int,		port,
-	char *,		buf,
-	HTStream *, 	Target)
+	char *, 	buf,
+	HTStream *,	Target)
 {
     int i, j, length, out;
     int full_flag = 1;
@@ -1141,8 +1141,8 @@ PRIVATE int generate_cso_form ARGS4(
     ctx.fld = (CSOfield_info *) 0;
     ctx.public_override = full_flag;
     /*
-    **  Parse the strings in the template array to produce HTML document
-    **  to send to client.  First line is skipped for 'full' lists.
+    **	Parse the strings in the template array to produce HTML document
+    **	to send to client.  First line is skipped for 'full' lists.
     */
     out = 0;
     buf[out] = '\0';
@@ -1156,10 +1156,10 @@ PRIVATE int generate_cso_form ARGS4(
 		** Command detected, flush output buffer and find closing ')'
 		** that delimits the command.
 		*/
-		buf[out] = '\0'; 
+		buf[out] = '\0';
 		if (out > 0)
 		    (*Target->isa->put_block)(Target, buf, strlen(buf));
-	        out = 0;
+		out = 0;
 		for (key = &line[j]; line[j+1] && (line[j] != ')'); j++)
 		    ;
 		/*
@@ -1175,35 +1175,35 @@ PRIVATE int generate_cso_form ARGS4(
 
 		if (ctx.seek) {
 		    /*
-		    **  Command wants us to skip (forward) to indicated token.
-		    **  Start at current position.
+		    **	Command wants us to skip (forward) to indicated token.
+		    **	Start at current position.
 		    */
 		    int slen = strlen(ctx.seek);
 		    for (; template[i]; i++) {
 			for (line = template[i]; line[j]; j++) {
-			    if (line[j] == '$') 
+			    if (line[j] == '$')
 				if (0 == strncmp(ctx.seek, &line[j], slen)) {
 				    if (j == 0)
-				        j = strlen(template[--i])-1;
+					j = strlen(template[--i])-1;
 				    else
-				        --j;
+					--j;
 				    line = template[i];
 				    ctx.seek = (char *) 0;
 				    break;
-			        }
+				}
 			}
 			if (!ctx.seek)
 			    break;
 			j = 0;
 		    }
 		    if (ctx.seek) {
-		        char *temp = (char *)malloc(strlen(ctx.seek) + 20);
+			char *temp = (char *)malloc(strlen(ctx.seek) + 20);
 			if (temp) {
 			    outofmem(__FILE__, "HTLoadCSO");
 			}
 			sprintf(temp, "Seek fail on %s\n", ctx.seek);
-		        (*Target->isa->put_block)(Target, temp, strlen(temp));
-		        FREE(temp);
+			(*Target->isa->put_block)(Target, temp, strlen(temp));
+			FREE(temp);
 		    }
 		}
 	    } else {
@@ -1213,7 +1213,7 @@ PRIVATE int generate_cso_form ARGS4(
 		buf[out++] = line[j];
 		if (out > (sizeof(buf)-3)) {
 		    buf[out] = '\0';
-		        (*Target->isa->put_block)(Target, buf, strlen(buf));
+			(*Target->isa->put_block)(Target, buf, strlen(buf));
 		    out = 0;
 		}
 	    }
@@ -1222,7 +1222,7 @@ PRIVATE int generate_cso_form ARGS4(
 	buf[out] = '\0';
     }
     if (out > 0)
-        (*Target->isa->put_block)(Target, buf, strlen(buf));
+	(*Target->isa->put_block)(Target, buf, strlen(buf));
 
     return 0;
 }
@@ -1231,8 +1231,8 @@ PRIVATE int generate_cso_form ARGS4(
 **	==============================================================
 */
 PRIVATE int generate_cso_report ARGS2(
-	char *,		buf,
-	HTStream *, 	Target)
+	char *, 	buf,
+	HTStream *,	Target)
 {
     char ch;
     char line[BIG];
@@ -1240,85 +1240,85 @@ PRIVATE int generate_cso_report ARGS2(
     int len, i, prev_ndx, ndx;
     char *rcode, *ndx_str, *fname, *fvalue, *l;
     CSOfield_info *fld;
-    BOOL stop = FALSE; 
+    BOOL stop = FALSE;
 
     /*
-    **  Read lines until non-negative status.
+    **	Read lines until non-negative status.
     */
     prev_ndx = -100;
     /*
-    **  Start grabbing chars from the network.
+    **	Start grabbing chars from the network.
     */
     while (!stop && (ch = NEXT_CHAR) != (char)EOF) {
 	if (interrupted_in_htgetcharacter) {
 	    buf[0] = '\0';
 	    if (TRACE) {
-	        fprintf(stderr,
+		fprintf(stderr,
 		  "HTLoadCSO: Interrupted in HTGetCharacter, apparently.\n");
 	    }
 	    _HTProgress ("Connection interrupted.");
 	    goto end_CSOreport;
-        }
+	}
 
 	if (ch != LF) {
 	    *p = ch;		/* Put character in line */
 	    if (p < &line[BIG-1]) {
-	        p++;
+		p++;
 	    }
 	} else {
 	    *p = '\0';		/* Terminate line */
 	    /*
-	    **  OK we now have a line.
-	    **  Load it as 'p' and parse it.
+	    **	OK we now have a line.
+	    **	Load it as 'p' and parse it.
 	    */
 	    p = line;
 	    if (p[0] != '-' && p[0] != '1') {
-	        stop = TRUE;
+		stop = TRUE;
 	    }
 	    rcode = (p[0] == '-') ? &p[1] : p;
 	    ndx_str = fname = NULL;
 	    len = strlen(p);
 	    for (i = 0; i < len; i++) {
-	        if (p[i] == ':') {
-	            p[i] = '\0';
-	            if (!ndx_str) {
-		        fname = ndx_str = &p[i+1];
+		if (p[i] == ':') {
+		    p[i] = '\0';
+		    if (!ndx_str) {
+			fname = ndx_str = &p[i+1];
 		    } else {
-		        fname = &p[i+1];
+			fname = &p[i+1];
 			break;
 		    }
-	        }
+		}
 	    }
 	    if (ndx_str) {
-	        ndx = atoi(ndx_str);
-	        if (prev_ndx != ndx) {
+		ndx = atoi(ndx_str);
+		if (prev_ndx != ndx) {
 		    if (prev_ndx != -100) {
-		        strcpy(buf, "</DL></DL>\n");
+			strcpy(buf, "</DL></DL>\n");
 			(*Target->isa->put_block)(Target, buf, strlen(buf));
 		    }
 		    if (ndx == 0) {
-		        strcpy(buf,
-	          "<HR><DL><DT>Information/status<DD><DL><DT>\n");
+			strcpy(buf,
+		  "<HR><DL><DT>Information/status<DD><DL><DT>\n");
 			(*Target->isa->put_block)(Target, buf, strlen(buf));
 		    } else {
-		        sprintf(buf,
+			sprintf(buf,
 	      "<HR><DL><DT>Entry %d:<DD><DL COMPACT><DT>\n", ndx);
 			(*Target->isa->put_block)(Target, buf, strlen(buf));
 		    }
 		    prev_ndx = ndx;
-	        }
+		}
 	    } else {
-	        sprintf(buf, "<DD>%s\n", rcode);
+		sprintf(buf, "<DD>%s\n", rcode);
 		(*Target->isa->put_block)(Target, buf, strlen(buf));
 		continue;
 	    }
 	    if ((*rcode >= '2') && (*rcode <= '5') && (fname != ndx_str)) {
-	        while (*fname == ' ') {
+		while (*fname == ' ') {
 		    fname++;	/* trim leading spaces */
 		}
-	        for (fvalue = fname; *fvalue; fvalue++) {
+		for (fvalue = fname; *fvalue; fvalue++) {
 		    if (*fvalue == ':') {
-		        *fvalue++ = '\0';
+			*fvalue++ = '\0';
 			i = strlen(fname) - 1;
 			while (i >= 0 && fname[i] == ' ') {
 			    fname[i--] = '\0'; /* trim trailing */
@@ -1328,37 +1328,37 @@ PRIVATE int generate_cso_report ARGS2(
 		}
 		if (fvalue) {
 		    while (*fvalue == ' ') {
-		        fvalue++;	/* trim leading spaces */
+			fvalue++;	/* trim leading spaces */
 		    }
 		}
-	        if (*fname) {
+		if (*fname) {
 		    for (fld = CSOfields; fld; fld = fld->next) {
-		        if (!strcmp(fld->name, fname)) {
+			if (!strcmp(fld->name, fname)) {
 			    if (fld->description) {
-			        fname = fld->description;
+				fname = fld->description;
 			    }
 			    break;
-		        }
+			}
 		    }
 		    if (fld && fld->url) {
-		        sprintf(buf,
+			sprintf(buf,
 				"<DT><I>%s</I><DD><A HREF=\"%s\">%s</A>\n",
 				fname, fvalue, fvalue);
 			(*Target->isa->put_block)(Target, buf, strlen(buf));
 		    } else {
-		        sprintf(buf, "<DT><I>%s</I><DD>", fname);
+			sprintf(buf, "<DT><I>%s</I><DD>", fname);
 			(*Target->isa->put_block)(Target, buf, strlen(buf));
 			i = 0;
 			buf[i] = '\0';
 			l = fvalue;
 			while (*l) {
 			    if (*l == '<') {
-			        strcat(buf, "&lt;");
+				strcat(buf, "&lt;");
 				l++;
 				i += 4;
 				buf[i] = '\0';
 			    } else if (*l == '>') {
-			        strcat(buf, "&gt;");
+				strcat(buf, "&gt;");
 				l++;
 				i += 4;
 				buf[i] = '\0';
@@ -1378,13 +1378,13 @@ PRIVATE int generate_cso_report ARGS2(
 				       strncmp(l, "mailto:", 7) &&
 				       strncmp(l, "cso://", 6) &&
 				       strncmp(l, "gopher://", 9)) {
-			        buf[i++] = *l++;
+				buf[i++] = *l++;
 				buf[i] = '\0';
 			    } else {
-			        strcat(buf, "<a href=\"");
+				strcat(buf, "<a href=\"");
 				i += 9;
 				buf[i] = '\0';
-			        StrAllocCopy(href, l);
+				StrAllocCopy(href, l);
 				strcat(buf, strtok(href, " \r\n\t,>)\""));
 				strcat(buf, "\">");
 				i = strlen(buf);
@@ -1400,7 +1400,7 @@ PRIVATE int generate_cso_report ARGS2(
 			strcat(buf, "\n");
 			(*Target->isa->put_block)(Target, buf, strlen(buf));
 		    }
-	        } else {
+		} else {
 		    sprintf(buf, "<DD>");
 		    (*Target->isa->put_block)(Target, buf, strlen(buf));
 		    i = 0;
@@ -1456,10 +1456,10 @@ PRIVATE int generate_cso_report ARGS2(
 		    (*Target->isa->put_block)(Target, buf, strlen(buf));
 		}
 	    } else {
-	        sprintf(buf, "<DD>%s\n", fname ? fname : rcode );
+		sprintf(buf, "<DD>%s\n", fname ? fname : rcode );
 		(*Target->isa->put_block)(Target, buf, strlen(buf));
 	    }
-        }
+	}
     }
 end_CSOreport:
     if (prev_ndx != -100) {
@@ -1469,18 +1469,18 @@ end_CSOreport:
     return 0;
 }
 
-/*      CSO/PH form-based search gateway - FM			HTLoadCSO
+/*	CSO/PH form-based search gateway - FM			HTLoadCSO
 **	=====================================
 */
 PRIVATE int HTLoadCSO ARGS4(
-        CONST char *,		arg,
-        HTParentAnchor *,	anAnchor,
+	CONST char *,		arg,
+	HTParentAnchor *,	anAnchor,
 	HTFormat,		format_out,
 	HTStream*,		sink)
 {
     char *host, *cp;
     int port = CSO_PORT;
-    int status;				/* tcp return */
+    int status; 			/* tcp return */
     char *command = NULL;
     char *content = NULL;
     int len, i, j, start, finish, flen, ndx, clen;
@@ -1489,46 +1489,46 @@ PRIVATE int HTLoadCSO ARGS4(
     char buf[2048];
     HTFormat format_in = WWW_HTML;
     HTStream *Target = NULL;
- 
+
     if (!acceptable_inited)
-         init_acceptable();
+	 init_acceptable();
 
     if (!arg)
-        return -3;		/* Bad if no name sepcified	*/
+	return -3;		/* Bad if no name sepcified	*/
     if (!*arg)
-        return -2;		/* Bad if name had zero length	*/
+	return -2;		/* Bad if name had zero length	*/
     if (TRACE)
-        fprintf(stderr, "HTLoadCSO: Looking for %s\n", arg);
+	fprintf(stderr, "HTLoadCSO: Looking for %s\n", arg);
 
     /*
-    **  Set up a socket to the server for the data.
-    */      
+    **	Set up a socket to the server for the data.
+    */
     status = HTDoConnect (arg, "cso", CSO_PORT, &s);
     if (status == HT_INTERRUPTED) {
-        /*
+	/*
 	**  Interrupt cleanly.
 	*/
 	if (TRACE)
 	    fprintf(stderr,
-                 "HTLoadCSO: Interrupted on connect; recovering cleanly.\n");
+		 "HTLoadCSO: Interrupted on connect; recovering cleanly.\n");
 	_HTProgress ("Connection interrupted.");
 	return HT_NOT_LOADED;
     }
     if (status < 0) {
 	if (TRACE)
 	    fprintf(stderr,
-	    	    "HTLoadCSO: Unable to connect to remote host for `%s'.\n",
-	    	    arg);
+		    "HTLoadCSO: Unable to connect to remote host for `%s'.\n",
+		    arg);
 	return HTInetStatus("connect");
     }
-    
+
     HTInitInput(s);		/* Set up input buffering */
-    
+
     if ((command = (char *)malloc(12)) == NULL)
-        outofmem(__FILE__, "HTLoadCSO");
+	outofmem(__FILE__, "HTLoadCSO");
     sprintf(command, "fields%c%c", CR, LF);
     if (TRACE)
-        fprintf(stderr,
+	fprintf(stderr,
 		"HTLoadCSO: Connected, writing command `%s' to socket %d\n",
 		command, s);
     _HTProgress ("Sending CSO/PH request.");
@@ -1542,25 +1542,25 @@ PRIVATE int HTLoadCSO ARGS4(
     _HTProgress ("CSO/PH request sent; waiting for response.");
 
     /*
-    **  Now read the data from the socket.
+    **	Now read the data from the socket.
     */
     status = parse_cso_fields(buf, sizeof(buf));
     if (status) {
-        NETCLOSE(s);
+	NETCLOSE(s);
 	if (status == HT_INTERRUPTED) {
 	    _HTProgress ("Connection interrupted.");
 	} else if (buf[0] != '\0') {
-            HTAlert(buf);
+	    HTAlert(buf);
 	} else {
 	    HTAlert("No response from server!");
 	}
 	return HT_NOT_LOADED;
     }
-    Target = HTStreamStack(format_in, 
+    Target = HTStreamStack(format_in,
 			   format_out,
 			   sink, anAnchor);
     if (!Target || Target == NULL) {
-        char *temp = (char *)malloc(256);
+	char *temp = (char *)malloc(256);
 	if (!temp) {
 	    outofmem(__FILE__, "HTLoadCSO");
 	}
@@ -1576,13 +1576,13 @@ PRIVATE int HTLoadCSO ARGS4(
 	if (cp[1] >= '0' && cp[1] <= '9') {
 	    port = atoi((cp+1));
 	    if (port == CSO_PORT) {
-	        *cp = '\0';
+		*cp = '\0';
 	    }
 	}
     }
     anAnchor->safe = TRUE;
     if (!(anAnchor->post_data && *anAnchor->post_data)) {
-        generate_cso_form(host, port, buf, Target);
+	generate_cso_form(host, port, buf, Target);
 	(*Target->isa->_free)(Target);
 	FREE(host);
 	NETCLOSE(s);
@@ -1591,15 +1591,15 @@ PRIVATE int HTLoadCSO ARGS4(
     }
     sprintf(buf,
      "<HTML>\n<HEAD>\n<TITLE>CSO/PH Results on %s</TITLE>\n</HEAD>\n<BODY>\n",
-    	    host);
+	    host);
     (*Target->isa->put_block)(Target, buf, strlen(buf));
     FREE(host);
     StrAllocCopy(content, anAnchor->post_data);
     if (content[strlen(content)-1] != '&')
-        StrAllocCat(content, "&");
+	StrAllocCat(content, "&");
     len = strlen(content);
     for (i = 0; i < len; i++) {
-        if (content[i] == '+') {
+	if (content[i] == '+') {
 	    content[i] = ' ';
 	}
     }
@@ -1609,70 +1609,70 @@ PRIVATE int HTLoadCSO ARGS4(
     has_indexed = 0;
     start = finish = clen = 0;
     for (i = 0; i < len; i++) {
-        if (!content[i] || content[i] == '&') {
+	if (!content[i] || content[i] == '&') {
 	    /*
-	    **  Value parsed.  Unescape characters and look for first '='
-	    **  to delimit field name from value.
+	    **	Value parsed.  Unescape characters and look for first '='
+	    **	to delimit field name from value.
 	    */
 	    flen = i - start;
 	    finish = start + flen;
 	    content[finish] = '\0';
 	    for (j = start; j < finish; j++) {
-	        if (content[j] == '=') {
-	            /*
-	            **  content[start..j-1] is field name,
-		    **  [j+1..finish-1] is value.
-	            */
-	            if ((content[start+1] == '_') &&
-		        ((content[start] == 'r') || (content[start] == 'q'))) {
-		        /*
-		        **  Decode fields number and lookup field info.
-		        */
-		        sscanf (&content[start+2], "%d=", &ndx);
-		        for (fld = CSOfields; fld; fld = fld->next) {
-		            if (ndx==fld->id) {
-		                if ((j+1) >= finish)
+		if (content[j] == '=') {
+		    /*
+		    **	content[start..j-1] is field name,
+		    **	[j+1..finish-1] is value.
+		    */
+		    if ((content[start+1] == '_') &&
+			((content[start] == 'r') || (content[start] == 'q'))) {
+			/*
+			**  Decode fields number and lookup field info.
+			*/
+			sscanf (&content[start+2], "%d=", &ndx);
+			for (fld = CSOfields; fld; fld = fld->next) {
+			    if (ndx==fld->id) {
+				if ((j+1) >= finish)
 				    break;	/* ignore nulls */
-		                if (content[start] == 'q') {
-			            /*
-			             * Append field to query line.
-			             */
-			            if (fld->lookup) {
-			                if (fld->indexed)
+				if (content[start] == 'q') {
+				    /*
+				     * Append field to query line.
+				     */
+				    if (fld->lookup) {
+					if (fld->indexed)
 					    has_indexed = 1;
-			                if (clen == 0) {
-				            StrAllocCopy(command, "query ");
+					if (clen == 0) {
+					    StrAllocCopy(command, "query ");
 					    clen = 6;
-			                } else {
+					} else {
 					    StrAllocCat(command, " ");
 					    clen++;
 					}
 					sprintf(buf, "%s=\"%s\"",
-				                fld->name, &content[j+1]);
+						fld->name, &content[j+1]);
 					StrAllocCat(command, buf);
-			                clen += strlen(buf);
-			            } else {
-			                strcpy(buf,
+					clen += strlen(buf);
+				    } else {
+					strcpy(buf,
 				"Warning: non-lookup field ignored<BR>\n");
-				        (*Target->isa->put_block)(Target,
-					                          buf,
+					(*Target->isa->put_block)(Target,
+								  buf,
 								  strlen(buf));
-			            }
-		                } else if (content[start] == 'r') {
-			            fld->explicit_return = 1;
-		                }
-		                break;
-		            }
+				    }
+				} else if (content[start] == 'r') {
+				    fld->explicit_return = 1;
+				}
+				break;
+			    }
 			}
-	            } else if (!strncmp(&content[start],"return=",7)) {
-		        if (!strcmp(&content[start+7],"all")) {
+		    } else if (!strncmp(&content[start],"return=",7)) {
+			if (!strcmp(&content[start+7],"all")) {
 			    return_type = 1;
-		        } else if (!strcmp(&content[start+7],"selected")) {
-		            return_type = 2;
-		        }
-	            }
-	        }
-            }
+			} else if (!strcmp(&content[start+7],"selected")) {
+			    return_type = 2;
+			}
+		    }
+		}
+	    }
 	    start = i + 1;
 	}
     }
@@ -1689,7 +1689,7 @@ PRIVATE int HTLoadCSO ARGS4(
 	return HT_LOADED;
     }
     /*
-    **  Append return fields.
+    **	Append return fields.
     */
     if (return_type == 1) {
 	StrAllocCat(command, " return all");
@@ -1699,9 +1699,9 @@ PRIVATE int HTLoadCSO ARGS4(
 	clen += 7;
 	for (fld = CSOfields; fld; fld = fld->next) {
 	    if (fld->explicit_return) {
-	        sprintf(buf, " %s", fld->name);
-	        StrAllocCat(command, buf);
-	        clen += strlen(buf);
+		sprintf(buf, " %s", fld->name);
+		StrAllocCat(command, buf);
+		clen += strlen(buf);
 	    }
 	}
     }
@@ -1714,7 +1714,7 @@ PRIVATE int HTLoadCSO ARGS4(
     strcpy(buf, "</H2>\n");
     (*Target->isa->put_block)(Target, buf, strlen(buf));
     if (TRACE)
-        fprintf(stderr,
+	fprintf(stderr,
 		"HTLoadCSO: Writing command `%s' to socket %d\n",
 		command, s);
     status = NETWRITE(s, command, clen);
@@ -1748,53 +1748,53 @@ PRIVATE int HTLoadGopher ARGS4(
 	HTStream*,		sink)
 {
     char *command;			/* The whole command */
-    int status;				/* tcp return */
-    char gtype;				/* Gopher Node type */
+    int status; 			/* tcp return */
+    char gtype; 			/* Gopher Node type */
     char * selector;			/* Selector string */
 
     if (!acceptable_inited)
-         init_acceptable();
-    
+	 init_acceptable();
+
     if (!arg)
-        return -3;		/* Bad if no name sepcified	*/
+	return -3;		/* Bad if no name sepcified	*/
     if (!*arg)
-        return -2;		/* Bad if name had zero length	*/
+	return -2;		/* Bad if name had zero length	*/
     if (TRACE)
-        fprintf(stderr, "HTGopher: Looking for %s\n", arg);
+	fprintf(stderr, "HTGopher: Looking for %s\n", arg);
 
     /*
-    **  If it's a port 105 GOPHER_CSO gtype with no ISINDEX token ('?'),
-    **  use the form-based CSO gateway (otherwise, return an ISINDEX
-    **  cover page or do the ISINDEX search). - FM
+    **	If it's a port 105 GOPHER_CSO gtype with no ISINDEX token ('?'),
+    **	use the form-based CSO gateway (otherwise, return an ISINDEX
+    **	cover page or do the ISINDEX search). - FM
     */
     {
-        int len;
+	int len;
 
 	if ((len = strlen(arg)) > 5) {
 	    if (0 == strcmp((CONST char *)&arg[len-6], ":105/2")) {
-	        /* Use CSO gateway. */
+		/* Use CSO gateway. */
 		if (TRACE)
 		    fprintf(stderr, "HTGopher: Passing to CSO/PH gateway.\n");
-                return HTLoadCSO(arg, anAnchor, format_out, sink);
-            }
+		return HTLoadCSO(arg, anAnchor, format_out, sink);
+	    }
 	}
     }
 
     /*
-    **  If it's a port 79/0[/...] URL, use the finger gateway. - FM
+    **	If it's a port 79/0[/...] URL, use the finger gateway. - FM
     */
     if (strstr(arg, ":79/0") != NULL) {
-        if (TRACE)
+	if (TRACE)
 	    fprintf(stderr, "HTGopher: Passing to finger gateway.\n");
 	return HTLoadFinger(arg, anAnchor, format_out, sink);
     }
-    
+
     /*
-    **  Get entity type, and selector string.
-    */        
+    **	Get entity type, and selector string.
+    */
     {
 	char * p1 = HTParse(arg, "", PARSE_PATH|PARSE_PUNCTUATION);
-        gtype = '1';		/* Default = menu */
+	gtype = '1';		/* Default = menu */
 	selector = p1;
 	if ((*selector++=='/') && (*selector)) {	/* Skip first slash */
 	    gtype = *selector++;			/* Pick up gtype */
@@ -1802,9 +1802,9 @@ PRIVATE int HTLoadGopher ARGS4(
 	if (gtype == GOPHER_INDEX) {
 	    char * query;
 	    /*
-	    **  Search is allowed.
+	    **	Search is allowed.
 	    */
-            HTAnchor_setIndex(anAnchor, anAnchor->address);	
+	    HTAnchor_setIndex(anAnchor, anAnchor->address);
 	    query = strchr(selector, '?');	/* Look for search string */
 	    if (!query || !query[1]) {		/* No search required */
 		target = HTML_new(anAnchor, format_out, sink);
@@ -1812,52 +1812,52 @@ PRIVATE int HTLoadGopher ARGS4(
 		display_index(arg, anAnchor);	/* Display "cover page" */
 		return HT_LOADED;		/* Local function only */
 	    }
-	    *query++ = '\0';			/* Skip '?' 	*/
+	    *query++ = '\0';			/* Skip '?'	*/
 	    command =
-	    	    (char *)malloc(strlen(selector)+ 1 + strlen(query)+ 2 + 1);
-              if (command == NULL)
-	          outofmem(__FILE__, "HTLoadGopher");
-	      
+		    (char *)malloc(strlen(selector)+ 1 + strlen(query)+ 2 + 1);
+	      if (command == NULL)
+		  outofmem(__FILE__, "HTLoadGopher");
+
 	    de_escape(command, selector);	/* Bug fix TBL 921208 */
 
 	    strcat(command, "\t");
-	  
+
 	    {					/* Remove plus signs 921006 */
-	    	char *p;
+		char *p;
 		for (p=query; *p; p++) {
 		    if (*p == '+') *p = ' ';
 		}
 	    }
 
 	    de_escape(&command[strlen(command)], query);/* bug fix LJM 940415 */
-        } else if (gtype == GOPHER_CSO) {
-            char * query;
+	} else if (gtype == GOPHER_CSO) {
+	    char * query;
 	    /*
-	    **  Search is allowed.
+	    **	Search is allowed.
 	    */
-            query = strchr(selector, '?');	/* Look for search string */
-            if (!query || !query[1]) {		/* No search required */
+	    query = strchr(selector, '?');	/* Look for search string */
+	    if (!query || !query[1]) {		/* No search required */
 		target = HTML_new(anAnchor, format_out, sink);
 		targetClass = *target->isa;
-                display_cso(arg, anAnchor);	/* Display "cover page" */
-                return HT_LOADED;		/* Local function only */
-            }
-            HTAnchor_setIndex(anAnchor, anAnchor->address);	
-            *query++ = '\0';			/* Skip '?'     */
-            command = (char *)malloc(strlen("query")+1 + strlen(query)+2+1);
-              if (command == NULL)
-	          outofmem(__FILE__, "HTLoadGopher");
-
-            de_escape(command, selector);       /* Bug fix TBL 921208 */
-
-            strcpy(command, "query ");
-
-            {                                   /* Remove plus signs 921006 */
-                char *p;
-                for (p=query; *p; p++) {
-                    if (*p == '+') *p = ' ';
-                }
-            }
+		display_cso(arg, anAnchor);	/* Display "cover page" */
+		return HT_LOADED;		/* Local function only */
+	    }
+	    HTAnchor_setIndex(anAnchor, anAnchor->address);
+	    *query++ = '\0';			/* Skip '?'	*/
+	    command = (char *)malloc(strlen("query")+1 + strlen(query)+2+1);
+	      if (command == NULL)
+		  outofmem(__FILE__, "HTLoadGopher");
+
+	    de_escape(command, selector);	/* Bug fix TBL 921208 */
+
+	    strcpy(command, "query ");
+
+	    {					/* Remove plus signs 921006 */
+		char *p;
+		for (p=query; *p; p++) {
+		    if (*p == '+') *p = ' ';
+		}
+	    }
 	    de_escape(&command[strlen(command)], query);/* bug fix LJM 940415 */
 
 	} else {				/* Not index */
@@ -1866,7 +1866,7 @@ PRIVATE int HTLoadGopher ARGS4(
 	}
 	FREE(p1);
     }
-    
+
     {
 	char * p = command + strlen(command);
 	*p++ = CR;		/* Macros to be correct on Mac */
@@ -1875,7 +1875,7 @@ PRIVATE int HTLoadGopher ARGS4(
     }
 
     /*
-    **  Set up a socket to the server for the data.
+    **	Set up a socket to the server for the data.
     */
     status = HTDoConnect (arg, "gopher", GOPHER_PORT, &s);
     if (status == HT_INTERRUPTED) {
@@ -1884,7 +1884,7 @@ PRIVATE int HTLoadGopher ARGS4(
 	*/
 	if (TRACE)
 	    fprintf(stderr,
-        	    "HTGopher: Interrupted on connect; recovering cleanly.\n");
+		    "HTGopher: Interrupted on connect; recovering cleanly.\n");
 	_HTProgress ("Connection interrupted.");
 	FREE(command);
 	return HT_NOT_LOADED;
@@ -1892,22 +1892,22 @@ PRIVATE int HTLoadGopher ARGS4(
     if (status < 0) {
 	if (TRACE)
 	    fprintf(stderr,
-	    	    "HTGopher: Unable to connect to remote host for `%s'.\n",
-	    	    arg);
+		    "HTGopher: Unable to connect to remote host for `%s'.\n",
+		    arg);
 	FREE(command);
 	return HTInetStatus("connect");
     }
-    
+
     HTInitInput(s);		/* Set up input buffering */
-    
+
     if (TRACE)
-        fprintf(stderr,
+	fprintf(stderr,
 		"HTGopher: Connected, writing command `%s' to socket %d\n",
-	        command, s);
-    
+		command, s);
+
 #ifdef NOT_ASCII
     {
-    	char * p;
+	char * p;
 	for (p = command; *p; p++) {
 	    *p = TOASCII(*p);
 	}
@@ -1927,50 +1927,50 @@ PRIVATE int HTLoadGopher ARGS4(
     _HTProgress ("Gopher request sent; waiting for response.");
 
     /*
-    **  Now read the data from the socket.
-    */    
+    **	Now read the data from the socket.
+    */
     switch (gtype) {
-    
+
     case GOPHER_TEXT :
-     	HTParseSocket(WWW_PLAINTEXT, format_out, anAnchor, s, sink);
+	HTParseSocket(WWW_PLAINTEXT, format_out, anAnchor, s, sink);
 	break;
 
     case GOPHER_HTML :
     case GOPHER_CHTML :
-    	HTParseSocket(WWW_HTML, format_out, anAnchor, s, sink);
+	HTParseSocket(WWW_HTML, format_out, anAnchor, s, sink);
 	break;
 
     case GOPHER_GIF:
     case GOPHER_IMAGE:
     case GOPHER_PLUS_IMAGE:
-    	HTParseSocket(HTAtom_for("image/gif"), 
+	HTParseSocket(HTAtom_for("image/gif"),
 			   format_out, anAnchor, s, sink);
-  	break;
+	break;
 
     case GOPHER_MENU :
     case GOPHER_INDEX :
 	target = HTML_new(anAnchor, format_out, sink);
 	targetClass = *target->isa;
-        parse_menu(arg, anAnchor);
+	parse_menu(arg, anAnchor);
 	break;
-	 
+
     case GOPHER_CSO:
 	target = HTML_new(anAnchor, format_out, sink);
 	targetClass = *target->isa;
-      	parse_cso(arg, anAnchor);
+	parse_cso(arg, anAnchor);
 	break;
-   	
+
     case GOPHER_SOUND :
     case GOPHER_PLUS_SOUND :
-    	HTParseSocket(WWW_AUDIO, format_out, anAnchor, s, sink);
+	HTParseSocket(WWW_AUDIO, format_out, anAnchor, s, sink);
 	break;
-	
+
     case GOPHER_PLUS_MOVIE:
-    	HTParseSocket(HTAtom_for("video/mpeg"), format_out, anAnchor, s, sink);
+	HTParseSocket(HTAtom_for("video/mpeg"), format_out, anAnchor, s, sink);
 	break;
 
     case GOPHER_PLUS_PDF:
-    	HTParseSocket(HTAtom_for("application/pdf"), format_out, anAnchor,
+	HTParseSocket(HTAtom_for("application/pdf"), format_out, anAnchor,
 				  s, sink);
 	break;
 
@@ -1979,10 +1979,10 @@ PRIVATE int HTLoadGopher ARGS4(
     case GOPHER_UUENCODED:
     case GOPHER_BINARY:
     default:
-        /*
+	/*
 	**  Specifying WWW_UNKNOWN forces dump to local disk.
 	*/
-        HTParseSocket (WWW_UNKNOWN, format_out, anAnchor, s, sink);
+	HTParseSocket (WWW_UNKNOWN, format_out, anAnchor, s, sink);
 	break;
 
     } /* switch(gtype) */
diff --git a/WWW/Library/Implementation/HTMIME.c b/WWW/Library/Implementation/HTMIME.c
index e060d372..f165a6a2 100644
--- a/WWW/Library/Implementation/HTMIME.c
+++ b/WWW/Library/Implementation/HTMIME.c
@@ -108,38 +108,38 @@ typedef enum _MIME_state {
 	miJUNK_LINE,		/* Ignore the rest of this folded line */
 	miNEWLINE,		/* Just found a LF .. maybe continuation */
 	miCHECK,		/* check against check_pointer */
-	MIME_NET_ASCII,		/* Translate from net ascii */
+	MIME_NET_ASCII, 	/* Translate from net ascii */
 	MIME_IGNORE		/* Ignore entire file */
 	/* TRANSPARENT and IGNORE are defined as stg else in _WINDOWS */
 } MIME_state;
 
-#define VALUE_SIZE 1024		/* @@@@@@@ Arbitrary? */
+#define VALUE_SIZE 1024 	/* @@@@@@@ Arbitrary? */
 struct _HTStream {
 	CONST HTStreamClass *	isa;
-	
+
 	BOOL			net_ascii;	/* Is input net ascii? */
 	MIME_state		state;		/* current state */
 	MIME_state		if_ok;		/* got this state if match */
 	MIME_state		field;		/* remember which field */
 	MIME_state		fold_state;	/* state on a fold */
 	CONST char *		check_pointer;	/* checking input */
-	
+
 	char *			value_pointer;	/* storing values */
-	char 			value[VALUE_SIZE];
-	
-	HTParentAnchor *	anchor;		/* Given on creation */
+	char			value[VALUE_SIZE];
+
+	HTParentAnchor *	anchor; 	/* Given on creation */
 	HTStream *		sink;		/* Given on creation */
-	
+
 	char *			boundary;	/* For multipart */
 	char *			set_cookie;	/* Set-Cookie */
 	char *			set_cookie2;	/* Set-Cookie2 */
-	
+
 	HTFormat		encoding;	/* Content-Transfer-Encoding */
 	char *			compression_encoding;
-	HTFormat		format;		/* Content-Type */
-	HTStream *		target;		/* While writing out */
+	HTFormat		format; 	/* Content-Type */
+	HTStream *		target; 	/* While writing out */
 	HTStreamClass		targetClass;
-	
+
 	HTAtom *		targetRep;	/* Converting into? */
 };
 
@@ -151,34 +151,34 @@ struct _HTStream {
 **  first and last characters are double-quotes. - FM
 */
 PUBLIC void HTMIME_TrimDoubleQuotes ARGS1(
-	char *,		value)
+	char *, 	value)
 {
     int i;
     char *cp = value;
 
     if (!(cp && *cp) || *cp != '\"')
-        return;
+	return;
 
     i = strlen(cp);
     if (cp[(i - 1)] != '\"')
-        return;
+	return;
     else
-        cp[(i - 1)] = '\0';
+	cp[(i - 1)] = '\0';
 
     for (i = 0; value[i]; i++)
-        value[i] = cp[(i +1)]; 
+	value[i] = cp[(i +1)];
 }
 
 /*_________________________________________________________________________
 **
-**			A C T I O N 	R O U T I N E S
+**			A C T I O N	R O U T I N E S
 */
 
 /*	Character handling
 **	------------------
 **
 **	This is a FSM parser which is tolerant as it can be of all
-**	syntax errors.  It ignores field names it does not understand,
+**	syntax errors.	It ignores field names it does not understand,
 **	and resynchronises on line beginnings.
 */
 PRIVATE void HTMIME_put_character ARGS2(
@@ -188,17 +188,17 @@ PRIVATE void HTMIME_put_character ARGS2(
     int i, j;
 
     if (me->state == MIME_TRANSPARENT) {
-    	(*me->targetClass.put_character)(me->target, c);/* MUST BE FAST */
+	(*me->targetClass.put_character)(me->target, c);/* MUST BE FAST */
 	return;
     }
 
     /*
-    **  This slightly simple conversion just strips CR and turns LF to
-    **  newline.  On unix LF is \n but on Mac \n is CR for example.
-    **  See NetToText for an implementation which preserves single CR or LF.
+    **	This slightly simple conversion just strips CR and turns LF to
+    **	newline.  On unix LF is \n but on Mac \n is CR for example.
+    **	See NetToText for an implementation which preserves single CR or LF.
     */
     if (me->net_ascii) {
-        c = FROMASCII(c);
+	c = FROMASCII(c);
 	if (c == CR)
 	    return;
 	else if (c == LF)
@@ -208,32 +208,32 @@ PRIVATE void HTMIME_put_character ARGS2(
     switch(me->state) {
 
     case MIME_IGNORE:
-    	return;
+	return;
 
     case MIME_TRANSPARENT:		/* Not reached see above */
-    	(*me->targetClass.put_character)(me->target, c);
+	(*me->targetClass.put_character)(me->target, c);
 	return;
 
     case MIME_NET_ASCII:
-    	(*me->targetClass.put_character)(me->target, c); /* MUST BE FAST */
+	(*me->targetClass.put_character)(me->target, c); /* MUST BE FAST */
 	return;
 
     case miNEWLINE:
 	if (c != '\n' && WHITE(c)) {		/* Folded line */
-	    me->state = me->fold_state;	/* pop state before newline */
+	    me->state = me->fold_state; /* pop state before newline */
 	    break;
 	}
 
 	/*	else Falls through */
-	
+
     case miBEGINNING_OF_LINE:
-        me->net_ascii = YES;
+	me->net_ascii = YES;
 	switch (c) {
 	case 'a':
 	case 'A':
 	    me->state = miA;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		       "HTMIME: Got 'A' at beginning of line, state now A\n");
 	    break;
 
@@ -241,7 +241,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	case 'C':
 	    me->state = miC;
 	    if (TRACE)
-	        fprintf (stderr,
+		fprintf (stderr,
 		       "HTMIME: Got 'C' at beginning of line, state now C\n");
 	    break;
 
@@ -251,7 +251,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	    me->if_ok = miDATE;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf (stderr,
+		fprintf (stderr,
 	      "HTMIME: Got 'D' at beginning of line, checking for 'ate:'\n");
 	    break;
 
@@ -259,7 +259,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	case 'E':
 	    me->state = miE;
 	    if (TRACE)
-	        fprintf (stderr,
+		fprintf (stderr,
 		       "HTMIME: Got 'E' at beginning of line, state now E\n");
 	    break;
 
@@ -269,7 +269,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	    me->if_ok = miKEEP_ALIVE;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 	 "HTMIME: Got 'K' at beginning of line, checking for 'eep-alive:'\n");
 	    break;
 
@@ -277,7 +277,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	case 'L':
 	    me->state = miL;
 	    if (TRACE)
-	        fprintf (stderr,
+		fprintf (stderr,
 		       "HTMIME: Got 'L' at beginning of line, state now L\n");
 	    break;
 
@@ -285,7 +285,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	case 'P':
 	    me->state = miP;
 	    if (TRACE)
-	        fprintf (stderr,
+		fprintf (stderr,
 		       "HTMIME: Got 'P' at beginning of line, state now P\n");
 	    break;
 
@@ -295,7 +295,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	    me->if_ok = miRETRY_AFTER;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 	 "HTMIME: Got 'R' at beginning of line, checking for 'etry-after'\n");
 	    break;
 
@@ -303,7 +303,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	case 'S':
 	    me->state = miS;
 	    if (TRACE)
-	        fprintf (stderr,
+		fprintf (stderr,
 		       "HTMIME: Got 'S' at beginning of line, state now S\n");
 	    break;
 
@@ -311,7 +311,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	case 'T':
 	    me->state = miT;
 	    if (TRACE)
-	        fprintf (stderr,
+		fprintf (stderr,
 		       "HTMIME: Got 'T' at beginning of line, state now T\n");
 	    break;
 
@@ -319,7 +319,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	case 'U':
 	    me->state = miU;
 	    if (TRACE)
-	        fprintf (stderr,
+		fprintf (stderr,
 		       "HTMIME: Got 'U' at beginning of line, state now U\n");
 	    break;
 
@@ -327,7 +327,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	case 'V':
 	    me->state = miV;
 	    if (TRACE)
-	        fprintf (stderr,
+		fprintf (stderr,
 		       "HTMIME: Got 'V' at beginning of line, state now V\n");
 	    break;
 
@@ -335,40 +335,40 @@ PRIVATE void HTMIME_put_character ARGS2(
 	case 'W':
 	    me->state = miW;
 	    if (TRACE)
-	        fprintf (stderr,
+		fprintf (stderr,
 		       "HTMIME: Got 'W' at beginning of line, state now W\n");
 	    break;
 
 	case '\n':			/* Blank line: End of Header! */
 	    {
-	        me->net_ascii = NO;
+		me->net_ascii = NO;
 		if (strchr(HTAtom_name(me->format), ';') != NULL) {
 		    char *cp = NULL, *cp1, *cp2, *cp3 = NULL, *cp4;
 
 		    if (TRACE)
-		        fprintf(stderr,
+			fprintf(stderr,
 				"HTMIME: Extended MIME Content-Type is %s\n",
 				HTAtom_name(me->format));
 		    StrAllocCopy(cp, HTAtom_name(me->format));
 		    /*
-		    **  Note that the Content-Type value was converted
-		    **  to lower case when we loaded into me->format,
-		    **  but there may have been a mixed or upper-case
-		    **  atom, so we'll force lower-casing again.  We
-		    **  also stripped spaces and double-quotes, but
-		    **  we'll make sure they're still gone from any
-		    **  charset parameter we check. - FM
+		    **	Note that the Content-Type value was converted
+		    **	to lower case when we loaded into me->format,
+		    **	but there may have been a mixed or upper-case
+		    **	atom, so we'll force lower-casing again.  We
+		    **	also stripped spaces and double-quotes, but
+		    **	we'll make sure they're still gone from any
+		    **	charset parameter we check. - FM
 		    */
 		    for (i = 0; cp[i]; i++)
-		        cp[i] = TOLOWER(cp[i]);
+			cp[i] = TOLOWER(cp[i]);
 		    if ((cp1 = strchr(cp, ';')) != NULL) {
 			BOOL chartrans_ok = NO;
-		        if ((cp2 = strstr(cp1, "charset")) != NULL) {
+			if ((cp2 = strstr(cp1, "charset")) != NULL) {
 			    int chndl;
 
 			    cp2 += 7;
 			    while (*cp2 == ' ' || *cp2 == '=' || *cp2 == '\"')
-			        cp2++;
+				cp2++;
 			    StrAllocCopy(cp3, cp2); /* copy to mutilate more */
 			    for (cp4 = cp3; (*cp4 != '\0' && *cp4 != '\"' &&
 					     *cp4 != ';'  && *cp4 != ':' &&
@@ -384,9 +384,10 @@ PRIVATE void HTMIME_put_character ARGS2(
 				me->format = HTAtom_for(cp);
 				StrAllocCopy(me->anchor->charset, cp4);
 				HTAnchor_setUCInfoStage(me->anchor, chndl,
-				   UCT_STAGE_MIME, UCT_SETBY_MIME);
+							UCT_STAGE_MIME,
+							UCT_SETBY_MIME);
 			    }
-			    else if (chndl < 0)	{/* got something but we don't
+			    else if (chndl < 0) {/* got something but we don't
 						 recognize it */
 				chndl = UCLYhndl_for_unrec;
 				if (UCCanTranslateFromTo(chndl,
@@ -395,7 +396,8 @@ PRIVATE void HTMIME_put_character ARGS2(
 				    *cp1 = '\0';
 				    me->format = HTAtom_for(cp);
 				    HTAnchor_setUCInfoStage(me->anchor, chndl,
-				       UCT_STAGE_MIME, UCT_SETBY_DEFAULT);
+							    UCT_STAGE_MIME,
+							    UCT_SETBY_DEFAULT);
 				}
 			    }
 			    FREE(cp3);
@@ -406,11 +408,11 @@ PRIVATE void HTMIME_put_character ARGS2(
 				LYUCcharset * p_out =
 				    HTAnchor_setUCInfoStage(me->anchor,
 							    current_char_set,
-					 		    UCT_STAGE_HTEXT,
+							    UCT_STAGE_HTEXT,
 							    UCT_SETBY_DEFAULT);
 				if (!p_out)
 				    /*
-				    **  Try again.
+				    **	Try again.
 				    */
 				    p_out =
 				      HTAnchor_getUCInfoStage(me->anchor,
@@ -422,7 +424,8 @@ PRIVATE void HTMIME_put_character ARGS2(
 				    HTAnchor_setUCInfoStage(me->anchor,
 				       HTAnchor_getUCLYhndl(me->anchor,
 							    UCT_STAGE_HTEXT),
-				       UCT_STAGE_MIME, UCT_SETBY_DEFAULT);
+							    UCT_STAGE_MIME,
+							    UCT_SETBY_DEFAULT);
 				}
 				if (!strcmp(p_out->MIMEname,
 					    "x-transparent")) {
@@ -473,14 +476,17 @@ PRIVATE void HTMIME_put_character ARGS2(
 					HTCJK = NOCJK;
 				    }
 				}
-			} else if
+			    /*
+			    **  Check for an iso-8859-# we don't know. - FM
+			    */
+			    } else if
 			       (!strncmp(cp4, "iso-8859-", 9) &&
 				isdigit((unsigned char)cp4[9]) &&
 				!strncmp(LYchar_set_names[current_char_set],
-				 	 "Other ISO Latin", 15)) {
-			        /*
-			        **  Hope it's a match, for now. - FM
-			        */
+					 "Other ISO Latin", 15)) {
+				/*
+				**  Hope it's a match, for now. - FM
+				*/
 				*cp1 = '\0';
 				me->format = HTAtom_for(cp);
 				cp1 = &cp4[10];
@@ -491,126 +497,13 @@ PRIVATE void HTMIME_put_character ARGS2(
 				StrAllocCopy(me->anchor->charset, cp4);
 				HTPassEightBitRaw = TRUE;
 				HTAlert(me->anchor->charset);
-#ifdef NOT_USED			/* pre-chartrans */
-			} else if (!strncmp(cp2, "us-ascii", 8) ||
-			        !strncmp(cp2, "iso-8859-1", 10)) {
-				*cp1 = '\0';
-				me->format = HTAtom_for(cp);
-				StrAllocCopy(me->anchor->charset,
-					         "iso-8859-1");
-				HTCJK = NOCJK;
-			    } else if
-			       (!strncmp(cp2, "iso-8859-2", 10) &&
-				!strncmp(LYchar_set_names[current_char_set],
-				 	 "ISO Latin 2", 11)) {
-				*cp1 = '\0';
-				me->format = HTAtom_for(cp);
-				StrAllocCopy(me->anchor->charset,
-					     "iso-8859-2");
-				HTPassEightBitRaw = TRUE;
-			    } else if
-			       (!strncmp(cp2, "iso-8859-", 9) &&
-				!strncmp(LYchar_set_names[current_char_set],
-				 	 "Other ISO Latin", 15)) {
-			        /*
-			        **  Hope it's a match, for now. - FM
-			        */
-				*cp1 = '\0';
-				me->format = HTAtom_for(cp);
-				StrAllocCopy(me->anchor->charset,
-					     "iso-8859- ");
-				me->anchor->charset[9] = cp2[9];
-				HTPassEightBitRaw = TRUE;
-				HTAlert(me->anchor->charset);
-			    } else if
-			       (!strncmp(cp2, "koi8-r", 6) &&
-				!strncmp(LYchar_set_names[current_char_set],
-					 "KOI8-R Cyrillic", 15)) {
-				*cp1 = '\0';
-				me->format = HTAtom_for(cp);
-				StrAllocCopy(me->anchor->charset,
-					     "koi8-r");
-				HTPassEightBitRaw = TRUE;
-			    } else if
-			       (!strncmp(cp2, "euc-jp", 6) &&
-			        HTCJK == JAPANESE) {
-				*cp1 = '\0';
-				me->format = HTAtom_for(cp);
-				StrAllocCopy(me->anchor->charset,
-					     "euc-jp");
-			    } else if
-			       (!strncmp(cp2, "shift_jis", 9) &&
-			        HTCJK == JAPANESE) {
-				*cp1 = '\0';
-				me->format = HTAtom_for(cp);
-				StrAllocCopy(me->anchor->charset,
-					     "shift_jis");
-			    } else if
-			       (!strncmp(cp2, "iso-2022-jp", 11) &&
-			        HTCJK == JAPANESE) {
-				*cp1 = '\0';
-				me->format = HTAtom_for(cp);
-				StrAllocCopy(me->anchor->charset,
-					     "iso-2022-jp");
-			    } else if
-			       (!strncmp(cp2, "iso-2022-jp-2", 13) &&
-			        HTCJK == JAPANESE) {
-				*cp1 = '\0';
-				me->format = HTAtom_for(cp);
-				StrAllocCopy(me->anchor->charset,
-					     "iso-2022-jp-2");
-			    } else if
-			       (!strncmp(cp2, "euc-kr", 6) &&
-			        HTCJK == KOREAN) {
-				*cp1 = '\0';
-				me->format = HTAtom_for(cp);
-				StrAllocCopy(me->anchor->charset,
-					     "euc-kr");
-			    } else if
-			       (!strncmp(cp2, "iso-2022-kr", 11) &&
-			        HTCJK == KOREAN) {
-				*cp1 = '\0';
-				me->format = HTAtom_for(cp);
-				StrAllocCopy(me->anchor->charset,
-					     "iso-2022-kr");
-			    } else if
-			       ((!strncmp(cp2, "big5", 4) ||
-			         !strncmp(cp2, "cn-big5", 7)) &&
-			        HTCJK == TAIPEI) {
-				*cp1 = '\0';
-				me->format = HTAtom_for(cp);
-				StrAllocCopy(me->anchor->charset,
-					     "big5");
-			    } else if
-			       (!strncmp(cp2, "euc-cn", 6) &&
-			        HTCJK == CHINESE) {
-				*cp1 = '\0';
-				me->format = HTAtom_for(cp);
-				StrAllocCopy(me->anchor->charset,
-					     "euc-cn");
-			    } else if
-			       ((!strncmp(cp2, "gb2312", 6) ||
-			         !strncmp(cp2, "cn-gb", 5)) &&
-			        HTCJK == CHINESE) {
-				*cp1 = '\0';
-				me->format = HTAtom_for(cp);
-				StrAllocCopy(me->anchor->charset,
-					     "gb2312");
-			    } else if
-			       (!strncmp(cp2, "iso-2022-cn", 11) &&
-			        HTCJK == CHINESE) {
-				*cp1 = '\0';
-				me->format = HTAtom_for(cp);
-				StrAllocCopy(me->anchor->charset,
-					     "iso-2022-cn");
-#endif /* NOT_USED */
 			    }
 			    FREE(cp3);
 			} else {
 			    /*
-			    **  No charset parameter is present.
-			    **  Ignore all other parameters, as
-			    **  we do when charset is present. - FM
+			    **	No charset parameter is present.
+			    **	Ignore all other parameters, as
+			    **	we do when charset is present. - FM
 			    */
 			    *cp1 = '\0';
 			    me->format = HTAtom_for(cp);
@@ -633,7 +526,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 			 */
 			me->anchor->no_cache = TRUE;
 		    } else if (me->anchor->date != NULL) {
-		        /*
+			/*
 			**  We have a Date header, so check if
 			**  the value is less than or equal to
 			**  that. - FM
@@ -643,7 +536,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 			    me->anchor->no_cache = TRUE;
 			}
 		    } else if (LYmktime(me->anchor->expires, FALSE) <= 0) {
-		        /*
+			/*
 			**  We don't have a Date header, and
 			**  the value is in past for us. - FM
 			*/
@@ -653,23 +546,23 @@ PRIVATE void HTMIME_put_character ARGS2(
 		StrAllocCopy(me->anchor->content_type,
 			     HTAtom_name(me->format));
 		if (!me->compression_encoding) {
-	            if (TRACE) {
-		        fprintf(stderr,
+		    if (TRACE) {
+			fprintf(stderr,
 		    "HTMIME: MIME Content-Type is '%s', converting to '%s'\n",
 			 HTAtom_name(me->format), HTAtom_name(me->targetRep));
 		    }
 		} else {
 		    /*
-		    **  Change the format to that for "www/compressed"
-		    **  and set up a stream to deal with it. - FM
+		    **	Change the format to that for "www/compressed"
+		    **	and set up a stream to deal with it. - FM
 		    */
-	            if (TRACE) {
-		        fprintf(stderr,
+		    if (TRACE) {
+			fprintf(stderr,
 	     "HTMIME: MIME Content-Type is '%s',\n", HTAtom_name(me->format));
 		    }
 		    me->format = HTAtom_for("www/compressed");
-	            if (TRACE) {
-		        fprintf(stderr,
+		    if (TRACE) {
+			fprintf(stderr,
 			 "        Treating as '%s'.  Converting to '%s'\n",
 			 HTAtom_name(me->format), HTAtom_name(me->targetRep));
 		    }
@@ -682,18 +575,18 @@ PRIVATE void HTMIME_put_character ARGS2(
 		    FREE(me->set_cookie2);
 		}
 		me->target = HTStreamStack(me->format, me->targetRep,
-	 				   me->sink , me->anchor);
+					   me->sink , me->anchor);
 		if (!me->target) {
 		    if (TRACE)
-		        fprintf(stderr, "HTMIME: Can't translate! ** \n");
+			fprintf(stderr, "HTMIME: Can't translate! ** \n");
 		    me->target = me->sink;	/* Cheat */
 		}
 		if (me->target) {
 		    me->targetClass = *me->target->isa;
 		    /*
-		    **  Check for encoding and select state from there,
-		    **  someday, but until we have the relevant code,
-		    **  from now push straight through. - FM
+		    **	Check for encoding and select state from there,
+		    **	someday, but until we have the relevant code,
+		    **	from now push straight through. - FM
 		    */
 		    me->state = MIME_TRANSPARENT;
 		} else {
@@ -708,17 +601,17 @@ PRIVATE void HTMIME_put_character ARGS2(
 	   break;
 
 	} /* switch on character */
-        break;
+	break;
 
     case miA:				/* Check for 'c','g' or 'l' */
-        switch (c) {
+	switch (c) {
 	case 'c':
 	case 'C':
 	    me->check_pointer = "cept-ranges:";
 	    me->if_ok = miACCEPT_RANGES;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		    "HTMIME: Was A, found C, checking for 'cept-ranges:'\n");
 	    break;
 
@@ -728,7 +621,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	    me->if_ok = miAGE;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was A, found G, checking for 'e:'\n");
 	    break;
 
@@ -736,7 +629,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	case 'L':
 	    me->state = miAL;
 	    if (TRACE)
-	        fprintf(stderr, "HTMIME: Was A, found L, state now AL'\n");
+		fprintf(stderr, "HTMIME: Was A, found L, state now AL'\n");
 	    break;
 
 	default:
@@ -751,14 +644,14 @@ PRIVATE void HTMIME_put_character ARGS2(
 	break;
 
     case miAL:				/* Check for 'l' or 't' */
-        switch (c) {
-        case 'l':
-        case 'L':
+	switch (c) {
+	case 'l':
+	case 'L':
 	    me->check_pointer = "ow:";
 	    me->if_ok = miALLOW;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		      "HTMIME: Was AL, found L, checking for 'ow:'\n");
 	    break;
 
@@ -768,7 +661,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	    me->if_ok = miALTERNATES;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was AL, found T, checking for 'ernates:'\n");
 	    break;
 
@@ -784,14 +677,14 @@ PRIVATE void HTMIME_put_character ARGS2(
 	break;
 
     case miC:				/* Check for 'a' or 'o' */
-        switch (c) {
- 	case 'a':
+	switch (c) {
+	case 'a':
 	case 'A':
 	    me->check_pointer = "che-control:";
 	    me->if_ok = miCACHE_CONTROL;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		     "HTMIME: Was C, found A, checking for 'che-control:'\n");
 	    break;
 
@@ -799,7 +692,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	case 'O':
 	    me->state = miCO;
 	    if (TRACE)
-	        fprintf(stderr, "HTMIME: Was C, found O, state now CO'\n");
+		fprintf(stderr, "HTMIME: Was C, found O, state now CO'\n");
 	    break;
 
 	default:
@@ -814,28 +707,28 @@ PRIVATE void HTMIME_put_character ARGS2(
 	break;
 
     case miCO:				/* Check for 'n' or 'o' */
-        switch (c) {
-        case 'n':
-        case 'N':
+	switch (c) {
+	case 'n':
+	case 'N':
 	    me->state = miCON;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was CO, found N, state now CON\n");
- 	    break;
+	    break;
 
-        case 'o':
-        case 'O':
+	case 'o':
+	case 'O':
 	    me->check_pointer = "kie:";
 	    me->if_ok = miCOOKIE;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was CO, found O, checking for 'kie:'\n");
- 	    break;
+	    break;
 
 	default:
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		   "HTMIME: Bad character `%c' found where `%s' expected\n",
 			c, "'n' or 'o'");
 	    goto bad_field_name;
@@ -844,15 +737,15 @@ PRIVATE void HTMIME_put_character ARGS2(
 	} /* switch on character */
 	break;
 
-    case miCON:				/* Check for 'n' or 't' */
-        switch (c) {
-        case 'n':
-        case 'N':
+    case miCON: 			/* Check for 'n' or 't' */
+	switch (c) {
+	case 'n':
+	case 'N':
 	    me->check_pointer = "ection:";
 	    me->if_ok = miCONNECTION;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		      "HTMIME: Was CON, found N, checking for 'ection:'\n");
 	    break;
 
@@ -862,7 +755,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	    me->if_ok = miCONTENT_;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was CON, found T, checking for 'ent-'\n");
 	    break;
 
@@ -878,14 +771,14 @@ PRIVATE void HTMIME_put_character ARGS2(
 	break;
 
     case miE:				/* Check for 't' or 'x' */
-        switch (c) {
- 	case 't':
+	switch (c) {
+	case 't':
 	case 'T':
 	    me->check_pointer = "ag:";
 	    me->if_ok = miETAG;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was E, found T, checking for 'ag:'\n");
 	    break;
 
@@ -895,15 +788,15 @@ PRIVATE void HTMIME_put_character ARGS2(
 	    me->if_ok = miEXPIRES;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was E, found X, checking for 'pires:'\n");
 	    break;
 
 	default:
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		   "HTMIME: Bad character `%c' found where `%s' expected\n",
-		        c, "'t' or 'x'");
+			c, "'t' or 'x'");
 	    goto bad_field_name;
 	    break;
 
@@ -911,14 +804,14 @@ PRIVATE void HTMIME_put_character ARGS2(
 	break;
 
     case miL:				/* Check for 'a', 'i' or 'o' */
-        switch (c) {
+	switch (c) {
 	case 'a':
 	case 'A':
 	    me->check_pointer = "st-modified:";
 	    me->if_ok = miLAST_MODIFIED;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		     "HTMIME: Was L, found A, checking for 'st-modified:'\n");
 	    break;
 
@@ -928,7 +821,7 @@ PRIVATE void HTMIME_put_character ARGS2(
 	    me->if_ok = miLINK;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		     "HTMIME: Was L, found I, checking for 'nk:'\n");
 	    break;
 
@@ -938,15 +831,15 @@ PRIVATE void HTMIME_put_character ARGS2(
 	    me->if_ok = miLOCATION;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was L, found O, checking for 'cation:'\n");
 	    break;
 
 	default:
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		   "HTMIME: Bad character `%c' found where `%s' expected\n",
-		        c, "'a', 'i' or 'o'");
+			c, "'a', 'i' or 'o'");
 	    goto bad_field_name;
 	    break;
 
@@ -954,29 +847,29 @@ PRIVATE void HTMIME_put_character ARGS2(
 	break;
 
     case miP:				/* Check for 'r' or 'u' */
-        switch (c) {
+	switch (c) {
 	case 'r':
 	case 'R':
 	    me->state = miPR;
 	    if (TRACE)
-	        fprintf(stderr, "HTMIME: Was P, found R, state now PR'\n");
+		fprintf(stderr, "HTMIME: Was P, found R, state now PR'\n");
 	    break;
 
- 	case 'u':
+	case 'u':
 	case 'U':
 	    me->check_pointer = "blic:";
 	    me->if_ok = miPUBLIC;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was P, found U, checking for 'blic:'\n");
 	    break;
 
 	default:
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		   "HTMIME: Bad character `%c' found where `%s' expected\n",
-		        c, "'r' or 'u'");
+			c, "'r' or 'u'");
 	    goto bad_field_name;
 	    break;
 
@@ -984,14 +877,14 @@ PRIVATE void HTMIME_put_character ARGS2(
 	break;
 
     case miPR:				/* Check for 'a' or 'o' */
-        switch (c) {
+	switch (c) {
 	case 'a':
 	case 'A':
 	    me->check_pointer = "gma:";
 	    me->if_ok = miPRAGMA;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was PR, found A, checking for 'gma'\n");
 	    break;
 
@@ -1001,15 +894,15 @@ PRIVATE void HTMIME_put_character ARGS2(
 	    me->if_ok = miPROXY_AUTHENTICATE;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		 "HTMIME: Was PR, found O, checking for 'xy-authenticate'\n");
 	    break;
 
 	default:
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		   "HTMIME: Bad character `%c' found where `%s' expected\n",
-		        c, "'a' or 'o'");
+			c, "'a' or 'o'");
 	    goto bad_field_name;
 	    break;
 
@@ -1017,28 +910,28 @@ PRIVATE void HTMIME_put_character ARGS2(
 	break;
 
     case miS:				/* Check for 'a' or 'e' */
-        switch (c) {
+	switch (c) {
 	case 'a':
 	case 'A':
 	    me->check_pointer = "fe:";
 	    me->if_ok = miSAFE;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr, "HTMIME: Was S, found A, checking for 'fe:'\n");
+		fprintf(stderr, "HTMIME: Was S, found A, checking for 'fe:'\n");
 	    break;
 
 	case 'e':
 	case 'E':
 	    me->state = miSE;
 	    if (TRACE)
-	        fprintf(stderr, "HTMIME: Was S, found E, state now SE'\n");
+		fprintf(stderr, "HTMIME: Was S, found E, state now SE'\n");
 	    break;
 
 	default:
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		   "HTMIME: Bad character `%c' found where `%s' expected\n",
-		        c, "'a' or 'e'");
+			c, "'a' or 'e'");
 	    goto bad_field_name;
 	    break;
 
@@ -1046,14 +939,14 @@ PRIVATE void HTMIME_put_character ARGS2(
 	break;
 
     case miSE:				/* Check for 'r' or 't' */
-        switch (c) {
+	switch (c) {
 	case 'r':
 	case 'R':
 	    me->check_pointer = "ver:";
 	    me->if_ok = miSERVER;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was SE, found R, checking for 'ver'\n");
 	    break;
 
@@ -1063,15 +956,15 @@ PRIVATE void HTMIME_put_character ARGS2(
 	    me->if_ok = miSET_COOKIE;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		 "HTMIME: Was SE, found T, checking for '-cookie'\n");
 	    break;
 
 	default:
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		   "HTMIME: Bad character `%c' found where `%s' expected\n",
-		        c, "'r' or 't'");
+			c, "'r' or 't'");
 	    goto bad_field_name;
 	    break;
 
@@ -1079,12 +972,12 @@ PRIVATE void HTMIME_put_character ARGS2(
 	break;
 
     case miSET_COOKIE:			/* Check for ':' or '2' */
-        switch (c) {
+	switch (c) {
 	case ':':
 	    me->field = miSET_COOKIE1;		/* remember it */
 	    me->state = miSKIP_GET_VALUE;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was SET_COOKIE, found :, processing\n");
 	    break;
 
@@ -1093,15 +986,15 @@ PRIVATE void HTMIME_put_character ARGS2(
 	    me->if_ok = miSET_COOKIE2;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		 "HTMIME: Was SET_COOKIE, found 2, checking for ':'\n");
 	    break;
 
 	default:
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		   "HTMIME: Bad character `%c' found where `%s' expected\n",
-		        c, "':' or '2'");
+			c, "':' or '2'");
 	    goto bad_field_name;
 	    break;
 
@@ -1109,16 +1002,16 @@ PRIVATE void HTMIME_put_character ARGS2(
 	break;
 
     case miT:				/* Check for 'i' or 'r' */
-        switch (c) {
- 	case 'i':
+	switch (c) {
+	case 'i':
 	case 'I':
 	    me->check_pointer = "tle:";
 	    me->if_ok = miTITLE;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was T, found I, checking for 'tle:'\n");
-  	    break;
+	    break;
 
 	case 'r':
 	case 'R':
@@ -1126,15 +1019,15 @@ PRIVATE void HTMIME_put_character ARGS2(
 	    me->if_ok = miTRANSFER_ENCODING;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		 "HTMIME: Was T, found R, checking for 'ansfer-encoding'\n");
 	    break;
 
 	default:
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		   "HTMIME: Bad character `%c' found where `%s' expected\n",
-		        c, "'i' or 'r'");
+			c, "'i' or 'r'");
 	    goto bad_field_name;
 	    break;
 
@@ -1142,14 +1035,14 @@ PRIVATE void HTMIME_put_character ARGS2(
 	break;
 
     case miU:				/* Check for 'p' or 'r' */
-        switch (c) {
- 	case 'p':
+	switch (c) {
+	case 'p':
 	case 'P':
 	    me->check_pointer = "grade:";
 	    me->if_ok = miUPGRADE;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was U, found P, checking for 'grade:'\n");
 	    break;
 
@@ -1159,15 +1052,15 @@ PRIVATE void HTMIME_put_character ARGS2(
 	    me->if_ok = miURI;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was U, found R, checking for 'i:'\n");
-  	    break;
+	    break;
 
 	default:
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		   "HTMIME: Bad character `%c' found where `%s' expected\n",
-		        c, "'p' or 'r'");
+			c, "'p' or 'r'");
 	    goto bad_field_name;
 	    break;
 
@@ -1175,14 +1068,14 @@ PRIVATE void HTMIME_put_character ARGS2(
 	break;
 
     case miV:				/* Check for 'a' or 'i' */
-        switch (c) {
- 	case 'a':
+	switch (c) {
+	case 'a':
 	case 'A':
 	    me->check_pointer = "ry:";
 	    me->if_ok = miVARY;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was V, found A, checking for 'ry:'\n");
 	    break;
 
@@ -1192,15 +1085,15 @@ PRIVATE void HTMIME_put_character ARGS2(
 	    me->if_ok = miVIA;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was V, found I, checking for 'a:'\n");
-  	    break;
+	    break;
 
 	default:
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		   "HTMIME: Bad character `%c' found where `%s' expected\n",
-		        c, "'a' or 'i'");
+			c, "'a' or 'i'");
 	    goto bad_field_name;
 	    break;
 
@@ -1208,14 +1101,14 @@ PRIVATE void HTMIME_put_character ARGS2(
 	break;
 
     case miW:				/* Check for 'a' or 'w' */
-        switch (c) {
- 	case 'a':
+	switch (c) {
+	case 'a':
 	case 'A':
 	    me->check_pointer = "rning:";
 	    me->if_ok = miWARNING;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was W, found A, checking for 'rning:'\n");
 	    break;
 
@@ -1225,15 +1118,15 @@ PRIVATE void HTMIME_put_character ARGS2(
 	    me->if_ok = miWWW_AUTHENTICATE;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		  "HTMIME: Was W, found W, checking for 'w-authenticate:'\n");
-  	    break;
+	    break;
 
 	default:
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		   "HTMIME: Bad character `%c' found where `%s' expected\n",
-		        c, "'a' or 'w'");
+			c, "'a' or 'w'");
 	    goto bad_field_name;
 	    break;
 
@@ -1241,186 +1134,186 @@ PRIVATE void HTMIME_put_character ARGS2(
 	break;
 
     case miCHECK:			/* Check against string */
-        if (TOLOWER(c) == *(me->check_pointer)++) {
+	if (TOLOWER(c) == *(me->check_pointer)++) {
 	    if (!*me->check_pointer)
-	        me->state = me->if_ok;
+		me->state = me->if_ok;
 	} else {		/* Error */
 	    if (TRACE)
-	        fprintf(stderr,
-	    	    "HTMIME: Bad character `%c' found where `%s' expected\n",
-		        c, me->check_pointer - 1);
+		fprintf(stderr,
+		    "HTMIME: Bad character `%c' found where `%s' expected\n",
+			c, me->check_pointer - 1);
 	    goto bad_field_name;
 	}
 	break;
 
     case miCONTENT_:
 	if (TRACE)
-           fprintf (stderr,
-                 "HTMIME: in case CONTENT_\n");
-        switch(c) {
-        case 'b':
-        case 'B':
+	   fprintf (stderr,
+		 "HTMIME: in case CONTENT_\n");
+	switch(c) {
+	case 'b':
+	case 'B':
 	    me->check_pointer = "ase:";
 	    me->if_ok = miCONTENT_BASE;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		      "HTMIME: Was CONTENT_, found B, checking for 'ase:'\n");
 	    break;
 
-        case 'd':
-        case 'D':
+	case 'd':
+	case 'D':
 	    me->check_pointer = "isposition:";
 	    me->if_ok = miCONTENT_DISPOSITION;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		"HTMIME: Was CONTENT_, found D, checking for 'isposition:'\n");
 	    break;
 
-        case 'e':
-        case 'E':
+	case 'e':
+	case 'E':
 	    me->check_pointer = "ncoding:";
 	    me->if_ok = miCONTENT_ENCODING;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		  "HTMIME: Was CONTENT_, found E, checking for 'ncoding:'\n");
 	    break;
 
-        case 'f':
-        case 'F':
+	case 'f':
+	case 'F':
 	    me->check_pointer = "eatures:";
 	    me->if_ok = miCONTENT_FEATURES;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		  "HTMIME: Was CONTENT_, found F, checking for 'eatures:'\n");
 	    break;
 
-        case 'l':
-        case 'L':
+	case 'l':
+	case 'L':
 	    me->state = miCONTENT_L;
 	    if (TRACE)
-	        fprintf (stderr,
+		fprintf (stderr,
 		     "HTMIME: Was CONTENT_, found L, state now CONTENT_L\n");
 	    break;
 
-        case 'm':
-        case 'M':
+	case 'm':
+	case 'M':
 	    me->check_pointer = "d5:";
 	    me->if_ok = miCONTENT_MD5;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		      "HTMIME: Was CONTENT_, found M, checking for 'd5:'\n");
 	    break;
 
-        case 'r':
-        case 'R':
+	case 'r':
+	case 'R':
 	    me->check_pointer = "ange:";
 	    me->if_ok = miCONTENT_RANGE;
 	    me->state = miCHECK;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		    "HTMIME: Was CONTENT_, found R, checking for 'ange:'\n");
 	    break;
 
-        case 't':
-        case 'T':
+	case 't':
+	case 'T':
 	    me->state = miCONTENT_T;
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 		    "HTMIME: Was CONTENT_, found T, state now CONTENT_T\n");
 	    break;
 
-        default:
+	default:
 	    if (TRACE)
-	        fprintf(stderr,
+		fprintf(stderr,
 			"HTMIME: Was CONTENT_, found nothing; bleah\n");
 	    goto bad_field_name;
 	    break;
 
-        } /* switch on character */
+	} /* switch on character */
 	break;
 
     case miCONTENT_L:
       if (TRACE)
-        fprintf (stderr,
-                 "HTMIME: in case CONTENT_L\n");
+	fprintf (stderr,
+		 "HTMIME: in case CONTENT_L\n");
       switch(c) {
 	case 'a':
 	case 'A':
 	    me->check_pointer = "nguage:";
 	    me->if_ok = miCONTENT_LANGUAGE;
 	    me->state = miCHECK;
-            if (TRACE)
-                fprintf(stderr,
-                   "HTMIME: Was CONTENT_L, found A, checking for 'nguage:'\n");
+	    if (TRACE)
+		fprintf(stderr,
+		   "HTMIME: Was CONTENT_L, found A, checking for 'nguage:'\n");
 	    break;
-	    
+
 	case 'e':
 	case 'E':
 	    me->check_pointer = "ngth:";
 	    me->if_ok = miCONTENT_LENGTH;
 	    me->state = miCHECK;
-            if (TRACE)
-                fprintf(stderr,
-                   "HTMIME: Was CONTENT_L, found E, checking for 'ngth:'\n");
+	    if (TRACE)
+		fprintf(stderr,
+		   "HTMIME: Was CONTENT_L, found E, checking for 'ngth:'\n");
 	    break;
-	    
+
 	case 'o':
 	case 'O':
 	    me->check_pointer = "cation:";
 	    me->if_ok = miCONTENT_LOCATION;
 	    me->state = miCHECK;
-            if (TRACE)
-                fprintf(stderr,
-                   "HTMIME: Was CONTENT_L, found O, checking for 'cation:'\n");
+	    if (TRACE)
+		fprintf(stderr,
+		   "HTMIME: Was CONTENT_L, found O, checking for 'cation:'\n");
 	    break;
-	    
+
 	default:
-          if (TRACE)
-            fprintf (stderr,
-                     "HTMIME: Was CONTENT_L, found nothing; bleah\n");
+	  if (TRACE)
+	    fprintf (stderr,
+		     "HTMIME: Was CONTENT_L, found nothing; bleah\n");
 	    goto bad_field_name;
 	    break;
-	    
+
 	} /* switch on character */
 	break;
 
     case miCONTENT_T:
       if (TRACE)
-        fprintf (stderr,
-                 "HTMIME: in case CONTENT_T\n");
+	fprintf (stderr,
+		 "HTMIME: in case CONTENT_T\n");
       switch(c) {
 	case 'r':
 	case 'R':
 	    me->check_pointer = "ansfer-encoding:";
 	    me->if_ok = miCONTENT_TRANSFER_ENCODING;
 	    me->state = miCHECK;
-            if (TRACE)
-                fprintf(stderr,
-         "HTMIME: Was CONTENT_T, found R, checking for 'ansfer-encoding:'\n");
+	    if (TRACE)
+		fprintf(stderr,
+	 "HTMIME: Was CONTENT_T, found R, checking for 'ansfer-encoding:'\n");
 	    break;
-	    
+
 	case 'y':
 	case 'Y':
 	    me->check_pointer = "pe:";
 	    me->if_ok = miCONTENT_TYPE;
 	    me->state = miCHECK;
-            if (TRACE)
-                fprintf(stderr,
-                   "HTMIME: Was CONTENT_T, found Y, checking for 'pe:'\n");
+	    if (TRACE)
+		fprintf(stderr,
+		   "HTMIME: Was CONTENT_T, found Y, checking for 'pe:'\n");
 	    break;
-	    
+
 	default:
-          if (TRACE)
-            fprintf (stderr,
-                     "HTMIME: Was CONTENT_T, found nothing; bleah\n");
+	  if (TRACE)
+	    fprintf (stderr,
+		     "HTMIME: Was CONTENT_T, found nothing; bleah\n");
 	    goto bad_field_name;
 	    break;
-	    
+
 	} /* switch on character */
 	break;
 
@@ -1465,28 +1358,28 @@ PRIVATE void HTMIME_put_character ARGS2(
     case miVIA:
     case miWARNING:
     case miWWW_AUTHENTICATE:
-        me->field = me->state;		/* remember it */
+	me->field = me->state;		/* remember it */
 	me->state = miSKIP_GET_VALUE;
 	/* Fall through! */
 
     case miSKIP_GET_VALUE:
-    	if (c == '\n') {
+	if (c == '\n') {
 	   me->fold_state = me->state;
 	   me->state = miNEWLINE;
 	   break;
 	}
 	if (WHITE(c))
 	    /*
-	    **  Skip white space.
+	    **	Skip white space.
 	    */
 	    break;
-	
+
 	me->value_pointer = me->value;
-	me->state = miGET_VALUE;   
+	me->state = miGET_VALUE;
 	/* Fall through to store first character */
-	
+
     case miGET_VALUE:
-    	if (WHITE(c) && c != 32) {			/* End of field */
+	if (WHITE(c) && c != 32) {			/* End of field */
 	    char *cp;
 	    *me->value_pointer = '\0';
 	    cp = (me->value_pointer - 1);
@@ -1494,41 +1387,41 @@ PRIVATE void HTMIME_put_character ARGS2(
 		/*
 		**  Trim trailing spaces.
 		*/
-	        *cp = '\0';
+		*cp = '\0';
 	    switch (me->field) {
 	    case miACCEPT_RANGES:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Accept-Ranges: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Accept-Ranges: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miAGE:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Age: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Age: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miALLOW:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Allow: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Allow: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miALTERNATES:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Alternates: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Alternates: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miCACHE_CONTROL:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Cache-Control: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Cache-Control: '%s'\n",
 			    me->value);
 		if (!(me->value && *me->value))
 		    break;
@@ -1545,8 +1438,8 @@ PRIVATE void HTMIME_put_character ARGS2(
 		    char *cp1, *cp0 = me->value;
 
 		    while ((cp1 = strstr(cp0, "no-cache")) != NULL) {
-		        cp1 += 8;
-		        while (*cp1 != '\0' && WHITE(*cp1))
+			cp1 += 8;
+			while (*cp1 != '\0' && WHITE(*cp1))
 			    cp1++;
 			if (*cp1 == '\0' || *cp1 == ';') {
 			    me->anchor->no_cache = TRUE;
@@ -1555,22 +1448,22 @@ PRIVATE void HTMIME_put_character ARGS2(
 			cp0 = cp1;
 		    }
 		    if (me->anchor->no_cache == TRUE)
-		        break;
+			break;
 		    cp0 = me->value;
 		    while ((cp1 = strstr(cp0, "max-age")) != NULL) {
-		        cp1 += 7;
-		        while (*cp1 != '\0' && WHITE(*cp1))
+			cp1 += 7;
+			while (*cp1 != '\0' && WHITE(*cp1))
 			    cp1++;
 			if (*cp1 == '=') {
 			    cp1++;
 			    while (*cp1 != '\0' && WHITE(*cp1))
-			        cp1++;
+				cp1++;
 			    if (isdigit((unsigned char)*cp1)) {
-			        cp0 = cp1;
+				cp0 = cp1;
 				while (isdigit((unsigned char)*cp1))
 				    cp1++;
-			        if (*cp0 == '0' && cp1 == (cp0 + 1)) {
-			            me->anchor->no_cache = TRUE;
+				if (*cp0 == '0' && cp1 == (cp0 + 1)) {
+				    me->anchor->no_cache = TRUE;
 				    break;
 				}
 			    }
@@ -1578,26 +1471,26 @@ PRIVATE void HTMIME_put_character ARGS2(
 			cp0 = cp1;
 		    }
 		}
-                break;
+		break;
 	    case miCOOKIE:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Cookie: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Cookie: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miCONNECTION:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Connection: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Connection: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miCONTENT_BASE:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Content-Base: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Content-Base: '%s'\n",
 			    me->value);
 		if (!(me->value && *me->value))
 		    break;
@@ -1605,12 +1498,12 @@ PRIVATE void HTMIME_put_character ARGS2(
 		**  Indicate in anchor. - FM
 		*/
 		StrAllocCopy(me->anchor->content_base, me->value);
-                break;
+		break;
 	    case miCONTENT_DISPOSITION:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Content-Disposition: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Content-Disposition: '%s'\n",
 			    me->value);
 		if (!(me->value && *me->value))
 		    break;
@@ -1636,14 +1529,14 @@ PRIVATE void HTMIME_put_character ARGS2(
 		    cp++;
 		if (*cp == '\0')
 		    break;
-		while (*cp != '\0' && WHITE(*cp)) 
+		while (*cp != '\0' && WHITE(*cp))
 		    cp++;
 		if (*cp == '\0')
 		    break;
 		StrAllocCopy(me->anchor->SugFname, cp);
 		if (*me->anchor->SugFname == '\"') {
 		    if ((cp = strchr((me->anchor->SugFname + 1),
-		    		     '\"')) != NULL) {
+				     '\"')) != NULL) {
 			*(cp + 1) = '\0';
 			HTMIME_TrimDoubleQuotes(me->anchor->SugFname);
 		    } else {
@@ -1657,13 +1550,13 @@ PRIVATE void HTMIME_put_character ARGS2(
 		*cp = '\0';
 		if (*me->anchor->SugFname == '\0')
 		    FREE(me->anchor->SugFname);
-                break;
-            case miCONTENT_ENCODING:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-                       "HTMIME: PICKED UP Content-Encoding: '%s'\n",
-                            me->value);
+		break;
+	    case miCONTENT_ENCODING:
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+		       "HTMIME: PICKED UP Content-Encoding: '%s'\n",
+			    me->value);
 		if (!(me->value && *me->value) ||
 		    !strcasecomp(me->value, "identity"))
 		    break;
@@ -1678,32 +1571,32 @@ PRIVATE void HTMIME_put_character ARGS2(
 		    !strcmp(me->value, "7bit") ||
 		    !strcmp(me->value, "binary")) {
 		    /*
-		    **  Some server indicated "8bit", "7bit" or "binary"
-		    **  inappropriately.  We'll ignore it. - FM
+		    **	Some server indicated "8bit", "7bit" or "binary"
+		    **	inappropriately.  We'll ignore it. - FM
 		    */
 		    if (TRACE)
 			fprintf(stderr,
 				"                Ignoring it!\n");
 		} else {
 		    /*
-		    **  Save it to use as a flag for setting
-		    **  up a "www/compressed" target. - FM
+		    **	Save it to use as a flag for setting
+		    **	up a "www/compressed" target. - FM
 		    */
 		    StrAllocCopy(me->compression_encoding, me->value);
 		}
 		break;
 	    case miCONTENT_FEATURES:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Content-Features: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Content-Features: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miCONTENT_LANGUAGE:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Content-Language: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Content-Language: '%s'\n",
 			    me->value);
 		if (!(me->value && *me->value))
 		    break;
@@ -1713,31 +1606,31 @@ PRIVATE void HTMIME_put_character ARGS2(
 		for (i = 0; me->value[i]; i++)
 		    me->value[i] = TOLOWER(me->value[i]);
 		StrAllocCopy(me->anchor->content_language, me->value);
-                break;
+		break;
 	    case miCONTENT_LENGTH:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-                            "HTMIME: PICKED UP Content-Length: '%s'\n",
-                            me->value);
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Content-Length: '%s'\n",
+			    me->value);
 		if (!(me->value && *me->value))
 		    break;
 		/*
 		**  Convert to integer and indicate in anchor. - FM
 		*/
-                me->anchor->content_length = atoi(me->value);
+		me->anchor->content_length = atoi(me->value);
 		if (me->anchor->content_length < 0)
 		    me->anchor->content_length = 0;
-                if (TRACE)
-                    fprintf(stderr,
-                            "        Converted to integer: '%d'\n",
-                            me->anchor->content_length);
-                break;
+		if (TRACE)
+		    fprintf(stderr,
+			    "        Converted to integer: '%d'\n",
+			    me->anchor->content_length);
+		break;
 	    case miCONTENT_LOCATION:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Content-Location: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Content-Location: '%s'\n",
 			    me->value);
 		if (!(me->value && *me->value))
 		    break;
@@ -1745,12 +1638,12 @@ PRIVATE void HTMIME_put_character ARGS2(
 		**  Indicate in anchor. - FM
 		*/
 		StrAllocCopy(me->anchor->content_location, me->value);
-                break;
+		break;
 	    case miCONTENT_MD5:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Content-MD5: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Content-MD5: '%s'\n",
 			    me->value);
 		if (!(me->value && *me->value))
 		    break;
@@ -1758,20 +1651,20 @@ PRIVATE void HTMIME_put_character ARGS2(
 		**  Indicate in anchor. - FM
 		*/
 		StrAllocCopy(me->anchor->content_md5, me->value);
-                break;
+		break;
 	    case miCONTENT_RANGE:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Content-Range: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Content-Range: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miCONTENT_TRANSFER_ENCODING:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
 			"HTMIME: PICKED UP Content-Transfer-Encoding: '%s'\n",
-                            me->value);
+			    me->value);
 		if (!(me->value && *me->value))
 		    break;
 		/*
@@ -1780,13 +1673,13 @@ PRIVATE void HTMIME_put_character ARGS2(
 		*/
 		for (i = 0; me->value[i]; i++)
 		    me->value[i] = TOLOWER(me->value[i]);
-	        me->encoding = HTAtom_for(me->value);
+		me->encoding = HTAtom_for(me->value);
 		break;
 	    case miCONTENT_TYPE:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Content-Type: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Content-Type: '%s'\n",
 			    me->value);
 		if (!(me->value && *me->value))
 		    break;
@@ -1796,17 +1689,17 @@ PRIVATE void HTMIME_put_character ARGS2(
 		*/
 		for (i = 0, j = 0; me->value[i]; i++) {
 		    if (me->value[i] != ' ' && me->value[i] != '\"') {
-		        me->value[j++] = TOLOWER(me->value[i]);
+			me->value[j++] = TOLOWER(me->value[i]);
 		    }
 		}
 		me->value[j] = '\0';
-	        me->format = HTAtom_for(me->value);
+		me->format = HTAtom_for(me->value);
 		break;
 	    case miDATE:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Date: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Date: '%s'\n",
 			    me->value);
 		if (!(me->value && *me->value))
 		    break;
@@ -1814,19 +1707,19 @@ PRIVATE void HTMIME_put_character ARGS2(
 		**  Indicate in anchor. - FM
 		*/
 		StrAllocCopy(me->anchor->date, me->value);
-                break;
+		break;
 	    case miETAG:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP ETag: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP ETag: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miEXPIRES:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Expires: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Expires: '%s'\n",
 			    me->value);
 		if (!(me->value && *me->value))
 		    break;
@@ -1834,19 +1727,19 @@ PRIVATE void HTMIME_put_character ARGS2(
 		**  Indicate in anchor. - FM
 		*/
 		StrAllocCopy(me->anchor->expires, me->value);
-                break;
+		break;
 	    case miKEEP_ALIVE:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Keep-Alive: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Keep-Alive: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miLAST_MODIFIED:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Last-Modified: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Last-Modified: '%s'\n",
 			    me->value);
 		if (!(me->value && *me->value))
 		    break;
@@ -1854,26 +1747,26 @@ PRIVATE void HTMIME_put_character ARGS2(
 		**  Indicate in anchor. - FM
 		*/
 		StrAllocCopy(me->anchor->last_modified, me->value);
-                break;
+		break;
 	    case miLINK:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Link: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Link: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miLOCATION:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Location: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Location: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miPRAGMA:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-                            "HTMIME: PICKED UP Pragma: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Pragma: '%s'\n",
 			    me->value);
 		if (!(me->value && *me->value))
 		    break;
@@ -1882,33 +1775,33 @@ PRIVATE void HTMIME_put_character ARGS2(
 		*/
 		if (!strcmp(me->value, "no-cache"))
 		    me->anchor->no_cache = TRUE;
-                break;
+		break;
 	    case miPROXY_AUTHENTICATE:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Proxy-Authenticate: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Proxy-Authenticate: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miPUBLIC:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Public: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Public: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miRETRY_AFTER:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-		    	    "HTMIME: PICKED UP Retry-After: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Retry-After: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miSAFE:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-                            "HTMIME: PICKED UP Safe: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Safe: '%s'\n",
 			    me->value);
 		if (!(me->value && *me->value))
 		    break;
@@ -1919,12 +1812,12 @@ PRIVATE void HTMIME_put_character ARGS2(
 		    !strcasecomp(me->value, "TRUE")) {
 		    me->anchor->safe = TRUE;
 		}
-                break;
+		break;
 	    case miSERVER:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-                            "HTMIME: PICKED UP Server: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Server: '%s'\n",
 			    me->value);
 		if (!(me->value && *me->value))
 		    break;
@@ -1932,12 +1825,12 @@ PRIVATE void HTMIME_put_character ARGS2(
 		**  Indicate in anchor. - FM
 		*/
 		StrAllocCopy(me->anchor->server, me->value);
-                break;
+		break;
 	    case miSET_COOKIE1:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-                            "HTMIME: PICKED UP Set-Cookie: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Set-Cookie: '%s'\n",
 			    me->value);
 		if (me->set_cookie == NULL) {
 		    StrAllocCopy(me->set_cookie, me->value);
@@ -1945,12 +1838,12 @@ PRIVATE void HTMIME_put_character ARGS2(
 		    StrAllocCat(me->set_cookie, ", ");
 		    StrAllocCat(me->set_cookie, me->value);
 		}
-                break;
+		break;
 	    case miSET_COOKIE2:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-                            "HTMIME: PICKED UP Set-Cookie2: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Set-Cookie2: '%s'\n",
 			    me->value);
 		if (me->set_cookie2 == NULL) {
 		    StrAllocCopy(me->set_cookie2, me->value);
@@ -1958,96 +1851,96 @@ PRIVATE void HTMIME_put_character ARGS2(
 		    StrAllocCat(me->set_cookie2, ", ");
 		    StrAllocCat(me->set_cookie2, me->value);
 		}
-                break;
+		break;
 	    case miTITLE:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-                            "HTMIME: PICKED UP Title: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Title: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miTRANSFER_ENCODING:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-                            "HTMIME: PICKED UP Transfer-Encoding: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Transfer-Encoding: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miUPGRADE:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-                            "HTMIME: PICKED UP Upgrade: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Upgrade: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miURI:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-                            "HTMIME: PICKED UP URI: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP URI: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miVARY:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-                            "HTMIME: PICKED UP Vary: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Vary: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miVIA:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-                            "HTMIME: PICKED UP Via: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Via: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miWARNING:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-                            "HTMIME: PICKED UP Warning: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP Warning: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    case miWWW_AUTHENTICATE:
-	        HTMIME_TrimDoubleQuotes(me->value);
-                if (TRACE)
-                    fprintf(stderr,
-                            "HTMIME: PICKED UP WWW-Authenticate: '%s'\n",
+		HTMIME_TrimDoubleQuotes(me->value);
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTMIME: PICKED UP WWW-Authenticate: '%s'\n",
 			    me->value);
-                break;
+		break;
 	    default:		/* Should never get here */
-	    	break;
+		break;
 	    }
 	} else {
 	    if (me->value_pointer < me->value + VALUE_SIZE - 1) {
-	        *me->value_pointer++ = c;
+		*me->value_pointer++ = c;
 		break;
 	    } else {
-	        goto value_too_long;
+		goto value_too_long;
 	    }
 	}
 	/* Fall through */
-	
+
     case miJUNK_LINE:
-        if (c == '\n') {
+	if (c == '\n') {
 	    me->state = miNEWLINE;
 	    me->fold_state = me->state;
 	}
 	break;
-	
-	
+
+
     } /* switch on state*/
-    
+
     return;
-    
+
 value_too_long:
     if (TRACE)
-        fprintf(stderr, "HTMIME: *** Syntax error. (string too long)\n");
-    
-bad_field_name:				/* Ignore it */
+	fprintf(stderr, "HTMIME: *** Syntax error. (string too long)\n");
+
+bad_field_name: 			/* Ignore it */
     me->state = miJUNK_LINE;
     return;
-    
+
 }
 
 
@@ -2064,13 +1957,13 @@ PRIVATE void HTMIME_put_string ARGS2(
     CONST char * p;
 
     if (me->state == MIME_TRANSPARENT) {	/* Optimisation */
-        (*me->targetClass.put_string)(me->target,s);
+	(*me->targetClass.put_string)(me->target,s);
 
     } else if (me->state != MIME_IGNORE) {
-        if (TRACE)
+	if (TRACE)
 	    fprintf(stderr, "HTMIME:  %s\n", s);
 
-        for (p=s; *p; p++)
+	for (p=s; *p; p++)
 	    HTMIME_put_character(me, *p);
     }
 }
@@ -2087,13 +1980,13 @@ PRIVATE void HTMIME_write ARGS3(
     CONST char * p;
 
     if (me->state == MIME_TRANSPARENT) {	/* Optimisation */
-        (*me->targetClass.put_block)(me->target, s, l);
+	(*me->targetClass.put_block)(me->target, s, l);
 
     } else {
-        if (TRACE)
+	if (TRACE)
 	    fprintf(stderr, "HTMIME:  %.*s\n", l, s);
 
-        for (p = s; p < s+l; p++)
+	for (p = s; p < s+l; p++)
 	    HTMIME_put_character(me, *p);
     }
 }
@@ -2107,7 +2000,7 @@ PRIVATE void HTMIME_free ARGS1(
 	HTStream *,	me)
 {
     if (me->target)
-        (*me->targetClass._free)(me->target);
+	(*me->targetClass._free)(me->target);
     FREE(me);
 }
 
@@ -2118,7 +2011,7 @@ PRIVATE void HTMIME_abort ARGS2(
 	HTError,	e)
 {
     if (me->target)
-        (*me->targetClass._abort)(me->target, e);
+	(*me->targetClass._abort)(me->target, e);
     FREE(me);
 }
 
@@ -2127,14 +2020,14 @@ PRIVATE void HTMIME_abort ARGS2(
 **	-----------------------
 */
 PRIVATE CONST HTStreamClass HTMIME =
-{		
+{
 	"MIMEParser",
 	HTMIME_free,
 	HTMIME_abort,
 	HTMIME_put_character,
 	HTMIME_put_string,
 	HTMIME_write
-}; 
+};
 
 
 /*	Subclass-specific Methods
@@ -2146,11 +2039,11 @@ PUBLIC HTStream* HTMIMEConvert ARGS3(
 	HTStream *,		sink)
 {
     HTStream* me;
-    
+
     me = (HTStream *)calloc(1, sizeof(*me));
     if (me == NULL)
-        outofmem(__FILE__, "HTMIME_new");
-    me->isa	=	&HTMIME;       
+	outofmem(__FILE__, "HTMIMEConvert");
+    me->isa	=	&HTMIME;
     me->sink	=	sink;
     me->anchor	=	anchor;
     me->anchor->safe = FALSE;
@@ -2169,28 +2062,28 @@ PUBLIC HTStream* HTMIMEConvert ARGS3(
     FREE(me->anchor->expires);
     FREE(me->anchor->last_modified);
     FREE(me->anchor->server);
-    me->target	= 	NULL;
+    me->target	=	NULL;
     me->state	=	miBEGINNING_OF_LINE;
     /*
      *	Sadly enough, change this to always default to WWW_HTML
      *	to parse all text as HTML for the users.
-     *  GAB 06-30-94
+     *	GAB 06-30-94
      *	Thanks to Robert Rowland robert@cyclops.pei.edu
      *
      *	After discussion of the correct handline, should be application/octet-
      *		stream or unknown; causing servers to send a correct content
      *		type.
      *
-     *  The consequence of using WWW_UNKNOWN is that you end up downloading
-     *  as a binary file what 99.9% of the time is an HTML file, which should
-     *  have been rendered or displayed.  So sadly enough, I'm changing it
-     *  back to WWW_HTML, and it will handle the situation like Mosaic does,
-     *  and as Robert Rowland suggested, because being functionally correct
-     *  99.9% of the time is better than being technically correct but
-     *  functionally nonsensical. - FM
+     *	The consequence of using WWW_UNKNOWN is that you end up downloading
+     *	as a binary file what 99.9% of the time is an HTML file, which should
+     *	have been rendered or displayed.  So sadly enough, I'm changing it
+     *	back to WWW_HTML, and it will handle the situation like Mosaic does,
+     *	and as Robert Rowland suggested, because being functionally correct
+     *	99.9% of the time is better than being technically correct but
+     *	functionally nonsensical. - FM
      *//***
     me->format	  =	WWW_UNKNOWN;
-        ***/
+	***/
     me->format	  =	WWW_HTML;
     me->targetRep =	pres->rep_out;
     me->boundary  =	NULL;		/* Not set yet */
@@ -2200,9 +2093,11 @@ PUBLIC HTStream* HTMIMEConvert ARGS3(
     me->compression_encoding = NULL;	/* Not set yet */
     me->net_ascii =	NO;		/* Local character set */
     HTAnchor_setUCInfoStage(me->anchor, current_char_set,
-			     UCT_STAGE_STRUCTURED, UCT_SETBY_DEFAULT);
+			    UCT_STAGE_STRUCTURED,
+			    UCT_SETBY_DEFAULT);
     HTAnchor_setUCInfoStage(me->anchor, current_char_set,
-			     UCT_STAGE_HTEXT, UCT_SETBY_DEFAULT);
+			    UCT_STAGE_HTEXT,
+			    UCT_SETBY_DEFAULT);
     return me;
 }
 
@@ -2213,8 +2108,8 @@ PUBLIC HTStream* HTNetMIME ARGS3(
 {
     HTStream* me = HTMIMEConvert(pres,anchor, sink);
     if (!me)
-        return NULL;
-    
+	return NULL;
+
     me->net_ascii = YES;
     return me;
 }
@@ -2259,7 +2154,7 @@ PUBLIC HTStream* HTNetMIME ARGS3(
 **	Written by S. Ichikawa,
 **	partially inspired by encdec.c of <jh@efd.lth.se>.
 */
-#define	BUFLEN	1024
+#define BUFLEN	1024
 #ifdef ESC
 #undef ESC
 #endif /* ESC */
@@ -2271,8 +2166,8 @@ PRIVATE char HTmmquote[] = "0123456789ABCDEF";
 PRIVATE int HTmmcont = 0;
 
 PUBLIC void HTmmdec_base64 ARGS2(
-	char *,		t,
-	char *,		s)
+	char *, 	t,
+	char *, 	s)
 {
     int   d, count, j, val;
     char  buf[BUFLEN], *bp, nw[4], *p;
@@ -2310,8 +2205,8 @@ PUBLIC void HTmmdec_base64 ARGS2(
 }
 
 PUBLIC void HTmmdec_quote ARGS2(
-	char *,		t,
-	char *,		s)
+	char *, 	t,
+	char *, 	s)
 {
     char  buf[BUFLEN], cval, *bp, *p;
 
@@ -2348,8 +2243,8 @@ PUBLIC void HTmmdec_quote ARGS2(
 **	Generalized HTmmdecode for chartrans - K. Weide 1997-03-06
 */
 PUBLIC void HTmmdecode ARGS2(
-	char *,		trg,
-	char *,		str)
+	char *, 	trg,
+	char *, 	str)
 {
     char buf[BUFLEN], mmbuf[BUFLEN];
     char *s, *t, *u, *qm2;
@@ -2358,7 +2253,7 @@ PUBLIC void HTmmdecode ARGS2(
     buf[0] = '\0';
 
     /*
-    **  Encoded-words look like
+    **	Encoded-words look like
     **		=?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
     */
     for (s = str, u = buf; *s; ) {
@@ -2409,7 +2304,7 @@ PUBLIC void HTmmdecode ARGS2(
 		}
 	    }
 	    for (s = qm2 + 3, t = mmbuf; *s; ) {
-		if (s[0] == '?' && s[1] == '=') { 
+		if (s[0] == '?' && s[1] == '=') {
 		    break;
 		} else {
 		    *t++ = *s++;
@@ -2422,17 +2317,17 @@ PUBLIC void HTmmdecode ARGS2(
 		*t = '\0';
 	    }
 	    if (base64)
-	        HTmmdec_base64(mmbuf, mmbuf);
+		HTmmdec_base64(mmbuf, mmbuf);
 	    if (quote)
-	        HTmmdec_quote(mmbuf, mmbuf);
+		HTmmdec_quote(mmbuf, mmbuf);
 	    for (t = mmbuf; *t; )
-	        *u++ = *t++;
+		*u++ = *t++;
 	    HTmmcont = 1;
 	    /* if (*s == ' ' || *s == '\t') *u++ = *s; */
 	    /* for ( ; *s == ' ' || *s == '\t'; s++) ; */
 	} else {
 	    if (*s != ' ' && *s != '\t')
-	        HTmmcont = 0;
+		HTmmcont = 0;
 	    *u++ = *s++;
 	}
     }
@@ -2445,8 +2340,8 @@ end:
 **	HTmmdecode for ISO-2022-JP - FM
 */
 PUBLIC void HTmmdecode ARGS2(
-	char *,		trg,
-	char *,		str)
+	char *, 	trg,
+	char *, 	str)
 {
     char buf[BUFLEN], mmbuf[BUFLEN];
     char *s, *t, *u;
@@ -2473,7 +2368,7 @@ PUBLIC void HTmmdecode ARGS2(
 		}
 	    }
 	    for (s += 16, t = mmbuf; *s; ) {
-		if (s[0] == '?' && s[1] == '=') { 
+		if (s[0] == '?' && s[1] == '=') {
 		    break;
 		} else {
 		    *t++ = *s++;
@@ -2486,17 +2381,17 @@ PUBLIC void HTmmdecode ARGS2(
 		*t = '\0';
 	    }
 	    if (base64)
-	        HTmmdec_base64(mmbuf, mmbuf);
+		HTmmdec_base64(mmbuf, mmbuf);
 	    if (quote)
-	        HTmmdec_quote(mmbuf, mmbuf);
+		HTmmdec_quote(mmbuf, mmbuf);
 	    for (t = mmbuf; *t; )
-	        *u++ = *t++;
+		*u++ = *t++;
 	    HTmmcont = 1;
 	    /* if (*s == ' ' || *s == '\t') *u++ = *s; */
 	    /* for ( ; *s == ' ' || *s == '\t'; s++) ; */
 	} else {
 	    if (*s != ' ' && *s != '\t')
-	        HTmmcont = 0;
+		HTmmcont = 0;
 	    *u++ = *s++;
 	}
     }
@@ -2506,12 +2401,12 @@ end:
 }
 #endif /* NOTDEFINED */
 
-/* 
+/*
 **  Modified for Lynx-jp by Takuya ASADA (and K&Rized by FM).
 */
 #if NOTDEFINED
 PUBLIC int main ARGS2(
-	int, 		ac,
+	int,		ac,
 	char **,	av)
 {
     FILE *fp;
@@ -2566,8 +2461,8 @@ PUBLIC int main ARGS2(
 **  (The author of this function "rjis" is S. Ichikawa.)
 */
 PUBLIC int HTrjis ARGS2(
-	char *,		t,
-	char *,		s)
+	char *, 	t,
+	char *, 	s)
 {
     char *p, buf[BUFLEN];
     int kanji = 0;
@@ -2600,7 +2495,7 @@ PUBLIC int HTrjis ARGS2(
 	}
 	*p++ = *s++;
     }
-    *p = *s;    /* terminate string */
+    *p = *s;	/* terminate string */
 
     strcpy(t, buf);
     return 0;
@@ -2639,9 +2534,9 @@ PUBLIC int HTmaybekanji ARGS2(
 {
 
     if ((c2 < 33) || (c2 > 126))
-        return 0;
+	return 0;
     if ((c1 < 33) || ((40 < c1) && (c1 < 48)) || (116 < c1))
-        return 0;
+	return 0;
     c2 -= 32;
     switch(c1-32) {
       case 2:
diff --git a/WWW/Library/Implementation/HTML.h b/WWW/Library/Implementation/HTML.h
index bca7c41b..be492b28 100644
--- a/WWW/Library/Implementation/HTML.h
+++ b/WWW/Library/Implementation/HTML.h
@@ -7,18 +7,17 @@
 #ifndef HTML_H
 #define HTML_H
 
-#include "UCDefs.h"
-#include "UCAux.h"
-
 #ifndef HTUTILS_H
 #include "HTUtils.h"
 #endif /* HTUTILS_H */
+#include "UCDefs.h"
+#include "UCAux.h"
 #include "HTAnchor.h"
 #include "HTMLDTD.h"
 
 #ifdef SHORT_NAMES
-#define HTMLPresentation        HTMLPren
-#define HTMLPresent             HTMLPres
+#define HTMLPresentation	HTMLPren
+#define HTMLPresent		HTMLPres
 #endif /* SHORT_NAMES */
 
 extern CONST HTStructuredClass HTMLPresentation;
@@ -30,30 +29,30 @@ extern CONST HTStructuredClass HTMLPresentation;
 */
 
 typedef struct _stack_element {
-        HTStyle *	style;
+	HTStyle *	style;
 	int		tag_number;
 } stack_element;
 
 /*		HTML Object
 **		-----------
 */
-#define MAX_NESTING 800		/* Should be checked by parser */
+#define MAX_NESTING 800 	/* Should be checked by parser */
 
 struct _HTStructured {
-    CONST HTStructuredClass * 	isa;
-    HTParentAnchor * 		node_anchor;
-    HText * 			text;
+    CONST HTStructuredClass *	isa;
+    HTParentAnchor *		node_anchor;
+    HText *			text;
 
-    HTStream*			target;			/* Output stream */
+    HTStream*			target; 		/* Output stream */
     HTStreamClass		targetClass;		/* Output routines */
 
     HTChildAnchor *		CurrentA;	/* current HTML_A anchor */
-    int				CurrentANum;	/* current HTML_A number */
+    int 			CurrentANum;	/* current HTML_A number */
     char *			base_href;	/* current HTML_BASE href */
     char *			map_address;	/* current HTML_MAP address */
 
-    HTChunk 			title;		/* Grow by 128 */
-    HTChunk			object;		/* Grow by 128 */
+    HTChunk			title;		/* Grow by 128 */
+    HTChunk			object; 	/* Grow by 128 */
     BOOL			object_started;
     BOOL			object_declare;
     BOOL			object_shapes;
@@ -67,40 +66,40 @@ struct _HTStructured {
     char *			object_codebase;
     char *			object_codetype;
     char *			object_name;
-    HTChunk			option;		/* Grow by 128 */
+    HTChunk			option; 	/* Grow by 128 */
     BOOL			first_option;	/* First OPTION in SELECT? */
     char *			LastOptionValue;
     BOOL			LastOptionChecked;
     BOOL			select_disabled;
     HTChunk			textarea;	/* Grow by 128 */
     char *			textarea_name;
-    int				textarea_name_cs;
+    int 			textarea_name_cs;
     char *			textarea_accept_cs;
     char *			textarea_cols;
     int 			textarea_rows;
-    int				textarea_disabled;
+    int 			textarea_disabled;
     char *			textarea_id;
     HTChunk			math;		/* Grow by 128 */
     HTChunk			style_block;	/* Grow by 128 */
-    HTChunk			script;		/* Grow by 128 */
+    HTChunk			script; 	/* Grow by 128 */
 
     /*
-     *  Used for nested lists. - FM
+     *	Used for nested lists. - FM
      */
-    int		List_Nesting_Level;	/* counter for list nesting level */
-    int 	OL_Counter[12];		/* counter for ordered lists */
-    char 	OL_Type[12];		/* types for ordered lists */
+    int 	List_Nesting_Level;	/* counter for list nesting level */
+    int 	OL_Counter[12]; 	/* counter for ordered lists */
+    char	OL_Type[12];		/* types for ordered lists */
     int 	Last_OL_Count;		/* last count in ordered lists */
-    char 	Last_OL_Type;		/* last type in ordered lists */
+    char	Last_OL_Type;		/* last type in ordered lists */
 
-    int				Division_Level;
+    int 			Division_Level;
     short			DivisionAlignments[MAX_NESTING];
-    int				Underline_Level;
-    int				Quote_Level;
+    int 			Underline_Level;
+    int 			Quote_Level;
 
     BOOL			UsePlainSpace;
     BOOL			HiddenValue;
-    int				lastraw;
+    int 			lastraw;
 
     char *			comment_start;	/* for literate programming */
     char *			comment_end;
@@ -109,15 +108,15 @@ struct _HTStructured {
     BOOL			style_change;
     HTStyle *			new_style;
     HTStyle *			old_style;
-    int				current_default_alignment;
+    int 			current_default_alignment;
     BOOL			in_word;  /* Have just had a non-white char */
-    stack_element 	stack[MAX_NESTING];
-    stack_element 	*sp;		/* Style stack pointer */
+    stack_element	stack[MAX_NESTING];
+    stack_element	*sp;		/* Style stack pointer */
     BOOL		stack_overrun;	/* Was MAX_NESTING exceeded? */
-    int			skip_stack; /* flag to skip next style stack operation */
+    int 		skip_stack; /* flag to skip next style stack operation */
 
     /*
-    **  Track if we are in an anchor, paragraph, address, base, etc.
+    **	Track if we are in an anchor, paragraph, address, base, etc.
     */
     BOOL		inA;
     BOOL		inAPPLET;
@@ -145,41 +144,41 @@ struct _HTStructured {
     BOOL		needBoldH;
 
     /*
-    **  UCI and UCLYhndl give the UCInfo and charset registered for
-    **  the HTML parser in the node_anchor's UCStages structure.  It
-    **  indicates what is fed to the HTML parser as the stream of character
-    **  data (not necessarily tags and attributes).  It should currently
-    **  always be set to be the same as UCI and UCLhndl for the HTEXT stage
-    **  in the node_anchor's UCStages structure, since the HTML parser sends
-    **  its input character data to the output without further charset
-    **  translation.
+    **	UCI and UCLYhndl give the UCInfo and charset registered for
+    **	the HTML parser in the node_anchor's UCStages structure.  It
+    **	indicates what is fed to the HTML parser as the stream of character
+    **	data (not necessarily tags and attributes).  It should currently
+    **	always be set to be the same as UCI and UCLhndl for the HTEXT stage
+    **	in the node_anchor's UCStages structure, since the HTML parser sends
+    **	its input character data to the output without further charset
+    **	translation.
     */
-    LYUCcharset	*	UCI;
-    int			UCLYhndl;
+    LYUCcharset *	UCI;
+    int 		UCLYhndl;
     /*
-    **  inUCI and inUCLYhndl indicate the UCInfo and charset which the
-    **  HTML parser treats at the input charset.  It is normally set
-    **  to the UCI and UCLhndl for the SGML parser in the node_anchor's
-    **  UCStages structure (which may be a dummy, based on the MIME
-    **  parser's UCI and UCLhndl in that structure, when we are handling
-    **  a local file or non-http(s) gateway).  It could be changed
-    **  temporarily by the HTML parser, for conversions of attribute
-    **  strings, but should be reset once done. - FM
+    **	inUCI and inUCLYhndl indicate the UCInfo and charset which the
+    **	HTML parser treats at the input charset.  It is normally set
+    **	to the UCI and UCLhndl for the SGML parser in the node_anchor's
+    **	UCStages structure (which may be a dummy, based on the MIME
+    **	parser's UCI and UCLhndl in that structure, when we are handling
+    **	a local file or non-http(s) gateway).  It could be changed
+    **	temporarily by the HTML parser, for conversions of attribute
+    **	strings, but should be reset once done. - FM
     */
-    LYUCcharset	*	inUCI;
-    int			inUCLYhndl;
+    LYUCcharset *	inUCI;
+    int 		inUCLYhndl;
     /*
-    **  outUCI and outUCLYhndl indicate the UCInfo and charset which
-    **  the HTML parser treats as the output charset.  It is normally
-    **  set to its own UCI and UCLhndl.  It could be changed for
-    **  conversions of attribute strings, but should be reset once
-    **  done. - FM
+    **	outUCI and outUCLYhndl indicate the UCInfo and charset which
+    **	the HTML parser treats as the output charset.  It is normally
+    **	set to its own UCI and UCLhndl.  It could be changed for
+    **	conversions of attribute strings, but should be reset once
+    **	done. - FM
     */
-    LYUCcharset	*	outUCI;
-    int			outUCLYhndl;
+    LYUCcharset *	outUCI;
+    int 		outUCLYhndl;
     /*
-    **  T holds the transformation rules for conversions of strings
-    **  between the input and output charsets by the HTML parser. - FM
+    **	T holds the transformation rules for conversions of strings
+    **	between the input and output charsets by the HTML parser. - FM
     */
     UCTransParams	T;
 
@@ -207,32 +206,32 @@ extern int HTML_put_entity PARAMS((HTStructured *me, int entity_number));
 **  HTConverter to present HTML
 */
 extern HTStream* HTMLToPlain PARAMS((
-        HTPresentation *        pres,
-        HTParentAnchor *        anchor,
-        HTStream *              sink));
+	HTPresentation *	pres,
+	HTParentAnchor *	anchor,
+	HTStream *		sink));
 
 extern HTStream* HTMLToC PARAMS((
-        HTPresentation *        pres,
-        HTParentAnchor *        anchor,
-        HTStream *              sink));
+	HTPresentation *	pres,
+	HTParentAnchor *	anchor,
+	HTStream *		sink));
 
 extern HTStream* HTMLPresent PARAMS((
-        HTPresentation *        pres,
-        HTParentAnchor *        anchor,
-        HTStream *              sink));
+	HTPresentation *	pres,
+	HTParentAnchor *	anchor,
+	HTStream *		sink));
 
 extern HTStructured* HTML_new PARAMS((
-        HTParentAnchor * anchor,
-        HTFormat        format_out,
-        HTStream *      target));
+	HTParentAnchor * anchor,
+	HTFormat	format_out,
+	HTStream *	target));
 
 /*
 **  Names for selected internal representations.
 */
 typedef enum _HTMLCharacterSet {
-        HTML_ISO_LATIN1,
-        HTML_NEXT_CHARS,
-        HTML_PC_CP950
+	HTML_ISO_LATIN1,
+	HTML_NEXT_CHARS,
+	HTML_PC_CP950
 } HTMLCharacterSet;
 
 /*
@@ -243,11 +242,11 @@ typedef enum _HTMLCharacterSet {
 **  and leaves the document unloaded.
 **
 **  On entry,
-**      sink    is a stream to the output device if any
-**      number  is the HTTP error number
-**      message is the human readable message.
+**	sink	is a stream to the output device if any
+**	number	is the HTTP error number
+**	message is the human readable message.
 **  On exit,
-**      a retrun code like HT_LOADED if object exists else 60; 0
+**	a retrun code like HT_LOADED if object exists else 60; 0
 */
 extern int HTLoadError PARAMS((
 	HTStream *	sink,
diff --git a/WWW/Library/Implementation/HTMLDTD.c b/WWW/Library/Implementation/HTMLDTD.c
index c8356523..58326ed7 100644
--- a/WWW/Library/Implementation/HTMLDTD.c
+++ b/WWW/Library/Implementation/HTMLDTD.c
@@ -9,55 +9,55 @@
 #include "HTMLDTD.h"
 #include "LYLeaks.h"
 
-/* 	Entity Names
+/*	Entity Names
 **	------------
 **
 **	This table must be matched exactly with ALL the translation tables
 */
 static CONST char* entities[] = {
-  "AElig",	/* capital AE diphthong (ligature) */ 
-  "Aacute",	/* capital A, acute accent */ 
-  "Acirc",	/* capital A, circumflex accent */ 
-  "Agrave",	/* capital A, grave accent */ 
-  "Aring",	/* capital A, ring */ 
-  "Atilde",	/* capital A, tilde */ 
-  "Auml",	/* capital A, dieresis or umlaut mark */ 
-  "Ccedil",	/* capital C, cedilla */ 
-  "Dstrok",	/* capital Eth, Icelandic */ 
-  "ETH",	/* capital Eth, Icelandic */ 
-  "Eacute",	/* capital E, acute accent */ 
-  "Ecirc",	/* capital E, circumflex accent */ 
-  "Egrave",	/* capital E, grave accent */ 
-  "Euml",	/* capital E, dieresis or umlaut mark */ 
-  "Iacute",	/* capital I, acute accent */ 
-  "Icirc",	/* capital I, circumflex accent */ 
-  "Igrave",	/* capital I, grave accent */ 
-  "Iuml",	/* capital I, dieresis or umlaut mark */ 
-  "Ntilde",	/* capital N, tilde */ 
-  "Oacute",	/* capital O, acute accent */ 
-  "Ocirc",	/* capital O, circumflex accent */ 
-  "Ograve",	/* capital O, grave accent */ 
-  "Oslash",	/* capital O, slash */ 
-  "Otilde",	/* capital O, tilde */ 
-  "Ouml",	/* capital O, dieresis or umlaut mark */ 
-  "THORN",	/* capital THORN, Icelandic */ 
-  "Uacute",	/* capital U, acute accent */ 
-  "Ucirc",	/* capital U, circumflex accent */ 
-  "Ugrave",	/* capital U, grave accent */ 
-  "Uuml",	/* capital U, dieresis or umlaut mark */ 
-  "Yacute",	/* capital Y, acute accent */ 
-  "aacute",	/* small a, acute accent */ 
-  "acirc",	/* small a, circumflex accent */ 
+  "AElig",	/* capital AE diphthong (ligature) */
+  "Aacute",	/* capital A, acute accent */
+  "Acirc",	/* capital A, circumflex accent */
+  "Agrave",	/* capital A, grave accent */
+  "Aring",	/* capital A, ring */
+  "Atilde",	/* capital A, tilde */
+  "Auml",	/* capital A, dieresis or umlaut mark */
+  "Ccedil",	/* capital C, cedilla */
+  "Dstrok",	/* capital Eth, Icelandic */
+  "ETH",	/* capital Eth, Icelandic */
+  "Eacute",	/* capital E, acute accent */
+  "Ecirc",	/* capital E, circumflex accent */
+  "Egrave",	/* capital E, grave accent */
+  "Euml",	/* capital E, dieresis or umlaut mark */
+  "Iacute",	/* capital I, acute accent */
+  "Icirc",	/* capital I, circumflex accent */
+  "Igrave",	/* capital I, grave accent */
+  "Iuml",	/* capital I, dieresis or umlaut mark */
+  "Ntilde",	/* capital N, tilde */
+  "Oacute",	/* capital O, acute accent */
+  "Ocirc",	/* capital O, circumflex accent */
+  "Ograve",	/* capital O, grave accent */
+  "Oslash",	/* capital O, slash */
+  "Otilde",	/* capital O, tilde */
+  "Ouml",	/* capital O, dieresis or umlaut mark */
+  "THORN",	/* capital THORN, Icelandic */
+  "Uacute",	/* capital U, acute accent */
+  "Ucirc",	/* capital U, circumflex accent */
+  "Ugrave",	/* capital U, grave accent */
+  "Uuml",	/* capital U, dieresis or umlaut mark */
+  "Yacute",	/* capital Y, acute accent */
+  "aacute",	/* small a, acute accent */
+  "acirc",	/* small a, circumflex accent */
   "acute",	/* spacing acute */
-  "aelig",	/* small ae diphthong (ligature) */ 
-  "agrave",	/* small a, grave accent */ 
-  "amp",	/* ampersand */ 
-  "aring",	/* small a, ring */ 
-  "atilde",	/* small a, tilde */ 
-  "auml",	/* small a, dieresis or umlaut mark */ 
+  "aelig",	/* small ae diphthong (ligature) */
+  "agrave",	/* small a, grave accent */
+  "amp",	/* ampersand */
+  "aring",	/* small a, ring */
+  "atilde",	/* small a, tilde */
+  "auml",	/* small a, dieresis or umlaut mark */
   "brkbar",	/* broken vertical bar */
   "brvbar",	/* broken vertical bar */
-  "ccedil",	/* small c, cedilla */ 
+  "ccedil",	/* small c, cedilla */
   "cedil",	/* spacing cedilla */
   "cent",	/* cent sign */
   "copy",	/* copyright sign */
@@ -65,44 +65,44 @@ static CONST char* entities[] = {
   "deg",	/* degree sign */
   "die",	/* spacing diaresis */
   "divide",	/* division sign */
-  "eacute",	/* small e, acute accent */ 
-  "ecirc",	/* small e, circumflex accent */ 
-  "egrave",	/* small e, grave accent */ 
+  "eacute",	/* small e, acute accent */
+  "ecirc",	/* small e, circumflex accent */
+  "egrave",	/* small e, grave accent */
   "emdash",	/* dash the width of emsp */
   "emsp",	/* em space - not collapsed */
   "endash",	/* dash the width of ensp */
   "ensp",	/* en space - not collapsed */
-  "eth",	/* small eth, Icelandic */ 
-  "euml",	/* small e, dieresis or umlaut mark */ 
+  "eth",	/* small eth, Icelandic */
+  "euml",	/* small e, dieresis or umlaut mark */
   "frac12",	/* fraction 1/2 */
   "frac14",	/* fraction 1/4 */
   "frac34",	/* fraction 3/4 */
-  "gt",		/* greater than */ 
+  "gt", 	/* greater than */
   "hibar",	/* spacing macron */
-  "iacute",	/* small i, acute accent */ 
-  "icirc",	/* small i, circumflex accent */ 
+  "iacute",	/* small i, acute accent */
+  "icirc",	/* small i, circumflex accent */
   "iexcl",	/* inverted exclamation mark */
-  "igrave",	/* small i, grave accent */ 
+  "igrave",	/* small i, grave accent */
   "iquest",	/* inverted question mark */
-  "iuml",	/* small i, dieresis or umlaut mark */ 
+  "iuml",	/* small i, dieresis or umlaut mark */
   "laquo",	/* angle quotation mark, left */
-  "lt",		/* less than */ 
+  "lt", 	/* less than */
   "macr",	/* spacing macron */
   "mdash",	/* dash the width of emsp */
   "micro",	/* micro sign */
   "middot",	/* middle dot */
-  "nbsp",       /* non breaking space */
+  "nbsp",	/* non breaking space */
   "ndash",	/* dash the width of ensp */
   "not",	/* negation sign */
-  "ntilde",	/* small n, tilde */ 
-  "oacute",	/* small o, acute accent */ 
-  "ocirc",	/* small o, circumflex accent */ 
-  "ograve",	/* small o, grave accent */ 
+  "ntilde",	/* small n, tilde */
+  "oacute",	/* small o, acute accent */
+  "ocirc",	/* small o, circumflex accent */
+  "ograve",	/* small o, grave accent */
   "ordf",	/* feminine ordinal indicator */
   "ordm",	/* masculine ordinal indicator */
-  "oslash",	/* small o, slash */ 
-  "otilde",	/* small o, tilde */ 
-  "ouml",	/* small o, dieresis or umlaut mark */ 
+  "oslash",	/* small o, slash */
+  "otilde",	/* small o, tilde */
+  "ouml",	/* small o, dieresis or umlaut mark */
   "para",	/* paragraph sign */
   "plusmn",	/* plus-or-minus sign */
   "pound",	/* pound sign */
@@ -114,31 +114,31 @@ static CONST char* entities[] = {
   "sup1",	/* superscript 1 */
   "sup2",	/* superscript 2 */
   "sup3",	/* superscript 3 */
-  "szlig",	/* small sharp s, German (sz ligature) */ 
-  "thinsp",	/* thin space (not collapsed) */ 
-  "thorn",	/* small thorn, Icelandic */ 
-  "times",	/* multiplication sign */ 
-  "trade",	/* trade mark sign (U+2122) */ 
-  "uacute",	/* small u, acute accent */ 
-  "ucirc",	/* small u, circumflex accent */ 
-  "ugrave",	/* small u, grave accent */ 
+  "szlig",	/* small sharp s, German (sz ligature) */
+  "thinsp",	/* thin space (not collapsed) */
+  "thorn",	/* small thorn, Icelandic */
+  "times",	/* multiplication sign */
+  "trade",	/* trade mark sign (U+2122) */
+  "uacute",	/* small u, acute accent */
+  "ucirc",	/* small u, circumflex accent */
+  "ugrave",	/* small u, grave accent */
   "uml",	/* spacing diaresis */
-  "uuml",	/* small u, dieresis or umlaut mark */ 
-  "yacute",	/* small y, acute accent */ 
+  "uuml",	/* small u, dieresis or umlaut mark */
+  "yacute",	/* small y, acute accent */
   "yen",	/* yen sign */
-  "yuml",	/* small y, dieresis or umlaut mark */ 
+  "yuml",	/* small y, dieresis or umlaut mark */
 };
 
 #define HTML_ENTITIES 112
 
-/* 	Extra Entity Names
+/*	Extra Entity Names
 **	------------------
 **
-**	This table contains Unicodes in addition to the Names. - kw
+**	This table contains Unicodes in addition to the Names.
 **
 *
-*	I think in the future the whole entities[] thing above could migrate
-*	to this kind of structure.  The structured streams to which
+*	Whole entities[] thing above (and much more) now present
+*	in this kind of structure. The structured streams to which
 *	the SGML modules sends its output could then easily have access
 *	to both entity names and unicode values for each (special)
 *	character.  Probably the whole translation to display characters
@@ -147,302 +147,1075 @@ static CONST char* entities[] = {
 *	to SGML whether the entity could be displayed or not.
 *	(like between SGML_character() and handle_entity() via FoundEntity.)
 *	Well, trying to do that now.
-*       Why keep two structures for entities?  Backward compatibility..
+*	Why keep two structures for entities?  Backward compatibility..
 */
 
 /* UC_entity_info structure is defined in SGML.h. */
-/* This has to be sorted alphabetically, 
-   bear this in mind when you add some more entities.. 
-   
-   Now we have here: - all ISO-8859-2 entites 
-                     - lrm, rlm, zwnj and zwj 
+/* This has to be sorted alphabetically (case-sensitive),
+   bear this in mind when you add some more entities..
+
+This table available from ftp://ftp.unicode.org/MAPPINGS/
+original comment follows:
+
+
+# Author: John Cowan <cowan@ccil.org>
+# Date: 25 July 1997
+#
+# The following table maps SGML character entities from various
+# public sets (namely, ISOamsa, ISOamsb, ISOamsc, ISOamsn, ISOamso,
+# ISOamsr, ISObox, ISOcyr1, ISOcyr2, ISOdia, ISOgrk1, ISOgrk2,
+# ISOgrk3, ISOgrk4, ISOlat1, ISOlat2, ISOnum, ISOpub, ISOtech,
+# HTMLspecial, HTMLsymbol) to corresponding Unicode characters.
+#
+# The table has four tab-separated columns:
+#	Column 1: SGML character entity name
+#	Column 2: SGML public entity set
+#	Column 3: Unicode 2.0 character code
+#	Column 4: Unicode 2.0 character name (UPPER CASE)
+# Entries which don't have Unicode equivalents have "0x????"
+# in Column 3 and a lower case description (from the public entity
+# set DTD) in Column 4.  The mapping is not reversible, because many
+# distinctions are unified away in Unicode, particularly between
+# mathematical symbols.
+#
+# The table is sorted case-blind by SGML character entity name.
+#
+# The contents of this table are drawn from various sources, and
+# are in the public domain.
+#
 */
+
+/* We just sort it and move column 2 away (line too long, sorry).
+   Also we add a few synonyms (obsolete):
+   "brkbar"  for "brvbar" 0x00A6
+   "emdash"  for "mdash" 0x2014
+   "endash"  for "ndash" 0x2013
+   "hibar"  for "macr" 0x00AF
+   for exact compatibility with entities[] and previous bevavior.
+   BTW, lots of synonyms found in this table, we shouldn't worry about...
+*/
+
 static CONST UC_entity_info extra_entities[] = {
-  {"Aacute",	0x00c1},  /* A with acute */
-  {"Abreve",	0x0102},  /* A with breve */
-  {"Acirc",	0x00c2},  /* capital A, circumflex accent */
-  {"Alpha",	0x0391},  /* greek capital letter alpha,  u+0391 */
-  {"Aogon",	0x0104},  /* A with ogonek */
-  {"Auml",	0x00c4},  /* capital A, dieresis or umlaut mark */
-  {"Beta",	0x0392},  /* greek capital letter beta,  u+0392 */
-  {"Cacute",	0x0106},  /* C with acute */
-  {"Ccaron",	0x010c},  /* C with caron */
-  {"Ccedil",	0x00c7},  /* capital C, cedilla */
-  {"Chi",	0x03a7},  /* greek capital letter chi,  u+03A7 */
-  {"Dagger",	0x2021},  /* double dagger, u+2021 ISOpub */
-  {"Dcaron",	0x010e},  /* D with caron */
-  {"Delta",	0x0394},  /* greek capital letter delta,  u+0394 ISOgrk3 */
-  {"Dstrok",	0x0110},  /* D with stroke */
-  {"Eacute",	0x00c9},  /* E with acute */
-  {"Ecaron",	0x011a},  /* E with caron */
-  {"Eogon",	0x0118},  /* E with ogonek */
-  {"Epsilon",	0x0395},  /* greek capital letter epsilon,  u+0395 */
-  {"Eta",	0x0397},  /* greek capital letter eta,  u+0397 */
-  {"Euml",	0x00cb},  /* capital E, dieresis or umlaut mark */
-  {"Gamma",	0x0393},  /* greek capital letter gamma,  u+0393 ISOgrk3 */
-  {"Iacute",	0x00cd},  /* I with acute */
-  {"Icirc",	0x00ce},  /* capital I, circumflex accent */
-  {"Iota",	0x0399},  /* greek capital letter iota,  u+0399 */
-  {"Kappa",	0x039a},  /* greek capital letter kappa,  u+039A */
-  {"Lacute",	0x0139},  /* L with acute */
-  {"Lambda",	0x039b},  /* greek capital letter lambda,  u+039B ISOgrk */
-  {"Lcaron",	0x013d},  /* L with caron */
-  {"Lstrok",	0x0141},  /* L with stroke */
-  {"Mu",	0x039c},  /* greek capital letter mu,  u+039C */
-  {"Nacute",	0x0143},  /* N with acute */
-  {"Ncaron",	0x0147},  /* N with caron */
-  {"Ntilde",	0x00d1},  /* capital N, tilde */
-  {"Nu",	0x039d},  /* greek capital letter nu,  u+039D */
-  {"OElig",	0x0152},  /* latin capital ligature oe, u+0152 ISOlat2 - */
-  {"Oacute",	0x00d3},  /* O with acute */
-  {"Ocirc",	0x00d4},  /* O with circumflex */
-  {"Odblac",	0x0150},  /* O with double acute */
-  {"Ograve",	0x00d2},  /* capital O, grave accent */
-  {"Omega",	0x03a9},  /* greek capital letter omega,  u+03A9 ISOgrk3 */
-  {"Omicron",	0x039f},  /* greek capital letter omicron,  u+039F */
-  {"Ouml",	0x00d6},  /* O with diaeresis */
-  {"Phi",	0x03a6},  /* greek capital letter phi,  u+03A6 ISOgrk3 - */
-  {"Pi",	0x03a0},  /* greek capital letter pi,  u+03A0 ISOgrk3 -- */
-  {"Prime",	0x2033},  /* double prime, =seconds, =inches, u+2033 IS */
-  {"Psi",	0x03a8},  /* greek capital letter psi,  u+03A8 ISOgrk3 - */
-  {"Racute",	0x0154},  /* R with acute */
-  {"Rcaron",	0x0158},  /* R with caron */
-  {"Rho",	0x03a1},  /* greek capital letter rho,  u+03A1 */
-  {"Sacute",	0x015a},  /* S with acute */
-  {"Scaron",	0x0160},  /* S with caron */
-  {"Scedil",	0x015e},  /* S with cedilla */
-  {"Sigma",	0x03a3},  /* greek capital letter sigma,  u+03A3 ISOgrk3 */
-  {"Tau",	0x03a4},  /* greek capital letter tau,  u+03A4 */
-  {"Tcaron",	0x0164},  /* T with caron */
-  {"Tcedil",	0x0162},  /* T with cedilla */
-  {"Theta",	0x0398},  /* greek capital letter theta,  u+0398 ISOgrk3 */
-  {"Uacute",	0x00da},  /* U with acute */
-  {"Udblac",	0x0170},  /* U with double acute */
-  {"Ugrave",	0x00d9},  /* capital U, grave accent */
-  {"Upsilon",	0x03a5},  /* greek capital letter upsilon,  u+03A5 IS */
-  {"Uring",	0x016e},  /* U with ring above */
-  {"Uuml",	0x00dc},  /* capital U, dieresis or umlaut mark */
-  {"Xi",	0x039e},  /* greek capital letter xi,  u+039E ISOgrk3 -- */
-  {"Yacute",	0x00dd},  /* capital Y, acute accent */
-  {"Yuml",	0x0178},  /* latin capital letter y with diaeresis, u+01 */
-  {"Zacute",	0x0179},  /* Z with acute */
-  {"Zcaron",	0x017d},  /* Z with caron */
-  {"Zdot",	0x017b},  /* Z with dot above */
-  {"Zeta",	0x0396},  /* greek capital letter zeta,  u+0396 */
-  {"aacute",	0x00e1},  /* a with acute */
-  {"abreve",	0x0103},  /* a with breve */
-  {"acirc",	0x00e2},  /* a with circumflex */
-  {"acute",	0x00b4},  /* acuteaccent */
-  {"alefsym",	0x2135},  /* alef symbol, =first transfinite cardinal, */
-  {"alpha",	0x03b1},  /* greek small letter alpha, u+03B1 ISOgrk3 -- */
-  {"amp",	0x0026},  /* ampersand, u+0026 ISOnum */
-  {"and",	0x2227},  /* logical and, =wedge, u+2227 ISOtech */
-  {"ang",	0x2220},  /* angle, u+2220 ISOamso */
-  {"aogon",	0x0105},  /* a with ogonek */
-  {"apos",	0x0027},  /* apostrophe */
-  {"ast",	0x002a},  /* asterisk */
-  {"asymp",	0x2248},  /* almost equal to, =asymptotic to, u+2248 IS */
-  {"auml",	0x00e4},  /* small a, dieresis or umlaut mark */
-  {"bdquo",	0x201e},  /* double low-9 quotation mark, u+201E NEW -- */
-  {"beta",	0x03b2},  /* greek small letter beta,  u+03B2 ISOgrk3 -- */
-  {"breve",	0x02d8},  /* breve */
-  {"bsol",	0x005c},  /* reversesolidus */
-  {"bull",	0x2022},  /* bullet, =black small circle, u+2022 ISOpub */
-  {"cacute",	0x0107},  /* c with acute */
-  {"cap",	0x2229},  /* intersection, =cap, u+2229 ISOtech */
-  {"caron",	0x02c7},  /* caron */
-  {"ccaron",	0x010d},  /* c with caron */
-  {"ccedil",	0x00e7},  /* c with cedilla */
-  {"cedil",	0x00b8},  /* cedilla */
-  {"cent",	0x00a2},  /* cent sign */
-  {"chi",	0x03c7},  /* greek small letter chi,  u+03C7 ISOgrk3 */
-  {"circ",	0x02c6},  /* modifier letter circumflex accent, u+02C6 */
-  {"clubs",	0x2663},  /* black club suit, =shamrock, u+2663 ISOpub */
-  {"colon",	0x003a},  /* colon */
-  {"comma",	0x002c},  /* comma */
-  {"commat",	0x0040},  /* commercialat */
-  {"cong",	0x2245},  /* approximately equal to, u+2245 ISOtech */
-  {"crarr",	0x21b5},  /* downwards arrow with corner leftwards, =ca */
-  {"cup",	0x222a},  /* union, =cup, u+222A ISOtech */
-  {"curren",	0x00a4},  /* general currency sign */
-  {"dArr",	0x21d3},  /* downwards double arrow, u+21D3 ISOamsa */
-  {"dagger",	0x2020},  /* dagger, u+2020 ISOpub */
-  {"darr",	0x2193},  /* downwards arrow, u+2193 ISOnum */
-  {"dblac",	0x02dd},  /* doubleacuteaccent */
-  {"dcaron",	0x010f},  /* d with caron */
-  {"deg",	0x00b0},  /* degreesign */
-  {"delta",	0x03b4},  /* greek small letter delta,  u+03B4 ISOgrk3 - */
-  {"diams",	0x2666},  /* black diamond suit, u+2666 ISOpub */
-  {"divide",	0x00f7},  /* divisionsign */
-  {"dollar",	0x0024},  /* dollarsign */
-  {"dot",	0x02d9},  /* dotabove */
-  {"dstrok",	0x0111},  /* d with stroke */
-  {"eacute",	0x00e9},  /* e with acute */
-  {"ecaron",	0x011b},  /* e with caron */
-  {"ecirc",	0x00ea},  /* small e, circumflex accent */
-  {"empty",	0x2205},  /* empty set, =null set, =diameter, u+2205 IS */
-  {"emsp",	0x2003},  /* em space, u+2003 ISOpub */
-  {"ensp",	0x2002},  /* en space, u+2002 ISOpub */
-  {"eogon",	0x0119},  /* e with ogonek */
-  {"epsilon",	0x03b5},  /* greek small letter epsilon,  u+03B5 ISOg */
-  {"equals",	0x003d},  /* equalssign */
-  {"equiv",	0x2261},  /* identical to, u+2261 ISOtech */
-  {"eta",	0x03b7},  /* greek small letter eta,  u+03B7 ISOgrk3 */
-  {"euml",	0x00eb},  /* e with diaeresis */
-  {"excl",	0x0021},  /* exclamationmark */
-  {"exist",	0x2203},  /* there exists, u+2203 ISOtech */
-  {"fnof",	0x0192},  /* latin small f with hook, =function, =flori */
-  {"forall",	0x2200},  /* for all, u+2200 ISOtech */
-  {"frasl",	0x2044},  /* fraction slash, u+2044 NEW */
-  {"gamma",	0x03b3},  /* greek small letter gamma,  u+03B3 ISOgrk3 - */
-  {"ge",	0x2265},  /* greater-than or equal to, u+2265 ISOtech - */
-  {"grave",	0x0060},  /* graveaccent */
-  {"gt",	0x003e},  /* greater-thansign */
-  {"hArr",	0x21d4},  /* left right double arrow, u+21D4 ISOamsa -- */
-  {"harr",	0x2194},  /* left right arrow, u+2194 ISOamsa */
-  {"hearts",	0x2665},  /* black heart suit, =valentine, u+2665 ISOpu */
-  {"hellip",	0x2026},  /* horizontal ellipsis, =three dot leader, u+ */
-  {"hyphen",	0x002d},  /* hyphen-minus */
-  {"iacute",	0x00ed},  /* i with acute */
-  {"icirc",	0x00ee},  /* small i, circumflex accent */
-  {"image",	0x2111},  /* blackletter capital I, =imaginary part, u+ */
-  {"infin",	0x221e},  /* infinity, u+221E ISOtech */
-  {"int",	0x222b},  /* integral, u+222B ISOtech */
-  {"iota",	0x03b9},  /* greek small letter iota,  u+03B9 ISOgrk3 -- */
-  {"isin",	0x2208},  /* element of, u+2208 ISOtech */
-  {"kappa",	0x03ba},  /* greek small letter kappa,  u+03BA ISOgrk3 - */
-  {"lArr",	0x21d0},  /* leftwards double arrow, u+21D0 ISOtech */
-  {"lacute",	0x013a},  /* l with acute */
-  {"lambda",	0x03bb},  /* greek small letter lambda,  u+03BB ISOgrk3 */
-  {"lang",	0x2329},  /* left-pointing angle bracket, =bra, u+2329 */
-  {"larr",	0x2190},  /* leftwards arrow, u+2190 ISOnum */
-  {"lcaron",	0x013e},  /* l with caron */
-  {"lceil",	0x2308},  /* left ceiling, =apl upstile, u+2308, ISOams */
-  {"lcub",	0x007b},  /* leftcurlybracket */
-  {"ldquo",	0x201c},  /* left double quotation mark, u+201C ISOnum */
-  {"le",	0x2264},  /* less-than or equal to, u+2264 ISOtech */
-  {"lfloor",	0x230a},  /* left floor, =apl downstile, u+230A, ISOams */
-  {"lowast",	0x2217},  /* asterisk operator, u+2217 ISOtech */
-  {"lowbar",	0x005f},  /* lowline */
-  {"loz",	0x25ca},  /* lozenge, u+25CA ISOpub */
-  {"lpar",	0x0028},  /* leftparenthesis */
-  {"lrm",	0x200e},  /* left-to-right mark, u+200E NEW RFC 2070 -- */
-  {"lsaquo",	0x2039},  /* single left-pointing angle quotation mark, */
-  {"lsqb",	0x005b},  /* leftsquarebracket */
-  {"lsquo",	0x2018},  /* left single quotation mark, u+2018 ISOnum */
-  {"lstrok",	0x0142},  /* l with stroke */
-  {"lt",	0x003c},  /* less-thansign */
-  {"macr",	0x00af},  /* macron */
-  {"mdash",	0x2014},  /* em dash, u+2014 ISOpub */
-  {"minus",	0x2212},  /* minus sign, u+2212 ISOtech */
-  {"mu",	0x03bc},  /* greek small letter mu,  u+03BC ISOgrk3 */
-  {"nabla",	0x2207},  /* nabla, =backward difference, u+2207 ISOtec */
-  {"nacute",	0x0144},  /* n with acute */
-  {"nbsp",	0x00a0},  /* no-break space */
-  {"ncaron",	0x0148},  /* n with caron */
-  {"ndash",	0x2013},  /* en dash, u+2013 ISOpub */
-  {"ne",	0x2260},  /* not equal to, u+2260 ISOtech */
-  {"ni",	0x220b},  /* contains as member, u+220B ISOtech */
-  {"notin",	0x2209},  /* not an element of, u+2209 ISOtech */
-  {"nsub",	0x2284},  /* not a subset of, u+2284 ISOamsn */
-  {"nu",	0x03bd},  /* greek small letter nu,  u+03BD ISOgrk3 */
-  {"num",	0x0023},  /* numbersign */
-  {"oacute",	0x00f3},  /* o with acute */
-  {"ocirc",	0x00f4},  /* o with circumflex */
-  {"odblac",	0x0151},  /* o with double acute */
-  {"oelig",	0x0153},  /* latin small ligature oe, u+0153 ISOlat2 */
-  {"ogon",	0x02db},  /* ogonek */
-  {"ograve",	0x00f2},  /* small o, grave accent */
-  {"oline",	0x203e},  /* overline, =spacing overscore, u+203E NEW - */
-  {"omega",	0x03c9},  /* greek small letter omega,  u+03C9 ISOgrk3 - */
-  {"omicron",	0x03bf},  /* greek small letter omicron,  u+03BF NEW */
-  {"oplus",	0x2295},  /* circled plus, =direct sum, u+2295 ISOamsb */
-  {"or",	0x2228},  /* logical or, =vee, u+2228 ISOtech */
-  {"oslash",	0x00f8},  /* small o, slash */
-  {"otimes",	0x2297},  /* circled times, =vector product, u+2297 ISO */
-  {"ouml",	0x00f6},  /* small o, dieresis or umlaut mark */
-  {"part",	0x2202},  /* partial differential, u+2202 ISOtech  */
-  {"percnt",	0x0025},  /* percentsign */
-  {"period",	0x002e},  /* fullstop */
-  {"permil",	0x2030},  /* per mille sign, u+2030 ISOtech */
-  {"perp",	0x22a5},  /* up tack, =orthogonal to, =perpendicular, u */
-  {"phi",	0x03c6},  /* greek small letter phi,  u+03C6 ISOgrk3 */
-  {"pi",	0x03c0},  /* greek small letter pi,  u+03C0 ISOgrk3 */
-  {"piv",	0x03d6},  /* greek pi symbol,  u+03D6 ISOgrk3 */
-  {"plus",	0x002b},  /* plussign */
-  {"plusmn",	0x00b1},  /* plus-or-minus sign */
-  {"prime",	0x2032},  /* prime, =minutes, =feet, u+2032 ISOtech */
-  {"prod",	0x220f},  /* n-ary product, =product sign, u+220F ISOam */
-  {"prop",	0x221d},  /* proportional to, u+221D ISOtech */
-  {"psi",	0x03c8},  /* greek small letter psi,  u+03C8 ISOgrk3 */
-  {"quest",	0x003f},  /* questionmark */
-  {"quot",	0x0022},  /* quotationmark */
-  {"rArr",	0x21d2},  /* rightwards double arrow, u+21D2 ISOtech -- */
-  {"racute",	0x0155},  /* r with acute */
-  {"radic",	0x221a},  /* square root, =radical sign, u+221A ISOtech */
-  {"rang",	0x232a},  /* right-pointing angle bracket, =ket, u+232A */
-  {"rarr",	0x2192},  /* rightwards arrow, u+2192 ISOnum */
-  {"rcaron",	0x0159},  /* r with caron */
-  {"rceil",	0x2309},  /* right ceiling, u+2309, ISOamsc  */
-  {"rcub",	0x007d},  /* rightcurlybracket */
-  {"rdquo",	0x201d},  /* right double quotation mark, u+201D ISOnum */
-  {"real",	0x211c},  /* blackletter capital R, =real part symbol, */
-  {"rfloor",	0x230b},  /* right floor, u+230B, ISOamsc  */
-  {"rho",	0x03c1},  /* greek small letter rho,  u+03C1 ISOgrk3 */
-  {"rlm",	 8207},	/* right-to-left mark */ 
-  {"rpar",	0x0029},  /* rightparenthesis */
-  {"rsaquo",	0x203a},  /* single right-pointing angle quotation mark */
-  {"rsqb",	0x005d},  /* rightsquarebracket */
-  {"rsquo",	0x2019},  /* right single quotation mark, u+2019 ISOnum */
-  {"sacute",	0x015b},  /* s with acute */
-  {"sbquo",	0x201a},  /* single low-9 quotation mark, u+201A NEW -- */
-  {"scaron",	0x0161},  /* latin small letter s with caron, u+0161 ISO */
-  {"scedil",	0x015f},  /* s with cedilla */
-  {"sdot",	0x22c5},  /* dot operator, u+22C5 ISOamsb */
-  {"sect",	0x00a7},  /* section sign */
-  {"semi",	0x003b},  /* semicolon */
-  {"shy",	0x00ad},  /* soft hyphen */
-  {"sigma",	0x03c3},  /* greek small letter sigma,  u+03C3 ISOgrk3 - */
-  {"sigmaf",	0x03c2},  /* greek small letter final sigma,  u+03C2 ISO */
-  {"sim",	0x223c},  /* tilde operator, =varies with, =similar to, */
-  {"sol",	0x002f},  /* solidus */
-  {"spades",	0x2660},  /* black spade suit, u+2660 ISOpub */
-  {"sub",	0x2282},  /* subset of, u+2282 ISOtech */
-  {"sube",	0x2286},  /* subset of or equal to, u+2286 ISOtech */
-  {"sum",	0x2211},  /* n-ary sumation, u+2211 ISOamsb */
-  {"sup",	0x2283},  /* superset of, u+2283 ISOtech */
-  {"supe",	0x2287},  /* superset of or equal to, u+2287 ISOtech -- */
-  {"tau",	0x03c4},  /* greek small letter tau,  u+03C4 ISOgrk3 */
-  {"tcaron",	0x0165},  /* t with caron */
-  {"tcedil",	0x0163},  /* t with cedilla */
-  {"there4",	0x2234},  /* therefore, u+2234 ISOtech */
-  {"theta",	0x03b8},  /* greek small letter theta,  u+03B8 ISOgrk3 - */
-  {"thetasym",	0x03d1},  /* greek small letter theta symbol,  u+03D1 */
-  {"thinsp",	0x2009},  /* thin space, u+2009 ISOpub */
-  {"tilde",	0x02dc},  /* small tilde, u+02DC ISOdia */
-  {"times",	0x00d7},  /* multiply sign */
-  {"trade",	0x2122},  /* trade mark sign, u+2122 ISOnum */
-  {"uArr",	0x21d1},  /* upwards double arrow, u+21D1 ISOamsa */
-  {"uacute",	0x00fa},  /* u with acute */
-  {"uarr",	0x2191},  /* upwards arrow, u+2191 ISOnum--> */
-  {"udblac",	0x0171},  /* u with double acute */
-  {"uml",	0x00a8},  /* umlaut (dieresis) */
-  {"upsih",	0x03d2},  /* greek upsilon with hook symbol,  u+03D2 NEW */
-  {"upsilon",	0x03c5},  /* greek small letter upsilon,  u+03C5 ISOg */
-  {"uring",	0x016f},  /* u with ring above */
-  {"uuml",	0x00fc},  /* u with diaeresis */
-  {"verbar",	0x007c},  /* verticalline */
-  {"weierp",	0x2118},  /* script capital P, =power set, =Weierstrass */
-  {"xi",	0x03be},  /* greek small letter xi,  u+03BE ISOgrk3 */
-  {"yacute",	0x00fd},  /* y with acute */
-  {"zacute",	0x017a},  /* z with acute */
-  {"zcaron",	0x017e},  /* z with caron */
-  {"zdot",	0x017c},  /* z with dot above */
-  {"zeta",	0x03b6},  /* greek small letter zeta,  u+03B6 ISOgrk3 -- */
-  {"zwj",	  8205},  /* zero width joiner */ 
-  {"zwnj",	  8204},  /* zero width non-joiner */ 
+  {"AElig",	0x00C6},  /* LATIN CAPITAL LETTER AE			   */
+  {"Aacgr",	0x0386},  /* GREEK CAPITAL LETTER ALPHA WITH TONOS	   */
+  {"Aacute",	0x00C1},  /* LATIN CAPITAL LETTER A WITH ACUTE		   */
+  {"Abreve",	0x0102},  /* LATIN CAPITAL LETTER A WITH BREVE		   */
+  {"Acirc",	0x00C2},  /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX	   */
+  {"Acy",	0x0410},  /* CYRILLIC CAPITAL LETTER A			   */
+  {"Agr",	0x0391},  /* GREEK CAPITAL LETTER ALPHA 		   */
+  {"Agrave",	0x00C0},  /* LATIN CAPITAL LETTER A WITH GRAVE		   */
+  {"Alpha",	0x0391},  /* GREEK CAPITAL LETTER ALPHA 		   */
+  {"Amacr",	0x0100},  /* LATIN CAPITAL LETTER A WITH MACRON 	   */
+  {"Aogon",	0x0104},  /* LATIN CAPITAL LETTER A WITH OGONEK 	   */
+  {"Aring",	0x00C5},  /* LATIN CAPITAL LETTER A WITH RING ABOVE	   */
+  {"Atilde",	0x00C3},  /* LATIN CAPITAL LETTER A WITH TILDE		   */
+  {"Auml",	0x00C4},  /* LATIN CAPITAL LETTER A WITH DIAERESIS	   */
+  {"Barwed",	0x2306},  /* PERSPECTIVE				   */
+  {"Bcy",	0x0411},  /* CYRILLIC CAPITAL LETTER BE 		   */
+  {"Beta",	0x0392},  /* GREEK CAPITAL LETTER BETA			   */
+  {"Bgr",	0x0392},  /* GREEK CAPITAL LETTER BETA			   */
+  {"CHcy",	0x0427},  /* CYRILLIC CAPITAL LETTER CHE		   */
+  {"Cacute",	0x0106},  /* LATIN CAPITAL LETTER C WITH ACUTE		   */
+  {"Cap",	0x22D2},  /* DOUBLE INTERSECTION			   */
+  {"Ccaron",	0x010C},  /* LATIN CAPITAL LETTER C WITH CARON		   */
+  {"Ccedil",	0x00C7},  /* LATIN CAPITAL LETTER C WITH CEDILLA	   */
+  {"Ccirc",	0x0108},  /* LATIN CAPITAL LETTER C WITH CIRCUMFLEX	   */
+  {"Cdot",	0x010A},  /* LATIN CAPITAL LETTER C WITH DOT ABOVE	   */
+  {"Chi",	0x03A7},  /* GREEK CAPITAL LETTER CHI			   */
+  {"Cup",	0x22D3},  /* DOUBLE UNION				   */
+  {"DJcy",	0x0402},  /* CYRILLIC CAPITAL LETTER DJE		   */
+  {"DScy",	0x0405},  /* CYRILLIC CAPITAL LETTER DZE		   */
+  {"DZcy",	0x040F},  /* CYRILLIC CAPITAL LETTER DZHE		   */
+  {"Dagger",	0x2021},  /* DOUBLE DAGGER				   */
+  {"Dcaron",	0x010E},  /* LATIN CAPITAL LETTER D WITH CARON		   */
+  {"Dcy",	0x0414},  /* CYRILLIC CAPITAL LETTER DE 		   */
+  {"Delta",	0x0394},  /* GREEK CAPITAL LETTER DELTA 		   */
+  {"Dgr",	0x0394},  /* GREEK CAPITAL LETTER DELTA 		   */
+  {"Dot",	0x00A8},  /* DIAERESIS					   */
+  {"DotDot",	0x20DC},  /* COMBINING FOUR DOTS ABOVE			   */
+  {"Dstrok",	0x0110},  /* LATIN CAPITAL LETTER D WITH STROKE 	   */
+  {"EEacgr",	0x0389},  /* GREEK CAPITAL LETTER ETA WITH TONOS	   */
+  {"EEgr",	0x0397},  /* GREEK CAPITAL LETTER ETA			   */
+  {"ENG",	0x014A},  /* LATIN CAPITAL LETTER ENG			   */
+  {"ETH",	0x00D0},  /* LATIN CAPITAL LETTER ETH			   */
+  {"Eacgr",	0x0388},  /* GREEK CAPITAL LETTER EPSILON WITH TONOS	   */
+  {"Eacute",	0x00C9},  /* LATIN CAPITAL LETTER E WITH ACUTE		   */
+  {"Ecaron",	0x011A},  /* LATIN CAPITAL LETTER E WITH CARON		   */
+  {"Ecirc",	0x00CA},  /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX	   */
+  {"Ecy",	0x042D},  /* CYRILLIC CAPITAL LETTER E			   */
+  {"Edot",	0x0116},  /* LATIN CAPITAL LETTER E WITH DOT ABOVE	   */
+  {"Egr",	0x0395},  /* GREEK CAPITAL LETTER EPSILON		   */
+  {"Egrave",	0x00C8},  /* LATIN CAPITAL LETTER E WITH GRAVE		   */
+  {"Emacr",	0x0112},  /* LATIN CAPITAL LETTER E WITH MACRON 	   */
+  {"Eogon",	0x0118},  /* LATIN CAPITAL LETTER E WITH OGONEK 	   */
+  {"Epsilon",	0x0395},  /* GREEK CAPITAL LETTER EPSILON		   */
+  {"Eta",	0x0397},  /* GREEK CAPITAL LETTER ETA			   */
+  {"Euml",	0x00CB},  /* LATIN CAPITAL LETTER E WITH DIAERESIS	   */
+  {"Fcy",	0x0424},  /* CYRILLIC CAPITAL LETTER EF 		   */
+  {"GJcy",	0x0403},  /* CYRILLIC CAPITAL LETTER GJE		   */
+  {"Gamma",	0x0393},  /* GREEK CAPITAL LETTER GAMMA 		   */
+  {"Gbreve",	0x011E},  /* LATIN CAPITAL LETTER G WITH BREVE		   */
+  {"Gcedil",	0x0122},  /* LATIN CAPITAL LETTER G WITH CEDILLA	   */
+  {"Gcirc",	0x011C},  /* LATIN CAPITAL LETTER G WITH CIRCUMFLEX	   */
+  {"Gcy",	0x0413},  /* CYRILLIC CAPITAL LETTER GHE		   */
+  {"Gdot",	0x0120},  /* LATIN CAPITAL LETTER G WITH DOT ABOVE	   */
+  {"Gg",	0x22D9},  /* VERY MUCH GREATER-THAN			   */
+  {"Ggr",	0x0393},  /* GREEK CAPITAL LETTER GAMMA 		   */
+  {"Gt",	0x226B},  /* MUCH GREATER-THAN				   */
+  {"HARDcy",	0x042A},  /* CYRILLIC CAPITAL LETTER HARD SIGN		   */
+  {"Hcirc",	0x0124},  /* LATIN CAPITAL LETTER H WITH CIRCUMFLEX	   */
+  {"Hstrok",	0x0126},  /* LATIN CAPITAL LETTER H WITH STROKE 	   */
+  {"IEcy",	0x0415},  /* CYRILLIC CAPITAL LETTER IE 		   */
+  {"IJlig",	0x0132},  /* LATIN CAPITAL LIGATURE IJ			   */
+  {"IOcy",	0x0401},  /* CYRILLIC CAPITAL LETTER IO 		   */
+  {"Iacgr",	0x038A},  /* GREEK CAPITAL LETTER IOTA WITH TONOS	   */
+  {"Iacute",	0x00CD},  /* LATIN CAPITAL LETTER I WITH ACUTE		   */
+  {"Icirc",	0x00CE},  /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX	   */
+  {"Icy",	0x0418},  /* CYRILLIC CAPITAL LETTER I			   */
+  {"Idigr",	0x03AA},  /* GREEK CAPITAL LETTER IOTA WITH DIALYTIKA	   */
+  {"Idot",	0x0130},  /* LATIN CAPITAL LETTER I WITH DOT ABOVE	   */
+  {"Igr",	0x0399},  /* GREEK CAPITAL LETTER IOTA			   */
+  {"Igrave",	0x00CC},  /* LATIN CAPITAL LETTER I WITH GRAVE		   */
+  {"Imacr",	0x012A},  /* LATIN CAPITAL LETTER I WITH MACRON 	   */
+  {"Iogon",	0x012E},  /* LATIN CAPITAL LETTER I WITH OGONEK 	   */
+  {"Iota",	0x0399},  /* GREEK CAPITAL LETTER IOTA			   */
+  {"Itilde",	0x0128},  /* LATIN CAPITAL LETTER I WITH TILDE		   */
+  {"Iukcy",	0x0406},  /* CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN*/
+  {"Iuml",	0x00CF},  /* LATIN CAPITAL LETTER I WITH DIAERESIS	   */
+  {"Jcirc",	0x0134},  /* LATIN CAPITAL LETTER J WITH CIRCUMFLEX	   */
+  {"Jcy",	0x0419},  /* CYRILLIC CAPITAL LETTER SHORT I		   */
+  {"Jsercy",	0x0408},  /* CYRILLIC CAPITAL LETTER JE 		   */
+  {"Jukcy",	0x0404},  /* CYRILLIC CAPITAL LETTER UKRAINIAN IE	   */
+  {"KHcy",	0x0425},  /* CYRILLIC CAPITAL LETTER HA 		   */
+  {"KHgr",	0x03A7},  /* GREEK CAPITAL LETTER CHI			   */
+  {"KJcy",	0x040C},  /* CYRILLIC CAPITAL LETTER KJE		   */
+  {"Kappa",	0x039A},  /* GREEK CAPITAL LETTER KAPPA 		   */
+  {"Kcedil",	0x0136},  /* LATIN CAPITAL LETTER K WITH CEDILLA	   */
+  {"Kcy",	0x041A},  /* CYRILLIC CAPITAL LETTER KA 		   */
+  {"Kgr",	0x039A},  /* GREEK CAPITAL LETTER KAPPA 		   */
+  {"LJcy",	0x0409},  /* CYRILLIC CAPITAL LETTER LJE		   */
+  {"Lacute",	0x0139},  /* LATIN CAPITAL LETTER L WITH ACUTE		   */
+  {"Lambda",	0x039B},  /* GREEK CAPITAL LETTER LAMDA 		   */
+  {"Larr",	0x219E},  /* LEFTWARDS TWO HEADED ARROW 		   */
+  {"Lcaron",	0x013D},  /* LATIN CAPITAL LETTER L WITH CARON		   */
+  {"Lcedil",	0x013B},  /* LATIN CAPITAL LETTER L WITH CEDILLA	   */
+  {"Lcy",	0x041B},  /* CYRILLIC CAPITAL LETTER EL 		   */
+  {"Lgr",	0x039B},  /* GREEK CAPITAL LETTER LAMDA 		   */
+  {"Ll",	0x22D8},  /* VERY MUCH LESS-THAN			   */
+  {"Lmidot",	0x013F},  /* LATIN CAPITAL LETTER L WITH MIDDLE DOT	   */
+  {"Lstrok",	0x0141},  /* LATIN CAPITAL LETTER L WITH STROKE 	   */
+  {"Lt",	0x226A},  /* MUCH LESS-THAN				   */
+  {"Mcy",	0x041C},  /* CYRILLIC CAPITAL LETTER EM 		   */
+  {"Mgr",	0x039C},  /* GREEK CAPITAL LETTER MU			   */
+  {"Mu",	0x039C},  /* GREEK CAPITAL LETTER MU			   */
+  {"NJcy",	0x040A},  /* CYRILLIC CAPITAL LETTER NJE		   */
+  {"Nacute",	0x0143},  /* LATIN CAPITAL LETTER N WITH ACUTE		   */
+  {"Ncaron",	0x0147},  /* LATIN CAPITAL LETTER N WITH CARON		   */
+  {"Ncedil",	0x0145},  /* LATIN CAPITAL LETTER N WITH CEDILLA	   */
+  {"Ncy",	0x041D},  /* CYRILLIC CAPITAL LETTER EN 		   */
+  {"Ngr",	0x039D},  /* GREEK CAPITAL LETTER NU			   */
+  {"Ntilde",	0x00D1},  /* LATIN CAPITAL LETTER N WITH TILDE		   */
+  {"Nu",	0x039D},  /* GREEK CAPITAL LETTER NU			   */
+  {"OElig",	0x0152},  /* LATIN CAPITAL LIGATURE OE			   */
+  {"OHacgr",	0x038F},  /* GREEK CAPITAL LETTER OMEGA WITH TONOS	   */
+  {"OHgr",	0x03A9},  /* GREEK CAPITAL LETTER OMEGA 		   */
+  {"Oacgr",	0x038C},  /* GREEK CAPITAL LETTER OMICRON WITH TONOS	   */
+  {"Oacute",	0x00D3},  /* LATIN CAPITAL LETTER O WITH ACUTE		   */
+  {"Ocirc",	0x00D4},  /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX	   */
+  {"Ocy",	0x041E},  /* CYRILLIC CAPITAL LETTER O			   */
+  {"Odblac",	0x0150},  /* LATIN CAPITAL LETTER O WITH DOUBLE ACUTE	   */
+  {"Ogr",	0x039F},  /* GREEK CAPITAL LETTER OMICRON		   */
+  {"Ograve",	0x00D2},  /* LATIN CAPITAL LETTER O WITH GRAVE		   */
+  {"Omacr",	0x014C},  /* LATIN CAPITAL LETTER O WITH MACRON 	   */
+  {"Omega",	0x03A9},  /* GREEK CAPITAL LETTER OMEGA 		   */
+  {"Omicron",	0x039F},  /* GREEK CAPITAL LETTER OMICRON		   */
+  {"Oslash",	0x00D8},  /* LATIN CAPITAL LETTER O WITH STROKE 	   */
+  {"Otilde",	0x00D5},  /* LATIN CAPITAL LETTER O WITH TILDE		   */
+  {"Ouml",	0x00D6},  /* LATIN CAPITAL LETTER O WITH DIAERESIS	   */
+  {"PHgr",	0x03A6},  /* GREEK CAPITAL LETTER PHI			   */
+  {"PSgr",	0x03A8},  /* GREEK CAPITAL LETTER PSI			   */
+  {"Pcy",	0x041F},  /* CYRILLIC CAPITAL LETTER PE 		   */
+  {"Pgr",	0x03A0},  /* GREEK CAPITAL LETTER PI			   */
+  {"Phi",	0x03A6},  /* GREEK CAPITAL LETTER PHI			   */
+  {"Pi",	0x03A0},  /* GREEK CAPITAL LETTER PI			   */
+  {"Prime",	0x2033},  /* DOUBLE PRIME				   */
+  {"Psi",	0x03A8},  /* GREEK CAPITAL LETTER PSI			   */
+  {"Racute",	0x0154},  /* LATIN CAPITAL LETTER R WITH ACUTE		   */
+  {"Rarr",	0x21A0},  /* RIGHTWARDS TWO HEADED ARROW		   */
+  {"Rcaron",	0x0158},  /* LATIN CAPITAL LETTER R WITH CARON		   */
+  {"Rcedil",	0x0156},  /* LATIN CAPITAL LETTER R WITH CEDILLA	   */
+  {"Rcy",	0x0420},  /* CYRILLIC CAPITAL LETTER ER 		   */
+  {"Rgr",	0x03A1},  /* GREEK CAPITAL LETTER RHO			   */
+  {"Rho",	0x03A1},  /* GREEK CAPITAL LETTER RHO			   */
+  {"SHCHcy",	0x0429},  /* CYRILLIC CAPITAL LETTER SHCHA		   */
+  {"SHcy",	0x0428},  /* CYRILLIC CAPITAL LETTER SHA		   */
+  {"SOFTcy",	0x042C},  /* CYRILLIC CAPITAL LETTER SOFT SIGN		   */
+  {"Sacute",	0x015A},  /* LATIN CAPITAL LETTER S WITH ACUTE		   */
+  {"Scaron",	0x0160},  /* LATIN CAPITAL LETTER S WITH CARON		   */
+  {"Scedil",	0x015E},  /* LATIN CAPITAL LETTER S WITH CEDILLA	   */
+  {"Scirc",	0x015C},  /* LATIN CAPITAL LETTER S WITH CIRCUMFLEX	   */
+  {"Scy",	0x0421},  /* CYRILLIC CAPITAL LETTER ES 		   */
+  {"Sgr",	0x03A3},  /* GREEK CAPITAL LETTER SIGMA 		   */
+  {"Sigma",	0x03A3},  /* GREEK CAPITAL LETTER SIGMA 		   */
+  {"Sub",	0x22D0},  /* DOUBLE SUBSET				   */
+  {"Sup",	0x22D1},  /* DOUBLE SUPERSET				   */
+  {"THORN",	0x00DE},  /* LATIN CAPITAL LETTER THORN 		   */
+  {"THgr",	0x0398},  /* GREEK CAPITAL LETTER THETA 		   */
+  {"TSHcy",	0x040B},  /* CYRILLIC CAPITAL LETTER TSHE		   */
+  {"TScy",	0x0426},  /* CYRILLIC CAPITAL LETTER TSE		   */
+  {"Tau",	0x03A4},  /* GREEK CAPITAL LETTER TAU			   */
+  {"Tcaron",	0x0164},  /* LATIN CAPITAL LETTER T WITH CARON		   */
+  {"Tcedil",	0x0162},  /* LATIN CAPITAL LETTER T WITH CEDILLA	   */
+  {"Tcy",	0x0422},  /* CYRILLIC CAPITAL LETTER TE 		   */
+  {"Tgr",	0x03A4},  /* GREEK CAPITAL LETTER TAU			   */
+  {"Theta",	0x0398},  /* GREEK CAPITAL LETTER THETA 		   */
+  {"Tstrok",	0x0166},  /* LATIN CAPITAL LETTER T WITH STROKE 	   */
+  {"Uacgr",	0x038E},  /* GREEK CAPITAL LETTER UPSILON WITH TONOS	   */
+  {"Uacute",	0x00DA},  /* LATIN CAPITAL LETTER U WITH ACUTE		   */
+  {"Ubrcy",	0x040E},  /* CYRILLIC CAPITAL LETTER SHORT U		   */
+  {"Ubreve",	0x016C},  /* LATIN CAPITAL LETTER U WITH BREVE		   */
+  {"Ucirc",	0x00DB},  /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX	   */
+  {"Ucy",	0x0423},  /* CYRILLIC CAPITAL LETTER U			   */
+  {"Udblac",	0x0170},  /* LATIN CAPITAL LETTER U WITH DOUBLE ACUTE	   */
+  {"Udigr",	0x03AB},  /* GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA   */
+  {"Ugr",	0x03A5},  /* GREEK CAPITAL LETTER UPSILON		   */
+  {"Ugrave",	0x00D9},  /* LATIN CAPITAL LETTER U WITH GRAVE		   */
+  {"Umacr",	0x016A},  /* LATIN CAPITAL LETTER U WITH MACRON 	   */
+  {"Uogon",	0x0172},  /* LATIN CAPITAL LETTER U WITH OGONEK 	   */
+  {"Upsi",	0x03A5},  /* GREEK CAPITAL LETTER UPSILON		   */
+  {"Upsilon",	0x03A5},  /* GREEK CAPITAL LETTER UPSILON		   */
+  {"Uring",	0x016E},  /* LATIN CAPITAL LETTER U WITH RING ABOVE	   */
+  {"Utilde",	0x0168},  /* LATIN CAPITAL LETTER U WITH TILDE		   */
+  {"Uuml",	0x00DC},  /* LATIN CAPITAL LETTER U WITH DIAERESIS	   */
+  {"Vcy",	0x0412},  /* CYRILLIC CAPITAL LETTER VE 		   */
+  {"Vdash",	0x22A9},  /* FORCES					   */
+  {"Verbar",	0x2016},  /* DOUBLE VERTICAL LINE			   */
+  {"Vvdash",	0x22AA},  /* TRIPLE VERTICAL BAR RIGHT TURNSTILE	   */
+  {"Wcirc",	0x0174},  /* LATIN CAPITAL LETTER W WITH CIRCUMFLEX	   */
+  {"Xgr",	0x039E},  /* GREEK CAPITAL LETTER XI			   */
+  {"Xi",	0x039E},  /* GREEK CAPITAL LETTER XI			   */
+  {"YAcy",	0x042F},  /* CYRILLIC CAPITAL LETTER YA 		   */
+  {"YIcy",	0x0407},  /* CYRILLIC CAPITAL LETTER YI 		   */
+  {"YUcy",	0x042E},  /* CYRILLIC CAPITAL LETTER YU 		   */
+  {"Yacute",	0x00DD},  /* LATIN CAPITAL LETTER Y WITH ACUTE		   */
+  {"Ycirc",	0x0176},  /* LATIN CAPITAL LETTER Y WITH CIRCUMFLEX	   */
+  {"Ycy",	0x042B},  /* CYRILLIC CAPITAL LETTER YERU		   */
+  {"Yuml",	0x0178},  /* LATIN CAPITAL LETTER Y WITH DIAERESIS	   */
+  {"ZHcy",	0x0416},  /* CYRILLIC CAPITAL LETTER ZHE		   */
+  {"Zacute",	0x0179},  /* LATIN CAPITAL LETTER Z WITH ACUTE		   */
+  {"Zcaron",	0x017D},  /* LATIN CAPITAL LETTER Z WITH CARON		   */
+  {"Zcy",	0x0417},  /* CYRILLIC CAPITAL LETTER ZE 		   */
+  {"Zdot",	0x017B},  /* LATIN CAPITAL LETTER Z WITH DOT ABOVE	   */
+  {"Zeta",	0x0396},  /* GREEK CAPITAL LETTER ZETA			   */
+  {"Zgr",	0x0396},  /* GREEK CAPITAL LETTER ZETA			   */
+  {"aacgr",	0x03AC},  /* GREEK SMALL LETTER ALPHA WITH TONOS	   */
+  {"aacute",	0x00E1},  /* LATIN SMALL LETTER A WITH ACUTE		   */
+  {"abreve",	0x0103},  /* LATIN SMALL LETTER A WITH BREVE		   */
+  {"acirc",	0x00E2},  /* LATIN SMALL LETTER A WITH CIRCUMFLEX	   */
+  {"acute",	0x00B4},  /* ACUTE ACCENT				   */
+  {"acy",	0x0430},  /* CYRILLIC SMALL LETTER A			   */
+  {"aelig",	0x00E6},  /* LATIN SMALL LETTER AE			   */
+  {"agr",	0x03B1},  /* GREEK SMALL LETTER ALPHA			   */
+  {"agrave",	0x00E0},  /* LATIN SMALL LETTER A WITH GRAVE		   */
+  {"alefsym",	0x2135},  /* ALEF SYMBOL				   */
+  {"aleph",	0x2135},  /* ALEF SYMBOL				   */
+  {"alpha",	0x03B1},  /* GREEK SMALL LETTER ALPHA			   */
+  {"amacr",	0x0101},  /* LATIN SMALL LETTER A WITH MACRON		   */
+  {"amalg",	0x2210},  /* N-ARY COPRODUCT				   */
+  {"amp",	0x0026},  /* AMPERSAND					   */
+  {"and",	0x2227},  /* LOGICAL AND				   */
+  {"ang",	0x2220},  /* ANGLE					   */
+  {"ang90",	0x221F},  /* RIGHT ANGLE				   */
+  {"angmsd",	0x2221},  /* MEASURED ANGLE				   */
+  {"angsph",	0x2222},  /* SPHERICAL ANGLE				   */
+  {"angst",	0x212B},  /* ANGSTROM SIGN				   */
+  {"aogon",	0x0105},  /* LATIN SMALL LETTER A WITH OGONEK		   */
+  {"ap",	0x2248},  /* ALMOST EQUAL TO				   */
+  {"ape",	0x224A},  /* ALMOST EQUAL OR EQUAL TO			   */
+  {"apos",	0x02BC},  /* MODIFIER LETTER APOSTROPHE 		   */
+  {"aring",	0x00E5},  /* LATIN SMALL LETTER A WITH RING ABOVE	   */
+  {"ast",	0x002A},  /* ASTERISK					   */
+  {"asymp",	0x2248},  /* ALMOST EQUAL TO				   */
+  {"atilde",	0x00E3},  /* LATIN SMALL LETTER A WITH TILDE		   */
+  {"auml",	0x00E4},  /* LATIN SMALL LETTER A WITH DIAERESIS	   */
+  {"b.Delta",	0x0394},  /* GREEK CAPITAL LETTER DELTA 		   */
+  {"b.Gamma",	0x0393},  /* GREEK CAPITAL LETTER GAMMA 		   */
+  {"b.Lambda",	0x039B},  /* GREEK CAPITAL LETTER LAMDA 		   */
+  {"b.Omega",	0x03A9},  /* GREEK CAPITAL LETTER OMEGA 		   */
+  {"b.Phi",	0x03A6},  /* GREEK CAPITAL LETTER PHI			   */
+  {"b.Pi",	0x03A0},  /* GREEK CAPITAL LETTER PI			   */
+  {"b.Psi",	0x03A8},  /* GREEK CAPITAL LETTER PSI			   */
+  {"b.Sigma",	0x03A3},  /* GREEK CAPITAL LETTER SIGMA 		   */
+  {"b.Theta",	0x0398},  /* GREEK CAPITAL LETTER THETA 		   */
+  {"b.Upsi",	0x03A5},  /* GREEK CAPITAL LETTER UPSILON		   */
+  {"b.Xi",	0x039E},  /* GREEK CAPITAL LETTER XI			   */
+  {"b.alpha",	0x03B1},  /* GREEK SMALL LETTER ALPHA			   */
+  {"b.beta",	0x03B2},  /* GREEK SMALL LETTER BETA			   */
+  {"b.chi",	0x03C7},  /* GREEK SMALL LETTER CHI			   */
+  {"b.delta",	0x03B3},  /* GREEK SMALL LETTER GAMMA			   */
+  {"b.epsi",	0x03B5},  /* GREEK SMALL LETTER EPSILON 		   */
+  {"b.epsis",	0x03B5},  /* GREEK SMALL LETTER EPSILON 		   */
+  {"b.epsiv",	0x03B5},  /* GREEK SMALL LETTER EPSILON 		   */
+  {"b.eta",	0x03B7},  /* GREEK SMALL LETTER ETA			   */
+  {"b.gamma",	0x03B3},  /* GREEK SMALL LETTER GAMMA			   */
+  {"b.gammad",	0x03DC},  /* GREEK LETTER DIGAMMA			   */
+  {"b.iota",	0x03B9},  /* GREEK SMALL LETTER IOTA			   */
+  {"b.kappa",	0x03BA},  /* GREEK SMALL LETTER KAPPA			   */
+  {"b.kappav",	0x03F0},  /* GREEK KAPPA SYMBOL 			   */
+  {"b.lambda",	0x03BB},  /* GREEK SMALL LETTER LAMDA			   */
+  {"b.mu",	0x03BC},  /* GREEK SMALL LETTER MU			   */
+  {"b.nu",	0x03BD},  /* GREEK SMALL LETTER NU			   */
+  {"b.omega",	0x03CE},  /* GREEK SMALL LETTER OMEGA WITH TONOS	   */
+  {"b.phis",	0x03C6},  /* GREEK SMALL LETTER PHI			   */
+  {"b.phiv",	0x03D5},  /* GREEK PHI SYMBOL				   */
+  {"b.pi",	0x03C0},  /* GREEK SMALL LETTER PI			   */
+  {"b.piv",	0x03D6},  /* GREEK PI SYMBOL				   */
+  {"b.psi",	0x03C8},  /* GREEK SMALL LETTER PSI			   */
+  {"b.rho",	0x03C1},  /* GREEK SMALL LETTER RHO			   */
+  {"b.rhov",	0x03F1},  /* GREEK RHO SYMBOL				   */
+  {"b.sigma",	0x03C3},  /* GREEK SMALL LETTER SIGMA			   */
+  {"b.sigmav",	0x03C2},  /* GREEK SMALL LETTER FINAL SIGMA		   */
+  {"b.tau",	0x03C4},  /* GREEK SMALL LETTER TAU			   */
+  {"b.thetas",	0x03B8},  /* GREEK SMALL LETTER THETA			   */
+  {"b.thetav",	0x03D1},  /* GREEK THETA SYMBOL 			   */
+  {"b.upsi",	0x03C5},  /* GREEK SMALL LETTER UPSILON 		   */
+  {"b.xi",	0x03BE},  /* GREEK SMALL LETTER XI			   */
+  {"b.zeta",	0x03B6},  /* GREEK SMALL LETTER ZETA			   */
+  {"barwed",	0x22BC},  /* NAND					   */
+  {"bcong",	0x224C},  /* ALL EQUAL TO				   */
+  {"bcy",	0x0431},  /* CYRILLIC SMALL LETTER BE			   */
+  {"bdquo",	0x201E},  /* DOUBLE LOW-9 QUOTATION MARK		   */
+  {"becaus",	0x2235},  /* BECAUSE					   */
+  {"bepsi",	0x220D},  /* SMALL CONTAINS AS MEMBER			   */
+  {"bernou",	0x212C},  /* SCRIPT CAPITAL B				   */
+  {"beta",	0x03B2},  /* GREEK SMALL LETTER BETA			   */
+  {"beth",	0x2136},  /* BET SYMBOL 				   */
+  {"bgr",	0x03B2},  /* GREEK SMALL LETTER BETA			   */
+  {"blank",	0x2423},  /* OPEN BOX					   */
+  {"blk12",	0x2592},  /* MEDIUM SHADE				   */
+  {"blk14",	0x2591},  /* LIGHT SHADE				   */
+  {"blk34",	0x2593},  /* DARK SHADE 				   */
+  {"block",	0x2588},  /* FULL BLOCK 				   */
+  {"bottom",	0x22A5},  /* UP TACK					   */
+  {"bowtie",	0x22C8},  /* BOWTIE					   */
+  {"boxDL",	0x2557},  /* BOX DRAWINGS DOUBLE DOWN AND LEFT		   */
+  {"boxDR",	0x2554},  /* BOX DRAWINGS DOUBLE DOWN AND RIGHT 	   */
+  {"boxDl",	0x2556},  /* BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE	   */
+  {"boxDr",	0x2553},  /* BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE	   */
+  {"boxH",	0x2550},  /* BOX DRAWINGS DOUBLE HORIZONTAL		   */
+  {"boxHD",	0x2566},  /* BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL	   */
+  {"boxHU",	0x2569},  /* BOX DRAWINGS DOUBLE UP AND HORIZONTAL	   */
+  {"boxHd",	0x2564},  /* BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE*/
+  {"boxHu",	0x2567},  /* BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE  */
+  {"boxUL",	0x255D},  /* BOX DRAWINGS DOUBLE UP AND LEFT		   */
+  {"boxUR",	0x255A},  /* BOX DRAWINGS DOUBLE UP AND RIGHT		   */
+  {"boxUl",	0x255C},  /* BOX DRAWINGS UP DOUBLE AND LEFT SINGLE	   */
+  {"boxUr",	0x2559},  /* BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE	   */
+  {"boxV",	0x2551},  /* BOX DRAWINGS DOUBLE VERTICAL		   */
+  {"boxVH",	0x256C},  /* BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL   */
+  {"boxVL",	0x2563},  /* BOX DRAWINGS DOUBLE VERTICAL AND LEFT	   */
+  {"boxVR",	0x2560},  /* BOX DRAWINGS DOUBLE VERTICAL AND RIGHT	   */
+  {"boxVh",	0x256B},  /* BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SI*/
+  {"boxVl",	0x2562},  /* BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE  */
+  {"boxVr",	0x255F},  /* BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE */
+  {"boxdL",	0x2555},  /* BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE	   */
+  {"boxdR",	0x2552},  /* BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE	   */
+  {"boxdl",	0x2510},  /* BOX DRAWINGS LIGHT DOWN AND LEFT		   */
+  {"boxdr",	0x250C},  /* BOX DRAWINGS LIGHT DOWN AND RIGHT		   */
+  {"boxh",	0x2500},  /* BOX DRAWINGS LIGHT HORIZONTAL		   */
+  {"boxhD",	0x2565},  /* BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE*/
+  {"boxhU",	0x2568},  /* BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE  */
+  {"boxhd",	0x252C},  /* BOX DRAWINGS LIGHT DOWN AND HORIZONTAL	   */
+  {"boxhu",	0x2534},  /* BOX DRAWINGS LIGHT UP AND HORIZONTAL	   */
+  {"boxuL",	0x255B},  /* BOX DRAWINGS UP SINGLE AND LEFT DOUBLE	   */
+  {"boxuR",	0x2558},  /* BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE	   */
+  {"boxul",	0x2518},  /* BOX DRAWINGS LIGHT UP AND LEFT		   */
+  {"boxur",	0x2514},  /* BOX DRAWINGS LIGHT UP AND RIGHT		   */
+  {"boxv",	0x2502},  /* BOX DRAWINGS LIGHT VERTICAL		   */
+  {"boxvH",	0x256A},  /* BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DO*/
+  {"boxvL",	0x2561},  /* BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE  */
+  {"boxvR",	0x255E},  /* BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE */
+  {"boxvh",	0x253C},  /* BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL    */
+  {"boxvl",	0x2524},  /* BOX DRAWINGS LIGHT VERTICAL AND LEFT	   */
+  {"boxvr",	0x251C},  /* BOX DRAWINGS LIGHT VERTICAL AND RIGHT	   */
+  {"bprime",	0x2035},  /* REVERSED PRIME				   */
+  {"breve",	0x02D8},  /* BREVE					   */
+  {"brkbar",	0x00A6},  /* obsolete synonym for "brvbar" 0x00A6	   */
+  {"brvbar",	0x00A6},  /* BROKEN BAR 				   */
+  {"bsim",	0x223D},  /* REVERSED TILDE				   */
+  {"bsime",	0x22CD},  /* REVERSED TILDE EQUALS			   */
+  {"bsol",	0x005C},  /* REVERSE SOLIDUS				   */
+  {"bull",	0x2022},  /* BULLET					   */
+  {"bump",	0x224E},  /* GEOMETRICALLY EQUIVALENT TO		   */
+  {"bumpe",	0x224F},  /* DIFFERENCE BETWEEN 			   */
+  {"cacute",	0x0107},  /* LATIN SMALL LETTER C WITH ACUTE		   */
+  {"cap",	0x2229},  /* INTERSECTION				   */
+  {"caret",	0x2041},  /* CARET INSERTION POINT			   */
+  {"caron",	0x02C7},  /* CARON					   */
+  {"ccaron",	0x010D},  /* LATIN SMALL LETTER C WITH CARON		   */
+  {"ccedil",	0x00E7},  /* LATIN SMALL LETTER C WITH CEDILLA		   */
+  {"ccirc",	0x0109},  /* LATIN SMALL LETTER C WITH CIRCUMFLEX	   */
+  {"cdot",	0x010B},  /* LATIN SMALL LETTER C WITH DOT ABOVE	   */
+  {"cedil",	0x00B8},  /* CEDILLA					   */
+  {"cent",	0x00A2},  /* CENT SIGN					   */
+  {"chcy",	0x0447},  /* CYRILLIC SMALL LETTER CHE			   */
+  {"check",	0x2713},  /* CHECK MARK 				   */
+  {"chi",	0x03C7},  /* GREEK SMALL LETTER CHI			   */
+  {"cir",	0x25CB},  /* WHITE CIRCLE				   */
+  {"circ",	0x02C6},  /* MODIFIER LETTER CIRCUMFLEX ACCENT		   */
+  {"cire",	0x2257},  /* RING EQUAL TO				   */
+  {"clubs",	0x2663},  /* BLACK CLUB SUIT				   */
+  {"colon",	0x003A},  /* COLON					   */
+  {"colone",	0x2254},  /* COLON EQUALS				   */
+  {"comma",	0x002C},  /* COMMA					   */
+  {"commat",	0x0040},  /* COMMERCIAL AT				   */
+  {"comp",	0x2201},  /* COMPLEMENT 				   */
+  {"compfn",	0x2218},  /* RING OPERATOR				   */
+  {"cong",	0x2245},  /* APPROXIMATELY EQUAL TO			   */
+  {"conint",	0x222E},  /* CONTOUR INTEGRAL				   */
+  {"coprod",	0x2210},  /* N-ARY COPRODUCT				   */
+  {"copy",	0x00A9},  /* COPYRIGHT SIGN				   */
+  {"copysr",	0x2117},  /* SOUND RECORDING COPYRIGHT			   */
+  {"crarr",	0x21B5},  /* DOWNWARDS ARROW WITH CORNER LEFTWARDS	   */
+  {"cross",	0x2717},  /* BALLOT X					   */
+  {"cuepr",	0x22DE},  /* EQUAL TO OR PRECEDES			   */
+  {"cuesc",	0x22DF},  /* EQUAL TO OR SUCCEEDS			   */
+  {"cularr",	0x21B6},  /* ANTICLOCKWISE TOP SEMICIRCLE ARROW 	   */
+  {"cup",	0x222A},  /* UNION					   */
+  {"cupre",	0x227C},  /* PRECEDES OR EQUAL TO			   */
+  {"curarr",	0x21B7},  /* CLOCKWISE TOP SEMICIRCLE ARROW		   */
+  {"curren",	0x00A4},  /* CURRENCY SIGN				   */
+  {"cuvee",	0x22CE},  /* CURLY LOGICAL OR				   */
+  {"cuwed",	0x22CF},  /* CURLY LOGICAL AND				   */
+  {"dArr",	0x21D3},  /* DOWNWARDS DOUBLE ARROW			   */
+  {"dagger",	0x2020},  /* DAGGER					   */
+  {"daleth",	0x2138},  /* DALET SYMBOL				   */
+  {"darr",	0x2193},  /* DOWNWARDS ARROW				   */
+  {"darr2",	0x21CA},  /* DOWNWARDS PAIRED ARROWS			   */
+  {"dash",	0x2010},  /* HYPHEN					   */
+  {"dashv",	0x22A3},  /* LEFT TACK					   */
+  {"dblac",	0x02DD},  /* DOUBLE ACUTE ACCENT			   */
+  {"dcaron",	0x010F},  /* LATIN SMALL LETTER D WITH CARON		   */
+  {"dcy",	0x0434},  /* CYRILLIC SMALL LETTER DE			   */
+  {"deg",	0x00B0},  /* DEGREE SIGN				   */
+  {"delta",	0x03B4},  /* GREEK SMALL LETTER DELTA			   */
+  {"dgr",	0x03B4},  /* GREEK SMALL LETTER DELTA			   */
+  {"dharl",	0x21C3},  /* DOWNWARDS HARPOON WITH BARB LEFTWARDS	   */
+  {"dharr",	0x21C2},  /* DOWNWARDS HARPOON WITH BARB RIGHTWARDS	   */
+  {"diam",	0x22C4},  /* DIAMOND OPERATOR				   */
+  {"diams",	0x2666},  /* BLACK DIAMOND SUIT 			   */
+  {"die",	0x00A8},  /* DIAERESIS					   */
+  {"divide",	0x00F7},  /* DIVISION SIGN				   */
+  {"divonx",	0x22C7},  /* DIVISION TIMES				   */
+  {"djcy",	0x0452},  /* CYRILLIC SMALL LETTER DJE			   */
+  {"dlarr",	0x2199},  /* SOUTH WEST ARROW				   */
+  {"dlcorn",	0x231E},  /* BOTTOM LEFT CORNER 			   */
+  {"dlcrop",	0x230D},  /* BOTTOM LEFT CROP				   */
+  {"dollar",	0x0024},  /* DOLLAR SIGN				   */
+  {"dot",	0x02D9},  /* DOT ABOVE					   */
+  {"drarr",	0x2198},  /* SOUTH EAST ARROW				   */
+  {"drcorn",	0x231F},  /* BOTTOM RIGHT CORNER			   */
+  {"drcrop",	0x230C},  /* BOTTOM RIGHT CROP				   */
+  {"dscy",	0x0455},  /* CYRILLIC SMALL LETTER DZE			   */
+  {"dstrok",	0x0111},  /* LATIN SMALL LETTER D WITH STROKE		   */
+  {"dtri",	0x25BF},  /* WHITE DOWN-POINTING SMALL TRIANGLE 	   */
+  {"dtrif",	0x25BE},  /* BLACK DOWN-POINTING SMALL TRIANGLE 	   */
+  {"dzcy",	0x045F},  /* CYRILLIC SMALL LETTER DZHE 		   */
+  {"eDot",	0x2251},  /* GEOMETRICALLY EQUAL TO			   */
+  {"eacgr",	0x03AD},  /* GREEK SMALL LETTER EPSILON WITH TONOS	   */
+  {"eacute",	0x00E9},  /* LATIN SMALL LETTER E WITH ACUTE		   */
+  {"ecaron",	0x011B},  /* LATIN SMALL LETTER E WITH CARON		   */
+  {"ecir",	0x2256},  /* RING IN EQUAL TO				   */
+  {"ecirc",	0x00EA},  /* LATIN SMALL LETTER E WITH CIRCUMFLEX	   */
+  {"ecolon",	0x2255},  /* EQUALS COLON				   */
+  {"ecy",	0x044D},  /* CYRILLIC SMALL LETTER E			   */
+  {"edot",	0x0117},  /* LATIN SMALL LETTER E WITH DOT ABOVE	   */
+  {"eeacgr",	0x03AE},  /* GREEK SMALL LETTER ETA WITH TONOS		   */
+  {"eegr",	0x03B7},  /* GREEK SMALL LETTER ETA			   */
+  {"efDot",	0x2252},  /* APPROXIMATELY EQUAL TO OR THE IMAGE OF	   */
+  {"egr",	0x03B5},  /* GREEK SMALL LETTER EPSILON 		   */
+  {"egrave",	0x00E8},  /* LATIN SMALL LETTER E WITH GRAVE		   */
+  {"egs",	0x22DD},  /* EQUAL TO OR GREATER-THAN			   */
+  {"ell",	0x2113},  /* SCRIPT SMALL L				   */
+  {"els",	0x22DC},  /* EQUAL TO OR LESS-THAN			   */
+  {"emacr",	0x0113},  /* LATIN SMALL LETTER E WITH MACRON		   */
+  {"emdash",	0x2014},  /* obsolete synonym for "mdash" 0x2014	   */
+  {"empty",	0x2205},  /* EMPTY SET					   */
+  {"emsp",	0x2003},  /* EM SPACE					   */
+  {"emsp13",	0x2004},  /* THREE-PER-EM SPACE 			   */
+  {"emsp14",	0x2005},  /* FOUR-PER-EM SPACE				   */
+  {"endash",	0x2013},  /* obsolete synonym for "ndash" 0x2013	   */
+  {"eng",	0x014B},  /* LATIN SMALL LETTER ENG			   */
+  {"ensp",	0x2002},  /* EN SPACE					   */
+  {"eogon",	0x0119},  /* LATIN SMALL LETTER E WITH OGONEK		   */
+  {"epsi",	0x03B5},  /* GREEK SMALL LETTER EPSILON 		   */
+  {"epsilon",	0x03B5},  /* GREEK SMALL LETTER EPSILON 		   */
+  {"epsis",	0x220A},  /* SMALL ELEMENT OF				   */
+  {"equals",	0x003D},  /* EQUALS SIGN				   */
+  {"equiv",	0x2261},  /* IDENTICAL TO				   */
+  {"erDot",	0x2253},  /* IMAGE OF OR APPROXIMATELY EQUAL TO 	   */
+  {"esdot",	0x2250},  /* APPROACHES THE LIMIT			   */
+  {"eta",	0x03B7},  /* GREEK SMALL LETTER ETA			   */
+  {"eth",	0x00F0},  /* LATIN SMALL LETTER ETH			   */
+  {"euml",	0x00EB},  /* LATIN SMALL LETTER E WITH DIAERESIS	   */
+  {"excl",	0x0021},  /* EXCLAMATION MARK				   */
+  {"exist",	0x2203},  /* THERE EXISTS				   */
+  {"fcy",	0x0444},  /* CYRILLIC SMALL LETTER EF			   */
+  {"female",	0x2640},  /* FEMALE SIGN				   */
+  {"ffilig",	0xFB03},  /* LATIN SMALL LIGATURE FFI			   */
+  {"fflig",	0xFB00},  /* LATIN SMALL LIGATURE FF			   */
+  {"ffllig",	0xFB04},  /* LATIN SMALL LIGATURE FFL			   */
+  {"filig",	0xFB01},  /* LATIN SMALL LIGATURE FI			   */
+  {"flat",	0x266D},  /* MUSIC FLAT SIGN				   */
+  {"fllig",	0xFB02},  /* LATIN SMALL LIGATURE FL			   */
+  {"fnof",	0x0192},  /* LATIN SMALL LETTER F WITH HOOK		   */
+  {"forall",	0x2200},  /* FOR ALL					   */
+  {"fork",	0x22D4},  /* PITCHFORK					   */
+  {"frac12",	0x00BD},  /* VULGAR FRACTION ONE HALF			   */
+  {"frac13",	0x2153},  /* VULGAR FRACTION ONE THIRD			   */
+  {"frac14",	0x00BC},  /* VULGAR FRACTION ONE QUARTER		   */
+  {"frac15",	0x2155},  /* VULGAR FRACTION ONE FIFTH			   */
+  {"frac16",	0x2159},  /* VULGAR FRACTION ONE SIXTH			   */
+  {"frac18",	0x215B},  /* VULGAR FRACTION ONE EIGHTH 		   */
+  {"frac23",	0x2154},  /* VULGAR FRACTION TWO THIRDS 		   */
+  {"frac25",	0x2156},  /* VULGAR FRACTION TWO FIFTHS 		   */
+  {"frac34",	0x00BE},  /* VULGAR FRACTION THREE QUARTERS		   */
+  {"frac35",	0x2157},  /* VULGAR FRACTION THREE FIFTHS		   */
+  {"frac38",	0x215C},  /* VULGAR FRACTION THREE EIGHTHS		   */
+  {"frac45",	0x2158},  /* VULGAR FRACTION FOUR FIFTHS		   */
+  {"frac56",	0x215A},  /* VULGAR FRACTION FIVE SIXTHS		   */
+  {"frac58",	0x215D},  /* VULGAR FRACTION FIVE EIGHTHS		   */
+  {"frac78",	0x215E},  /* VULGAR FRACTION SEVEN EIGHTHS		   */
+  {"frasl",	0x2044},  /* FRACTION SLASH				   */
+  {"frown",	0x2322},  /* FROWN					   */
+  {"gE",	0x2267},  /* GREATER-THAN OVER EQUAL TO 		   */
+  {"gacute",	0x01F5},  /* LATIN SMALL LETTER G WITH ACUTE		   */
+  {"gamma",	0x03B3},  /* GREEK SMALL LETTER GAMMA			   */
+  {"gammad",	0x03DC},  /* GREEK LETTER DIGAMMA			   */
+  {"gbreve",	0x011F},  /* LATIN SMALL LETTER G WITH BREVE		   */
+  {"gcedil",	0x0123},  /* LATIN SMALL LETTER G WITH CEDILLA		   */
+  {"gcirc",	0x011D},  /* LATIN SMALL LETTER G WITH CIRCUMFLEX	   */
+  {"gcy",	0x0433},  /* CYRILLIC SMALL LETTER GHE			   */
+  {"gdot",	0x0121},  /* LATIN SMALL LETTER G WITH DOT ABOVE	   */
+  {"ge",	0x2265},  /* GREATER-THAN OR EQUAL TO			   */
+  {"gel",	0x22DB},  /* GREATER-THAN EQUAL TO OR LESS-THAN 	   */
+  {"ges",	0x2265},  /* GREATER-THAN OR EQUAL TO			   */
+  {"ggr",	0x03B3},  /* GREEK SMALL LETTER GAMMA			   */
+  {"gimel",	0x2137},  /* GIMEL SYMBOL				   */
+  {"gjcy",	0x0453},  /* CYRILLIC SMALL LETTER GJE			   */
+  {"gl",	0x2277},  /* GREATER-THAN OR LESS-THAN			   */
+  {"gnE",	0x2269},  /* GREATER-THAN BUT NOT EQUAL TO		   */
+  {"gne",	0x2269},  /* GREATER-THAN BUT NOT EQUAL TO		   */
+  {"gnsim",	0x22E7},  /* GREATER-THAN BUT NOT EQUIVALENT TO 	   */
+  {"grave",	0x0060},  /* GRAVE ACCENT				   */
+  {"gsdot",	0x22D7},  /* GREATER-THAN WITH DOT			   */
+  {"gsim",	0x2273},  /* GREATER-THAN OR EQUIVALENT TO		   */
+  {"gt",	0x003E},  /* GREATER-THAN SIGN				   */
+  {"gvnE",	0x2269},  /* GREATER-THAN BUT NOT EQUAL TO		   */
+  {"hArr",	0x21D4},  /* LEFT RIGHT DOUBLE ARROW			   */
+  {"hairsp",	0x200A},  /* HAIR SPACE 				   */
+  {"half",	0x00BD},  /* VULGAR FRACTION ONE HALF			   */
+  {"hamilt",	0x210B},  /* SCRIPT CAPITAL H				   */
+  {"hardcy",	0x044A},  /* CYRILLIC SMALL LETTER HARD SIGN		   */
+  {"harr",	0x2194},  /* LEFT RIGHT ARROW				   */
+  {"harrw",	0x21AD},  /* LEFT RIGHT WAVE ARROW			   */
+  {"hcirc",	0x0125},  /* LATIN SMALL LETTER H WITH CIRCUMFLEX	   */
+  {"hearts",	0x2665},  /* BLACK HEART SUIT				   */
+  {"hellip",	0x2026},  /* HORIZONTAL ELLIPSIS			   */
+  {"hibar",	0x00AF},  /* obsolete synonym for "macr" 0x00AF 	   */
+  {"horbar",	0x2015},  /* HORIZONTAL BAR				   */
+  {"hstrok",	0x0127},  /* LATIN SMALL LETTER H WITH STROKE		   */
+  {"hybull",	0x2043},  /* HYPHEN BULLET				   */
+  {"hyphen",	0x002D},  /* HYPHEN-MINUS				   */
+  {"iacgr",	0x03AF},  /* GREEK SMALL LETTER IOTA WITH TONOS 	   */
+  {"iacute",	0x00ED},  /* LATIN SMALL LETTER I WITH ACUTE		   */
+  {"icirc",	0x00EE},  /* LATIN SMALL LETTER I WITH CIRCUMFLEX	   */
+  {"icy",	0x0438},  /* CYRILLIC SMALL LETTER I			   */
+  {"idiagr",	0x0390},  /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TON*/
+  {"idigr",	0x03CA},  /* GREEK SMALL LETTER IOTA WITH DIALYTIKA	   */
+  {"iecy",	0x0435},  /* CYRILLIC SMALL LETTER IE			   */
+  {"iexcl",	0x00A1},  /* INVERTED EXCLAMATION MARK			   */
+  {"iff",	0x21D4},  /* LEFT RIGHT DOUBLE ARROW			   */
+  {"igr",	0x03B9},  /* GREEK SMALL LETTER IOTA			   */
+  {"igrave",	0x00EC},  /* LATIN SMALL LETTER I WITH GRAVE		   */
+  {"ijlig",	0x0133},  /* LATIN SMALL LIGATURE IJ			   */
+  {"imacr",	0x012B},  /* LATIN SMALL LETTER I WITH MACRON		   */
+  {"image",	0x2111},  /* BLACK-LETTER CAPITAL I			   */
+  {"incare",	0x2105},  /* CARE OF					   */
+  {"infin",	0x221E},  /* INFINITY					   */
+  {"inodot",	0x0131},  /* LATIN SMALL LETTER DOTLESS I		   */
+  {"int",	0x222B},  /* INTEGRAL					   */
+  {"intcal",	0x22BA},  /* INTERCALATE				   */
+  {"iocy",	0x0451},  /* CYRILLIC SMALL LETTER IO			   */
+  {"iogon",	0x012F},  /* LATIN SMALL LETTER I WITH OGONEK		   */
+  {"iota",	0x03B9},  /* GREEK SMALL LETTER IOTA			   */
+  {"iquest",	0x00BF},  /* INVERTED QUESTION MARK			   */
+  {"isin",	0x2208},  /* ELEMENT OF 				   */
+  {"itilde",	0x0129},  /* LATIN SMALL LETTER I WITH TILDE		   */
+  {"iukcy",	0x0456},  /* CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I*/
+  {"iuml",	0x00EF},  /* LATIN SMALL LETTER I WITH DIAERESIS	   */
+  {"jcirc",	0x0135},  /* LATIN SMALL LETTER J WITH CIRCUMFLEX	   */
+  {"jcy",	0x0439},  /* CYRILLIC SMALL LETTER SHORT I		   */
+  {"jsercy",	0x0458},  /* CYRILLIC SMALL LETTER JE			   */
+  {"jukcy",	0x0454},  /* CYRILLIC SMALL LETTER UKRAINIAN IE 	   */
+  {"kappa",	0x03BA},  /* GREEK SMALL LETTER KAPPA			   */
+  {"kappav",	0x03F0},  /* GREEK KAPPA SYMBOL 			   */
+  {"kcedil",	0x0137},  /* LATIN SMALL LETTER K WITH CEDILLA		   */
+  {"kcy",	0x043A},  /* CYRILLIC SMALL LETTER KA			   */
+  {"kgr",	0x03BA},  /* GREEK SMALL LETTER KAPPA			   */
+  {"kgreen",	0x0138},  /* LATIN SMALL LETTER KRA			   */
+  {"khcy",	0x0445},  /* CYRILLIC SMALL LETTER HA			   */
+  {"khgr",	0x03C7},  /* GREEK SMALL LETTER CHI			   */
+  {"kjcy",	0x045C},  /* CYRILLIC SMALL LETTER KJE			   */
+  {"lAarr",	0x21DA},  /* LEFTWARDS TRIPLE ARROW			   */
+  {"lArr",	0x21D0},  /* LEFTWARDS DOUBLE ARROW			   */
+  {"lE",	0x2266},  /* LESS-THAN OVER EQUAL TO			   */
+  {"lacute",	0x013A},  /* LATIN SMALL LETTER L WITH ACUTE		   */
+  {"lagran",	0x2112},  /* SCRIPT CAPITAL L				   */
+  {"lambda",	0x03BB},  /* GREEK SMALL LETTER LAMDA			   */
+  {"lang",	0x2329},  /* LEFT-POINTING ANGLE BRACKET		   */
+  {"laquo",	0x00AB},  /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK	   */
+  {"larr",	0x2190},  /* LEFTWARDS ARROW				   */
+  {"larr2",	0x21C7},  /* LEFTWARDS PAIRED ARROWS			   */
+  {"larrhk",	0x21A9},  /* LEFTWARDS ARROW WITH HOOK			   */
+  {"larrlp",	0x21AB},  /* LEFTWARDS ARROW WITH LOOP			   */
+  {"larrtl",	0x21A2},  /* LEFTWARDS ARROW WITH TAIL			   */
+  {"lcaron",	0x013E},  /* LATIN SMALL LETTER L WITH CARON		   */
+  {"lcedil",	0x013C},  /* LATIN SMALL LETTER L WITH CEDILLA		   */
+  {"lceil",	0x2308},  /* LEFT CEILING				   */
+  {"lcub",	0x007B},  /* LEFT CURLY BRACKET 			   */
+  {"lcy",	0x043B},  /* CYRILLIC SMALL LETTER EL			   */
+  {"ldot",	0x22D6},  /* LESS-THAN WITH DOT 			   */
+  {"ldquo",	0x201C},  /* LEFT DOUBLE QUOTATION MARK 		   */
+  {"ldquor",	0x201E},  /* DOUBLE LOW-9 QUOTATION MARK		   */
+  {"le",	0x2264},  /* LESS-THAN OR EQUAL TO			   */
+  {"leg",	0x22DA},  /* LESS-THAN EQUAL TO OR GREATER-THAN 	   */
+  {"les",	0x2264},  /* LESS-THAN OR EQUAL TO			   */
+  {"lfloor",	0x230A},  /* LEFT FLOOR 				   */
+  {"lg",	0x2276},  /* LESS-THAN OR GREATER-THAN			   */
+  {"lgr",	0x03BB},  /* GREEK SMALL LETTER LAMDA			   */
+  {"lhard",	0x21BD},  /* LEFTWARDS HARPOON WITH BARB DOWNWARDS	   */
+  {"lharu",	0x21BC},  /* LEFTWARDS HARPOON WITH BARB UPWARDS	   */
+  {"lhblk",	0x2584},  /* LOWER HALF BLOCK				   */
+  {"ljcy",	0x0459},  /* CYRILLIC SMALL LETTER LJE			   */
+  {"lmidot",	0x0140},  /* LATIN SMALL LETTER L WITH MIDDLE DOT	   */
+  {"lnE",	0x2268},  /* LESS-THAN BUT NOT EQUAL TO 		   */
+  {"lne",	0x2268},  /* LESS-THAN BUT NOT EQUAL TO 		   */
+  {"lnsim",	0x22E6},  /* LESS-THAN BUT NOT EQUIVALENT TO		   */
+  {"lowast",	0x2217},  /* ASTERISK OPERATOR				   */
+  {"lowbar",	0x005F},  /* LOW LINE					   */
+  {"loz",	0x25CA},  /* LOZENGE					   */
+  {"loz",	0x2727},  /* WHITE FOUR POINTED STAR			   */
+  {"lozf",	0x2726},  /* BLACK FOUR POINTED STAR			   */
+  {"lpar",	0x0028},  /* LEFT PARENTHESIS				   */
+  {"lrarr2",	0x21C6},  /* LEFTWARDS ARROW OVER RIGHTWARDS ARROW	   */
+  {"lrhar2",	0x21CB},  /* LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON	   */
+  {"lrm",	0x200E},  /* LEFT-TO-RIGHT MARK 			   */
+  {"lsaquo",	0x2039},  /* SINGLE LEFT-POINTING ANGLE QUOTATION MARK	   */
+  {"lsh",	0x21B0},  /* UPWARDS ARROW WITH TIP LEFTWARDS		   */
+  {"lsim",	0x2272},  /* LESS-THAN OR EQUIVALENT TO 		   */
+  {"lsqb",	0x005B},  /* LEFT SQUARE BRACKET			   */
+  {"lsquo",	0x2018},  /* LEFT SINGLE QUOTATION MARK 		   */
+  {"lsquor",	0x201A},  /* SINGLE LOW-9 QUOTATION MARK		   */
+  {"lstrok",	0x0142},  /* LATIN SMALL LETTER L WITH STROKE		   */
+  {"lt",	0x003C},  /* LESS-THAN SIGN				   */
+  {"lthree",	0x22CB},  /* LEFT SEMIDIRECT PRODUCT			   */
+  {"ltimes",	0x22C9},  /* LEFT NORMAL FACTOR SEMIDIRECT PRODUCT	   */
+  {"ltri",	0x25C3},  /* WHITE LEFT-POINTING SMALL TRIANGLE 	   */
+  {"ltrie",	0x22B4},  /* NORMAL SUBGROUP OF OR EQUAL TO		   */
+  {"ltrif",	0x25C2},  /* BLACK LEFT-POINTING SMALL TRIANGLE 	   */
+  {"lvnE",	0x2268},  /* LESS-THAN BUT NOT EQUAL TO 		   */
+  {"macr",	0x00AF},  /* MACRON					   */
+  {"male",	0x2642},  /* MALE SIGN					   */
+  {"malt",	0x2720},  /* MALTESE CROSS				   */
+  {"map",	0x21A6},  /* RIGHTWARDS ARROW FROM BAR			   */
+  {"marker",	0x25AE},  /* BLACK VERTICAL RECTANGLE			   */
+  {"mcy",	0x043C},  /* CYRILLIC SMALL LETTER EM			   */
+  {"mdash",	0x2014},  /* EM DASH					   */
+  {"mgr",	0x03BC},  /* GREEK SMALL LETTER MU			   */
+  {"micro",	0x00B5},  /* MICRO SIGN 				   */
+  {"mid",	0x2223},  /* DIVIDES					   */
+  {"middot",	0x00B7},  /* MIDDLE DOT 				   */
+  {"minus",	0x2212},  /* MINUS SIGN 				   */
+  {"minusb",	0x229F},  /* SQUARED MINUS				   */
+  {"mldr",	0x2026},  /* HORIZONTAL ELLIPSIS			   */
+  {"mnplus",	0x2213},  /* MINUS-OR-PLUS SIGN 			   */
+  {"models",	0x22A7},  /* MODELS					   */
+  {"mu",	0x03BC},  /* GREEK SMALL LETTER MU			   */
+  {"mumap",	0x22B8},  /* MULTIMAP					   */
+  {"nVDash",	0x22AF},  /* NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNS*/
+  {"nVdash",	0x22AE},  /* DOES NOT FORCE				   */
+  {"nabla",	0x2207},  /* NABLA					   */
+  {"nacute",	0x0144},  /* LATIN SMALL LETTER N WITH ACUTE		   */
+  {"nap",	0x2249},  /* NOT ALMOST EQUAL TO			   */
+  {"napos",	0x0149},  /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE   */
+  {"natur",	0x266E},  /* MUSIC NATURAL SIGN 			   */
+  {"nbsp",	0x00A0},  /* NO-BREAK SPACE				   */
+  {"ncaron",	0x0148},  /* LATIN SMALL LETTER N WITH CARON		   */
+  {"ncedil",	0x0146},  /* LATIN SMALL LETTER N WITH CEDILLA		   */
+  {"ncong",	0x2247},  /* NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO   */
+  {"ncy",	0x043D},  /* CYRILLIC SMALL LETTER EN			   */
+  {"ndash",	0x2013},  /* EN DASH					   */
+  {"ne",	0x2260},  /* NOT EQUAL TO				   */
+  {"nearr",	0x2197},  /* NORTH EAST ARROW				   */
+  {"nequiv",	0x2262},  /* NOT IDENTICAL TO				   */
+  {"nexist",	0x2204},  /* THERE DOES NOT EXIST			   */
+  {"nge",	0x2271},  /* NEITHER GREATER-THAN NOR EQUAL TO		   */
+  {"nges",	0x2271},  /* NEITHER GREATER-THAN NOR EQUAL TO		   */
+  {"ngr",	0x03BD},  /* GREEK SMALL LETTER NU			   */
+  {"ngt",	0x226F},  /* NOT GREATER-THAN				   */
+  {"nhArr",	0x21CE},  /* LEFT RIGHT DOUBLE ARROW WITH STROKE	   */
+  {"nharr",	0x21AE},  /* LEFT RIGHT ARROW WITH STROKE		   */
+  {"ni",	0x220B},  /* CONTAINS AS MEMBER 			   */
+  {"njcy",	0x045A},  /* CYRILLIC SMALL LETTER NJE			   */
+  {"nlArr",	0x21CD},  /* LEFTWARDS DOUBLE ARROW WITH STROKE 	   */
+  {"nlarr",	0x219A},  /* LEFTWARDS ARROW WITH STROKE		   */
+  {"nldr",	0x2025},  /* TWO DOT LEADER				   */
+  {"nle",	0x2270},  /* NEITHER LESS-THAN NOR EQUAL TO		   */
+  {"nles",	0x2270},  /* NEITHER LESS-THAN NOR EQUAL TO		   */
+  {"nlt",	0x226E},  /* NOT LESS-THAN				   */
+  {"nltri",	0x22EA},  /* NOT NORMAL SUBGROUP OF			   */
+  {"nltrie",	0x22EC},  /* NOT NORMAL SUBGROUP OF OR EQUAL TO 	   */
+  {"nmid",	0x2224},  /* DOES NOT DIVIDE				   */
+  {"not",	0x00AC},  /* NOT SIGN					   */
+  {"notin",	0x2209},  /* NOT AN ELEMENT OF				   */
+  {"npar",	0x2226},  /* NOT PARALLEL TO				   */
+  {"npr",	0x2280},  /* DOES NOT PRECEDE				   */
+  {"npre",	0x22E0},  /* DOES NOT PRECEDE OR EQUAL			   */
+  {"nrArr",	0x21CF},  /* RIGHTWARDS DOUBLE ARROW WITH STROKE	   */
+  {"nrarr",	0x219B},  /* RIGHTWARDS ARROW WITH STROKE		   */
+  {"nrtri",	0x22EB},  /* DOES NOT CONTAIN AS NORMAL SUBGROUP	   */
+  {"nrtrie",	0x22ED},  /* DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL  */
+  {"nsc",	0x2281},  /* DOES NOT SUCCEED				   */
+  {"nsce",	0x22E1},  /* DOES NOT SUCCEED OR EQUAL			   */
+  {"nsim",	0x2241},  /* NOT TILDE					   */
+  {"nsime",	0x2244},  /* NOT ASYMPTOTICALLY EQUAL TO		   */
+  {"nspar",	0x2226},  /* NOT PARALLEL TO				   */
+  {"nsub",	0x2284},  /* NOT A SUBSET OF				   */
+  {"nsubE",	0x2288},  /* NEITHER A SUBSET OF NOR EQUAL TO		   */
+  {"nsube",	0x2288},  /* NEITHER A SUBSET OF NOR EQUAL TO		   */
+  {"nsup",	0x2285},  /* NOT A SUPERSET OF				   */
+  {"nsupE",	0x2289},  /* NEITHER A SUPERSET OF NOR EQUAL TO 	   */
+  {"nsupe",	0x2289},  /* NEITHER A SUPERSET OF NOR EQUAL TO 	   */
+  {"ntilde",	0x00F1},  /* LATIN SMALL LETTER N WITH TILDE		   */
+  {"nu",	0x03BD},  /* GREEK SMALL LETTER NU			   */
+  {"num",	0x0023},  /* NUMBER SIGN				   */
+  {"numero",	0x2116},  /* NUMERO SIGN				   */
+  {"numsp",	0x2007},  /* FIGURE SPACE				   */
+  {"nvDash",	0x22AD},  /* NOT TRUE					   */
+  {"nvdash",	0x22AC},  /* DOES NOT PROVE				   */
+  {"nwarr",	0x2196},  /* NORTH WEST ARROW				   */
+  {"oS",	0x24C8},  /* CIRCLED LATIN CAPITAL LETTER S		   */
+  {"oacgr",	0x03CC},  /* GREEK SMALL LETTER OMICRON WITH TONOS	   */
+  {"oacute",	0x00F3},  /* LATIN SMALL LETTER O WITH ACUTE		   */
+  {"oast",	0x229B},  /* CIRCLED ASTERISK OPERATOR			   */
+  {"ocir",	0x229A},  /* CIRCLED RING OPERATOR			   */
+  {"ocirc",	0x00F4},  /* LATIN SMALL LETTER O WITH CIRCUMFLEX	   */
+  {"ocy",	0x043E},  /* CYRILLIC SMALL LETTER O			   */
+  {"odash",	0x229D},  /* CIRCLED DASH				   */
+  {"odblac",	0x0151},  /* LATIN SMALL LETTER O WITH DOUBLE ACUTE	   */
+  {"odot",	0x2299},  /* CIRCLED DOT OPERATOR			   */
+  {"oelig",	0x0153},  /* LATIN SMALL LIGATURE OE			   */
+  {"ogon",	0x02DB},  /* OGONEK					   */
+  {"ogr",	0x03BF},  /* GREEK SMALL LETTER OMICRON 		   */
+  {"ograve",	0x00F2},  /* LATIN SMALL LETTER O WITH GRAVE		   */
+  {"ohacgr",	0x03CE},  /* GREEK SMALL LETTER OMEGA WITH TONOS	   */
+  {"ohgr",	0x03C9},  /* GREEK SMALL LETTER OMEGA			   */
+  {"ohm",	0x2126},  /* OHM SIGN					   */
+  {"olarr",	0x21BA},  /* ANTICLOCKWISE OPEN CIRCLE ARROW		   */
+  {"oline",	0x203E},  /* OVERLINE					   */
+  {"omacr",	0x014D},  /* LATIN SMALL LETTER O WITH MACRON		   */
+  {"omega",	0x03C9},  /* GREEK SMALL LETTER OMEGA			   */
+  {"omicron",	0x03BF},  /* GREEK SMALL LETTER OMICRON 		   */
+  {"ominus",	0x2296},  /* CIRCLED MINUS				   */
+  {"oplus",	0x2295},  /* CIRCLED PLUS				   */
+  {"or",	0x2228},  /* LOGICAL OR 				   */
+  {"orarr",	0x21BB},  /* CLOCKWISE OPEN CIRCLE ARROW		   */
+  {"order",	0x2134},  /* SCRIPT SMALL O				   */
+  {"ordf",	0x00AA},  /* FEMININE ORDINAL INDICATOR 		   */
+  {"ordm",	0x00BA},  /* MASCULINE ORDINAL INDICATOR		   */
+  {"oslash",	0x00F8},  /* LATIN SMALL LETTER O WITH STROKE		   */
+  {"osol",	0x2298},  /* CIRCLED DIVISION SLASH			   */
+  {"otilde",	0x00F5},  /* LATIN SMALL LETTER O WITH TILDE		   */
+  {"otimes",	0x2297},  /* CIRCLED TIMES				   */
+  {"ouml",	0x00F6},  /* LATIN SMALL LETTER O WITH DIAERESIS	   */
+  {"par",	0x2225},  /* PARALLEL TO				   */
+  {"para",	0x00B6},  /* PILCROW SIGN				   */
+  {"part",	0x2202},  /* PARTIAL DIFFERENTIAL			   */
+  {"pcy",	0x043F},  /* CYRILLIC SMALL LETTER PE			   */
+  {"percnt",	0x0025},  /* PERCENT SIGN				   */
+  {"period",	0x002E},  /* FULL STOP					   */
+  {"permil",	0x2030},  /* PER MILLE SIGN				   */
+  {"perp",	0x22A5},  /* UP TACK					   */
+  {"pgr",	0x03C0},  /* GREEK SMALL LETTER PI			   */
+  {"phgr",	0x03C6},  /* GREEK SMALL LETTER PHI			   */
+  {"phi",	0x03C6},  /* GREEK SMALL LETTER PHI			   */
+  {"phis",	0x03C6},  /* GREEK SMALL LETTER PHI			   */
+  {"phiv",	0x03D5},  /* GREEK PHI SYMBOL				   */
+  {"phmmat",	0x2133},  /* SCRIPT CAPITAL M				   */
+  {"phone",	0x260E},  /* BLACK TELEPHONE				   */
+  {"pi",	0x03C0},  /* GREEK SMALL LETTER PI			   */
+  {"piv",	0x03D6},  /* GREEK PI SYMBOL				   */
+  {"planck",	0x210F},  /* PLANCK CONSTANT OVER TWO PI		   */
+  {"plus",	0x002B},  /* PLUS SIGN					   */
+  {"plusb",	0x229E},  /* SQUARED PLUS				   */
+  {"plusdo",	0x2214},  /* DOT PLUS					   */
+  {"plusmn",	0x00B1},  /* PLUS-MINUS SIGN				   */
+  {"pound",	0x00A3},  /* POUND SIGN 				   */
+  {"pr",	0x227A},  /* PRECEDES					   */
+  {"pre",	0x227C},  /* PRECEDES OR EQUAL TO			   */
+  {"prime",	0x2032},  /* PRIME					   */
+  {"prnsim",	0x22E8},  /* PRECEDES BUT NOT EQUIVALENT TO		   */
+  {"prod",	0x220F},  /* N-ARY PRODUCT				   */
+  {"prop",	0x221D},  /* PROPORTIONAL TO				   */
+  {"prsim",	0x227E},  /* PRECEDES OR EQUIVALENT TO			   */
+  {"psgr",	0x03C8},  /* GREEK SMALL LETTER PSI			   */
+  {"psi",	0x03C8},  /* GREEK SMALL LETTER PSI			   */
+  {"puncsp",	0x2008},  /* PUNCTUATION SPACE				   */
+  {"quest",	0x003F},  /* QUESTION MARK				   */
+  {"quot",	0x0022},  /* QUOTATION MARK				   */
+  {"rAarr",	0x21DB},  /* RIGHTWARDS TRIPLE ARROW			   */
+  {"rArr",	0x21D2},  /* RIGHTWARDS DOUBLE ARROW			   */
+  {"racute",	0x0155},  /* LATIN SMALL LETTER R WITH ACUTE		   */
+  {"radic",	0x221A},  /* SQUARE ROOT				   */
+  {"rang",	0x232A},  /* RIGHT-POINTING ANGLE BRACKET		   */
+  {"raquo",	0x00BB},  /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK    */
+  {"rarr",	0x2192},  /* RIGHTWARDS ARROW				   */
+  {"rarr2",	0x21C9},  /* RIGHTWARDS PAIRED ARROWS			   */
+  {"rarrhk",	0x21AA},  /* RIGHTWARDS ARROW WITH HOOK 		   */
+  {"rarrlp",	0x21AC},  /* RIGHTWARDS ARROW WITH LOOP 		   */
+  {"rarrtl",	0x21A3},  /* RIGHTWARDS ARROW WITH TAIL 		   */
+  {"rarrw",	0x219D},  /* RIGHTWARDS WAVE ARROW			   */
+  {"rcaron",	0x0159},  /* LATIN SMALL LETTER R WITH CARON		   */
+  {"rcedil",	0x0157},  /* LATIN SMALL LETTER R WITH CEDILLA		   */
+  {"rceil",	0x2309},  /* RIGHT CEILING				   */
+  {"rcub",	0x007D},  /* RIGHT CURLY BRACKET			   */
+  {"rcy",	0x0440},  /* CYRILLIC SMALL LETTER ER			   */
+  {"rdquo",	0x201D},  /* RIGHT DOUBLE QUOTATION MARK		   */
+  {"rdquor",	0x201C},  /* LEFT DOUBLE QUOTATION MARK 		   */
+  {"real",	0x211C},  /* BLACK-LETTER CAPITAL R			   */
+  {"rect",	0x25AD},  /* WHITE RECTANGLE				   */
+  {"reg",	0x00AE},  /* REGISTERED SIGN				   */
+  {"rfloor",	0x230B},  /* RIGHT FLOOR				   */
+  {"rgr",	0x03C1},  /* GREEK SMALL LETTER RHO			   */
+  {"rhard",	0x21C1},  /* RIGHTWARDS HARPOON WITH BARB DOWNWARDS	   */
+  {"rharu",	0x21C0},  /* RIGHTWARDS HARPOON WITH BARB UPWARDS	   */
+  {"rho",	0x03C1},  /* GREEK SMALL LETTER RHO			   */
+  {"rhov",	0x03F1},  /* GREEK RHO SYMBOL				   */
+  {"ring",	0x02DA},  /* RING ABOVE 				   */
+  {"rlarr2",	0x21C4},  /* RIGHTWARDS ARROW OVER LEFTWARDS ARROW	   */
+  {"rlhar2",	0x21CC},  /* RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON	   */
+  {"rlm",	0x200F},  /* RIGHT-TO-LEFT MARK 			   */
+  {"rpar",	0x0029},  /* RIGHT PARENTHESIS				   */
+  {"rsaquo",	0x203A},  /* SINGLE RIGHT-POINTING ANGLE QUOTATION MARK    */
+  {"rsh",	0x21B1},  /* UPWARDS ARROW WITH TIP RIGHTWARDS		   */
+  {"rsqb",	0x005D},  /* RIGHT SQUARE BRACKET			   */
+  {"rsquo",	0x2019},  /* RIGHT SINGLE QUOTATION MARK		   */
+  {"rsquor",	0x2018},  /* LEFT SINGLE QUOTATION MARK 		   */
+  {"rthree",	0x22CC},  /* RIGHT SEMIDIRECT PRODUCT			   */
+  {"rtimes",	0x22CA},  /* RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT	   */
+  {"rtri",	0x25B9},  /* WHITE RIGHT-POINTING SMALL TRIANGLE	   */
+  {"rtrie",	0x22B5},  /* CONTAINS AS NORMAL SUBGROUP OR EQUAL TO	   */
+  {"rtrif",	0x25B8},  /* BLACK RIGHT-POINTING SMALL TRIANGLE	   */
+  {"rx",	0x211E},  /* PRESCRIPTION TAKE				   */
+  {"sacute",	0x015B},  /* LATIN SMALL LETTER S WITH ACUTE		   */
+  {"samalg",	0x2210},  /* N-ARY COPRODUCT				   */
+  {"sbquo",	0x201A},  /* SINGLE LOW-9 QUOTATION MARK		   */
+  {"sbsol",	0x005C},  /* REVERSE SOLIDUS				   */
+  {"sc",	0x227B},  /* SUCCEEDS					   */
+  {"scaron",	0x0161},  /* LATIN SMALL LETTER S WITH CARON		   */
+  {"sccue",	0x227D},  /* SUCCEEDS OR EQUAL TO			   */
+  {"sce",	0x227D},  /* SUCCEEDS OR EQUAL TO			   */
+  {"scedil",	0x015F},  /* LATIN SMALL LETTER S WITH CEDILLA		   */
+  {"scirc",	0x015D},  /* LATIN SMALL LETTER S WITH CIRCUMFLEX	   */
+  {"scnsim",	0x22E9},  /* SUCCEEDS BUT NOT EQUIVALENT TO		   */
+  {"scsim",	0x227F},  /* SUCCEEDS OR EQUIVALENT TO			   */
+  {"scy",	0x0441},  /* CYRILLIC SMALL LETTER ES			   */
+  {"sdot",	0x22C5},  /* DOT OPERATOR				   */
+  {"sdotb",	0x22A1},  /* SQUARED DOT OPERATOR			   */
+  {"sect",	0x00A7},  /* SECTION SIGN				   */
+  {"semi",	0x003B},  /* SEMICOLON					   */
+  {"setmn",	0x2216},  /* SET MINUS					   */
+  {"sext",	0x2736},  /* SIX POINTED BLACK STAR			   */
+  {"sfgr",	0x03C2},  /* GREEK SMALL LETTER FINAL SIGMA		   */
+  {"sfrown",	0x2322},  /* FROWN					   */
+  {"sgr",	0x03C3},  /* GREEK SMALL LETTER SIGMA			   */
+  {"sharp",	0x266F},  /* MUSIC SHARP SIGN				   */
+  {"shchcy",	0x0449},  /* CYRILLIC SMALL LETTER SHCHA		   */
+  {"shcy",	0x0448},  /* CYRILLIC SMALL LETTER SHA			   */
+  {"shy",	0x00AD},  /* SOFT HYPHEN				   */
+  {"sigma",	0x03C3},  /* GREEK SMALL LETTER SIGMA			   */
+  {"sigmaf",	0x03C2},  /* GREEK SMALL LETTER FINAL SIGMA		   */
+  {"sigmav",	0x03C2},  /* GREEK SMALL LETTER FINAL SIGMA		   */
+  {"sim",	0x223C},  /* TILDE OPERATOR				   */
+  {"sime",	0x2243},  /* ASYMPTOTICALLY EQUAL TO			   */
+  {"smile",	0x2323},  /* SMILE					   */
+  {"softcy",	0x044C},  /* CYRILLIC SMALL LETTER SOFT SIGN		   */
+  {"sol",	0x002F},  /* SOLIDUS					   */
+  {"spades",	0x2660},  /* BLACK SPADE SUIT				   */
+  {"spar",	0x2225},  /* PARALLEL TO				   */
+  {"sqcap",	0x2293},  /* SQUARE CAP 				   */
+  {"sqcup",	0x2294},  /* SQUARE CUP 				   */
+  {"sqsub",	0x228F},  /* SQUARE IMAGE OF				   */
+  {"sqsube",	0x2291},  /* SQUARE IMAGE OF OR EQUAL TO		   */
+  {"sqsup",	0x2290},  /* SQUARE ORIGINAL OF 			   */
+  {"sqsupe",	0x2292},  /* SQUARE ORIGINAL OF OR EQUAL TO		   */
+  {"squ",	0x25A1},  /* WHITE SQUARE				   */
+  {"square",	0x25A1},  /* WHITE SQUARE				   */
+  {"squf",	0x25AA},  /* BLACK SMALL SQUARE 			   */
+  {"ssetmn",	0x2216},  /* SET MINUS					   */
+  {"ssmile",	0x2323},  /* SMILE					   */
+  {"sstarf",	0x22C6},  /* STAR OPERATOR				   */
+  {"star",	0x2606},  /* WHITE STAR 				   */
+  {"starf",	0x2605},  /* BLACK STAR 				   */
+  {"sub",	0x2282},  /* SUBSET OF					   */
+  {"subE",	0x2286},  /* SUBSET OF OR EQUAL TO			   */
+  {"sube",	0x2286},  /* SUBSET OF OR EQUAL TO			   */
+  {"subnE",	0x228A},  /* SUBSET OF WITH NOT EQUAL TO		   */
+  {"subne",	0x228A},  /* SUBSET OF WITH NOT EQUAL TO		   */
+  {"sum",	0x2211},  /* N-ARY SUMMATION				   */
+  {"sung",	0x266A},  /* EIGHTH NOTE				   */
+  {"sup",	0x2283},  /* SUPERSET OF				   */
+  {"sup1",	0x00B9},  /* SUPERSCRIPT ONE				   */
+  {"sup2",	0x00B2},  /* SUPERSCRIPT TWO				   */
+  {"sup3",	0x00B3},  /* SUPERSCRIPT THREE				   */
+  {"supE",	0x2287},  /* SUPERSET OF OR EQUAL TO			   */
+  {"supe",	0x2287},  /* SUPERSET OF OR EQUAL TO			   */
+  {"supnE",	0x228B},  /* SUPERSET OF WITH NOT EQUAL TO		   */
+  {"supne",	0x228B},  /* SUPERSET OF WITH NOT EQUAL TO		   */
+  {"szlig",	0x00DF},  /* LATIN SMALL LETTER SHARP S 		   */
+  {"target",	0x2316},  /* POSITION INDICATOR 			   */
+  {"tau",	0x03C4},  /* GREEK SMALL LETTER TAU			   */
+  {"tcaron",	0x0165},  /* LATIN SMALL LETTER T WITH CARON		   */
+  {"tcedil",	0x0163},  /* LATIN SMALL LETTER T WITH CEDILLA		   */
+  {"tcy",	0x0442},  /* CYRILLIC SMALL LETTER TE			   */
+  {"tdot",	0x20DB},  /* COMBINING THREE DOTS ABOVE 		   */
+  {"telrec",	0x2315},  /* TELEPHONE RECORDER 			   */
+  {"tgr",	0x03C4},  /* GREEK SMALL LETTER TAU			   */
+  {"there4",	0x2234},  /* THEREFORE					   */
+  {"theta",	0x03B8},  /* GREEK SMALL LETTER THETA			   */
+  {"thetas",	0x03B8},  /* GREEK SMALL LETTER THETA			   */
+  {"thetasym",	0x03D1},  /* GREEK THETA SYMBOL 			   */
+  {"thetav",	0x03D1},  /* GREEK THETA SYMBOL 			   */
+  {"thgr",	0x03B8},  /* GREEK SMALL LETTER THETA			   */
+  {"thinsp",	0x2009},  /* THIN SPACE 				   */
+  {"thkap",	0x2248},  /* ALMOST EQUAL TO				   */
+  {"thksim",	0x223C},  /* TILDE OPERATOR				   */
+  {"thorn",	0x00FE},  /* LATIN SMALL LETTER THORN			   */
+  {"tilde",	0x02DC},  /* SMALL TILDE				   */
+  {"times",	0x00D7},  /* MULTIPLICATION SIGN			   */
+  {"timesb",	0x22A0},  /* SQUARED TIMES				   */
+  {"top",	0x22A4},  /* DOWN TACK					   */
+  {"tprime",	0x2034},  /* TRIPLE PRIME				   */
+  {"trade",	0x2122},  /* TRADE MARK SIGN				   */
+  {"trie",	0x225C},  /* DELTA EQUAL TO				   */
+  {"tscy",	0x0446},  /* CYRILLIC SMALL LETTER TSE			   */
+  {"tshcy",	0x045B},  /* CYRILLIC SMALL LETTER TSHE 		   */
+  {"tstrok",	0x0167},  /* LATIN SMALL LETTER T WITH STROKE		   */
+  {"twixt",	0x226C},  /* BETWEEN					   */
+  {"uArr",	0x21D1},  /* UPWARDS DOUBLE ARROW			   */
+  {"uacgr",	0x03CD},  /* GREEK SMALL LETTER UPSILON WITH TONOS	   */
+  {"uacute",	0x00FA},  /* LATIN SMALL LETTER U WITH ACUTE		   */
+  {"uarr",	0x2191},  /* UPWARDS ARROW				   */
+  {"uarr2",	0x21C8},  /* UPWARDS PAIRED ARROWS			   */
+  {"ubrcy",	0x045E},  /* CYRILLIC SMALL LETTER SHORT U		   */
+  {"ubreve",	0x016D},  /* LATIN SMALL LETTER U WITH BREVE		   */
+  {"ucirc",	0x00FB},  /* LATIN SMALL LETTER U WITH CIRCUMFLEX	   */
+  {"ucy",	0x0443},  /* CYRILLIC SMALL LETTER U			   */
+  {"udblac",	0x0171},  /* LATIN SMALL LETTER U WITH DOUBLE ACUTE	   */
+  {"udiagr",	0x03B0},  /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND */
+  {"udigr",	0x03CB},  /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA	   */
+  {"ugr",	0x03C5},  /* GREEK SMALL LETTER UPSILON 		   */
+  {"ugrave",	0x00F9},  /* LATIN SMALL LETTER U WITH GRAVE		   */
+  {"uharl",	0x21BF},  /* UPWARDS HARPOON WITH BARB LEFTWARDS	   */
+  {"uharr",	0x21BE},  /* UPWARDS HARPOON WITH BARB RIGHTWARDS	   */
+  {"uhblk",	0x2580},  /* UPPER HALF BLOCK				   */
+  {"ulcorn",	0x231C},  /* TOP LEFT CORNER				   */
+  {"ulcrop",	0x230F},  /* TOP LEFT CROP				   */
+  {"umacr",	0x016B},  /* LATIN SMALL LETTER U WITH MACRON		   */
+  {"uml",	0x00A8},  /* DIAERESIS					   */
+  {"uogon",	0x0173},  /* LATIN SMALL LETTER U WITH OGONEK		   */
+  {"uplus",	0x228E},  /* MULTISET UNION				   */
+  {"upsi",	0x03C5},  /* GREEK SMALL LETTER UPSILON 		   */
+  {"upsih",	0x03D2},  /* GREEK UPSILON WITH HOOK SYMBOL		   */
+  {"upsilon",	0x03C5},  /* GREEK SMALL LETTER UPSILON 		   */
+  {"urcorn",	0x231D},  /* TOP RIGHT CORNER				   */
+  {"urcrop",	0x230E},  /* TOP RIGHT CROP				   */
+  {"uring",	0x016F},  /* LATIN SMALL LETTER U WITH RING ABOVE	   */
+  {"utilde",	0x0169},  /* LATIN SMALL LETTER U WITH TILDE		   */
+  {"utri",	0x25B5},  /* WHITE UP-POINTING SMALL TRIANGLE		   */
+  {"utrif",	0x25B4},  /* BLACK UP-POINTING SMALL TRIANGLE		   */
+  {"uuml",	0x00FC},  /* LATIN SMALL LETTER U WITH DIAERESIS	   */
+  {"vArr",	0x21D5},  /* UP DOWN DOUBLE ARROW			   */
+  {"vDash",	0x22A8},  /* TRUE					   */
+  {"varr",	0x2195},  /* UP DOWN ARROW				   */
+  {"vcy",	0x0432},  /* CYRILLIC SMALL LETTER VE			   */
+  {"vdash",	0x22A2},  /* RIGHT TACK 				   */
+  {"veebar",	0x22BB},  /* XOR					   */
+  {"vellip",	0x22EE},  /* VERTICAL ELLIPSIS				   */
+  {"verbar",	0x007C},  /* VERTICAL LINE				   */
+  {"vltri",	0x22B2},  /* NORMAL SUBGROUP OF 			   */
+  {"vprime",	0x2032},  /* PRIME					   */
+  {"vprop",	0x221D},  /* PROPORTIONAL TO				   */
+  {"vrtri",	0x22B3},  /* CONTAINS AS NORMAL SUBGROUP		   */
+  {"vsubnE",	0x228A},  /* SUBSET OF WITH NOT EQUAL TO		   */
+  {"vsubne",	0x228A},  /* SUBSET OF WITH NOT EQUAL TO		   */
+  {"vsupnE",	0x228B},  /* SUPERSET OF WITH NOT EQUAL TO		   */
+  {"vsupne",	0x228B},  /* SUPERSET OF WITH NOT EQUAL TO		   */
+  {"wcirc",	0x0175},  /* LATIN SMALL LETTER W WITH CIRCUMFLEX	   */
+  {"wedgeq",	0x2259},  /* ESTIMATES					   */
+  {"weierp",	0x2118},  /* SCRIPT CAPITAL P				   */
+  {"wreath",	0x2240},  /* WREATH PRODUCT				   */
+  {"xcirc",	0x25CB},  /* WHITE CIRCLE				   */
+  {"xdtri",	0x25BD},  /* WHITE DOWN-POINTING TRIANGLE		   */
+  {"xgr",	0x03BE},  /* GREEK SMALL LETTER XI			   */
+  {"xhArr",	0x2194},  /* LEFT RIGHT ARROW				   */
+  {"xharr",	0x2194},  /* LEFT RIGHT ARROW				   */
+  {"xi",	0x03BE},  /* GREEK SMALL LETTER XI			   */
+  {"xlArr",	0x21D0},  /* LEFTWARDS DOUBLE ARROW			   */
+  {"xrArr",	0x21D2},  /* RIGHTWARDS DOUBLE ARROW			   */
+  {"xutri",	0x25B3},  /* WHITE UP-POINTING TRIANGLE 		   */
+  {"yacute",	0x00FD},  /* LATIN SMALL LETTER Y WITH ACUTE		   */
+  {"yacy",	0x044F},  /* CYRILLIC SMALL LETTER YA			   */
+  {"ycirc",	0x0177},  /* LATIN SMALL LETTER Y WITH CIRCUMFLEX	   */
+  {"ycy",	0x044B},  /* CYRILLIC SMALL LETTER YERU 		   */
+  {"yen",	0x00A5},  /* YEN SIGN					   */
+  {"yicy",	0x0457},  /* CYRILLIC SMALL LETTER YI			   */
+  {"yucy",	0x044E},  /* CYRILLIC SMALL LETTER YU			   */
+  {"yuml",	0x00FF},  /* LATIN SMALL LETTER Y WITH DIAERESIS	   */
+  {"zacute",	0x017A},  /* LATIN SMALL LETTER Z WITH ACUTE		   */
+  {"zcaron",	0x017E},  /* LATIN SMALL LETTER Z WITH CARON		   */
+  {"zcy",	0x0437},  /* CYRILLIC SMALL LETTER ZE			   */
+  {"zdot",	0x017C},  /* LATIN SMALL LETTER Z WITH DOT ABOVE	   */
+  {"zeta",	0x03B6},  /* GREEK SMALL LETTER ZETA			   */
+  {"zgr",	0x03B6},  /* GREEK SMALL LETTER ZETA			   */
+  {"zhcy",	0x0436},  /* CYRILLIC SMALL LETTER ZHE			   */
+  {"zwj",	0x200D},  /* ZERO WIDTH JOINER				   */
+  {"zwnj",	0x200C},  /* ZERO WIDTH NON-JOINER			   */
+/* {"epsiv",	0x????},  variant epsilon			 # ISOgrk3 */
+/* {"fjlig",	0x????},  fj ligature				 # ISOpub  */
+/* {"gEl",	0x????},  greater-than, double equals, less-than # ISOamsr */
+/* {"gap",	0x????},  greater-than, approximately equal to	 # ISOamsr */
+/* {"gnap",	0x????},  greater-than, not approximately equal t# ISOamsn */
+/* {"jnodot",	0x????},  latin small letter dotless j		 # ISOamso */
+/* {"lEg",	0x????},  less-than, double equals, greater-than # ISOamsr */
+/* {"lap",	0x????},  less-than, approximately equal to	 # ISOamsr */
+/* {"lnap",	0x????},  less-than, not approximately equal to  # ISOamsn */
+/* {"lpargt",	0x????},  left parenthesis, greater-than	 # ISOamsc */
+/* {"ngE",	0x????},  not greater-than, double equals	 # ISOamsn */
+/* {"nlE",	0x????},  not less-than, double equals		 # ISOamsn */
+/* {"nsmid",	0x????},  nshortmid				 # ISOamsn */
+/* {"prap",	0x????},  precedes, approximately equal to	 # ISOamsr */
+/* {"prnE",	0x????},  precedes, not double equal		 # ISOamsn */
+/* {"prnap",	0x????},  precedes, not approximately equal to	 # ISOamsn */
+/* {"rpargt",	0x????},  right parenthesis, greater-than	 # ISOamsc */
+/* {"scap",	0x????},  succeeds, approximately equal to	 # ISOamsr */
+/* {"scnE",	0x????},  succeeds, not double equals		 # ISOamsn */
+/* {"scnap",	0x????},  succeeds, not approximately equal to	 # ISOamsn */
+/* {"smid",	0x????},  shortmid				 # ISOamsr */
 };
 
+
 /*		Attribute Lists
 **		---------------
 **
@@ -476,7 +1249,7 @@ static attr a_attr[] = {			/* Anchor attributes */
 	{ "TYPE" },
 	{ "URN" },
 	{ 0 }	/* Terminate list */
-};	
+};
 
 static attr address_attr[] = {			/* ADDRESS attributes */
 	{ "CLASS" },
@@ -538,7 +1311,7 @@ static attr base_attr[] = {			/* BASE attributes */
 	{ "TARGET" },
 	{ "TITLE" },
 	{ 0 }	/* Terminate list */
-};	
+};
 
 static attr bgsound_attr[] = {			/* BGSOUND attributes */
 	{ "CLASS" },
@@ -572,7 +1345,7 @@ static attr body_attr[] = {			/* BODY attributes */
 	{ 0 } /* Terminate list */
 };
 
-static attr bodytext_attr[] = {			/* BODYTEXT attributes */
+static attr bodytext_attr[] = { 		/* BODYTEXT attributes */
 	{ "CLASS" },
 	{ "CLEAR" },
 	{ "DATA" },
@@ -719,7 +1492,7 @@ static attr fig_attr[] = {			/* FIG attributes */
 	{ 0 }	/* Terminate list */
 };
 
-static attr fieldset_attr[] = {			/* FIELDSET attributes */
+static attr fieldset_attr[] = { 		/* FIELDSET attributes */
 	{ "CLASS" },
 	{ "CLEAR" },
 	{ "DIR" },
@@ -785,7 +1558,7 @@ static attr frame_attr[] = {			/* FRAME attributes */
 	{ 0 }	/* Terminate list */
 };
 
-static attr frameset_attr[] = {			/* FRAMESET attributes */
+static attr frameset_attr[] = { 		/* FRAMESET attributes */
 	{ "COLS"},
 	{ "ROWS" },
 	{ 0 }	/* Terminate list */
@@ -802,7 +1575,7 @@ static attr gen_attr[] = {			/* Minimum HTML 3.0 */
 	{ 0 }	/* Terminate list */
 };
 
-static attr glossary_attr[] = {			/* DL (and DLC) attributes */
+static attr glossary_attr[] = { 		/* DL (and DLC) attributes */
 	{ "CLASS" },
 	{ "CLEAR" },
 	{ "COMPACT" },
@@ -883,7 +1656,7 @@ static attr img_attr[] = {			/* IMG attributes */
 	{ "USEMAP" },
 	{ "WIDTH" },
 	{ 0 }	/* Terminate list */
-};	
+};
 
 static attr input_attr[] = {			/* INPUT attributes */
 	{ "ACCEPT" },
@@ -924,13 +1697,13 @@ static attr input_attr[] = {			/* INPUT attributes */
 static attr isindex_attr[] = {			/* ISINDEX attributes */
 	{ "ACTION" },	/* Not in spec.  Lynx treats it as HREF. - FM */
 	{ "DIR" },
-	{ "HREF" },	/* HTML 3.0 attritute for search action. - FM */ 
+	{ "HREF" },	/* HTML 3.0 attritute for search action. - FM */
 	{ "ID" },
 	{ "LANG" },
 	{ "PROMPT" },	/* HTML 3.0 attribute for prompt string. - FM */
 	{ "TITLE" },
 	{ 0 }	/* Terminate list */
-};	
+};
 
 static attr keygen_attr[] = {			/* KEYGEN attributes */
 	{ "CHALLENGE" },
@@ -1038,7 +1811,7 @@ static attr nextid_attr[] = {			/* NEXTID attribures */
 	{ "N" }
 };
 
-static attr note_attr[]	= {			/* NOTE attributes */
+static attr note_attr[] = {			/* NOTE attributes */
 	{ "CLASS" },
 	{ "CLEAR" },
 	{ "DIR" },
@@ -1276,7 +2049,7 @@ static attr td_attr[] = {			/* TD and TH attributes */
 	{ 0 }	/* Terminate list */
 };
 
-static attr textarea_attr[] = {			/* TEXTAREA attributes */
+static attr textarea_attr[] = { 		/* TEXTAREA attributes */
 	{ "ACCEPT-CHARSET" },	/* RFC 2070 HTML i18n - kw */
 	{ "ALIGN" },
 	{ "CLASS" },
@@ -1340,37 +2113,37 @@ static attr ulist_attr[] = {			/* UL attributes */
    %structure;
 
    DIV, CENTER, H1 to H6, P, UL, OL, DL, DIR, MENU, PRE, XMP, LISTING, BLOCKQUOTE, BQ,
-   2    1       2     2   1  8   8   8   8    8     8    8    8        4           4
+   2	1	2     2   1  8	 8   8	 8    8     8	 8    8        4	   4
    MULTICOL,?NOBR, FORM, TABLE, ADDRESS, FIG, BDO, NOTE, and FN; plus?WBR, LI, and LH
-   8 n      ?1 n   8     8      2        2    2    2         2      ?1 nE  4       4
+   8 n	    ?1 n   8	 8	2	 2    2    2	     2	    ?1 nE  4	   4
 
    %insertions;
 
    Elements which usually contain special-purpose material, or no text material at all.
 
    BASEFONT, APPLET, OBJECT, EMBED, SCRIPT, MAP, MARQUEE, HR, ISINDEX, BGSOUND, TAB,?IMG,
-   1 e?      2       2 l     1 e    2 l     8    4        4 E 1? E     1 E      ! E ?1 E
+   1 e?      2	     2 l     1 e    2 l     8	 4	  4 E 1? E     1 E	! E ?1 E
    IMAGE, BR, plus NOEMBED, SERVER, SPACER, AUDIOSCOPE, and SIDEBAR; ?area
-   1 n    1 E        n        n       n       n               n       8 E
+   1 n	  1 E	     n	      n       n       n 	      n       8 E
 
    %text;
 
    Elements within the %structure; which directly contain running text.
 
    Descriptive or analytic markup: EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, Q, LANG, AU,
-                                   2   2       2    2     2     2    2    2     2  2 n   2
+				   2   2       2    2	  2	2    2	  2	2  2 n	 2
    AUTHOR, PERSON, ACRONYM, ABBREV, INS, DEL, and SPAN
-   2       2 n     2        2       2    2        2
+   2	   2 n	   2	    2	    2	 2	  2
    Visual markup:S, STRIKE, I, B, TT, U,?NOBR,?WBR, BR, BIG, SMALL, FONT, STYLE, BLINK, TAB,
-                 1  1       1  1  1   1  ?1 n ?1nE? 1 E  1   1      1     1 l    1      1 E?
+		 1  1	    1  1  1   1  ?1 n ?1nE? 1 E  1   1	    1	  1 l	 1	1 E?
    BLACKFACE, LIMITTEXT, NOSMARTQUOTES, and SHADOW
-   1 n        1 n        1 n                1 n
+   1 n	      1 n	 1 n		    1 n
    Hypertext and graphics: A and?IMG
-                           8    ?8 E
+			   8	?8 E
    Mathematical: SUB, SUP, and MATH
-                 4    4        4 l
+		 4    4        4 l
    Documentary: COMMENT, ENTITY, ELEMENT, and ATTRIB
-                4        4 n     4 n          4 n
+		4	 4 n	 4 n	      4 n
    %formula;
  */
 
@@ -1388,22 +2161,22 @@ static attr ulist_attr[] = {			/* UL attributes */
 **	one 80 character screen line :).  The price to pay is that it's
 **	a bit cryptic, to say the least...  - kw
 */
-/*       1         2         3         4         5         6         7         8 */
+/*	 1	   2	     3	       4	 5	   6	     7	       8 */
 /*345678901234567890123456789012345678901234567890123456789012345678901234567890 */
 
-/*			self	contain	icont'n	contn'd	icont'd	canclos	omit */
+/*			self	contain icont'n contn'd icont'd canclos omit */
  /* { "A"	, a_attr,	HTML_A_ATTRIBUTES,	SGML_MIXED }, */
-#define T_A		0x0008,	0x0B007,0x0FF17,0x37787,0x77BA7,0x8604F,0x00004
+#define T_A		0x0008, 0x0B007,0x0FF17,0x37787,0x77BA7,0x8604F,0x00004
  /* { "ABBREV"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_ABBREV	0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00003,0x00000
- /* { "ACRONYM"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
+ /* { "ACRONYM" , gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_ACRONYM	0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00003,0x00000
- /* { "ADDRESS"	, address_attr,	HTML_ADDRESS_ATTRIBUTES, SGML_MIXED }, */
-#define T_ADDRESS	0x0200,	0x0F14F,0x8FFFF,0x36680,0xB6FAF,0x80317,0x00000
+ /* { "ADDRESS" , address_attr, HTML_ADDRESS_ATTRIBUTES, SGML_MIXED }, */
+#define T_ADDRESS	0x0200, 0x0F14F,0x8FFFF,0x36680,0xB6FAF,0x80317,0x00000
  /* { "APPLET"	, applet_attr,	HTML_APPLET_ATTRIBUTES, SGML_MIXED }, */
-#define T_APPLET	0x2000,	0x0B0CF,0x8FFFF,0x37F9F,0xB7FBF,0x8300F,0x00000
- /* { "AREA"	, area_attr,	HTML_AREA_ATTRIBUTES,   SGML_EMPTY }, */
-#define T_AREA		0x8000,	0x00000,0x00000,0x08000,0x3FFFF,0x00F1F,0x00001
+#define T_APPLET	0x2000, 0x0B0CF,0x8FFFF,0x37F9F,0xB7FBF,0x8300F,0x00000
+ /* { "AREA"	, area_attr,	HTML_AREA_ATTRIBUTES,	SGML_EMPTY }, */
+#define T_AREA		0x8000, 0x00000,0x00000,0x08000,0x3FFFF,0x00F1F,0x00001
  /* { "AU"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_AU		0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00003,0x00000
  /* { "AUTHOR"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
@@ -1411,34 +2184,34 @@ static attr ulist_attr[] = {			/* UL attributes */
  /* { "B"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_B		0x0001, 0x8B04F,0xAFFFF,0xA778F,0xF7FBF,0x00001,0x00004
  /* { "BANNER"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
-#define T_BANNER	0x0200,	0x0FB8F,0x0FFFF,0x30000,0x30000,0x8031F,0x00000
+#define T_BANNER	0x0200, 0x0FB8F,0x0FFFF,0x30000,0x30000,0x8031F,0x00000
  /* { "BASE"	, base_attr,	HTML_BASE_ATTRIBUTES,	SGML_EMPTY }, */
 #define T_BASE		0x40000,0x00000,0x00000,0x50000,0x50000,0x8000F,0x00001
  /* { "BASEFONT", font_attr,	HTML_FONT_ATTRIBUTES,	SGML_EMPTY }, */
-#define	T_BASEFONT	0x1000,	0x00000,0x00000,0x377AF,0x37FAF,0x8F000,0x00001
+#define T_BASEFONT	0x1000, 0x00000,0x00000,0x377AF,0x37FAF,0x8F000,0x00001
  /* { "BDO"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
-#define	T_BDO		0x0100,	0x0B04F,0x8FFFF,0x36680,0xB6FAF,0x0033F,0x00000
- /* { "BGSOUND"	, bgsound_attr,	HTML_BGSOUND_ATTRIBUTES, SGML_EMPTY }, */
-#define T_BGSOUND	0x1000,	0x00000,0x00000,0x777AF,0x77FAF,0x8730F,0x00001
+#define T_BDO		0x0100, 0x0B04F,0x8FFFF,0x36680,0xB6FAF,0x0033F,0x00000
+ /* { "BGSOUND" , bgsound_attr, HTML_BGSOUND_ATTRIBUTES, SGML_EMPTY }, */
+#define T_BGSOUND	0x1000, 0x00000,0x00000,0x777AF,0x77FAF,0x8730F,0x00001
  /* { "BIG"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_BIG		0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00004
  /* { "BLINK"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
-#define T_BLINK		0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FAF,0x00001,0x00004
+#define T_BLINK 	0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FAF,0x00001,0x00004
  /* { "BLOCKQUOTE", bq_attr,	HTML_BQ_ATTRIBUTES,	SGML_MIXED }, */
-#define T_BLOCKQUOTE	0x0200,	0xAFBCF,0xAFFFF,0xB6680,0xB6FAF,0x8031F,0x00000
+#define T_BLOCKQUOTE	0x0200, 0xAFBCF,0xAFFFF,0xB6680,0xB6FAF,0x8031F,0x00000
  /* { "BODY"	, body_attr,	HTML_BODY_ATTRIBUTES,	SGML_MIXED }, */
-#define	T_BODY		0x20000,0x2FB8F,0x2FFFF,0x30000,0x30000,0xDFF7F,0x00003
+#define T_BODY		0x20000,0x2FB8F,0x2FFFF,0x30000,0x30000,0xDFF7F,0x00003
  /* { "BODYTEXT", bodytext_attr,HTML_BODYTEXT_ATTRIBUTES, SGML_MIXED }, */
 #define T_BODYTEXT	0x20000,0x0FB8F,0xAFFFF,0x30200,0xB7FAF,0x8F17F,0x00003
  /* { "BQ"	, bq_attr,	HTML_BQ_ATTRIBUTES,	SGML_MIXED }, */
-#define T_BQ		0x0200,	0xAFBCF,0xAFFFF,0xB6680,0xB6FAF,0x8031F,0x00000
+#define T_BQ		0x0200, 0xAFBCF,0xAFFFF,0xB6680,0xB6FAF,0x8031F,0x00000
  /* { "BR"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY }, */
 #define T_BR		0x1000, 0x00000,0x00000,0x377BF,0x77FBF,0x8101F,0x00001
 #define T_BUTTON	0x0200, 0x0BB0B,0x0FF3B,0x0378F,0x37FAF,0x8035F,0x00000
- /* { "CAPTION"	, caption_attr,	HTML_CAPTION_ATTRIBUTES, SGML_MIXED }, */
-#define	T_CAPTION	0x0100,	0x0B04F,0x8FFFF,0x06A00,0xB6FA7,0x8035F,0x00000
+ /* { "CAPTION" , caption_attr, HTML_CAPTION_ATTRIBUTES, SGML_MIXED }, */
+#define T_CAPTION	0x0100, 0x0B04F,0x8FFFF,0x06A00,0xB6FA7,0x8035F,0x00000
  /* { "CENTER"	, div_attr,	HTML_DIV_ATTRIBUTES,	SGML_MIXED }, */
-#define T_CENTER	0x0200,	0x8FBCF,0x8FFFF,0xB6680,0xB6FA7,0x8071F,0x00000
+#define T_CENTER	0x0200, 0x8FBCF,0x8FFFF,0xB6680,0xB6FA7,0x8071F,0x00000
  /* { "CITE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_CITE		0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00002,0x00000
  /* { "CODE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
@@ -1447,12 +2220,12 @@ static attr ulist_attr[] = {			/* UL attributes */
 #define T_COL		0x4000, 0x00000,0x00000,0x00820,0x36FA7,0x88F5F,0x00001
  /* { "COLGROUP", col_attr,	HTML_COL_ATTRIBUTES,	SGML_EMPTY }, */
 #define T_COLGROUP	0x0020, 0x04000,0x04000,0x00800,0x36FA7,0x8875F,0x00001
- /* { "COMMENT"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
-#define	T_COMMENT	0x0004,	0x00000,0x00000,0xA77AF,0x7FFFF,0x00003,0x00000
- /* { "CREDIT"	, credit_attr,	HTML_CREDIT_ATTRIBUTES,	SGML_MIXED }, */
+ /* { "COMMENT" , gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
+#define T_COMMENT	0x0004, 0x00000,0x00000,0xA77AF,0x7FFFF,0x00003,0x00000
+ /* { "CREDIT"	, credit_attr,	HTML_CREDIT_ATTRIBUTES, SGML_MIXED }, */
 #define T_CREDIT	0x0100, 0x0B04F,0x8FFFF,0x06A00,0xB7FBF,0x8030F,0x00000
  /* { "DD"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_DD		0x0400,	0x0FBCF,0x8FFFF,0x00800,0xB6FFF,0x8071F,0x00001
+#define T_DD		0x0400, 0x0FBCF,0x8FFFF,0x00800,0xB6FFF,0x8071F,0x00001
  /* { "DEL"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_DEL		0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00003,0x00000
  /* { "DFN"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
@@ -1460,19 +2233,19 @@ static attr ulist_attr[] = {			/* UL attributes */
  /* { "DIR"	, ulist_attr,	HTML_UL_ATTRIBUTES,	SGML_MIXED }, */
 #define T_DIR		0x0800, 0x0B400,0x0F75F,0x37680,0x36FB7,0x84F7F,0x00000
  /* { "DIV"	, div_attr,	HTML_DIV_ATTRIBUTES,	SGML_MIXED }, */
-#define T_DIV		0x0200,	0x8FB8F,0x8FFFF,0xB66A0,0xB7FFF,0x8031F,0x00004
+#define T_DIV		0x0200, 0x8FB8F,0x8FFFF,0xB66A0,0xB7FFF,0x8031F,0x00004
  /* { "DL"	, glossary_attr, HTML_DL_ATTRIBUTES,	SGML_MIXED }, */
-#define T_DL		0x0800,	0x0C480,0x8FFFF,0x36680,0xB7FB7,0x0075F,0x00000
+#define T_DL		0x0800, 0x0C480,0x8FFFF,0x36680,0xB7FB7,0x0075F,0x00000
  /* { "DLC"	, glossary_attr, HTML_DL_ATTRIBUTES,	SGML_MIXED }, */
-#define T_DLC		0x0800,	0x0C480,0x8FFFF,0x36680,0xB7FB7,0x0075F,0x00000
+#define T_DLC		0x0800, 0x0C480,0x8FFFF,0x36680,0xB7FB7,0x0075F,0x00000
  /* { "DT"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_DT		0x0400,	0x0B04F,0x0B1FF,0x00800,0x17FFF,0x8071F,0x00001
+#define T_DT		0x0400, 0x0B04F,0x0B1FF,0x00800,0x17FFF,0x8071F,0x00001
  /* { "EM"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_EM		0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FAF,0x00003,0x00000
  /* { "EMBED"	, embed_attr,	HTML_EMBED_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_EMBED		0x2000, 0x8F107,0x8FFF7,0xB6FBF,0xB7FBF,0x1FF7F,0x00001
+#define T_EMBED 	0x2000, 0x8F107,0x8FFF7,0xB6FBF,0xB7FBF,0x1FF7F,0x00001
  /* { "FIELDSET", fieldset_attr,HTML_FIELDSET_ATTRIBUTES, SGML_MIXED }, */
-#define T_FIELDSET	0x0200,	0x0FB42,0x0FF5F,0x07787,0x37FF7,0x8805F,0x00000
+#define T_FIELDSET	0x0200, 0x0FB42,0x0FF5F,0x07787,0x37FF7,0x8805F,0x00000
  /* { "FIG"	, fig_attr,	HTML_FIG_ATTRIBUTES,	SGML_MIXED }, */
 #define T_FIG		0x0200, 0x0FB00,0x8FFFF,0x36680,0xB6FBF,0x8834F,0x00000
  /* { "FN"	, fn_attr,	HTML_FN_ATTRIBUTES,	SGML_MIXED }, */
@@ -1480,143 +2253,143 @@ static attr ulist_attr[] = {			/* UL attributes */
  /* { "FONT"	, font_attr,	HTML_FONT_ATTRIBUTES,	SGML_EMPTY }, */
 #define T_FONT		0x0001, 0x8B04F,0x8FFFF,0xB778F,0xF7FBF,0x00001,0x00004
  /* { "FORM"	, form_attr,	HTML_FORM_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_FORM		0x0080,	0x0FF6F,0x0FF7F,0x36E07,0x33F07,0x88DFF,0x00000
+#define T_FORM		0x0080, 0x0FF6F,0x0FF7F,0x36E07,0x33F07,0x88DFF,0x00000
  /* { "FRAME"	, frame_attr,	HTML_FRAME_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_FRAME		0x10000,0x00000,0x00000,0x10000,0x10000,0x9FFFF,0x00001
+#define T_FRAME 	0x10000,0x00000,0x00000,0x10000,0x10000,0x9FFFF,0x00001
  /* { "FRAMESET", frameset_attr,HTML_FRAMESET_ATTRIBUTES, SGML_MIXED }, */
-#define	T_FRAMESET	0x10000,0x90000,0x90000,0x90000,0x93000,0x9FFFF,0x00000
+#define T_FRAMESET	0x10000,0x90000,0x90000,0x90000,0x93000,0x9FFFF,0x00000
  /* { "H1"	, h_attr,	HTML_H_ATTRIBUTES,	SGML_MIXED }, */
-#define T_H1  		0x0100,	0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000
+#define T_H1		0x0100, 0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000
  /* { "H2"	, h_attr,	HTML_H_ATTRIBUTES,	SGML_MIXED }, */
-#define T_H2  		0x0100,	0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000
+#define T_H2		0x0100, 0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000
  /* { "H3"	, h_attr,	HTML_H_ATTRIBUTES,	SGML_MIXED }, */
-#define T_H3  		0x0100,	0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000
+#define T_H3		0x0100, 0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000
  /* { "H4"	, h_attr,	HTML_H_ATTRIBUTES,	SGML_MIXED }, */
-#define T_H4  		0x0100,	0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000
+#define T_H4		0x0100, 0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000
  /* { "H5"	, h_attr,	HTML_H_ATTRIBUTES,	SGML_MIXED }, */
-#define T_H5  		0x0100,	0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000
+#define T_H5		0x0100, 0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000
  /* { "H6"	, h_attr,	HTML_H_ATTRIBUTES,	SGML_MIXED }, */
-#define T_H6  		0x0100,	0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000
+#define T_H6		0x0100, 0x0B04F,0x0B05F,0x36680,0x37FAF,0x80317,0x00000
  /* { "HEAD"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_HEAD		0x40000,0x4F000,0x47000,0x10000,0x10000,0x9FF7F,0x00006
  /* { "HR"	, hr_attr,	HTML_HR_ATTRIBUTES,	SGML_EMPTY }, */
-#define	T_HR		0x4000,	0x00000,0x00000,0x3FE80,0x3FFBF,0x87F37,0x00001
+#define T_HR		0x4000, 0x00000,0x00000,0x3FE80,0x3FFBF,0x87F37,0x00001
  /* { "HTML"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_HTML		0x10000,0x7FB8F,0x7FFFF,0x00000,0x00000,0x1FFFF,0x00003
 #define T_HY		0x1000, 0x00000,0x00000,0x3779F,0x77FBF,0x8101F,0x00001
  /* { "I"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_I		0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00004
-#define T_IFRAME	0x2000,	0x8FBCF,0x8FFFF,0xB679F,0xB6FBF,0xD335F,0x00000
- /* { "IMG"     , img_attr,	HTML_IMG_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_IMG		0x1000,	0x00000,0x00000,0x3779F,0x37FBF,0x80000,0x00001
- /* { "INPUT"   , input_attr,	HTML_INPUT_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_INPUT		0x0040,	0x00000,0x00000,0x03F87,0x37F87,0x8904F,0x00001
+#define T_IFRAME	0x2000, 0x8FBCF,0x8FFFF,0xB679F,0xB6FBF,0xD335F,0x00000
+ /* { "IMG"	, img_attr,	HTML_IMG_ATTRIBUTES,	SGML_EMPTY }, */
+#define T_IMG		0x1000, 0x00000,0x00000,0x3779F,0x37FBF,0x80000,0x00001
+ /* { "INPUT"	, input_attr,	HTML_INPUT_ATTRIBUTES,	SGML_EMPTY }, */
+#define T_INPUT 	0x0040, 0x00000,0x00000,0x03F87,0x37F87,0x8904F,0x00001
  /* { "INS"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_INS		0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00003,0x00000
- /* { "ISINDEX" , isindex_attr,	HTML_ISINDEX_ATTRIBUTES,SGML_EMPTY }, */
+ /* { "ISINDEX" , isindex_attr, HTML_ISINDEX_ATTRIBUTES,SGML_EMPTY }, */
 #define T_ISINDEX	0x8000, 0x00000,0x00000,0x7778F,0x7FFAF,0x80007,0x00001
  /* { "KBD"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_KBD		0x0002, 0x00000,0x00000,0x2778F,0x77FBF,0x00003,0x00000
- /* { "KEYGEN"	, keygen_attr,	HTML_KEYGEN_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_KEYGEN	0x0040,	0x00000,0x00000,0x07FB7,0x37FB7,0x80070,0x00001
+ /* { "KEYGEN"	, keygen_attr,	HTML_KEYGEN_ATTRIBUTES, SGML_EMPTY }, */
+#define T_KEYGEN	0x0040, 0x00000,0x00000,0x07FB7,0x37FB7,0x80070,0x00001
  /* { "LABEL"	, label_attr,	HTML_LABEL_ATTRIBUTES,	SGML_MIXED }, */
-#define T_LABEL		0x0020, 0x9FFFF,0x9FFFF,0x9FFFF,0x9FFFF,0x00007,0x00000
+#define T_LABEL 	0x0020, 0x9FFFF,0x9FFFF,0x9FFFF,0x9FFFF,0x00007,0x00000
 #define T_LEGEND	0x0002, 0x0B04F,0x0FF7F,0x00200,0x37FA7,0x00003,0x00000
  /* { "LH"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_LH		0x0400,	0x0BB7F,0x8FFFF,0x00800,0x97FFF,0x8071F,0x00001
+#define T_LH		0x0400, 0x0BB7F,0x8FFFF,0x00800,0x97FFF,0x8071F,0x00001
  /* { "LI"	, list_attr,	HTML_LI_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_LI		0x0400,	0x0BBFF,0x8FFFF,0x00800,0x97FFF,0x8071F,0x00001
+#define T_LI		0x0400, 0x0BBFF,0x8FFFF,0x00800,0x97FFF,0x8071F,0x00001
  /* { "LINK"	, link_attr,	HTML_LINK_ATTRIBUTES,	SGML_EMPTY }, */
 #define T_LINK		0x8000, 0x00000,0x00000,0x50000,0x50000,0x0FF7F,0x00001
- /* { "LISTING"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_LITTERAL }, */
+ /* { "LISTING" , gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_LITTERAL }, */
 #define T_LISTING	0x0800, 0x00000,0x00000,0x36600,0x36F00,0x80F1F,0x00000
  /* { "MAP"	, map_attr,	HTML_MAP_ATTRIBUTES,	SGML_MIXED }, */
-#define T_MAP		0x8000,	0x08000,0x08000,0x37FCF,0x37FBF,0x0071F,0x00000
- /* { "MARQUEE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
+#define T_MAP		0x8000, 0x08000,0x08000,0x37FCF,0x37FBF,0x0071F,0x00000
+ /* { "MARQUEE" , gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_MARQUEE	0x4000, 0x0000F,0x8F01F,0x37787,0xB7FA7,0x8301C,0x00000
  /* { "MATH"	, math_attr,	HTML_MATH_ATTRIBUTES,	SGML_LITTERAL }, */
-#define T_MATH		0x0004,	0x0B05F,0x8FFFF,0x2778F,0xF7FBF,0x0001F,0x00000
+#define T_MATH		0x0004, 0x0B05F,0x8FFFF,0x2778F,0xF7FBF,0x0001F,0x00000
  /* { "MENU"	, ulist_attr,	HTML_UL_ATTRIBUTES,	SGML_MIXED }, */
 #define T_MENU		0x0800, 0x0B400,0x0F75F,0x17680,0x36FB7,0x88F7F,0x00000
  /* { "META"	, meta_attr,	HTML_META_ATTRIBUTES,	SGML_EMPTY }, */
 #define T_META		0x8000, 0x00000,0x00000,0x50000,0x50000,0x0FF7F,0x00001
- /* { "NEXTID"  , nextid_attr,	1,			SGML_EMPTY }, */
+ /* { "NEXTID"	, nextid_attr,	1,			SGML_EMPTY }, */
 #define T_NEXTID	0x1000, 0x00000,0x00000,0x50000,0x1FFF7,0x00001,0x00001
  /* { "NOFRAMES", gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
-#define	T_NOFRAMES	0x20000,0x2FB8F,0x0FFFF,0x17000,0x17000,0x0CF5F,0x00000
+#define T_NOFRAMES	0x20000,0x2FB8F,0x0FFFF,0x17000,0x17000,0x0CF5F,0x00000
  /* { "NOTE"	, note_attr,	HTML_NOTE_ATTRIBUTES,	SGML_MIXED }, */
-#define T_NOTE		0x0200,	0x0BBAF,0x8FFFF,0x376B0,0xB7FFF,0x8031F,0x00000
- /* { "OBJECT"	, object_attr,	HTML_OBJECT_ATTRIBUTES,	SGML_LITTERAL }, */
-#define	T_OBJECT	0x2000,	0x8FBCF,0x8FFFF,0xB679F,0xB6FBF,0x83F5F,0x00000
+#define T_NOTE		0x0200, 0x0BBAF,0x8FFFF,0x376B0,0xB7FFF,0x8031F,0x00000
+ /* { "OBJECT"	, object_attr,	HTML_OBJECT_ATTRIBUTES, SGML_LITTERAL }, */
+#define T_OBJECT	0x2000, 0x8FBCF,0x8FFFF,0xB679F,0xB6FBF,0x83F5F,0x00000
  /* { "OL"	, olist_attr,	HTML_OL_ATTRIBUTES,	SGML_MIXED }, */
 #define T_OL		0x0800, 0x0C400,0x8FFFF,0x37680,0xB7FB7,0x88F7F,0x00000
- /* { "OPTION"	, option_attr,	HTML_OPTION_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_OPTION	0x8000,	0x00000,0x00000,0x00040,0x37FFF,0x8031F,0x00001
- /* { "OVERLAY"	, overlay_attr,	HTML_OVERLAY_ATTRIBUTES, SGML_EMPTY }, */
+ /* { "OPTION"	, option_attr,	HTML_OPTION_ATTRIBUTES, SGML_EMPTY }, */
+#define T_OPTION	0x8000, 0x00000,0x00000,0x00040,0x37FFF,0x8031F,0x00001
+ /* { "OVERLAY" , overlay_attr, HTML_OVERLAY_ATTRIBUTES, SGML_EMPTY }, */
 #define T_OVERLAY	0x4000, 0x00000,0x00000,0x00200,0x37FBF,0x83F7F,0x00001
  /* { "P"	, p_attr,	HTML_P_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_P   		0x0100,	0x0B04F,0x8FFFF,0x36680,0xB6FA7,0x80117,0x00001
+#define T_P		0x0100, 0x0B04F,0x8FFFF,0x36680,0xB6FA7,0x80117,0x00001
  /* { "PARAM"	, param_attr,	HTML_PARAM_ATTRIBUTES,	SGML_EMPTY }, */
-#define	T_PARAM		0x1000, 0x00000,0x00000,0x03000,0x17FFF,0x81777,0x00001
+#define T_PARAM 	0x1000, 0x00000,0x00000,0x03000,0x17FFF,0x81777,0x00001
  /* { "PLAINTEXT", gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_LITTERAL }, */
 #define T_PLAINTEXT	0x10000,0xFFFFF,0xFFFFF,0x90000,0x90000,0x3FFFF,0x00001
  /* { "PRE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
-#define T_PRE		0x0200,	0x0F04F,0x0F05E,0x36680,0x36FF0,0x8071E,0x00000
+#define T_PRE		0x0200, 0x0F04F,0x0F05E,0x36680,0x36FF0,0x8071E,0x00000
  /* { "Q"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_Q		0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FAF,0x00003,0x00000
  /* { "S"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_S		0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00000
  /* { "SAMP"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_SAMP		0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00002,0x00000
- /* { "SCRIPT"	, script_attr,	HTML_SCRIPT_ATTRIBUTES,	SGML_LITTERAL }, */
-#define T_SCRIPT	0x2000,	0x00000,0x00000,0x77F9F,0x77FFF,0x87F5F,0x00000
- /* { "SELECT"	, select_attr,	HTML_SELECT_ATTRIBUTES,	SGML_MIXED }, */
-#define T_SELECT	0x0040,	0x08000,0x08000,0x03FAF,0x13FBF,0x80F5F,0x00008
+ /* { "SCRIPT"	, script_attr,	HTML_SCRIPT_ATTRIBUTES, SGML_LITTERAL }, */
+#define T_SCRIPT	0x2000, 0x00000,0x00000,0x77F9F,0x77FFF,0x87F5F,0x00000
+ /* { "SELECT"	, select_attr,	HTML_SELECT_ATTRIBUTES, SGML_MIXED }, */
+#define T_SELECT	0x0040, 0x08000,0x08000,0x03FAF,0x13FBF,0x80F5F,0x00008
 #define T_SHY		0x1000, 0x00000,0x00000,0x3779F,0x77FBF,0x8101F,0x00001
  /* { "SMALL"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
-#define T_SMALL		0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00004
+#define T_SMALL 	0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00004
  /* { "SPAN"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_SPAN		0x0002, 0x0B04F,0x0FFFF,0x2778F,0x77FBF,0x80003,0x00000
  /* { "SPOT"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_SPOT		0x0008,	0x00000,0x00000,0x3FFF7,0x3FFF7,0x00008,0x00001
+#define T_SPOT		0x0008, 0x00000,0x00000,0x3FFF7,0x3FFF7,0x00008,0x00001
  /* { "STRIKE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_STRIKE	0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00000
  /* { "STRONG"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_STRONG	0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FAF,0x00003,0x00000
  /* { "STYLE"	, style_attr,	HTML_STYLE_ATTRIBUTES,	SGML_LITTERAL }, */
-#define T_STYLE		0x40000,0x00000,0x00000,0x7638F,0x76FAF,0x8001F,0x00000
+#define T_STYLE 	0x40000,0x00000,0x00000,0x7638F,0x76FAF,0x8001F,0x00000
  /* { "SUB"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
-#define T_SUB		0x0004,	0x8B05F,0x8FFFF,0x8779F,0xF7FBF,0x00007,0x00000
+#define T_SUB		0x0004, 0x8B05F,0x8FFFF,0x8779F,0xF7FBF,0x00007,0x00000
  /* { "SUP"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_SUP		0x0004, 0x8B05F,0x8FFFF,0x8779F,0xF7FBF,0x00007,0x00000
  /* { "TAB"	, tab_attr,	HTML_TAB_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_TAB		0x1000,	0x00000,0x00000,0x3778F,0x57FAF,0x00001,0x00001
+#define T_TAB		0x1000, 0x00000,0x00000,0x3778F,0x57FAF,0x00001,0x00001
  /* { "TABLE"	, table_attr,	HTML_TABLE_ATTRIBUTES,	SGML_MIXED }, */
-#define T_TABLE		0x0800, 0x0F1E0,0x8FFFF,0x36680,0xB6FA7,0x8C57F,0x00000
+#define T_TABLE 	0x0800, 0x0F1E0,0x8FFFF,0x36680,0xB6FA7,0x8C57F,0x00000
  /* { "TBODY"	, tr_attr,	HTML_TR_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_TBODY		0x0020, 0x00020,0x8FFFF,0x00880,0xB7FB7,0x8C75F,0x00003
+#define T_TBODY 	0x0020, 0x00020,0x8FFFF,0x00880,0xB7FB7,0x8C75F,0x00003
  /* { "TD"	, td_attr,	HTML_TD_ATTRIBUTES,	SGML_EMPTY }, */
 #define T_TD		0x0400, 0x0FBCF,0x8FFFF,0x00020,0xB7FB7,0x8C75F,0x00001
  /* { "TEXTAREA", textarea_attr,HTML_TEXTAREA_ATTRIBUTES, SGML_LITTERAL }, */
-#define T_TEXTAREA	0x0040,	0x00000,0x00000,0x07F8F,0x33FBF,0x80F5F,0x00000
+#define T_TEXTAREA	0x0040, 0x00000,0x00000,0x07F8F,0x33FBF,0x80F5F,0x00000
  /* { "TEXTFLOW", bodytext_attr,HTML_BODYTEXT_ATTRIBUTES, SGML_MIXED }, */
 #define T_TEXTFLOW	0x20000,0x8FBFF,0x9FFFF,0x977B0,0xB7FB7,0x9B00F,0x00003
  /* { "TFOOT"	, tr_attr,	HTML_TR_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_TFOOT		0x0020, 0x00020,0x8FFFF,0x00800,0xB7FB7,0x8CF5F,0x00001
+#define T_TFOOT 	0x0020, 0x00020,0x8FFFF,0x00800,0xB7FB7,0x8CF5F,0x00001
  /* { "TH"	, td_attr,	HTML_TD_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_TH		0x0400,	0x0FBCF,0x0FFFF,0x00020,0xB7FB7,0x8CF5F,0x00001
+#define T_TH		0x0400, 0x0FBCF,0x0FFFF,0x00020,0xB7FB7,0x8CF5F,0x00001
  /* { "THEAD"	, tr_attr,	HTML_TR_ATTRIBUTES,	SGML_EMPTY }, */
-#define T_THEAD		0x0020, 0x00020,0x8FFFF,0x00880,0xB7FB7,0x8CF5F,0x00001
- /* { "TITLE", 	  gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_RCDATA }, */
-#define T_TITLE		0x40000,0x00000,0x00000,0x50000,0x50000,0x0031F,0x00004
+#define T_THEAD 	0x0020, 0x00020,0x8FFFF,0x00880,0xB7FB7,0x8CF5F,0x00001
+ /* { "TITLE",	  gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_RCDATA }, */
+#define T_TITLE 	0x40000,0x00000,0x00000,0x50000,0x50000,0x0031F,0x00004
  /* { "TR"	, tr_attr,	HTML_TR_ATTRIBUTES,	SGML_EMPTY }, */
 #define T_TR		0x0020, 0x00400,0x8FFFF,0x00820,0xB7FB7,0x8C75F,0x00001
  /* { "TT"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
-#define	T_TT		0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00000
+#define T_TT		0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00000
  /* { "U"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
-#define	T_U		0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00004
+#define T_U		0x0001, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00004
  /* { "UL"	, ulist_attr,	HTML_UL_ATTRIBUTES,	SGML_MIXED }, */
-#define T_UL		0x0800,	0x0C480,0x8FFFF,0x36680,0xB7FFF,0x8075F,0x00000
+#define T_UL		0x0800, 0x0C480,0x8FFFF,0x36680,0xB7FFF,0x8075F,0x00000
  /* { "VAR"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED }, */
 #define T_VAR		0x0002, 0x8B04F,0x8FFFF,0xA778F,0xF7FBF,0x00001,0x00000
 #define T_WBR		0x0001, 0x00000,0x00000,0x3778F,0x77FBF,0x8101F,0x00001
@@ -1636,15 +2409,15 @@ static attr ulist_attr[] = {			/* UL attributes */
 **  of the tags_old[] table (otherwise unchanged from original Lynx treatment)
 **  with the tags_new[] table below. - kw
 **
-**    Name, 	Attributes, 	No. of attributes,     content,   extra info...
+**    Name,	Attributes,	No. of attributes,     content,   extra info...
 */
 static HTTag tags_old[HTML_ELEMENTS] = {
     { "A"	, a_attr,	HTML_A_ATTRIBUTES,	SGML_EMPTY,T_A},
     { "ABBREV"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_ABBREV},
-    { "ACRONYM"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_ACRONYM},
-    { "ADDRESS"	, address_attr,	HTML_ADDRESS_ATTRIBUTES, SGML_MIXED,T_ADDRESS},
+    { "ACRONYM" , gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_ACRONYM},
+    { "ADDRESS" , address_attr, HTML_ADDRESS_ATTRIBUTES, SGML_MIXED,T_ADDRESS},
     { "APPLET"	, applet_attr,	HTML_APPLET_ATTRIBUTES, SGML_MIXED,T_APPLET},
-    { "AREA"	, area_attr,	HTML_AREA_ATTRIBUTES,   SGML_EMPTY,T_AREA},
+    { "AREA"	, area_attr,	HTML_AREA_ATTRIBUTES,	SGML_EMPTY,T_AREA},
     { "AU"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_AU},
     { "AUTHOR"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_AUTHOR},
     { "B"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY,T_B},
@@ -1652,7 +2425,7 @@ static HTTag tags_old[HTML_ELEMENTS] = {
     { "BASE"	, base_attr,	HTML_BASE_ATTRIBUTES,	SGML_EMPTY,T_BASE},
     { "BASEFONT", font_attr,	HTML_FONT_ATTRIBUTES,	SGML_EMPTY,T_BASEFONT},
     { "BDO"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_BDO},
-    { "BGSOUND"	, bgsound_attr,	HTML_BGSOUND_ATTRIBUTES, SGML_EMPTY,T_BGSOUND},
+    { "BGSOUND" , bgsound_attr, HTML_BGSOUND_ATTRIBUTES, SGML_EMPTY,T_BGSOUND},
     { "BIG"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_BIG},
     { "BLINK"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY,T_BLINK},
     { "BLOCKQUOTE", bq_attr,	HTML_BQ_ATTRIBUTES,	SGML_MIXED,T_BLOCKQUOTE},
@@ -1660,15 +2433,15 @@ static HTTag tags_old[HTML_ELEMENTS] = {
     { "BODYTEXT", bodytext_attr,HTML_BODYTEXT_ATTRIBUTES, SGML_MIXED,T_BODYTEXT},
     { "BQ"	, bq_attr,	HTML_BQ_ATTRIBUTES,	SGML_MIXED,T_BQ},
     { "BR"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY,T_BR},
-    { "BUTTON"	, button_attr,	HTML_BUTTON_ATTRIBUTES,	SGML_MIXED,T_BUTTON},
-    { "CAPTION"	, caption_attr,	HTML_CAPTION_ATTRIBUTES, SGML_MIXED,T_CAPTION},
+    { "BUTTON"	, button_attr,	HTML_BUTTON_ATTRIBUTES, SGML_MIXED,T_BUTTON},
+    { "CAPTION" , caption_attr, HTML_CAPTION_ATTRIBUTES, SGML_MIXED,T_CAPTION},
     { "CENTER"	, div_attr,	HTML_DIV_ATTRIBUTES,	SGML_MIXED,T_CENTER},
     { "CITE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY,T_CITE},
     { "CODE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_CODE},
     { "COL"	, col_attr,	HTML_COL_ATTRIBUTES,	SGML_EMPTY,T_COL},
     { "COLGROUP", col_attr,	HTML_COL_ATTRIBUTES,	SGML_EMPTY,T_COLGROUP},
-    { "COMMENT"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_COMMENT},
-    { "CREDIT"	, credit_attr,	HTML_CREDIT_ATTRIBUTES,	SGML_MIXED,T_CREDIT},
+    { "COMMENT" , gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_COMMENT},
+    { "CREDIT"	, credit_attr,	HTML_CREDIT_ATTRIBUTES, SGML_MIXED,T_CREDIT},
     { "DD"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY,T_DD},
     { "DEL"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_DEL},
     { "DFN"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_DFN},
@@ -1697,31 +2470,31 @@ static HTTag tags_old[HTML_ELEMENTS] = {
     { "HTML"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_HTML},
     { "HY"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY,T_HY},
     { "I"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY,T_I},
-    { "IFRAME"	, iframe_attr,	HTML_IFRAME_ATTRIBUTES,	SGML_MIXED,T_IFRAME},
-    { "IMG"     , img_attr,	HTML_IMG_ATTRIBUTES,	SGML_EMPTY,T_IMG},
-    { "INPUT"   , input_attr,	HTML_INPUT_ATTRIBUTES,	SGML_EMPTY,T_INPUT},
+    { "IFRAME"	, iframe_attr,	HTML_IFRAME_ATTRIBUTES, SGML_MIXED,T_IFRAME},
+    { "IMG"	, img_attr,	HTML_IMG_ATTRIBUTES,	SGML_EMPTY,T_IMG},
+    { "INPUT"	, input_attr,	HTML_INPUT_ATTRIBUTES,	SGML_EMPTY,T_INPUT},
     { "INS"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_INS},
-    { "ISINDEX" , isindex_attr,	HTML_ISINDEX_ATTRIBUTES,SGML_EMPTY,T_ISINDEX},
+    { "ISINDEX" , isindex_attr, HTML_ISINDEX_ATTRIBUTES,SGML_EMPTY,T_ISINDEX},
     { "KBD"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_KBD},
-    { "KEYGEN"	, keygen_attr,	HTML_KEYGEN_ATTRIBUTES,	SGML_EMPTY,T_KEYGEN},
+    { "KEYGEN"	, keygen_attr,	HTML_KEYGEN_ATTRIBUTES, SGML_EMPTY,T_KEYGEN},
     { "LABEL"	, label_attr,	HTML_LABEL_ATTRIBUTES,	SGML_MIXED,T_LABEL},
-    { "LEGEND"	, legend_attr,	HTML_LEGEND_ATTRIBUTES,	SGML_MIXED,T_LEGEND},
+    { "LEGEND"	, legend_attr,	HTML_LEGEND_ATTRIBUTES, SGML_MIXED,T_LEGEND},
     { "LH"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY,T_LH},
     { "LI"	, list_attr,	HTML_LI_ATTRIBUTES,	SGML_EMPTY,T_LI},
     { "LINK"	, link_attr,	HTML_LINK_ATTRIBUTES,	SGML_EMPTY,T_LINK},
-    { "LISTING"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_LITTERAL,T_LISTING},
+    { "LISTING" , gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_LITTERAL,T_LISTING},
     { "MAP"	, map_attr,	HTML_MAP_ATTRIBUTES,	SGML_MIXED,T_MAP},
-    { "MARQUEE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_MARQUEE},
+    { "MARQUEE" , gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_MARQUEE},
     { "MATH"	, math_attr,	HTML_MATH_ATTRIBUTES,	SGML_LITTERAL,T_MATH},
     { "MENU"	, ulist_attr,	HTML_UL_ATTRIBUTES,	SGML_MIXED,T_MENU},
     { "META"	, meta_attr,	HTML_META_ATTRIBUTES,	SGML_EMPTY,T_META},
-    { "NEXTID"  , nextid_attr,	1,			SGML_EMPTY,T_NEXTID},
+    { "NEXTID"	, nextid_attr,	1,			SGML_EMPTY,T_NEXTID},
     { "NOFRAMES", gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_NOFRAMES},
     { "NOTE"	, note_attr,	HTML_NOTE_ATTRIBUTES,	SGML_MIXED,T_NOTE},
-    { "OBJECT"	, object_attr,	HTML_OBJECT_ATTRIBUTES,	SGML_LITTERAL,T_OBJECT},
+    { "OBJECT"	, object_attr,	HTML_OBJECT_ATTRIBUTES, SGML_LITTERAL,T_OBJECT},
     { "OL"	, olist_attr,	HTML_OL_ATTRIBUTES,	SGML_MIXED,T_OL},
-    { "OPTION"	, option_attr,	HTML_OPTION_ATTRIBUTES,	SGML_EMPTY,T_OPTION},
-    { "OVERLAY"	, overlay_attr,	HTML_OVERLAY_ATTRIBUTES, SGML_EMPTY,T_OVERLAY},
+    { "OPTION"	, option_attr,	HTML_OPTION_ATTRIBUTES, SGML_EMPTY,T_OPTION},
+    { "OVERLAY" , overlay_attr, HTML_OVERLAY_ATTRIBUTES, SGML_EMPTY,T_OVERLAY},
     { "P"	, p_attr,	HTML_P_ATTRIBUTES,	SGML_EMPTY,T_P},
     { "PARAM"	, param_attr,	HTML_PARAM_ATTRIBUTES,	SGML_EMPTY,T_PARAM},
     { "PLAINTEXT", gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_LITTERAL,T_PLAINTEXT},
@@ -1729,8 +2502,8 @@ static HTTag tags_old[HTML_ELEMENTS] = {
     { "Q"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_Q},
     { "S"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_S},
     { "SAMP"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_SAMP},
-    { "SCRIPT"	, script_attr,	HTML_SCRIPT_ATTRIBUTES,	SGML_LITTERAL,T_SCRIPT},
-    { "SELECT"	, select_attr,	HTML_SELECT_ATTRIBUTES,	SGML_MIXED,T_SELECT},
+    { "SCRIPT"	, script_attr,	HTML_SCRIPT_ATTRIBUTES, SGML_LITTERAL,T_SCRIPT},
+    { "SELECT"	, select_attr,	HTML_SELECT_ATTRIBUTES, SGML_MIXED,T_SELECT},
     { "SHY"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY,T_SHY},
     { "SMALL"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_SMALL},
     { "SPAN"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_SPAN},
@@ -1749,7 +2522,7 @@ static HTTag tags_old[HTML_ELEMENTS] = {
     { "TFOOT"	, tr_attr,	HTML_TR_ATTRIBUTES,	SGML_EMPTY,T_TFOOT},
     { "TH"	, td_attr,	HTML_TD_ATTRIBUTES,	SGML_EMPTY,T_TH},
     { "THEAD"	, tr_attr,	HTML_TR_ATTRIBUTES,	SGML_EMPTY,T_THEAD},
-    { "TITLE", 	  gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_RCDATA,T_TITLE},
+    { "TITLE",	  gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_RCDATA,T_TITLE},
     { "TR"	, tr_attr,	HTML_TR_ATTRIBUTES,	SGML_EMPTY,T_TR},
     { "TT"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY,T_TT},
     { "U"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY,T_U},
@@ -1762,10 +2535,10 @@ static HTTag tags_old[HTML_ELEMENTS] = {
 static HTTag tags_new[HTML_ELEMENTS] = {
     { "A"	, a_attr,	HTML_A_ATTRIBUTES,	SGML_MIXED,T_A},
     { "ABBREV"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_ABBREV},
-    { "ACRONYM"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_ACRONYM},
-    { "ADDRESS"	, address_attr,	HTML_ADDRESS_ATTRIBUTES, SGML_MIXED,T_ADDRESS},
+    { "ACRONYM" , gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_ACRONYM},
+    { "ADDRESS" , address_attr, HTML_ADDRESS_ATTRIBUTES, SGML_MIXED,T_ADDRESS},
     { "APPLET"	, applet_attr,	HTML_APPLET_ATTRIBUTES, SGML_MIXED,T_APPLET},
-    { "AREA"	, area_attr,	HTML_AREA_ATTRIBUTES,   SGML_EMPTY,T_AREA},
+    { "AREA"	, area_attr,	HTML_AREA_ATTRIBUTES,	SGML_EMPTY,T_AREA},
     { "AU"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_AU},
     { "AUTHOR"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_AUTHOR},
     { "B"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_B},
@@ -1773,7 +2546,7 @@ static HTTag tags_new[HTML_ELEMENTS] = {
     { "BASE"	, base_attr,	HTML_BASE_ATTRIBUTES,	SGML_EMPTY,T_BASE},
     { "BASEFONT", font_attr,	HTML_FONT_ATTRIBUTES,	SGML_EMPTY,T_BASEFONT},
     { "BDO"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_BDO},
-    { "BGSOUND"	, bgsound_attr,	HTML_BGSOUND_ATTRIBUTES, SGML_EMPTY,T_BGSOUND},
+    { "BGSOUND" , bgsound_attr, HTML_BGSOUND_ATTRIBUTES, SGML_EMPTY,T_BGSOUND},
     { "BIG"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_BIG},
     { "BLINK"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_BLINK},
     { "BLOCKQUOTE", bq_attr,	HTML_BQ_ATTRIBUTES,	SGML_MIXED,T_BLOCKQUOTE},
@@ -1781,15 +2554,15 @@ static HTTag tags_new[HTML_ELEMENTS] = {
     { "BODYTEXT", bodytext_attr,HTML_BODYTEXT_ATTRIBUTES, SGML_MIXED,T_BODYTEXT},
     { "BQ"	, bq_attr,	HTML_BQ_ATTRIBUTES,	SGML_MIXED,T_BQ},
     { "BR"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY,T_BR},
-    { "BUTTON"	, button_attr,	HTML_BUTTON_ATTRIBUTES,	SGML_MIXED,T_BUTTON},
-    { "CAPTION"	, caption_attr,	HTML_CAPTION_ATTRIBUTES, SGML_MIXED,T_CAPTION},
+    { "BUTTON"	, button_attr,	HTML_BUTTON_ATTRIBUTES, SGML_MIXED,T_BUTTON},
+    { "CAPTION" , caption_attr, HTML_CAPTION_ATTRIBUTES, SGML_MIXED,T_CAPTION},
     { "CENTER"	, div_attr,	HTML_DIV_ATTRIBUTES,	SGML_MIXED,T_CENTER},
     { "CITE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_CITE},
     { "CODE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_CODE},
     { "COL"	, col_attr,	HTML_COL_ATTRIBUTES,	SGML_EMPTY,T_COL},
     { "COLGROUP", col_attr,	HTML_COL_ATTRIBUTES,	SGML_ELEMENT,T_COLGROUP},
-    { "COMMENT"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_PCDATA,T_COMMENT},
-    { "CREDIT"	, credit_attr,	HTML_CREDIT_ATTRIBUTES,	SGML_MIXED,T_CREDIT},
+    { "COMMENT" , gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_PCDATA,T_COMMENT},
+    { "CREDIT"	, credit_attr,	HTML_CREDIT_ATTRIBUTES, SGML_MIXED,T_CREDIT},
     { "DD"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_DD},
     { "DEL"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_DEL},
     { "DFN"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_DFN},
@@ -1818,31 +2591,31 @@ static HTTag tags_new[HTML_ELEMENTS] = {
     { "HTML"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_HTML},
     { "HY"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY,T_HY},
     { "I"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_I},
-    { "IFRAME"	, iframe_attr,	HTML_IFRAME_ATTRIBUTES,	SGML_MIXED,T_IFRAME},
-    { "IMG"     , img_attr,	HTML_IMG_ATTRIBUTES,	SGML_EMPTY,T_IMG},
-    { "INPUT"   , input_attr,	HTML_INPUT_ATTRIBUTES,	SGML_EMPTY,T_INPUT},
+    { "IFRAME"	, iframe_attr,	HTML_IFRAME_ATTRIBUTES, SGML_MIXED,T_IFRAME},
+    { "IMG"	, img_attr,	HTML_IMG_ATTRIBUTES,	SGML_EMPTY,T_IMG},
+    { "INPUT"	, input_attr,	HTML_INPUT_ATTRIBUTES,	SGML_EMPTY,T_INPUT},
     { "INS"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_INS},
-    { "ISINDEX" , isindex_attr,	HTML_ISINDEX_ATTRIBUTES,SGML_EMPTY,T_ISINDEX},
+    { "ISINDEX" , isindex_attr, HTML_ISINDEX_ATTRIBUTES,SGML_EMPTY,T_ISINDEX},
     { "KBD"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_KBD},
-    { "KEYGEN"	, keygen_attr,	HTML_KEYGEN_ATTRIBUTES,	SGML_EMPTY,T_KEYGEN},
+    { "KEYGEN"	, keygen_attr,	HTML_KEYGEN_ATTRIBUTES, SGML_EMPTY,T_KEYGEN},
     { "LABEL"	, label_attr,	HTML_LABEL_ATTRIBUTES,	SGML_MIXED,T_LABEL},
-    { "LEGEND"	, legend_attr,	HTML_LEGEND_ATTRIBUTES,	SGML_MIXED,T_LEGEND},
+    { "LEGEND"	, legend_attr,	HTML_LEGEND_ATTRIBUTES, SGML_MIXED,T_LEGEND},
     { "LH"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_LH},
     { "LI"	, list_attr,	HTML_LI_ATTRIBUTES,	SGML_MIXED,T_LI},
     { "LINK"	, link_attr,	HTML_LINK_ATTRIBUTES,	SGML_EMPTY,T_LINK},
-    { "LISTING"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_LITTERAL,T_LISTING},
+    { "LISTING" , gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_LITTERAL,T_LISTING},
     { "MAP"	, map_attr,	HTML_MAP_ATTRIBUTES,	SGML_ELEMENT,T_MAP},
-    { "MARQUEE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_MARQUEE},
+    { "MARQUEE" , gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_MARQUEE},
     { "MATH"	, math_attr,	HTML_MATH_ATTRIBUTES,	SGML_LITTERAL,T_MATH},
     { "MENU"	, ulist_attr,	HTML_UL_ATTRIBUTES,	SGML_MIXED,T_MENU},
     { "META"	, meta_attr,	HTML_META_ATTRIBUTES,	SGML_EMPTY,T_META},
-    { "NEXTID"  , nextid_attr,	1,			SGML_EMPTY,T_NEXTID},
+    { "NEXTID"	, nextid_attr,	1,			SGML_EMPTY,T_NEXTID},
     { "NOFRAMES", gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_NOFRAMES},
     { "NOTE"	, note_attr,	HTML_NOTE_ATTRIBUTES,	SGML_MIXED,T_NOTE},
-    { "OBJECT"	, object_attr,	HTML_OBJECT_ATTRIBUTES,	SGML_LITTERAL,T_OBJECT},
+    { "OBJECT"	, object_attr,	HTML_OBJECT_ATTRIBUTES, SGML_LITTERAL,T_OBJECT},
     { "OL"	, olist_attr,	HTML_OL_ATTRIBUTES,	SGML_MIXED,T_OL},
-    { "OPTION"	, option_attr,	HTML_OPTION_ATTRIBUTES,	SGML_PCDATA,T_OPTION},
-    { "OVERLAY"	, overlay_attr,	HTML_OVERLAY_ATTRIBUTES, SGML_PCDATA,T_OVERLAY},
+    { "OPTION"	, option_attr,	HTML_OPTION_ATTRIBUTES, SGML_PCDATA,T_OPTION},
+    { "OVERLAY" , overlay_attr, HTML_OVERLAY_ATTRIBUTES, SGML_PCDATA,T_OVERLAY},
     { "P"	, p_attr,	HTML_P_ATTRIBUTES,	SGML_MIXED,T_P},
     { "PARAM"	, param_attr,	HTML_PARAM_ATTRIBUTES,	SGML_EMPTY,T_PARAM},
     { "PLAINTEXT", gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_LITTERAL,T_PLAINTEXT},
@@ -1850,8 +2623,8 @@ static HTTag tags_new[HTML_ELEMENTS] = {
     { "Q"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_Q},
     { "S"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_S},
     { "SAMP"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_SAMP},
-    { "SCRIPT"	, script_attr,	HTML_SCRIPT_ATTRIBUTES,	SGML_LITTERAL,T_SCRIPT},
-    { "SELECT"	, select_attr,	HTML_SELECT_ATTRIBUTES,	SGML_ELEMENT,T_SELECT},
+    { "SCRIPT"	, script_attr,	HTML_SCRIPT_ATTRIBUTES, SGML_LITTERAL,T_SCRIPT},
+    { "SELECT"	, select_attr,	HTML_SELECT_ATTRIBUTES, SGML_ELEMENT,T_SELECT},
     { "SHY"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY,T_SHY},
     { "SMALL"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_SMALL},
     { "SPAN"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_SPAN},
@@ -1870,7 +2643,7 @@ static HTTag tags_new[HTML_ELEMENTS] = {
     { "TFOOT"	, tr_attr,	HTML_TR_ATTRIBUTES,	SGML_ELEMENT,T_TFOOT},
     { "TH"	, td_attr,	HTML_TD_ATTRIBUTES,	SGML_MIXED,T_TH},
     { "THEAD"	, tr_attr,	HTML_TR_ATTRIBUTES,	SGML_ELEMENT,T_THEAD},
-    { "TITLE", 	  gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_PCDATA,T_TITLE},
+    { "TITLE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_PCDATA,T_TITLE},
     { "TR"	, tr_attr,	HTML_TR_ATTRIBUTES,	SGML_MIXED,T_TR},
     { "TT"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_TT},
     { "U"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED,T_U},
@@ -1934,48 +2707,48 @@ struct _HTStructured {
 };
 
 PUBLIC void HTStartAnchor ARGS3(
-	HTStructured *,		obj,
+	HTStructured *, 	obj,
 	CONST char *,		name,
 	CONST char *,		href)
 {
     BOOL		present[HTML_A_ATTRIBUTES];
-    CONST char * 	value[HTML_A_ATTRIBUTES];
+    CONST char *	value[HTML_A_ATTRIBUTES];
     int i;
 
     for (i = 0; i < HTML_A_ATTRIBUTES; i++)
 	 present[i] = NO;
 
     if (name && *name) {
-    	present[HTML_A_NAME] = YES;
+	present[HTML_A_NAME] = YES;
 	value[HTML_A_NAME] = (CONST char *)name;
     }
     if (href) {
-        present[HTML_A_HREF] = YES;
-        value[HTML_A_HREF] = (CONST char *)href;
+	present[HTML_A_HREF] = YES;
+	value[HTML_A_HREF] = (CONST char *)href;
     }
 
     (*obj->isa->start_element)(obj, HTML_A, present, value, -1, 0);
 }
 
 PUBLIC void HTStartIsIndex ARGS3(
-	HTStructured *,		obj,
+	HTStructured *, 	obj,
 	CONST char *,		prompt,
 	CONST char *,		href)
 {
     BOOL		present[HTML_ISINDEX_ATTRIBUTES];
-    CONST char * 	value[HTML_ISINDEX_ATTRIBUTES];
+    CONST char *	value[HTML_ISINDEX_ATTRIBUTES];
     int i;
 
     for (i = 0; i < HTML_ISINDEX_ATTRIBUTES; i++)
 	present[i] = NO;
 
     if (prompt && *prompt) {
-    	present[HTML_ISINDEX_PROMPT] = YES;
+	present[HTML_ISINDEX_PROMPT] = YES;
 	value[HTML_ISINDEX_PROMPT] = (CONST char *)prompt;
     }
     if (href) {
-        present[HTML_ISINDEX_HREF] = YES;
-        value[HTML_ISINDEX_HREF] = (CONST char *)href;
+	present[HTML_ISINDEX_HREF] = YES;
+	value[HTML_ISINDEX_HREF] = (CONST char *)href;
     }
 
     (*obj->isa->start_element)(obj, HTML_ISINDEX , present, value, -1, 0);
diff --git a/WWW/Library/Implementation/HTMLDTD.h b/WWW/Library/Implementation/HTMLDTD.h
index 1e5646fd..15004a1d 100644
--- a/WWW/Library/Implementation/HTMLDTD.h
+++ b/WWW/Library/Implementation/HTMLDTD.h
@@ -1,15 +1,14 @@
-/*                               The HTML DTD -- software interface in libwww
-                              HTML DTD - SOFTWARE INTERFACE
-                                             
+/*				 The HTML DTD -- software interface in libwww
+			      HTML DTD - SOFTWARE INTERFACE
+
    SGML purists should excuse the use of the term "DTD" in this file to
    represent DTD-related information which is not exactly a DTD itself.
-   
+
    The C modular structure doesn't work very well here, as the dtd is
    partly in the .h and partly in the .c which are not very independent.
    Tant pis.
-   
- */
 
+ */
 #ifndef HTMLDTD_H
 #define HTMLDTD_H
 
@@ -41,24 +40,24 @@ Element Numbers
 
    Must Match all tables by element!
    These include tables in HTMLDTD.c and code in HTML.c.
-   
+
  */
 typedef enum _HTMLElement {
-        HTML_A,
-        HTML_ABBREV,
-        HTML_ACRONYM,
-        HTML_ADDRESS,
+	HTML_A,
+	HTML_ABBREV,
+	HTML_ACRONYM,
+	HTML_ADDRESS,
 	HTML_APPLET,
 	HTML_AREA,
-        HTML_AU,
-        HTML_AUTHOR,
-        HTML_B,
+	HTML_AU,
+	HTML_AUTHOR,
+	HTML_B,
 	HTML_BANNER,
 	HTML_BASE,
 	HTML_BASEFONT,
-        HTML_BDO,
+	HTML_BDO,
 	HTML_BGSOUND,
-        HTML_BIG,
+	HTML_BIG,
 	HTML_BLINK,
 	HTML_BLOCKQUOTE,
 	HTML_BODY,
@@ -66,7 +65,7 @@ typedef enum _HTMLElement {
 	HTML_BQ,
 	HTML_BR,
 	HTML_BUTTON,
-        HTML_CAPTION,
+	HTML_CAPTION,
 	HTML_CENTER,
 	HTML_CITE,
 	HTML_CODE,
@@ -74,15 +73,15 @@ typedef enum _HTMLElement {
 	HTML_COLGROUP,
 	HTML_COMMENT,
 	HTML_CREDIT,
-        HTML_DD,
-        HTML_DEL,
+	HTML_DD,
+	HTML_DEL,
 	HTML_DFN,
 	HTML_DIR,
 	HTML_DIV,
-        HTML_DL,
+	HTML_DL,
 	HTML_DLC,
 	HTML_DT,
-        HTML_EM,
+	HTML_EM,
 	HTML_EMBED,
 	HTML_FIELDSET,
 	HTML_FIG,
@@ -91,7 +90,7 @@ typedef enum _HTMLElement {
 	HTML_FORM,
 	HTML_FRAME,
 	HTML_FRAMESET,
-        HTML_H1,
+	HTML_H1,
 	HTML_H2,
 	HTML_H3,
 	HTML_H4,
@@ -101,21 +100,21 @@ typedef enum _HTMLElement {
 	HTML_HR,
 	HTML_HTML,
 	HTML_HY,
-        HTML_I,
-        HTML_IFRAME,
+	HTML_I,
+	HTML_IFRAME,
 	HTML_IMG,
 	HTML_INPUT,
-        HTML_INS,
+	HTML_INS,
 	HTML_ISINDEX,
-        HTML_KBD,
-        HTML_KEYGEN,
+	HTML_KBD,
+	HTML_KEYGEN,
 	HTML_LABEL,
 	HTML_LEGEND,
 	HTML_LH,
 	HTML_LI,
 	HTML_LINK,
 	HTML_LISTING,
-        HTML_MAP,
+	HTML_MAP,
 	HTML_MARQUEE,
 	HTML_MATH,
 	HTML_MENU,
@@ -123,8 +122,8 @@ typedef enum _HTMLElement {
 	HTML_NEXTID,
 	HTML_NOFRAMES,
 	HTML_NOTE,
-        HTML_OBJECT,
-        HTML_OL,
+	HTML_OBJECT,
+	HTML_OL,
 	HTML_OPTION,
 	HTML_OVERLAY,
 	HTML_P,
@@ -132,19 +131,19 @@ typedef enum _HTMLElement {
 	HTML_PLAINTEXT,
 	HTML_PRE,
 	HTML_Q,
-        HTML_S,
-        HTML_SAMP,
+	HTML_S,
+	HTML_SAMP,
 	HTML_SCRIPT,
 	HTML_SELECT,
 	HTML_SHY,
-        HTML_SMALL,
+	HTML_SMALL,
 	HTML_SPAN,
 	HTML_SPOT,
 	HTML_STRIKE,
 	HTML_STRONG,
 	HTML_STYLE,
-        HTML_SUB,
-        HTML_SUP,
+	HTML_SUB,
+	HTML_SUP,
 	HTML_TAB,
 	HTML_TABLE,
 	HTML_TBODY,
@@ -157,10 +156,10 @@ typedef enum _HTMLElement {
 	HTML_TITLE,
 	HTML_TR,
 	HTML_TT,
-        HTML_U,
+	HTML_U,
 	HTML_UL,
-        HTML_VAR,
-        HTML_WBR,
+	HTML_VAR,
+	HTML_WBR,
 	HTML_XMP } HTMLElement;
 
 #define HTML_ELEMENTS 118
@@ -175,10 +174,10 @@ Attribute numbers
 
    Identifier is HTML_<element>_<attribute>.
    These must match the tables in HTML.c!
-   
+
  */
 #define HTML_A_ACCESSKEY        0
-#define HTML_A_CHARSET          1 /* RFC 2070 HTML i18n - kw */
+#define HTML_A_CHARSET          1 /* i18n draft, added tentatively - KW */
 #define HTML_A_CLASS            2
 #define HTML_A_CLEAR            3
 #define HTML_A_COORDS           4
@@ -214,47 +213,47 @@ Attribute numbers
 #define HTML_ADDRESS_TITLE      7
 #define HTML_ADDRESS_ATTRIBUTES 8
 
-#define	HTML_APPLET_ALIGN       0
-#define	HTML_APPLET_ALT         1
-#define	HTML_APPLET_CLASS       2
-#define	HTML_APPLET_CLEAR       3
-#define	HTML_APPLET_CODE        4
-#define	HTML_APPLET_CODEBASE    5
-#define	HTML_APPLET_DIR         6
-#define	HTML_APPLET_DOWNLOAD    7
-#define	HTML_APPLET_HEIGHT      8
-#define	HTML_APPLET_HSPACE      9
-#define	HTML_APPLET_ID         10
-#define	HTML_APPLET_LANG       11
-#define	HTML_APPLET_NAME       12
-#define	HTML_APPLET_STYLE      13
-#define	HTML_APPLET_TITLE      14
-#define	HTML_APPLET_VSPACE     15
-#define	HTML_APPLET_WIDTH      16
-#define	HTML_APPLET_ATTRIBUTES 17
-
-#define	HTML_AREA_ALT           0
-#define	HTML_AREA_CLASS         1
-#define	HTML_AREA_CLEAR         2
-#define	HTML_AREA_COORDS        3
-#define	HTML_AREA_DIR           4
-#define	HTML_AREA_HREF          5
-#define	HTML_AREA_ID            6
-#define	HTML_AREA_LANG          7
-#define	HTML_AREA_NOHREF        8
-#define	HTML_AREA_NONOTAB       9
-#define	HTML_AREA_ONCLICK      10
-#define	HTML_AREA_ONMOUSEOUT   11
-#define	HTML_AREA_ONMOUSEOVER  12
-#define	HTML_AREA_SHAPE        13
-#define	HTML_AREA_STYLE        14
-#define	HTML_AREA_TABINDEX     15
-#define	HTML_AREA_TARGET       16
-#define	HTML_AREA_TITLE        17
-#define	HTML_AREA_ATTRIBUTES   18
+#define HTML_APPLET_ALIGN       0
+#define HTML_APPLET_ALT         1
+#define HTML_APPLET_CLASS       2
+#define HTML_APPLET_CLEAR       3
+#define HTML_APPLET_CODE        4
+#define HTML_APPLET_CODEBASE    5
+#define HTML_APPLET_DIR         6
+#define HTML_APPLET_DOWNLOAD    7
+#define HTML_APPLET_HEIGHT      8
+#define HTML_APPLET_HSPACE      9
+#define HTML_APPLET_ID         10
+#define HTML_APPLET_LANG       11
+#define HTML_APPLET_NAME       12
+#define HTML_APPLET_STYLE      13
+#define HTML_APPLET_TITLE      14
+#define HTML_APPLET_VSPACE     15
+#define HTML_APPLET_WIDTH      16
+#define HTML_APPLET_ATTRIBUTES 17
+
+#define HTML_AREA_ALT           0
+#define HTML_AREA_CLASS         1
+#define HTML_AREA_CLEAR         2
+#define HTML_AREA_COORDS        3
+#define HTML_AREA_DIR           4
+#define HTML_AREA_HREF          5
+#define HTML_AREA_ID            6
+#define HTML_AREA_LANG          7
+#define HTML_AREA_NOHREF        8
+#define HTML_AREA_NONOTAB       9
+#define HTML_AREA_ONCLICK      10
+#define HTML_AREA_ONMOUSEOUT   11
+#define HTML_AREA_ONMOUSEOVER  12
+#define HTML_AREA_SHAPE        13
+#define HTML_AREA_STYLE        14
+#define HTML_AREA_TABINDEX     15
+#define HTML_AREA_TARGET       16
+#define HTML_AREA_TITLE        17
+#define HTML_AREA_ATTRIBUTES   18
 
 #define HTML_BASE_HREF          0
-#define	HTML_BASE_TARGET        1
+#define HTML_BASE_TARGET        1
 #define HTML_BASE_TITLE         2
 #define HTML_BASE_ATTRIBUTES    3
 
@@ -312,20 +311,20 @@ Attribute numbers
 #define HTML_BQ_TITLE           7
 #define HTML_BQ_ATTRIBUTES      8
 
-#define HTML_BUTTON_CLASS      0
-#define HTML_BUTTON_CLEAR      1
-#define HTML_BUTTON_DIR        2
-#define HTML_BUTTON_DISABLED   3
-#define HTML_BUTTON_ID         4
-#define HTML_BUTTON_LANG       5
-#define HTML_BUTTON_NAME       6
-#define HTML_BUTTON_ONFOCUS    7
-#define HTML_BUTTON_ONBLUR     8
-#define HTML_BUTTON_STYLE      9
-#define HTML_BUTTON_TABINDEX  10
-#define HTML_BUTTON_TITLE     11
-#define HTML_BUTTON_TYPE      12
-#define HTML_BUTTON_VALUE     13
+#define HTML_BUTTON_CLASS       0
+#define HTML_BUTTON_CLEAR       1
+#define HTML_BUTTON_DIR         2
+#define HTML_BUTTON_DISABLED    3
+#define HTML_BUTTON_ID          4
+#define HTML_BUTTON_LANG        5
+#define HTML_BUTTON_NAME        6
+#define HTML_BUTTON_ONFOCUS     7
+#define HTML_BUTTON_ONBLUR      8
+#define HTML_BUTTON_STYLE       9
+#define HTML_BUTTON_TABINDEX   10
+#define HTML_BUTTON_TITLE      11
+#define HTML_BUTTON_TYPE       12
+#define HTML_BUTTON_VALUE      13
 #define HTML_BUTTON_ATTRIBUTES 14
 
 #define HTML_CAPTION_ACCESSKEY  0
@@ -447,13 +446,12 @@ Attribute numbers
 #define HTML_FONT_CLEAR         1
 #define HTML_FONT_COLOR         2
 #define HTML_FONT_DIR           3
-#define HTML_FONT_END           4
-#define HTML_FONT_FACE          5
-#define HTML_FONT_ID            6
-#define HTML_FONT_LANG          7
-#define HTML_FONT_SIZE          8
-#define HTML_FONT_STYLE         9
-#define HTML_FONT_ATTRIBUTES   10
+#define HTML_FONT_FACE          4
+#define HTML_FONT_ID            5
+#define HTML_FONT_LANG          6
+#define HTML_FONT_SIZE          7
+#define HTML_FONT_STYLE         8
+#define HTML_FONT_ATTRIBUTES    9
 
 #define HTML_FORM_ACCEPT_CHARSET  0 /* HTML 4.0 draft - kw */
 #define HTML_FORM_ACTION        1
@@ -468,7 +466,7 @@ Attribute numbers
 #define HTML_FORM_SCRIPT       10
 #define HTML_FORM_STYLE        11
 #define HTML_FORM_SUBJECT      12
-#define	HTML_FORM_TARGET       13
+#define HTML_FORM_TARGET       13
 #define HTML_FORM_TITLE        14
 #define HTML_FORM_ATTRIBUTES   15
 
@@ -656,7 +654,7 @@ Attribute numbers
 #define HTML_LINK_REL           5
 #define HTML_LINK_REV           6
 #define HTML_LINK_STYLE         7
-#define	HTML_LINK_TARGET        8
+#define HTML_LINK_TARGET        8
 #define HTML_LINK_TITLE         9
 #define HTML_LINK_TYPE         10
 #define HTML_LINK_ATTRIBUTES   11
@@ -686,7 +684,7 @@ Attribute numbers
 #define HTML_META_NAME          2
 #define HTML_META_ATTRIBUTES    3
 
-#define NEXTID_N 		0
+#define NEXTID_N                0
 
 #define HTML_NOTE_CLASS         0
 #define HTML_NOTE_CLEAR         1
@@ -966,19 +964,19 @@ Start anchor element
 
    It is kinda convenient to have a particular routine for starting an anchor
    element, as everything else for HTML is simple anyway.
-   
+
   ON ENTRY
-  
+
    targetstream points to a structured stream object.
-   
+
    name and href point to attribute strings or are NULL if the attribute is
    to be omitted.
-   
+
  */
 extern void HTStartAnchor PARAMS((
-                HTStructured * targetstream,
-                CONST char *    name,
-                CONST char *    href));
+		HTStructured * targetstream,
+		CONST char *	name,
+		CONST char *	href));
 
 /*
 
@@ -986,19 +984,19 @@ Start IsIndex element - FM
 
    It is kinda convenient to have a particular routine for starting an IsIndex
    element with the prompt and/or href (action) attributes specified.
-   
+
   ON ENTRY
-  
+
    targetstream points to a structured stream object.
-   
+
    prompt and href point to attribute strings or are NULL if the attribute is
    to be omitted.
-   
+
  */
 extern void HTStartIsIndex PARAMS((
-                HTStructured * targetstream,
-                CONST char *    prompt,
-                CONST char *    href));
+		HTStructured * targetstream,
+		CONST char *	prompt,
+		CONST char *	href));
 
 
 #endif /* HTMLDTD_H */
diff --git a/WWW/Library/Implementation/HTMLGen.c b/WWW/Library/Implementation/HTMLGen.c
index 375b619c..a20ad2ad 100644
--- a/WWW/Library/Implementation/HTMLGen.c
+++ b/WWW/Library/Implementation/HTMLGen.c
@@ -8,7 +8,7 @@
 **		Should convert old XMP, LISTING and PLAINTEXT to PRE.
 **
 **	It is not obvious to me right now whether the HEAD should be generated
-**	from the incomming data or the anchor.  Currently it is from the former
+**	from the incomming data or the anchor.	Currently it is from the former
 **	which is cleanest.
 */
 
@@ -40,23 +40,23 @@
 **		-----------
 */
 struct _HTStream {
-	CONST HTStreamClass *		isa;	
-	HTStream * 			target;
+	CONST HTStreamClass *		isa;
+	HTStream *			target;
 	HTStreamClass			targetClass;	/* COPY for speed */
 };
 
 struct _HTStructured {
 	CONST HTStructuredClass *	isa;
-	HTStream * 			target;
+	HTStream *			target;
 	HTStreamClass			targetClass;	/* COPY for speed */
-	
+
 	char				buffer[BUFFER_SIZE+1]; /* 1for NL */
-        int				buffer_maxchars;
+	int				buffer_maxchars;
 	char *				write_pointer;
-        char *				line_break [MAX_CLEANNESS+1];
+	char *				line_break [MAX_CLEANNESS+1];
 	int				cleanness;
 	BOOL				overflowed;
-    	BOOL				delete_line_break_char[MAX_CLEANNESS+1];
+	BOOL				delete_line_break_char[MAX_CLEANNESS+1];
 	BOOL				preformatted;
 	BOOL				escape_specials;
 	BOOL				in_attrval;
@@ -67,18 +67,18 @@ struct _HTStructured {
 */
 
 PRIVATE void flush_breaks ARGS1(
-	HTStructured *,		me)
+	HTStructured *, 	me)
 {
     int i;
     for (i=0; i<= MAX_CLEANNESS; i++) {
-        me->line_break[i] = NULL;
+	me->line_break[i] = NULL;
     }
 }
 
 PRIVATE void HTMLGen_flush ARGS1(
-	HTStructured *,		me)
+	HTStructured *, 	me)
 {
-    (*me->targetClass.put_block)(me->target, 
+    (*me->targetClass.put_block)(me->target,
 				 me->buffer,
 				 me->write_pointer - me->buffer);
     me->write_pointer = me->buffer;
@@ -93,12 +93,12 @@ PRIVATE void HTMLGen_flush ARGS1(
 */
 
 PRIVATE void allow_break ARGS3(
-	HTStructured *,	me,
+	HTStructured *, me,
 	int,		new_cleanness,
 	BOOL,		dlbc)
 {
     if (dlbc && me->write_pointer == me->buffer) dlbc = NO;
-    me->line_break[new_cleanness] = 
+    me->line_break[new_cleanness] =
 			 dlbc ? me->write_pointer - 1 /* Point to space */
 			      : me->write_pointer ;   /* point to gap */
     me->delete_line_break_char[new_cleanness] = dlbc;
@@ -121,7 +121,7 @@ PRIVATE void allow_break ARGS3(
 **	by hand, too, though this is not a primary design consideration. TBL
 */
 PRIVATE void HTMLGen_put_character ARGS2(
-	HTStructured *,		me,
+	HTStructured *, 	me,
 	char,			c)
 {
     if (me->escape_specials && (unsigned char)c < 32) {
@@ -149,18 +149,18 @@ PRIVATE void HTMLGen_put_character ARGS2(
 	    c = ';';
 	}
     }
-    
+
     *me->write_pointer++ = c;
-    
+
     if (c == '\n') {
-        HTMLGen_flush(me);
+	HTMLGen_flush(me);
 	return;
     }
-    
+
     /* Figure our whether we can break at this point
     */
     if ((!me->preformatted && (c == ' ' || c == '\t'))) {
-        int new_cleanness = 3;
+	int new_cleanness = 3;
 	if (me->write_pointer > (me->buffer + 1)) {
 	    char delims[5];
 	    char * p;
@@ -171,25 +171,25 @@ PRIVATE void HTMLGen_put_character ARGS2(
 	}
 	allow_break(me, new_cleanness, YES);
     }
-    
+
     /*
-     *  Flush buffer out when full, or whenever the line is over
-     *  the nominal maximum and we can break at all
+     *	Flush buffer out when full, or whenever the line is over
+     *	the nominal maximum and we can break at all
      */
     if (me->write_pointer >= me->buffer + me->buffer_maxchars ||
 	(me->overflowed && me->cleanness)) {
-    	if (me->cleanness) {
+	if (me->cleanness) {
 	    char line_break_char = me->line_break[me->cleanness][0];
 	    char * saved = me->line_break[me->cleanness];
-	    
-	    if (me->delete_line_break_char[me->cleanness]) saved++; 
-	    me->line_break[me->cleanness][0] = '\n'; 
+
+	    if (me->delete_line_break_char[me->cleanness]) saved++;
+	    me->line_break[me->cleanness][0] = '\n';
 	    (*me->targetClass.put_block)(me->target,
-     					 me->buffer,
+					 me->buffer,
 			       me->line_break[me->cleanness] - me->buffer + 1);
 	    me->line_break[me->cleanness][0] = line_break_char;
 	    {  /* move next line in */
-	    	char * p = saved;
+		char * p = saved;
 		char *q;
 		for (q = me->buffer; p < me->write_pointer; )
 		    *q++ = *p++;
@@ -197,18 +197,18 @@ PRIVATE void HTMLGen_put_character ARGS2(
 	    me->cleanness = 0;
 	    /* Now we have to check whether ther are any perfectly good breaks
 	    ** which weren't good enough for the last line but may be
-	    **  good enough for the next
+	    **	good enough for the next
 	    */
 	    {
-	        int i;
+		int i;
 		for(i=0; i <= MAX_CLEANNESS; i++) {
 		    if (me->line_break[i] != NULL &&
 			me->line_break[i] > saved) {
-		        me->line_break[i] = me->line_break[i] -
+			me->line_break[i] = me->line_break[i] -
 						(saved-me->buffer);
 			me->cleanness = i;
 		    } else {
-		        me->line_break[i] = NULL;
+			me->line_break[i] = NULL;
 		    }
 		}
 	    }
@@ -232,7 +232,7 @@ PRIVATE void HTMLGen_put_character ARGS2(
 **	---------------
 */
 PRIVATE void HTMLGen_put_string ARGS2(
-	HTStructured *,		me,
+	HTStructured *, 	me,
 	CONST char *,		s)
 {
     CONST char * p;
@@ -242,7 +242,7 @@ PRIVATE void HTMLGen_put_string ARGS2(
 }
 
 PRIVATE void HTMLGen_write ARGS3(
-	HTStructured *,		me,
+	HTStructured *, 	me,
 	CONST char *,		s,
 	int,			l)
 {
@@ -261,7 +261,7 @@ PRIVATE void HTMLGen_write ARGS3(
 PRIVATE void HTMLGen_start_element ARGS6(
 	HTStructured *, 	me,
 	int,			element_number,
-	CONST BOOL*,	 	present,
+	CONST BOOL*,		present,
 	CONST char **,		value,
 	int,			charset,
 	char **,		insert)
@@ -313,16 +313,16 @@ PRIVATE void HTMLGen_start_element ARGS6(
 	    allow_break(me, 12, NO);
     }
     HTMLGen_put_string(me, ">"); /* got rid of \n LJM */
-    
+
     /*
-     *  Make very specific HTML assumption that PRE can't be nested!
+     *	Make very specific HTML assumption that PRE can't be nested!
      */
     me->preformatted = (element_number == HTML_PRE)  ? YES : was_preformatted;
 
     /*
-     *  Can break after element start.
-     */ 
-    if (!me->preformatted && tag->contents != SGML_EMPTY) {  
+     *	Can break after element start.
+     */
+    if (!me->preformatted && tag->contents != SGML_EMPTY) {
 	if (HTML_dtd.tags[element_number].contents == SGML_ELEMENT)
 	    allow_break(me, 15, NO);
 	else
@@ -335,22 +335,22 @@ PRIVATE void HTMLGen_start_element ARGS6(
 **
 */
 /*	When we end an element, the style must be returned to that
-**	in effect before that element.  Note that anchors (etc?)
+**	in effect before that element.	Note that anchors (etc?)
 **	don't have an associated style, so that we must scan down the
 **	stack for an element with a defined style. (In fact, the styles
 **	should be linked to the whole stack not just the top one.)
 **	TBL 921119
 */
 PRIVATE void HTMLGen_end_element ARGS3(
-	HTStructured *,		me,
+	HTStructured *, 	me,
 	int,			element_number,
 	char **,		insert)
 {
-    if (!me->preformatted && 
+    if (!me->preformatted &&
 	HTML_dtd.tags[element_number].contents != SGML_EMPTY) {
-    	/*
+	/*
 	 *  Can break before element end.
-	 */ 
+	 */
 	if (HTML_dtd.tags[element_number].contents == SGML_ELEMENT)
 	    allow_break(me, 14, NO);
 	else
@@ -369,17 +369,19 @@ PRIVATE void HTMLGen_end_element ARGS3(
 **
 */
 PRIVATE int HTMLGen_put_entity ARGS2(
-	HTStructured *,		me,
+	HTStructured *, 	me,
 	int,			entity_number)
 {
     int nent = HTML_dtd.number_of_entities;
-  
+
     HTMLGen_put_character(me, '&');
-    if (entity_number < nent)  
+    if (entity_number < nent) {
       HTMLGen_put_string(me, HTML_dtd.entity_names[entity_number]);
-    else
+    } else {
       HTMLGen_put_string(me,
-			 HTML_dtd.extra_entity_info[entity_number-nent].name);
+			 HTML_dtd.extra_entity_info[entity_number-nent].name
+			 );
+    }
     HTMLGen_put_character(me, ';');
     return HT_OK;
 }
@@ -389,7 +391,7 @@ PRIVATE int HTMLGen_put_entity ARGS2(
 **
 */
 PRIVATE void HTMLGen_free ARGS1(
-	HTStructured *,		me)
+	HTStructured *, 	me)
 {
     (*me->targetClass.put_character)(me->target, '\n');
     HTMLGen_flush(me);
@@ -398,21 +400,21 @@ PRIVATE void HTMLGen_free ARGS1(
 }
 
 PRIVATE void PlainToHTML_free ARGS1(
-	HTStructured *,		me)
+	HTStructured *, 	me)
 {
     HTMLGen_end_element(me, HTML_PRE, 0);
     HTMLGen_free(me);
 }
 
 PRIVATE void HTMLGen_abort ARGS2(
-	HTStructured *,		me,
+	HTStructured *, 	me,
 	HTError,		e)
 {
     HTMLGen_free(me);
 }
 
 PRIVATE void PlainToHTML_abort ARGS2(
-	HTStructured *,		me,
+	HTStructured *, 	me,
 	HTError,		e)
 {
     PlainToHTML_free(me);
@@ -422,21 +424,21 @@ PRIVATE void PlainToHTML_abort ARGS2(
 **	-----------------------
 */
 PRIVATE CONST HTStructuredClass HTMLGeneration = /* As opposed to print etc */
-{		
+{
 	"HTMLGen",
 	HTMLGen_free,
 	HTMLGen_abort,
-	HTMLGen_put_character, 	HTMLGen_put_string, HTMLGen_write,
-	HTMLGen_start_element, 	HTMLGen_end_element,
+	HTMLGen_put_character,	HTMLGen_put_string, HTMLGen_write,
+	HTMLGen_start_element,	HTMLGen_end_element,
 	HTMLGen_put_entity
-}; 
+};
 
 /*	Subclass-specific Methods
 **	-------------------------
 */
 extern int LYcols;			/* LYCurses.h, set in LYMain.c	*/
-extern BOOL dump_output_immediately;	/* TRUE if no interactive user 	*/
-extern int dump_output_width;	        /* -width instead of 80		*/
+extern BOOL dump_output_immediately;	/* TRUE if no interactive user	*/
+extern int dump_output_width;		/* -width instead of 80 	*/
 extern BOOLEAN LYPreparsedSource;	/* Show source as preparsed?	*/
 
 PUBLIC HTStructured * HTMLGenerator ARGS1(
@@ -444,23 +446,23 @@ PUBLIC HTStructured * HTMLGenerator ARGS1(
 {
     HTStructured* me = (HTStructured*)malloc(sizeof(*me));
     if (me == NULL)
-        outofmem(__FILE__, "HTMLGenerator");
-    me->isa = &HTMLGeneration;       
+	outofmem(__FILE__, "HTMLGenerator");
+    me->isa = &HTMLGeneration;
 
     me->target = output;
     me->targetClass = *me->target->isa; /* Copy pointers to routines for speed*/
-    
+
     me->write_pointer = me->buffer;
     flush_breaks(me);
     me->line_break[0] = me->buffer;
-    me->cleanness = 	0;
+    me->cleanness =	0;
     me->overflowed = NO;
     me->delete_line_break_char[0] = NO;
-    me->preformatted = 	NO;
+    me->preformatted =	NO;
     me->in_attrval = NO;
 
     /*
-     *  For what line length should we attempt to wrap ? - kw
+     *	For what line length should we attempt to wrap ? - kw
      */
     if (!LYPreparsedSource) {
 	me->buffer_maxchars = 80; /* work as before - kw */
@@ -480,14 +482,14 @@ PUBLIC HTStructured * HTMLGenerator ARGS1(
 
     /*
      *	If dump_output_immediately is set, there likely isn't anything
-     *  after this stream to interpret the Lynx special chars.  Also
-     *  if they get displayed via HTPlain, that will probably make
+     *	after this stream to interpret the Lynx special chars.	Also
+     *	if they get displayed via HTPlain, that will probably make
      *	non-breaking space chars etc. invisible.  So let's translate
-     *  them to numerical character references.  For debugging
-     *  purposes we'll use the new hex format.
+     *	them to numerical character references.  For debugging
+     *	purposes we'll use the new hex format.
      */
     me->escape_specials = LYPreparsedSource;
-	    
+
     return me;
 }
 
@@ -499,39 +501,39 @@ PUBLIC HTStructured * HTMLGenerator ARGS1(
 **	This is just the easiest way of typecasting all the routines.
 */
 PRIVATE CONST HTStructuredClass PlainToHTMLConversion =
-{		
+{
 	"plaintexttoHTML",
-	HTMLGen_free,	
-	PlainToHTML_abort,	
+	HTMLGen_free,
+	PlainToHTML_abort,
 	HTMLGen_put_character,
 	HTMLGen_put_string,
 	HTMLGen_write,
 	NULL,		/* Structured stuff */
 	NULL,
 	NULL
-}; 
+};
 
 /*	HTConverter from plain text to HTML Stream
 **	------------------------------------------
 */
 PUBLIC HTStream* HTPlainToHTML ARGS3(
 	HTPresentation *,	pres,
-	HTParentAnchor *,	anchor,	
+	HTParentAnchor *,	anchor,
 	HTStream *,		sink)
 {
     HTStructured *me = (HTStructured *)malloc(sizeof(*me));
     if (me == NULL)
-        outofmem(__FILE__, "PlainToHTML");
-    me->isa = (CONST HTStructuredClass *)&PlainToHTMLConversion;       
+	outofmem(__FILE__, "PlainToHTML");
+    me->isa = (CONST HTStructuredClass *)&PlainToHTMLConversion;
 
     /*
-     *  Copy pointers to routines for speed.
+     *	Copy pointers to routines for speed.
      */
     me->target = sink;
     me->targetClass = *me->target->isa;
     me->write_pointer = me->buffer;
     flush_breaks(me);
-    me->cleanness = 	0;
+    me->cleanness =	0;
     me->overflowed = NO;
     me->delete_line_break_char[0] = NO;
     /* try to honor -width - kw */
diff --git a/WWW/Library/Implementation/HTNews.c b/WWW/Library/Implementation/HTNews.c
index d8d958d7..2094df68 100644
--- a/WWW/Library/Implementation/HTNews.c
+++ b/WWW/Library/Implementation/HTNews.c
@@ -26,7 +26,7 @@
 #define SNEWS_PORT 563		/* See Lou Montulli */
 #define APPEND			/* Use append methods */
 PUBLIC int HTNewsChunkSize = 30;/* Number of articles for quick display */
-PUBLIC int HTNewsMaxChunk = 40;	/* Largest number of articles in one window */
+PUBLIC int HTNewsMaxChunk = 40; /* Largest number of articles in one window */
 
 #ifndef DEFAULT_NEWS_HOST
 #define DEFAULT_NEWS_HOST "news"
@@ -38,7 +38,7 @@ PUBLIC int HTNewsMaxChunk = 40;	/* Largest number of articles in one window */
 #define NEWS_NETWRITE  NETWRITE
 #define NEWS_NETCLOSE  NETCLOSE
 #define NEXT_CHAR HTGetCharacter()
-			
+
 #include <ctype.h>
 
 #include "HTML.h"
@@ -56,29 +56,29 @@ struct _HTStructured {
 	CONST HTStructuredClass *	isa;
 	/* ... */
 };
-struct _HTStream 
+struct _HTStream
 {
   HTStreamClass * isa;
 };
 
-#define LINE_LENGTH 512			/* Maximum length of line of ARTICLE etc */
+#define LINE_LENGTH 512 		/* Maximum length of line of ARTICLE etc */
 #define GROUP_NAME_LENGTH	256	/* Maximum length of group name */
 extern BOOLEAN scan_for_buried_news_references;
 extern BOOLEAN LYListNewsNumbers;
 extern BOOLEAN LYListNewsDates;
 extern HTCJKlang HTCJK;
 extern int interrupted_in_htgetcharacter;
-extern BOOL keep_mime_headers;   /* Include mime headers and force raw text */
+extern BOOL keep_mime_headers;	 /* Include mime headers and force raw text */
 extern BOOL using_proxy;	/* Are we using an NNTP proxy? */
 
 /*
 **  Module-wide variables.
 */
-PUBLIC  char * HTNewsHost = NULL;		/* Default host */
-PRIVATE char * NewsHost = NULL;			/* Current host */
-PRIVATE char * NewsHREF = NULL;			/* Current HREF prefix */
+PUBLIC	char * HTNewsHost = NULL;		/* Default host */
+PRIVATE char * NewsHost = NULL; 		/* Current host */
+PRIVATE char * NewsHREF = NULL; 		/* Current HREF prefix */
 PRIVATE int s;					/* Socket for NewsHost */
-PRIVATE HTCanPost = FALSE;			/* Current POST permission */
+PRIVATE int HTCanPost = FALSE;			/* Current POST permission */
 PRIVATE char response_text[LINE_LENGTH+1];	/* Last response */
 /* PRIVATE HText *	HT;	*/		/* the new hypertext */
 PRIVATE HTStructured * target;			/* The output sink */
@@ -96,11 +96,11 @@ PRIVATE HTList *NNTP_AuthInfo = NULL;		/* AUTHINFO database */
 #define START(e) (*targetClass.start_element)(target, e, 0, 0, -1, 0)
 #define END(e) (*targetClass.end_element)(target, e, 0)
 #define MAYBE_END(e) if (HTML_dtd.tags[e].contents != SGML_EMPTY) \
-                        (*targetClass.end_element)(target, e, 0)
+			(*targetClass.end_element)(target, e, 0)
 #define FREE_TARGET if (rawtext) (*rawtargetClass._free)(rawtarget); \
-    			else (*targetClass._free)(target)
+			else (*targetClass._free)(target)
 #define ABORT_TARGET if (rawtext) (*rawtargetClass._abort)(rawtarget, NULL); \
-    			else (*targetClass._abort)(target, NULL)
+			else (*targetClass._abort)(target, NULL)
 
 typedef struct _NNTPAuth {
    char * host;
@@ -125,10 +125,10 @@ PRIVATE void free_NNTP_AuthInfo NOARGS
     NNTPAuth *auth = NULL;
 
     if (!cur)
-        return;
+	return;
 
     while (NULL != (auth = (NNTPAuth *)HTList_nextObject(cur))) {
-        FREE(auth->host);
+	FREE(auth->host);
 	FREE(auth->user);
 	FREE(auth->pass);
 	FREE(auth);
@@ -174,38 +174,38 @@ PRIVATE BOOL initialize NOARGS
 #endif
 
     /*
-    **  Get name of Host.
+    **	Get name of Host.
     */
 #ifdef NeXTStep
     if ((cp = NXGetDefaultValue("WorldWideWeb","NewsHost"))==0) {
-        if ((cp = NXGetDefaultValue("News","NewsHost")) == 0) {
+	if ((cp = NXGetDefaultValue("News","NewsHost")) == 0) {
 	    StrAllocCopy(HTNewsHost, DEFAULT_NEWS_HOST);
 	}
     }
     if (cp) {
-        StrAllocCopy(HTNewsHost, cp);
+	StrAllocCopy(HTNewsHost, cp);
 	cp = NULL;
     }
 #else
     if (getenv("NNTPSERVER")) {
-        StrAllocCopy(HTNewsHost, (char *)getenv("NNTPSERVER"));
+	StrAllocCopy(HTNewsHost, (char *)getenv("NNTPSERVER"));
 	if (TRACE) fprintf(stderr, "HTNews: NNTPSERVER defined as `%s'\n",
 		HTNewsHost);
     } else {
-        char server_name[256];
-        FILE* fp = fopen(SERVER_FILE, "r");
-        if (fp) {
+	char server_name[256];
+	FILE* fp = fopen(SERVER_FILE, "r");
+	if (fp) {
 	    if (fscanf(fp, "%s", server_name)==1) {
-	        StrAllocCopy(HTNewsHost, server_name);
+		StrAllocCopy(HTNewsHost, server_name);
 		if (TRACE) fprintf(stderr,
 		"HTNews: File %s defines news host as `%s'\n",
-		        SERVER_FILE, HTNewsHost);
+			SERVER_FILE, HTNewsHost);
 	    }
 	    fclose(fp);
 	}
     }
     if (!HTNewsHost)
-        StrAllocCopy(HTNewsHost, DEFAULT_NEWS_HOST);
+	StrAllocCopy(HTNewsHost, DEFAULT_NEWS_HOST);
 #endif /* NeXTStep */
 
     s = -1;		/* Disconnected */
@@ -217,7 +217,7 @@ PRIVATE BOOL initialize NOARGS
 **	------------------------------------------------------
 **
 ** On entry,
-**	command	points to the command to be sent, including CRLF, or is null
+**	command points to the command to be sent, including CRLF, or is null
 **		pointer if no command to be sent.
 ** On exit,
 **	Negative status indicates transmission error, socket closed.
@@ -225,30 +225,30 @@ PRIVATE BOOL initialize NOARGS
 */
 PRIVATE int response ARGS1(CONST char *,command)
 {
-    int result;    
+    int result;
     char * p = response_text;
     char ch;
 
     if (command) {
-        int status;
+	int status;
 	int length = strlen(command);
 	if (TRACE) fprintf(stderr, "NNTP command to be sent: %s", command);
 #ifdef NOT_ASCII
 	{
-	    CONST char  * p;
-	    char 	* q;
+	    CONST char	* p;
+	    char	* q;
 	    char ascii[LINE_LENGTH+1];
 	    for(p = command, q=ascii; *p; p++, q++) {
 		*q = TOASCII(*p);
 	    }
-            status = NEWS_NETWRITE(s, ascii, length);
+	    status = NEWS_NETWRITE(s, ascii, length);
 	}
 #else
-        status = NEWS_NETWRITE(s, (char *)command, length);
+	status = NEWS_NETWRITE(s, (char *)command, length);
 #endif /* NOT_ASCII */
 	if (status < 0){
 	    if (TRACE) fprintf(stderr,
-	        "HTNews: Unable to send command. Disconnecting.\n");
+		"HTNews: Unable to send command. Disconnecting.\n");
 	    NEWS_NETCLOSE(s);
 	    s = -1;
 	    return status;
@@ -260,7 +260,7 @@ PRIVATE int response ARGS1(CONST char *,command)
 	    (p == &response_text[LINE_LENGTH])) {
 	    *--p = '\0';			/* Terminate the string */
 	    if (TRACE)
-	        fprintf(stderr, "NNTP Response: %s\n", response_text);
+		fprintf(stderr, "NNTP Response: %s\n", response_text);
 	    sscanf(response_text, "%d", &result);
 	    return result;
 	} /* if end of line */
@@ -271,17 +271,17 @@ PRIVATE int response ARGS1(CONST char *,command)
 		if (interrupted_in_htgetcharacter) {
 		    fprintf(stderr,
 			    "HTNews: Interrupted on read, closing socket %d\n",
-		   	    s);
+			    s);
 		} else {
 		    fprintf(stderr,
 			    "HTNews: EOF on read, closing socket %d\n",
-		   	    s);
+			    s);
 		}
 	    }
 	    NEWS_NETCLOSE(s);	/* End of file, close socket */
 	    s = -1;
 	    if (interrupted_in_htgetcharacter) {
-	        interrupted_in_htgetcharacter = 0;
+		interrupted_in_htgetcharacter = 0;
 		return(HT_INTERRUPTED);
 	    }
 	    return((int)EOF);	/* End of file on response */
@@ -301,7 +301,7 @@ PRIVATE BOOL match ARGS2 (CONST char *,unknown, CONST char *,template)
     CONST char * u = unknown;
     CONST char * t = template;
     for (; *u && *t && (TOUPPER(*u) == *t); u++, t++)
-        ; /* Find mismatch or end */
+	; /* Find mismatch or end */
     return (BOOL)(*t == 0);		/* OK if end of template */
 }
 
@@ -314,7 +314,7 @@ typedef enum {
 **  This function handles nntp authentication. - FM
 */
 PRIVATE NNTPAuthResult HTHandleAuthInfo ARGS1(
-	char *,		host)
+	char *, 	host)
 {
     HTList *cur = NULL;
     NNTPAuth *auth = NULL;
@@ -325,16 +325,16 @@ PRIVATE NNTPAuthResult HTHandleAuthInfo ARGS1(
     int status, tries;
 
     /*
-    **  Make sure we have an interactive user and a host. - FM
+    **	Make sure we have an interactive user and a host. - FM
     */
     if (dump_output_immediately || !(host && *host))
-        return NNTPAUTH_ERROR;
+	return NNTPAUTH_ERROR;
 
     /*
-    **  Check for an existing authorization entry. - FM
+    **	Check for an existing authorization entry. - FM
     */
     if (NNTP_AuthInfo != NULL) {
-        cur = NNTP_AuthInfo;
+	cur = NNTP_AuthInfo;
 	while (NULL != (auth = (NNTPAuth *)HTList_nextObject(cur))) {
 	    if (!strcmp(auth->host, host)) {
 		UserName = auth->user;
@@ -348,7 +348,7 @@ PRIVATE NNTPAuthResult HTHandleAuthInfo ARGS1(
     }
 
     /*
-    **  Handle the username. - FM
+    **	Handle the username. - FM
     */
     buffer[511] = '\0';
     tries = 3;
@@ -384,7 +384,7 @@ PRIVATE NNTPAuthResult HTHandleAuthInfo ARGS1(
 	}
 	if (status == 281) {
 	    /*
-	    **  Username is OK and no Password is required. - FM
+	    **  Username is accepted and no password is required. - FM
 	    */
 	    if (auth) {
 		if (auth->user != UserName) {
@@ -392,6 +392,9 @@ PRIVATE NNTPAuthResult HTHandleAuthInfo ARGS1(
 		    auth->user = UserName;
 		}
 	    } else {
+		/*
+		**  Store the accepted username and no password. - FM
+		*/
 		if ((auth =
 		    (NNTPAuth *)calloc(1, sizeof(NNTPAuth))) != NULL) {
 		    StrAllocCopy(auth->host, host);
@@ -403,7 +406,8 @@ PRIVATE NNTPAuthResult HTHandleAuthInfo ARGS1(
 	}
 	if (status != 381) {
 	    /*
-	    **  Not a request for the password, so it must be an error. - FM
+	    **  Not success, nor a request for the password,
+	    **  so it must be an error. - FM
 	    */
 	    HTAlert(response_text);
 	    tries--;
@@ -430,7 +434,7 @@ PRIVATE NNTPAuthResult HTHandleAuthInfo ARGS1(
 
     if (status == 381) {
 	/*
-	**  Username is OK, and a password is required. - FM
+        **  Handle the password. - FM
 	*/
 	tries = 3;
 	while (tries) {
@@ -487,9 +491,10 @@ PRIVATE NNTPAuthResult HTHandleAuthInfo ARGS1(
 		return NNTPAUTH_CLOSE;
 	    }
 	    if (status == 281) {
-		/*
-		**  Password is OK. - FM
-		*/
+	    /*
+	    **	Password also is accepted, and everything
+	    **	has been stored. - FM
+	    */
 		if (auth) {
 		    if (auth->user != UserName) {
 			FREE(auth->user);
@@ -511,7 +516,7 @@ PRIVATE NNTPAuthResult HTHandleAuthInfo ARGS1(
 		return NNTPAUTH_OK;
 	    }
 	    /*
-	    **  Show the error message and see if we should try again. - FM
+	    **	Not success, so it must be an error. - FM
 	    */
 	    HTAlert(response_text);
 	    if (!auth || auth->pass != PassWord) {
@@ -553,30 +558,30 @@ PRIVATE char * author_name ARGS1 (char *,email)
 {
     static char *name = NULL;
     char *p, *e;
-    
+
     StrAllocCopy(name, email);
     if (TRACE)
-        fprintf(stderr,"Trying to find name in: %s\n",name);
+	fprintf(stderr,"Trying to find name in: %s\n",name);
 
     if ((p = strchr(name, '(')) && (e = strchr(name, ')'))) {
-        if (e > p) {
+	if (e > p) {
 	    *e = '\0';			/* Chop off everything after the ')'  */
 	    return HTStrip(p+1);	/* Remove leading and trailing spaces */
 	}
     }
-	
+
     if ((p = strchr(name, '<')) && (e = strchr(name, '>'))) {
-        if (e > p) {
+	if (e > p) {
 	    strcpy(p, e+1);		/* Remove <...> */
 	    return HTStrip(name);	/* Remove leading and trailing spaces */
 	}
     }
-	
+
     return HTStrip(name);		/* Default to the whole thing */
 }
 
-/*      Find Author's mail address
-**      --------------------------
+/*	Find Author's mail address
+**	--------------------------
 **
 ** On exit,
 **	Returns allocated string which cannot be freed by the
@@ -584,8 +589,8 @@ PRIVATE char * author_name ARGS1 (char *,email)
 **	to this function.
 **
 ** For example, returns "montulli@spaced.out.galaxy.net" if given any of
-**      " Lou Montulli <montulli@spaced.out.galaxy.net> "
-**  or  " montulli@spaced.out.galaxy.net ( Lou "The Stud" Montulli ) "
+**	" Lou Montulli <montulli@spaced.out.galaxy.net> "
+**  or	" montulli@spaced.out.galaxy.net ( Lou "The Stud" Montulli ) "
 */
 PRIVATE char * author_address ARGS1(char *,email)
 {
@@ -594,29 +599,29 @@ PRIVATE char * author_address ARGS1(char *,email)
 
     StrAllocCopy(address, email);
     if (TRACE)
-        fprintf(stderr,"Trying to find address in: %s\n",address);
+	fprintf(stderr,"Trying to find address in: %s\n",address);
 
     if ((p = strchr(address, '<'))) {
-        if ((e = strchr(p, '>')) && (at = strchr(p, '@'))) {
+	if ((e = strchr(p, '>')) && (at = strchr(p, '@'))) {
 	    if (at < e) {
-                *e = '\0';               /* Remove > */
-                return HTStrip(p+1);  /* Remove leading and trailing spaces */
+		*e = '\0';		 /* Remove > */
+		return HTStrip(p+1);  /* Remove leading and trailing spaces */
 	    }
 	}
     }
 
     if ((p = strchr(address, '(')) &&
-        (e = strchr(address, ')')) && (at = strchr(address, '@'))) {
-        if (e > p && at < e) {
-            *p = '\0';                  /* Chop off everything after the ')'  */
-            return HTStrip(address);    /* Remove leading and trailing spaces */
-        }
+	(e = strchr(address, ')')) && (at = strchr(address, '@'))) {
+	if (e > p && at < e) {
+	    *p = '\0';			/* Chop off everything after the ')'  */
+	    return HTStrip(address);	/* Remove leading and trailing spaces */
+	}
     }
 
     if ((at = strchr(address, '@')) && at > address) {
-        p = (at - 1);
+	p = (at - 1);
 	e = (at + 1);
-        while (p > address && !isspace((unsigned char)*p))
+	while (p > address && !isspace((unsigned char)*p))
 	    p--;
 	while (*e && !isspace((unsigned char)*e))
 	    e++;
@@ -625,14 +630,14 @@ PRIVATE char * author_address ARGS1(char *,email)
     }
 
     /*
-    **  Default to the first word.
+    **	Default to the first word.
     */
     p = address;
     while (isspace((unsigned char)*p))
-        p++; /* find first non-space */
+	p++; /* find first non-space */
     e = p;
     while (!isspace((unsigned char)*e) && *e != '\0')
-        e++; /* find next space or end */
+	e++; /* find next space or end */
     *e = '\0'; /* terminate space */
 
     return(p);
@@ -644,30 +649,30 @@ PRIVATE char * author_address ARGS1(char *,email)
 PRIVATE void start_anchor ARGS1(CONST char *,  href)
 {
     BOOL		present[HTML_A_ATTRIBUTES];
-    CONST char*		value[HTML_A_ATTRIBUTES];
-    
+    CONST char* 	value[HTML_A_ATTRIBUTES];
+
     {
-    	int i;
-    	for(i=0; i < HTML_A_ATTRIBUTES; i++)
+	int i;
+	for(i=0; i < HTML_A_ATTRIBUTES; i++)
 	    present[i] = (i == HTML_A_HREF);
     }
     ((CONST char **)value)[HTML_A_HREF] = href;
     (*targetClass.start_element)(target, HTML_A , present,
-    				 (CONST char **)value, -1, 0);
+				 (CONST char **)value, -1, 0);
 }
 
-/*      Start link element
-**      ------------------
+/*	Start link element
+**	------------------
 */
 PRIVATE void start_link ARGS2(CONST char *,  href, CONST char *, rev)
 {
-    BOOL                present[HTML_LINK_ATTRIBUTES];
-    CONST char*         value[HTML_LINK_ATTRIBUTES];
-   
+    BOOL		present[HTML_LINK_ATTRIBUTES];
+    CONST char* 	value[HTML_LINK_ATTRIBUTES];
+
     {
-        int i;
-        for(i=0; i < HTML_LINK_ATTRIBUTES; i++)
-            present[i] = (i == HTML_LINK_HREF || i == HTML_LINK_REV);
+	int i;
+	for(i=0; i < HTML_LINK_ATTRIBUTES; i++)
+	    present[i] = (i == HTML_LINK_HREF || i == HTML_LINK_REV);
     }
     ((CONST char **)value)[HTML_LINK_HREF] = href;
     ((CONST char **)value)[HTML_LINK_REV]  = rev;
@@ -675,18 +680,18 @@ PRIVATE void start_link ARGS2(CONST char *,  href, CONST char *, rev)
 				 (CONST char **)value, -1, 0);
 }
 
-/*      Start list element
-**      ------------------
+/*	Start list element
+**	------------------
 */
 PRIVATE void start_list ARGS1(int, seqnum)
 {
-    BOOL                present[HTML_OL_ATTRIBUTES];
-    CONST char*         value[HTML_OL_ATTRIBUTES];
+    BOOL		present[HTML_OL_ATTRIBUTES];
+    CONST char* 	value[HTML_OL_ATTRIBUTES];
     char SeqNum[20];
     int i;
-   
+
     for (i = 0; i < HTML_OL_ATTRIBUTES; i++)
-        present[i] = (i == HTML_OL_SEQNUM || i == HTML_OL_START);
+	present[i] = (i == HTML_OL_SEQNUM || i == HTML_OL_START);
     sprintf(SeqNum, "%d", seqnum);
     ((CONST char **)value)[HTML_OL_SEQNUM] = SeqNum;
     ((CONST char **)value)[HTML_OL_START]  = SeqNum;
@@ -699,23 +704,23 @@ PRIVATE void start_list ARGS1(int, seqnum)
 **
 **
 ** On entry,
-**	HT 	has a selection of zero length at the end.
-**	text 	points to the text to be put into the file, 0 terminated.
+**	HT	has a selection of zero length at the end.
+**	text	points to the text to be put into the file, 0 terminated.
 **	addr	points to the hypertext reference address,
-**		terminated by white space, comma, NULL or '>' 
+**		terminated by white space, comma, NULL or '>'
 */
 PRIVATE void write_anchor ARGS2(CONST char *,text, CONST char *,addr)
 {
     char href[LINE_LENGTH+1];
-		
+
     {
-    	CONST char * p;
+	CONST char * p;
 	strcpy(href, NewsHREF);
 	for (p = addr; *p && (*p != '>') && !WHITE(*p) && (*p!=','); p++)
 	    ;
-        strncat(href, addr, p-addr);	/* Make complete hypertext reference */
+	strncat(href, addr, p-addr);	/* Make complete hypertext reference */
     }
-    
+
     start_anchor(href);
     PUTS(text);
     END(HTML_A);
@@ -728,8 +733,8 @@ PRIVATE void write_anchor ARGS2(CONST char *,text, CONST char *,addr)
 **	generating an anchor for each.
 **
 ** On entry,
-**	HT 	has a selection of zero length at the end.
-**	text 	points to a comma or space separated list of addresses.
+**	HT	has a selection of zero length at the end.
+**	text	points to a comma or space separated list of addresses.
 ** On exit,
 **	*text	is NOT any more chopped up into substrings.
 */
@@ -739,11 +744,11 @@ PRIVATE void write_anchors ARGS1 (char *,text)
     char * end;
     char c;
     for (;;) {
-        for (; *start && (WHITE(*start)); start++)
+	for (; *start && (WHITE(*start)); start++)
 	    ;  /* Find start */
 	if (!*start)
 	    return;			/* (Done) */
-        for (end = start;
+	for (end = start;
 	     *end && (*end != ' ') && (*end != ','); end++)
 	    ;/* Find end */
 	if (*end)
@@ -766,8 +771,8 @@ PRIVATE void write_anchors ARGS1 (char *,text)
 PRIVATE void abort_socket NOARGS
 {
     if (TRACE)
-        fprintf(stderr,
-	        "HTNews: EOF on read, closing socket %d\n", s);
+	fprintf(stderr,
+		"HTNews: EOF on read, closing socket %d\n", s);
     NEWS_NETCLOSE(s);	/* End of file, close socket */
     PUTS("Network Error: connection lost");
     PUTC('\n');
@@ -775,48 +780,48 @@ PRIVATE void abort_socket NOARGS
 }
 
 /*
-**  Determine if a line is a valid header line.			valid_header
+**  Determine if a line is a valid header line. 		valid_header
 **  -------------------------------------------
 */
 PRIVATE BOOLEAN valid_header ARGS1(
-	char *,		line)
+	char *, 	line)
 {
     char *colon, *space;
 
     /*
-    **  Blank or tab in first position implies
-    **  this is a continuation header.
+    **	Blank or tab in first position implies
+    **	this is a continuation header.
     */
     if (line[0] == ' ' || line[0] == '\t')
 	return(TRUE);
 
     /*
-    **  Just check for initial letter, colon, and space to make
-    **  sure we discard only invalid headers.
+    **	Just check for initial letter, colon, and space to make
+    **	sure we discard only invalid headers.
     */
     colon = strchr(line, ':');
     space = strchr(line, ' ');
     if (isalpha(line[0]) && colon && space == colon + 1)
-        return(TRUE);
+	return(TRUE);
 
     /*
-    **  Anything else is a bad header -- it should be ignored.
+    **	Anything else is a bad header -- it should be ignored.
     */
     return(FALSE);
 }
 
 /*	post in an Article					post_article
 **	------------------
-**  			(added by FM, modeled on Lynx's previous mini inews)
+**			(added by FM, modeled on Lynx's previous mini inews)
 **
 **	Note the termination condition of a single dot on a line by itself.
 **
 **  On entry,
 **	s		Global socket number is OK
 **	postfile	file with header and article to post.
-*/ 
+*/
 PRIVATE void post_article ARGS1(
-	char *,		postfile)
+	char *, 	postfile)
 {
     char line[512];
     char buf[512];
@@ -829,8 +834,8 @@ PRIVATE void post_article ARGS1(
 
 
     /*
-    **  Open the temporary file with the
-    **  nntp headers and message body. - FM
+    **	Open the temporary file with the
+    **	nntp headers and message body. - FM
     */
     if ((fd = fopen((postfile ? postfile : ""), "r")) == NULL) {
 	HTAlert("Cannot open temporary file for news POST.");
@@ -838,8 +843,8 @@ PRIVATE void post_article ARGS1(
     }
 
     /*
-    **  Read the temporary file and post
-    **  in maximum 512 byte chunks. - FM
+    **	Read the temporary file and post
+    **	in maximum 512 byte chunks. - FM
     */
     buf[0] = '\0';
     sprintf(crlf, "%c%c", CR, LF);
@@ -848,16 +853,16 @@ PRIVATE void post_article ARGS1(
 	    *cp = '\0';
 	if (line[0] == '.') {
 	    /*
-	    **  A single '.' means end of transmission
-	    **  for nntp.  Lead dots on lines normally
-	    **  are trimmed and the EOF is not registered
-	    **  if the dot was not followed by CRLF.
-	    **  We prepend an extra dot for any line
-	    **  beginning with one, to retain the one
-	    **  intended, as well as avoid a false EOF
-	    **  signal.  We know we have room for it in
-	    **  the buffer, because we normally send when
-	    **  it would exceed 510. - FM
+	    **	A single '.' means end of transmission
+	    **	for nntp.  Lead dots on lines normally
+	    **	are trimmed and the EOF is not registered
+	    **	if the dot was not followed by CRLF.
+	    **	We prepend an extra dot for any line
+	    **	beginning with one, to retain the one
+	    **	intended, as well as avoid a false EOF
+	    **	signal.  We know we have room for it in
+	    **	the buffer, because we normally send when
+	    **	it would exceed 510. - FM
 	    */
 	    strcat(buf, ".");
 	    blen++;
@@ -872,7 +877,7 @@ PRIVATE void post_article ARGS1(
 		in_header = 0;
 		if (!seen_fromline) {
 		    if (blen < 475) {
-		        strcat(buf, "From: anonymous@nowhere.you.know");
+			strcat(buf, "From: anonymous@nowhere.you.know");
 			strcat(buf, crlf);
 			blen += 34;
 		    } else {
@@ -912,30 +917,30 @@ PRIVATE void post_article ARGS1(
 #endif /* VMS */
 
     /*
-    **  Send the nntp EOF and get the server's response. - FM
+    **	Send the nntp EOF and get the server's response. - FM
     */
     if (blen < 508) {
-        strcat(buf, ".");
+	strcat(buf, ".");
 	strcat(buf, crlf);
 	blen += 3;
 	NEWS_NETWRITE(s, buf, blen);
     } else {
-        NEWS_NETWRITE(s, buf, blen);
+	NEWS_NETWRITE(s, buf, blen);
 	sprintf(buf, ".%s", crlf);
 	blen = 3;
 	NEWS_NETWRITE(s, buf, blen);
     }
     status = response(NULL);
     if (status == 240) {
-        /*
+	/*
 	**  Successful post. - FM
 	*/
-        HTProgress(response_text);
+	HTProgress(response_text);
     } else {
-        /*
+	/*
 	**  Shucks, something went wrong. - FM
 	*/
-        HTAlert(response_text);
+	HTAlert(response_text);
     }
 }
 
@@ -949,7 +954,7 @@ PRIVATE void post_article ARGS1(
 ** On entry,
 **	s	Global socket number is OK
 **	HT	Global hypertext object is ready for appending text
-*/ 
+*/
 PRIVATE int read_article NOARGS
 {
     char line[LINE_LENGTH+1];
@@ -967,27 +972,27 @@ PRIVATE int read_article NOARGS
     BOOL done = NO;
 
     /*
-    **  Read in the HEADer of the article.
+    **	Read in the HEADer of the article.
     **
-    **  The header fields are either ignored,
-    **  or formatted and put into the text.
+    **	The header fields are either ignored,
+    **	or formatted and put into the text.
     */
     if (!diagnostic && !rawtext) {
 	while (!done) {
 	    char ch = *p++ = NEXT_CHAR;
 	    if (ch == (char)EOF) {
-	        if (interrupted_in_htgetcharacter) {
+		if (interrupted_in_htgetcharacter) {
 		    interrupted_in_htgetcharacter = 0;
 		    if (TRACE)
-		        fprintf(stderr,
+			fprintf(stderr,
 			   "HTNews: Interrupted on read, closing socket %d\n",
 				s);
 		    NEWS_NETCLOSE(s);
 		    s = -1;
 		    return(HT_INTERRUPTED);
 		}
-		abort_socket();		/* End of file, close socket */
-	    	return(HT_LOADED);	/* End of file on response */
+		abort_socket(); 	/* End of file, close socket */
+		return(HT_LOADED);	/* End of file on response */
 	    }
 	    if ((ch == LF) || (p == &line[LINE_LENGTH])) {
 		*--p = '\0';			/* Terminate the string */
@@ -997,14 +1002,14 @@ PRIVATE int read_article NOARGS
 		if (line[0] == '\t' || line[0] == ' ') {
 		    int i = 0;
 		    while (line[i]) {
-		        if (line[i] == '\t')
+			if (line[i] == '\t')
 			    line[i] = ' ';
 			i++;
 		    }
 		    if (full_line == NULL) {
-		        StrAllocCopy(full_line, line);
+			StrAllocCopy(full_line, line);
 		    } else {
-		        StrAllocCat(full_line, line);
+			StrAllocCat(full_line, line);
 		    }
 		} else {
 		    StrAllocCopy(full_line, line);
@@ -1012,7 +1017,7 @@ PRIVATE int read_article NOARGS
 
 		if (full_line[0] == '.') {
 		    /*
-		    **  End of article?
+		    **	End of article?
 		    */
 		    if ((unsigned char)full_line[1] < ' ') {
 			done = YES;
@@ -1024,46 +1029,34 @@ PRIVATE int read_article NOARGS
 		} else if (match(full_line, "SUBJECT:")) {
 		    StrAllocCopy(subject, HTStrip(strchr(full_line,':')+1));
 		    if (HTCJK == JAPANESE) {
-		        HTmmdecode(subject, subject);
+			HTmmdecode(subject, subject);
 			HTrjis(subject, subject);
 		    }
-#ifdef NOTUSED_CHARTRANS
-		    else HTmmdecode(subject, subject);
-#endif
 
 		} else if (match(full_line, "DATE:")) {
 		    StrAllocCopy(date, HTStrip(strchr(full_line,':')+1));
 
 		} else if (match(full_line, "ORGANIZATION:")) {
 		    StrAllocCopy(organization,
-		    		 HTStrip(strchr(full_line,':')+1));
+				 HTStrip(strchr(full_line,':')+1));
 		    if (HTCJK == JAPANESE) {
-		        HTmmdecode(organization, organization);
+			HTmmdecode(organization, organization);
 			HTrjis(organization, organization);
 		    }
-#ifdef NOTUSED_CHARTRANS
-		    else HTmmdecode(organization, organization);
-#endif
 
 		} else if (match(full_line, "FROM:")) {
 		    StrAllocCopy(from, HTStrip(strchr(full_line,':')+1));
 		    if (HTCJK == JAPANESE) {
-		        HTmmdecode(from, from);
+			HTmmdecode(from, from);
 			HTrjis(from, from);
 		    }
-#ifdef NOTUSED_CHARTRANS
-		    else HTmmdecode(from, from);
-#endif
 
 		} else if (match(full_line, "REPLY-TO:")) {
 		    StrAllocCopy(replyto, HTStrip(strchr(full_line,':')+1));
 		    if (HTCJK == JAPANESE) {
-		        HTmmdecode(replyto, replyto);
+			HTmmdecode(replyto, replyto);
 			HTrjis(replyto, replyto);
 		    }
-#ifdef NOTUSED_CHARTRANS
-		    else HTmmdecode(replyto, replyto);
-#endif
 
 		} else if (match(full_line, "NEWSGROUPS:")) {
 		    StrAllocCopy(newsgroups, HTStrip(strchr(full_line,':')+1));
@@ -1137,19 +1130,19 @@ PRIVATE int read_article NOARGS
 	    START(HTML_B);
 	    PUTS("Reply to:");
 	    END(HTML_B);
-            PUTC(' ');
+	    PUTC(' ');
 	    start_anchor(href);
 	    if (*replyto != '<')
-    	        PUTS(author_name(replyto));
+		PUTS(author_name(replyto));
 	    else
-    	        PUTS(author_address(replyto));
-     	    END(HTML_A);
+		PUTS(author_address(replyto));
+	    END(HTML_A);
 	    START(HTML_BR);
 	    MAYBE_END(HTML_DT);
 	    PUTC('\n');
 
 	    FREE(from);
-  	    FREE(replyto);
+	    FREE(replyto);
 	}
 
 	if (date) {
@@ -1157,7 +1150,7 @@ PRIVATE int read_article NOARGS
 	    START(HTML_B);
 	    PUTS("Date:");
 	    END(HTML_B);
-            PUTC(' ');
+	    PUTC(' ');
 	    PUTS(date);
 	    MAYBE_END(HTML_DT);
 	    PUTC('\n');
@@ -1169,7 +1162,7 @@ PRIVATE int read_article NOARGS
 	    START(HTML_B);
 	    PUTS("Organization:");
 	    END(HTML_B);
-            PUTC(' ');
+	    PUTC(' ');
 	    PUTS(organization);
 	    MAYBE_END(HTML_DT);
 	    PUTC('\n');
@@ -1178,14 +1171,14 @@ PRIVATE int read_article NOARGS
 
 	if (newsgroups && HTCanPost) {
 	    /*
-	    **  We have permission to POST to this host,
-	    **  so add a link for posting followups for
-	    **  this article. - FM
+	    **	We have permission to POST to this host,
+	    **	so add a link for posting followups for
+	    **	this article. - FM
 	    */
 	    if (!strncasecomp(NewsHREF, "snews:", 6))
-	        StrAllocCopy(href,"snewsreply://");
+		StrAllocCopy(href,"snewsreply://");
 	    else
-	        StrAllocCopy(href,"newsreply://");
+		StrAllocCopy(href,"newsreply://");
 	    StrAllocCat(href, NewsHost);
 	    StrAllocCat(href, "/");
 	    StrAllocCat(href, (followupto ? followupto : newsgroups));
@@ -1203,18 +1196,18 @@ PRIVATE int read_article NOARGS
 
 	    START(HTML_DT);
 	    START(HTML_B);
-            PUTS("Followup to:");
+	    PUTS("Followup to:");
 	    END(HTML_B);
-            PUTC(' ');
-            start_anchor(href);
-            PUTS("newsgroup(s)");
-            END(HTML_A);
+	    PUTC(' ');
+	    start_anchor(href);
+	    PUTS("newsgroup(s)");
+	    END(HTML_A);
 	    MAYBE_END(HTML_DT);
 	    PUTC('\n');
 	}
 	FREE(newsgroups);
 	FREE(followupto);
-	    
+
 	if (references) {
 	    START(HTML_DT);
 	    START(HTML_B);
@@ -1240,20 +1233,19 @@ PRIVATE int read_article NOARGS
 	 */
 	;
     } else if (diagnostic) {
-        /*
+	/*
 	**  Read in the HEAD and BODY of the Article
 	**  as XMP formatted text. - FM
 	*/
 	START(HTML_XMP);
-	PUTC('\n');
     } else {
-        /*
+	/*
 	**  Read in the BODY of the Article
 	**  as PRE formatted text. - FM
 	*/
 	START(HTML_PRE);
-	PUTC('\n');
     }
+    PUTC('\n');
 
     p = line;
     while (!done) {
@@ -1275,7 +1267,7 @@ PRIVATE int read_article NOARGS
 	if ((ch == LF) || (p == &line[LINE_LENGTH])) {
 	    *p++ = '\0';			/* Terminate the string */
 	    if (TRACE)
-	        fprintf(stderr, "B %s", line);
+		fprintf(stderr, "B %s", line);
 	    if (line[0] == '.') {
 		/*
 		**  End of article?
@@ -1287,42 +1279,42 @@ PRIVATE int read_article NOARGS
 		    if (rawtext)
 			RAW_PUTS(&line[1]);
 		    else
-			PUTS(&line[1]);	/* Ignore first dot */
+			PUTS(&line[1]); /* Ignore first dot */
 		}
 	    } else {
 		if (rawtext) {
 		    RAW_PUTS(line);
-	        } else if (diagnostic || !scan_for_buried_news_references) {
+		} else if (diagnostic || !scan_for_buried_news_references) {
 		    /*
-		    **  All lines are passed as unmodified source. - FM
+		    **	All lines are passed as unmodified source. - FM
 		    */
-	            PUTS(line);
-	        } else {
+		    PUTS(line);
+		} else {
 		    /*
-		    **  Normal lines are scanned for buried references
-		    **  to other articles.  Unfortunately, it could pick
-		    **  up mail addresses as well!  It also can corrupt
-		    **  uuencoded messages!  So we don't do this when
-		    **  fetching articles as WWW_SOURCE or when downloading
-		    **  (diagnostic is TRUE) or if the client has set
-		    **  scan_for_buried_news_references to FALSE.
-		    **  Otherwise, we convert all "<...@...>" strings
-		    **  preceded by "rticle " to "news:...@..." links,
-		    **  and any strings that look like URLs to links. - FM
+		    **	Normal lines are scanned for buried references
+		    **	to other articles.  Unfortunately, it could pick
+		    **	up mail addresses as well!  It also can corrupt
+		    **	uuencoded messages!  So we don't do this when
+		    **	fetching articles as WWW_SOURCE or when downloading
+		    **	(diagnostic is TRUE) or if the client has set
+		    **	scan_for_buried_news_references to FALSE.
+		    **	Otherwise, we convert all "<...@...>" strings
+		    **	preceded by "rticle " to "news:...@..." links,
+		    **	and any strings that look like URLs to links. - FM
 		    */
 		    char *l = line;
 		    char *p2;
 
 		    while ((p2 = strstr(l, "rticle <")) != NULL) {
-		        char *q  = strchr(p2,'>');
-		        char *at = strchr(p2, '@');
-		        if (q && at && at<q) {
-		            char c = q[1];
+			char *q  = strchr(p2,'>');
+			char *at = strchr(p2, '@');
+			if (q && at && at<q) {
+			    char c = q[1];
 			    q[1] = 0;		/* chop up */
 			    p2 += 7;
 			    *p2 = 0;
 			    while (*l) {
-			        if (strncmp(l, "news:", 5) &&
+				if (strncmp(l, "news:", 5) &&
 				    strncmp(l, "snews://", 8) &&
 				    strncmp(l, "nntp://", 7) &&
 				    strncmp(l, "snewspost:", 10) &&
@@ -1337,26 +1329,26 @@ PRIVATE int read_article NOARGS
 				    strncmp(l, "wais://", 7) &&
 				    strncmp(l, "mailto:", 7) &&
 				    strncmp(l, "cso://", 6) &&
-				    strncmp(l, "gopher://", 9)) 
+				    strncmp(l, "gopher://", 9))
 				    PUTC (*l++);
 				else {
 				    StrAllocCopy(href, l);
 				    start_anchor(strtok(href, " \r\n\t,>)\""));
 				    while (*l && !strchr(" \r\n\t,>)\"", *l))
-				        PUTC(*l++);
+					PUTC(*l++);
 				    END(HTML_A);
 				    FREE(href);
 				}
 			    }
-			    *p2 = '<'; 		/* again */
+			    *p2 = '<';		/* again */
 			    *q = 0;
 			    start_anchor(p2+1);
-			    *q = '>'; 		/* again */
+			    *q = '>';		/* again */
 			    PUTS(p2);
 			    END(HTML_A);
 			    q[1] = c;		/* again */
 			    l=q+1;
-		        } else {
+			} else {
 			    break;		/* line has unmatched <> */
 			}
 		    }
@@ -1376,18 +1368,18 @@ PRIVATE int read_article NOARGS
 			    strncmp(l, "wais://", 7) &&
 			    strncmp(l, "mailto:", 7) &&
 			    strncmp(l, "cso://", 6) &&
-			    strncmp(l, "gopher://", 9)) 
+			    strncmp(l, "gopher://", 9))
 			    PUTC (*l++);
 			else {
 			    StrAllocCopy(href, l);
 			    start_anchor(strtok(href, " \r\n\t,>)\""));
 			    while (*l && !strchr(" \r\n\t,>)\"", *l))
-			        PUTC(*l++);
+				PUTC(*l++);
 			    END(HTML_A);
 			    FREE(href);
 			}
 		    }
-	        } /* if diagnostic or not scan_for_buried_news_references */
+		} /* if diagnostic or not scan_for_buried_news_references */
 	    } /* if not dot */
 	    p = line;				/* Restart at beginning */
 	} /* if end of line */
@@ -1410,7 +1402,7 @@ PRIVATE int read_article NOARGS
 **  Note the termination condition of a single dot on a line by itself.
 **  RFC 977 specifies that the line "folding" of RFC850 is not used,
 **  so we do not handle it here.
-*/        
+*/
 PRIVATE int read_list ARGS1(char *, arg)
 {
     char line[LINE_LENGTH+1];
@@ -1418,34 +1410,35 @@ PRIVATE int read_list ARGS1(char *, arg)
     BOOL done = NO;
     BOOL head = NO;
     BOOL tail = NO;
-    BOOL skip_this_line = NO, skip_rest_of_line = NO;
+    BOOL skip_this_line = NO;
+    BOOL skip_rest_of_line = NO;
     int listing = 0;
     char *pattern = NULL;
     int len = 0;
-    
+
     /*
-    **  Support head or tail matches for groups to list. - FM
+    **	Support head or tail matches for groups to list. - FM
     */
     if (arg && strlen(arg) > 1) {
-        if (*arg == '*') {
-            tail = YES;
+	if (*arg == '*') {
+	    tail = YES;
 	    StrAllocCopy(pattern, (arg+1));
-        } else if (arg[strlen(arg)-1] == '*') {
-            head = YES;
+	} else if (arg[strlen(arg)-1] == '*') {
+	    head = YES;
 	    StrAllocCopy(pattern, arg);
 	    pattern[strlen(pattern)-1] = '\0';
-        }
-        if (tail || head) {
-           len = strlen(pattern);
+	}
+	if (tail || head) {
+	   len = strlen(pattern);
 	}
 
     }
 
     /*
-    **  Read the server's reply.
+    **	Read the server's reply.
     **
-    **  The lines are scanned for newsgroup
-    **  names and descriptions.
+    **	The lines are scanned for newsgroup
+    **	names and descriptions.
     */
     START(HTML_HEAD);
     PUTC('\n');
@@ -1490,7 +1483,7 @@ PRIVATE int read_list ARGS1(char *, arg)
 	    }
 	} else if (p == &line[LINE_LENGTH]) {
 	    if (TRACE) {
-	        fprintf(stderr, "b %.*s%c[...]\n", (LINE_LENGTH), line, ch);
+		fprintf(stderr, "b %.*s%c[...]\n", (LINE_LENGTH), line, ch);
 	    }
 	    *p = '\0';
 	    if (ch == LF) {
@@ -1516,9 +1509,12 @@ PRIVATE int read_list ARGS1(char *, arg)
 	    skip_rest_of_line = NO;	/* done, reset flag */
 	    *p = '\0';			/* Terminate the string */
 	    if (TRACE)
-	        fprintf(stderr, "B %s", line);
+		fprintf(stderr, "B %s", line);
 	    if (line[0] == '.') {
-		if ((unsigned char)line[1] < ' ') {		/* End of list? */
+		/*
+		**  End of article?
+		*/
+		if ((unsigned char)line[1] < ' ') {
 		    done = YES;
 		    break;
 		} else {			/* Line starts with dot */
@@ -1527,8 +1523,8 @@ PRIVATE int read_list ARGS1(char *, arg)
 		    MAYBE_END(HTML_DT);
 		}
 	    } else if (line[0] == '#') {	/* Comment? */
-	        p = line;			/* Restart at beginning */
-	        continue;
+		p = line;			/* Restart at beginning */
+		continue;
 	    } else {
 		/*
 		**  Normal lines are scanned for references to newsgroups.
@@ -1538,13 +1534,13 @@ PRIVATE int read_list ARGS1(char *, arg)
 		/* find whitespace if it exits */
 		for (; line[i] != '\0' && !WHITE(line[i]); i++)
 		    ;  /* null body */
-	
+
 		if (line[i] != '\0') {
 		    line[i] = '\0';
 		    if ((head && strncasecomp(line, pattern, len)) ||
-		        (tail && (i < len ||
+			(tail && (i < len ||
 				  strcasecomp((line + (i - len)), pattern)))) {
-		        p = line;	/* Restart at beginning */
+			p = line;	/* Restart at beginning */
 			continue;
 		    }
 		    START(HTML_DT);
@@ -1552,14 +1548,14 @@ PRIVATE int read_list ARGS1(char *, arg)
 		    listing++;
 		    MAYBE_END(HTML_DT);
 		    PUTC('\n');
-    	            START(HTML_DD);
+		    START(HTML_DD);
 		    PUTS(&line[i+1]); /* put description */
 		    MAYBE_END(HTML_DD);
 		} else {
 		    if ((head && strncasecomp(line, pattern, len)) ||
-		        (tail && (i < len ||
+			(tail && (i < len ||
 				  strcasecomp((line + (i - len)), pattern)))) {
-		        p = line;	/* Restart at beginning */
+			p = line;	/* Restart at beginning */
 			continue;
 		    }
 		    START(HTML_DT);
@@ -1572,7 +1568,7 @@ PRIVATE int read_list ARGS1(char *, arg)
 	} /* if end of line */
     } /* Loop over characters */
     if (!listing) {
-        START(HTML_DT);
+	START(HTML_DT);
 	sprintf(line, "No matches for: %s", arg);
 	PUTS(line);
 	MAYBE_END(HTML_DT);
@@ -1622,54 +1618,54 @@ PRIVATE int read_group ARGS3(
 
     sscanf(response_text, " %d %d %d %d", &status, &count, &first, &last);
     if (TRACE)
-        fprintf(stderr,
-    		"Newsgroup status=%d, count=%d, (%d-%d) required:(%d-%d)\n",
+	fprintf(stderr,
+		"Newsgroup status=%d, count=%d, (%d-%d) required:(%d-%d)\n",
 		status, count, first, last, first_required, last_required);
     if (last == 0) {
-        PUTS("\nNo articles in this group.\n");
+	PUTS("\nNo articles in this group.\n");
 	goto add_post;
     }
-    
+
 #define FAST_THRESHOLD 100	/* Above this, read IDs fast */
 #define CHOP_THRESHOLD 50	/* Above this, chop off the rest */
 
     if (first_required < first)
-        first_required = first;		/* clip */
+	first_required = first; 	/* clip */
     if ((last_required == 0) || (last_required > last))
-        last_required = last;
-    
+	last_required = last;
+
     if (last_required < first_required) {
-        PUTS("\nNo articles in this range.\n");
+	PUTS("\nNo articles in this range.\n");
 	goto add_post;
     }
 
     if (last_required-first_required+1 > HTNewsMaxChunk) { /* Trim this block */
-        first_required = last_required-HTNewsChunkSize+1;
+	first_required = last_required-HTNewsChunkSize+1;
     }
     if (TRACE)
-        fprintf(stderr, "    Chunk will be (%d-%d)\n",
-    		        first_required, last_required);
+	fprintf(stderr, "    Chunk will be (%d-%d)\n",
+			first_required, last_required);
 
     /*
-    **  Set window title.
+    **	Set window title.
     */
     sprintf(buffer, "%s,  Articles %d-%d",
-    		    groupName, first_required, last_required);
+		    groupName, first_required, last_required);
     START(HTML_H1);
     PUTS(buffer);
     END(HTML_H1);
     PUTC('\n');
 
     /*
-    **  Link to earlier articles.
+    **	Link to earlier articles.
     */
     if (first_required > first) {
-    	int before;			/* Start of one before */
+	int before;			/* Start of one before */
 	if (first_required-HTNewsMaxChunk <= first)
 	    before = first;
 	else
 	    before = first_required-HTNewsChunkSize;
-    	sprintf(buffer, "%s%s/%d-%d", NewsHREF, groupName,
+	sprintf(buffer, "%s%s/%d-%d", NewsHREF, groupName,
 				      before, first_required-1);
 	if (TRACE)
 	    fprintf(stderr, "    Block before is %s\n", buffer);
@@ -1681,17 +1677,17 @@ PRIVATE int read_group ARGS3(
 	START(HTML_P);
 	PUTC('\n');
     }
-    
+
     done = NO;
 
 /*#define USE_XHDR*/
 #ifdef USE_XHDR
     if (count > FAST_THRESHOLD)  {
-        sprintf(buffer,
+	sprintf(buffer,
  "\nThere are about %d articles currently available in %s, IDs as follows:\n\n",
-		count, groupName); 
-        PUTS(buffer);
-        sprintf(buffer, "XHDR Message-ID %d-%d%c%c", first, last, CR, LF);
+		count, groupName);
+	PUTS(buffer);
+	sprintf(buffer, "XHDR Message-ID %d-%d%c%c", first, last, CR, LF);
 	status = response(buffer);
 	if (status == 221) {
 	    p = line;
@@ -1699,7 +1695,7 @@ PRIVATE int read_group ARGS3(
 		char ch = *p++ = NEXT_CHAR;
 		if (ch == (char)EOF) {
 		    if (interrupted_in_htgetcharacter) {
-		        interrupted_in_htgetcharacter = 0;
+			interrupted_in_htgetcharacter = 0;
 			if (TRACE)
 			    fprintf(stderr,
 			   "HTNews: Interrupted on read, closing socket %d\n",
@@ -1714,16 +1710,16 @@ PRIVATE int read_group ARGS3(
 		if ((ch == '\n') || (p == &line[LINE_LENGTH])) {
 		    *p = '\0';		/* Terminate the string */
 		    if (TRACE)
-		        fprintf(stderr, "X %s", line);
+			fprintf(stderr, "X %s", line);
 		    if (line[0] == '.') {
 			/*
-			**  End of response?
+			**  End of article?
 			*/
 			if ((unsigned char)line[1] < ' ') {
 			    done = YES;
 			    break;
 			} else {		/* Line starts with dot */
-			    	/* Ignore strange line */
+				/* Ignore strange line */
 			}
 		    } else {
 			/*
@@ -1744,13 +1740,13 @@ PRIVATE int read_group ARGS3(
 #endif /* USE_XHDR */
 
     /*
-    **  Read newsgroup using individual fields.
+    **	Read newsgroup using individual fields.
     */
     if (!done) {
-        START(HTML_B);
-        if (first == first_required && last == last_required)
+	START(HTML_B);
+	if (first == first_required && last == last_required)
 	    PUTS("All available articles in ");
-        else
+	else
 	    PUTS("Articles in ");
 	PUTS(groupName);
 	END(HTML_B);
@@ -1763,17 +1759,17 @@ PRIVATE int read_group ARGS3(
 /*#define OVERLAP*/
 #ifdef OVERLAP
 	    /*
-	    **  With this code we try to keep the server running flat out
-	    **  by queuing just one extra command ahead of time.
-	    **  We assume (1) that the server won't abort if it gets input
-	    **  during output, and (2) that TCP buffering is enough for the
-	    **  two commands.  Both these assumptions seem very reasonable.
-	    **  However, we HAVE had a hangup with a loaded server.
+	    **	With this code we try to keep the server running flat out
+	    **	by queuing just one extra command ahead of time.
+	    **	We assume (1) that the server won't abort if it gets input
+	    **	during output, and (2) that TCP buffering is enough for the
+	    **	two commands.  Both these assumptions seem very reasonable.
+	    **	However, we HAVE had a hangup with a loaded server.
 	    */
 	    if (art == first_required) {
 		if (art == last_required) {		/* Only one */
 		    sprintf(buffer, "HEAD %d%c%c",
-		    		    art, CR, LF);
+				    art, CR, LF);
 		    status = response(buffer);
 		} else {				/* First of many */
 		    sprintf(buffer, "HEAD %d%c%cHEAD %d%c%c",
@@ -1791,12 +1787,12 @@ PRIVATE int read_group ARGS3(
 	    status = response(buffer);
 #endif	/* OVERLAP */
 	    /*
-	    **  Check for a good response (221) for the HEAD request,
-	    **  and if so, parse it.  Otherwise, indicate the error
-	    **  so that the number of listings corresponds to what's
-	    **  claimed for the range, and if we are listing numbers
-	    **  via an ordered list, they stay in synchrony with the
-	    **  article numbers. - FM
+	    **	Check for a good response (221) for the HEAD request,
+	    **	and if so, parse it.  Otherwise, indicate the error
+	    **	so that the number of listings corresponds to what's
+	    **	claimed for the range, and if we are listing numbers
+	    **	via an ordered list, they stay in synchrony with the
+	    **	article numbers. - FM
 	    */
 	    if (status == 221) {	/* Head follows - parse it:*/
 		p = line;				/* Write pointer */
@@ -1814,12 +1810,12 @@ PRIVATE int read_group ARGS3(
 			    s = -1;
 			    return(HT_INTERRUPTED);
 			}
-			abort_socket();		/* End of file, close socket */
+			abort_socket(); 	/* End of file, close socket */
 			return(HT_LOADED);	/* End of file on response */
 		    }
 		    if ((ch == LF) ||
-		        (p == &line[LINE_LENGTH])) {
-		    
+			(p == &line[LINE_LENGTH])) {
+
 			*--p = '\0';		/* Terminate  & chop LF*/
 			p = line;		/* Restart at beginning */
 			if (TRACE)
@@ -1828,7 +1824,7 @@ PRIVATE int read_group ARGS3(
 
 			case '.':
 			    /*
-			    **  End of response?
+			    **	End of article?
 			    */
 			    done = ((unsigned char)line[1] < ' ');
 			    break;
@@ -1837,12 +1833,7 @@ PRIVATE int read_group ARGS3(
 			case 's':
 			    if (match(line, "SUBJECT:")) {
 				strcpy(subject, line+9);/* Save subject */
-#ifdef NOTUSED_CHARTRANS
-				HTmmdecode(subject, subject);
-				if (HTCJK == JAPANESE)
-				    HTrjis(subject, subject);
-#endif
-			 	if (HTCJK == JAPANESE) {
+				if (HTCJK == JAPANESE) {
 				    HTmmdecode(subject, subject);
 				    HTrjis(subject, subject);
 				}
@@ -1864,25 +1855,20 @@ PRIVATE int read_group ARGS3(
 				char * p2;
 				strcpy(author,
 					author_name(strchr(line,':')+1));
-#ifdef NOTUSED_CHARTRANS
-				HTmmdecode(author, author);
-				if (HTCJK == JAPANESE)
-				    HTrjis(author, author);
-#endif
 				if (HTCJK == JAPANESE) {
 				    HTmmdecode(author, author);
 				    HTrjis(author, author);
 				}
 				p2 = author + strlen(author) - 1;
 				if (*p2==LF)
-				    *p2 = '\0';	/* Chop off newline */
+				    *p2 = '\0'; /* Chop off newline */
 			    }
 			    break;
 
 			case 'd':
 			case 'D':
 			    if (LYListNewsDates && match(line, "DATE:")) {
-			        StrAllocCopy(date,
+				StrAllocCopy(date,
 					     HTStrip(strchr(line,':')+1));
 			    }
 			    break;
@@ -1903,17 +1889,17 @@ PRIVATE int read_group ARGS3(
 		if (author[0] != '\0') {
 		     PUTS(" - ");
 		     if (LYListNewsDates)
-		         START(HTML_I);
+			 START(HTML_I);
 		     PUTS(author);
 		     if (LYListNewsDates)
-		         END(HTML_I);
+			 END(HTML_I);
 		     author[0] = '\0';
 		}
 		if (date) {
 		    if (!diagnostic) {
-		        for (i = 0; date[i]; i++) {
+			for (i = 0; date[i]; i++) {
 			    if (date[i] == ' ') {
-			        date[i] = HT_NON_BREAK_SPACE;
+				date[i] = HT_NON_BREAK_SPACE;
 			    }
 			}
 		    }
@@ -1923,7 +1909,7 @@ PRIVATE int read_group ARGS3(
 		}
 		MAYBE_END(HTML_LI);
 		/*
-		**  Indicate progress!   @@@@@@
+		**  Indicate progress!	 @@@@@@
 		*/
 	    } else if (status == HT_INTERRUPTED) {
 		interrupted_in_htgetcharacter = 0;
@@ -1935,7 +1921,7 @@ PRIVATE int read_group ARGS3(
 		s = -1;
 		return(HT_INTERRUPTED);
 	    } else {
-	        /*
+		/*
 		**  Use the response text on error. - FM
 		*/
 		PUTC('\n');
@@ -1951,26 +1937,26 @@ PRIVATE int read_group ARGS3(
 		PUTS(response_text);
 		MAYBE_END(HTML_LI);
 	    } /* Handle response to HEAD request */
-	} /* Loop over article */	    
+	} /* Loop over article */
     } /* If read headers */
     PUTC('\n');
     if (LYListNewsNumbers)
-        END(HTML_OL);
+	END(HTML_OL);
     else
-        END(HTML_UL);
+	END(HTML_UL);
     PUTC('\n');
-    
+
     /*
-    **  Link to later articles.
+    **	Link to later articles.
     */
     if (last_required < last) {
-    	int after;			/* End of article after */
+	int after;			/* End of article after */
 	after = last_required+HTNewsChunkSize;
-    	if (after == last)
+	if (after == last)
 	    sprintf(buffer, "%s%s", NewsHREF, groupName); /* original group */
-    	else
+	else
 	    sprintf(buffer, "%s%s/%d-%d", NewsHREF, groupName,
-	    				  last_required+1, after);
+					  last_required+1, after);
 	if (TRACE)
 	    fprintf(stderr, "    Block after is %s\n", buffer);
 	PUTC('(');
@@ -2020,16 +2006,16 @@ PRIVATE int HTLoadNews ARGS4(
 	HTStream*,		stream)
 {
     char command[260];			/* The whole command */
-    char proxycmd[260];			/* The proxy command */
+    char proxycmd[260]; 		/* The proxy command */
     char groupName[GROUP_NAME_LENGTH];	/* Just the group name */
-    int status;				/* tcp return */
-    int retries;			/* A count of how hard we have tried */ 
+    int status; 			/* tcp return */
+    int retries;			/* A count of how hard we have tried */
     BOOL group_wanted;		/* Flag: group was asked for, not article */
     BOOL list_wanted;		/* Flag: list was asked for, not article */
     BOOL post_wanted;		/* Flag: new post to group was asked for */
     BOOL reply_wanted;		/* Flag: followup post was asked for */
     BOOL spost_wanted;		/* Flag: new SSL post to group was asked for */
-    BOOL sreply_wanted;		/* Flag: followup SSL post was asked for */
+    BOOL sreply_wanted; 	/* Flag: followup SSL post was asked for */
     BOOL head_wanted = NO;	/* Flag: want HEAD of single article */
     int first, last;		/* First and last articles asked for */
     char *cp = 0;
@@ -2039,17 +2025,17 @@ PRIVATE int HTLoadNews ARGS4(
     char *postfile = NULL;
 
     diagnostic = (format_out == WWW_SOURCE ||	/* set global flag */
-    		  format_out == HTAtom_for("www/download") ||
+		  format_out == HTAtom_for("www/download") ||
 		  format_out == HTAtom_for("www/dump"));
     rawtext = NO;
-    
+
     if (TRACE) fprintf(stderr, "HTNews: Looking for %s\n", arg);
-    
+
     if (!initialized)
 	initialized = initialize();
     if (!initialized)
 	return -1;	/* FAIL */
-    
+
     FREE(NewsHREF);
     command[0] = '\0';
     command[259] = '\0';
@@ -2057,16 +2043,16 @@ PRIVATE int HTLoadNews ARGS4(
     proxycmd[259] = '\0';
 
     {
-        CONST char * p1 = arg;
+	CONST char * p1 = arg;
 
 	/*
 	**  We will ask for the document, omitting the host name & anchor.
 	**
 	**  Syntax of address is
-	**  	xxx@yyy			Article
-	**  	<xxx@yyy>		Same article
-	**  	xxxxx			News group (no "@")
-	**  	group/n1-n2		Articles n1 to n2 in group
+	**	xxx@yyy 		Article
+	**	<xxx@yyy>		Same article
+	**	xxxxx			News group (no "@")
+	**	group/n1-n2		Articles n1 to n2 in group
 	*/
 	spost_wanted = (strstr(arg, "snewspost:") != NULL);
 	sreply_wanted = (!(spost_wanted) &&
@@ -2092,15 +2078,15 @@ PRIVATE int HTLoadNews ARGS4(
 	}
 	if (post_wanted || reply_wanted || spost_wanted || sreply_wanted) {
 	    /*
-	    **  Make sure we have a non-zero path for the newsgroup(s). - FM
+	    **	Make sure we have a non-zero path for the newsgroup(s). - FM
 	    */
 	    if ((p1 = strrchr(arg, '/')) != NULL) {
-	        p1++;
+		p1++;
 	    } else if ((p1 = strrchr(arg, ':')) != NULL) {
-	        p1++;
+		p1++;
 	    }
 	    if (!(p1 && *p1)) {
-	    	HTAlert("Invalid URL!");
+		HTAlert("Invalid URL!");
 		return(HT_NO_DATA);
 	    }
 	    if (!(cp = HTParse(arg, "", PARSE_HOST)) || *cp == '\0') {
@@ -2118,7 +2104,7 @@ PRIVATE int HTLoadNews ARGS4(
 	    }
 	    FREE(cp);
 	    sprintf(command, "%s://%.245s/",
-	    		     (post_wanted ?
+			     (post_wanted ?
 			       "newspost" :
 			    (reply_wanted ?
 			       "newreply" :
@@ -2127,14 +2113,14 @@ PRIVATE int HTLoadNews ARGS4(
 	    StrAllocCopy(NewsHREF, command);
 
 	    /*
-	    **  If the SSL daemon is being used as a proxy,
-	    **  reset p1 to the start of the proxied URL
-	    **  rather than to the start of the newsgroup(s). - FM
+	    **	If the SSL daemon is being used as a proxy,
+	    **	reset p1 to the start of the proxied URL
+	    **	rather than to the start of the newsgroup(s). - FM
 	    */
 	    if (spost_wanted && strncasecomp(arg, "snewspost:", 10))
-	        p1 = strstr(arg, "snewspost:");
+		p1 = strstr(arg, "snewspost:");
 	    if (sreply_wanted && strncasecomp(arg, "snewsreply:", 11))
-	        p1 = strstr(arg, "snewsreply:");
+		p1 = strstr(arg, "snewsreply:");
 
 	/* p1 = HTParse(arg, "", PARSE_PATH | PARSE_PUNCTUATION); */
 	/*
@@ -2142,20 +2128,20 @@ PRIVATE int HTLoadNews ARGS4(
 	**  rules. For instance, if the article reference contains a '#',
 	**  the rest of it is lost -- JFG 10/7/92, from a bug report
 	*/
- 	} else if (!strncasecomp (arg, "nntp:", 5)) {
+	} else if (!strncasecomp (arg, "nntp:", 5)) {
 	    if (((*(arg + 5) == '\0') ||
-	         (!strcmp((arg + 5), "/") ||
+		 (!strcmp((arg + 5), "/") ||
 		  !strcmp((arg + 5), "//") ||
 		  !strcmp((arg + 5), "///"))) ||
 		((!strncmp((arg + 5), "//", 2)) &&
-	         (!(cp = strchr((arg + 7), '/')) || *(cp + 1) == '\0'))) {
+		 (!(cp = strchr((arg + 7), '/')) || *(cp + 1) == '\0'))) {
 		p1 = "*";
 		group_wanted = FALSE;
 		list_wanted = TRUE;
 	    } else if (*(arg + 5) != '/') {
-	        p1 = (arg + 5);
+		p1 = (arg + 5);
 	    } else if (*(arg + 5) == '/' && *(arg + 6) != '/') {
-	        p1 = (arg + 6);
+		p1 = (arg + 6);
 	    } else {
 		p1 = (cp + 1);
 	    }
@@ -2180,17 +2166,17 @@ PRIVATE int HTLoadNews ARGS4(
 	    HTAlert("This client does not contain support for SNEWS URLs.");
 	    return HT_NOT_LOADED;
 	}
- 	else if (!strncasecomp (arg, "news:/", 6)) {
+	else if (!strncasecomp (arg, "news:/", 6)) {
 	    if (((*(arg + 6) == '\0') ||
-	    	 !strcmp((arg + 6), "/") ||
+		 !strcmp((arg + 6), "/") ||
 		 !strcmp((arg + 6), "//")) ||
-	        ((*(arg + 6) == '/') &&
+		((*(arg + 6) == '/') &&
 		 (!(cp = strchr((arg + 7), '/')) || *(cp + 1) == '\0'))) {
 		p1 = "*";
 		group_wanted = FALSE;
 		list_wanted = TRUE;
 	    } else if (*(arg + 6) != '/') {
-	        p1 = (arg + 6);
+		p1 = (arg + 6);
 	    } else {
 		p1 = (cp + 1);
 	    }
@@ -2231,7 +2217,7 @@ PRIVATE int HTLoadNews ARGS4(
 	**  doing the conversion itself, and for handling posts
 	**  or followups.  - TZ & FM
 	*/
- 	if (!strncasecomp(p1, "snews:", 6) ||
+	if (!strncasecomp(p1, "snews:", 6) ||
 	    !strncasecomp(p1, "snewspost:", 10) ||
 	    !strncasecomp(p1, "snewsreply:", 11)) {
 	    StrAllocCopy(ProxyHost, NewsHost);
@@ -2246,13 +2232,13 @@ PRIVATE int HTLoadNews ARGS4(
 	    sprintf(proxycmd, "GET %.251s%c%c%c%c", command, CR, LF, CR, LF);
 	    if (TRACE)
 		fprintf(stderr,
-	      		"HTNews: Proxy command is '%.*s'\n",
+			"HTNews: Proxy command is '%.*s'\n",
 			(int)(strlen(proxycmd) - 4), proxycmd);
 	    strcat(command, "/");
 	    StrAllocCopy(ProxyHREF, NewsHREF);
 	    StrAllocCopy(NewsHREF, command);
 	    if (spost_wanted || sreply_wanted) {
-	        /*
+		/*
 		**  Reset p1 so that it points to the newsgroup(s).
 		*/
 		if ((p1 = strrchr(arg, '/')) != NULL) {
@@ -2261,7 +2247,7 @@ PRIVATE int HTLoadNews ARGS4(
 		    p1 = (strrchr(arg, ':') + 1);
 		}
 	    } else {
-	        /*
+		/*
 		**  Reset p1 so that it points to the newgroup
 		**  (or a wildcard), or the article.
 		*/
@@ -2295,12 +2281,12 @@ PRIVATE int HTLoadNews ARGS4(
 		if ((first > 0) && (isdigit(*(slash+1))) &&
 		    (strchr(slash+1, '-') == NULL || first == last)) {
 		    /*
-		    **  We got a number greater than 0, which will be
-		    **  loaded as first, and either no range or the
-		    **  range computes to zero, so make last negative,
-		    **  as a flag to select the group and then fetch
-		    **  an article by number (first) instead of by
-		    **  messageID. - FM
+		    **	We got a number greater than 0, which will be
+		    **	loaded as first, and either no range or the
+		    **	range computes to zero, so make last negative,
+		    **	as a flag to select the group and then fetch
+		    **	an article by number (first) instead of by
+		    **	messageID. - FM
 		    */
 		    last = -1;
 		}
@@ -2311,16 +2297,16 @@ PRIVATE int HTLoadNews ARGS4(
 	} else {
 	    strcpy(command, "ARTICLE ");
 	    if (strchr(p1, '<') == 0)
-	        strcat(command,"<");
+		strcat(command,"<");
 	    strcat(command, p1);
 	    if (strchr(p1, '>') == 0)
-	        strcat(command,">");
+		strcat(command,">");
 	}
 
-        {
+	{
 	    char * p = command + strlen(command);
 	    /*
-	    **  Terminate command with CRLF, as in RFC 977.
+	    **	Terminate command with CRLF, as in RFC 977.
 	    */
 	    *p++ = CR;		/* Macros to be correct on Mac */
 	    *p++ = LF;
@@ -2328,13 +2314,13 @@ PRIVATE int HTLoadNews ARGS4(
 	}
 	StrAllocCopy(ListArg, p1);
     } /* scope of p1 */
-    
+
     if (!*arg) {
-        FREE(NewsHREF);
+	FREE(NewsHREF);
 	FREE(ProxyHost);
 	FREE(ProxyHREF);
 	FREE(ListArg);
-        return NO;			/* Ignore if no name */
+	return NO;			/* Ignore if no name */
     }
 
     if (!(post_wanted || reply_wanted || spost_wanted || sreply_wanted ||
@@ -2350,7 +2336,7 @@ PRIVATE int HTLoadNews ARGS4(
 	rawtext = (head_wanted || keep_mime_headers);
     }
     if (rawtext) {
-        node_anchor = anAnchor;
+	node_anchor = anAnchor;
 	rawtarget = HTStreamStack(WWW_PLAINTEXT,
 				  format_out,
 				  stream, anAnchor);
@@ -2366,36 +2352,36 @@ PRIVATE int HTLoadNews ARGS4(
 	rawtargetClass = *rawtarget->isa;
     } else
     /*
-    **  Make a hypertext object with an anchor list.
+    **	Make a hypertext object with an anchor list.
     */
     if (!(post_wanted || reply_wanted || spost_wanted || sreply_wanted)) {
-        node_anchor = anAnchor;
+	node_anchor = anAnchor;
 	target = HTML_new(anAnchor, format_out, stream);
 	targetClass = *target->isa;	/* Copy routine entry points */
     }
 
     /*
-    **  Now, let's get a stream setup up from the NewsHost.
-    */       
+    **	Now, let's get a stream setup up from the NewsHost.
+    */
     for (retries = 0; retries < 2; retries++) {
-        if (s < 0) {
+	if (s < 0) {
 	    /* CONNECTING to news host */
-            char url[260];
+	    char url[260];
 	    if (!strcmp(NewsHREF, "news:")) {
-                sprintf (url, "lose://%.251s/", NewsHost);
+		sprintf (url, "lose://%.251s/", NewsHost);
 	    } else if (ProxyHREF) {
-                sprintf (url, "%.259s", ProxyHREF);
+		sprintf (url, "%.259s", ProxyHREF);
 	    } else {
-                sprintf (url, "%.259s", NewsHREF);
+		sprintf (url, "%.259s", NewsHREF);
 	    }
-            if (TRACE)
-                fprintf (stderr, "News: doing HTDoConnect on '%s'\n", url);
+	    if (TRACE)
+		fprintf (stderr, "News: doing HTDoConnect on '%s'\n", url);
 
-            _HTProgress("Connecting to NewsHost ...");
+	    _HTProgress("Connecting to NewsHost ...");
 
 	    status = HTDoConnect (url, "NNTP", NEWS_PORT, &s);
-            if (status == HT_INTERRUPTED) {
-                /*
+	    if (status == HT_INTERRUPTED) {
+		/*
 		**  Interrupt cleanly.
 		*/
 		if (TRACE)
@@ -2420,15 +2406,15 @@ PRIVATE int HTLoadNews ARGS4(
 #endif /* VMS */
 		    FREE(postfile);
 		}
-                return HT_NOT_LOADED;
-            }
+		return HT_NOT_LOADED;
+	    }
 	    if (status < 0) {
 		char message[256];
-	        NEWS_NETCLOSE(s);
+		NEWS_NETCLOSE(s);
 		s = -1;
 		if (TRACE)
 		    fprintf(stderr,
-		    	    "HTNews: Unable to connect to news host.\n");
+			    "HTNews: Unable to connect to news host.\n");
 		if (retries < 1)
 		    continue;
 		sprintf(message, "Could not access %s.", NewsHost);
@@ -2451,11 +2437,11 @@ PRIVATE int HTLoadNews ARGS4(
 		if (TRACE)
 		    fprintf(stderr, "HTNews: Connected to news host %s.\n",
 				    NewsHost);
-		HTInitInput(s);		/* set up buffering */
+		HTInitInput(s); 	/* set up buffering */
 		if (proxycmd[0]) {
 		    status = NEWS_NETWRITE(s, proxycmd, strlen(proxycmd));
 		    if (TRACE)
-		        fprintf(stderr,
+			fprintf(stderr,
 			     "HTNews: Proxy command returned status '%d'.\n",
 				status);
 		}
@@ -2467,7 +2453,7 @@ PRIVATE int HTLoadNews ARGS4(
 			    _HTProgress("Connection interrupted.");
 			    if (!(post_wanted || reply_wanted ||
 				  spost_wanted || sreply_wanted)) {
-			        ABORT_TARGET;
+				ABORT_TARGET;
 			    }
 			    FREE(NewsHost);
 			    FREE(NewsHREF);
@@ -2476,28 +2462,28 @@ PRIVATE int HTLoadNews ARGS4(
 			    FREE(ListArg);
 			    if (postfile) {
 #ifdef VMS
-			        while (remove(postfile) == 0)
+				while (remove(postfile) == 0)
 				    ; /* loop through all versions */
 #else
-			        remove(postfile);
+				remove(postfile);
 #endif /* VMS */
-			        FREE(postfile);
+				FREE(postfile);
 			    }
 			    return(HT_NOT_LOADED);
 			}
 			if (retries < 1)
 			    continue;
-			sprintf(message, 
+			sprintf(message,
 		  "Can't read news info. News host %.20s responded: %.200s",
-		  		NewsHost, response_text);
-		        return HTLoadError(stream, 500, message);
+				NewsHost, response_text);
+			return HTLoadError(stream, 500, message);
 		}
 		if (status == 200) {
 		    HTCanPost = TRUE;
 		} else {
 		    HTCanPost = FALSE;
 		    if (post_wanted || reply_wanted ||
-		        spost_wanted || sreply_wanted) {
+			spost_wanted || sreply_wanted) {
 			HTAlert("Cannot POST to this host.");
 			FREE(NewsHREF);
 			if (ProxyHREF) {
@@ -2520,7 +2506,7 @@ PRIVATE int HTLoadNews ARGS4(
 		}
 	    }
 	} /* If needed opening */
-	
+
 	if (post_wanted || reply_wanted ||
 	     spost_wanted || sreply_wanted) {
 	    if (!HTCanPost) {
@@ -2557,13 +2543,13 @@ PRIVATE int HTLoadNews ARGS4(
 		FREE(ListArg);
 		return(HT_NOT_LOADED);
 	    }
-        } else {
+	} else {
 	    /*
-	    **  Ensure reader mode, but don't bother checking the
-	    **  status for anything but HT_INTERRUPTED or a 480
-	    **  Authorization request, because if the reader mode
-	    **  command is not needed, the server probably returned
-	    **  a 500, which is irrelevant at this point. - FM
+	    **	Ensure reader mode, but don't bother checking the
+	    **	status for anything but HT_INTERRUPTED or a 480
+	    **	Authorization request, because if the reader mode
+	    **	command is not needed, the server probably returned
+	    **	a 500, which is irrelevant at this point. - FM
 	    */
 	    char buffer[20];
 
@@ -2580,9 +2566,9 @@ PRIVATE int HTLoadNews ARGS4(
 			s = -1;
 		    }
 		}
-	        if (auth_result != NNTPAUTH_OK) {
+		if (auth_result != NNTPAUTH_OK) {
 		    break;
-	        }
+		}
 		if ((status = response(buffer)) == HT_INTERRUPTED) {
 		    _HTProgress("Connection interrupted.");
 		    break;
@@ -2597,9 +2583,9 @@ Send_NNTP_command:
 	}
 	if (status < 0) {
 	    if (retries < 1) {
-	        continue;
+		continue;
 	    } else {
-	        break;
+		break;
 	    }
 	}
 	/*
@@ -2633,36 +2619,36 @@ Send_NNTP_command:
 		    sprintf(command, "LIST NEWSGROUPS%c%c", CR, LF);
 		    goto Send_NNTP_command;
 		}
-	        HTAlert(response_text);
+		HTAlert(response_text);
 	    } else {
-	        _HTProgress(response_text);
+		_HTProgress(response_text);
 	    }
 	    NEWS_NETCLOSE(s);
 	    s = -1;
 	    /*
-	    **  Message might be a leftover "Timeout-disconnected",
-	    **  so try again if the retries maximum has not been
-	    **  reached.
+	    **	Message might be a leftover "Timeout-disconnected",
+	    **	so try again if the retries maximum has not been
+	    **	reached.
 	    */
 	    continue;
 	}
-  
+
 	/*
 	**  Post or load a group, article, etc
 	*/
 	if (status == 480) {
 	    NNTPAuthResult auth_result;
 	    /*
-	     *  Some servers return 480 for a failed XGTITLE. - FM
+	     *	Some servers return 480 for a failed XGTITLE. - FM
 	     */
 	    if (list_wanted && !strncmp(command, "XGTITLE", 7) &&
-	        strstr(response_text, "uthenticat") == NULL &&
-	        strstr(response_text, "uthor") == NULL) {
+		strstr(response_text, "uthenticat") == NULL &&
+		strstr(response_text, "uthor") == NULL) {
 		sprintf(command, "LIST NEWSGROUPS%c%c", CR, LF);
 		goto Send_NNTP_command;
 	    }
 	    /*
-	    **  Handle Authorization. - FM
+	    **	Handle Authorization. - FM
 	    */
 	    if ((auth_result = HTHandleAuthInfo(NewsHost)) == NNTPAUTH_OK) {
 		goto Send_NNTP_command;
@@ -2678,7 +2664,7 @@ Send_NNTP_command:
 	} else if (post_wanted || reply_wanted ||
 		   spost_wanted || sreply_wanted) {
 	    /*
-	    **  Handle posting of an article. - FM
+	    **	Handle posting of an article. - FM
 	    */
 	    if (status != 340) {
 		HTAlert("Cannot POST to this host.");
@@ -2691,22 +2677,22 @@ Send_NNTP_command:
 #endif /* VMS */
 		}
 	    } else {
-	        post_article(postfile);
+		post_article(postfile);
 	    }
 	    FREE(postfile);
 	    status = HT_NOT_LOADED;
 	} else if (list_wanted) {
 	    /*
-	    **  List available newsgroups. - FM
+	    **	List available newsgroups. - FM
 	    */
 	    _HTProgress("Reading list of available newsgroups.");
 	    status = read_list(ListArg);
 	} else if (group_wanted) {
 	    /*
-	    **  List articles in a news group. - FM
+	    **	List articles in a news group. - FM
 	    */
 	    if (last < 0) {
-	        /*
+		/*
 		**  We got one article number rather than a range
 		**  following the slash which followed the group
 		**  name, or the range was zero, so now that we
@@ -2723,9 +2709,9 @@ Send_NNTP_command:
 	    }
 	    _HTProgress("Reading list of articles in newsgroup.");
 	    status = read_group(groupName, first, last);
-        } else {
+	} else {
 	    /*
-	    **  Get an article from a news group. - FM
+	    **	Get an article from a news group. - FM
 	    */
 	    _HTProgress("Reading news article.");
 	    status = read_article();
@@ -2760,15 +2746,15 @@ Send_NNTP_command:
 	}
 	return status;
     } /* Retry loop */
-    
+
     /* HTAlert("Sorry, could not load requested news."); */
-        
+
 /*    NXRunAlertPanel(NULL, "Sorry, could not load `%s'.",
 	    NULL,NULL,NULL, arg);No -- message earlier wil have covered it */
 
     if (!(post_wanted || reply_wanted ||
 	  spost_wanted || sreply_wanted)) {
-        ABORT_TARGET;
+	ABORT_TARGET;
     }
     FREE(NewsHREF);
     if (ProxyHREF) {
@@ -2800,14 +2786,14 @@ Send_NNTP_command:
 PUBLIC void HTClearNNTPAuthInfo NOARGS
 {
     /*
-    **  Need code to check cached documents and do
-    **  something to ensure that any protected
-    **  documents no longer can be accessed without
-    **  a new retrieval. - FM
+    **	Need code to check cached documents and do
+    **	something to ensure that any protected
+    **	documents no longer can be accessed without
+    **	a new retrieval. - FM
     */
 
     /*
-    **  Now free all of the authorization info. - FM
+    **	Now free all of the authorization info. - FM
     */
     free_NNTP_AuthInfo();
 }
diff --git a/WWW/Library/Implementation/HTParse.c b/WWW/Library/Implementation/HTParse.c
index 2aaed746..655801fa 100644
--- a/WWW/Library/Implementation/HTParse.c
+++ b/WWW/Library/Implementation/HTParse.c
@@ -22,7 +22,7 @@ struct struct_parts {
 };
 
 
-/*	Strip white space off a string.				HTStrip()
+/*	Strip white space off a string. 			HTStrip()
 **	-------------------------------
 **
 ** On exit,
@@ -30,20 +30,20 @@ struct struct_parts {
 **	All trailing white space is OVERWRITTEN with zero.
 */
 PUBLIC char * HTStrip ARGS1(
-	char *,		s)
+	char *, 	s)
 {
-#define SPACE(c) ((c == ' ') || (c == '\t') || (c == '\n')) 
+#define SPACE(c) ((c == ' ') || (c == '\t') || (c == '\n'))
     char * p = s;
     for (p = s; *p; p++)
-        ;		        /* Find end of string */
+	;			/* Find end of string */
     for (p--; p >= s; p--) {
-    	if (SPACE(*p))
+	if (SPACE(*p))
 	    *p = '\0';		/* Zap trailing blanks */
 	else
 	    break;
     }
     while (SPACE(*s))
-        s++;			/* Strip leading blanks */
+	s++;			/* Strip leading blanks */
     return s;
 }
 
@@ -53,12 +53,12 @@ PUBLIC char * HTStrip ARGS1(
 ** On entry,
 **	name	points to a document name which may be incomplete.
 ** On exit,
-**      absolute or relative may be nonzero (but not both).
+**	absolute or relative may be nonzero (but not both).
 **	host, anchor and access may be nonzero if they were specified.
 **	Any which are nonzero point to zero terminated strings.
 */
 PRIVATE void scan ARGS2(
-	char *,			name,
+	char *, 		name,
 	struct struct_parts *,	parts)
 {
     char * after_access;
@@ -66,15 +66,15 @@ PRIVATE void scan ARGS2(
 #ifdef NOTDEFINED
     int length = strlen(name);
 #endif /* NOTDEFINED */
-    
+
     parts->access = NULL;
     parts->host = NULL;
     parts->absolute = NULL;
     parts->relative = NULL;
     parts->anchor = NULL;
-    
+
     /*
-    **  Scan left-to-right for a scheme (access).
+    **	Scan left-to-right for a scheme (access).
     */
     after_access = name;
     for (p = name; *p; p++) {
@@ -87,12 +87,12 @@ PRIVATE void scan ARGS2(
 	if (*p == '/' || *p == '#' || *p == ';' || *p == '?')
 	    break;
     }
-    
+
 #ifdef NOTDEFINED
     for (p = (name + length-1); p >= name; p--) {}
 #endif /* NOTDEFINED */
     /*
-    **  Scan left-to-right for a fragment (anchor).
+    **	Scan left-to-right for a fragment (anchor).
     */
     for (p = after_access; *p; p++) {
 	if (*p =='#') {
@@ -103,40 +103,40 @@ PRIVATE void scan ARGS2(
     }
 
     /*
-    **  Scan left-to-right for a host or absolute path.
+    **	Scan left-to-right for a host or absolute path.
     */
     p = after_access;
     if (*p == '/') {
 	if (p[1] == '/') {
-	    parts->host = (p + 2);	  /* host has been specified 	*/
-	    *p = '\0';			  /* Terminate access 		*/
+	    parts->host = (p + 2);	  /* host has been specified	*/
+	    *p = '\0';			  /* Terminate access		*/
 	    p = strchr(parts->host, '/'); /* look for end of host name if any */
 	    if (p != NULL) {
-	        *p = '\0';			/* Terminate host */
-	        parts->absolute = (p + 1);	/* Root has been found */
+		*p = '\0';			/* Terminate host */
+		parts->absolute = (p + 1);	/* Root has been found */
 	    }
 	} else {
 	    parts->absolute = (p + 1);		/* Root found but no host */
-	}	    
+	}
     } else {
-        parts->relative = (*after_access) ?
+	parts->relative = (*after_access) ?
 			     after_access : NULL; /* NULL for "" */
     }
 
     /*
-    **  Check schemes that commonly have unescaped hashes.
+    **	Check schemes that commonly have unescaped hashes.
     */
     if (parts->access && parts->anchor) {
-        if ((!parts->host && strcasecomp(parts->access, "lynxcgi")) ||
+	if ((!parts->host && strcasecomp(parts->access, "lynxcgi")) ||
 	    !strcasecomp(parts->access, "nntp") ||
 	    !strcasecomp(parts->access, "snews") ||
 	    !strcasecomp(parts->access, "news") ||
 	    !strcasecomp(parts->access, "data")) {
-	    /* 
-	     *  Access specified but no host and not a lynxcgi URL, so the
-	     *  anchor may not really be one, e.g., news:j462#36487@foo.bar,
-	     *  or it's an nntp or snews URL, or news URL with a host.
-	     *  Restore the '#' in the address.
+	    /*
+	     *	Access specified but no host and not a lynxcgi URL, so the
+	     *	anchor may not really be one, e.g., news:j462#36487@foo.bar,
+	     *	or it's an nntp or snews URL, or news URL with a host.
+	     *	Restore the '#' in the address.
 	     */
 	    /* but only if we have found a path component of which this will
 	     * become part. - kw  */
@@ -149,17 +149,17 @@ PRIVATE void scan ARGS2(
 
 #ifdef NOT_DEFINED	/* search is just treated as part of path */
     {
-        char *p = (relative ? relative : absolute);
+	char *p = (relative ? relative : absolute);
 	if (p != NULL) {
 	    char *q = strchr(p, '?');	/* Any search string? */
 	    if (q != NULL) {
-	    	*q = '\0';		/* If so, chop that off. */
+		*q = '\0';		/* If so, chop that off. */
 		parts->search = (q + 1);
 	    }
 	}
     }
 #endif /* NOT_DEFINED */
-} /*scan */    
+} /*scan */
 
 
 /*	Parse a Name relative to another name.			HTParse()
@@ -170,11 +170,11 @@ PRIVATE void scan ARGS2(
 **
 ** On entry,
 **	aName		A filename given
-**      relatedName     A name relative to which aName is to be parsed
-**      wanted          A mask for the bits which are wanted.
+**	relatedName	A name relative to which aName is to be parsed
+**	wanted		A mask for the bits which are wanted.
 **
 ** On exit,
-**	returns		A pointer to a calloc'd string which MUST BE FREED
+**	returns 	A pointer to a calloc'd string which MUST BE FREED
 */
 PUBLIC char * HTParse ARGS3(
 	CONST char *,	aName,
@@ -195,66 +195,66 @@ PUBLIC char * HTParse ARGS3(
 		"HTParse: aName:%s   relatedName:%s\n", aName, relatedName);
 
     /*
-    **  Allocate the output string.
+    **	Allocate the output string.
     */
     len = strlen(aName) + strlen(relatedName) + 10;
     result = (char *)calloc(1, len);	/* Lots of space: more than enough */
     if (result == NULL) {
-        outofmem(__FILE__, "HTParse");
+	outofmem(__FILE__, "HTParse");
     }
 
     /*
-    **  Make working copies of the input strings to cut up.
+    **	Make working copies of the input strings to cut up.
     */
     StrAllocCopy(name, aName);
     StrAllocCopy(rel, relatedName);
 
     /*
-    **  Cut up the strings into URL fields.
+    **	Cut up the strings into URL fields.
     */
     scan(name, &given);
-    scan(rel,  &related); 
+    scan(rel,  &related);
 
     /*
-    **  Handle the scheme (access) field.
+    **	Handle the scheme (access) field.
     */
     if (given.access && given.host && !given.relative && !given.absolute) {
-        if (!strcmp(given.access, "http") ||
+	if (!strcmp(given.access, "http") ||
 	    !strcmp(given.access, "https") ||
 	    !strcmp(given.access, "ftp"))
 	    /*
-	    **  Assume root.
+	    **	Assume root.
 	    */
 	    given.absolute = "";
     }
     acc_method = given.access ? given.access : related.access;
     if (wanted & PARSE_ACCESS) {
-        if (acc_method) {
+	if (acc_method) {
 	    strcat(result, acc_method);
 	    if (wanted & PARSE_PUNCTUATION)
-	        strcat(result, ":");
+		strcat(result, ":");
 	}
     }
 
     /*
-    **  If different schemes, inherit nothing.
+    **	If different schemes, inherit nothing.
     **
-    **  We'll try complying with RFC 1808 and
-    **  the Fielding draft, and inherit nothing
-    **  if both schemes are given, rather than
-    **  only when they differ, except for
-    **  file URLs - FM
+    **	We'll try complying with RFC 1808 and
+    **	the Fielding draft, and inherit nothing
+    **	if both schemes are given, rather than
+    **	only when they differ, except for
+    **	file URLs - FM
     **
-    **  After trying it for a while, it's still
-    **  premature, IHMO, to go along with it, so
-    **  this is back to inheriting for identical
-    **  schemes whether or not they are "file".
-    **  If you want to try it again yourself,
-    **  uncomment the strncasecomp() below. - FM
+    **	After trying it for a while, it's still
+    **	premature, IHMO, to go along with it, so
+    **	this is back to inheriting for identical
+    **	schemes whether or not they are "file".
+    **	If you want to try it again yourself,
+    **	uncomment the strncasecomp() below. - FM
     */
     if ((given.access && related.access) &&
-        (/* strcasecomp(given.access, "file") || */
-         strcmp(given.access, related.access))) {
+	(/* strcasecomp(given.access, "file") || */
+	 strcmp(given.access, related.access))) {
 	related.host = NULL;
 	related.absolute = NULL;
 	related.relative = NULL;
@@ -262,69 +262,69 @@ PUBLIC char * HTParse ARGS3(
     }
 
     /*
-    **  Handle the host field.
+    **	Handle the host field.
     */
     if (wanted & PARSE_HOST)
-        if (given.host || related.host) {
+	if (given.host || related.host) {
 	    char *tail = result + strlen(result);
 	    if (wanted & PARSE_PUNCTUATION)
-	        strcat(result, "//");
+		strcat(result, "//");
 	    strcat(result, given.host ? given.host : related.host);
 #define CLEAN_URLS
 #ifdef CLEAN_URLS
 	    /*
-	    **  Ignore default port numbers, and trailing dots on FQDNs,
-	    **  which will only cause identical addresses to look different.
+	    **	Ignore default port numbers, and trailing dots on FQDNs,
+	    **	which will only cause identical addresses to look different.
 	    */
 	    {
-	    	char *p2, *h;
+		char *p2, *h;
 		if ((p2 = strchr(result, '@')) != NULL)
 		   tail = (p2 + 1);
 		p2 = strchr(tail, ':');
 		if (p2 != NULL && !isdigit((unsigned char)p2[1]))
 		    /*
-		    **  Colon not followed by a port number.
+		    **	Colon not followed by a port number.
 		    */
 		    *p2 = '\0';
 		if (p2 != NULL && *p2 != '\0' && acc_method != NULL) {
 		    /*
-		    **  Port specified.
+		    **	Port specified.
 		    */
-		    if ((!strcmp(acc_method, "http"      ) && !strcmp(p2, ":80" )) ||
-		        (!strcmp(acc_method, "https"     ) && !strcmp(p2, ":443")) ||
-		        (!strcmp(acc_method, "gopher"    ) && !strcmp(p2, ":70" )) ||
-		        (!strcmp(acc_method, "ftp"       ) && !strcmp(p2, ":21" )) ||
-		        (!strcmp(acc_method, "wais"      ) && !strcmp(p2, ":210")) ||
-		        (!strcmp(acc_method, "nntp"      ) && !strcmp(p2, ":119")) ||
-			(!strcmp(acc_method, "news"      ) && !strcmp(p2, ":119")) ||
+		    if ((!strcmp(acc_method, "http"	 ) && !strcmp(p2, ":80" )) ||
+			(!strcmp(acc_method, "https"	 ) && !strcmp(p2, ":443")) ||
+			(!strcmp(acc_method, "gopher"	 ) && !strcmp(p2, ":70" )) ||
+			(!strcmp(acc_method, "ftp"	 ) && !strcmp(p2, ":21" )) ||
+			(!strcmp(acc_method, "wais"	 ) && !strcmp(p2, ":210")) ||
+			(!strcmp(acc_method, "nntp"	 ) && !strcmp(p2, ":119")) ||
+			(!strcmp(acc_method, "news"	 ) && !strcmp(p2, ":119")) ||
 			(!strcmp(acc_method, "newspost"  ) && !strcmp(p2, ":119")) ||
 			(!strcmp(acc_method, "newsreply" ) && !strcmp(p2, ":119")) ||
-		        (!strcmp(acc_method, "snews"     ) && !strcmp(p2, ":563")) ||
-		        (!strcmp(acc_method, "snewspost" ) && !strcmp(p2, ":563")) ||
-		        (!strcmp(acc_method, "snewsreply") && !strcmp(p2, ":563")) ||
-		        (!strcmp(acc_method, "finger"    ) && !strcmp(p2, ":79" )) ||
-		        (!strcmp(acc_method, "telnet"    ) && !strcmp(p2, ":23" )) ||
-		        (!strcmp(acc_method, "tn3270"    ) && !strcmp(p2, ":23" )) ||
-		        (!strcmp(acc_method, "rlogin"    ) && !strcmp(p2, ":513")) ||
-		        (!strcmp(acc_method, "cso"       ) && !strcmp(p2, ":105")))
-		    *p2 = '\0';	/* It is the default: ignore it */
+			(!strcmp(acc_method, "snews"	 ) && !strcmp(p2, ":563")) ||
+			(!strcmp(acc_method, "snewspost" ) && !strcmp(p2, ":563")) ||
+			(!strcmp(acc_method, "snewsreply") && !strcmp(p2, ":563")) ||
+			(!strcmp(acc_method, "finger"	 ) && !strcmp(p2, ":79" )) ||
+			(!strcmp(acc_method, "telnet"	 ) && !strcmp(p2, ":23" )) ||
+			(!strcmp(acc_method, "tn3270"	 ) && !strcmp(p2, ":23" )) ||
+			(!strcmp(acc_method, "rlogin"	 ) && !strcmp(p2, ":513")) ||
+			(!strcmp(acc_method, "cso"	 ) && !strcmp(p2, ":105")))
+		    *p2 = '\0'; /* It is the default: ignore it */
 		}
 		if (p2 == NULL) {
 		    int len2 = strlen(tail);
 
 		    if (len2 > 0) {
-		        h = tail + len2 - 1;	/* last char of hostname */
-		        if (*h == '.') 
-		            *h = '\0';		/* chop final . */
+			h = tail + len2 - 1;	/* last char of hostname */
+			if (*h == '.')
+			    *h = '\0';		/* chop final . */
 		    }
-		} else { 
+		} else {
 		    h = p2;
 		    h--;		/* End of hostname */
 		    if (*h == '.') {
-		        /*
+			/*
 			**  Slide p2 over h.
 			*/
-		        while (*p2 != '\0')
+			while (*p2 != '\0')
 			    *h++ = *p2++;
 			*h = '\0';	/* terminate */
 		    }
@@ -334,22 +334,22 @@ PUBLIC char * HTParse ARGS3(
 	}
 
     /*
-    **  If different hosts, inherit no path.
+    **	If different hosts, inherit no path.
     */
     if (given.host && related.host)
-        if (strcmp(given.host, related.host) != 0) {
+	if (strcmp(given.host, related.host) != 0) {
 	    related.absolute = NULL;
 	    related.relative = NULL;
 	    related.anchor = NULL;
 	}
 
     /*
-    **  Handle the path.
+    **	Handle the path.
     */
     if (wanted & PARSE_PATH) {
-        if (acc_method && !given.absolute && given.relative) {
+	if (acc_method && !given.absolute && given.relative) {
 	    if (!strcasecomp(acc_method, "nntp") ||
-	        !strcasecomp(acc_method, "snews") ||
+		!strcasecomp(acc_method, "snews") ||
 		(!strcasecomp(acc_method, "news") &&
 		 !strncasecomp(result, "news://", 7))) {
 		/*
@@ -361,12 +361,12 @@ PUBLIC char * HTParse ARGS3(
 		given.relative = NULL;
 	    }
 	}
-        if (given.absolute) {			/* All is given */
+	if (given.absolute) {			/* All is given */
 	    if (wanted & PARSE_PUNCTUATION)
-	        strcat(result, "/");
+		strcat(result, "/");
 	    strcat(result, given.absolute);
 	    if (TRACE)
-	        fprintf(stderr, "1\n");
+		fprintf(stderr, "1\n");
 	} else if (related.absolute) {		/* Adopt path not name */
 	    strcat(result, "/");
 	    strcat(result, related.absolute);
@@ -377,42 +377,42 @@ PUBLIC char * HTParse ARGS3(
 		for (; *p != '/'; p--)
 		    ;				/* last / */
 		p[1] = '\0';			/* Remove filename */
-		strcat(result, given.relative);	/* Add given one */
+		strcat(result, given.relative); /* Add given one */
 		HTSimplify (result);
 	    }
 	    if (TRACE)
-	        fprintf(stderr, "2\n");
+		fprintf(stderr, "2\n");
 	} else if (given.relative) {
 	    strcat(result, given.relative);		/* what we've got */
 	    if (TRACE)
-	        fprintf(stderr, "3\n");
+		fprintf(stderr, "3\n");
 	} else if (related.relative) {
 	    strcat(result, related.relative);
 	    if (TRACE)
-	        fprintf(stderr, "4\n");
+		fprintf(stderr, "4\n");
 	} else {  /* No inheritance */
 	    if (strncasecomp(aName, "lynxcgi:", 8) &&
-	        strncasecomp(aName, "lynxexec:", 9) &&
+		strncasecomp(aName, "lynxexec:", 9) &&
 		strncasecomp(aName, "lynxprog:", 9)) {
 		strcat(result, "/");
 	    }
 	    if (!strcmp(result, "news:/"))
-	        result[5] = '*';
+		result[5] = '*';
 	    if (TRACE)
-	        fprintf(stderr, "5\n");
+		fprintf(stderr, "5\n");
 	}
     }
 
     /*
-    **  Handle the fragment (anchor).
+    **	Handle the fragment (anchor).
     */
     if (wanted & PARSE_ANCHOR)
-        if ((given.anchor && *given.anchor) ||
+	if ((given.anchor && *given.anchor) ||
 	    (!given.anchor && related.anchor)) {
 	    if (wanted & PARSE_PUNCTUATION)
-	        strcat(result, "#");
+		strcat(result, "#");
 	    strcat(result, (given.anchor) ?
-	    		     given.anchor : related.anchor);
+			     given.anchor : related.anchor);
 	}
     if (TRACE)
 	fprintf(stderr, "HTParse: result:%s\n", result);
@@ -432,16 +432,16 @@ PUBLIC char * HTParse ARGS3(
 **  be replaced by "" , and the seqeunce "/./" which may be replaced by "/".
 **  Simplification helps us recognize duplicate filenames.
 **
-**	Thus, 	/etc/junk/../fred 	becomes	/etc/fred
-**		/etc/junk/./fred	becomes	/etc/junk/fred
+**	Thus,	/etc/junk/../fred	becomes /etc/fred
+**		/etc/junk/./fred	becomes /etc/junk/fred
 **
-**      but we should NOT change
+**	but we should NOT change
 **		http://fred.xxx.edu/../..
 **
 **	or	../../albert.html
 */
 PUBLIC void HTSimplify ARGS1(
-	char *,		filename)
+	char *, 	filename)
 {
     char *p;
     char *q, *q1;
@@ -454,13 +454,13 @@ PUBLIC void HTSimplify ARGS1(
 	return;
 
     if (strchr(filename, '/') != NULL) {
-        for (p = (filename + 2); *p; p++) {
+	for (p = (filename + 2); *p; p++) {
 	    if (*p == '?') {
-	        /*
+		/*
 		**  We're still treating a ?searchpart as part of
 		**  the path in HTParse() and scan(), but if we
 		**  encounter a '?' here, assume it's the delimiter
-		**  and break.  We also could check for a parameter
+		**  and break.	We also could check for a parameter
 		**  delimiter (';') here, but the current Fielding
 		**  draft (wisely or ill-advisedly :) says that it
 		**  should be ignored and collapsing be allowed in
@@ -477,17 +477,17 @@ PUBLIC void HTSimplify ARGS1(
 		if ((p[1] == '.') && (p[2] == '.') &&
 		    (p[3] == '/' || p[3] == '?' || p[3] == '\0')) {
 		    /*
-		    **  Handle "../", "..?" or "..".
+		    **	Handle "../", "..?" or "..".
 		    */
 		    for (q = (p - 1); (q >= filename) && (*q != '/'); q--)
 			/*
 			**  Back up to previous slash or beginning of string.
 			*/
-		        ;
+			;
 		    if ((q[0] == '/') &&
-		        (strncmp(q, "/../", 4) &&
+			(strncmp(q, "/../", 4) &&
 			 strncmp(q, "/..?", 4)) &&
-		        !((q - 1) > filename && q[-1] == '/')) {
+			!((q - 1) > filename && q[-1] == '/')) {
 			/*
 			**  Not at beginning of string or in a
 			**  host field, so remove the "/xxx/..".
@@ -513,7 +513,7 @@ PUBLIC void HTSimplify ARGS1(
 		    }
 		} else if (p[1] == '.' && p[2] == '/') {
 		    /*
-		    **  Handle "./" by removing both characters.
+		    **	Handle "./" by removing both characters.
 		    */
 		    q = p;
 		    q1 = (p + 2);
@@ -523,7 +523,7 @@ PUBLIC void HTSimplify ARGS1(
 		    p--;
 		} else if (p[1] == '.' && p[2] == '?') {
 		    /*
-		    **  Handle ".?" by removing the dot.
+		    **	Handle ".?" by removing the dot.
 		    */
 		    q = (p + 1);
 		    q1 = (p + 2);
@@ -533,7 +533,7 @@ PUBLIC void HTSimplify ARGS1(
 		    p--;
 		} else if (p[1] == '.' && p[2] == '\0') {
 		    /*
-		    **  Handle terminal "." by removing the character.
+		    **	Handle terminal "." by removing the character.
 		    */
 		    p[1] = '\0';
 		}
@@ -554,7 +554,7 @@ PUBLIC void HTSimplify ARGS1(
 		       (*(p-4) != '/' ||
 			(p > filename + 4 && *(p-5) != ':'))) {
 		    /*
-		    **  Handle "xxx/..?"
+		    **	Handle "xxx/..?"
 		    */
 		for (q = (p - 4); (q > filename) && (*q != '/'); q--)
 			/*
@@ -612,9 +612,9 @@ PUBLIC char * HTRelative ARGS2(
     CONST char * path = NULL;
     CONST char * last_slash = NULL;
     int slashes = 0;
-    
+
     for (; *p; p++, q++) {	/* Find extent of match */
-    	if (*p != *q)
+	if (*p != *q)
 	    break;
 	if (*p == ':')
 	    after_access = p+1;
@@ -622,25 +622,25 @@ PUBLIC char * HTRelative ARGS2(
 	    last_slash = p;
 	    slashes++;
 	    if (slashes == 3)
-	        path=p;
+		path=p;
 	}
     }
-    
+
     /* q, p point to the first non-matching character or zero */
-    
+
     if (!after_access) {			/* Different access */
-        StrAllocCopy(result, aName);
+	StrAllocCopy(result, aName);
     } else if (slashes < 3){			/* Different nodes */
-    	StrAllocCopy(result, after_access);
+	StrAllocCopy(result, after_access);
     } else if (slashes == 3){			/* Same node, different path */
-        StrAllocCopy(result, path);
+	StrAllocCopy(result, path);
     } else {					/* Some path in common */
-        int levels = 0;
-        for (; *q && (*q != '#'); q++)
+	int levels = 0;
+	for (; *q && (*q != '#'); q++)
 	    if (*q == '/')
-	        levels++;
+		levels++;
 	result = (char *)calloc(1, (3*levels + strlen(last_slash) + 1));
-        if (result == NULL)
+	if (result == NULL)
 	    outofmem(__FILE__, "HTRelative");
 	result[0] = '\0';
 	for (; levels; levels--)
@@ -648,8 +648,8 @@ PUBLIC char * HTRelative ARGS2(
 	strcat(result, last_slash+1);
     }
     if (TRACE)
-        fprintf(stderr, "HT: `%s' expressed relative to\n    `%s' is\n   `%s'.",
-    		aName, relatedName, result);
+	fprintf(stderr, "HT: `%s' expressed relative to\n    `%s' is\n   `%s'.",
+		aName, relatedName, result);
     return result;
 }
 
@@ -666,15 +666,15 @@ PUBLIC char * HTRelative ARGS2(
 PRIVATE CONST unsigned char isAcceptable[96] =
 
 /*	Bit 0		xalpha		-- see HTFile.h
-**	Bit 1		xpalpha		-- as xalpha but with plus.
+**	Bit 1		xpalpha 	-- as xalpha but with plus.
 **	Bit 3 ...	path		-- as xpalphas but with /
 */
-    /*   0 1 2 3 4 5 6 7 8 9 A B C D E F */
-    {    0,0,0,0,0,0,0,0,0,0,7,6,0,7,7,4,	/* 2x   !"#$%&'()*+,-./	 */
-         7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,	/* 3x  0123456789:;<=>?	 */
+    /*	 0 1 2 3 4 5 6 7 8 9 A B C D E F */
+    {	 0,0,0,0,0,0,0,0,0,0,7,6,0,7,7,4,	/* 2x	!"#$%&'()*+,-./  */
+	 7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,	/* 3x  0123456789:;<=>?  */
 	 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,	/* 4x  @ABCDEFGHIJKLMNO  */
-	 7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,7,	/* 5X  PQRSTUVWXYZ[\]^_	 */
-	 0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,	/* 6x  `abcdefghijklmno	 */
+	 7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,7,	/* 5X  PQRSTUVWXYZ[\]^_  */
+	 0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,	/* 6x  `abcdefghijklmno  */
 	 7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0 };	/* 7X  pqrstuvwxyz{|}~	DEL */
 
 PRIVATE char *hex = "0123456789ABCDEF";
@@ -689,13 +689,13 @@ PUBLIC char * HTEscape ARGS2(
     char * result;
     int unacceptable = 0;
     for (p = str; *p; p++)
-        if (!ACCEPTABLE((unsigned char)TOASCII(*p)))
+	if (!ACCEPTABLE((unsigned char)TOASCII(*p)))
 	    unacceptable++;
     result = (char *)calloc(1, (p-str + unacceptable + unacceptable + 1));
     if (result == NULL)
-        outofmem(__FILE__, "HTEscape");
+	outofmem(__FILE__, "HTEscape");
     for (q = result, p = str; *p; p++) {
-    	unsigned char a = TOASCII(*p);
+	unsigned char a = TOASCII(*p);
 	if (!ACCEPTABLE(a)) {
 	    *q++ = HEX_ESCAPE;	/* Means hex commming */
 	    *q++ = hex[a >> 4];
@@ -727,13 +727,13 @@ PUBLIC char * HTEscapeSP ARGS2(
     char * result;
     int unacceptable = 0;
     for (p = str; *p; p++)
-        if (!(*p == ' ' || ACCEPTABLE((unsigned char)TOASCII(*p))))
+	if (!(*p == ' ' || ACCEPTABLE((unsigned char)TOASCII(*p))))
 	    unacceptable++;
     result = (char *)calloc(1, (p-str + unacceptable + unacceptable + 1));
     if (result == NULL)
-        outofmem(__FILE__, "HTEscape");
+	outofmem(__FILE__, "HTEscape");
     for (q = result, p = str; *p; p++) {
-    	unsigned char a = TOASCII(*p);
+	unsigned char a = TOASCII(*p);
 	if (a == 32) {
 	    *q++ = '+';
 	} else if (!ACCEPTABLE(a)) {
@@ -759,40 +759,42 @@ PUBLIC char * HTEscapeSP ARGS2(
 PRIVATE char from_hex ARGS1(
 	char,		c)
 {
-    return  c >= '0' && c <= '9' ?  c - '0' 
-    	    : c >= 'A' && c <= 'F'? c - 'A' + 10
-    	    : c - 'a' + 10;	/* accept small letters just in case */
+    return  c >= '0' && c <= '9' ?  c - '0'
+	    : c >= 'A' && c <= 'F'? c - 'A' + 10
+	    : c - 'a' + 10;	/* accept small letters just in case */
 }
 
 PUBLIC char * HTUnEscape ARGS1(
-	char *,		str)
+	char *, 	str)
 {
     char * p = str;
     char * q = str;
 
     if (!(p && *p))
-        return str;
+	return str;
 
     while (*p != '\0') {
-        if (*p == HEX_ESCAPE &&
+	if (*p == HEX_ESCAPE &&
 	    /*
-	     *  Tests shouldn't be needed, but better safe than sorry.
+	     *	Tests shouldn't be needed, but better safe than sorry.
 	     */
 	    p[1] && p[2] &&
 	    isxdigit((unsigned char)p[1]) &&
 	    isxdigit((unsigned char)p[2])) {
 	    p++;
-	    *q = from_hex(*p++) * 16;
-	    *q = FROMASCII(*q + from_hex(*p++));
+	    if (*p)
+	        *q = from_hex(*p++) * 16;
+	    if (*p)
+	        *q = FROMASCII(*q + from_hex(*p++));
 	    q++;
 	} else {
-	    *q++ = *p++; 
+	    *q++ = *p++;
 	}
     }
-    
+
     *q++ = '\0';
     return str;
-    
+
 } /* HTUnEscape */
 
 /*	Decode some %xx escaped characters.		      HTUnEscapeSome()
@@ -806,48 +808,51 @@ PUBLIC char * HTUnEscape ARGS1(
 **	The first string is converted in place, as it will never grow.
 */
 PUBLIC char * HTUnEscapeSome ARGS2(
-	char *,		str,
-        CONST char *,	do_trans)
+	char *, 	str,
+	CONST char *,	do_trans)
 {
     char * p = str;
     char * q = str;
     char testcode;
 
     if (p == NULL || *p == '\0' || do_trans == NULL || *do_trans == '\0')
-        return str;
+	return str;
 
     while (*p != '\0') {
-        if (*p == HEX_ESCAPE &&
+	if (*p == HEX_ESCAPE &&
 	    p[1] && p[2] &&	/* tests shouldn't be needed, but.. */
 	    isxdigit((unsigned char)p[1]) &&
 	    isxdigit((unsigned char)p[2]) &&
 	    (testcode = from_hex(p[1])*16 + from_hex(p[2])) && /* %00 no good*/
 	    strchr(do_trans, testcode)) { /* it's one of the ones we want */
-	    *q++ = FROMASCII(testcode); 
+	    *q++ = FROMASCII(testcode);
 	    p += 3;
 	} else {
-	    *q++ = *p++; 
+	    *q++ = *p++;
 	}
     }
-    
+
     *q++ = '\0';
     return str;
-    
+
 } /* HTUnEscapeSome */
 
 PRIVATE CONST unsigned char crfc[96] =
 
 /*	Bit 0		xalpha		-- need "quoting"
-**	Bit 1		xpalpha		-- need \escape if quoted
+**	Bit 1		xpalpha 	-- need \escape if quoted
 */
-    /*   0 1 2 3 4 5 6 7 8 9 A B C D E F */
-    {    1,0,3,0,0,0,0,0,1,1,0,0,1,0,1,0,	/* 2x   !"#$%&'()*+,-./	 */
-         0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,	/* 3x  0123456789:;<=>?	 */
+    /*	 0 1 2 3 4 5 6 7 8 9 A B C D E F */
+    {	 1,0,3,0,0,0,0,0,1,1,0,0,1,0,1,0,	/* 2x	!"#$%&'()*+,-./  */
+	 0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,	/* 3x  0123456789:;<=>?  */
 	 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,	/* 4x  @ABCDEFGHIJKLMNO  */
-	 0,0,0,0,0,0,0,0,0,0,0,1,2,1,0,0,	/* 5X  PQRSTUVWXYZ[\]^_	 */
-	 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,	/* 6x  `abcdefghijklmno	 */
+	 0,0,0,0,0,0,0,0,0,0,0,1,2,1,0,0,	/* 5X  PQRSTUVWXYZ[\]^_  */
+	 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,	/* 6x  `abcdefghijklmno  */
 	 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 };	/* 7X  pqrstuvwxyz{|}~	DEL */
 
+/*
+**  Turn a string which is not a RFC 822 token into a quoted-string. - KW
+*/
 PUBLIC void HTMake822Word ARGS1(
 	char **,	str)
 {
@@ -862,7 +867,7 @@ PUBLIC void HTMake822Word ARGS1(
     }
     for (p = *str; *p; p++) {
 	a = *p;
-        if (a < 32 || a >= 128 ||
+	if (a < 32 || a >= 128 ||
 	    ((crfc[a-32]) & 1)) {
 	    if (!added)
 		added = 2;
@@ -878,10 +883,10 @@ PUBLIC void HTMake822Word ARGS1(
 	return;
     result = (char *)calloc(1, (p-(*str) + added + 1));
     if (result == NULL)
-        outofmem(__FILE__, "HTMake822Word");
+	outofmem(__FILE__, "HTMake822Word");
     result[0] = '"';
     for (q = result + 1, p = *str; *p; p++) {
-    	a = TOASCII(*p);
+	a = TOASCII(*p);
 	if ((a != '\t') && ((a & 127) < 32 ||
 			    ( a < 128 && ((crfc[a-32]) & 2))))
 	    *q++ = '\\';
diff --git a/WWW/Library/Implementation/HTPlain.c b/WWW/Library/Implementation/HTPlain.c
index 78f027ea..cc121ce6 100644
--- a/WWW/Library/Implementation/HTPlain.c
+++ b/WWW/Library/Implementation/HTPlain.c
@@ -42,28 +42,40 @@ PUBLIC int HTPlain_lastraw = -1;
 struct _HTStream {
     CONST HTStreamClass *	isa;
     HText *			text;
-    LYUCcharset	* UCI;	/* pointer to node_anchor's UCInfo */
-    int	in_char_set;		/* tells us what charset we are fed */
-    int	htext_char_set;		/* what charset we feed to HText */
+    /*
+    **  The node_anchor UCInfo and handle for the input (PARSER) stage. - FM
+    */
+    LYUCcharset		*	inUCI;
+    int				inUCLYhndl;
+    /*
+    **  The node_anchor UCInfo and handle for the output (HTEXT) stage. - FM
+    */
+    int outUCLYhndl;
+    /*
+    **  Counter, value, buffer and pointer for UTF-8 handling. - FM
+    */
     char			utf_count;
     UCode_t			utf_char;
-    char 			utf_buf[8];
+    char			utf_buf[8];
     char *			utf_buf_p;
+    /*
+    **  The charset transformation structure. - FM
+    */
     UCTransParams		T;
 };
 
-PRIVATE char replace_buf [64];        /* buffer for replacement strings */
+PRIVATE char replace_buf [64];	      /* buffer for replacement strings */
 
 PRIVATE void HTPlain_getChartransInfo ARGS2(
 	HTStream *,		me,
 	HTParentAnchor *,	anchor)
 {
-    if (me->in_char_set < 0) {
+    if (me->inUCLYhndl < 0) {
 	HTAnchor_copyUCInfoStage(anchor, UCT_STAGE_PARSER, UCT_STAGE_MIME,
-				 	 UCT_SETBY_PARSER);
-	me->in_char_set = HTAnchor_getUCLYhndl(anchor, UCT_STAGE_PARSER);
+					 UCT_SETBY_PARSER);
+	me->inUCLYhndl = HTAnchor_getUCLYhndl(anchor, UCT_STAGE_PARSER);
     }
-    if (me->htext_char_set < 0) {
+    if (me->outUCLYhndl < 0) {
 	int chndl = HTAnchor_getUCLYhndl(anchor, UCT_STAGE_HTEXT);
 	if (chndl < 0) {
 	    chndl = current_char_set;
@@ -72,9 +84,9 @@ PRIVATE void HTPlain_getChartransInfo ARGS2(
 	}
 	HTAnchor_setUCInfoStage(anchor, chndl,
 				UCT_STAGE_HTEXT, UCT_SETBY_DEFAULT);
-	me->htext_char_set = HTAnchor_getUCLYhndl(anchor, UCT_STAGE_HTEXT);
+	me->outUCLYhndl = HTAnchor_getUCLYhndl(anchor, UCT_STAGE_HTEXT);
     }
-    me->UCI = HTAnchor_getUCInfoStage(anchor, UCT_STAGE_PARSER);
+    me->inUCI = HTAnchor_getUCInfoStage(anchor, UCT_STAGE_PARSER);
 }
 
 /*	Write the buffer out to the socket
@@ -83,18 +95,13 @@ PRIVATE void HTPlain_getChartransInfo ARGS2(
 
 /*_________________________________________________________________________
 **
-**			A C T I O N 	R O U T I N E S
+**			A C T I O N	R O U T I N E S
 */
 
-        /* for forward reference to HTPlain_write - kw */
-#ifdef _WINDOWS
-PRIVATE void HTPlain_write (HTStream * me, CONST char* s, int l);
-#else
 PRIVATE void HTPlain_write PARAMS((
 	HTStream *		me,
 	CONST char *		s,
 	int			l));
-#endif /* _WINDOWS */
 
 /*	Character handling
 **	------------------
@@ -105,18 +112,18 @@ PRIVATE void HTPlain_put_character ARGS2(
 {
 #ifdef REMOVE_CR_ONLY
     /*
-    **  Throw away \r's.
+    **	Throw away \r's.
     */
     if (c != '\r') {
        HText_appendCharacter(me->text, c);
     }
 #else
     /*
-    **  See HTPlain_write() for explanations of the following code
-    **  (we've been called via HTPlain_put_string() to do for each
-    **  character of a terminated string what HTPlain_write() does
-    **  via a while loop for each character in a stream of given
-    **  length). - FM
+    **	See HTPlain_write() for explanations of the following code
+    **	(we've been called via HTPlain_put_string() to do for each
+    **	character of a terminated string what HTPlain_write() does
+    **	via a while loop for each character in a stream of given
+    **	length). - FM
     */
     if ((HTPlain_lastraw == '\r') && c == '\n') {
 	HTPlain_lastraw = -1;
@@ -134,12 +141,12 @@ PRIVATE void HTPlain_put_character ARGS2(
 	*/
 	HTPlain_write(me, &c, 1);
     } else if ((unsigned char)c >= 127 && (unsigned char)c < 161 &&
-    	       HTPassHighCtrlRaw) {
+	       HTPassHighCtrlRaw) {
 	HText_appendCharacter(me->text, c);
     } else if ((unsigned char)c == 160) {
 	HText_appendCharacter(me->text, ' ');
     } else if ((unsigned char)c == 173) {
-        return;
+	return;
     } else if (((unsigned char)c >= 32 && (unsigned char)c < 127) ||
 	       c == '\n' || c == '\t') {
 	HText_appendCharacter(me->text, c);
@@ -148,7 +155,7 @@ PRIVATE void HTPlain_put_character ARGS2(
 	    current_char_set != 0) {
 	    int len, high, low, i, diff = 1;
 	    CONST char * name;
-	    int value = (int)((unsigned char)c - 160);
+	    UCode_t value = (UCode_t)((unsigned char)c - 160);
 
 	    name = HTMLGetEntityName(value);
 	    len =  strlen(name);
@@ -160,7 +167,7 @@ PRIVATE void HTPlain_put_character ARGS2(
 		diff = strncmp(HTML_dtd.entity_names[i], name, len);
 		if (diff == 0) {
 		    HText_appendText(me->text,
-		    		     LYCharSets[current_char_set][i]);
+				     LYCharSets[current_char_set][i]);
 		    break;
 		}
 	    }
@@ -189,7 +196,7 @@ PRIVATE void HTPlain_put_string ARGS2(HTStream *, me, CONST char*, s)
     if (s == NULL)
 	return;
     for (p = s; *p; p++) {
-        HTPlain_put_character(me, *p);
+	HTPlain_put_character(me, *p);
     }
 #endif /* REMOVE_CR_ONLY */
 }
@@ -203,14 +210,15 @@ PRIVATE void HTPlain_write ARGS3(HTStream *, me, CONST char*, s, int, l)
 {
     CONST char * p;
     CONST char * e = s+l;
+    char c;
+    unsigned char c_unsign;
     BOOL chk;
     UCode_t code;
-    long uck;
-    char c_p;
+    long uck = 0;
 
     for (p = s; p < e; p++) {
 #ifdef REMOVE_CR_ONLY
-	/* 
+	/*
 	**  Append the whole string, but remove any \r's. - FM
 	*/
 	if (*p != '\r') {
@@ -232,82 +240,108 @@ PRIVATE void HTPlain_write ARGS3(HTStream *, me, CONST char*, s, int, l)
 	    HText_appendCharacter(me->text, '\n');
 	    continue;
 	}
-	code = (unsigned char)*p;
-	c_p = *p;
-
+	/*
+	**  Make sure the character is handled as Unicode
+	**  whenever that's appropriate.  - FM
+	*/
+	c = *p;
+	c_unsign = (unsigned char)c;
+	code = (UCode_t)c_unsign;
+	/*
+	**  Combine any UTF-8 multibytes into Unicode
+	**  to check for special characters. - FM
+	*/
 	if (me->T.decode_utf8) {
 	    /*
-	    **  Combine UTF-8 into Unicode.
-	    **  Incomplete characters silently ignored.
-	    **  from Linux kernel's console.c
+	    **	Combine UTF-8 into Unicode.
+	    **	Incomplete characters silently ignored.
+	    **  from Linux kernel's console.c - KW
 	    */
-	    if ((unsigned char)(*p) > 127) {
-		if (me->utf_count > 0 && (*p & 0xc0) == 0x80) {
-		    me->utf_char = (me->utf_char << 6) | (*p & 0x3f);
+	    if (c_unsign > 127) {
+		/*
+		**  We have an octet from a multibyte character. - FM
+		*/
+		if (me->utf_count > 0 && (c & 0xc0) == 0x80) {
+		    /*
+		    **  Adjust the UCode_t value, add the octet
+		    **  to the buffer, and decrement the byte
+		    **  count. - FM
+		    */
+		    me->utf_char = (me->utf_char << 6) | (c & 0x3f);
 		    me->utf_count--;
-		    *(me->utf_buf_p) = *p;
+		    *(me->utf_buf_p) = c;
 		    (me->utf_buf_p)++;
 		    if (me->utf_count == 0) {
-		        /*
+			/*
 			**  Got a complete multibyte character.
 			*/
 			*(me->utf_buf_p) = '\0';
 			code = me->utf_char;
 			if (code < 256) {
-			    c_p = FROMASCII((char)code);
+			    c = FROMASCII((char)code);
 			}
 		    } else {
-			continue;  /* iterate for more */
+			/*
+			**  Get the next byte. - FM
+			*/
+			continue;
 		    }
 		} else {
 		    /*
-		    **  Accumulate a multibyte character.
+		    **  Start handling a new multibyte character. - FM
 		    */
 		    me->utf_buf_p = me->utf_buf;
-		    *(me->utf_buf_p) = *p;
+		    me->utf_buf_p[0] = c;
 		    (me->utf_buf_p)++;
 		    if ((*p & 0xe0) == 0xc0) {
 			me->utf_count = 1;
-			me->utf_char = (*p & 0x1f);
+			me->utf_char = (c & 0x1f);
 		    } else if ((*p & 0xf0) == 0xe0) {
 			me->utf_count = 2;
-			me->utf_char = (*p & 0x0f);
+			me->utf_char = (c & 0x0f);
 		    } else if ((*p & 0xf8) == 0xf0) {
 			me->utf_count = 3;
-			me->utf_char = (*p & 0x07);
+			me->utf_char = (c & 0x07);
 		    } else if ((*p & 0xfc) == 0xf8) {
 			me->utf_count = 4;
-			me->utf_char = (*p & 0x03);
+			me->utf_char = (c & 0x03);
 		    } else if ((*p & 0xfe) == 0xfc) {
 			me->utf_count = 5;
-			me->utf_char = (*p & 0x01);
+			me->utf_char = (c & 0x01);
 		    } else {
 			/*
-			 *  Garbage.
+			 *  We got garbage, so ignore it. - FM
 			 */
 			me->utf_count = 0;
 			me->utf_buf_p = me->utf_buf;
-			*(me->utf_buf_p) = '\0';
+			me->utf_buf_p[0] = '\0';
 		    }
-		    continue; /* iterate for more */
+		    /*
+		    **  Get the next byte. - FM
+		    */
+		    continue;
 		}
 	    } else {
-	        /*
+		/*
 		**  Got an ASCII character.
 		*/
 		me->utf_count = 0;
+		me->utf_buf[0] = '\0';
 		me->utf_buf_p = me->utf_buf;
-		*(me->utf_buf_p) = '\0';
 	    }
 	}
-	
+
 	if (me->T.trans_to_uni &&
 	    (code >= 127 ||
-	     (code < 32 && code != 0 && me->T.trans_C0_to_uni))) {
-	    code = UCTransToUni(c_p, me->in_char_set);
+	     (code < 32 && code != 0 &&
+	     me->T.trans_C0_to_uni))) {
+		/*
+		**  Convert the octet to Unicode. - FM
+		*/
+	    code = (UCode_t)UCTransToUni(c, me->inUCLYhndl);
 	    if (code > 0) {
 		if (code < 256) {
-		    c_p = FROMASCII((char)code);
+		    c = FROMASCII((char)code);
 		}
 	    }
 	}
@@ -323,14 +357,13 @@ PRIVATE void HTPlain_write ARGS3(HTStream *, me, CONST char*, s, int, l)
 	**  user should toggle off raw/CJK mode to reload. - FM
 	*/
 	if (HTCJK != NOCJK) {
-	    HText_appendCharacter(me->text, c_p);
+	    HText_appendCharacter(me->text, c);
 
 #define PASSHICTRL (me->T.transp || \
-		    code >= LYlowest_eightbit[me->in_char_set])
+		    code >= LYlowest_eightbit[me->inUCLYhndl])
 #define PASS8859SPECL me->T.pass_160_173_raw
 #define PASSHI8BIT (HTPassEightBitRaw || \
 		    (me->T.do_8bitraw && !me->T.trans_from_uni))
-
 	/*
 	**  If HTPassHighCtrlRaw is set (e.g., for KOI8-R) assume the
 	**  document matches and pass 127-160 8-bit characters.  If it
@@ -338,9 +371,9 @@ PRIVATE void HTPlain_write ARGS3(HTStream *, me, CONST char*, s, int, l)
 	*/
 	} else if (code >= 127 && code < 161 &&
 		   PASSHICTRL && PASS8859SPECL) {
-	    HText_appendCharacter(me->text, *p);
+	    HText_appendCharacter(me->text, c);
 	} else if (code == 173 && PASS8859SPECL) {
-	    HText_appendCharacter(me->text, *p);
+	    HText_appendCharacter(me->text, c);
 	/*
 	**  If neither HTPassHighCtrlRaw nor CJK is set, play it safe
 	**  and treat 160 (nbsp) as an ASCII space (32). - FM
@@ -358,15 +391,15 @@ PRIVATE void HTPlain_write ARGS3(HTStream *, me, CONST char*, s, int, l)
 	*/
 	} else if ((code >= 32 && code < 127) ||
 		   (PASSHI8BIT &&
-		    c_p >= LYlowest_eightbit[me->htext_char_set]) ||
+		    c >= LYlowest_eightbit[me->outUCLYhndl]) ||
 		   *p == '\n' || *p == '\t') {
-	    HText_appendCharacter(me->text, c_p);
+	    HText_appendCharacter(me->text, c);
 
 	} else if (me->T.use_raw_char_in) {
 	    HText_appendCharacter(me->text, *p);
-#ifdef NOTUSED_FOTEMODS
+#ifdef NOTDEFINED
 	/*
-	**  Use an ASCII space (32) for ensp, emsp or thinsp. - FM 
+	**  Use an ASCII space (32) for ensp, emsp or thinsp. - FM
 	*/
 	} else if (code == 8194 || code == 8195 || code == 8201) {
 	    HText_appendCharacter(me->text, ' ');
@@ -376,21 +409,21 @@ PRIVATE void HTPlain_write ARGS3(HTStream *, me, CONST char*, s, int, l)
 	*/
 	} else if (code == 8211 || code == 8212) {
 	    HText_appendCharacter(me->text, '-');
-#endif /* NOTUSED_FOTEMODS */
+#endif /* NOTDEFINED */
 
 /******************************************************************
  *   I. LATIN-1 OR UCS2  TO  DISPLAY CHARSET
- ******************************************************************/  
+ ******************************************************************/
 	} else if ((chk = (me->T.trans_from_uni && code >= 160)) &&
 		   (uck = UCTransUniChar(code,
-					 me->htext_char_set)) >= 32 &&
+					 me->outUCLYhndl)) >= 32 &&
 		   uck < 256) {
 	    if (TRACE) {
 		fprintf(stderr,
 			"UCTransUniChar returned 0x%.2lX:'%c'.\n",
 			uck, FROMASCII((char)uck));
 	    }
-	    HText_appendCharacter(me->text, (char)(uck & 0xff));
+	    HText_appendCharacter(me->text, ((char)(uck & 0xff)));
 	} else if (chk &&
 		   (uck == -4 ||
 		    (me->T.repl_translated_C0 && uck > 0 && uck < 32)) &&
@@ -398,48 +431,48 @@ PRIVATE void HTPlain_write ARGS3(HTStream *, me, CONST char*, s, int, l)
 		   **  Not found; look for replacement string.
 		   */
 		   (uck = UCTransUniCharStr(replace_buf, 60, code,
-					    me->htext_char_set, 0) >= 0)) { 
+					    me->outUCLYhndl, 0) >= 0)) {
 	    /*
-	    **  No further tests for valididy - assume that whoever
-	    **  defined replacement strings knew what she was doing.
+	    **	No further tests for valididy - assume that whoever
+	    **	defined replacement strings knew what she was doing.
 	    */
 	    HText_appendText(me->text, replace_buf);
 	/*
 	**  If we get to here, and should have translated,
-	**  translation has failed so far.  
+	**  translation has failed so far.
 	*/
 	} else if (chk && code > 127 && me->T.output_utf8) {
 	    /*
-	    **  We want UTF-8 output, so do it now. - FM
+	    **	We want UTF-8 output, so do it now. - FM
 	    */
 	    if (*me->utf_buf) {
 		HText_appendText(me->text, me->utf_buf);
+		me->utf_buf[0] = '\0';
 		me->utf_buf_p = me->utf_buf;
-		*(me->utf_buf_p) = '\0';
 	    } else if (UCConvertUniToUtf8(code, replace_buf)) {
 		HText_appendText(me->text, replace_buf);
 	    } else {
 		sprintf(replace_buf, "U%.2lX", code);
 		HText_appendText(me->text, replace_buf);
 	    }
-#ifdef NOTUSED_FOTEMODS
+#ifdef NOTDEFINED
 	} else if (me->T.strip_raw_char_in &&
-		   (unsigned char)*p >= 0xc0 &&
+		   (unsigned char)*p >= 192 &&
 		   (unsigned char)*p < 255) {
 	    /*
-	    **  KOI special: strip high bit, gives
-	    **  (somewhat) readable ASCII.
+	    **	KOI special: strip high bit, gives
+	    **	(somewhat) readable ASCII.
 	    */
 	    HText_appendCharacter(me->text, (char)(*p & 0x7f));
 	    /*
-	    **  If we do not have the "7-bit approximations" as our
-	    **  output character set (in which case we did it already)
-	    **  seek a translation for that.  Otherwise, or if the
-	    **  translation fails, use UHHH notation. - FM
+	    **	If we do not have the "7-bit approximations" as our
+	    **	output character set (in which case we did it already)
+	    **	seek a translation for that.  Otherwise, or if the
+	    **	translation fails, use UHHH notation. - FM
 	    */
 	} else if (chk &&
 		   (chk = (!HTPassEightBitRaw &&
-			   (me->htext_char_set !=
+			   (me->outUCLYhndl !=
 			    UCGetLYhndl_byMIME("us-ascii")))) &&
 		   (uck = UCTransUniChar(code,
 					 UCGetLYhndl_byMIME("us-ascii")))
@@ -460,7 +493,7 @@ PRIVATE void HTPlain_write ARGS3(HTStream *, me, CONST char*, s, int, l)
 	    HText_appendText(me->text, replace_buf);
 	} else if (code == 8204 || code == 8205) {
 	    /*
-	    **  Ignore 8204 (zwnj) or 8205 (zwj), if we get to here. - FM
+	    **	Ignore 8204 (zwnj) or 8205 (zwj), if we get to here. - FM
 	    */
 	    if (TRACE) {
 		fprintf(stderr,
@@ -468,16 +501,16 @@ PRIVATE void HTPlain_write ARGS3(HTStream *, me, CONST char*, s, int, l)
 	    }
 	} else if (code == 8206 || code == 8207) {
 	    /*
-	    **  Ignore 8206 (lrm) or 8207 (rlm), if we get to here. - FM
+	    **	Ignore 8206 (lrm) or 8207 (rlm), if we get to here. - FM
 	    */
 	    if (TRACE) {
 		fprintf(stderr,
 			"HTPlain_write: Ignoring '%ld'.\n", code);
 	    }
-#endif /* NOTUSED_FOTEMODS */
+#endif /* NOTDEFINED */
 	} else if (me->T.trans_from_uni && code > 255) {
 	    if (PASSHI8BIT && PASSHICTRL && LYRawMode &&
-		(unsigned char)*p >= LYlowest_eightbit[me->htext_char_set]) {
+		(unsigned char)*p >= LYlowest_eightbit[me->outUCLYhndl]) {
 		HText_appendCharacter(me->text, *p);
 	    } else {
 		sprintf(replace_buf, "U%.2lX", code);
@@ -491,9 +524,9 @@ PRIVATE void HTPlain_write ARGS3(HTStream *, me, CONST char*, s, int, l)
 	*/
 	} else if (code > 160) {
 	    if (!HTPassEightBitRaw && code <= 255 &&
-		me->htext_char_set != 0) {
+		me->outUCLYhndl != 0) {
 		/*
-		**  Attempt to translate. - FM
+		**  Out of luck, so use the UHHH notation (ugh). - FM
 		*/
 		int len, high, low, i, diff=1;
 		CONST char * name;
@@ -509,18 +542,18 @@ PRIVATE void HTPlain_write ARGS3(HTStream *, me, CONST char*, s, int, l)
 		    diff = strncmp(HTML_dtd.entity_names[i], name, len);
 		    if (diff == 0) {
 			HText_appendText(me->text,
-					 LYCharSets[me->htext_char_set][i]);
+					 LYCharSets[me->outUCLYhndl][i]);
 			break;
 		    }
 		}
 		if (diff) {
 		    /*
-		    **  Something went wrong in the translation, so
-		    **  either output as UTF8 or a hex representation or
-		    **  pass the raw character and hope it's OK.
+		    **	Something went wrong in the translation, so
+		    **	either output as UTF8 or a hex representation or
+		    **	pass the raw character and hope it's OK.
 		    */
 		    if (!PASSHI8BIT)
-			c_p = FROMASCII((char)code);
+			c = FROMASCII((char)code);
 		    if (me->T.output_utf8 &&
 			*me->utf_buf) {
 			HText_appendText(me->text, me->utf_buf);
@@ -531,33 +564,33 @@ PRIVATE void HTPlain_write ARGS3(HTStream *, me, CONST char*, s, int, l)
 			sprintf(replace_buf, "U%.2lX", code);
 			HText_appendText(me->text, replace_buf);
 		    } else
-		    HText_appendCharacter(me->text, c_p);
+			HText_appendCharacter(me->text, c);
 		}
 	    } else {
-	        /*
+		/*
 		**  Didn't attempt a translation. - FM
 		*/
 		/*  Either output as UTF8 or a hex representation or
 		**  pass the raw character and hope it's OK.
 		*/
 		if (code <= 255 && !PASSHI8BIT)
-		    c_p = FROMASCII((char)code);
+		    c = FROMASCII((char)code);
 		if (code > 127 && me->T.output_utf8 && *me->utf_buf) {
 		    HText_appendText(me->text, me->utf_buf);
 		    me->utf_buf_p = me->utf_buf;
 		    *(me->utf_buf_p) = '\0';
 
 		} else if (LYRawMode &&
-			   me->in_char_set != me->htext_char_set &&
+			   me->inUCLYhndl != me->outUCLYhndl &&
 			   (PASSHI8BIT || PASSHICTRL) &&
-			   (unsigned char)c_p >=
-			             LYlowest_eightbit[me->htext_char_set]) {
-		    HText_appendCharacter(me->text, c_p);
+			   (unsigned char)c >=
+				     LYlowest_eightbit[me->outUCLYhndl]) {
+		    HText_appendCharacter(me->text, c);
 		} else if (me->T.trans_from_uni && code >= 127) {
 		    sprintf(replace_buf, "U%.2lX", code);
 		    HText_appendText(me->text, replace_buf);
 		} else
-	        HText_appendCharacter(me->text, c_p);
+		HText_appendCharacter(me->text, c);
 	    }
 	}
 #endif /* REMOVE_CR_ONLY */
@@ -589,25 +622,25 @@ PRIVATE void HTPlain_abort ARGS2(
 **		-----------------------
 */
 PUBLIC CONST HTStreamClass HTPlain =
-{		
+{
 	"PlainPresenter",
 	HTPlain_free,
 	HTPlain_abort,
-	HTPlain_put_character, 	HTPlain_put_string, HTPlain_write,
-}; 
+	HTPlain_put_character,	HTPlain_put_string, HTPlain_write,
+};
 
 /*		New object
 **		----------
 */
 PUBLIC HTStream* HTPlainPresent ARGS3(
 	HTPresentation *,	pres,
-	HTParentAnchor *,	anchor,	
+	HTParentAnchor *,	anchor,
 	HTStream *,		sink)
 {
 
     HTStream* me = (HTStream*)malloc(sizeof(*me));
     if (me == NULL)
-        outofmem(__FILE__, "HTPlain_new");
+	outofmem(__FILE__, "HTPlain_new");
     me->isa = &HTPlain;
 
     HTPlain_lastraw = -1;
@@ -616,18 +649,17 @@ PUBLIC HTStream* HTPlainPresent ARGS3(
     me->utf_char = 0;
     me->utf_buf[0] = me->utf_buf[6] =me->utf_buf[7] = '\0';
     me->utf_buf_p = me->utf_buf;
-    me->htext_char_set =
-		      HTAnchor_getUCLYhndl(anchor,UCT_STAGE_HTEXT);
-    me->in_char_set = HTAnchor_getUCLYhndl(anchor,UCT_STAGE_PARSER);
+    me->outUCLYhndl = HTAnchor_getUCLYhndl(anchor,UCT_STAGE_HTEXT);
+    me->inUCLYhndl = HTAnchor_getUCLYhndl(anchor,UCT_STAGE_PARSER);
     HTPlain_getChartransInfo(me, anchor);
     UCSetTransParams(&me->T,
-		     me->in_char_set, me->UCI,
-		     me->htext_char_set,
+		     me->inUCLYhndl, me->inUCI,
+		     me->outUCLYhndl,
 		     HTAnchor_getUCInfoStage(anchor,UCT_STAGE_HTEXT));
+
     me->text = HText_new(anchor);
     HText_setStyle(me->text, HTStyleNamed(styleSheet, "Example"));
     HText_beginAppend(me->text);
 
     return (HTStream*) me;
 }
-
diff --git a/WWW/Library/Implementation/HTString.c b/WWW/Library/Implementation/HTString.c
index 2ffa3e51..bc3c3334 100644
--- a/WWW/Library/Implementation/HTString.c
+++ b/WWW/Library/Implementation/HTString.c
@@ -23,7 +23,7 @@ PUBLIC int WWW_TraceFlag = 0;	/* Global trace flag for ALL W3 code */
 PUBLIC CONST char * HTLibraryVersion = VC; /* String for help screen etc */
 
 #ifndef VM		/* VM has these already it seems */
-	
+
 /*	Strings of any length
 **	---------------------
 */
@@ -35,13 +35,13 @@ PUBLIC int strcasecomp ARGS2(
     CONST char *q = b;
 
     for (p = a, q = b; *p && *q; p++, q++) {
-        int diff = TOLOWER(*p) - TOLOWER(*q);
+	int diff = TOLOWER(*p) - TOLOWER(*q);
 	if (diff) return diff;
     }
     if (*p)
-        return 1;	/* p was longer than q */
+	return 1;	/* p was longer than q */
     if (*q)
-        return -1;	/* p was shorter than q */
+	return -1;	/* p was shorter than q */
     return 0;		/* Exact match */
 }
 
@@ -58,7 +58,7 @@ PUBLIC int strncasecomp ARGS3(
     CONST char *q = b;
 
     for (p = a, q = b; ; p++, q++) {
-        int diff;
+	int diff;
 	if (p == (a+n))
 	    return 0;	/*   Match up to n characters */
 	if (!(*p && *q))
@@ -79,7 +79,7 @@ PUBLIC char * HTSACopy ARGS2(
 {
     FREE(*dest);
     if (src) {
-        *dest = (char *) malloc (strlen(src) + 1);
+	*dest = (char *) malloc (strlen(src) + 1);
 	if (*dest == NULL)
 	    outofmem(__FILE__, "HTSACopy");
 	strcpy (*dest, src);
@@ -94,16 +94,16 @@ PUBLIC char * HTSACat ARGS2(
 	CONST char *,	src)
 {
     if (src && *src) {
-        if (*dest) {
+	if (*dest) {
 	    int length = strlen(*dest);
 	    *dest = (char *)realloc(*dest, length + strlen(src) + 1);
 	    if (*dest == NULL)
-	        outofmem(__FILE__, "HTSACat");
+		outofmem(__FILE__, "HTSACat");
 	    strcpy (*dest + length, src);
 	} else {
 	    *dest = (char *)malloc(strlen(src) + 1);
 	    if (*dest == NULL)
-	        outofmem(__FILE__, "HTSACat");
+		outofmem(__FILE__, "HTSACat");
 	    strcpy (*dest, src);
 	}
     }
@@ -123,26 +123,26 @@ PUBLIC char * HTSACat ARGS2(
 **		field
 **		THE STRING HAS BEEN MUTILATED by a 0 terminator
 **
-**	returns	a pointer to the first field
+**	returns a pointer to the first field
 */
 PUBLIC char * HTNextField ARGS1(
 	char **,	pstr)
 {
     char * p = *pstr;
     char * start;			/* start of field */
-    
+
     while (*p && WHITE(*p))
-        p++;				/* Strip white space */
+	p++;				/* Strip white space */
     if (!*p) {
 	*pstr = p;
-        return NULL;		/* No first field */
+	return NULL;		/* No first field */
     }
     if (*p == '"') {			/* quoted field */
-        p++;
+	p++;
 	start = p;
 	for (; *p && *p!='"'; p++) {
 	    if (*p == '\\' && p[1])
-	        p++;			/* Skip escaped chars */
+		p++;			/* Skip escaped chars */
 	}
     } else {
 	start = p;
@@ -150,7 +150,7 @@ PUBLIC char * HTNextField ARGS1(
 	    p++;			/* Skip first field */
     }
     if (*p)
-        *p++ = '\0';
+	*p++ = '\0';
     *pstr = p;
     return start;
 }
@@ -160,31 +160,31 @@ PUBLIC char * HTNextField ARGS1(
 **	Finds the next token in a string
 **	On entry,
 **	*pstr	points to a string to be parsed.
-**      delims  lists characters to be recognized as delimiters.
-**              If NULL default is white white space "," ";" or "=".
-**              The word can optionally be quoted or enclosed with
+**	delims	lists characters to be recognized as delimiters.
+**		If NULL default is white white space "," ";" or "=".
+**		The word can optionally be quoted or enclosed with
 **		chars from bracks.
 **		Comments surrrounded by '(' ')' are filtered out
 **		unless they are specifically reqested by including
 **		' ' or '(' in delims or bracks.
-**      bracks  lists bracketing chars.  Some are recognized as
-**              special, for those give the opening char.
+**	bracks	lists bracketing chars.  Some are recognized as
+**		special, for those give the opening char.
 **		If NULL defaults to <"> and "<" ">".
-**      found   points to location to fill with the ending delimiter
-**              found, or is NULL.
+**	found	points to location to fill with the ending delimiter
+**		found, or is NULL.
 **
-** 	On exit,
+**	On exit,
 **	*pstr	has been moved to the first delimiter past the
 **		field
 **		THE STRING HAS BEEN MUTILATED by a 0 terminator
-**      found   points to the delimiter found unless it was NULL.
-**	Returns	a pointer to the first word or NULL on error
+**	found	points to the delimiter found unless it was NULL.
+**	Returns a pointer to the first word or NULL on error
 */
 PUBLIC char * HTNextTok ARGS4(
 	char **,	pstr,
 	const char *,	delims,
 	const char *,	bracks,
-	char *,		found)
+	char *, 	found)
 {
     char * p = *pstr;
     char * start = NULL;
@@ -198,15 +198,15 @@ PUBLIC char * HTNextTok ARGS4(
 
     get_blanks = (!strchr(delims,' ') && !strchr(bracks,' '));
     get_comments = (strchr(bracks,'(') != NULL);
-    skip_comments = (!get_comments && !strchr(delims,'(') && !get_blanks); 
+    skip_comments = (!get_comments && !strchr(delims,'(') && !get_blanks);
 #define skipWHITE(c) (!get_blanks && WHITE(c))
 
     while (*p && skipWHITE(*p))
-        p++;				/* Strip white space */
+	p++;				/* Strip white space */
     if (!*p) {
 	*pstr = p;
 	if (found) *found = '\0';
-        return NULL;		/* No first field */
+	return NULL;		/* No first field */
     }
     while (1) {
 	/* Strip white space and other delimiters */
@@ -214,7 +214,7 @@ PUBLIC char * HTNextTok ARGS4(
 	if (!*p) {
 	    *pstr = p;
 	    if (found) *found = *(p-1);
-	    return NULL;				   	 /* No field */
+	    return NULL;					 /* No field */
 	}
 
 	if (*p == '(' && (skip_comments || get_comments)) {	  /* Comment */
@@ -238,13 +238,13 @@ PUBLIC char * HTNextTok ARGS4(
 		} else
 		    get_closing_char_too = (strchr(bracks,*p) != NULL);
 	    }
-	} else if (strchr(bracks,*p)) {	       /* quoted or bracketted field */
+	} else if (strchr(bracks,*p)) {        /* quoted or bracketted field */
 	    switch (*p) {
 	       case '<': closer = '>'; break;
 	       case '[': closer = ']'; break;
 	       case '{': closer = '}'; break;
 	       case ':': closer = ';'; break;
-	    default:     closer = *p;
+	    default:	 closer = *p;
 	    }
 	    if (!start) start = ++p;
 	    for(;*p && *p!=closer; p++)
@@ -258,7 +258,7 @@ PUBLIC char * HTNextTok ARGS4(
 	    } else
 	    break;			    /* kr95-10-9: needs to stop here */
 #if 0
-	} else if (*p == '<') {				     /* quoted field */
+	} else if (*p == '<') { 			     /* quoted field */
 	    if (!start) start = ++p;
 	    for(;*p && *p!='>'; p++)
 		if (*p == '\\' && *(p+1)) p++;	       /* Skip escaped chars */
@@ -267,14 +267,14 @@ PUBLIC char * HTNextTok ARGS4(
 	} else {					      /* Spool field */
 	    if (!start) start = p;
 	    while(*p && !skipWHITE(*p) && !strchr(bracks,*p) &&
-		                          !strchr(delims,*p))
+					  !strchr(delims,*p))
 		p++;
 	    if (*p && strchr(bracks,*p)) {
 		get_closing_char_too = TRUE;
 	    } else {
 		if (*p=='(' && skip_comments) {
 		    *pstr = p;
-		    HTNextTok(pstr, NULL, "(", found);  /*      Advance pstr */
+		    HTNextTok(pstr, NULL, "(", found);	/*	Advance pstr */
 		    *p = '\0';
 		    if (*pstr && **pstr) (*pstr)++;
 		    return start;
@@ -284,7 +284,7 @@ PUBLIC char * HTNextTok ARGS4(
 	}
     }
     if (found) *found = *p;
-	
+
     if (*p) *p++ = '\0';
     *pstr = p;
     return start;
diff --git a/WWW/Library/Implementation/HTStyle.c b/WWW/Library/Implementation/HTStyle.c
index 480719ea..a5e24205 100644
--- a/WWW/Library/Implementation/HTStyle.c
+++ b/WWW/Library/Implementation/HTStyle.c
@@ -62,9 +62,9 @@ HTStyle * HTStyleRead (HTStyle * style, HTStream * stream)
     char myTag[STYLE_NAME_LENGTH];
     char fontName[STYLE_NAME_LENGTH];
     NXTextStyle *p;
-    int	tab;
+    int tab;
     int gotpara;		/* flag: have we got a paragraph definition? */
-	
+
     NXScanf(stream, "%s%s%f%d",
 	myTag,
 	fontName,
@@ -93,13 +93,13 @@ HTStyle * HTStyleRead (HTStyle * style, HTStream * stream)
 		    &p->tabs[tab].x);
 	}
     } else { /* No paragraph */
-    	FREE(style->paragraph);
+	FREE(style->paragraph);
     } /* if no paragraph */
     StrAllocCopy(style->SGMLTag, myTag);
     if (strcmp(fontName, NONE_STRING)==0)
-        style->font = 0;
+	style->font = 0;
     else
-        style->font = [Font newFont:fontName size:style->fontSize];
+	style->font = [Font newFont:fontName size:style->fontSize];
     return NULL;
 }
 
@@ -126,7 +126,7 @@ HTStyle * HTStyleWrite (HTStyle * style, NXStream * stream)
 	    style->spaceBefore,
 	    style->spaceAfter,
 	    p->numTabs);
-	    
+
 	for (tab=0; tab < p->numTabs; tab++)
 	    NXPrintf(stream, "\t%d %f\n",
 		    p->tabs[tab].kind,
@@ -143,14 +143,14 @@ HTStyle * HTStyleDump (HTStyle * style)
     int tab;
     NXTextStyle *p = style->paragraph;
     printf("Style %d `%s' SGML:%s. Font %s %.1f point.\n",
-    	style,
+	style,
 	style->name,
 	style->SGMLTag,
 	[style->font name],
 	style->fontSize);
     if (p) {
-        printf(
-    	"\tIndents: first=%.0f others=%.0f, Height=%.1f Desc=%.1f\n"
+	printf(
+	"\tIndents: first=%.0f others=%.0f, Height=%.1f Desc=%.1f\n"
 	"\tAlign=%d, %d tabs. (%.0f before, %.0f after)\n",
 	    p->indent1st,
 	    p->indent2nd,
@@ -160,12 +160,12 @@ HTStyle * HTStyleDump (HTStyle * style)
 	    p->numTabs,
 	    style->spaceBefore,
 	    style->spaceAfter);
-	    
+
 	for (tab=0; tab < p->numTabs; tab++) {
 	    printf("\t\tTab kind=%d at %.0f\n",
 		    p->tabs[tab].kind,
 		    p->tabs[tab].x);
-    	}
+	}
 	printf("\n");
     } /* if paragraph */
     return style;
@@ -183,7 +183,7 @@ HTStyle * HTStyleNamed ARGS2 (HTStyleSheet *,self, CONST char *,name)
 {
     HTStyle * scan;
     for (scan=self->styles; scan; scan=scan->next)
-        if (0==strcmp(scan->name, name)) return scan;
+	if (0==strcmp(scan->name, name)) return scan;
     if (TRACE) fprintf(stderr, "StyleSheet: No style named `%s'\n", name);
     return NULL;
 }
@@ -194,7 +194,7 @@ HTStyle * HTStyleMatching (HTStyleSheet * self, HTStyle *style)
 {
     HTStyle * scan;
     for (scan=self->styles; scan; scan=scan->next)
-        if (scan->paragraph == para) return scan;
+	if (scan->paragraph == para) return scan;
     return NULL;
 }
 
@@ -214,14 +214,14 @@ HTStyle * HTStyleForRun (HTStyleSheet *self, NXRun *run)
 {
     HTStyle * scan;
     HTStyle * best = 0;
-    int	bestMatch = 0;
+    int bestMatch = 0;
     NXTextStyle * rp = run->paraStyle;
     for (scan=self->styles; scan; scan=scan->next)
-        if (scan->paragraph == run->paraStyle) return scan;	/* Exact */
+	if (scan->paragraph == run->paraStyle) return scan;	/* Exact */
 
     for (scan=self->styles; scan; scan=scan->next){
-    	NXTextStyle * sp = scan->paragraph;
-    	if (sp) {
+	NXTextStyle * sp = scan->paragraph;
+	if (sp) {
 	    int match = 0;
 	    if (sp->indent1st ==	rp->indent1st)	match = match+1;
 	    if (sp->indent2nd ==	rp->indent2nd)	match = match+2;
@@ -236,7 +236,7 @@ HTStyle * HTStyleForRun (HTStyleSheet *self, NXRun *run)
 	}
     }
     if (TRACE) fprintf(stderr, "HTStyleForRun: Best match for style is %d out of 18\n",
-    			 bestMatch);
+			 bestMatch);
     return best;
 }
 #endif /* NEXT_SUPRESS */
@@ -250,10 +250,10 @@ HTStyleSheet * HTStyleSheetAddStyle ARGS2
 {
     style->next = 0;		/* The style will go on the end */
     if (!self->styles) {
-    	self->styles = style;
+	self->styles = style;
     } else {
-    	HTStyle * scan;
-        for(scan=self->styles; scan->next; scan=scan->next); /* Find end */
+	HTStyle * scan;
+	for(scan=self->styles; scan->next; scan=scan->next); /* Find end */
 	scan->next=style;
     }
     return self;
@@ -266,13 +266,13 @@ HTStyleSheet * HTStyleSheetRemoveStyle ARGS2
   (HTStyleSheet *,self, HTStyle *,style)
 {
     if (self->styles == style) {
-    	self->styles = style->next;
+	self->styles = style->next;
 	return self;
     } else {
-    	HTStyle * scan;
+	HTStyle * scan;
 	for(scan = self->styles; scan; scan = scan->next) {
 	    if (scan->next == style) {
-	        scan->next = style->next;
+		scan->next = style->next;
 		return self;
 	    }
 	}
@@ -290,7 +290,7 @@ HTStyleSheet * HTStyleSheetNew NOARGS
     memset((void*)self, 0, sizeof(*self));	/* ANSI */
 /* Harbison c ref man says (char*)self
    but k&r ansii and abc books and Think_C say (void*) */
-    
+
 /*    bzero(self, sizeof(*self)); */		/* BSD */
     return self;
 }
@@ -302,7 +302,7 @@ HTStyleSheet * HTStyleSheetFree ARGS1 (HTStyleSheet *,self)
 {
     HTStyle * style;
     while((style=self->styles)!=0) {
-        self->styles = style->next;
+	self->styles = style->next;
 	HTStyleFree(style);
     }
     FREE(self);
@@ -327,8 +327,8 @@ HTStyleSheet * HTStyleSheetRead(HTStyleSheet * self, NXStream * stream)
     NXScanf(stream, " %d ", &numStyles);
     if (TRACE) fprintf(stderr, "Stylesheet: Reading %d styles\n", numStyles);
     for (i=0; i<numStyles; i++) {
-        NXScanf(stream, "%s", styleName);
-        style = HTStyleNamed(self, styleName);
+	NXScanf(stream, "%s", styleName);
+	style = HTStyleNamed(self, styleName);
 	if (!style) {
 	    style = HTStyleNewNamed(styleName);
 	    (void) HTStyleSheetAddStyle(self, style);
@@ -349,13 +349,13 @@ HTStyleSheet * HTStyleSheetWrite(HTStyleSheet * self, NXStream * stream)
 {
     int numStyles = 0;
     HTStyle * style;
-    
+
     for(style=self->styles; style; style=style->next) numStyles++;
     NXPrintf(stream, "%d\n", numStyles);
-    
+
     if (TRACE) fprintf(stderr, "StyleSheet: Writing %d styles\n", numStyles);
     for (style=self->styles; style; style=style->next) {
-        NXPrintf(stream, "%s ", style->name);
+	NXPrintf(stream, "%s ", style->name);
 	(void) HTStyleWrite(style, stream);
     }
     return self;
diff --git a/WWW/Library/Implementation/HTTelnet.c b/WWW/Library/Implementation/HTTelnet.c
index 50bc1fcd..2459d1b1 100644
--- a/WWW/Library/Implementation/HTTelnet.c
+++ b/WWW/Library/Implementation/HTTelnet.c
@@ -6,7 +6,7 @@
 **	JFG	Jean-Francois Groff jgh@next.com
 **	DD	Denis DeLaRoca (310) 825-4580  <CSP1DWD@mvs.oac.ucla.edu>
 ** History
-**       8 Jun 92 Telnet hopping prohibited as telnet is not secure (TBL)
+**	 8 Jun 92 Telnet hopping prohibited as telnet is not secure (TBL)
 **	26 Jun 92 When over DECnet, suppressed FTP, Gopher and News. (JFG)
 **	 6 Oct 92 Moved HTClientHost and logfile into here. (TBL)
 **	17 Dec 92 Tn3270 added, bug fix. (DD)
@@ -32,7 +32,7 @@
 #include "HTAccess.h"
 #include "HTAlert.h"
 #if !defined (VMS) && !defined (_WINDOWS)
-#include "../../../userdefs.h"  /* for TELNET_COMMAND and RLOGIN_COMMAND */
+#include "../../../userdefs.h"	/* for TELNET_COMMAND and RLOGIN_COMMAND */
 #endif /* not VMS */
 
 #ifdef _WINDOWS /* ../../.. doesn't work for me */
@@ -53,7 +53,7 @@ PRIVATE int remote_session ARGS2(char *, acc_method, char *, host)
 {
 	char * user = host;
 	char * password = NULL;
- 	char * cp;
+	char * cp;
 	char * hostname;
 	char * port;
 	char   command[256];
@@ -69,23 +69,23 @@ PRIVATE int remote_session ARGS2(char *, acc_method, char *, host)
 	 *	Modified to allow for odd chars in a username only if exists.
 	 *	05-28-94 Lynx 2-3-1 Garrett Arch Blythe
 	 */
-	/* prevent telnet://hostname;rm -rf *  URL's (VERY BAD) 
+	/* prevent telnet://hostname;rm -rf *  URL's (VERY BAD)
 	 *  *cp=0;  / * terminate at any ;,<,>,`,|,",' or space or return
-	 *  or tab to prevent security whole 
+	 *  or tab to prevent security whole
 	 */
 	for(cp = (strchr(host, '@') ? strchr(host, '@') : host); *cp != '\0';
 		cp++)	{
 	    if(!isalnum(*cp) && *cp != '_' && *cp != '-' &&
 				*cp != ':' && *cp != '.' && *cp != '@') {
-	        *cp = '\0';
-	        break;
+		*cp = '\0';
+		break;
 	    }
 	}
 
 	hostname = strchr(host, '@');
 
 	if (hostname) {
-	    *hostname++ = '\0';	/* Split */
+	    *hostname++ = '\0'; /* Split */
 	} else {
 	    hostname = host;
 	    user = NULL;	/* No user specified */
@@ -96,13 +96,13 @@ PRIVATE int remote_session ARGS2(char *, acc_method, char *, host)
 	    *port++ = '\0';	/* Split */
 
     if (!hostname || *hostname == '\0') {
-        if (TRACE)
+	if (TRACE)
 	    fprintf(stderr, "HTTelnet: No host specified!\n");
 	return HT_NO_DATA;
     }
 
     if (user) {
-        password = strchr(user, ':');
+	password = strchr(user, ':');
 	if (password) {
 	    *password++ = '\0';
 	}
@@ -114,7 +114,7 @@ PRIVATE int remote_session ARGS2(char *, acc_method, char *, host)
 	if (HTSecure) {
 
 #ifdef TELNETHOPPER_MAIL
-	    sprintf(command, 
+	    sprintf(command,
 	      "finger @%s | mail -s \"**telnethopper %s\" tbl@dxcern.cern.ch",
 	       HTClientHost, HTClientHost);
 	    system(command);
@@ -138,16 +138,16 @@ PRIVATE int remote_session ARGS2(char *, acc_method, char *, host)
 /* Not all telnet servers get it even if user name is specified
 ** so we always tell the guy what to log in as
 */
-        if (user && login_protocol != rlogin)
+	if (user && login_protocol != rlogin)
 	    printf("When you are connected, log in as:  %s\n", user);
-        if (password && login_protocol != rlogin)
+	if (password && login_protocol != rlogin)
 	    printf("                  The password is:  %s\n", password);
 
 /*
  *	NeXTSTEP is the implied version of the NeXT operating system.
  *		You may need to define this yourself.
  */
-#if     defined(NeXT) && defined(NeXTSTEP) && NeXTSTEP<=20100
+#if	defined(NeXT) && defined(NeXTSTEP) && NeXTSTEP<=20100
 	sprintf(command, "%s%s%s %s %s", TELNET_COMMAND,
 		user ? " -l " : "",
 		user ? user : "",
@@ -229,59 +229,59 @@ PRIVATE int remote_session ARGS2(char *, acc_method, char *, host)
 #endif /* MULTINET */
 
 #if defined(WIN_TCP)
-        {
-            char *cp;
-    
+	{
+	    char *cp;
+
 	    if ((cp=getenv("WINTCP_COMMAND_STYLE")) != NULL &&
-                0==strncasecomp(cp, "VMS", 3)) { /* VMS command syntax */ 
-	        if (login_protocol == rlogin) {
-	            sprintf(command, "RLOGIN%s%s%s%s%s %s",  /*lm 930713 */
-		        user ? "/USERNAME=\"" : "",
-		        user ? user : "",
+		0==strncasecomp(cp, "VMS", 3)) { /* VMS command syntax */
+		if (login_protocol == rlogin) {
+		    sprintf(command, "RLOGIN%s%s%s%s%s %s",  /*lm 930713 */
+			user ? "/USERNAME=\"" : "",
+			user ? user : "",
 			user ? "\"" : "",
-		        port ? "/PORT=" : "",
-		        port ? port : "",
-		        hostname);
-
-	        } else if (login_protocol == tn3270) {
-	            sprintf(command, "TELNET/TN3270 %s%s %s",
-		        port ? "/PORT=" : "",
-		        port ? port : "",
-		        hostname);
-
-	        } else {  /* TELNET */
-	            sprintf(command, "TELNET %s%s %s",
-		        port ? "/PORT=" : "",
-		        port ? port : "",
-		        hostname);
-	        }
-
-            } else { /* UNIX command syntax */
+			port ? "/PORT=" : "",
+			port ? port : "",
+			hostname);
+
+		} else if (login_protocol == tn3270) {
+		    sprintf(command, "TELNET/TN3270 %s%s %s",
+			port ? "/PORT=" : "",
+			port ? port : "",
+			hostname);
+
+		} else {  /* TELNET */
+		    sprintf(command, "TELNET %s%s %s",
+			port ? "/PORT=" : "",
+			port ? port : "",
+			hostname);
+		}
+
+	    } else { /* UNIX command syntax */
 	       if (login_protocol == rlogin) {
-	           sprintf(command, "RLOGIN %s%s%s%s%s", 
+		   sprintf(command, "RLOGIN %s%s%s%s%s",
 		       hostname,
 		       user ? " -l " : "",
 		       user ? "\"" : "",
 		       user ? user : "",
 		       user ? "\"" : "");
 
-	        } else if (login_protocol == tn3270) {
-	            sprintf(command, "TN3270 %s %s",
-		        hostname,
-		        port ? port : "");
+		} else if (login_protocol == tn3270) {
+		    sprintf(command, "TN3270 %s %s",
+			hostname,
+			port ? port : "");
 
-	        } else {  /* TELNET */
-	            sprintf(command, "TELNET %s %s",
-		        hostname,
-		        port ? port : "");
-	        }
-            }
+		} else {  /* TELNET */
+		    sprintf(command, "TELNET %s %s",
+			hostname,
+			port ? port : "");
+		}
+	    }
 
 	    if (TRACE)
-	        fprintf(stderr, "HTTelnet: Command is: %s\n\n", command);
+		fprintf(stderr, "HTTelnet: Command is: %s\n\n", command);
 	    system(command);
 	    return HT_NO_DATA;		/* Ok - it was done but no data */
-        }
+	}
 #define TELNET_DONE
 #endif /* WIN_TCP */
 
@@ -319,7 +319,7 @@ PRIVATE int remote_session ARGS2(char *, acc_method, char *, host)
 		port ? port : "",
 		hostname);
 	    if (TRACE)
-	        fprintf(stderr, "HTTelnet: Command is: %s\n\n", command);
+		fprintf(stderr, "HTTelnet: Command is: %s\n\n", command);
 	    system(command);
 	}
 	else {
@@ -369,41 +369,41 @@ PRIVATE int remote_session ARGS2(char *, acc_method, char *, host)
 	return HT_NO_DATA;		/* Ok - it was done but no data */
     }
     else if ((cp=getenv("WINTCP_COMMAND_STYLE")) != NULL) {
-        if (0==strncasecomp(cp, "VMS", 3)) { /* VMS command syntax */ 
+	if (0==strncasecomp(cp, "VMS", 3)) { /* VMS command syntax */
 	    if (login_protocol == rlogin) {
-	        sprintf(command, "RLOGIN%s%s%s%s %s",  /*lm 930713 */
+		sprintf(command, "RLOGIN%s%s%s%s %s",  /*lm 930713 */
 		    user ? "/USERNAME=" : "",
 		    user ? user : "",
 		    port ? "/PORT=" : "",
 		    port ? port : "",
 		    hostname);
 	    } else if (login_protocol == tn3270) {
-	        sprintf(command, "TELNET/TN3270 %s%s %s",
+		sprintf(command, "TELNET/TN3270 %s%s %s",
 		    port ? "/PORT=" : "",
 		    port ? port : "",
 		    hostname);
 	    } else {  /* TELNET */
-	        sprintf(command, "TELNET %s%s %s",
+		sprintf(command, "TELNET %s%s %s",
 		    port ? "/PORT=" : "",
 		    port ? port : "",
 		    hostname);
 	    }
-        } else { /* UNIX command syntax */
+	} else { /* UNIX command syntax */
 	    if (login_protocol == rlogin) {
-	        sprintf(command, "RLOGIN %s%s%s", 
+		sprintf(command, "RLOGIN %s%s%s",
 		    hostname,
 		    user ? " -l " : "",
 		    user ? user : "");
 	    } else if (login_protocol == tn3270) {
-	        sprintf(command, "TN3270 %s %s",
+		sprintf(command, "TN3270 %s %s",
 		    hostname,
 		    port ? port : "");
 	    } else {  /* TELNET */
-	        sprintf(command, "TELNET %s %s",
+		sprintf(command, "TELNET %s %s",
 		    hostname,
 		    port ? port : "");
 	    }
-        }
+	}
 
 	if (TRACE)
 	    fprintf(stderr, "HTTelnet: Command is: %s\n\n", command);
@@ -435,27 +435,27 @@ PRIVATE int remote_session ARGS2(char *, acc_method, char *, host)
 	return HT_NO_DATA;		/* Ok - it was done but no data */
     }
     else if (getenv("CMUTEK_ROOT") != NULL) {
-    	if (login_protocol == telnet) {
-    	    sprintf(command, "TELNET %s%s %s",
-    		port ? "/PORT=" : "",
-    		port ? port : "",
-    		hostname);
-    	    if (TRACE)
-	        fprintf(stderr, "HTTelnet: Command is: %s\n\n", command);
-    	    system(command);
-    	}
-    	else {
-    	    extern int LYgetch NOPARAMS;
+	if (login_protocol == telnet) {
+	    sprintf(command, "TELNET %s%s %s",
+		port ? "/PORT=" : "",
+		port ? port : "",
+		hostname);
+	    if (TRACE)
+		fprintf(stderr, "HTTelnet: Command is: %s\n\n", command);
+	    system(command);
+	}
+	else {
+	    extern int LYgetch NOPARAMS;
 	    extern BOOLEAN HadVMSInterrupt;
 
 	    printf(
 	  "\nSorry, this browser was compiled without the %s access option.\n",
-    		acc_method);
-    	    printf("\nPress <return> to return to Lynx.");
-    	    LYgetch();
+		acc_method);
+	    printf("\nPress <return> to return to Lynx.");
+	    LYgetch();
 	    HadVMSInterrupt = FALSE;
-    	}
-    	return HT_NO_DATA;		/* Ok - it was done but no data */
+	}
+	return HT_NO_DATA;		/* Ok - it was done but no data */
     }
     else {
 	if (login_protocol == telnet) {
@@ -464,7 +464,7 @@ PRIVATE int remote_session ARGS2(char *, acc_method, char *, host)
 		port ? port : "",
 		hostname);
 	    if (TRACE)
-	        fprintf(stderr, "HTTelnet: Command is: %s\n\n", command);
+		fprintf(stderr, "HTTelnet: Command is: %s\n\n", command);
 	    system(command);
 	}
 	else {
@@ -488,11 +488,11 @@ PRIVATE int remote_session ARGS2(char *, acc_method, char *, host)
 #define SIMPLE_TELNET
 #endif
 #ifdef SIMPLE_TELNET
-	if (login_protocol == telnet) {			/* telnet only */
+	if (login_protocol == telnet) { 		/* telnet only */
 	    sprintf(command, "TELNET  %s",	/* @@ Bug: port ignored */
 		hostname);
 	    if (TRACE)
-	        fprintf(stderr, "HTTelnet: Command is: %s\n\n", command);
+		fprintf(stderr, "HTTelnet: Command is: %s\n\n", command);
 	    system(command);
 	    return HT_NO_DATA;		/* Ok - it was done but no data */
 	}
@@ -521,7 +521,7 @@ PRIVATE int remote_session ARGS2(char *, acc_method, char *, host)
 		HadVMSInterrupt = FALSE;
 	    }
 #endif /* VMS */
-        }
+	}
 	return HT_NO_DATA;
 #endif /* !TELNET_DONE */
 }
@@ -533,7 +533,7 @@ PRIVATE int remote_session ARGS2(char *, acc_method, char *, host)
 **	addr		must point to the fully qualified hypertext reference.
 **
 ** On exit,
-**	returns		<0	Error has occured.
+**	returns 	<0	Error has occured.
 **			>=0	Value of file descriptor or socket to be used
 **				 to read data.
 **	*pFormat	Set to the format of the file, if known.
@@ -549,28 +549,28 @@ ARGS4
  HTStream *,		sink			/* Ignored */
 )
 {
-    char * acc_method;  
+    char * acc_method;
     char * host;
     int status;
-    
+
     if (sink) {
-        if (TRACE)
+	if (TRACE)
 	    fprintf(stderr,
 	   "HTTelnet: Can't output a live session -- must be interactive!\n");
 	return HT_NO_DATA;
     }
     acc_method =  HTParse(addr, "file:", PARSE_ACCESS);
-    
+
     host = HTParse(addr, "", PARSE_HOST);
     if (!host || *host == '\0') {
 	status = HT_NO_DATA;
-        if (TRACE)
+	if (TRACE)
 	    fprintf(stderr, "HTTelnet: No host specified!\n");
     } else {
-        status = remote_session(acc_method, host);
+	status = remote_session(acc_method, host);
     }
 
-    FREE(host);	
+    FREE(host);
     FREE(acc_method);
     return status;
 }
diff --git a/WWW/Library/Implementation/HTVMS_WaisUI.c b/WWW/Library/Implementation/HTVMS_WaisUI.c
index 39f2bd0b..81c09707 100644
--- a/WWW/Library/Implementation/HTVMS_WaisUI.c
+++ b/WWW/Library/Implementation/HTVMS_WaisUI.c
@@ -4,7 +4,7 @@
 **
 **	30-May-1994 FM	Initial version.
 **
-/*----------------------------------------------------------------------*/
+**----------------------------------------------------------------------*/
 
 /*
 **	Routines originally from UI.c -- FM
diff --git a/WWW/Library/Implementation/HTWAIS.c b/WWW/Library/Implementation/HTWAIS.c
index 0aab515c..b4a668ce 100644
--- a/WWW/Library/Implementation/HTWAIS.c
+++ b/WWW/Library/Implementation/HTWAIS.c
@@ -2,7 +2,7 @@
 **	==================================================
 **
 **	This module allows a WWW server or client to read data from a
-**	remote  WAIS
+**	remote	WAIS
 **  server, and provide that data to a WWW client in hypertext form.
 **  Source files, once retrieved, are stored and used to provide
 **  information about the index when that is acessed.
@@ -15,7 +15,7 @@
 **  History
 **	   Sep 91	TBL adapted shell-ui.c (BK) with HTRetrieve.c from WWW.
 **	   Feb 91	TBL Generated HTML cleaned up a bit (quotes, escaping)
-**			    Refers to lists of sources. 
+**			    Refers to lists of sources.
 **	   Mar 93	TBL Lib 2.0 compatible module made.
 **	   May 94	FM  Added DIRECT_WAIS support for VMS.
 **
@@ -28,7 +28,7 @@
 **	ANSI C only as written
 **
 **  Bugs fixed
-**      NT Nathan Torkington (Nathan.Torkington@vuw.ac.nz)
+**	NT Nathan Torkington (Nathan.Torkington@vuw.ac.nz)
 **
 **  WAIS comments:
 **
@@ -106,7 +106,7 @@ PRIVATE char	line[2048];	/* For building strings to display */
 #define START(e) (*target->isa->start_element)(target, e, 0, 0, -1, 0)
 #define END(e) (*target->isa->end_element)(target, e, 0)
 #define MAYBE_END(e) if (HTML_dtd.tags[e].contents != SGML_EMPTY) \
-                        (*target->isa->end_element)(target, e, 0)
+			(*target->isa->end_element)(target, e, 0)
 #define FREE_TARGET (*target->isa->_free)(target)
 
 struct _HTStructured {
@@ -124,12 +124,12 @@ struct _HTStream {
 /* ------------------------------------------------------------------------ */
 /* Returns 1 on success, 0 on fail, -1 on interrupt. */
 PRIVATE int fd_mosaic_connect_to_server ARGS3(
-	char *,		host_name,
+	char *, 	host_name,
 	long,		port,
-	long *,		fd)
+	long *, 	fd)
 {
     /*
-    **  New version.
+    **	New version.
     */
     char dummy[256];
     int status;
@@ -138,22 +138,22 @@ PRIVATE int fd_mosaic_connect_to_server ARGS3(
 
     status = HTDoConnect (dummy, "WAIS", 210, (int *)fd);
     if (status == HT_INTERRUPTED) {
-        return -1;
+	return -1;
     }
     if (status < 0)
-        return 0;
+	return 0;
     return 1;
 }
 
 /* Returns 1 on success, 0 on fail, -1 on interrupt. */
 #ifdef VMS
 PRIVATE int mosaic_connect_to_server ARGS3(
-	char *,		host_name,
+	char *, 	host_name,
 	long,		port,
-	long *,		fdp)
+	long *, 	fdp)
 #else
 PRIVATE int mosaic_connect_to_server ARGS3(
-	char *,		host_name,
+	char *, 	host_name,
 	long,		port,
 	FILE **,	fp)
 #endif /* VMS */
@@ -163,20 +163,20 @@ PRIVATE int mosaic_connect_to_server ARGS3(
 #endif /* VMS */
     long fd;
     int rv;
-  
+
     rv = fd_mosaic_connect_to_server (host_name, port, &fd);
     if (rv == 0) {
-        HTAlert ("Could not connect to WAIS server.");
-        return 0;
+	HTAlert ("Could not connect to WAIS server.");
+	return 0;
     } else if (rv == -1) {
-        HTAlert ("Connection interrupted.");
-        return -1;
+	HTAlert ("Connection interrupted.");
+	return -1;
     }
 
 #ifndef VMS
     if ((file = fdopen(fd,"r+")) == NULL) {
-        HTAlert ("Could not open WAIS connection for reading.");
-        return 0;
+	HTAlert ("Could not open WAIS connection for reading.");
+	return 0;
     }
 
     *fp = file;
@@ -192,19 +192,19 @@ PRIVATE int mosaic_connect_to_server ARGS3(
 */
 /* modified from Jonny G's version in ui/question.c */
 PRIVATE void showDiags ARGS2(
-	HTStream *, 		target,
-	diagnosticRecord **, 	d)
+	HTStream *,		target,
+	diagnosticRecord **,	d)
 {
     long i;
 
     for (i = 0; d[i] != NULL; i++) {
-        if (d[i]->ADDINFO != NULL) {
-            PUTS("Diagnostic code is ");
-            PUTS(d[i]->DIAG);
-            PUTC(' ');
-            PUTS(d[i]->ADDINFO);
-            PUTC('\n'); ;
-        }
+	if (d[i]->ADDINFO != NULL) {
+	    PUTS("Diagnostic code is ");
+	    PUTS(d[i]->DIAG);
+	    PUTC(' ');
+	    PUTS(d[i]->ADDINFO);
+	    PUTC('\n'); ;
+	}
     }
 }
 
@@ -218,7 +218,7 @@ PRIVATE BOOL acceptable_inited = NO;
 PRIVATE void init_acceptable NOARGS
 {
     unsigned int i;
-    char * good = 
+    char * good =
       "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./-_$";
     for(i=0; i<256; i++) acceptable[i] = NO;
     for(;*good; good++) acceptable[(unsigned int)*good] = YES;
@@ -230,18 +230,18 @@ PRIVATE void init_acceptable NOARGS
 **
 **
 ** On exit,
-**	returns		nil if error
+**	returns 	nil if error
 **			pointer to malloced string (must be freed) if ok
 */
 PRIVATE char * WWW_from_archie ARGS1(
-	char *,		file)
+	char *, 	file)
 {
     char * end;
     char * result;
     char * colon;
     for(end=file; *end > ' '; end++);	/* assumes ASCII encoding*/
     result = (char *)malloc(10 + (end-file));
-    if (!result) return result;		/* Malloc error */
+    if (!result) return result; 	/* Malloc error */
     strcpy(result, "file://");
     strncat(result, file, end-file);
     colon = strchr(result+7, ':');	/* Expect colon after host */
@@ -258,7 +258,7 @@ PRIVATE char * WWW_from_archie ARGS1(
 **	The format of the docid MUST be good!
 **
 **  On exit,
-**	returns		nil if error
+**	returns 	nil if error
 **			pointer to malloced string (must be freed) if ok
 */
 PRIVATE char hex [17] = "0123456789ABCDEF";
@@ -280,19 +280,19 @@ PRIVATE char * WWW_from_WAIS ARGS1(
 		fprintf(stderr, "<%x>", (unsigned)*p);
 	}
 	fprintf(stderr, "\n");
-    }	 
+    }
     for (p = docid->bytes;
-         (p < docid->bytes+docid->size) && (q < &buf[BIG]);) {
+	 (p < docid->bytes+docid->size) && (q < &buf[BIG]);) {
 	if (TRACE)
 	    fprintf(stderr, "    Record type %d, length %d\n", p[0], p[1]);
-        if (*p > 10) {
+	if (*p > 10) {
 	    if (TRACE)
-	        fprintf(stderr, "Eh? DOCID record type of %d!\n", *p);
+		fprintf(stderr, "Eh? DOCID record type of %d!\n", *p);
 	    return 0;
 	}
 	{	/* Bug fix -- allow any byte value 15 Apr 93 */
 	    unsigned int i = (unsigned) *p++;
-	    
+
 	    if (i > 99) {
 		*q++ = (i/100) + '0';
 		i = i % 100;
@@ -317,9 +317,9 @@ PRIVATE char * WWW_from_WAIS ARGS1(
     }
     *q++ = 0;			/* Terminate string */
     if (TRACE)
-        fprintf(stderr, "WWW form of id: %s\n", buf); 
+	fprintf(stderr, "WWW form of id: %s\n", buf);
     {
-        char * result = (char *)malloc(strlen(buf)+1);
+	char * result = (char *)malloc(strlen(buf)+1);
 	if (!result)
 	    outofmem(__FILE__, "WWW_from_WAIS");
 	strcpy(result, buf);
@@ -331,7 +331,7 @@ PRIVATE char * WWW_from_WAIS ARGS1(
 **	-------------------------------------------
 **
 **  On entry,
-**	docname		points to valid name produced originally by
+**	docname 	points to valid name produced originally by
 **			WWW_from_WAIS
 **  On exit,
 **	docid->size	is valid
@@ -339,33 +339,33 @@ PRIVATE char * WWW_from_WAIS ARGS1(
 */
 PRIVATE any * WAIS_from_WWW ARGS2(
 	any *,		docid,
-	char *,		docname)
+	char *, 	docname)
 {
-    char *z; 	/* Output pointer */
+    char *z;	/* Output pointer */
     char *sor;	/* Start of record - points to size field. */
-    char *p; 	/* Input pointer */
-    char *q; 	/* Poisition of "=" */
-    char *s; 	/* Position of semicolon */
+    char *p;	/* Input pointer */
+    char *q;	/* Poisition of "=" */
+    char *s;	/* Position of semicolon */
     int n;	/* size */
     if (TRACE)
-        fprintf(stderr, "WWW id (to become WAIS id): %s\n", docname); 
-    for (n = 0, p = docname; *p; p++) {	/* Count sizes of strings */
-        n++;
+	fprintf(stderr, "WWW id (to become WAIS id): %s\n", docname);
+    for (n = 0, p = docname; *p; p++) { /* Count sizes of strings */
+	n++;
 	if (*p == ';')
 	    n--;		/* Not converted */
 	else if (*p == HEX_ESCAPE)
 	    n = n-2;		/* Save two bytes */
-        docid->size = n;
+	docid->size = n;
     }
-    
+
     if (!(docid->bytes = (char *) malloc(docid->size))) /* result record */
 	    outofmem(__FILE__, "WAIS_from_WWW");
     z = docid->bytes;
-    
+
     for (p = docname; *p; ) {	/* Convert of strings */
-    				/* Record type */
-				
-	*z = 0;			/* Initialize record type */
+				/* Record type */
+
+	*z = 0; 		/* Initialize record type */
 	while (*p >= '0' && *p <= '9') {
 	    *z = *z*10 + (*p++ - '0');	/* Decode decimal record type */
 	}
@@ -373,35 +373,35 @@ PRIVATE any * WAIS_from_WWW ARGS2(
 	if (*p != '=')
 	    return 0;
 	q = p;
-	
-/*        *z++ = *p++ - '0';
+
+/*	  *z++ = *p++ - '0';
 	q = strchr(p , '=');
 	if (!q) return 0;
 */
 	s = strchr(q, ';');	/* (Check only) */
 	if (!s)
-	    return 0;		/* Bad! No ';';	*/
-        sor = z;		/* Remember where the size field was */
+	    return 0;		/* Bad! No ';'; */
+	sor = z;		/* Remember where the size field was */
 	z++;			/* Skip record size for now	*/
 	for (p = q+1; *p != ';';) {
 	   if (*p == HEX_ESCAPE) {
-	        char c;
+		char c;
 		unsigned int b;
 		p++;
-	        c = *p++;
+		c = *p++;
 		b =   from_hex(c);
 		c = *p++;
 		if (!c)
 		    break;	/* Odd number of chars! */
 		*z++ = (b<<4) + from_hex(c);
 	    } else {
-	        *z++ = *p++;	/* Record */
+		*z++ = *p++;	/* Record */
 	    }
 	}
 	*sor = (z-sor-1);	/* Fill in size -- not counting size itself */
 	p++;			/* After semicolon: start of next record */
     }
-    
+
     if (TRACE) {
 	char *p;
 	fprintf(stderr, "WAIS id (%d bytes) is ", (int)docid->size);
@@ -412,24 +412,24 @@ PRIVATE any * WAIS_from_WWW ARGS2(
 		fprintf(stderr, "<%x>", (unsigned)*p);
 	}
 	fprintf(stderr, "\n");
-    }	 
+    }
     return docid;		/* Ok */
-    
+
 } /* WAIS_from_WWW */
 
 /*	Send a plain text record to the client		output_text_record()
 **	--------------------------------------
 */
 PRIVATE void output_text_record ARGS4(
-    HTStream *,			target,
-    WAISDocumentText *,		record,
+    HTStream *, 		target,
+    WAISDocumentText *, 	record,
     boolean,			quote_string_quotes,
-    boolean,                    binary)
+    boolean,			binary)
 {
   long count;
   /* printf(" Text\n");
      print_any("     DocumentID:  ", record->DocumentID);
-     printf("     VersionNumber:  %d\n", record->VersionNumber);
+     printf("	  VersionNumber:  %d\n", record->VersionNumber);
      */
 
   if (binary) {
@@ -446,17 +446,17 @@ PRIVATE void output_text_record ARGS4(
 	    /* if the next letter is '(' or ')', then ignore two letters */
 	    if ('(' == record->DocumentText->bytes[count + 1] ||
 		')' == record->DocumentText->bytes[count + 1])
-	    count += 1;             /* it is a term marker */
+	    count += 1; 	    /* it is a term marker */
 	    else count += 4;		/* it is a paragraph marker */
     } else if (ch == '\n' || ch == '\r') {
 	    PUTC('\n');
     } else if (HTCJK != NOCJK || ch == '\t' || isprint(ch)){
 	    PUTC(ch);
-    } 
+    }
   }
 } /* output text record */
 
-/*	Format A Search response for the client		display_search_response
+/*	Format A Search response for the client 	display_search_response
 **	---------------------------------------
 */
 /* modified from tracy shen's version in wutil.c
@@ -466,15 +466,15 @@ PRIVATE void display_search_response ARGS4(
     HTStructured *,		target,
     SearchResponseAPDU *,	response,
     char *,			database,
-    char *,	 		keywords)
+    char *,			keywords)
 {
-    WAISSearchResponse  *info;
+    WAISSearchResponse	*info;
     long i, k;
-  
+
     BOOL archie =  strstr(database, "archie")!=0;	/* Specical handling */
-  
+
     if (TRACE)
-        fprintf(stderr, "HTWAIS: Displaying search response\n");
+	fprintf(stderr, "HTWAIS: Displaying search response\n");
     PUTS("Index ");
     START(HTML_EM);
     PUTS(database);
@@ -495,115 +495,115 @@ PRIVATE void display_search_response ARGS4(
     START(HTML_OL);
 
     if (response->DatabaseDiagnosticRecords != 0) {
-        info = (WAISSearchResponse *)response->DatabaseDiagnosticRecords;
-        i =0; 
-
-        if (info->Diagnostics != NULL)
-            showDiags((HTStream*)target, info->Diagnostics);
-
-        if (info->DocHeaders != 0) {
-            for (k = 0; info->DocHeaders[k] != 0; k++ ) {
-	        WAISDocumentHeader* head = info->DocHeaders[k];
-	        char * headline = trim_junk(head->Headline);
-	        any * docid = head->DocumentID;
-	        char * docname;		/* printable version of docid */
-
-	        i++;
-	        /*
-	        **  Make a printable string out of the document id.
-	        */
-	        if (TRACE)
-		    fprintf(stderr, 
-		            "HTWAIS:  %2ld: Score: %4ld, lines:%4ld '%s'\n", 
-	                    i,
-	                    (long int)(info->DocHeaders[k]->Score),
-	                    (long int)(info->DocHeaders[k]->Lines),
-	                    headline);
-
-	        START(HTML_LI);
-
-	        if (archie) {
-	            char * www_name = WWW_from_archie(headline);
-	            if (www_name) {
-		        HTStartAnchor(target, NULL, www_name);
-		        PUTS(headline);
-		        END(HTML_A);
-		        FREE(www_name);
-	            } else {
-		        PUTS(headline);
-		        PUTS(" (bad file name)");
-	            }
-	        } else { /* Not archie */
-	            docname =  WWW_from_WAIS(docid);
-	            if (docname) {
-		        char * dbname = HTEscape(database, URL_XPALPHAS);
-		        sprintf(line,
-				"/%s/%s/%d/%s",		/* W3 address */
+	info = (WAISSearchResponse *)response->DatabaseDiagnosticRecords;
+	i =0;
+
+	if (info->Diagnostics != NULL)
+	    showDiags((HTStream*)target, info->Diagnostics);
+
+	if (info->DocHeaders != 0) {
+	    for (k = 0; info->DocHeaders[k] != 0; k++ ) {
+		WAISDocumentHeader* head = info->DocHeaders[k];
+		char * headline = trim_junk(head->Headline);
+		any * docid = head->DocumentID;
+		char * docname; 	/* printable version of docid */
+
+		i++;
+		/*
+		**  Make a printable string out of the document id.
+		*/
+		if (TRACE)
+		    fprintf(stderr,
+			    "HTWAIS:  %2ld: Score: %4ld, lines:%4ld '%s'\n",
+			    i,
+			    (long int)(info->DocHeaders[k]->Score),
+			    (long int)(info->DocHeaders[k]->Lines),
+			    headline);
+
+		START(HTML_LI);
+
+		if (archie) {
+		    char * www_name = WWW_from_archie(headline);
+		    if (www_name) {
+			HTStartAnchor(target, NULL, www_name);
+			PUTS(headline);
+			END(HTML_A);
+			FREE(www_name);
+		    } else {
+			PUTS(headline);
+			PUTS(" (bad file name)");
+		    }
+		} else { /* Not archie */
+		    docname =  WWW_from_WAIS(docid);
+		    if (docname) {
+			char * dbname = HTEscape(database, URL_XPALPHAS);
+			sprintf(line,
+				"/%s/%s/%d/%s", 	/* W3 address */
 				dbname,
-		    		head->Types ? head->Types[0] : "TEXT",
-		    		(int)(head->DocumentLength),
-		    		docname);
+				head->Types ? head->Types[0] : "TEXT",
+				(int)(head->DocumentLength),
+				docname);
 			HTStartAnchor(target, NULL,
 				      ((head->Types) &&
 				       (!strcmp(head->Types[0], "URL")))
-				       		? 
-			      	       headline : line); /* NT, Sep 93 */
+						?
+				       headline : line); /* NT, Sep 93 */
 			PUTS(headline);
 			END(HTML_A);
 			FREE(dbname);
 			FREE(docname);
-	    	    } else {
-		 	PUTS("(bad doc id)");
-	    	    }
-	  	}
+		    } else {
+			PUTS("(bad doc id)");
+		    }
+		}
 
 		sprintf(line, "%5ld  %5ld  ",
-	    		head->Score,
-	    		head->Lines);
+			head->Score,
+			head->Lines);
 		PUTS( line);
-	        MAYBE_END(HTML_LI);
-      	    } /* next document header */
-    	} /* if there were any document headers */
-    
-        if (info->ShortHeaders != 0) {
-            k = 0;
-            while (info->ShortHeaders[k] != 0) {
-	        i++;
-	        PUTS( "(Short Header record, can't display)");
-            }
-        }
-        if (info->LongHeaders != 0) {
-            k = 0;
-            while (info->LongHeaders[k] != 0) {
-	        i++;
-	        PUTS( "\nLong Header record, can't display\n");
-            }
-        }
-        if (info->Text != 0) {
-            k = 0;
-            while (info->Text[k] != 0) {
-	        i++;
+		MAYBE_END(HTML_LI);
+	    } /* next document header */
+	} /* if there were any document headers */
+
+	if (info->ShortHeaders != 0) {
+	    k = 0;
+	    while (info->ShortHeaders[k] != 0) {
+		i++;
+		PUTS( "(Short Header record, can't display)");
+	    }
+	}
+	if (info->LongHeaders != 0) {
+	    k = 0;
+	    while (info->LongHeaders[k] != 0) {
+		i++;
+		PUTS( "\nLong Header record, can't display\n");
+	    }
+	}
+	if (info->Text != 0) {
+	    k = 0;
+	    while (info->Text[k] != 0) {
+		i++;
 		PUTS( "\nText record\n");
 		output_text_record((HTStream*)target,
 				   info->Text[k++], false, false);
-            }
-        }
-        if (info->Headlines != 0) {
-      	    k = 0;
-            while (info->Headlines[k] != 0) {
-	        i++;
+	    }
+	}
+	if (info->Headlines != 0) {
+	    k = 0;
+	    while (info->Headlines[k] != 0) {
+		i++;
 		PUTS( "\nHeadline record, can't display\n");
 		/* dsply_headline_record( info->Headlines[k++]); */
-      	    }
-        }
-        if (info->Codes != 0) {
-      	    k = 0;
-            while (info->Codes[k] != 0) {
+	    }
+	}
+	if (info->Codes != 0) {
+	    k = 0;
+	    while (info->Codes[k] != 0) {
 		i++;
 		PUTS( "\nCode record, can't display\n");
 		/* dsply_code_record( info->Codes[k++]); */
-      	    }
-        }
+	    }
+	}
     }	/* Loop: display user info */
     END(HTML_OL);
     PUTC('\n'); ;
@@ -629,15 +629,15 @@ PUBLIC int HTLoadWAIS ARGS4(
 {
     static CONST char * error_header =
 "<h1>Access error</h1>\nThe following error occured in accesing a WAIS server:<P>\n";
-    char * key;			  /* pointer to keywords in URL */
+    char * key; 		  /* pointer to keywords in URL */
     char* request_message = NULL; /* arbitrary message limit */
     char* response_message = NULL; /* arbitrary message limit */
-    long request_buffer_length;	/* how of the request is left */
-    SearchResponseAPDU  *retrieval_response = 0;
+    long request_buffer_length; /* how of the request is left */
+    SearchResponseAPDU	*retrieval_response = 0;
     char keywords[MAX_KEYWORDS_LENGTH + 1];
-    char *server_name;	
-    char *wais_database = NULL;		/* name of current database */
-    char *www_database;			/* Same name escaped */
+    char *server_name;
+    char *wais_database = NULL; 	/* name of current database */
+    char *www_database; 		/* Same name escaped */
     char *service;
     char *doctype;
     char *doclength;
@@ -652,22 +652,22 @@ PUBLIC int HTLoadWAIS ARGS4(
     BOOL ok = NO;
     int return_status = HT_LOADED;
     int rv;
-    
+
     extern FILE * connect_to_server();
-    
+
     if (!acceptable_inited)
-        init_acceptable();
+	init_acceptable();
 
     /*	Decipher and check syntax of WWW address:
     **	----------------------------------------
     **
     **	First we remove the "wais:" if it was spcified.  920110
-    */  
+    */
     names = HTParse(arg, "", PARSE_HOST | PARSE_PATH | PARSE_PUNCTUATION);
     key = strchr(names, '?');
-    
+
     if (key) {
-    	char * p;
+	char * p;
 	*key++ = 0;	/* Split off keywords */
 	for (p=key; *p; p++) if (*p == '+') *p = ' ';
 	HTUnEscape(key);
@@ -681,8 +681,8 @@ PUBLIC int HTLoadWAIS ARGS4(
 	    *www_database++ = 0;		/* Separate database name */
 	    doctype = strchr(www_database, '/');
 	    if (key) ok = YES;	/* Don't need doc details */
-	    else if (doctype) {	/* If not search parse doc details */
-		*doctype++ = 0;	/* Separate rest of doc address */
+	    else if (doctype) { /* If not search parse doc details */
+		*doctype++ = 0; /* Separate rest of doc address */
 		doclength = strchr(doctype, '/');
 		if (doclength) {
 		    *doclength++ = 0;
@@ -696,64 +696,64 @@ PUBLIC int HTLoadWAIS ARGS4(
 		    } /* if document_length valid */
 		} /* if doclength */
 	    } else { /* no doctype?  Assume index required */
-	        if (!key)
+		if (!key)
 		    key = "";
 		ok = YES;
 	    } /* if doctype */
 	} /* if database */
     }
-     
+
     if (!ok)
 	return HTLoadError(sink, 500, "Syntax error in WAIS URL");
 
     if (TRACE)
-        fprintf(stderr, "HTWAIS: Parsed OK\n");
-     
+	fprintf(stderr, "HTWAIS: Parsed OK\n");
+
     service = strchr(names, ':');
     if (service)
-        *service++ = 0;
+	*service++ = 0;
     else
-        service = "210";
-     
+	service = "210";
+
     if (server_name[0] == 0) {
 #ifdef VMS
-        connection = 0;
+	connection = 0;
 #else
-        connection = NULL;
+	connection = NULL;
 #endif /* VMS */
 
     } else if (!(key && !*key)) {
-        int status;
-        if (TRACE)
-        fprintf (stderr, "===WAIS=== calling mosaic_connect_to_server\n");
-        status = mosaic_connect_to_server(server_name,
+	int status;
+	if (TRACE)
+	fprintf (stderr, "===WAIS=== calling mosaic_connect_to_server\n");
+	status = mosaic_connect_to_server(server_name,
 					  atoi(service),
 					  &connection);
-        if (status == 0) {
-            if (TRACE)
-                fprintf (stderr, "===WAIS=== connection failed\n");
-            FREE(names);
-            return HT_NOT_LOADED;
-        } else if (status == -1) {
-            if (TRACE)
-                fprintf (stderr, "===WAIS=== connection interrupted\n");
-            FREE(names);
-            return HT_NOT_LOADED;
-        }
+	if (status == 0) {
+	    if (TRACE)
+		fprintf (stderr, "===WAIS=== connection failed\n");
+	    FREE(names);
+	    return HT_NOT_LOADED;
+	} else if (status == -1) {
+	    if (TRACE)
+		fprintf (stderr, "===WAIS=== connection interrupted\n");
+	    FREE(names);
+	    return HT_NOT_LOADED;
+	}
     }
 
     StrAllocCopy(wais_database,www_database);
     HTUnEscape(wais_database);
-    
+
     /*
-    **  This below fixed size stuff is terrible.
+    **	This below fixed size stuff is terrible.
     */
 #ifdef VMS
     if (!(request_message =
-    	  (char*)calloc((size_t)MAX_MESSAGE_LEN*sizeof(char),1)))
+	  (char*)calloc((size_t)MAX_MESSAGE_LEN*sizeof(char),1)))
 	outofmem(__FILE__, "HTLoadWAIS");
     if (!(response_message =
-    	  (char*)calloc((size_t)MAX_MESSAGE_LEN*sizeof(char),1)))
+	  (char*)calloc((size_t)MAX_MESSAGE_LEN*sizeof(char),1)))
 	outofmem(__FILE__, "HTLoadWAIS");
 #else
     request_message = (char*)s_malloc((size_t)MAX_MESSAGE_LEN * sizeof(char));
@@ -761,17 +761,17 @@ PUBLIC int HTLoadWAIS ARGS4(
 #endif /* VMS */
 
     /*
-    **  If keyword search is performed but there are no keywords,
-    **  the user has followed a link to the index itself. It would be
-    **  appropriate at this point to send him the .SRC file - how?
+    **	If keyword search is performed but there are no keywords,
+    **	the user has followed a link to the index itself. It would be
+    **	appropriate at this point to send him the .SRC file - how?
     */
-    if (key && !*key) {				/* I N D E X */
+    if (key && !*key) { 			/* I N D E X */
 #ifdef CACHE_FILE_PREFIX
 	char filename[256];
 	FILE * fp;
 #endif
 	HTStructured * target = HTML_new(anAnchor, format_out, sink);
-	
+
 	START(HTML_HEAD);
 	PUTS("\n");
 	HTStartIsIndex(target, "Enter WAIS query: ", NULL);
@@ -785,7 +785,7 @@ PUBLIC int HTLoadWAIS ARGS4(
 	    PUTS("\n");
 	    END(HTML_HEAD);
 	    PUTS("\n");
-	    
+
 	    START(HTML_H1);
 	    PUTS("WAIS Index: ");
 	    START(HTML_EM);
@@ -797,8 +797,8 @@ PUBLIC int HTLoadWAIS ARGS4(
 	    START(HTML_EM);
 	    PUTS(wais_database);
 	    END(HTML_EM);
-	    PUTS(" WAIS Index.\n"); 
-	    
+	    PUTS(" WAIS Index.\n");
+
 	}
 	/*
 	**  If we have seen a source file for this database, use that.
@@ -824,20 +824,20 @@ PUBLIC int HTLoadWAIS ARGS4(
 #endif
 	START(HTML_P);
 	PUTS("\nEnter the 's'earch command and then specify search words.\n");
-	
+
 	FREE_TARGET;
     } else if (key) {					/* S E A R C H */
 	char *p;
 	HTStructured * target;
-	
+
 	strncpy(keywords, key, MAX_KEYWORDS_LENGTH);
 	while(p=strchr(keywords, '+')) *p = ' ';
-    
-        /*
+
+	/*
 	**  Send advance title to get something fast to the other end.
 	*/
 	target = HTML_new(anAnchor, format_out, sink);
-	
+
 	START(HTML_HEAD);
 	PUTS("\n");
 	HTStartIsIndex(target, "Enter WAIS query: ", NULL);
@@ -851,7 +851,7 @@ PUBLIC int HTLoadWAIS ARGS4(
 	PUTS("\n");
 	END(HTML_HEAD);
 	PUTS("\n");
-	
+
 	START(HTML_H1);
 	PUTS("WAIS Search of \"");
 	START(HTML_EM);
@@ -868,8 +868,8 @@ PUBLIC int HTLoadWAIS ARGS4(
 	if (TRACE) fprintf(stderr, "HTWAIS: Search for `%s' in `%s'\n",
 		keywords, wais_database);
 	if(NULL ==
-	generate_search_apdu(request_message + HEADER_LENGTH, 
-				&request_buffer_length, 
+	generate_search_apdu(request_message + HEADER_LENGTH,
+				&request_buffer_length,
 				keywords, wais_database, NULL, MAXDOCS)) {
 #ifdef VMS
 	    HTAlert ("HTWAIS: Request too large.");
@@ -879,11 +879,11 @@ PUBLIC int HTLoadWAIS ARGS4(
 #else
 	    panic("request too large");
 #endif /* VMS */
-        }
-	
+	}
+
 	HTProgress("Searching WAIS database...");
-	rv = interpret_message (request_message, 
-				MAX_MESSAGE_LEN - request_buffer_length, 
+	rv = interpret_message (request_message,
+				MAX_MESSAGE_LEN - request_buffer_length,
 				response_message,
 				MAX_MESSAGE_LEN,
 				connection,
@@ -904,15 +904,15 @@ PUBLIC int HTLoadWAIS ARGS4(
 #else
 	    panic("returned message too large");
 #endif /* VMS */
-        } else {	/* returned message ok */
-	    SearchResponseAPDU  *query_response = 0;
+	} else {	/* returned message ok */
+	    SearchResponseAPDU	*query_response = 0;
 	    readSearchResponseAPDU(&query_response,
-	    	response_message + HEADER_LENGTH);
-	    display_search_response(target, 
-	    	query_response, wais_database, keywords);
+		response_message + HEADER_LENGTH);
+	    display_search_response(target,
+		query_response, wais_database, keywords);
 	    if (query_response->DatabaseDiagnosticRecords)
 		freeWAISSearchResponse(
-			query_response->DatabaseDiagnosticRecords);         
+			query_response->DatabaseDiagnosticRecords);
 	    freeSearchResponseAPDU( query_response);
 	}	/* returned message not too large */
 	FREE_TARGET;
@@ -927,14 +927,14 @@ PUBLIC int HTLoadWAIS ARGS4(
 	if (TRACE) fprintf(stderr,
 		"HTWAIS: Retrieve document id `%s' type `%s' length %ld\n",
 		docname, doctype, document_length);
-		
-	format_in = 
+
+	format_in =
 	  !strcmp(doctype, "WSRC") ? HTAtom_for("application/x-wais-source") :
 	  !strcmp(doctype, "TEXT") ? HTAtom_for("text/plain") :
 	  !strcmp(doctype, "HTML") ? HTAtom_for("text/html") :
 	  !strcmp(doctype, "GIF")  ? HTAtom_for("image/gif") :
-	   		             HTAtom_for("application/octet-stream");
-	binary = 
+				     HTAtom_for("application/octet-stream");
+	binary =
 	  0 != strcmp(doctype, "WSRC") &&
 	  0 != strcmp(doctype, "TEXT") &&
 	  0 != strcmp(doctype, "HTML") ;
@@ -945,47 +945,47 @@ PUBLIC int HTLoadWAIS ARGS4(
 			       "Can't convert format of WAIS document");
 	/*
 	**  Decode hex or litteral format for document ID.
-	*/	
+	*/
 	WAIS_from_WWW(docid, docname);
 
 	/*
 	**  Loop over slices of the document.
-	*/	
-	for (count = 0; 
+	*/
+	for (count = 0;
 	     count * CHARS_PER_PAGE < document_length;
 	     count++) {
 #ifdef VMS
-            char *type = NULL;
-	  
+	    char *type = NULL;
+
 	    StrAllocCopy(type, doctype);
 #else
 	    char *type = s_strdup(doctype);	/* Gets freed I guess */
 #endif /* VMS */
 	    request_buffer_length = MAX_MESSAGE_LEN; /* Amount left */
 	    if (TRACE)
-	        fprintf(stderr, "HTWAIS: Slice number %ld\n", count);
+		fprintf(stderr, "HTWAIS: Slice number %ld\n", count);
 
-            if (HTCheckForInterrupt()) {
-                HTAlert ("Data transfer interrupted.");
-                (*target->isa->_abort)(target, NULL);
+	    if (HTCheckForInterrupt()) {
+		HTAlert ("Data transfer interrupted.");
+		(*target->isa->_abort)(target, NULL);
 #ifdef VMS
 		FREE(type);
 #endif /* VMS */
 		return_status = HT_NOT_LOADED;
 		goto CleanUp;
-            }
+	    }
 
 	    if (0 ==
-	        generate_retrieval_apdu(request_message + HEADER_LENGTH,
-		    			&request_buffer_length, 
-		    			docid, 
-		    			CT_byte,
-		    			count * CHARS_PER_PAGE,
+		generate_retrieval_apdu(request_message + HEADER_LENGTH,
+					&request_buffer_length,
+					docid,
+					CT_byte,
+					count * CHARS_PER_PAGE,
 		    ((count + 1) * CHARS_PER_PAGE <= document_length ?
-		             		(count + 1) * CHARS_PER_PAGE :
-			     		document_length),
-		    			type,
-		    			wais_database)) {
+					(count + 1) * CHARS_PER_PAGE :
+					document_length),
+					type,
+					wais_database)) {
 #ifdef VMS
 		HTAlert ("HTWAIS: Request too long.");
 		return_status = HT_NOT_LOADED;
@@ -997,18 +997,18 @@ PUBLIC int HTLoadWAIS ARGS4(
 		panic("request too long");
 #endif /* VMS */
 	    }
-	  
+
 	    /*
-	    **  Actually do the transaction given by request_message.
+	    **	Actually do the transaction given by request_message.
 	    */
 	    HTProgress("Fetching WAIS document...");
-	    rv = interpret_message(request_message, 
-				   MAX_MESSAGE_LEN - request_buffer_length, 
+	    rv = interpret_message(request_message,
+				   MAX_MESSAGE_LEN - request_buffer_length,
 				   response_message,
 				   MAX_MESSAGE_LEN,
 				   connection,
-				   false /* true verbose */	
-			          );
+				   false /* true verbose */
+				  );
 	    if (rv == HT_INTERRUPTED) {
 		HTAlert ("Data transfer interrupted.");
 		return_status = HT_INTERRUPTED;
@@ -1025,30 +1025,30 @@ PUBLIC int HTLoadWAIS ARGS4(
 		FREE(docid->bytes);
 		goto CleanUp;
 #else
-	        panic("Returned message too large");
+		panic("Returned message too large");
 #endif /* VMS */
 	    }
 
 	    /*
-	    **  Parse the result which came back into memory.
+	    **	Parse the result which came back into memory.
 	    */
-	    readSearchResponseAPDU(&retrieval_response, 
+	    readSearchResponseAPDU(&retrieval_response,
 				   response_message + HEADER_LENGTH);
 
 	    if (NULL ==
-	        ((WAISSearchResponse *)
-	  	 retrieval_response->DatabaseDiagnosticRecords)->Text) {
+		((WAISSearchResponse *)
+		 retrieval_response->DatabaseDiagnosticRecords)->Text) {
 		/* display_search_response(target, retrieval_response,
 					wais_database, keywords); */
 		PUTS("No text was returned!\n");
 		/* panic("No text was returned"); */
 	    } else {
 		output_text_record(target,
-		   		   ((WAISSearchResponse *)
+				   ((WAISSearchResponse *)
 		    retrieval_response->DatabaseDiagnosticRecords)->Text[0],
 				   false, binary);
 	    } /* If text existed */
-	  
+
 #ifdef VMS
 	    FREE(type);
 #endif /* VMS */
@@ -1057,21 +1057,21 @@ PUBLIC int HTLoadWAIS ARGS4(
 	FREE_TARGET;
 	FREE(docid->bytes);
 
-	freeWAISSearchResponse( retrieval_response->DatabaseDiagnosticRecords); 
+	freeWAISSearchResponse( retrieval_response->DatabaseDiagnosticRecords);
 	freeSearchResponseAPDU( retrieval_response);
 
     } /* If document rather than search */
 
 CleanUp:
     /*
-    **  (This postponed until later,  after a timeout:)
+    **	(This postponed until later,  after a timeout:)
     */
 #ifdef VMS
     if (connection)
-        NETCLOSE((int)connection);
+	NETCLOSE((int)connection);
 #else
     if (connection)
-        fclose(connection);
+	fclose(connection);
 #endif /* VMS */
     FREE(wais_database);
 #ifdef VMS
diff --git a/WWW/Library/Implementation/HTWSRC.c b/WWW/Library/Implementation/HTWSRC.c
index d26a86ac..56608ac3 100644
--- a/WWW/Library/Implementation/HTWSRC.c
+++ b/WWW/Library/Implementation/HTWSRC.c
@@ -15,7 +15,7 @@
 
 
 /* #include <sys/types.h>	already in tcp.h */
-/* #include <sys/stat.h>  	this too         */
+/* #include <sys/stat.h>	this too	 */
 /* #include <stdio.h> included in HTUtils.h -- FM */
 #include "HTML.h"
 #include "HTParse.h"
@@ -40,31 +40,31 @@ struct _HTStructured {
 #define START(e) (*me->target->isa->start_element)(me->target, e, 0, 0, -1, 0)
 #define END(e) (*me->target->isa->end_element)(me->target, e, 0)
 #define MAYBE_END(e) if (HTML_dtd.tags[e].contents != SGML_EMPTY) \
-                        (*me->target->isa->end_element)(me->target, e, 0)
+			(*me->target->isa->end_element)(me->target, e, 0)
 
 
 /*	Here are the parameters which can be specified in a  source file
 */
 PRIVATE CONST char* par_name[] = {
-	"version", 
+	"version",
 	"ip-address",
 #define PAR_IP_NAME 2
-	"ip-name", 
+	"ip-name",
 #define PAR_TCP_PORT 3
-	"tcp-port", 
+	"tcp-port",
 #define PAR_DATABASE_NAME 4
 	"database-name",
 #define PAR_COST 5
-	"cost", 
+	"cost",
 #define PAR_COST_UNIT 6
-	"cost-unit", 
+	"cost-unit",
 #define PAR_FREE 7
-	"free",	
+	"free",
 #define PAR_MAINTAINER 8
-	"maintainer", 	
+	"maintainer",
 #define PAR_DESCRIPTION 9
 	"description",
-	"keyword-list", 	
+	"keyword-list",
 	"source",
 	"window-geometry",
 	"configuration",
@@ -101,7 +101,7 @@ struct _HTStream {
 	HTStructured *		target;
 	char *			par_value[PAR_COUNT];
 	enum tokenstate 	state;
-	char 			param[BIG+1];
+	char			param[BIG+1];
 	int			param_number;
 	int			param_count;
 };
@@ -116,7 +116,7 @@ PUBLIC CONST char * hex = "0123456789ABCDEF";
 
 PUBLIC char from_hex ARGS1(char, c)
 {
-    return 		  (c>='0')&&(c<='9') ? c-'0'
+    return		  (c>='0')&&(c<='9') ? c-'0'
 			: (c>='A')&&(c<='F') ? c-'A'+10
 			: (c>='a')&&(c<='f') ? c-'a'+10
 			:		       0;
@@ -130,7 +130,7 @@ PUBLIC char from_hex ARGS1(char, c)
 **	me->state	is a valid state (see WSRC_init)
 **	c		is the next character
 ** On exit,
-** 	returns	1	Done with file
+**	returns 1	Done with file
 **		0	Continue. me->state is updated if necessary.
 **		-1	Syntax error error
 */
@@ -143,11 +143,11 @@ PRIVATE void WSRCParser_put_character ARGS2(HTStream*, me, char, c)
 {
     switch (me->state) {
     case beginning:
-        if (c=='(') me->state = before_tag;
+	if (c=='(') me->state = before_tag;
 	break;
-	
+
     case before_tag:
-        if (c==')') {
+	if (c==')') {
 	    me->state = done;
 	    return;			/* Done with input file */
 	} else if (c==':') {
@@ -157,7 +157,7 @@ PRIVATE void WSRCParser_put_character ARGS2(HTStream*, me, char, c)
 	break;
 
     case colon:
-        if (WHITE(c)) {
+	if (WHITE(c)) {
 	    me->param[me->param_count++] = 0;	/* Terminate */
 	    for(me->param_number = 0; par_name[me->param_number]; me->param_number++) {
 		if (0==strcmp(par_name[me->param_number], me->param)) {
@@ -165,7 +165,7 @@ PRIVATE void WSRCParser_put_character ARGS2(HTStream*, me, char, c)
 		}
 	    }
 	    if (!par_name[me->param_number]) {	/* Unknown field */
-	        if (TRACE) fprintf(stderr,
+		if (TRACE) fprintf(stderr,
 		    "HTWSRC: Unknown field `%s' in source file\n",
 		    me->param);
 		me->param_number = PAR_UNKNOWN;
@@ -177,9 +177,9 @@ PRIVATE void WSRCParser_put_character ARGS2(HTStream*, me, char, c)
 	    if (me->param_count < PARAM_MAX)  me->param[me->param_count++] = c;
 	}
 	break;
-	
+
     case before_value:
-        if (c==')') {
+	if (c==')') {
 	    me->state = done;
 	    return;			/* Done with input file */
 	}
@@ -189,13 +189,13 @@ PRIVATE void WSRCParser_put_character ARGS2(HTStream*, me, char, c)
 	    me->state = quoted_value;
 	    break;
 	}
-	me->state = (c=='"') ? quoted_value : 
+	me->state = (c=='"') ? quoted_value :
 		    (c=='(') ? bracketed_value : value;
 	me->param[me->param_count++] = c;	/* Don't miss first character */
 	break;
 
     case value:
-        if (WHITE(c)) {
+	if (WHITE(c)) {
 	    me->param[me->param_count] = 0;
 	    StrAllocCopy(me->par_value[me->param_number], me->param);
 	    me->state = before_tag;
@@ -205,23 +205,23 @@ PRIVATE void WSRCParser_put_character ARGS2(HTStream*, me, char, c)
 	break;
 
     case bracketed_value:
-        if (c==')') {
+	if (c==')') {
 	    me->param[me->param_count] = 0;
 	    StrAllocCopy(me->par_value[me->param_number], me->param);
 	    me->state = before_tag;
 	    break;
 	}
-        if (me->param_count < PARAM_MAX)  me->param[me->param_count++] = c;
+	if (me->param_count < PARAM_MAX)  me->param[me->param_count++] = c;
 	break;
-	
+
     case quoted_value:
-        if (c=='"') {
+	if (c=='"') {
 	    me->param[me->param_count] = 0;
 	    StrAllocCopy(me->par_value[me->param_number], me->param);
 	    me->state = before_tag;
 	    break;
 	}
-	
+
 	if (c=='\\') {		/* Ignore escape but switch state */
 	    me->state = escape_in_quoted;
 	    break;
@@ -229,10 +229,10 @@ PRIVATE void WSRCParser_put_character ARGS2(HTStream*, me, char, c)
 	/* Fall through! */
 
     case escape_in_quoted:
-        if (me->param_count < PARAM_MAX)  me->param[me->param_count++] = c;
+	if (me->param_count < PARAM_MAX)  me->param[me->param_count++] = c;
 	me->state = quoted_value;
 	break;
-	
+
     case done:				/* Ignore anything after EOF */
 	return;
 
@@ -254,23 +254,23 @@ PRIVATE BOOL write_cache ARGS1(HTStream *, me)
     char cache_file_name[256];
     char * www_database;
     if (!me->par_value[PAR_DATABASE_NAME]
-    	|| !me->par_value[PAR_IP_NAME]
+	|| !me->par_value[PAR_IP_NAME]
 	) return NO;
-    
+
     www_database = HTEscape(me->par_value[PAR_DATABASE_NAME], URL_XALPHAS);
     sprintf(cache_file_name, "%sWSRC-%s:%s:%.100s.txt",
-    	CACHE_FILE_PREFIX,
+	CACHE_FILE_PREFIX,
 	me->par_value[PAR_IP_NAME],
 	me->par_value[PAR_TCP_PORT] ? me->par_value[PAR_TCP_PORT] : "210",
 	www_database);
     FREE(www_database);
     fp = fopen(cache_file_name, "w");
     if (!fp) return NO;
-    
+
     if (me->par_value[PAR_DESCRIPTION])
-        fputs(me->par_value[PAR_DESCRIPTION], fp);
-    else 
-        fputs("Description not available\n", fp);
+	fputs(me->par_value[PAR_DESCRIPTION], fp);
+    else
+	fputs("Description not available\n", fp);
     fclose(fp);
     return YES;
 }
@@ -289,7 +289,7 @@ PRIVATE void give_parameter ARGS2(HTStream *, me, int, p)
 	PUTS(me->par_value[p]);
 	PUTS("; ");
     } else {
-        PUTS(" NOT GIVEN in source file; ");
+	PUTS(" NOT GIVEN in source file; ");
     }
 }
 
@@ -306,9 +306,9 @@ PRIVATE void WSRC_gen_html ARGS2(HTStream *, me, BOOL, source_file)
 	StrAllocCopy(shortname, me->par_value[PAR_DATABASE_NAME]);
 	l = strlen(shortname);
 	if ( l > 4 && !strcasecomp(shortname + l -4, ".src")) {
-	    shortname[l-4] = 0;	/* Chop of .src -- boring! */
+	    shortname[l-4] = 0; /* Chop of .src -- boring! */
 	}
-	
+
 	START(HTML_HEAD);
 	PUTS("\n");
 	START(HTML_TITLE);
@@ -317,7 +317,7 @@ PRIVATE void WSRC_gen_html ARGS2(HTStream *, me, BOOL, source_file)
 	END(HTML_TITLE);
 	PUTS("\n");
 	END(HTML_HEAD);
-    
+
 	START(HTML_H1);
 	PUTS(shortname);
 	PUTS(source_file ? " description" : " index");
@@ -325,9 +325,9 @@ PRIVATE void WSRC_gen_html ARGS2(HTStream *, me, BOOL, source_file)
 	PUTS("\n");
 	FREE(shortname);
     }
-    
+
     START(HTML_DL);		/* Definition list of details */
-    
+
     if (source_file) {
 	START(HTML_DT);
 	PUTS("Access links");
@@ -335,17 +335,17 @@ PRIVATE void WSRC_gen_html ARGS2(HTStream *, me, BOOL, source_file)
 	START(HTML_DD);
 	if (me->par_value[PAR_IP_NAME] &&
 	    me->par_value[PAR_DATABASE_NAME]) {
-    
+
 	    char WSRC_address[256];
 	    char * www_database;
 	    www_database = HTEscape(me->par_value[PAR_DATABASE_NAME],
-	    	URL_XALPHAS);
+		URL_XALPHAS);
 	    sprintf(WSRC_address, "wais://%s%s%s/%s",
 		me->par_value[PAR_IP_NAME],
 		me->par_value[PAR_TCP_PORT] ? ":" : "",
 		me->par_value[PAR_TCP_PORT] ? me->par_value[PAR_TCP_PORT] :"",
 		www_database);
-	
+
 	    HTStartAnchor(me->target, NULL, WSRC_address);
 	    PUTS("Direct access");
 	    END(HTML_A);
@@ -353,15 +353,15 @@ PRIVATE void WSRC_gen_html ARGS2(HTStream *, me, BOOL, source_file)
 	    PUTS(" (or via proxy server, if defined)");
 
 	    FREE(www_database);
-	    
+
 	} else {
 	    give_parameter(me, PAR_IP_NAME);
 	    give_parameter(me, PAR_DATABASE_NAME);
 	}
 	MAYBE_END(HTML_DD);
-    
+
     } /* end if source_file */
-    
+
     if (me->par_value[PAR_MAINTAINER]) {
 	START(HTML_DT);
 	PUTS("Maintainer");
@@ -371,11 +371,11 @@ PRIVATE void WSRC_gen_html ARGS2(HTStream *, me, BOOL, source_file)
 	MAYBE_END(HTML_DD);
     }
     if (me->par_value[PAR_IP_NAME]) {
-    	START(HTML_DT);
-    	PUTS("Host");
+	START(HTML_DT);
+	PUTS("Host");
 	MAYBE_END(HTML_DT);
-    	START(HTML_DD);
-    	PUTS(me->par_value[PAR_IP_NAME]);
+	START(HTML_DD);
+	PUTS(me->par_value[PAR_IP_NAME]);
 	MAYBE_END(HTML_DD);
     }
 
@@ -386,9 +386,9 @@ PRIVATE void WSRC_gen_html ARGS2(HTStream *, me, BOOL, source_file)
 	PUTS(me->par_value[PAR_DESCRIPTION]);
 	END(HTML_PRE);
     }
-    
+
     (*me->target->isa->_free)(me->target);
-    
+
     return;
 } /* generate html */
 
@@ -397,19 +397,19 @@ PRIVATE void WSRCParser_put_string ARGS2(HTStream *, context, CONST char*, str)
 {
     CONST char *p;
     for(p=str; *p; p++)
-        WSRCParser_put_character(context, *p);
+	WSRCParser_put_character(context, *p);
 }
 
 
 PRIVATE void WSRCParser_write ARGS3(
-		HTStream *, 	context,
-		CONST char*, 	str,
-		int, 		l)
+		HTStream *,	context,
+		CONST char*,	str,
+		int,		l)
 {
     CONST char *p;
     CONST char *e = str+l;
     for(p=str; p<e; p++)
-        WSRCParser_put_character(context, *p);
+	WSRCParser_put_character(context, *p);
 }
 
 
@@ -421,7 +421,7 @@ PRIVATE void WSRCParser_free ARGS1(HTStream *, me)
 #endif
     {
 	int p;
-	for (p = 0; par_name[p]; p++) {	/* Clear out old values */
+	for (p = 0; par_name[p]; p++) { /* Clear out old values */
 	    FREE(me->par_value[p]);
 	}
     }
@@ -434,7 +434,7 @@ PRIVATE void WSRCParser_abort ARGS2(HTStream *, me, HTError, e)
 }
 
 
-/*		Stream subclass		-- method routines
+/*		Stream subclass 	-- method routines
 **		---------------
 */
 
@@ -443,7 +443,7 @@ HTStreamClass WSRCParserClass = {
 	WSRCParser_free,
 	WSRCParser_abort,
 	WSRCParser_put_character,
- 	WSRCParser_put_string,
+	WSRCParser_put_string,
 	WSRCParser_write
 
 };
@@ -454,7 +454,7 @@ HTStreamClass WSRCParserClass = {
 */
 PUBLIC HTStream* HTWSRCConvert ARGS3(
 	HTPresentation *,	pres,
-	HTParentAnchor *,	anchor,	
+	HTParentAnchor *,	anchor,
 	HTStream *,		sink)
 {
     HTStream * me = (HTStream*) malloc(sizeof(*me));
diff --git a/WWW/Library/Implementation/LYLeaks.h b/WWW/Library/Implementation/LYLeaks.h
index d7d47a01..b181cb7f 100644
--- a/WWW/Library/Implementation/LYLeaks.h
+++ b/WWW/Library/Implementation/LYLeaks.h
@@ -6,45 +6,47 @@
 #define __LYLEAKS_H
 
 /*
- *	Copyright (c) 1994, University of Kansas, All Rights Reserved
- *
- *	Include File:	LYLeaks.h
- *	Purpose:	Header to convert requests for allocation to Lynx
- *				custom functions to track memory leaks.
- *	Remarks/Portability/Dependencies/Restrictions:
- *		For the stdlib.h allocation functions to be overriden by the
- *			Lynx memory tracking functions all modules allocating,
- *			freeing, or resizing memory must have LY_FIND_LEAKS
- *			defined before including this file.
- *		This header file should be included in every source file which
- *			does any memory manipulation through use of the
- *			stdlib.h memory functions.
- *		For proper reporting of memory leaks, the function LYLeaks
- *			should be registered for execution by atexit as the
- *			very first executable statement in main.
- *		This code is slow and should not be used except in debugging
- *			circumstances (don't define LY_FIND_LEAKS).
- *		If you are using LY_FIND_LEAKS and don't want the LYLeak*
- *			memory functions to be used in a certain file,
- *			define NO_MEMORY_TRACKING before including this file.
- *		The only safe way to call the LYLeak* functions is to use
- *			the below macros because they depend on the static
- *			string created by __FILE__ to not be dynamic in
- *			nature (don't free it and assume will exist at all
- *			times during execution).
- *	Revision History:
- *		05-26-94	created for Lynx 2-3-1, Garrett Arch Blythe
- */
+**  Copyright (c) 1994, University of Kansas, All Rights Reserved
+**
+**  Include File:	LYLeaks.h
+**  Purpose:		Header to convert requests for allocation to Lynx
+**			custom functions to track memory leaks.
+**  Remarks/Portability/Dependencies/Restrictions:
+**	For the stdlib.h allocation functions to be overriden by the
+**		Lynx memory tracking functions all modules allocating,
+**		freeing, or resizing memory must have LY_FIND_LEAKS
+**		defined before including this file.
+**	This header file should be included in every source file which
+**		does any memory manipulation through use of the
+**		stdlib.h memory functions.
+**	For proper reporting of memory leaks, the function LYLeaks
+**		should be registered for execution by atexit as the
+**		very first executable statement in main.
+**	This code is slow and should not be used except in debugging
+**		circumstances (don't define LY_FIND_LEAKS).
+**	If you are using LY_FIND_LEAKS and don't want the LYLeak*
+**		memory functions to be used in a certain file,
+**		define NO_MEMORY_TRACKING before including this file.
+**	The only safe way to call the LYLeak* functions is to use
+**		the below macros because they depend on the static
+**		string created by __FILE__ to not be dynamic in
+**		nature (don't free it and assume will exist at all
+**		times during execution).
+**  Revision History:
+**	05-26-94	created for Lynx 2-3-1, Garrett Arch Blythe
+**	10-30-97	modified to handle StrAllocCopy() and
+**			StrAllocCat(). - KW & FM
+*/
 
 /*
- *	Required includes
- */
+**  Required includes
+*/
 #include <stdlib.h>
 #include "HTUtils.h"
 
 /*
- *	Constant defines
- */
+**	Constant defines
+*/
 #define MAX_CONTENT_LENGTH 50
 #ifdef VMS
 #define LEAKAGE_SINK "sys$login:Lynx.leaks"
@@ -53,8 +55,8 @@
 #endif /* VMS */
 
 /*
- *	Data structures
- */
+**	Data structures
+*/
 typedef struct SourceLocation_tag	{
 	/*
 	 *	The file name and line number of where an event took place.
@@ -89,25 +91,24 @@ typedef struct AllocationList_tag	{
 	 */
 	SourceLocation SL_memory;
 	SourceLocation SL_realloc;
-}
-AllocationList;
+} AllocationList;
 
 /*
- *	Global variable declarations
- */
+**  Global variable declarations
+*/
 
 /*
- *	Macros
- */
+**  Macros
+*/
 #if defined(LY_FIND_LEAKS) && !defined(NO_MEMORY_TRACKING)
 /*
- *	Only use these macros if we are to track memory allocations.
- *	The reason for using a macro instead of a define is that we want
- *		to track where the initial allocation took place or where
- *		the last reallocation took place.
- *	Track where the allocation took place by the __FILE__ and __LINE__
- *		defines which are automatic to the compiler.
- */
+**	Only use these macros if we are to track memory allocations.
+**	The reason for using a macro instead of a define is that we want
+**		to track where the initial allocation took place or where
+**		the last reallocation took place.
+**	Track where the allocation took place by the __FILE__ and __LINE__
+**		defines which are automatic to the compiler.
+*/
 #ifdef malloc
 #undef malloc
 #endif /* malloc */
@@ -131,34 +132,52 @@ AllocationList;
 #define free(vp_alloced) LYLeakFree(vp_alloced, __FILE__, __LINE__)
 
 /*
- *   Added the following two defines to track Lynx's frequent use
- *   of those macros. - kw 1997-10-12
- */
+**  Added the following two defines to track Lynx's frequent use
+**  of those macros. - KW 1997-10-12
+*/
 #ifdef StrAllocCopy
 #undef StrAllocCopy
+#endif /* StrAllocCopy */
+#define StrAllocCopy(dest, src) LYLeakSACopy(&(dest), src, __FILE__, __LINE__)
+#ifdef StrAllocCat
 #undef StrAllocCat
-#endif
-#define StrAllocCopy(dest, src) LYLeakSACopy (&(dest), src, __FILE__, __LINE__)
-#define StrAllocCat(dest, src)  LYLeakSACat  (&(dest), src, __FILE__, __LINE__)
+#endif /* StrAllocCat */
+#define StrAllocCat(dest, src)  LYLeakSACat(&(dest), src, __FILE__, __LINE__)
 
 #endif /* LY_FIND_LEAKS && !NO_MEMORY_TRACKING */
 
 /*
- *	Function declarations
- *	See the appropriate source file for usage.
- */
-PUBLIC void LYLeaks NOPARAMS;
-PUBLIC void *LYLeakMalloc PARAMS((size_t st_bytes, CONST char *cp_File, CONST
-	short ssi_Line));
-PUBLIC void *LYLeakCalloc PARAMS((size_t st_number, size_t st_bytes, CONST char
-	*cp_File, CONST short ssi_Line));
-PUBLIC void *LYLeakRealloc PARAMS((void *vp_alloced, size_t st_newbytes, CONST
-	char *cp_File, CONST short ssi_Line));
-PUBLIC void LYLeakFree PARAMS((void *vp_alloced, CONST char *cp_File, CONST
-	short ssi_Line));
-extern char * LYLeakSACopy PARAMS ((char **dest, CONST char *src, CONST char
-	*cp_File, CONST short ssi_Line));
-extern char * LYLeakSACat  PARAMS ((char **dest, CONST char *src, CONST char
-	*cp_File, CONST short ssi_Line));
+**	Function declarations
+**	See the appropriate source file for usage.
+*/
+extern void LYLeaks NOPARAMS;
+extern void *LYLeakMalloc PARAMS((
+	size_t		st_bytes,
+	CONST char *	cp_File,
+	CONST short	ssi_Line));
+extern void *LYLeakCalloc PARAMS((
+	size_t		st_number,
+	size_t		st_bytes,
+	CONST char *	cp_File,
+	CONST short	ssi_Line));
+extern void *LYLeakRealloc PARAMS((
+	void *		vp_alloced,
+	size_t		st_newbytes,
+	CONST char *	cp_File,
+	CONST short	ssi_Line));
+extern void LYLeakFree PARAMS((
+	void *		vp_alloced,
+	CONST char *	cp_File,
+	CONST short	ssi_Line));
+extern char * LYLeakSACopy PARAMS((
+	char **		dest,
+	CONST char *	src,
+	CONST char *	cp_File,
+	CONST short	ssi_Line));
+extern char * LYLeakSACat PARAMS((
+	char **		dest,
+	CONST char *	src,
+	CONST char *	cp_File,
+	CONST short	ssi_Line));
 
 #endif /* __LYLEAKS_H */
diff --git a/WWW/Library/Implementation/Makefile b/WWW/Library/Implementation/Makefile
new file mode 100644
index 00000000..7f028976
--- /dev/null
+++ b/WWW/Library/Implementation/Makefile
@@ -0,0 +1,489 @@
+# Makefile generated by imake - do not edit!
+# $XConsortium: imake.c,v 1.51 89/12/12 12:37:30 jim Exp $
+#
+# The cpp used on this machine replaces all newlines and multiple tabs and
+# spaces in a macro expansion with a single space.  Imake tries to compensate
+# for this, but is not always successful.
+#
+
+###########################################################################
+# Makefile generated from "Imake.tmpl" and </tmp/IIf.a00214>
+# $XConsortium: Imake.tmpl,v 1.77 89/12/18 17:01:37 jim Exp $
+#
+# Platform-specific parameters may be set in the appropriate .cf
+# configuration files.  Site-wide parameters may be set in the file
+# site.def.  Full rebuilds are recommended if any parameters are changed.
+#
+# If your C preprocessor doesn't define any unique symbols, you'll need
+# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing
+# "make Makefile", "make Makefiles", or "make World").
+#
+# If you absolutely can't get imake to work, you'll need to set the
+# variables at the top of each Makefile as well as the dependencies at the
+# bottom (makedepend will do this automatically).
+#
+
+###########################################################################
+# platform-specific configuration parameters - edit sun.cf to change
+
+# platform:  $XConsortium: sun.cf,v 1.38 89/12/23 16:10:10 jim Exp $
+# operating system:  SunOS 4.0.3
+
+###########################################################################
+# site-specific configuration parameters - edit site.def to change
+
+            SHELL = /bin/sh
+
+              TOP = .
+      CURRENT_DIR = .
+
+               AR = ar clq
+  BOOTSTRAPCFLAGS =
+               CC = cc
+
+         COMPRESS = compress
+              CPP = /lib/cpp $(STD_CPP_DEFINES)
+    PREPROCESSCMD = cc -E $(STD_CPP_DEFINES)
+          INSTALL = install
+               LD = ld
+             LINT = lint
+      LINTLIBFLAG = -C
+         LINTOPTS = -axz
+               LN = ln -s
+             MAKE = make
+               MV = mv
+               CP = cp
+           RANLIB = ranlib
+  RANLIBINSTFLAGS =
+               RM = rm -f
+     STD_INCLUDES =
+  STD_CPP_DEFINES =
+      STD_DEFINES =
+ EXTRA_LOAD_FLAGS =
+  EXTRA_LIBRARIES =
+             TAGS = ctags
+
+    SHAREDCODEDEF = -DSHAREDCODE
+         SHLIBDEF = -DSUNSHLIB
+
+    PROTO_DEFINES =
+
+     INSTPGMFLAGS =
+
+     INSTBINFLAGS = -m 0755
+     INSTUIDFLAGS = -m 4755
+     INSTLIBFLAGS = -m 0664
+     INSTINCFLAGS = -m 0444
+     INSTMANFLAGS = -m 0444
+     INSTDATFLAGS = -m 0444
+    INSTKMEMFLAGS = -m 4755
+
+          DESTDIR =
+
+     TOP_INCLUDES = -I$(INCROOT)
+
+      CDEBUGFLAGS = -O
+        CCOPTIONS =
+      COMPATFLAGS =
+
+      ALLINCLUDES = $(STD_INCLUDES) $(TOP_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES)
+       ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(DEFINES) $(COMPATFLAGS)
+           CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES)
+        LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES)
+           LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
+        LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS)
+   LDCOMBINEFLAGS = -X -r
+
+        MACROFILE = sun.cf
+           RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut
+
+    IMAKE_DEFINES =
+
+         IRULESRC = $(CONFIGDIR)
+        IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES)
+
+     ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \
+			$(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \
+			$(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES)
+
+###########################################################################
+# X Window System Build Parameters
+# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $
+
+###########################################################################
+# X Window System make variables; this need to be coordinated with rules
+# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $
+
+          PATHSEP = /
+        USRLIBDIR = $(DESTDIR)/usr/lib
+           BINDIR = $(DESTDIR)/usr/bin/X11
+          INCROOT = $(DESTDIR)/usr/include
+     BUILDINCROOT = $(TOP)
+      BUILDINCDIR = $(BUILDINCROOT)/X11
+      BUILDINCTOP = ..
+           INCDIR = $(INCROOT)/X11
+           ADMDIR = $(DESTDIR)/usr/adm
+           LIBDIR = $(USRLIBDIR)/X11
+        CONFIGDIR = $(LIBDIR)/config
+       LINTLIBDIR = $(USRLIBDIR)/lint
+
+          FONTDIR = $(LIBDIR)/fonts
+         XINITDIR = $(LIBDIR)/xinit
+           XDMDIR = $(LIBDIR)/xdm
+           AWMDIR = $(LIBDIR)/awm
+           TWMDIR = $(LIBDIR)/twm
+           GWMDIR = $(LIBDIR)/gwm
+          MANPATH = $(DESTDIR)/usr/man
+    MANSOURCEPATH = $(MANPATH)/man
+           MANDIR = $(MANSOURCEPATH)n
+        LIBMANDIR = $(MANSOURCEPATH)3
+      XAPPLOADDIR = $(LIBDIR)/app-defaults
+
+        SOXLIBREV = 4.2
+          SOXTREV = 4.0
+         SOXAWREV = 4.0
+        SOOLDXREV = 4.0
+         SOXMUREV = 4.0
+        SOXEXTREV = 4.0
+
+       FONTCFLAGS = -t
+
+     INSTAPPFLAGS = $(INSTDATFLAGS)
+
+            IMAKE = imake
+           DEPEND = makedepend
+              RGB = rgb
+            FONTC = bdftosnf
+        MKFONTDIR = mkfontdir
+        MKDIRHIER = /bin/sh $(BINDIR)/mkdirhier.sh
+
+        CONFIGSRC = $(TOP)/config
+        CLIENTSRC = $(TOP)/clients
+          DEMOSRC = $(TOP)/demos
+           LIBSRC = $(TOP)/lib
+          FONTSRC = $(TOP)/fonts
+       INCLUDESRC = $(TOP)/X11
+        SERVERSRC = $(TOP)/server
+          UTILSRC = $(TOP)/util
+        SCRIPTSRC = $(UTILSRC)/scripts
+       EXAMPLESRC = $(TOP)/examples
+       CONTRIBSRC = $(TOP)/../contrib
+           DOCSRC = $(TOP)/doc
+           RGBSRC = $(TOP)/rgb
+        DEPENDSRC = $(UTILSRC)/makedepend
+         IMAKESRC = $(CONFIGSRC)
+         XAUTHSRC = $(LIBSRC)/Xau
+          XLIBSRC = $(LIBSRC)/X
+           XMUSRC = $(LIBSRC)/Xmu
+       TOOLKITSRC = $(LIBSRC)/Xt
+       AWIDGETSRC = $(LIBSRC)/Xaw
+       OLDXLIBSRC = $(LIBSRC)/oldX
+      XDMCPLIBSRC = $(LIBSRC)/Xdmcp
+      BDFTOSNFSRC = $(FONTSRC)/bdftosnf
+     MKFONTDIRSRC = $(FONTSRC)/mkfontdir
+     EXTENSIONSRC = $(TOP)/extensions
+
+  DEPEXTENSIONLIB =
+     EXTENSIONLIB = -lXext
+
+          DEPXLIB = $(DEPEXTENSIONLIB)
+             XLIB = $(EXTENSIONLIB) -lX11
+
+      DEPXAUTHLIB = $(USRLIBDIR)/libXau.a
+         XAUTHLIB =  -lXau
+
+        DEPXMULIB =
+           XMULIB = -lXmu
+
+       DEPOLDXLIB =
+          OLDXLIB = -loldX
+
+      DEPXTOOLLIB =
+         XTOOLLIB = -lXt
+
+        DEPXAWLIB =
+           XAWLIB = -lXaw
+
+ LINTEXTENSIONLIB = $(USRLIBDIR)/llib-lXext.ln
+         LINTXLIB = $(USRLIBDIR)/llib-lX11.ln
+          LINTXMU = $(USRLIBDIR)/llib-lXmu.ln
+        LINTXTOOL = $(USRLIBDIR)/llib-lXt.ln
+          LINTXAW = $(USRLIBDIR)/llib-lXaw.ln
+
+          DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
+
+         DEPLIBS1 = $(DEPLIBS)
+         DEPLIBS2 = $(DEPLIBS)
+         DEPLIBS3 = $(DEPLIBS)
+
+###########################################################################
+# Imake rules for building libraries, programs, scripts, and data files
+# rules:  $XConsortium: Imake.rules,v 1.67 89/12/18 17:14:15 jim Exp $
+
+###########################################################################
+# start of Imakefile
+
+#  Make WWW under unix for a.n.other unix system (bsd)
+#   Use this as a template
+
+TK_WWW_SOURCE_PATH=/a/dxcern/userd/tbl/hypertext/WWW/TkWWW/Tcl
+
+TK_WWW_INSTALL_PATH=/a/dxcern/userd/tbl/hypertext/WWW/TkWWW/$(WWW_MACH)
+
+TK_WWW_HOME_PAGE=http://www.w3.org/default.html
+TK_WWW_START_PAGE=$(TK_WWW_HOME_PAGE)
+
+CC = gcc -fno-builtin -Wall
+
+CDEBUGFLAGS = -O3 -pipe
+
+COMPATFLAGS =   -I/afs/athena.mit.edu/course/other/cdsdev/www-compat
+CCOPTIONS =
+
+BINDIR = $(TK_WWW_INSTALL_PATH)
+
+# For W3 distribution, machine type for subdirectories
+WWW_MACH = unix_x
+
+# The ASIS repository's name for the machine we are on
+ASIS_MACH = hardware/os
+
+#_________________ OK if normal W3 distribution
+# Where is the WWW source root?
+WWW = ../..
+
+#  Where should temporary (object) files go?
+WTMP = /tmp
+
+#	Common Makefile for W3 Library Code
+#	-----------------------------------
+#
+#	(c) CERN 1990, 1991 -- see Copyright.html for conditions
+#
+# This file should be invariant between systems.
+#	DEPENDENCIES NOT COMPLETE
+
+#
+#	make		Compile and link the software (private version)
+#	make clean	Remove intermediate files
+
+WC = $(WWW)/Library
+CMN = $(WWW)/Library/Implementation/
+
+# Where shall we put the objects and built library?
+
+LOB = $(WTMP)/Library/$(WWW_MACH)
+
+# Bug: This path, if relative, is taken relative to the directory
+# in which this makefile is, not the pwd.  This screws up the
+# recursive invocation
+
+VC = 2.14
+
+CFLAGS2 = $(CFLAGS) -I$(CMN)
+
+CERNLIBBIN = $(WWW)/bin
+
+COMMON = $(LOB)/HTParse.o $(LOB)/HTAccess.o $(LOB)/HTTP.o \
+	$(LOB)/HTFile.o	$(LOB)/HTFTP.o $(LOB)/HTTCP.o \
+	$(LOB)/SGML.o $(LOB)/HTMLDTD.o $(LOB)/HTChunk.o \
+	$(LOB)/HTPlain.o $(LOB)/HTWriter.o $(LOB)/HTFWriter.o \
+	$(LOB)/HTMLGen.o \
+	$(LOB)/HTAtom.o $(LOB)/HTAnchor.o $(LOB)/HTStyle.o \
+	$(LOB)/HTList.o $(LOB)/HTString.o $(LOB)/HTAlert.o \
+	$(LOB)/HTRules.o $(LOB)/HTFormat.o $(LOB)/HTInit.o $(LOB)/HTMIME.o \
+	$(LOB)/HTHistory.o $(LOB)/HTNews.o $(LOB)/HTGopher.o \
+	$(LOB)/HTTelnet.o  $(LOB)/HTWSRC.o $(HTWAIS)
+
+CFILES = $(CMN)HTParse.c $(CMN)HTAccess.c $(CMN)HTTP.c $(CMN)HTFile.c \
+	$(CMN)HTFTP.c   $(CMN)HTTCP.c     $(CMN)SGML.c	\
+	$(CMN)HTMLDTD.c \
+	$(CMN)HTPlain.c	$(CMN)HTWriter.c  $(CMN)HTFWriter.c $(CMN)HTMLGen.c	\
+	$(CMN)HTChunk.c $(CMN)HTAtom.c   $(CMN)HTAnchor.c $(CMN)HTStyle.c \
+	$(CMN)HTList.c  $(CMN)HTString.c $(CMN)HTAlert.c $(CMN)HTRules.c \
+	$(CMN)HTFormat.c $(CMN)HTInit.c $(CMN)HTMIME.c $(CMN)HTHistory.c \
+	$(CMN)HTNews.c  $(CMN)HTGopher.c $(CMN)HTTelnet.c \
+	$(CMN)HTWAIS.c  $(CMN)HTWSRC.c
+
+HFILES = $(CMN)HTParse.h $(CMN)HTAccess.h $(CMN)HTTP.h $(CMN)HTFile.h \
+	$(CMN)HTFTP.h $(CMN)HTTCP.h \
+	$(CMN)SGML.h $(CMN)HTML.h $(CMN)HTMLDTD.h $(CMN)HTChunk.h \
+	$(CMN)HTPlain.h		$(CMN)HTWriter.h \
+	$(CMN)HTFWriter.h 	$(CMN)HTMLGen.h	\
+	$(CMN)HTStream.h \
+	$(CMN)HTAtom.h $(CMN)HTAnchor.h $(CMN)HTStyle.h \
+	$(CMN)HTList.h \
+	$(CMN)HTString.h $(CMN)HTAlert.h $(CMN)HTRules.h \
+	$(CMN)HTFormat.h $(CMN)HTInit.h \
+	$(CMN)HTMIME.h $(CMN)HTHistory.h $(CMN)HTNews.h \
+	$(CMN)HTGopher.h \
+	$(CMN)HTUtils.h $(CMN)tcp.h $(CMN)WWW.h $(CMN)HText.h \
+	$(CMN)HTTelnet.h \
+	$(CMN)HTWAIS.h  $(CMN)HTWSRC.h
+
+SOURCES = $(CFILES) $(HFILES) $(CMN)Version.make $(CMN)CommonMakefile \
+	$(WWW)/README.txt $(WWW)/Copyright.txt $(WWW)/BUILD
+SPECIFIC = $(WWW)/All
+
+#	Library
+#
+#  On SGI, ranlib is unnecessary and does not exist so we ignore errors
+# for that step
+all: $(LOB)/libwww.a
+	$(MV) $(LOB)/libwww.a $(WC)/$(WWW_MACH)
+
+$(LOB)/libwww.a : $(COMMON)
+	ar r $(LOB)/libwww.a $(COMMON)
+	-ranlib $(LOB)/libwww.a
+
+#	Clean up everything generatable except final products
+clean ::
+	$(RM) $(LOB)
+
+#	Clean up everything generatable including final products
+
+cleanall :: clean
+	$(RM) $(LOB)/libwww.a
+
+# 			Common code
+#			-----------
+
+#	Directory for object files - .created checks it exists
+
+OE = $(LOB)/.created
+$(OE) :
+	-mkdir $(WTMP)
+	-mkdir $(WTMP)/Library
+	-mkdir $(WTMP)/Library/$(WWW_MACH)
+	touch $@
+
+$(LOB)/HTList.o : $(OE) $(CMN)HTList.c $(CMN)HTUtils.h $(CMN)HTList.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTList.c
+
+$(LOB)/HTAnchor.o : $(OE) $(CMN)HTAnchor.c $(CMN)HTUtils.h $(CMN)HTList.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTAnchor.c
+
+$(LOB)/HTFormat.o : $(OE) $(CMN)HTFormat.c $(CMN)HTUtils.h $(CMN)HTList.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTFormat.c
+
+$(LOB)/HTInit.o : $(OE) $(CMN)HTInit.c $(CMN)HTUtils.h $(CMN)HTList.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTInit.c
+
+$(LOB)/HTMIME.o : $(OE) $(CMN)HTMIME.c $(CMN)HTUtils.h $(CMN)HTList.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTMIME.c
+
+$(LOB)/HTHistory.o : $(OE) $(CMN)HTHistory.c $(CMN)HTUtils.h $(CMN)HTList.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTHistory.c
+
+$(LOB)/HTNews.o : $(OE) $(CMN)HTNews.c $(CMN)HTUtils.h $(CMN)HTList.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTNews.c
+
+$(LOB)/HTGopher.o : $(OE) $(CMN)HTGopher.c $(CMN)HTUtils.h $(CMN)HTList.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTGopher.c
+
+$(LOB)/HTTelnet.o : $(OE) $(CMN)HTTelnet.c $(CMN)HTUtils.h $(CMN)HTTelnet.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTTelnet.c
+
+$(LOB)/HTStyle.o : $(OE) $(CMN)HTStyle.c $(CMN)HTUtils.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTStyle.c
+
+$(LOB)/HTAtom.o : $(OE) $(CMN)HTAtom.c $(CMN)HTUtils.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTAtom.c
+
+$(LOB)/HTChunk.o : $(OE) $(CMN)HTChunk.c $(CMN)HTUtils.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTChunk.c
+
+$(LOB)/HTString.o : $(OE) $(CMN)HTString.c $(CMN)HTUtils.h $(CMN)Version.make
+	$(CC) -c -o $@ $(CFLAGS2) -DVC=\"$(VC)\" $(CMN)HTString.c
+
+$(LOB)/HTAlert.o : $(OE) $(CMN)HTAlert.c $(CMN)HTUtils.h $(CMN)Version.make
+	$(CC) -c -o $@ $(CFLAGS2) -DVC=\"$(VC)\" $(CMN)HTAlert.c
+
+$(LOB)/HTRules.o : $(OE) $(CMN)HTRules.c $(CMN)HTUtils.h $(CMN)Version.make
+	$(CC) -c -o $@ $(CFLAGS2) -DVC=\"$(VC)\" $(CMN)HTRules.c
+
+$(LOB)/SGML.o : $(OE) $(CMN)SGML.c $(CMN)HTUtils.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)SGML.c
+
+$(LOB)/HTMLGen.o : $(OE) $(CMN)HTMLGen.c $(CMN)HTUtils.h $(CMN)HTMLDTD.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTMLGen.c
+
+$(LOB)/HTMLDTD.o : $(OE) $(CMN)HTMLDTD.c $(CMN)SGML.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTMLDTD.c
+
+$(LOB)/HTPlain.o : $(OE) $(CMN)HTPlain.c $(CMN)HTPlain.h $(CMN)HTStream.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTPlain.c
+
+$(LOB)/HTWAIS.o : $(OE) $(CMN)HTWAIS.c $(CMN)HTUtils.h $(CMN)HTList.h
+	$(CC) -c -o $@ $(CFLAGS2) $(WAISINC) $(CMN)HTWAIS.c
+
+$(LOB)/HTWSRC.o : $(OE) $(CMN)HTWSRC.c $(CMN)HTUtils.h $(CMN)HTList.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTWSRC.c
+
+$(LOB)/HTWriter.o : $(OE) $(CMN)HTWriter.c $(CMN)HTWriter.h $(CMN)HTStream.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTWriter.c
+
+$(LOB)/HTFWriter.o : $(OE) $(CMN)HTFWriter.c $(CMN)HTFWriter.h $(CMN)HTStream.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTFWriter.c
+
+#	Communications & Files
+
+$(LOB)/HTTP.o : $(OE) $(CMN)HTTP.c $(CMN)HTUtils.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTTP.c
+
+$(LOB)/HTTCP.o : $(OE) $(CMN)HTTCP.c $(CMN)HTUtils.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTTCP.c
+
+$(LOB)/HTFile.o : $(OE) $(CMN)HTFile.c $(CMN)HTUtils.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTFile.c
+
+$(LOB)/HTFTP.o : $(OE) $(CMN)HTFTP.c $(CMN)HTUtils.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTFTP.c
+
+$(LOB)/HTAccess.o : $(OE)  $(CMN)HTAccess.c $(CMN)HTUtils.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTAccess.c
+
+$(LOB)/HTParse.o : $(OE) $(CMN)HTParse.c $(CMN)HTUtils.h
+	$(CC) -c -o $@ $(CFLAGS2) $(CMN)HTParse.c
+
+###########################################################################
+# common rules for all Makefiles - do not edit
+
+emptyrule::
+
+clean::
+	$(RM_CMD) \#*
+
+Makefile::
+	-@if [ -f Makefile ]; then \
+	echo "	$(RM) Makefile.bak; $(MV) Makefile Makefile.bak"; \
+	$(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
+	else exit 0; fi
+	$(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
+
+tags::
+	$(TAGS) -w *.[ch]
+	$(TAGS) -xw *.[ch] > TAGS
+
+saber:
+	#load $(ALLDEFINES) $(SRCS)
+
+osaber:
+	#load $(ALLDEFINES) $(OBJS)
+
+###########################################################################
+# empty rules for directories that do not have SUBDIRS - do not edit
+
+install::
+	@echo "install in $(CURRENT_DIR) done"
+
+install.man::
+	@echo "install.man in $(CURRENT_DIR) done"
+
+Makefiles::
+
+includes::
+
+###########################################################################
+# dependencies generated by makedepend
+
diff --git a/WWW/Library/Implementation/SGML.c b/WWW/Library/Implementation/SGML.c
index c18e0680..fedd0f40 100644
--- a/WWW/Library/Implementation/SGML.c
+++ b/WWW/Library/Implementation/SGML.c
@@ -36,10 +36,10 @@
 
 #define FREE(x) if (x) {free(x); x = NULL;}
 
-PUBLIC HTCJKlang HTCJK = NOCJK;		/* CJK enum value.		*/
+PUBLIC HTCJKlang HTCJK = NOCJK; 	/* CJK enum value.		*/
 PUBLIC BOOL HTPassEightBitRaw = FALSE;	/* Pass 161-172,174-255 raw.	*/ 
-PUBLIC BOOL HTPassEightBitNum = FALSE;	/* Pass ^ numeric entities raw.	*/
-PUBLIC BOOL HTPassHighCtrlRaw = FALSE;	/* Pass 127-160,173,&#127; raw.	*/
+PUBLIC BOOL HTPassEightBitNum = FALSE;	/* Pass ^ numeric entities raw. */
+PUBLIC BOOL HTPassHighCtrlRaw = FALSE;	/* Pass 127-160,173,&#127; raw. */
 PUBLIC BOOL HTPassHighCtrlNum = FALSE;	/* Pass &#128;-&#159; raw.	*/
 
 extern int LYlowest_eightbit[];
@@ -72,23 +72,23 @@ struct _HTStream {
 
     CONST HTStreamClass *	isa;		/* inherited from HTStream */
     
-    CONST SGML_dtd 		*dtd;
+    CONST SGML_dtd		*dtd;
     HTStructuredClass		*actions;	/* target class  */
     HTStructured		*target;	/* target object */
 
-    HTTag 			*current_tag;
+    HTTag			*current_tag;
     CONST HTTag 		*unknown_tag;
     BOOL			inSELECT;
     int 			current_attribute_number;
     HTChunk			*string;
     HTElement			*element_stack;
     enum sgml_state { S_text, S_litteral,
-    		S_tag, S_tag_gap, S_attr, S_attr_gap, S_equals, S_value,
+		S_tag, S_tag_gap, S_attr, S_attr_gap, S_equals, S_value,
 		S_ero, S_cro, S_incro,
 		S_exclamation, S_comment, S_doctype, S_marked,
 		S_sgmlent, S_sgmlele, S_sgmlatt,
 		S_squoted, S_dquoted, S_end, S_entity,
-		S_esc,    S_dollar,    S_paren,    S_nonascii_text,
+		S_esc,	  S_dollar,    S_paren,    S_nonascii_text,
 		S_dollar_paren,
 		S_esc_sq, S_dollar_sq, S_paren_sq, S_nonascii_text_sq,
 		S_dollar_paren_sq,
@@ -110,61 +110,93 @@ struct _HTStream {
     BOOL			isHex;
 
     HTParentAnchor *		node_anchor;
-    LYUCcharset	*		UCI;		/* pointer to anchor UCInfo */
-    int				in_char_set;	/* charset we are fed	    */
-    LYUCcharset	*		htmlUCI;	/* anchor UCInfo for target */
-    int				html_char_set;	/* feed it to target stream */
+    LYUCcharset *		inUCI;		/* pointer to anchor UCInfo */
+    int 			inUCLYhndl;	/* charset we are fed	    */
+    LYUCcharset *		outUCI;		/* anchor UCInfo for target */
+    int				outUCLYhndl;	/* charset for target	    */
     char			utf_count;
     UCode_t			utf_char;
-    char 			utf_buf[8];
+    char			utf_buf[8];
     char *			utf_buf_p;
     UCTransParams		T;
-    int			current_tag_charset; /* charset to pass attributes */
+    int 			current_tag_charset; /* charset to pass attributes */
 
     char *			recover;
-    int				recover_index;
+    int 			recover_index;
     char *			include;
-    int				include_index;
+    int 			include_index;
     char *			url;
     char *			csi;
-    int				csi_index;
+    int 			csi_index;
 } ;
 
-
 PRIVATE void set_chartrans_handling ARGS3(
 	HTStream *,		context,
 	HTParentAnchor *,	anchor,
 	int,			chndl)
 {
     if (chndl < 0) {
+	/*
+	**  Nothing was set for the parser in earlier stages,
+	**  so the HTML parser's UCLYhndl should still be it's
+	**  default. - FM
+	*/
 	chndl = HTAnchor_getUCLYhndl(anchor, UCT_STAGE_STRUCTURED);
 	if (chndl < 0)
+	    /*
+	    **  That wasn't set either, so seek the HText default. - FM
+	    */
 	    chndl = HTAnchor_getUCLYhndl(anchor, UCT_STAGE_HTEXT);
 	if (chndl < 0)
+	    /*
+	    **  That wasn't set either, so assume the current display
+	    **  character set. - FM
+	    */
 	    chndl = current_char_set;
-	HTAnchor_setUCInfoStage(anchor, chndl, UCT_STAGE_HTEXT,
+	/*
+	**  Try to set the HText and HTML stages' chartrans info
+	**  with the default lock level (will not be changed if
+	**  it was set previously with a higher lock level). - FM
+	*/
+	HTAnchor_setUCInfoStage(anchor, chndl,
+				UCT_STAGE_HTEXT,
 				UCT_SETBY_DEFAULT);
-	HTAnchor_setUCInfoStage(anchor, chndl, UCT_STAGE_STRUCTURED,
+	HTAnchor_setUCInfoStage(anchor, chndl,
+				UCT_STAGE_STRUCTURED,
 				UCT_SETBY_DEFAULT);
-	context->htmlUCI = HTAnchor_getUCInfoStage(anchor,
+	/*
+	**  Get the chartrans info for output to the HTML parser. - FM
+	*/
+	context->outUCI = HTAnchor_getUCInfoStage(anchor,
 						   UCT_STAGE_STRUCTURED);
-	context->html_char_set = HTAnchor_getUCLYhndl(context->node_anchor,
+	context->outUCLYhndl = HTAnchor_getUCLYhndl(context->node_anchor,
 						      UCT_STAGE_STRUCTURED);
     }
+    /*
+    **  Set the in->out transformation parameters. - FM
+    */
     UCSetTransParams(&context->T,
-		     context->in_char_set, context->UCI,
-		     context->html_char_set, context->htmlUCI);
+		     context->inUCLYhndl, context->inUCI,
+		     context->outUCLYhndl, context->outUCI);
+    /*
+    **  This is intended for passing the SGML parser's input
+    **  charset as an argument in each call to the HTML
+    **  parser's start tag function, but it would be better
+    **  to call a Lynx_HTML_parser function to set an element
+    **  in its HTStructured object, itself, if this were
+    **  needed. - FM
+    */
     if (HTCJK != NOCJK) {
 	context->current_tag_charset = -1;
     } else if (context->T.transp) {
-	context->current_tag_charset = context->in_char_set;
+	context->current_tag_charset = context->inUCLYhndl;
     } else if (context->T.decode_utf8) {
-	context->current_tag_charset = context->in_char_set;
+	context->current_tag_charset = context->inUCLYhndl;
     } else if (context->T.do_8bitraw ||
 	       context->T.use_raw_char_in) {
-	context->current_tag_charset = context->in_char_set;
+	context->current_tag_charset = context->inUCLYhndl;
     } else if (context->T.output_utf8 ||
-    	       context->T.trans_from_uni) {
+	       context->T.trans_from_uni) {
 	context->current_tag_charset = UCGetLYhndl_byMIME("unicode-1-1-utf-8");
     } else {
 	context->current_tag_charset = 0;
@@ -176,7 +208,7 @@ PRIVATE void change_chartrans_handling ARGS1(
 {
     int new_LYhndl = HTAnchor_getUCLYhndl(context->node_anchor,
 					  UCT_STAGE_PARSER);
-    if (new_LYhndl != context->in_char_set &&
+    if (new_LYhndl != context->inUCLYhndl &&
 	new_LYhndl >= 0) {
 	/*
 	 *  Something changed. but ignore if a META wants an unknown charset.
@@ -184,23 +216,22 @@ PRIVATE void change_chartrans_handling ARGS1(
 	LYUCcharset * new_UCI = HTAnchor_getUCInfoStage(context->node_anchor,
 							UCT_STAGE_PARSER);
 	if (new_UCI) {
-            LYUCcharset * next_UCI = HTAnchor_getUCInfoStage(
+	    LYUCcharset * next_UCI = HTAnchor_getUCInfoStage(
 				    context->node_anchor, UCT_STAGE_STRUCTURED
 							    );
 	    int next_LYhndl = HTAnchor_getUCLYhndl(
 				    context->node_anchor, UCT_STAGE_STRUCTURED
 						  );
-	    context->UCI = new_UCI;
-	    context->in_char_set = new_LYhndl;
-	    context->htmlUCI = next_UCI;
-	    context->html_char_set = next_LYhndl;
+	    context->inUCI = new_UCI;
+	    context->inUCLYhndl = new_LYhndl;
+	    context->outUCI = next_UCI;
+	    context->outUCLYhndl = next_LYhndl;
 	    set_chartrans_handling(context,
 				   context->node_anchor, next_LYhndl);
 	}
     }
 }
 
-
 #define PUTC(ch) ((*context->actions->put_character)(context->target, ch))
 #define PUTUTF8(code) (UCPutUtf8_charstring((HTStream *)context->target, \
 		      (putc_func_t*)(context->actions->put_character), code))
@@ -227,24 +258,30 @@ PRIVATE void handle_attribute_name ARGS2(
 
     HTTag * tag = context->current_tag;
     attr * attributes = tag->attributes;
+    int high, low, i, diff;
 
-    int high, low, i, diff;		/* Binary search for attribute name */
+    /*
+    **  Ignore unknown tag. - KW
+    */
     if (tag == context->unknown_tag) {
 	return;
     }
 
+    /*
+    **  Binary search for attribute name.
+    */
     for (low = 0, high = tag->number_of_attributes;
-    	 high > low;
+	 high > low;
 	 diff < 0 ? (low = i+1) : (high = i)) {
 	i = (low + (high-low)/2);
 	diff = strcasecomp(attributes[i].name, s);
 	if (diff == 0) {		/* success: found it */
-    	    context->current_attribute_number = i;
+	    context->current_attribute_number = i;
 	    context->present[i] = YES;
 	    FREE(context->value[i]);
 #ifdef USE_COLOR_STYLE
-	current_is_class=(!strcasecomp("class", s));
-	if (TRACE)
+	    current_is_class=(!strcasecomp("class", s));
+	    if (TRACE)
 		fprintf(stderr, "SGML: found attribute %s, %d\n", s, current_is_class);
 #endif
 	    return;
@@ -269,26 +306,29 @@ PRIVATE void handle_attribute_value ARGS2(
     if (context->current_attribute_number != INVALID) {
 	StrAllocCopy(context->value[context->current_attribute_number], s);
 #ifdef USE_COLOR_STYLE
-        if (current_is_class)
-        {
-                strncpy (class_string, s, TEMPSTRINGSIZE);
-                if (TRACE)
-                fprintf(stderr, "SGML: class is '%s'\n", s);
-        }
-        else
-        {
-                if (TRACE)
-                fprintf(stderr, "SGML: attribute value is '%s'\n", s);
-        }
+	if (current_is_class)
+	{
+	    strncpy (class_string, s, TEMPSTRINGSIZE);
+	    if (TRACE)
+		fprintf(stderr, "SGML: class is '%s'\n", s);
+	}
+	else
+	{
+	    if (TRACE)
+		fprintf(stderr, "SGML: attribute value is '%s'\n", s);
+	}
 #endif
     } else {
-        if (TRACE)
+	if (TRACE)
 	    fprintf(stderr, "SGML: Attribute value %s ignored\n", s);
     }
     context->current_attribute_number = INVALID; /* can't have two assignments! */
 }
 
-/* translate some Unicodes to Lynx special codes and output them. */
+
+/*
+**  translate some Unicodes to Lynx special codes and output them.
+*/
 PRIVATE BOOL put_special_unicodes ARGS2(
 	HTStream *,	context,
 	UCode_t,	code)
@@ -320,7 +360,7 @@ PRIVATE BOOL put_special_unicodes ARGS2(
 	return NO;
     }
     /*
-    **  We have handled it.
+    **	We have handled it.
     */
     return YES;
 }
@@ -339,52 +379,48 @@ PRIVATE BOOL put_special_unicodes ARGS2(
 **
 ** Modified more (for use with Lynx character translation code):
 */
-PRIVATE char replace_buf [64];        /* buffer for replacement strings */
+PRIVATE char replace_buf [64];	      /* buffer for replacement strings */
 PRIVATE BOOL FoundEntity = FALSE;
 
 #define IncludesLatin1Enc(cs) \
 		(cs == 0 || \
-		 (context->htmlUCI && \
-		  (context->htmlUCI->enc & (UCT_CP_SUPERSETOF_LAT1))))
+		 (context->outUCI && \
+		  (context->outUCI->enc & (UCT_CP_SUPERSETOF_LAT1))))
 
 PRIVATE void handle_entity ARGS2(
 	HTStream *,	context,
 	char,		term)
 {
     CONST char ** entities = context->dtd->entity_names;
-#ifdef NOTDEFINED
-    CONST UC_entity_info * extra_entities = context->dtd->extra_entity_info;
-    int rc;
-#endif /* NOTDEFINED */
     UCode_t code;
     long uck;
     CONST char *s = context->string->data;
     int high, low, i, diff;
 
     /*
-    **  Use Lynx special characters for nbsp (160), ensp (8194),
-    **  emsp (8195), thinsp (8201), and shy (173). - FM
+    **	Use Lynx special characters for nbsp (160), ensp (8194),
+    **	emsp (8195), thinsp (8201), and shy (173). - FM
     */
     if (!strcmp(s, "nbsp")) {
-        PUTC(HT_NON_BREAK_SPACE);
+	PUTC(HT_NON_BREAK_SPACE);
 	FoundEntity = TRUE;
 	return;
     }
     if (!strcmp(s, "ensp") || !strcmp(s, "emsp") || !strcmp(s, "thinsp")) {
-        PUTC(HT_EM_SPACE);
+	PUTC(HT_EM_SPACE);
 	FoundEntity = TRUE;
 	return;
     }
     if (!strcmp(s, "shy")) {
-        PUTC(LY_SOFT_HYPHEN);
+	PUTC(LY_SOFT_HYPHEN);
 	FoundEntity = TRUE;
 	return;
     }
 
 #ifdef NOTUSED_FOTEMODS
     /*
-    **  For ndash or endash (8211), and mdash or emdash (8212),
-    **  use an ASCII hyphen (32). - FM
+    **	For ndash or endash (8211), and mdash or emdash (8212),
+    **	use an ASCII hyphen (32). - FM
     */
     if (!strcmp(s, "ndash") ||
 	!strcmp(s, "endash") ||
@@ -397,11 +433,11 @@ PRIVATE void handle_entity ARGS2(
 #endif /* NOTUSED_FOTEMODS */
 
     /*
-    **  Handle all other entities normally. - FM
+    **	Handle all other entities normally. - FM
     */
     FoundEntity = FALSE;
     if ((code = HTMLGetEntityUCValue(s)) != 0) {
-        /*
+	/*
 	**  We got a Unicode value for the entity name.
 	**  Check for special Unicodes. - FM
 	*/
@@ -412,17 +448,17 @@ PRIVATE void handle_entity ARGS2(
 	/*
 	**  Seek a translation from the chartrans tables.
 	*/
-	if ((uck = UCTransUniChar(code, context->html_char_set)) >= 32 &&
+	if ((uck = UCTransUniChar(code, context->outUCLYhndl)) >= 32 &&
 	    uck < 256 &&
 	    (uck < 127 ||
-	     uck >= LYlowest_eightbit[context->html_char_set])) {
-	    if (uck == 160 && IncludesLatin1Enc(context->html_char_set)) {
+	     uck >= LYlowest_eightbit[context->outUCLYhndl])) {
+	    if (uck == 160 && IncludesLatin1Enc(context->outUCLYhndl)) {
 		/*
 		**  Would only happen if some other Unicode
 		**  is mapped to Latin-1 160.
 		*/
 		PUTC(HT_NON_BREAK_SPACE);
-	    } else if (uck == 173 && IncludesLatin1Enc(context->html_char_set)) {
+	    } else if (uck == 173 && IncludesLatin1Enc(context->outUCLYhndl)) {
 		/*
 		**  Would only happen if some other Unicode
 		**  is mapped to Latin-1 173.
@@ -440,7 +476,7 @@ PRIVATE void handle_entity ARGS2(
 		   **  Not found; look for replacement string.
 		   */
 		   (uck = UCTransUniCharStr(replace_buf, 60, code,
-					    context->html_char_set, 0) >= 0)) {
+					    context->outUCLYhndl, 0) >= 0)) {
 	    CONST char *p;
 	    for (p = replace_buf; *p; p++)
 		PUTC(*p);
@@ -457,7 +493,7 @@ PRIVATE void handle_entity ARGS2(
 	/*
 	**  If it's safe ASCII, use it. - FM
 	*/
-        if (code >= 32 && code < 127) {
+	if (code >= 32 && code < 127) {
 	    PUTC(FROMASCII((char)code));
 	    FoundEntity = TRUE;
 	    return;
@@ -465,9 +501,9 @@ PRIVATE void handle_entity ARGS2(
     }
 #ifdef NOTUSED_FOTEMODS
     /*
-    **  Ignore zwnj (8204) and zwj (8205), if we get to here.
-    **  Note that zwnj may have been handled as <WBR>
-    **  by the calling function. - FM
+    **	Ignore zwnj (8204) and zwj (8205), if we get to here.
+    **	Note that zwnj may have been handled as <WBR>
+    **	by the calling function. - FM
     */
     if (!strcmp(s, "zwnj") ||
 	!strcmp(s, "zwj")) {
@@ -479,7 +515,7 @@ PRIVATE void handle_entity ARGS2(
     }
 
     /*
-    **  Ignore lrm (8206), and rlm (8207), if we get to here. - FM
+    **  Ignore lrm (8206), and rln (8207), if we get to here. - FM
     */
     if (!strcmp(s, "lrm") ||
 	!strcmp(s, "rlm")) {
@@ -492,11 +528,11 @@ PRIVATE void handle_entity ARGS2(
 #endif /* NOTUSED_FOTEMODS */
 
     /*
-    **  We haven't succeeded yet, so try the old LYCharSets
-    **  arrays for translation strings. - FM
+    **	We haven't succeeded yet, so try the old LYCharSets
+    **	arrays for translation strings. - FM
     */
     for (low = 0, high = context->dtd->number_of_entities;
-    	 high > low;
+	 high > low;
 	 diff < 0 ? (low = i+1) : (high = i)) {  /* Binary search */
 	i = (low + (high-low)/2);
 	diff = strcmp(entities[i], s);	/* Case sensitive! */
@@ -507,60 +543,8 @@ PRIVATE void handle_entity ARGS2(
 	}
     }
 
-#ifdef NOTDEFINED
-    /* repeat for extra entities if not found... hack... -kw */
-    if (TRACE)
-	fprintf(stderr,
-		"SGML: Unknown entity %s so far, checking extra...\n", s); 
-    for (low = 0, high = context->dtd->number_of_extra_entities;
-    	 high > low;
-	 diff < 0 ? (low = i+1) : (high = i)) {   /* Binary search */
-	i = (low + (high - low)/2);
-	diff = strcmp(extra_entities[i].name, s); /* Case sensitive! */
-	if (diff == 0) {		/* success: found it */
-	    if (put_special_unicodes(context, extra_entities[i].code)) {  
-		FoundEntity = TRUE;
-		return;
-	    } else if (context->T.output_utf8 &&
-		       PUTUTF8(extra_entities[i].code)) {
-		FoundEntity = TRUE;
-		return;
-	    }
-	    if ((rc = UCTransUniChar(extra_entities[i].code,
-				     context->html_char_set)) > 0 &&
-		rc < 256) {
-		/*
-		**  Could do further checks here... - KW
-		*/
-		PUTC(FROMASCII((char)rc));
-		FoundEntity = TRUE;
-		return;
-	    } else if ((rc == -4) &&
-		       /*
-		       **  Not found; look for replacement string.
-		       */
-		       (rc = UCTransUniCharStr(replace_buf, 60,
-					       extra_entities[i].code,
-					       context->html_char_set,
-					       0) >= 0)) {
-		CONST char *p;
-		for (p = replace_buf; *p; p++)
-		    PUTC(*p);
-		FoundEntity = TRUE;
-		return;
-	    } 
-	    rc = (*context->actions->put_entity)(context->target,
-					  i+context->dtd->number_of_entities);
-	    if (rc != HT_CANNOT_TRANSLATE) {
-		FoundEntity = TRUE;
-		return;
-	    }
-	}
-    }
-#endif /* NOTDEFINED */
-
     /*
-    **  If entity string not found, display as text.
+    **	If entity string not found, display as text.
     */
     if (TRACE)
 	fprintf(stderr, "SGML: Unknown entity '%s'\n", s); 
@@ -572,7 +556,7 @@ PRIVATE void handle_entity ARGS2(
 	}
     }
     if (term != '\0')
-        PUTC(term);
+	PUTC(term);
 }
 
 
@@ -588,8 +572,8 @@ PRIVATE void handle_comment ARGS1(
 	fprintf(stderr, "SGML Comment:\n<%s>\n", s);
 
     if (context->csi == NULL &&
-        strncmp(s, "!--#", 4) == 0 &&
-        LYCheckForCSI(context->node_anchor, (char **)&context->url) == TRUE) {
+	strncmp(s, "!--#", 4) == 0 &&
+	LYCheckForCSI(context->node_anchor, (char **)&context->url) == TRUE) {
 	LYDoCSI(context->url, s, (char **)&context->csi);
     }
 
@@ -688,7 +672,7 @@ PRIVATE void handle_sgmlatt ARGS1(
 
 
 PRIVATE BOOL element_valid_within ARGS3(
-    HTTag *, 	new_tag,
+    HTTag *,	new_tag,
     HTTag *,	stacked_tag,
     BOOL,	direct)
 {
@@ -712,11 +696,11 @@ extern BOOL New_DTD;
 typedef enum {
     close_NO	= 0,
     close_error = 1,
-    close_valid	= 2
+    close_valid = 2
 } canclose_t;
 
 PRIVATE canclose_t can_close ARGS2(
-    HTTag *, 	new_tag,
+    HTTag *,	new_tag,
     HTTag *,	stacked_tag)
 {
     if (!stacked_tag)
@@ -730,18 +714,18 @@ PRIVATE canclose_t can_close ARGS2(
 		close_error : close_NO);
 }
 PRIVATE void do_close_stacked ARGS1(
-    HTStream *,	context)
+    HTStream *, context)
 {
     HTElement * stacked = context->element_stack;
     if (!stacked)
-	return;			/* stack was empty */
+	return; 		/* stack was empty */
     if (context->inSELECT && !strcasecomp(stacked->tag->name, "SELECT")) {
 	context->inSELECT = FALSE;
     }
     (*context->actions->end_element)(
-        context->target,
-        stacked->tag - context->dtd->tags,
-        (char **)&context->include);
+	context->target,
+	stacked->tag - context->dtd->tags,
+	(char **)&context->include);
     context->element_stack = stacked->next;
     FREE(stacked);
 }
@@ -818,37 +802,36 @@ PRIVATE void end_element ARGS2(
 #endif /* EXTENDED_HTMLDTD */
 
     /*
-    **  If we are in a SELECT block, ignore anything
-    **  but a SELECT end tag. - FM
+    **	If we are in a SELECT block, ignore anything
+    **	but a SELECT end tag. - FM
     */
     if (context->inSELECT) {
 	if (!strcasecomp(old_tag->name, "SELECT")) {
 	    /*
-	    **  Turn off the inSELECT flag and fall through. - FM
+	    **	Turn off the inSELECT flag and fall through. - FM
 	    */
 	    context->inSELECT = FALSE;
 	} else {
 	    /*
-	    **  Ignore the end tag. - FM
+	    **	Ignore the end tag. - FM
 	    */
 	    if (TRACE) {
 		fprintf(stderr,
 			"SGML: Ignoring end tag </%s> in SELECT block.\n",
-	    		old_tag->name);
+			old_tag->name);
 	    }
 	    return;
 	}
     }
-
     /*
-    **  Handle the end tag. - FM
+    **	Handle the end tag. - FM
     */
     if (TRACE)
-        fprintf(stderr, "SGML: End </%s>\n", old_tag->name);
+	fprintf(stderr, "SGML: End </%s>\n", old_tag->name);
     if (old_tag->contents == SGML_EMPTY) {
-        if (TRACE)
+	if (TRACE)
 	    fprintf(stderr, "SGML: Illegal end tag </%s> found.\n",
-	    		    old_tag->name);
+			    old_tag->name);
 	return;
     }
 #ifdef WIND_DOWN_STACK
@@ -860,15 +843,15 @@ PRIVATE void end_element ARGS2(
 	HTTag * t = N->tag;
 	
 	if (old_tag != t) {		/* Mismatch: syntax error */
-	    if (context->element_stack->next) {	/* This is not the last level */
+	    if (context->element_stack->next) { /* This is not the last level */
 		if (TRACE) fprintf(stderr,
-	    	"SGML: Found </%s> when expecting </%s>. </%s> assumed.\n",
+		"SGML: Found </%s> when expecting </%s>. </%s> assumed.\n",
 		    old_tag->name, t->name, t->name);
 	    } else {			/* last level */
 		if (TRACE) fprintf(stderr,
-	            "SGML: Found </%s> when expecting </%s>. </%s> Ignored.\n",
+		    "SGML: Found </%s> when expecting </%s>. </%s> Ignored.\n",
 		    old_tag->name, t->name, old_tag->name);
-	        return;			/* Ignore */
+		return; 		/* Ignore */
 	    }
 	}
 	
@@ -887,7 +870,7 @@ PRIVATE void end_element ARGS2(
 	
     }
     if (TRACE)
-        fprintf(stderr, "SGML: Extra end tag </%s> found and ignored.\n",
+	fprintf(stderr, "SGML: Extra end tag </%s> found and ignored.\n",
 			old_tag->name);
 }
 
@@ -976,32 +959,32 @@ PRIVATE void start_element ARGS1(
 #endif /* EXTENDED_HTMLDTD */
 
     /*
-    **  If we are not in a SELECT block, check if this is
-    **  a SELECT start tag.  Otherwise (i.e., we are in a
-    **  SELECT block) accept only OPTION as valid, terminate
-    **  the SELECT block if it is any other form-related
-    **  element, and otherwise ignore it. - FM
+    **	If we are not in a SELECT block, check if this is
+    **	a SELECT start tag.  Otherwise (i.e., we are in a
+    **	SELECT block) accept only OPTION as valid, terminate
+    **	the SELECT block if it is any other form-related
+    **	element, and otherwise ignore it. - FM
     */
     if (!context->inSELECT) {
-        /*
+	/*
 	**  We are not in a SELECT block, so check if this starts one. - FM
 	*/
 	if (!strcasecomp(new_tag->name, "SELECT")) {
 	    /*
-	    **  Set the inSELECT flag and fall through. - FM
+	    **	Set the inSELECT flag and fall through. - FM
 	    */
 	    context->inSELECT = TRUE;
 	}
     } else {
-        /*
+	/*
 	**  We are in a SELECT block. - FM
 	*/
-        if (strcasecomp(new_tag->name, "OPTION")) {
+	if (strcasecomp(new_tag->name, "OPTION")) {
 	    /*
-	    **  Ugh, it is not an OPTION. - FM
+	    **	Ugh, it is not an OPTION. - FM
 	    */
 	    if (!strcasecomp(new_tag->name, "INPUT") ||
-	        !strcasecomp(new_tag->name, "TEXTAREA") ||
+		!strcasecomp(new_tag->name, "TEXTAREA") ||
 		!strcasecomp(new_tag->name, "SELECT") ||
 		!strcasecomp(new_tag->name, "BUTTON") ||
 		!strcasecomp(new_tag->name, "FIELDSET") ||
@@ -1018,7 +1001,7 @@ PRIVATE void start_element ARGS1(
 			    new_tag->name);
 		end_element(context, SGMLFindTag(context->dtd, "SELECT"));
 	    } else {
-	        /*
+		/*
 		**  Ignore the start tag. - FM
 		*/
 		if (TRACE)
@@ -1030,26 +1013,25 @@ PRIVATE void start_element ARGS1(
 	}
     }
     /*
-    **  Handle the start tag. - FM
+    **	Handle the start tag. - FM
     */
     if (TRACE)
-        fprintf(stderr, "SGML: Start <%s>\n", new_tag->name);
+	fprintf(stderr, "SGML: Start <%s>\n", new_tag->name);
     (*context->actions->start_element)(
-    	context->target,
+	context->target,
 	new_tag - context->dtd->tags,
 	context->present,
-	(CONST char**) context->value,  /* coerce type for think c */
+	(CONST char**) context->value,	/* coerce type for think c */
 	context->current_tag_charset,
 	(char **)&context->include);
     if (new_tag->contents != SGML_EMPTY) {		/* i.e. tag not empty */
 	HTElement * N = (HTElement *)malloc(sizeof(HTElement));
-        if (N == NULL)
+	if (N == NULL)
 	    outofmem(__FILE__, "start_element");
 	N->next = context->element_stack;
 	N->tag = new_tag;
 	context->element_stack = N;
-    }
-    else if (!strcasecomp(new_tag->name, "META")) {
+    } else if (!strcasecomp(new_tag->name, "META")) {
 	/*
 	**  Check for result of META tag. - KW & FM
 	*/
@@ -1076,7 +1058,7 @@ PUBLIC HTTag * SGMLFindTag ARGS2(
 {
     int high, low, i, diff;
     for (low = 0, high=dtd->number_of_tags;
-    	 high > low;
+	 high > low;
 	 diff < 0 ? (low = i+1) : (high = i)) {  /* Binary search */
 	i = (low + (high-low)/2);
 	diff = strcasecomp(dtd->tags[i].name, string);	/* Case insensitive */
@@ -1085,7 +1067,9 @@ PUBLIC HTTag * SGMLFindTag ARGS2(
 	}
     }
     if (isalpha((unsigned char)string[0])) {
-	/* unrecognized, but may be valid - kw */
+	/*
+	**  Unrecognized, but may be valid. - KW
+	*/
 	return (HTTag *)&HTTag_unrecognized;
     }
     return NULL;
@@ -1097,9 +1081,9 @@ PUBLIC HTTag * SGMLFindTag ARGS2(
 
 
 /*	Could check that we are back to bottom of stack! @@  */
-/* 	Do check! - FM					     */
+/*	Do check! - FM					     */
 /*							     */
-PRIVATE void SGML_free  ARGS1(
+PRIVATE void SGML_free ARGS1(
 	HTStream *,	context)
 {
     int i;
@@ -1107,7 +1091,7 @@ PRIVATE void SGML_free  ARGS1(
     HTTag * t;
 
     /*
-    **  Free the buffers. - FM
+    **	Free the buffers. - FM
     */
     FREE(context->recover);
     FREE(context->url);
@@ -1115,10 +1099,10 @@ PRIVATE void SGML_free  ARGS1(
     FREE(context->include);
 
     /*
-    **  Wind down stack if any elements are open. - FM
+    **	Wind down stack if any elements are open. - FM
     */
     while (context->element_stack) {
-        cur = context->element_stack;
+	cur = context->element_stack;
 	t = cur->tag;
 	context->element_stack = cur->next;	/* Remove from stack */
 	FREE(cur);
@@ -1128,12 +1112,12 @@ PRIVATE void SGML_free  ARGS1(
     }
 
     /*
-    **  Finish off the target. - FM
+    **	Finish off the target. - FM
     */
     (*context->actions->_free)(context->target);
 
     /*
-    **  Free the strings and context structure. - FM
+    **	Free the strings and context structure. - FM
     */
     HTChunkFree(context->string);
     for (i = 0; i < MAX_ATTRIBUTES; i++) 
@@ -1143,18 +1127,18 @@ PRIVATE void SGML_free  ARGS1(
 
 PRIVATE void SGML_abort ARGS2(
 	HTStream *,	context,
-	HTError, 	e)
+	HTError,	e)
 {
     int i;
     HTElement * cur;
 
     /*
-    **  Abort the target. - FM
+    **	Abort the target. - FM
     */
     (*context->actions->_abort)(context->target, e);
 
     /*
-    **  Free the buffers. - FM
+    **	Free the buffers. - FM
     */
     FREE(context->recover);
     FREE(context->include);
@@ -1162,16 +1146,16 @@ PRIVATE void SGML_abort ARGS2(
     FREE(context->csi);
 
     /*
-    **  Free stack memory if any elements were left open. - KW
+    **	Free stack memory if any elements were left open. - KW
     */
     while (context->element_stack) {
-        cur = context->element_stack;
+	cur = context->element_stack;
 	context->element_stack = cur->next;	/* Remove from stack */
 	FREE(cur);
     }
 
     /*
-    **  Free the strings and context structure. - FM
+    **	Free the strings and context structure. - FM
     */
     HTChunkFree(context->string);
     for (i = 0; i < MAX_ATTRIBUTES; i++) 
@@ -1207,18 +1191,19 @@ PRIVATE void SGML_character ARGS2(
 	HTStream *,	context,
 	char,		c_in)
 {
-    CONST SGML_dtd *dtd	=	context->dtd;
-    HTChunk	*string = 	context->string;
+    CONST SGML_dtd *dtd =	context->dtd;
+    HTChunk	*string =	context->string;
     CONST char * EntityName;
     char * p;
     BOOLEAN chk;	/* Helps (?) walk through all the else ifs... */
-    UCode_t clong, uck;	/* Enough bits for UCS4 ... */
+    UCode_t clong, uck; /* Enough bits for UCS4 ... */
     char c;
     char saved_char_in = '\0';
+
     /*
-    **  Now some fun with the preprocessor.
-    **  Use copies for c and unsign_c == clong, so that
-    **  we can revert back to the unchanged c_in. - KW
+    **	Now some fun with the preprocessor.
+    **	Use copies for c and unsign_c == clong, so that
+    **	we can revert back to the unchanged c_in. - KW
     */
 #define unsign_c clong
 
@@ -1232,11 +1217,20 @@ PRIVATE void SGML_character ARGS2(
 	**  From Linux kernel's console.c. - KW
 	*/
 	if ((unsigned char)c > 127) {
+	    /*
+	    **  We have an octet from a multibyte character. - FM
+	    */
 	    if (context->utf_count > 0 && (c & 0xc0) == 0x80) {
 		context->utf_char = (context->utf_char << 6) | (c & 0x3f);
 		context->utf_count--;
-		*(context->utf_buf_p++) = c;
+		*(context->utf_buf_p) = c;
+		(context->utf_buf_p)++;
 		if (context->utf_count == 0) {
+		    /*
+		    **  We have all of the bytes, so terminate
+		    **  the buffer and set 'clong' to the UCode_t
+		    **  value. - FM
+		    */
 		    *(context->utf_buf_p) = '\0';
 		    clong = context->utf_char;
 		    if (clong < 256) {
@@ -1245,13 +1239,17 @@ PRIVATE void SGML_character ARGS2(
 		    goto top1;
 		} else {
 		    /*
-		    **  Wait for more. - KW
+		    **	Wait for more. - KW
 		    */
 		    return;
 		}
 	    } else {
+		/*
+		**  Start handling a new multibyte character. - FM
+		*/
 		context->utf_buf_p = context->utf_buf;
-		*(context->utf_buf_p++) = c;
+		*(context->utf_buf_p) = c;
+		(context->utf_buf_p)++;
 		if ((c & 0xe0) == 0xc0) {
 		    context->utf_count = 1;
 		    context->utf_char = (c & 0x1f);
@@ -1269,7 +1267,7 @@ PRIVATE void SGML_character ARGS2(
 		    context->utf_char = (c & 0x01);
 		} else {
 		    /*
-		    **  Garbage. - KW
+		    **	Garbage. - KW
 		    */
 		    context->utf_count = 0;
 		    context->utf_buf_p = context->utf_buf;
@@ -1282,25 +1280,38 @@ PRIVATE void SGML_character ARGS2(
 	    }
 	} else {
 	    /*
-	    **  Got an ASCII char. - KW
+	    **	Got an ASCII char. - KW
 	    */
 	    context->utf_count = 0;
 	    context->utf_buf_p = context->utf_buf;
 	    *(context->utf_buf_p) = '\0';
-		    /*  goto top;  */
+		    /*	goto top;  */
 	}
     }
 
-#ifdef NOTUSED_FOTEMODS
+#ifdef NOTDEFINED
+    /*
+    **  If we have a koi8-r input and do not have
+    **  koi8-r as the output, save the raw input
+    **  in saved_char_in before we potentially
+    **  convert it to Unicode. - FM
+    */
     if (context->T.strip_raw_char_in)
 	saved_char_in = c;
-#endif
+#endif /* NOTDEFINED */
 
+    /*
+    **  If we want the raw input converted
+    **  to Unicode, try that now. - FM
+    */
     if (context->T.trans_to_uni &&
 	((unsign_c >= 127) ||
 	 (unsign_c < 32 && unsign_c != 0 &&
 	  context->T.trans_C0_to_uni))) {
-	clong = UCTransToUni(c, context->in_char_set);
+	/*
+	**  Convert the octet to Unicode. - FM
+	*/
+	clong = UCTransToUni(c, context->inUCLYhndl);
 	if (clong > 0) {
 	    saved_char_in = c;
 	    if (clong < 256) {
@@ -1314,9 +1325,9 @@ PRIVATE void SGML_character ARGS2(
 	**  This else if may be too ugly to keep. - KW
 	*/
 	if (context->T.trans_from_uni &&
-	    (((clong = UCTransToUni(c, context->in_char_set)) >= 32) ||
+	    (((clong = UCTransToUni(c, context->inUCLYhndl)) >= 32) ||
 	     (context->T.transp &&
-	      (clong = UCTransToUni(c, context->in_char_set)) > 0))) {
+	      (clong = UCTransToUni(c, context->inUCLYhndl)) > 0))) {
 	    saved_char_in = c;
 	    if (clong < 256) {
 		c = FROMASCII((char)clong);
@@ -1326,13 +1337,13 @@ PRIVATE void SGML_character ARGS2(
 	    uck = -1;
 	    if (context->T.transp) {
 		uck = UCTransCharStr(replace_buf, 60, c,
-				     context->in_char_set,
-				     context->in_char_set, NO);
+				     context->inUCLYhndl,
+				     context->inUCLYhndl, NO);
 	    }
 	    if (!context->T.transp || uck < 0) {
 		uck = UCTransCharStr(replace_buf, 60, c,
-				     context->in_char_set,
-				     context->html_char_set, YES);
+				     context->inUCLYhndl,
+				     context->outUCLYhndl, YES);
 	    }
 	    if (uck == 0) {
 		return;
@@ -1355,48 +1366,87 @@ PRIVATE void SGML_character ARGS2(
     }
 
     /*
-    **  At this point we have either unsign_c a.k.a. clong in
-    **  Unicode (and c in latin1 if clong is in the latin1 range),
-    **  or unsign_c and c will have to be passed raw. - KW
+    **	At this point we have either unsign_c a.k.a. clong in
+    **	Unicode (and c in latin1 if clong is in the latin1 range),
+    **	or unsign_c and c will have to be passed raw. - KW
     */
+/*
+**  We jump up to here from below if we have
+**  stuff in the recover, insert, or csi buffers
+**  to process.  We zero saved_char_in, in effect
+**  as a flag that the octet in not that of the
+**  actual call to this function.  This may be OK
+**  for now, for the stuff this function adds to
+**  its recover buffer, but it might not be for
+**  stuff other functions added to the insert or
+**  csi buffer, so bear that in mind. - FM
+*/
 top:
     saved_char_in = '\0';
+/*
+**  We jump to here from above when we don't have
+**  UTF-8 input, haven't converted to Unicode, and
+**  want clong set to the input octet (unsigned)
+**  without zeroing its saved_char_in copy (which
+**  is signed). - FM
+*/
 top0a:
     *(context->utf_buf) = '\0';
     clong = (unsigned char)c;
+/*
+**  We jump to here from above if we have converted
+**  the input, or a multibyte sequence across calls,
+**  to a Unicode value and loaded it into clong (to
+**  which unsign_c has been defined), and from below
+**  when we are recycling a character (e.g., because
+**  it terminated an entity but is not the standard
+**  semi-colon).  The chararcter will already have
+**  been put through the Unicode conversions. - FM
+*/
 top1:
     /*
-    **  Ignore low ISO 646 7-bit control characters
-    **  if HTCJK is not set. - FM
+    **	Ignore low ISO 646 7-bit control characters
+    **	if HTCJK is not set. - FM
     */
     if (unsign_c < 32 &&
 	c != 9 && c != 10 && c != 13 &&
 	HTCJK == NOCJK)
-        return;
+	return;
 
     /*
-    **  Ignore 127 if we don't have HTPassHighCtrlRaw
-    **  or HTCJK set. - FM
+    **	Ignore 127 if we don't have HTPassHighCtrlRaw
+    **	or HTCJK set. - FM
     */
-#define PASSHICTRL (context->T.transp || unsign_c >= LYlowest_eightbit[context->in_char_set])
+#define PASSHICTRL (context->T.transp || \
+                    unsign_c >= LYlowest_eightbit[context->inUCLYhndl])
     if (c == 127 &&
-        !(PASSHICTRL || HTCJK != NOCJK))
-        return;
+	!(PASSHICTRL || HTCJK != NOCJK))
+	return;
 
     /*
-    **  Ignore 8-bit control characters 128 - 159 if
-    **  neither HTPassHighCtrlRaw nor HTCJK is set. - FM
+    **	Ignore 8-bit control characters 128 - 159 if
+    **	neither HTPassHighCtrlRaw nor HTCJK is set. - FM
     */
     if (unsign_c > 127 && unsign_c < 160 &&
 	!(PASSHICTRL || HTCJK != NOCJK))
-        return;
+	return;
 
     /*
-    **  Handle character based on context->state.
+    **	Handle character based on context->state.
     */
     switch(context->state) {
 
     case S_in_kanji:
+        /*
+	**  Note that if we don't have a CJK input, then this
+	**  is not the second byte of a CJK di-byte, and we're
+	**  trashing the input.  That's why 8-bit characters
+	**  followed by, for example, '<' can cause the tag to
+	**  be treated as text, not markup.  We could try to deal
+	**  with it by holding each first byte and then checking
+	**  byte pairs, but that doesn't seem worth the overhead
+	**  (see below). - FM
+	*/
 	context->state = S_text;
 	PUTC(c);
 	break;
@@ -1404,42 +1454,48 @@ top1:
     case S_text:
 	if (HTCJK != NOCJK && (c & 0200) != 0) {
 	    /*
-	    **  Setting up for Kanji multibyte handling (based on
-	    **  Takuya ASADA's (asada@three-a.co.jp) CJK Lynx). - FM
+	    **	Setting up for Kanji multibyte handling (based on
+	    **  Takuya ASADA's (asada@three-a.co.jp) CJK Lynx).
+	    **  Note that if the input is not in fact CJK, the
+	    **  next byte also will be mishandled, as explained
+	    **  above.  Toggle raw mode off in such cases, or
+	    **  select the "7 bit approximations" display
+	    **  character set, which is largely equivalent
+	    **  to having raw mode off with CJK. - FM
 	    */
 	    context->state = S_in_kanji;
 	    PUTC(c);
 	    break;
 	} else if (HTCJK != NOCJK && c == '\033') {
 	    /*
-	    **  Setting up for CJK escape sequence handling (based on
-	    **  Takuya ASADA's (asada@three-a.co.jp) CJK Lynx). - FM
+	    **	Setting up for CJK escape sequence handling (based on
+	    **	Takuya ASADA's (asada@three-a.co.jp) CJK Lynx). - FM
 	    */
 	    context->state = S_esc;
 	    PUTC(c);
 	    break;
 	}
-	if (c == '&' && unsign_c < 127  &&
+	if (c == '&' && unsign_c < 127	&&
 	    (!context->element_stack ||
 	     (context->element_stack->tag  &&
 	      (context->element_stack->tag->contents == SGML_MIXED ||
 	       context->element_stack->tag->contents == SGML_PCDATA ||
 	       context->element_stack->tag->contents == SGML_RCDATA)))) {
 	    /*
-	    **  Setting up for possible entity, without the leading '&'. - FM
+	    **	Setting up for possible entity, without the leading '&'. - FM
 	    */
 	    string->size = 0;
 	    context->state = S_ero;
 	} else if (c == '<' && unsign_c < 127) {
 	    /*
-	    **  Setting up for possible tag. - FM
+	    **	Setting up for possible tag. - FM
 	    */
 	    string->size = 0;
 	    context->state = (context->element_stack &&
-	    		context->element_stack->tag  &&
+			context->element_stack->tag  &&
 			context->element_stack->tag->contents == SGML_LITTERAL)
-	      				 ?
-	    		      S_litteral : S_tag;
+					 ?
+			      S_litteral : S_tag;
 #define PASS8859SPECL context->T.pass_160_173_raw
 	/*
 	**  Convert 160 (nbsp) to Lynx special character if
@@ -1447,19 +1503,23 @@ top1:
 	*/
 	} else if (unsign_c == 160 &&
 		   !(PASS8859SPECL || HTCJK != NOCJK)) {
-            PUTC(HT_NON_BREAK_SPACE);
+	    PUTC(HT_NON_BREAK_SPACE);
 	/*
 	**  Convert 173 (shy) to Lynx special character if
 	**  neither HTPassHighCtrlRaw nor HTCJK is set. - FM
 	*/
 	} else if (unsign_c == 173 &&
 		   !(PASS8859SPECL || HTCJK != NOCJK)) {
-            PUTC(LY_SOFT_HYPHEN);
-
+	    PUTC(LY_SOFT_HYPHEN);
+	/*
+	**  Handle the case in which we think we have a character
+	**  which doesn't need further processing (e.g., a koi8-r
+	**  input for a koi8-r output). - FM
+	*/
 	} else if (context->T.use_raw_char_in && saved_char_in) {
 	    /*
-	    **  Only if the original character is still in saved_char_in,
-	    **  otherwise we may be iterating from a goto top. - KW
+	    **	Only if the original character is still in saved_char_in,
+	    **	otherwise we may be iterating from a goto top. - KW
 	    */
 	    PUTC(saved_char_in);
 	    saved_char_in = '\0';
@@ -1468,27 +1528,31 @@ top1:
  ******************************************************************/  
 	} else if ((chk = (context->T.trans_from_uni && unsign_c >= 160)) &&
 		   (uck = UCTransUniChar(unsign_c,
-					 context->html_char_set)) >= 32 &&
+					 context->outUCLYhndl)) >= 32 &&
 		   uck < 256) {
 	    if (TRACE) {
 		fprintf(stderr,
 			"UCTransUniChar returned 0x%.2lX:'%c'.\n",
 			uck, FROMASCII((char)uck));
 	    }
-	    c = (char)(uck & 0xff);
-	    PUTC(c);
-	} else if (chk && ((uck == -4 ||
-			    (context->T.repl_translated_C0 &&
-			     uck > 0 && uck < 32))) &&
+	    /*
+	    **  We got one octet from the conversions, so use it. - FM
+	    */
+	    PUTC(FROMASCII((char)uck));
+	} else if (chk &&
+		   ((uck == -4 ||
+		    (context->T.repl_translated_C0 &&
+		     uck > 0 && uck < 32))) &&
 		   /*
 		   **  Not found; look for replacement string. - KW
 		   */
 		   (uck = UCTransUniCharStr(replace_buf, 60, clong,
-					    context->html_char_set,
+					    context->outUCLYhndl,
 					    0) >= 0)) { 
 	    /*
-	    **  No further tests for valididy - assume that whoever
-	    **  defined replacement strings knew what she was doing. - KW
+	    **  Got a replacement string.
+	    **	No further tests for valididy - assume that whoever
+	    **	defined replacement strings knew what she was doing. - KW
 	    */
 	    for (p = replace_buf; *p; p++)
 		PUTC(*p);
@@ -1503,10 +1567,11 @@ top1:
 	**  have the "ISO Latin 1" character set selected,
 	**  back translate for our character set. - FM
 	*/
-#define PASSHI8BIT (HTPassEightBitRaw || (context->T.do_8bitraw && !context->T.trans_from_uni))
+#define PASSHI8BIT (HTPassEightBitRaw || \
+		    (context->T.do_8bitraw && !context->T.trans_from_uni))
 	} else if (unsign_c > 160 && unsign_c < 256 &&
 		   !(PASSHI8BIT || HTCJK != NOCJK) &&
-		   !IncludesLatin1Enc(context->html_char_set)) {
+		   !IncludesLatin1Enc(context->outUCLYhndl)) {
 	    int i;
 	    int value;
 
@@ -1514,44 +1579,55 @@ top1:
 	    value = (int)(unsign_c - 160);
 	    EntityName = HTMLGetEntityName(value);
 	    for (i = 0; EntityName[i]; i++)
-	        HTChunkPutc(string, EntityName[i]);
+		HTChunkPutc(string, EntityName[i]);
 	    HTChunkTerminate(string);
 	    handle_entity(context, '\0');
 	    string->size = 0;
 	    if (!FoundEntity)
-	        PUTC(';');
+		PUTC(';');
 	/*
-	**  If we get to here and have an ASCII char, pass the character.
+	**  If we get to here and have an ASCII char,
+	**  pass the character. - KW
 	*/
 	} else if (unsign_c < 127 && unsign_c > 0) {
 	    PUTC(c);
 	/*
 	**  If we get to here, and should have translated,
 	**  translation has failed so far. - KW
+	**
+	**  We should have sent UTF-8 output to the parser
+	**  already, but what the heck, try again. - FM
 	*/
 	} else if (context->T.output_utf8 && *context->utf_buf) {
 	    for (p = context->utf_buf; *p; p++)
 		PUTC(*p);
 	    context->utf_buf_p = context->utf_buf;
 	    *(context->utf_buf_p) = '\0';
-
-#ifdef NOTUSED_FOTEMODS
+#ifdef NOTDEFINED
+	/*
+	**  Check for a strippable koi8-r 8-bit character. - FM
+	*/
 	} else if (context->T.strip_raw_char_in && saved_char_in &&
 		   ((unsigned char)saved_char_in >= 0xc0) &&
 		   ((unsigned char)saved_char_in < 255)) {
 	    /*
-	    **  KOI8 special: strip high bit, gives (somewhat) readable
-	    **  ASCII or KOI7 - it was constructed that way! - KW
+	    **	KOI8 special: strip high bit, gives (somewhat) readable
+	    **	ASCII or KOI7 - it was constructed that way! - KW
 	    */
-	    PUTC((char)(saved_char_in & 0x7f));
+	    PUTC(((char)(saved_char_in & 0x7f)));
 	    saved_char_in = '\0';
-#endif /* NOTUSED_FOTEMODS */
+#endif /* NOTDEFINED */
+	/*
+	**  If we don't actually want the character,
+	**  make it safe and output that now. - FM
+	*/
 	} else if ((unsigned char)c <
-			LYlowest_eightbit[context->html_char_set] ||
+			LYlowest_eightbit[context->outUCLYhndl] ||
 		   (context->T.trans_from_uni && !HTPassEightBitRaw)) {
 	    sprintf(replace_buf, "U%.2lX", unsign_c);
-	    for (p = replace_buf; *p; p++)
+	    for (p = replace_buf; *p; p++) {
 		PUTC(*p);
+	    }
 	/*
 	**  If we get to here, pass the character. - FM
 	*/
@@ -1561,8 +1637,8 @@ top1:
 	break;
 
     /*	
-    **  In litteral mode, waits only for specific end tag (for
-    **  compatibility with old servers, and for Lynx). - FM
+    **	In litteral mode, waits only for specific end tag (for
+    **	compatibility with old servers, and for Lynx). - FM
     */
     case S_litteral:
 	HTChunkPutc(string, c);
@@ -1572,10 +1648,10 @@ top1:
 	    int i;
 	    
 	    /*
-	    **  If complete match, end litteral.
+	    **	If complete match, end litteral.
 	    */
 	    if ((c == '>') &&
-	        (!context->element_stack->tag->name[string->size-2])) {
+		(!context->element_stack->tag->name[string->size-2])) {
 		end_element(context, context->element_stack->tag);
 		string->size = 0;
 		context->current_attribute_number = INVALID;
@@ -1583,7 +1659,7 @@ top1:
 		break;
 	    }
 	    /*
-	    **  If Mismatch: recover string.
+	    **	If Mismatch: recover string.
 	    */
 	    PUTC('<');
 	    for (i = 0; i < string->size; i++)	/* recover */
@@ -1591,15 +1667,15 @@ top1:
 	    string->size = 0;
 	    context->state = S_text;	
 	}
-        break;
+	break;
 
     /*
-    **  Character reference (numeric entity) or named entity.
+    **	Character reference (numeric entity) or named entity.
     */
     case S_ero:
-   	if (c == '#') {
+	if (c == '#') {
 	    /*
-	    **  Setting up for possible numeric entity.
+	    **	Setting up for possible numeric entity.
 	    */
 	    context->state = S_cro;  /* &# is Char Ref Open */ 
 	    break;
@@ -1607,26 +1683,26 @@ top1:
 	context->state = S_entity;   /* Fall through! */
 	
     /*
-    **  Handle possible named entity.
+    **	Handle possible named entity.
     */
     case S_entity:
 	if (unsign_c < 127 && (string->size ?
 		  isalnum((unsigned char)c) : isalpha((unsigned char)c))) {
 	    /*
-	    **  Accept valid ASCII character. - FM
+	    **	Accept valid ASCII character. - FM
 	    */
 	    HTChunkPutc(string, c);
 	} else if (string->size == 0) {
 	    /*
-	    **  It was an ampersand that's just text, so output
-	    **  the ampersand and recycle this character. - FM
+	    **	It was an ampersand that's just text, so output
+	    **	the ampersand and recycle this character. - FM
 	    */
 	    PUTC('&');
 	    context->state = S_text;
 	    goto top1;
 	} else {
 	    /*
-	    **  Terminate entity name and try to handle it. - FM
+	    **	Terminate entity name and try to handle it. - FM
 	    */
 	    HTChunkTerminate(string);
 	    if (!strcmp(string->data, "zwnj") &&
@@ -1662,18 +1738,18 @@ top1:
 	    string->size = 0;
 	    context->state = S_text;
 	    /*
-	    **  Don't eat the terminator if we didn't find the
-	    **  entity name and therefore sent the raw string
-	    **  via handle_entity(), or if the terminator is
-	    **  not the "standard" semi-colon for HTML. - FM
+	    **	Don't eat the terminator if we didn't find the
+	    **	entity name and therefore sent the raw string
+	    **	via handle_entity(), or if the terminator is
+	    **	not the "standard" semi-colon for HTML. - FM
 	    */
 	    if (!FoundEntity || c != ';')
-	        goto top1;
+		goto top1;
 	}
 	break;
 
     /*
-    **  Check for a numeric entity.
+    **	Check for a numeric entity.
     */
     case S_cro:
 	if (unsign_c < 127 && TOLOWER((unsigned char)c) == 'x') {
@@ -1681,15 +1757,15 @@ top1:
 	    context->state = S_incro;
 	} else if (unsign_c < 127 && isdigit((unsigned char)c)) {
 	    /*
-	    **  Accept only valid ASCII digits. - FM
+	    **	Accept only valid ASCII digits. - FM
 	    */
 	    HTChunkPutc(string, c);	/* accumulate a character NUMBER */
 	    context->isHex = FALSE;
 	    context->state = S_incro;
 	} else if (string->size == 0) {
 	    /*
-	    **  No 'x' or digit following the "&#" so recover
-	    **  them and recycle the character. - FM
+	    **	No 'x' or digit following the "&#" so recover
+	    **	them and recycle the character. - FM
 	    */
 	    PUTC('&');
 	    PUTC('#');
@@ -1699,20 +1775,20 @@ top1:
 	break;
 
     /*
-    **  Handle a numeric entity.
+    **	Handle a numeric entity.
     */
     case S_incro:
 	if ((unsign_c < 127) &&
 	    (context->isHex ? isxdigit((unsigned char)c) :
 			      isdigit((unsigned char)c))) {
 	    /*
-	    **  Accept only valid hex or ASCII digits. - FM
+	    **	Accept only valid hex or ASCII digits. - FM
 	    */
 	    HTChunkPutc(string, c);	/* accumulate a character NUMBER */
 	} else if (string->size == 0) {
 	    /*
-	    **  No hex digit following the "&#x" so recover
-	    **  them and recycle the character. - FM
+	    **	No hex digit following the "&#x" so recover
+	    **	them and recycle the character. - FM
 	    */
 	    PUTC('&');
 	    PUTC('#');
@@ -1722,134 +1798,135 @@ top1:
 	    goto top1;
 	} else {
 	    /*
-	    **  Terminate the numeric entity and try to handle it. - FM
+	    **	Terminate the numeric entity and try to handle it. - FM
 	    */
-	    int value, i;
+	    UCode_t code;
+	    int i;
 	    HTChunkTerminate(string);
-	    if ((context->isHex ? sscanf(string->data, "%x", &value) :
-				  sscanf(string->data, "%d", &value)) == 1) {
+	    if ((context->isHex ? sscanf(string->data, "%lx", &code) :
+				  sscanf(string->data, "%ld", &code)) == 1) {
 #ifdef NOTUSED_FOTEMODS
 		if ((code == 1) ||
 		    (code > 129 && code < 156)) {
 		    /*
-		    **  Assume these are MicroSoft code points,
-		    **  inflicted on us by FrontPage. - FM
+		    **	Assume these are MicroSoft code points,
+		    **	inflicted on us by FrontPage. - FM
 		    */
 		    switch (code) {
 			case 1:
 			    /*
-			    **  WHITE SMILING FACE
+			    **	WHITE SMILING FACE
 			    */
 			    code = 0x263a;
 			    break;
 			case 130:
 			    /*
-			    **  SINGLE LOW-9 QUOTATION MARK (sbquo)
+			    **	SINGLE LOW-9 QUOTATION MARK (sbquo)
 			    */
 			    code = 0x201a;
 			    break;
 			case 132:
 			    /*
-			    **  DOUBLE LOW-9 QUOTATION MARK (bdquo)
+			    **	DOUBLE LOW-9 QUOTATION MARK (bdquo)
 			    */
 			    code = 0x201e;
 			    break;
 			case 133:
 			    /*
-			    **  HORIZONTAL ELLIPSIS (hellip)
+			    **	HORIZONTAL ELLIPSIS (hellip)
 			    */
 			    code = 0x2026;
 			    break;
 			case 134:
 			    /*
-			    **  DAGGER (dagger)
+			    **	DAGGER (dagger)
 			    */
 			    code = 0x2020;
 			    break;
 			case 135:
 			    /*
-			    **  DOUBLE DAGGER (Dagger)
+			    **	DOUBLE DAGGER (Dagger)
 			    */
 			    code = 0x2021;
 			    break;
 			case 137:
 			    /*
-			    **  PER MILLE SIGN (permil)
+			    **	PER MILLE SIGN (permil)
 			    */
 			    code = 0x2030;
 			    break;
 			case 139:
 			    /*
-			    **  SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-			    **  (lsaquo)
+			    **	SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+			    **	(lsaquo)
 			    */
 			    code = 0x2039;
 			    break;
 			case 145:
 			    /*
-			    **  LEFT SINGLE QUOTATION MARK (lsquo)
+			    **	LEFT SINGLE QUOTATION MARK (lsquo)
 			    */
 			    code = 0x2018;
 			    break;
 			case 146:
 			    /*
-			    **  RIGHT SINGLE QUOTATION MARK (rsquo)
+			    **	RIGHT SINGLE QUOTATION MARK (rsquo)
 			    */
 			    code = 0x2019;
 			    break;
 			case 147:
 			    /*
-			    **  LEFT DOUBLE QUOTATION MARK (ldquo)
+			    **	LEFT DOUBLE QUOTATION MARK (ldquo)
 			    */
 			    code = 0x201c;
 			    break;
 			case 148:
 			    /*
-			    **  RIGHT DOUBLE QUOTATION MARK (rdquo)
+			    **	RIGHT DOUBLE QUOTATION MARK (rdquo)
 			    */
 			    code = 0x201d;
 			    break;
 			case 149:
 			    /*
-			    **  BULLET (bull)
+			    **	BULLET (bull)
 			    */
 			    code = 0x2022;
 			    break;
 			case 150:
 			    /*
-			    **  EN DASH (ndash)
+			    **	EN DASH (ndash)
 			    */
 			    code = 0x2013;
 			    break;
 			case 151:
 			    /*
-			    **  EM DASH (mdash)
+			    **	EM DASH (mdash)
 			    */
 			    code = 0x2014;
 			    break;
 			case 152:
 			    /*
-			    **  SMALL TILDE (tilde)
+			    **	SMALL TILDE (tilde)
 			    */
 			    code = 0x02dc;
 			    break;
 			case 153:
 			    /*
-			    **  TRADE MARK SIGN (trade)
+			    **	TRADE MARK SIGN (trade)
 			    */
 			    code = 0x2122;
 			    break;
 			case 155:
 			    /*
-			    **  SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-			    **  (rsaquo)
+			    **	SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+			    **	(rsaquo)
 			    */
 			    code = 0x203a;
 			    break;
 			default:
 			    /*
-			    **  Do not attempt a conversion
-			    **  to valid Unicode values.
+			    **	Do not attempt a conversion
+			    **	to valid Unicode values.
 			    */
 			    break;
 		    }
@@ -1858,22 +1935,22 @@ top1:
 		/*
 		**  Check for special values. - FM
 		*/
-		if ((value == 8204) &&
+		if ((code == 8204) &&
 		    (!context->element_stack ||
 		     (context->element_stack->tag  &&
 		      context->element_stack->tag->contents == SGML_MIXED))) {
 		    /*
-		    **  Handle zwnj (8204) as <WBR>. - FM
+		    **	Handle zwnj (8204) as <WBR>. - FM
 		    */
 		    char temp[8];
 
 		    if (TRACE) {
-		        fprintf(stderr,
+			fprintf(stderr,
       "SGML_character: Handling '8204' (zwnj) reference as 'WBR' element.\n");
 		    }
 		    /*
-		    **  Include the terminator if it is not
-		    **  the standard semi-colon. - FM
+		    **	Include the terminator if it is not
+		    **	the standard semi-colon. - FM
 		    */
 		    if (c != ';') {
 			sprintf(temp, "<WBR>%c", c); 
@@ -1881,8 +1958,8 @@ top1:
 			sprintf(temp, "<WBR>"); 
 		    }
 		    /*
-		    **  Add the replacement string to the
-		    **  recover buffer for processing. - FM
+		    **	Add the replacement string to the
+		    **	recover buffer for processing. - FM
 		    */
 		    if (context->recover == NULL) {
 			StrAllocCopy(context->recover, temp);
@@ -1895,13 +1972,13 @@ top1:
 		    context->state = S_text;
 		    break;
 		}
-		if (value == 160 || value == 173) {
+		if (code == 160 || code == 173) {
 		    /*
-		    **  We *always* should interpret these as Latin1 here!
-		    **  Output the Lynx special character for nbsp and
-		    **  then recycle the terminator or break. - FM
+		    **	We *always* should interpret these as Latin1 here!
+		    **	Output the Lynx special character for nbsp and
+		    **	then recycle the terminator or break. - FM
 		    */
-		    if (value == 160) {
+		    if (code == 160) {
 			PUTC(HT_NON_BREAK_SPACE);
 		    } else {
 			PUTC(LY_SOFT_HYPHEN);
@@ -1914,22 +1991,22 @@ top1:
 		    break;
 		}
 		/*
-		 *  Seek a translation from the chartrans tables.
-		 */
-		if ((uck = UCTransUniChar(value,
-					  context->html_char_set)) >= 32 &&
+		**  Seek a translation from the chartrans tables.
+		*/
+		if ((uck = UCTransUniChar(code,
+					  context->outUCLYhndl)) >= 32 &&
 		    uck < 256 &&
 		    (uck < 127 ||
-		     uck >= LYlowest_eightbit[context->html_char_set])) {
+		     uck >= LYlowest_eightbit[context->outUCLYhndl])) {
 		    if (uck == 160 &&
-			IncludesLatin1Enc(context->html_char_set)) {
+			IncludesLatin1Enc(context->outUCLYhndl)) {
 			/*
 			**  Would only happen if some other Unicode
 			**  is mapped to Latin-1 160.
 			*/
 			PUTC(HT_NON_BREAK_SPACE);
 		    } else if (uck == 173 &&
-			IncludesLatin1Enc(context->html_char_set)) {
+			IncludesLatin1Enc(context->outUCLYhndl)) {
 			/*
 			**  Would only happen if some other Unicode
 			**  is mapped to Latin-1 173.
@@ -1944,26 +2021,23 @@ top1:
 			   /*
 			   **  Not found; look for replacement string.
 			   */
-			   (uck = UCTransUniCharStr(replace_buf, 60, value,
-						    context->html_char_set,
+			   (uck = UCTransUniCharStr(replace_buf, 60, code,
+						    context->outUCLYhndl,
 						    0) >= 0)) { 
 		    for (p = replace_buf; *p; p++) {
 			PUTC(*p);
 		    }
-	      } else if (context->T.output_utf8 &&
-			 PUTUTF8(value)) {
-		  /* do nothing more */ ;
-	      } else 
-	        if (value == 8482) {
-		    /*
-		    **  trade  Handle as named entity. - FM
-		    */
+		/*
+		**  If we're displaying UTF-8, try that now. - FM
+		*/
+		} else if (context->T.output_utf8 && PUTUTF8(code)) {
+		    ;  /* do nothing more */
+		/*
+		**  Handle trade as named entity. - FM
+		*/
+		} else if (code == 8482) {
 		    string->size = 0;
-		    HTChunkPutc(string, 't');
-		    HTChunkPutc(string, 'r');
-		    HTChunkPutc(string, 'a');
-		    HTChunkPutc(string, 'd');
-		    HTChunkPutc(string, 'e');
+		    HTChunkPuts(string, "trade");
 		    context->isHex = FALSE;
 		    context->state = S_entity;
 		    goto top1;
@@ -1975,13 +2049,13 @@ top1:
 		**  seek a translation for that. - FM
 		*/
 		} else if ((chk = ((code > 255) &&
-				   context->html_char_set !=
+				   context->outUCLYhndl !=
 				   UCGetLYhndl_byMIME("us-ascii"))) &&
 			   (uck = UCTransUniChar(code,
 				   UCGetLYhndl_byMIME("us-ascii")))
 				  >= 32 && uck < 127) {
 		    /*
-		    **  Got an ASCII character (yippey). - FM
+		    **	Got an ASCII character (yippey). - FM
 		    */
 		    PUTC(((char)(uck & 0xff)));
 		} else if ((chk && uck == -4) &&
@@ -1990,7 +2064,7 @@ top1:
 						UCGetLYhndl_byMIME("us-ascii"),
 						    0) >= 0)) {
 		    /*
-		    **  Got a replacement string (yippey). - FM
+		    **	Got a replacement string (yippey). - FM
 		    */
 		    for (p = replace_buf; *p; p++)
 			PUTC(*p);
@@ -2014,7 +2088,7 @@ top1:
 			goto top1;
 		    break;
 #endif /* NOTUSED_FOTEMODS */
-	        /*
+		/*
 		**  Show the numeric entity if we get to here
 		**  and the value:
 		**   (1) Is greater than 255 (but use ASCII characters
@@ -2027,21 +2101,21 @@ top1:
 		**	 set.
 		**  - FM
 		*/
-		} else if ((value > 255) ||
-			   (value < 32 &&
-			    value != 9 && value != 10 && value != 13 &&
+		} else if ((code > 255) ||
+			   (code < 32 &&
+			    code != 9 && code != 10 && code != 13 &&
 			    HTCJK == NOCJK) ||
-			   (value == 127 &&
+			   (code == 127 &&
 			    !(HTPassHighCtrlRaw || HTCJK != NOCJK)) ||
-			   (value > 127 && value < 160 &&
+			   (code > 127 && code < 160 &&
 			    !HTPassHighCtrlNum)) {
-		    if (value == 8194 || value == 8195 || value == 8201) {
-		        /*
+		    if (code == 8194 || code == 8195 || code == 8201) {
+			/*
 			**  ensp, emsp or thinsp. - FM
 			*/
 			PUTC(HT_EM_SPACE);
-		    } else if (value == 8211 || value == 8212) {
-		        /*
+		    } else if (code == 8211 || code == 8212) {
+			/*
 			**  ndash or mdash. - FM
 			*/
 			PUTC('-');
@@ -2065,18 +2139,19 @@ top1:
 			context->state = S_text;
 			goto top1;
 		    }
-		} else if (value < 161 || HTPassEightBitNum ||
-			   IncludesLatin1Enc(context->html_char_set)) {
+		} else if (code < 161 ||
+			   HTPassEightBitNum ||
+			   IncludesLatin1Enc(context->outUCLYhndl)) {
 		    /*
-		    **  No conversion needed. - FM
+		    **	No conversion needed. - FM
 		    */
-	            PUTC(FROMASCII((char)value));
+		    PUTC(FROMASCII((char)code));
 		} else {
 		    /*
-		    **  Convert and handle as named entity. - FM
+		    **  Handle as named entity. - FM
 		    */
-		    value -= 160;
-		    EntityName = HTMLGetEntityName(value);
+		    code -= 160;
+		    EntityName = HTMLGetEntityName(code);
 		    if (EntityName && EntityName[0] != '\0') {
 			string->size = 0;
 			for (i = 0; EntityName[i]; i++)
@@ -2091,7 +2166,7 @@ top1:
 			    PUTC(';');
 			}
 		    } else {
-		        /*
+			/*
 			**  Our conversion failed, so recover the "&#"
 			**  and digit(s), and recycle the terminator. - FM
 			*/
@@ -2120,11 +2195,11 @@ top1:
 		**  Don't eat the terminator if it's not
 		**  the "standard" semi-colon for HTML. - FM
 		*/
-		if (c != ';')
-
+		if (c != ';') {
 		    goto top1;
+		}
 	    } else {
-	        /*
+		/*
 		**  Not an entity, and don't know why not, so add
 		**  the terminator to the string, output the "&#"
 		**  or "&#x", and process the string via the recover
@@ -2133,8 +2208,8 @@ top1:
 		string->size--;
 		HTChunkPutc(string, c);
 		HTChunkTerminate(string);
-	        PUTC('&');
-	        PUTC('#');
+		PUTC('&');
+		PUTC('#');
 		if (context->isHex) {
 		    PUTC('x');
 		    context->isHex = FALSE;
@@ -2154,19 +2229,19 @@ top1:
 	break;
 
     /*
-    **  Tag
+    **	Tag
     */	    
-    case S_tag:					/* new tag */
+    case S_tag: 				/* new tag */
 	if (unsign_c < 127 && (string->size ?
 		  isalnum((unsigned char)c) : isalpha((unsigned char)c))) {
 	    /*
-	    **  Add valid ASCII character. - FM
+	    **	Add valid ASCII character. - FM
 	    */
 	    HTChunkPutc(string, c);
-        } else if (c == '!' && !string->size) {	/* <! */
+	} else if (c == '!' && !string->size) { /* <! */
 	    /*
-	    **  Terminate and set up for possible comment,
-	    **  identifier, declaration, or marked section. - FM
+	    **	Terminate and set up for possible comment,
+	    **	identifier, declaration, or marked section. - FM
 	    */
 	    context->state = S_exclamation;
 	    context->lead_exclamation = TRUE;
@@ -2174,29 +2249,29 @@ top1:
 	    context->first_bracket = FALSE;
 	    HTChunkPutc(string, c);
 	    break;
-        } else if (!string->size &&
+	} else if (!string->size &&
 		   (unsign_c <= 160 &&
 		    (c != '/' && c != '?' && c != '_' && c != ':'))) {
 	    /*
-	    **  '<' must be followed by an ASCII letter to be a valid
-	    **  start tag.  Here it isn't, nor do we have a '/' for an
-	    **  end tag, nor one of some other characters with a
-	    **  special meaning for SGML or which are likely to be legal
-	    **  Name Start characters in XML or some other extension.
-	    **  So recover the '<' and following character as data. - FM & KW
+	    **	'<' must be followed by an ASCII letter to be a valid
+	    **	start tag.  Here it isn't, nor do we have a '/' for an
+	    **	end tag, nor one of some other characters with a
+	    **	special meaning for SGML or which are likely to be legal
+	    **	Name Start characters in XML or some other extension.
+	    **	So recover the '<' and following character as data. - FM & KW
 	    */
 	    context->state = S_text;
 	    PUTC('<');
 	    goto top1;
 	} else {				/* End of tag name */
 	    /*
-	    **  Try to handle tag. - FM
+	    **	Try to handle tag. - FM
 	    */
 	    HTTag * t;
 	    if (c == '/') {
 		if (TRACE)
 		    if (string->size!=0)
-		        fprintf(stderr,"SGML: `<%s/' found!\n", string->data);
+			fprintf(stderr,"SGML: `<%s/' found!\n", string->data);
 		context->state = S_end;
 		break;
 	    }
@@ -2211,7 +2286,7 @@ top1:
 		*/
 		int i;
 		PUTC('<');
-		for (i = 0; i < 3; i++)	/* recover */
+		for (i = 0; i < 3; i++) /* recover */
 		    PUTC(string->data[i]);
 		PUTC(c);
 		if (TRACE)
@@ -2230,18 +2305,20 @@ top1:
 		if (TRACE)
 		    fprintf(stderr, "SGML: *** Unknown element %s\n",
 			    string->data);
-		/*  Fall through and treat like valid tag for attribute
-		    parsing - kw */
+		/*
+		**  Fall through and treat like valid
+		**  tag for attribute parsing. - KW
+		*/
 	    }
 	    context->current_tag = t;
 	    
 	    /* 
-	    **  Clear out attributes.
+	    **	Clear out attributes.
 	    */
 	    {
-	        int i;
-	        for (i = 0; i < context->current_tag->number_of_attributes; i++)
-	    	    context->present[i] = NO;
+		int i;
+		for (i = 0; i < context->current_tag->number_of_attributes; i++)
+		    context->present[i] = NO;
 	    }
 	    string->size = 0;
 	    context->current_attribute_number = INVALID;
@@ -2251,15 +2328,15 @@ top1:
 		    start_element(context);
 		context->state = S_text;
 	    } else {
-	        context->state = S_tag_gap;
+		context->state = S_tag_gap;
 	    }
 	}
 	break;
 
     case S_exclamation:
-        if (context->lead_exclamation && c == '-') {
+	if (context->lead_exclamation && c == '-') {
 	    /*
-	    **  Set up for possible comment. - FM
+	    **	Set up for possible comment. - FM
 	    */
 	    context->lead_exclamation = FALSE;
 	    context->first_dash = TRUE;
@@ -2268,7 +2345,7 @@ top1:
 	}
 	if (context->lead_exclamation && c == '[') {
 	    /*
-	    **  Set up for possible marked section. - FM
+	    **	Set up for possible marked section. - FM
 	    */
 	    context->lead_exclamation = FALSE;
 	    context->first_bracket = TRUE;
@@ -2279,7 +2356,7 @@ top1:
 	}
 	if (context->first_dash && c == '-') {
 	    /*
-	    **  Set up to handle comment. - FM
+	    **	Set up to handle comment. - FM
 	    */
 	    context->lead_exclamation = FALSE;
 	    context->first_dash = FALSE;
@@ -2292,7 +2369,7 @@ top1:
 	context->first_dash = FALSE;
 	if (c == '>') {
 	    /*
-	    **  Try to handle identifier. - FM
+	    **	Try to handle identifier. - FM
 	    */
 	    HTChunkTerminate(string);
 	    handle_identifier(context);
@@ -2302,17 +2379,17 @@ top1:
 	}
 	if (WHITE(c)) {
 	    if (string->size == 8 &&
-	        !strncasecomp(string->data, "!DOCTYPE", 8)) {
+		!strncasecomp(string->data, "!DOCTYPE", 8)) {
 		/*
 		**  Set up for DOCTYPE declaration. - FM
 		*/
 		HTChunkPutc(string, c);
 		context->doctype_bracket = FALSE;
 		context->state = S_doctype;
-	        break;
+		break;
 	    }
 	    if (string->size == 7 &&
-	        !strncasecomp(string->data, "!ENTITY", 7)) {
+		!strncasecomp(string->data, "!ENTITY", 7)) {
 		/*
 		**  Set up for ENTITY declaration. - FM
 		*/
@@ -2323,7 +2400,7 @@ top1:
 		break;
 	    }
 	    if (string->size == 8 &&
-	        !strncasecomp(string->data, "!ELEMENT", 8)) {
+		!strncasecomp(string->data, "!ELEMENT", 8)) {
 		/*
 		**  Set up for ELEMENT declaration. - FM
 		*/
@@ -2334,7 +2411,7 @@ top1:
 		break;
 	    }
 	    if (string->size == 8 &&
-	        !strncasecomp(string->data, "!ATTLIST", 8)) {
+		!strncasecomp(string->data, "!ATTLIST", 8)) {
 		/*
 		**  Set up for ATTLIST declaration. - FM
 		*/
@@ -2349,12 +2426,12 @@ top1:
 	break;
 
     case S_comment:		/* Expecting comment. - FM */
-        if (historical_comments) {
+	if (historical_comments) {
 	    /*
-	    **  Any '>' terminates. - FM
+	    **	Any '>' terminates. - FM
 	    */
 	    if (c == '>') {
-	        HTChunkTerminate(string);
+		HTChunkTerminate(string);
 		handle_comment(context);
 		string->size = 0;
 		context->end_comment = FALSE;
@@ -2365,7 +2442,7 @@ top1:
 	    HTChunkPutc(string, c);
 	    break;
 	}
-        if (!context->first_dash && c == '-') {
+	if (!context->first_dash && c == '-') {
 	    HTChunkPutc(string, c);
 	    context->first_dash = TRUE;
 	    break;
@@ -2374,18 +2451,18 @@ top1:
 	    HTChunkPutc(string, c);
 	    context->first_dash = FALSE;
 	    if (!context->end_comment)
-	        context->end_comment = TRUE;
+		context->end_comment = TRUE;
 	    else if (!minimal_comments)
-	        /*
+		/*
 		**  Validly treat '--' pairs as successive comments
 		**  (for minimal, any "--WHITE>" terminates). - FM
 		*/
-	        context->end_comment = FALSE;
+		context->end_comment = FALSE;
 	    break;
 	}
 	if (context->end_comment && c == '>') {
 	    /*
-	    **  Terminate and handle the comment. - FM
+	    **	Terminate and handle the comment. - FM
 	    */
 	    HTChunkTerminate(string);
 	    handle_comment(context);
@@ -2402,10 +2479,10 @@ top1:
 	break;
 
     case S_doctype:		/* Expecting DOCTYPE. - FM */
-        if (context->doctype_bracket) {
+	if (context->doctype_bracket) {
 	    HTChunkPutc(string, c);
 	    if (c == ']')
-	        context->doctype_bracket = FALSE;
+		context->doctype_bracket = FALSE;
 	    break;
 	}
 	if (c == '[' && WHITE(string->data[string->size - 1])) {
@@ -2424,7 +2501,7 @@ top1:
 	break;
 
     case S_marked:		/* Expecting marked section. - FM */
-        if (context->first_bracket && c == '[') {
+	if (context->first_bracket && c == '[') {
 	    HTChunkPutc(string, c);
 	    context->first_bracket = FALSE;
 	    context->second_bracket = TRUE;
@@ -2447,7 +2524,7 @@ top1:
 	break;
 
     case S_sgmlent:		/* Expecting ENTITY. - FM */
-        if (!context->first_dash && c == '-') {
+	if (!context->first_dash && c == '-') {
 	    HTChunkPutc(string, c);
 	    context->first_dash = TRUE;
 	    break;
@@ -2456,9 +2533,9 @@ top1:
 	    HTChunkPutc(string, c);
 	    context->first_dash = FALSE;
 	    if (!context->end_comment)
-	        context->end_comment = TRUE;
+		context->end_comment = TRUE;
 	    else
-	        context->end_comment = FALSE;
+		context->end_comment = FALSE;
 	    break;
 	}
 	if (context->end_comment && c == '>') {
@@ -2475,7 +2552,7 @@ top1:
 	break;
 
     case S_sgmlele:		/* Expecting ELEMENT. - FM */
-        if (!context->first_dash && c == '-') {
+	if (!context->first_dash && c == '-') {
 	    HTChunkPutc(string, c);
 	    context->first_dash = TRUE;
 	    break;
@@ -2484,9 +2561,9 @@ top1:
 	    HTChunkPutc(string, c);
 	    context->first_dash = FALSE;
 	    if (!context->end_comment)
-	        context->end_comment = TRUE;
+		context->end_comment = TRUE;
 	    else
-	        context->end_comment = FALSE;
+		context->end_comment = FALSE;
 	    break;
 	}
 	if (context->end_comment && c == '>') {
@@ -2503,7 +2580,7 @@ top1:
 	break;
 
     case S_sgmlatt:		/* Expecting ATTLIST. - FM */
-        if (!context->first_dash && c == '-') {
+	if (!context->first_dash && c == '-') {
 	    HTChunkPutc(string, c);
 	    context->first_dash = TRUE;
 	    break;
@@ -2512,9 +2589,9 @@ top1:
 	    HTChunkPutc(string, c);
 	    context->first_dash = FALSE;
 	    if (!context->end_comment)
-	        context->end_comment = TRUE;
+		context->end_comment = TRUE;
 	    else
-	        context->end_comment = FALSE;
+		context->end_comment = FALSE;
 	    break;
 	}
 	if (context->end_comment && c == '>') {
@@ -2533,9 +2610,9 @@ top1:
     case S_tag_gap:		/* Expecting attribute or '>' */
 	if (WHITE(c))
 	    break;		/* Gap between attributes */
-	if (c == '>') {		/* End of tag */
+	if (c == '>') { 	/* End of tag */
 	    if (context->current_tag->name)
-	    	start_element(context);
+		start_element(context);
 	    context->state = S_text;
 	    break;
 	}
@@ -2543,7 +2620,7 @@ top1:
 	context->state = S_attr; /* Get attribute */
 	break;
 	
-   				/* accumulating value */
+				/* accumulating value */
     case S_attr:
 	if (WHITE(c) || (c == '>') || (c == '=')) {	/* End of word */
 	    HTChunkTerminate(string);
@@ -2564,9 +2641,9 @@ top1:
     case S_attr_gap:		/* Expecting attribute or '=' or '>' */
 	if (WHITE(c))
 	    break;		/* Gap after attribute */
-	if (c == '>') {		/* End of tag */
+	if (c == '>') { 	/* End of tag */
 	    if (context->current_tag->name)
-	        start_element(context);
+		start_element(context);
 	    context->state = S_text;
 	    break;
 	} else if (c == '=') {
@@ -2580,11 +2657,11 @@ top1:
     case S_equals:		/* After attr = */ 
 	if (WHITE(c))
 	    break;		/* Before attribute value */
-	if (c == '>') {		/* End of tag */
+	if (c == '>') { 	/* End of tag */
 	    if (TRACE)
-	        fprintf(stderr, "SGML: found = but no value\n");
+		fprintf(stderr, "SGML: found = but no value\n");
 	    if (context->current_tag->name)
-	        start_element(context);
+		start_element(context);
 	    context->state = S_text;
 	    break;
 	    
@@ -2617,11 +2694,13 @@ top1:
 	    HTChunkPuts(string, context->utf_buf);
 	    context->utf_buf_p = context->utf_buf;
 	    *(context->utf_buf_p) = '\0';
-	} else if (HTCJK == NOCJK && (context->T.output_utf8 ||
-				      context->T.trans_from_uni)) {
-	    if (clong == 0xfffd && saved_char_in && HTPassEightBitRaw &&
+	} else if (HTCJK == NOCJK &&
+		   (context->T.output_utf8 ||
+		    context->T.trans_from_uni)) {
+	    if (clong == 0xfffd && saved_char_in &&
+		HTPassEightBitRaw &&
 		(unsigned char)saved_char_in >=
-		LYlowest_eightbit[context->html_char_set]) {
+		LYlowest_eightbit[context->outUCLYhndl]) {
 		HTChunkPutUtf8Char(string,
 				   (0xf000 | (unsigned char)saved_char_in));
 	    } else {
@@ -2642,8 +2721,8 @@ top1:
 	    context->state = S_tag_gap;
 	} else if (c == '\033') {
 	    /*
-	    **  Setting up for possible single quotes in CJK escape
-	    **  sequences. - Takuya ASADA (asada@three-a.co.jp)
+	    **	Setting up for possible single quotes in CJK escape
+	    **	sequences. - Takuya ASADA (asada@three-a.co.jp)
 	    */
 	    context->state = S_esc_sq;
 	    HTChunkPutc(string, c);
@@ -2652,11 +2731,13 @@ top1:
 	    HTChunkPuts(string, context->utf_buf);
 	    context->utf_buf_p = context->utf_buf;
 	    *(context->utf_buf_p) = '\0';
-	} else if (HTCJK == NOCJK && (context->T.output_utf8 ||
-				      context->T.trans_from_uni)) {
-	    if (clong == 0xfffd && saved_char_in && HTPassEightBitRaw &&
+	} else if (HTCJK == NOCJK &&
+		   (context->T.output_utf8 ||
+		    context->T.trans_from_uni)) {
+	    if (clong == 0xfffd && saved_char_in &&
+		HTPassEightBitRaw &&
 		(unsigned char)saved_char_in >=
-		LYlowest_eightbit[context->html_char_set]) {
+		LYlowest_eightbit[context->outUCLYhndl]) {
 		HTChunkPutUtf8Char(string,
 				   (0xf000 | (unsigned char)saved_char_in));
 	    } else {
@@ -2670,7 +2751,7 @@ top1:
 	break;
 	
     case S_dquoted:		/* Quoted attribute value */
-	if (c == '"' ||		/* Valid end of attribute value */
+	if (c == '"' || 	/* Valid end of attribute value */
 	    (soft_dquotes &&	/*  If emulating old Netscape bug, treat '>' */
 	     c == '>')) {	/*  as a co-terminator of dquoted and tag    */
 	    HTChunkTerminate(string) ;
@@ -2678,11 +2759,11 @@ top1:
 	    string->size = 0;
 	    context->state = S_tag_gap;
 	    if (c == '>')	/* We emulated the Netscape bug, so we go  */
-	        goto top1;	/* back and treat it as the tag terminator */
+		goto top1;	/* back and treat it as the tag terminator */
 	} else if (c == '\033') {
 	    /*
-	    **  Setting up for possible double quotes in CJK escape
-	    **  sequences. - Takuya ASADA (asada@three-a.co.jp)
+	    **	Setting up for possible double quotes in CJK escape
+	    **	sequences. - Takuya ASADA (asada@three-a.co.jp)
 	    */
 	    context->state = S_esc_dq;
 	    HTChunkPutc(string, c);
@@ -2691,11 +2772,13 @@ top1:
 	    HTChunkPuts(string, context->utf_buf);
 	    context->utf_buf_p = context->utf_buf;
 	    *(context->utf_buf_p) = '\0';
-	} else if (HTCJK == NOCJK && (context->T.output_utf8 ||
-				      context->T.trans_from_uni)) {
-	    if (clong == 0xfffd && saved_char_in && HTPassEightBitRaw &&
+	} else if (HTCJK == NOCJK &&
+		   (context->T.output_utf8 ||
+		    context->T.trans_from_uni)) {
+	    if (clong == 0xfffd && saved_char_in &&
+		HTPassEightBitRaw &&
 		(unsigned char)saved_char_in >=
-		LYlowest_eightbit[context->html_char_set]) {
+		LYlowest_eightbit[context->outUCLYhndl]) {
 		HTChunkPutUtf8Char(string,
 				   (0xf000 | (unsigned char)saved_char_in));
 	    } else {
@@ -2708,15 +2791,16 @@ top1:
 	}
 	break;
 	
-    case S_end:					/* </ */
-	if (unsign_c < 127 && isalnum((unsigned char)c))
+    case S_end: 				/* </ */
+	if (unsign_c < 127 && isalnum((unsigned char)c)) {
 	    HTChunkPutc(string, c);
-	else {				/* End of end tag name */
-	    HTTag * t=0;
-	    HTChunkTerminate(string) ;
-	    if (!*string->data)	{	/* Empty end tag */
+	} else {				/* End of end tag name */
+	    HTTag * t = 0;
+
+	    HTChunkTerminate(string);
+	    if (!*string->data) {	/* Empty end tag */
 		if (context->element_stack)
-	            t = context->element_stack->tag;
+		    t = context->element_stack->tag;
 	    } else {
 		t = SGMLFindTag(dtd, string->data);
 	    }
@@ -2725,7 +2809,7 @@ top1:
 		    fprintf(stderr, "Unknown end tag </%s>\n", string->data); 
 	    } else {
 		BOOL tag_OK = (c == '>' || WHITE(c));
-	        context->current_tag = t;
+		context->current_tag = t;
 #ifdef EXTENDED_HTMLDTD
 		/*
 		**  Just handle ALL end tags normally :-) - kw
@@ -2747,11 +2831,11 @@ top1:
 		     !strcasecomp(string->data, "TBODY") ||
 		     !strcasecomp(string->data, "COLGROUP"))) {
 		    /*
-		    **  Don't treat these end tags as invalid,
-		    **  nor act on them. - FM
+		    **	Don't treat these end tags as invalid,
+		    **	nor act on them. - FM
 		    */
 		    if (TRACE)
-		        fprintf(stderr,
+			fprintf(stderr,
 				"SGML: `</%s%c' found!  Ignoring it.\n",
 				string->data, c);
 		    string->size = 0;
@@ -2776,29 +2860,29 @@ top1:
 			    !strcasecomp(string->data, "TT") ||
 			    !strcasecomp(string->data, "U"))) {
 		    /*
-		    **  Handle end tags for container elements declared
-		    **  as SGML_EMPTY to prevent "expected tag substitution"
-		    **  but still processed via HTML_end_element() in HTML.c
-		    **  with checks there to avoid throwing the HTML.c stack
-		    **  out of whack (Ugh, what a hack! 8-). - FM
+		    **	Handle end tags for container elements declared
+		    **	as SGML_EMPTY to prevent "expected tag substitution"
+		    **	but still processed via HTML_end_element() in HTML.c
+		    **	with checks there to avoid throwing the HTML.c stack
+		    **	out of whack (Ugh, what a hack! 8-). - FM
 		    */
 		    if (context->inSELECT) {
-		        /*
+			/*
 			**  We are in a SELECT block. - FM
 			*/
 			if (strcasecomp(string->data, "FORM")) {
 			    /*
-			    **  It is not at FORM end tag, so ignore it. - FM
+			    **	It is not at FORM end tag, so ignore it. - FM
 			    */
 			    if (TRACE) {
 				fprintf(stderr,
 			    "SGML: Ignoring end tag </%s> in SELECT block.\n",
-	    				string->data);
+					string->data);
 			    }
 			} else {
 			    /*
-			    **  End the SELECT block and then
-			    **  handle the FORM end tag. - FM
+			    **	End the SELECT block and then
+			    **	handle the FORM end tag. - FM
 			    */
 			    if (TRACE) {
 				fprintf(stderr,
@@ -2806,14 +2890,14 @@ top1:
 					string->data);
 			    }
 			    end_element(context,
-			    		SGMLFindTag(context->dtd, "SELECT"));
+					SGMLFindTag(context->dtd, "SELECT"));
 			    if (TRACE) {
 				fprintf(stderr,
 					"SGML: End </%s>\n", string->data);
 			    }
 			    (*context->actions->end_element)
 				(context->target,
-			 	 (context->current_tag - context->dtd->tags),
+				 (context->current_tag - context->dtd->tags),
 				 (char **)&context->include);
 			}
 		    } else if (!strcasecomp(string->data, "P")) {
@@ -2855,7 +2939,7 @@ top1:
 		    break;
 		} else {
 		    /*
-		    **  Handle all other end tags normally. - FM
+		    **	Handle all other end tags normally. - FM
 		    */
 		    end_element( context, context->current_tag);
 		}
@@ -2868,13 +2952,13 @@ top1:
 		    fprintf(stderr,"SGML: `</%s%c' found!\n", string->data, c);
 		context->state = S_junk_tag;
 	    } else {
-	        context->state = S_text;
+		context->state = S_text;
 	    }
 	}
 	break;
 
 
-    case S_esc:		/* Expecting '$'or '(' following CJK ESC. */
+    case S_esc: 	/* Expecting '$'or '(' following CJK ESC. */
 	if (c == '$') {
 	    context->state = S_dollar;
 	} else if (c == '(') {
@@ -3022,10 +3106,10 @@ top1:
     } /* switch on context->state */
 
     /*
-    **  Check whether we've added anything to the recover buffer. - FM
+    **	Check whether we've added anything to the recover buffer. - FM
     */
     if (context->recover != NULL) {
-        if (context->recover[context->recover_index] == '\0') {
+	if (context->recover[context->recover_index] == '\0') {
 	    FREE(context->recover);
 	    context->recover_index = 0;
 	} else {
@@ -3036,11 +3120,11 @@ top1:
     }
 
     /*
-    **  Check whether an external function has added
-    **  anything to the include buffer. - FM
+    **	Check whether an external function has added
+    **	anything to the include buffer. - FM
     */
     if (context->include != NULL) {
-        if (context->include[context->include_index] == '\0') {
+	if (context->include[context->include_index] == '\0') {
 	    FREE(context->include);
 	    context->include_index = 0;
 	} else {
@@ -3051,11 +3135,11 @@ top1:
     }
 
     /*
-    **  Check whether an external function has added
-    **  anything to the csi buffer. - FM
+    **	Check whether an external function has added
+    **	anything to the csi buffer. - FM
     */
     if (context->csi != NULL) {
-        if (context->csi[context->csi_index] == '\0') {
+	if (context->csi[context->csi_index] == '\0') {
 	    FREE(context->csi);
 	    context->csi_index = 0;
 	} else {
@@ -3073,7 +3157,7 @@ PRIVATE void SGML_string ARGS2(
 {
     CONST char *p;
     for (p = str; *p; p++)
-        SGML_character(context, *p);
+	SGML_character(context, *p);
 }
 
 
@@ -3085,7 +3169,7 @@ PRIVATE void SGML_write ARGS3(
     CONST char *p;
     CONST char *e = str+l;
     for (p = str; p < e; p++)
-        SGML_character(context, *p);
+	SGML_character(context, *p);
 }
 
 /*_______________________________________________________________________
@@ -3109,35 +3193,35 @@ PUBLIC CONST HTStreamClass SGMLParser =
 **
 ** On entry,
 **	dtd		represents the DTD, along with
-**	actions		is the sink for the data as a set of routines.
+**	actions 	is the sink for the data as a set of routines.
 **
 */
 
 PUBLIC HTStream* SGML_new  ARGS3(
 	CONST SGML_dtd *,	dtd,
 	HTParentAnchor *,	anchor,
-	HTStructured *,		target)
+	HTStructured *, 	target)
 {
     int i;
     HTStream* context = (HTStream *) malloc(sizeof(*context));
     if (!context)
-        outofmem(__FILE__, "SGML_begin");
+	outofmem(__FILE__, "SGML_begin");
 
     context->isa = &SGMLParser;
     context->string = HTChunkCreate(128);	/* Grow by this much */
     context->dtd = dtd;
     context->target = target;
     context->actions = (HTStructuredClass*)(((HTStream*)target)->isa);
-    					/* Ugh: no OO */
+					/* Ugh: no OO */
     context->unknown_tag = &HTTag_unrecognized;
     context->state = S_text;
-    context->element_stack = 0;			/* empty */
+    context->element_stack = 0; 		/* empty */
     context->inSELECT = FALSE;
 #ifdef CALLERDATA		  
     context->callerData = (void*) callerData;
 #endif /* CALLERDATA */
     for (i = 0; i < MAX_ATTRIBUTES; i++)
-        context->value[i] = 0;
+	context->value[i] = 0;
 
     context->lead_exclamation = FALSE;
     context->first_dash = FALSE;
@@ -3147,21 +3231,24 @@ PUBLIC HTStream* SGML_new  ARGS3(
     context->second_bracket = FALSE;
     context->isHex = FALSE;
 
-    context->node_anchor = anchor; /*only for chartrans info. could be NULL? */
-
+    context->node_anchor = anchor; /* Could be NULL? */
     context->utf_count = 0;
     context->utf_char = 0;
     context->utf_buf[0] = context->utf_buf[6] = '\0';
     context->utf_buf_p = context->utf_buf;
-
     UCTransParams_clear(&context->T);
-    context->in_char_set = HTAnchor_getUCLYhndl(anchor, UCT_STAGE_PARSER);
-    if (context->in_char_set < 0) {
+    context->inUCLYhndl = HTAnchor_getUCLYhndl(anchor,
+					       UCT_STAGE_PARSER);
+    if (context->inUCLYhndl < 0) {
 	HTAnchor_copyUCInfoStage(anchor,
-				 UCT_STAGE_PARSER, UCT_STAGE_MIME, -1);
-	context->in_char_set = HTAnchor_getUCLYhndl(anchor, UCT_STAGE_PARSER);
+				 UCT_STAGE_PARSER,
+				 UCT_STAGE_MIME,
+				 -1);
+	context->inUCLYhndl = HTAnchor_getUCLYhndl(anchor,
+						   UCT_STAGE_PARSER);
     }
-    context->UCI=HTAnchor_getUCInfoStage(anchor, UCT_STAGE_PARSER);
+    context->inUCI = HTAnchor_getUCInfoStage(anchor,
+					     UCT_STAGE_PARSER);
     set_chartrans_handling(context, anchor, -1);
 
     context->recover = NULL;
@@ -3196,7 +3283,7 @@ WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES.
 /////////////////////////////////////////////////////////////////////////
 Content-Type:	program/C; charset=US-ASCII
 Program:	SJIS.c
-Author:		Yutaka Sato <ysato@etl.go.jp>
+Author: 	Yutaka Sato <ysato@etl.go.jp>
 Description:
 History:
 	930923	extracted from codeconv.c of cosmos
@@ -3206,8 +3293,8 @@ History:
 PUBLIC int TREAT_SJIS = 1;
 
 PUBLIC void JISx0201TO0208_EUC ARGS4(
-	register unsigned char,		IHI,
-	register unsigned char,		ILO,
+	register unsigned char, 	IHI,
+	register unsigned char, 	ILO,
 	register unsigned char *,	OHI,
 	register unsigned char *,	OLO)
 {
@@ -3237,8 +3324,8 @@ PUBLIC void JISx0201TO0208_EUC ARGS4(
 }
 
 PUBLIC unsigned char * SJIS_TO_JIS1 ARGS3(
-	register unsigned char,		HI,
-	register unsigned char,		LO,
+	register unsigned char, 	HI,
+	register unsigned char, 	LO,
 	register unsigned char *,	JCODE)
 {
     HI -= (HI <= 0x9F) ? 0x71 : 0xB1;
@@ -3249,7 +3336,7 @@ PUBLIC unsigned char * SJIS_TO_JIS1 ARGS3(
 	LO -= 0x7D;
 	HI++;
     } else {
-        LO -= 0x1F;
+	LO -= 0x1F;
     }
     JCODE[0] = HI;
     JCODE[1] = LO;
@@ -3257,8 +3344,8 @@ PUBLIC unsigned char * SJIS_TO_JIS1 ARGS3(
 }
 
 PUBLIC unsigned char * JIS_TO_SJIS1 ARGS3(
-	register unsigned char,		HI,
-	register unsigned char,		LO,
+	register unsigned char, 	HI,
+	register unsigned char, 	LO,
 	register unsigned char *,	SJCODE)
 {
     if (HI & 1)
@@ -3287,7 +3374,7 @@ PUBLIC unsigned char * EUC_TO_SJIS1 ARGS3(
 }
 
 PUBLIC void JISx0201TO0208_SJIS ARGS3(
-	register unsigned char,		I,
+	register unsigned char, 	I,
 	register unsigned char *,	OHI,
 	register unsigned char *,	OLO)
 {
@@ -3346,7 +3433,7 @@ PUBLIC unsigned char * EUC_TO_SJIS ARGS2(
 		dp += 2;
 		sp += 2;
 	    } else {
-	        sp++;
+		sp++;
 	    }
 	} else {
 	    *dp++ = *sp++;
@@ -3398,7 +3485,7 @@ PUBLIC unsigned char * EUC_TO_JIS ARGS4(
     }
 
     if (dp)
-        *dp = 0;
+	*dp = 0;
     return dst;
 }
 
@@ -3407,7 +3494,7 @@ PUBLIC unsigned char * TO_EUC ARGS2(
 	unsigned char *,	euc)
 {
     register unsigned char *s, *d, c, jis_stat;
-    register to1B, to2B;
+    register int to1B, to2B;
     register int in_sjis = 0;
 
     s = jis;
@@ -3447,7 +3534,7 @@ PUBLIC unsigned char * TO_EUC ARGS2(
 	    if (jis_stat && (0x20 < c)) {
 		*d++ = jis_stat | c;
 	    } else {
-	        *d++ = c;
+		*d++ = c;
 	    }
 	}
     }
diff --git a/WWW/Library/Implementation/UCDefs.h b/WWW/Library/Implementation/UCDefs.h
index 876fc075..ac2dc3bc 100644
--- a/WWW/Library/Implementation/UCDefs.h
+++ b/WWW/Library/Implementation/UCDefs.h
@@ -1,4 +1,4 @@
-/* Definitions for EXP_CHARTRANS */
+/* Definitions for Unicode character-translations */
 
 #ifndef UCDEFS_H
 #define UCDEFS_H
@@ -53,7 +53,6 @@ typedef struct _LYUCcharset {
 
 #define UCT_R_ASCII UCT_R_7BITINV | UCT_R_7BITNAT /*displayable US-ASCII*/
 #define UCT_R_LAT1 UCT_R_ASCII | UCT_R_8859SPECL | UCT_R_HIGH8BIT
-#define UCT_R_8859S UCT_R_ASCII | UCT_R_8859SPECL
 #define UCT_R_8BIT UCT_R_LAT1 | UCT_R_HIGHCTRL /* full 8bit range */
 
 /*
diff --git a/WWW/Library/djgpp/makefile b/WWW/Library/djgpp/makefile
index 103b4c04..d7272e45 100644
--- a/WWW/Library/djgpp/makefile
+++ b/WWW/Library/djgpp/makefile
@@ -7,7 +7,7 @@ WWW_MACH = djgpp
 # The ASIS repository's name for the machine we are on
 #ASIS_MACH = hardware/os
 
-CFLAGS = -O3 -DUSE_ZLIB -DEXP_CHARTRANS -DDOSPATH -DNOUSERS -DDEBUG -I../../../djgpp/tcplib/include -I../../../djgpp/tcplib/include/tcp \
+CFLAGS = -O3 -DUSE_ZLIB -DDOSPATH -DNOUSERS -DDEBUG -I../../../djgpp/tcplib/include -I../../../djgpp/tcplib/include/tcp \
 -I../../../src -I../../..
 LFLAGS =
 CC = gcc
diff --git a/WWW/Library/unix/Makefile b/WWW/Library/unix/Makefile
new file mode 100644
index 00000000..5fea7dd7
--- /dev/null
+++ b/WWW/Library/unix/Makefile
@@ -0,0 +1,30 @@
+#  Make WWW under unix for a.n.other unix system (bsd)
+#   Use this as a template
+
+# For W3 distribution, machine type for subdirectories
+WWW_MACH = unix
+
+# The ASIS repository's name for the machine we are on
+ASIS_MACH = hardware/os
+
+
+CFLAGS =  -g -DDEBUG
+LFLAGS =
+CC = cc
+
+# Directory for installed binary:
+BINDIR = /usr/local/bin
+
+# Where is the W3 object library to be installed (not normally done)?
+LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH)
+
+#_________________ OK if normal W3 distribution
+# Where is the WWW source root?
+WWW = ../..
+
+#  Where should temporary (object) files go?
+WTMP = ../..
+
+
+include $(WWW)/Library/Implementation/Version.make
+include $(WWW)/Library/Implementation/CommonMakefile