about summary refs log tree commit diff stats
path: root/WWW/Library/Implementation/HTWAIS.c
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/Library/Implementation/HTWAIS.c
parentb6d1143cba1a1910742924e8724f02585160f513 (diff)
downloadlynx-snapshots-4b034492d7e0a45781e340312e0570e5052c42d9.tar.gz
snapshot of project "lynx", label v2-7-1ac-0_113
Diffstat (limited to 'WWW/Library/Implementation/HTWAIS.c')
-rw-r--r--WWW/Library/Implementation/HTWAIS.c550
1 files changed, 275 insertions, 275 deletions
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