about summary refs log tree commit diff stats
path: root/WWW/Library/Implementation/HTVMSUtils.c
diff options
context:
space:
mode:
Diffstat (limited to 'WWW/Library/Implementation/HTVMSUtils.c')
-rw-r--r--WWW/Library/Implementation/HTVMSUtils.c1378
1 files changed, 679 insertions, 699 deletions
diff --git a/WWW/Library/Implementation/HTVMSUtils.c b/WWW/Library/Implementation/HTVMSUtils.c
index 3a918646..64319071 100644
--- a/WWW/Library/Implementation/HTVMSUtils.c
+++ b/WWW/Library/Implementation/HTVMSUtils.c
@@ -1,19 +1,20 @@
 
 /* MODULE							HTVMSUtil.c
-**		VMS Utility Routines
-**
-** AUTHORS:
-**	MD	Mark Donszelmann    duns@vxdeop.cern.ch
-**
-** HISTORY:
-**	14 Nov 93  MD	Written
-**
-** BUGS:
-**
-**
-*/
+ *		VMS Utility Routines
+ *
+ * AUTHORS:
+ *	MD	Mark Donszelmann    duns@vxdeop.cern.ch
+ *
+ * HISTORY:
+ *	14 Nov 93  MD	Written
+ *
+ * BUGS:
+ *
+ *
+ */
 
 #include <HTUtils.h>
+#ifdef VMS
 #include <HTFormat.h>
 #include <HTStream.h>
 #include <UCDefs.h>
@@ -37,341 +38,334 @@
 #include <LYLeaks.h>
 #include <LYStrings.h>
 
-BOOL HTVMSFileVersions = FALSE; /* Include version numbers in listing? */
+BOOL HTVMSFileVersions = FALSE;	/* Include version numbers in listing? */
 
 typedef struct {
-   unsigned long BufferLength : 16;
-   unsigned long ItemCode : 16;
-   unsigned long BufferAddress : 32;
-   unsigned long ReturnLengthAddress : 32;
+    unsigned long BufferLength:16;
+    unsigned long ItemCode:16;
+    unsigned long BufferAddress:32;
+    unsigned long ReturnLengthAddress:32;
 } ItemStruct;
 
 /* PUBLIC							HTVMS_authSysPrv()
-**		CHECKS IF THIS PROCESS IS AUTHORIZED TO ENABLE SYSPRV
-** ON ENTRY:
-**	No arguments.
-**
-** ON EXIT:
-**	returns	YES if SYSPRV is authorized
-*/
-BOOL HTVMS_authSysPrv (void)
+ *		CHECKS IF THIS PROCESS IS AUTHORIZED TO ENABLE SYSPRV
+ * ON ENTRY:
+ *	No arguments.
+ *
+ * ON EXIT:
+ *	returns	YES if SYSPRV is authorized
+ */
+BOOL HTVMS_authSysPrv(void)
 {
-unsigned long Result;
-ItemStruct ItemList[2];
-unsigned long Length;
-unsigned long Buffer[2];
+    unsigned long Result;
+    ItemStruct ItemList[2];
+    unsigned long Length;
+    unsigned long Buffer[2];
 
-  /* fill Item */
-  ItemList[0].BufferLength = sizeof(Buffer);
-  ItemList[0].BufferAddress = (unsigned long)Buffer;
-  ItemList[0].ReturnLengthAddress = (unsigned long)&Length;
-  ItemList[0].ItemCode = JPI$_AUTHPRIV;
+    /* fill Item */
+    ItemList[0].BufferLength = sizeof(Buffer);
+    ItemList[0].BufferAddress = (unsigned long) Buffer;
+    ItemList[0].ReturnLengthAddress = (unsigned long) &Length;
+    ItemList[0].ItemCode = JPI$_AUTHPRIV;
 
-  /* terminate list */
-  ItemList[1].ItemCode = 0;
-  ItemList[1].BufferLength = 0;
+    /* terminate list */
+    ItemList[1].ItemCode = 0;
+    ItemList[1].BufferLength = 0;
 
-  /* call system */
-  Result = sys$getjpiw(0, 0, 0, ItemList, 0, 0, 0);
+    /* call system */
+    Result = sys$getjpiw(0, 0, 0, ItemList, 0, 0, 0);
 
-  if (Result != SS$_NORMAL)
-     return(NO);
+    if (Result != SS$_NORMAL)
+	return (NO);
 
-  if (Buffer[0] & PRV$M_SYSPRV)
-     return(YES);
+    if (Buffer[0] & PRV$M_SYSPRV)
+	return (YES);
 
-  return(NO);
+    return (NO);
 }
 
-
-
 /* PUBLIC							HTVMS_enableSysPrv()
-**		ENABLES SYSPRV
-** ON ENTRY:
-**	No arguments.
-**
-** ON EXIT:
-**
-*/
-void HTVMS_enableSysPrv (void)
+ *		ENABLES SYSPRV
+ * ON ENTRY:
+ *	No arguments.
+ *
+ * ON EXIT:
+ *
+ */
+void HTVMS_enableSysPrv(void)
 {
-unsigned long Result;
-unsigned long Prv[2], PreviousPrv[2];
-
-   Prv[0] = PRV$M_SYSPRV;
-   Prv[1] = 0;
-   Result = sys$setprv(1,&Prv,0,&PreviousPrv);
-
-   if (Result == SS$_NORMAL) {
-       if (!(PreviousPrv[0] & PRV$M_SYSPRV)) {
-	   CTRACE((tfp, "HTVMS_enableSysPrv: Enabled SYSPRV\n"));
-       }
-   }
-}
+    unsigned long Result;
+    unsigned long Prv[2], PreviousPrv[2];
 
+    Prv[0] = PRV$M_SYSPRV;
+    Prv[1] = 0;
+    Result = sys$setprv(1, &Prv, 0, &PreviousPrv);
 
+    if (Result == SS$_NORMAL) {
+	if (!(PreviousPrv[0] & PRV$M_SYSPRV)) {
+	    CTRACE((tfp, "HTVMS_enableSysPrv: Enabled SYSPRV\n"));
+	}
+    }
+}
 
 /* PUBLIC							HTVMS_disableSysPrv()
-**		DISABLES SYSPRV
-** ON ENTRY:
-**	No arguments.
-**
-** ON EXIT:
-**
-*/
-void HTVMS_disableSysPrv (void)
+ *		DISABLES SYSPRV
+ * ON ENTRY:
+ *	No arguments.
+ *
+ * ON EXIT:
+ *
+ */
+void HTVMS_disableSysPrv(void)
 {
-unsigned long Result;
-unsigned long Prv[2], PreviousPrv[2];
-
-   Prv[0] = PRV$M_SYSPRV;
-   Prv[1] = 0;
-   Result = sys$setprv(0,&Prv,0,&PreviousPrv);
-
-   if (Result == SS$_NORMAL) {
-       if (PreviousPrv[0] & PRV$M_SYSPRV) {
-	   CTRACE((tfp, "HTVMS_disableSysPrv: Disabled SYSPRV\n"));
-       }
-   }
-}
+    unsigned long Result;
+    unsigned long Prv[2], PreviousPrv[2];
 
+    Prv[0] = PRV$M_SYSPRV;
+    Prv[1] = 0;
+    Result = sys$setprv(0, &Prv, 0, &PreviousPrv);
 
+    if (Result == SS$_NORMAL) {
+	if (PreviousPrv[0] & PRV$M_SYSPRV) {
+	    CTRACE((tfp, "HTVMS_disableSysPrv: Disabled SYSPRV\n"));
+	}
+    }
+}
 
 /* PUBLIC							HTVMS_checkAccess()
-**		CHECKS ACCESS TO FILE FOR CERTAIN USER
-** ON ENTRY:
-**	FileName	The file to be accessed
-**	UserName	Name of the user to check access for.
-**			User nobody, represented by "" is given NO for an answer
-**	Method		Name of the method to be chceked
-**
-** ON EXIT:
-**	returns YES if access is allowed
-**
-*/
-BOOL HTVMS_checkAccess (
-	const char * FileName,
-	const char * UserName,
-	const char * Method)
+ *		CHECKS ACCESS TO FILE FOR CERTAIN USER
+ * ON ENTRY:
+ *	FileName	The file to be accessed
+ *	UserName	Name of the user to check access for.
+ *			User nobody, represented by "" is given NO for an answer
+ *	Method		Name of the method to be chceked
+ *
+ * ON EXIT:
+ *	returns YES if access is allowed
+ *
+ */
+BOOL HTVMS_checkAccess(const char *FileName,
+		       const char *UserName,
+		       const char *Method)
 {
-unsigned long Result;
-ItemStruct ItemList[2];
-unsigned long Length;
-unsigned long Buffer;
-unsigned long ObjType;
-
-char *VmsName;
-
-struct dsc$descriptor_s FileNameDesc;
-struct dsc$descriptor_s UserNameDesc;
-
-char *colon;
-
-   /* user nobody should access as from account under which server is running */
-   if (0 == strcmp(UserName,""))
-      return(NO);
-
-   /* check Filename and convert */
-   colon = strchr(FileName,':');
-   if (colon)
-      VmsName = HTVMS_name("",colon+1);
-   else
-      VmsName = HTVMS_name("",FileName);
-
-   /* check for GET */
-   if (0 == strcmp(Method,"GET"))
-   {
-     /* fill Item */
-     ItemList[0].BufferLength = sizeof(Buffer);
-     ItemList[0].BufferAddress = (unsigned long)&Buffer;
-     ItemList[0].ReturnLengthAddress = (unsigned long)&Length;
-     ItemList[0].ItemCode = CHP$_FLAGS;
-
-     /* terminate list */
-     ItemList[1].ItemCode = 0;
-     ItemList[1].BufferLength = 0;
-
-     /* fill input */
-     ObjType = ACL$C_FILE;
-     Buffer = CHP$M_READ;
-     UserNameDesc.dsc$w_length = strlen(UserName);
-     UserNameDesc.dsc$b_dtype = DSC$K_DTYPE_T;
-     UserNameDesc.dsc$b_class = DSC$K_CLASS_S;
-     UserNameDesc.dsc$a_pointer = (char *)UserName;
-     FileNameDesc.dsc$w_length = strlen(VmsName);
-     FileNameDesc.dsc$b_dtype = DSC$K_DTYPE_T;
-     FileNameDesc.dsc$b_class = DSC$K_CLASS_S;
-     FileNameDesc.dsc$a_pointer = VmsName;
-
-     /* call system */
-     Result = sys$check_access(&ObjType,&FileNameDesc,&UserNameDesc,ItemList);
-
-     if (Result == SS$_NORMAL)
-	return(YES);
-     else
-	return(NO);
-   }
-
-   return(NO);
-}
-
+    unsigned long Result;
+    ItemStruct ItemList[2];
+    unsigned long Length;
+    unsigned long Buffer;
+    unsigned long ObjType;
+
+    char *VmsName;
+
+    struct dsc$descriptor_s FileNameDesc;
+    struct dsc$descriptor_s UserNameDesc;
+
+    char *colon;
+
+    /* user nobody should access as from account under which server is running */
+    if (0 == strcmp(UserName, ""))
+	return (NO);
+
+    /* check Filename and convert */
+    colon = strchr(FileName, ':');
+    if (colon)
+	VmsName = HTVMS_name("", colon + 1);
+    else
+	VmsName = HTVMS_name("", FileName);
+
+    /* check for GET */
+    if (0 == strcmp(Method, "GET")) {
+	/* fill Item */
+	ItemList[0].BufferLength = sizeof(Buffer);
+	ItemList[0].BufferAddress = (unsigned long) &Buffer;
+	ItemList[0].ReturnLengthAddress = (unsigned long) &Length;
+	ItemList[0].ItemCode = CHP$_FLAGS;
+
+	/* terminate list */
+	ItemList[1].ItemCode = 0;
+	ItemList[1].BufferLength = 0;
+
+	/* fill input */
+	ObjType = ACL$C_FILE;
+	Buffer = CHP$M_READ;
+	UserNameDesc.dsc$w_length = strlen(UserName);
+	UserNameDesc.dsc$b_dtype = DSC$K_DTYPE_T;
+	UserNameDesc.dsc$b_class = DSC$K_CLASS_S;
+	UserNameDesc.dsc$a_pointer = (char *) UserName;
+	FileNameDesc.dsc$w_length = strlen(VmsName);
+	FileNameDesc.dsc$b_dtype = DSC$K_DTYPE_T;
+	FileNameDesc.dsc$b_class = DSC$K_CLASS_S;
+	FileNameDesc.dsc$a_pointer = VmsName;
+
+	/* call system */
+	Result = sys$check_access(&ObjType, &FileNameDesc, &UserNameDesc, ItemList);
+
+	if (Result == SS$_NORMAL)
+	    return (YES);
+	else
+	    return (NO);
+    }
 
+    return (NO);
+}
 
 /* PUBLIC							HTVMS_wwwName()
-**		CONVERTS VMS Name into WWW Name
-** ON ENTRY:
-**	vmsname		VMS file specification (NO NODE)
-**
-** ON EXIT:
-**	returns		www file specification
-**
-** EXAMPLES:
-**	vmsname				wwwname
-**	DISK$USER			disk$user
-**	DISK$USER:			/disk$user/
-**	DISK$USER:[DUNS]		/disk$user/duns
-**	DISK$USER:[DUNS.ECHO]		/disk$user/duns/echo
-**	[DUNS]				duns
-**	[DUNS.ECHO]			duns/echo
-**	[DUNS.ECHO.-.TRANS]		duns/echo/../trans
-**	[DUNS.ECHO.--.TRANS]		duns/echo/../../trans
-**	[.DUNS]				duns
-**	[.DUNS.ECHO]			duns/echo
-**	[.DUNS.ECHO]TEST.COM		duns/echo/test.com
-**	TEST.COM			test.com
-**
-**
-*/
-char * HTVMS_wwwName (const char *	vmsname)
+ *		CONVERTS VMS Name into WWW Name
+ * ON ENTRY:
+ *	vmsname		VMS file specification (NO NODE)
+ *
+ * ON EXIT:
+ *	returns		www file specification
+ *
+ * EXAMPLES:
+ *	vmsname				wwwname
+ *	DISK$USER			disk$user
+ *	DISK$USER:			/disk$user/
+ *	DISK$USER:[DUNS]		/disk$user/duns
+ *	DISK$USER:[DUNS.ECHO]		/disk$user/duns/echo
+ *	[DUNS]				duns
+ *	[DUNS.ECHO]			duns/echo
+ *	[DUNS.ECHO.-.TRANS]		duns/echo/../trans
+ *	[DUNS.ECHO.--.TRANS]		duns/echo/../../trans
+ *	[.DUNS]				duns
+ *	[.DUNS.ECHO]			duns/echo
+ *	[.DUNS.ECHO]TEST.COM		duns/echo/test.com
+ *	TEST.COM			test.com
+ *
+ *
+ */
+char *HTVMS_wwwName(const char *vmsname)
 {
-static char wwwname[LY_MAXPATH];
-const char *src;
-char *dst;
-int dir;
-   dst = wwwname;
-   src = vmsname;
-   dir = 0;
-   if (strchr(src,':')) *(dst++) = '/';
-   for ( ; *src != '\0' ; src++)
-   {
-      switch(*src)
-      {
-	 case ':':  *(dst++) = '/'; break;
-	 case '-': if (dir)
-		   {
-		      if ((*(src-1)=='[' || *(src-1)=='.' || *(src-1)=='-') &&
-			  (*(src+1)=='.' || *(src+1)=='-'))
-		      {
-			  *(dst++) = '/';
-			  *(dst++) = '.';
-			  *(dst++) = '.';
-		      }
-		      else
-			  *(dst++) = '-';
-		   }
-		   else
-		   {
-		      if (*(src-1) == ']') *(dst++) = '/';
-		      *(dst++) = '-';
-		   }
-		   break;
-	 case '.': if (dir)
-		   {
-		      if (*(src-1) != '[') *(dst++) = '/';
-		   }
-		   else
-		   {
-		      if (*(src-1) == ']') *(dst++) = '/';
-		      *(dst++) = '.';
-		   }
-		   break;
-	 case '[': dir = 1; break;
-	 case ']': dir = 0; break;
-	 default:  if (*(src-1) == ']') *(dst++) = '/';
-		   *(dst++) = *src;
-		   break;
-      }
-   }
-   *(dst++) = '\0';
-   return(wwwname);
+    static char wwwname[LY_MAXPATH];
+    const char *src;
+    char *dst;
+    int dir;
+
+    dst = wwwname;
+    src = vmsname;
+    dir = 0;
+    if (strchr(src, ':'))
+	*(dst++) = '/';
+    for (; *src != '\0'; src++) {
+	switch (*src) {
+	case ':':
+	    *(dst++) = '/';
+	    break;
+	case '-':
+	    if (dir) {
+		if ((*(src - 1) == '[' ||
+		     *(src - 1) == '.' ||
+		     *(src - 1) == '-') &&
+		    (*(src + 1) == '.' ||
+		     *(src + 1) == '-')) {
+		    *(dst++) = '/';
+		    *(dst++) = '.';
+		    *(dst++) = '.';
+		} else
+		    *(dst++) = '-';
+	    } else {
+		if (*(src - 1) == ']')
+		    *(dst++) = '/';
+		*(dst++) = '-';
+	    }
+	    break;
+	case '.':
+	    if (dir) {
+		if (*(src - 1) != '[')
+		    *(dst++) = '/';
+	    } else {
+		if (*(src - 1) == ']')
+		    *(dst++) = '/';
+		*(dst++) = '.';
+	    }
+	    break;
+	case '[':
+	    dir = 1;
+	    break;
+	case ']':
+	    dir = 0;
+	    break;
+	default:
+	    if (*(src - 1) == ']')
+		*(dst++) = '/';
+	    *(dst++) = *src;
+	    break;
+	}
+    }
+    *(dst++) = '\0';
+    return (wwwname);
 }
 
-
 /*
-**	The code below is for directory browsing by VMS Curses clients.
-**	It is based on the newer WWWLib's HTDirBrw.c. - Foteos Macrides
-*/
-int HTStat (
-	const char * filename,
-	struct stat * info)
+ *	The code below is for directory browsing by VMS Curses clients.
+ *	It is based on the newer WWWLib's HTDirBrw.c. - Foteos Macrides
+ */
+int HTStat(const char *filename,
+	   struct stat *info)
 {
-   /*
-      the following stuff does not work in VMS with a normal stat...
-      -->   /disk$user/duns/www if www is a directory
-		is statted like:	/disk$user/duns/www.dir
-		after a normal stat has failed
-      -->   /disk$user/duns	if duns is a toplevel directory
-		is statted like:	/disk$user/000000/duns.dir
-      -->   /disk$user since disk$user is a device
-		is statted like:	/disk$user/000000/000000.dir
-      -->   /
-		searches all devices, no solution yet...
-      -->   /vxcern!/disk$cr/wwwteam/login.com
-		is not statted but granted with fake information...
-   */
-int Result;
-int Len;
-char *Ptr, *Ptr2;
-static char *Name;
-
-   /* try normal stat... */
-   Result = stat((char *)filename,info);
-   if (Result == 0)
-      return(Result);
-
-   /* make local copy */
-   StrAllocCopy(Name,filename);
-
-   /* failed,so do device search in case root is requested */
-   if (!strcmp(Name,"/"))
-   {  /* root requested */
-      return(-1);
-   }
-
-   /* failed so this might be a directory, add '.dir' */
-   Len = strlen(Name);
-   if (Name[Len-1] == '/')
-      Name[Len-1] = '\0';
-
-   /* fail in case of device */
-   Ptr = strchr(Name+1,'/');
-   if ((Ptr == NULL) && (Name[0] == '/'))
-   {  /* device only... */
-      StrAllocCat(Name, "/000000/000000");
-   }
-
-   if (Ptr != NULL)
-   {  /* correct filename in case of toplevel dir */
-      Ptr2 = strchr(Ptr+1,'/');
-      if ((Ptr2 == NULL) && (Name[0] == '/'))
-      {
-	 char End[256];
-	 LYstrncpy(End, Ptr, sizeof(End) - 1);
-	 *(Ptr+1) = '\0';
-	 StrAllocCat(Name, "000000");
-	 StrAllocCat(Name, End);
-      }
-   }
-
-   /* try in case a file on toplevel directory or .DIR was already specified */
-   Result = stat(Name,info);
-   if (Result == 0)
-      return(Result);
-
-   /* add .DIR and try again */
-   StrAllocCat(Name, ".dir");
-   Result = stat(Name,info);
-   return(Result);
+    /*
+       the following stuff does not work in VMS with a normal stat...
+       -->   /disk$user/duns/www if www is a directory
+       is statted like:  /disk$user/duns/www.dir
+       after a normal stat has failed
+       -->   /disk$user/duns     if duns is a toplevel directory
+       is statted like:  /disk$user/000000/duns.dir
+       -->   /disk$user since disk$user is a device
+       is statted like:  /disk$user/000000/000000.dir
+       -->   /
+       searches all devices, no solution yet...
+       -->   /vxcern!/disk$cr/wwwteam/login.com
+       is not statted but granted with fake information...
+     */
+    int Result;
+    int Len;
+    char *Ptr, *Ptr2;
+    static char *Name;
+
+    /* try normal stat... */
+    Result = stat((char *) filename, info);
+    if (Result == 0)
+	return (Result);
+
+    /* make local copy */
+    StrAllocCopy(Name, filename);
+
+    /* failed,so do device search in case root is requested */
+    if (!strcmp(Name, "/")) {	/* root requested */
+	return (-1);
+    }
+
+    /* failed so this might be a directory, add '.dir' */
+    Len = strlen(Name);
+    if (Name[Len - 1] == '/')
+	Name[Len - 1] = '\0';
+
+    /* fail in case of device */
+    Ptr = strchr(Name + 1, '/');
+    if ((Ptr == NULL) && (Name[0] == '/')) {	/* device only... */
+	StrAllocCat(Name, "/000000/000000");
+    }
+
+    if (Ptr != NULL) {		/* correct filename in case of toplevel dir */
+	Ptr2 = strchr(Ptr + 1, '/');
+	if ((Ptr2 == NULL) && (Name[0] == '/')) {
+	    char End[256];
+
+	    LYstrncpy(End, Ptr, sizeof(End) - 1);
+	    *(Ptr + 1) = '\0';
+	    StrAllocCat(Name, "000000");
+	    StrAllocCat(Name, End);
+	}
+    }
+
+    /* try in case a file on toplevel directory or .DIR was already specified */
+    Result = stat(Name, info);
+    if (Result == 0)
+	return (Result);
+
+    /* add .DIR and try again */
+    StrAllocCat(Name, ".dir");
+    Result = stat(Name, info);
+    return (Result);
 }
 
 #ifndef	_POSIX_SOURCE
@@ -379,24 +373,24 @@ static char *Name;
 #ifndef	NULL
 #define	NULL	0
 #endif
-#endif	/* !_POSIX_SOURCE */
+#endif /* !_POSIX_SOURCE */
 
-typedef	struct __dirdesc {
-	long	context;	/* context descriptor for LIB$FIND_FILE calls */
-	char	dirname[255+1];	/* keeps the directory name, including *.* */
-	struct dsc$descriptor_s dirname_desc;	/* descriptor of dirname */
+typedef struct __dirdesc {
+    long context;		/* context descriptor for LIB$FIND_FILE calls */
+    char dirname[255 + 1];	/* keeps the directory name, including *.* */
+    struct dsc$descriptor_s dirname_desc;	/* descriptor of dirname */
 } DIR;
 
-static	DIR *HTVMSopendir(char *dirname);
-static	struct dirent *HTVMSreaddir(DIR *dirp);
-static	int HTVMSclosedir(DIR *dirp);
+static DIR *HTVMSopendir(char *dirname);
+static struct dirent *HTVMSreaddir(DIR *dirp);
+static int HTVMSclosedir(DIR *dirp);
 
 /*** #include <sys_dirent.h> ***/
 /*** "sys_dirent.h" ***/
-struct	dirent {
-	unsigned long	d_fileno;	/* file number of entry */
-	unsigned short	d_namlen;	/* length of string in d_name */
-	char		d_name[255+1];	/* name (up to MAXNAMLEN + 1) */
+struct dirent {
+    unsigned long d_fileno;	/* file number of entry */
+    unsigned short d_namlen;	/* length of string in d_name */
+    char d_name[255 + 1];	/* name (up to MAXNAMLEN + 1) */
 };
 
 #ifndef	_POSIX_SOURCE
@@ -415,164 +409,157 @@ struct	dirent {
 #define	DIRSIZ(dp) \
 	(((sizeof(struct dirent) - (MAXNAMLEN+1) + ((dp)->d_namlen+1)) +3) & ~3)
 
-#endif	/* !_POSIX_SOURCE */
-
+#endif /* !_POSIX_SOURCE */
 
 static DIR *HTVMSopendir(char *dirname)
 {
-static DIR dir;
-char *closebracket;
-long status;
-struct dsc$descriptor_s entryname_desc;
-struct dsc$descriptor_s dirname_desc;
-static char *DirEntry;
-char Actual[256];
-char VMSentry[256];
-char UnixEntry[256];
-int index;
-char *dot;
-
-   /* check if directory exists */
-   /* dirname can look like /disk$user/duns/www/test/multi    */
-   /* or like               /disk$user/duns/www/test/multi/   */
-   /* DirEntry should look like     disk$user:[duns.www.test]multi in both cases */
-   /* dir.dirname should look like  disk$user:[duns.www.test.multi] */
-   sprintf(UnixEntry, "%.*s", sizeof(UnixEntry) - 2, dirname);
-   if (UnixEntry[strlen(UnixEntry)-1] != '/')
-      strcat(UnixEntry,"/");
-
-   StrAllocCopy(DirEntry, HTVMS_name("",UnixEntry));
-   if (strlen(DirEntry) > sizeof(dir.dirname) - 1)
-      return (NULL);
-   strcpy(dir.dirname, DirEntry);
-   index = strlen(DirEntry) - 1;
-
-   if (DirEntry[index] == ']')
-      DirEntry[index] = '\0';
-
-   if ((dot = strrchr(DirEntry,'.')) == NULL)
-   {  /* convert disk$user:[duns] into disk$user:[000000]duns.dir */
-      char *openbr = strrchr(DirEntry,'[');
-      if (!openbr)
-      { /* convert disk$user: into disk$user:[000000]000000.dir */
-         if (strlen(dir.dirname) > sizeof(dir.dirname) - 10)
-            return (NULL);
-         sprintf(dir.dirname, "%.*s[000000]", sizeof(dir.dirname) - 9, DirEntry);
-	 StrAllocCat(DirEntry,"[000000]000000.dir");
-      }
-      else
-      {
-	 char End[256];
-	 strcpy(End,openbr+1);
-	 *(openbr+1) = '\0';
-	 StrAllocCat(DirEntry,"000000]");
-	 StrAllocCat(DirEntry,End);
-	 StrAllocCat(DirEntry,".dir");
-      }
-   }
-   else
-   {
-      *dot = ']';
-      StrAllocCat(DirEntry,".dir");
-   }
-   /* lib$find_file needs a fixed-size buffer */
-   LYstrncpy(Actual, DirEntry, sizeof(Actual)-1);
-
-   dir.context = 0;
-   dirname_desc.dsc$w_length = strlen(Actual);
-   dirname_desc.dsc$b_dtype = DSC$K_DTYPE_T;
-   dirname_desc.dsc$b_class = DSC$K_CLASS_S;
-   dirname_desc.dsc$a_pointer = (char *)&(Actual);
-
-   /* look for the directory */
-   entryname_desc.dsc$w_length = 255;
-   entryname_desc.dsc$b_dtype = DSC$K_DTYPE_T;
-   entryname_desc.dsc$b_class = DSC$K_CLASS_S;
-   entryname_desc.dsc$a_pointer = VMSentry;
-
-   status = lib$find_file(&(dirname_desc),
-			  &entryname_desc,
-			  &(dir.context),
-			  0,0,0,0);
-   if (!(status & 0x01))
-   { /* directory not found */
-      return(NULL);
-   }
-
-   if (strlen(dir.dirname) > sizeof(dir.dirname) - 10)
-       return (NULL);
-   if (HTVMSFileVersions)
-       strcat(dir.dirname,"*.*;*");
-   else
-       strcat(dir.dirname,"*.*");
-   dir.context = 0;
-   dir.dirname_desc.dsc$w_length = strlen(dir.dirname);
-   dir.dirname_desc.dsc$b_dtype = DSC$K_DTYPE_T;
-   dir.dirname_desc.dsc$b_class = DSC$K_CLASS_S;
-   dir.dirname_desc.dsc$a_pointer = (char *)&(dir.dirname);
-   return(&dir);
+    static DIR dir;
+    char *closebracket;
+    long status;
+    struct dsc$descriptor_s entryname_desc;
+    struct dsc$descriptor_s dirname_desc;
+    static char *DirEntry;
+    char Actual[256];
+    char VMSentry[256];
+    char UnixEntry[256];
+    int index;
+    char *dot;
+
+    /* check if directory exists */
+    /* dirname can look like /disk$user/duns/www/test/multi    */
+    /* or like               /disk$user/duns/www/test/multi/   */
+    /* DirEntry should look like     disk$user:[duns.www.test]multi in both cases */
+    /* dir.dirname should look like  disk$user:[duns.www.test.multi] */
+    sprintf(UnixEntry, "%.*s", sizeof(UnixEntry) - 2, dirname);
+    if (UnixEntry[strlen(UnixEntry) - 1] != '/')
+	strcat(UnixEntry, "/");
+
+    StrAllocCopy(DirEntry, HTVMS_name("", UnixEntry));
+    if (strlen(DirEntry) > sizeof(dir.dirname) - 1)
+	return (NULL);
+    strcpy(dir.dirname, DirEntry);
+    index = strlen(DirEntry) - 1;
+
+    if (DirEntry[index] == ']')
+	DirEntry[index] = '\0';
+
+    if ((dot = strrchr(DirEntry, '.')) == NULL) {	/* convert disk$user:[duns] into disk$user:[000000]duns.dir */
+	char *openbr = strrchr(DirEntry, '[');
+
+	if (!openbr) {		/* convert disk$user: into disk$user:[000000]000000.dir */
+	    if (strlen(dir.dirname) > sizeof(dir.dirname) - 10)
+		return (NULL);
+	    sprintf(dir.dirname, "%.*s[000000]", sizeof(dir.dirname) - 9, DirEntry);
+	    StrAllocCat(DirEntry, "[000000]000000.dir");
+	} else {
+	    char End[256];
+
+	    strcpy(End, openbr + 1);
+	    *(openbr + 1) = '\0';
+	    StrAllocCat(DirEntry, "000000]");
+	    StrAllocCat(DirEntry, End);
+	    StrAllocCat(DirEntry, ".dir");
+	}
+    } else {
+	*dot = ']';
+	StrAllocCat(DirEntry, ".dir");
+    }
+    /* lib$find_file needs a fixed-size buffer */
+    LYstrncpy(Actual, DirEntry, sizeof(Actual) - 1);
+
+    dir.context = 0;
+    dirname_desc.dsc$w_length = strlen(Actual);
+    dirname_desc.dsc$b_dtype = DSC$K_DTYPE_T;
+    dirname_desc.dsc$b_class = DSC$K_CLASS_S;
+    dirname_desc.dsc$a_pointer = (char *) &(Actual);
+
+    /* look for the directory */
+    entryname_desc.dsc$w_length = 255;
+    entryname_desc.dsc$b_dtype = DSC$K_DTYPE_T;
+    entryname_desc.dsc$b_class = DSC$K_CLASS_S;
+    entryname_desc.dsc$a_pointer = VMSentry;
+
+    status = lib$find_file(&(dirname_desc),
+			   &entryname_desc,
+			   &(dir.context),
+			   0, 0, 0, 0);
+    if (!(status & 0x01)) {	/* directory not found */
+	return (NULL);
+    }
+
+    if (strlen(dir.dirname) > sizeof(dir.dirname) - 10)
+	return (NULL);
+    if (HTVMSFileVersions)
+	strcat(dir.dirname, "*.*;*");
+    else
+	strcat(dir.dirname, "*.*");
+    dir.context = 0;
+    dir.dirname_desc.dsc$w_length = strlen(dir.dirname);
+    dir.dirname_desc.dsc$b_dtype = DSC$K_DTYPE_T;
+    dir.dirname_desc.dsc$b_class = DSC$K_CLASS_S;
+    dir.dirname_desc.dsc$a_pointer = (char *) &(dir.dirname);
+    return (&dir);
 }
 
 static struct dirent *HTVMSreaddir(DIR *dirp)
 {
-static struct dirent entry;
-long status;
-struct dsc$descriptor_s entryname_desc;
-char *space, *slash;
-char VMSentry[256];
-char *UnixEntry;
-
-   entryname_desc.dsc$w_length = 255;
-   entryname_desc.dsc$b_dtype = DSC$K_DTYPE_T;
-   entryname_desc.dsc$b_class = DSC$K_CLASS_S;
-   entryname_desc.dsc$a_pointer = VMSentry;
-
-   status = lib$find_file(&(dirp->dirname_desc),
-			  &entryname_desc,
-			  &(dirp->context),
-			  0,0,0,0);
-   if (status == RMS$_NMF)
-   { /* no more files */
-      return(NULL);
-   }
-   else
-   { /* ok */
-      if (!(status & 0x01)) return(0);
-      if (HTVMSFileVersions)
-	  space = strchr(VMSentry,' ');
-      else
-	  space = strchr(VMSentry,';');
-      if (space)
-	 *space = '\0';
-
-      /* convert to unix style... */
-      UnixEntry = HTVMS_wwwName(VMSentry);
-      slash = strrchr(UnixEntry,'/') + 1;
-      strcpy(entry.d_name,slash);
-      entry.d_namlen = strlen(entry.d_name);
-      entry.d_fileno = 1;
-      return(&entry);
-   }
+    static struct dirent entry;
+    long status;
+    struct dsc$descriptor_s entryname_desc;
+    char *space, *slash;
+    char VMSentry[256];
+    char *UnixEntry;
+
+    entryname_desc.dsc$w_length = 255;
+    entryname_desc.dsc$b_dtype = DSC$K_DTYPE_T;
+    entryname_desc.dsc$b_class = DSC$K_CLASS_S;
+    entryname_desc.dsc$a_pointer = VMSentry;
+
+    status = lib$find_file(&(dirp->dirname_desc),
+			   &entryname_desc,
+			   &(dirp->context),
+			   0, 0, 0, 0);
+    if (status == RMS$_NMF) {	/* no more files */
+	return (NULL);
+    } else {			/* ok */
+	if (!(status & 0x01))
+	    return (0);
+	if (HTVMSFileVersions)
+	    space = strchr(VMSentry, ' ');
+	else
+	    space = strchr(VMSentry, ';');
+	if (space)
+	    *space = '\0';
+
+	/* convert to unix style... */
+	UnixEntry = HTVMS_wwwName(VMSentry);
+	slash = strrchr(UnixEntry, '/') + 1;
+	strcpy(entry.d_name, slash);
+	entry.d_namlen = strlen(entry.d_name);
+	entry.d_fileno = 1;
+	return (&entry);
+    }
 }
 
 static int HTVMSclosedir(DIR *dirp)
 {
-long status;
+    long status;
 
-   status = lib$find_file_end(&(dirp->context));
-   if (!(status & 0x01)) exit(status);
-   dirp->context = 0;
-   return(0);
+    status = lib$find_file_end(&(dirp->context));
+    if (!(status & 0x01))
+	exit(status);
+    dirp->context = 0;
+    return (0);
 }
 
 #include <HTAnchor.h>
 #include <HTParse.h>
 #include <HTBTree.h>
-#include <HTFile.h>	/* For HTFileFormat() */
+#include <HTFile.h>		/* For HTFileFormat() */
 #include <HTAlert.h>
 /*
-**  Hypertext object building machinery.
-*/
+ *  Hypertext object building machinery.
+ */
 #include <HTML.h>
 #define PUTC(c) (*targetClass.put_character)(target, c)
 #define PUTS(s) (*targetClass.put_string)(target, s)
@@ -581,163 +568,159 @@ long status;
 #define FREE_TARGET (*targetClass._free)(target)
 #define ABORT_TARGET (*targetClass._free)(target)
 struct _HTStructured {
-	const HTStructuredClass *	isa;
-	/* ... */
+    const HTStructuredClass *isa;
+    /* ... */
 };
 
 #define STRUCT_DIRENT struct dirent
 
-static char * months[12] = {
-    "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"
+static char *months[12] =
+{
+    "Jan", "Feb", "Mar", "Apr", "May", "Jun",
+    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
 };
 
 typedef struct _VMSEntryInfo {
-    char *       filename;
-    char *       type;
-    char *       date;
+    char *filename;
+    char *type;
+    char *date;
     unsigned int size;
-    BOOLEAN      display;  /* show this entry? */
+    BOOLEAN display;		/* show this entry? */
 } VMSEntryInfo;
 
-static void free_VMSEntryInfo_contents (VMSEntryInfo * entry_info)
+static void free_VMSEntryInfo_contents(VMSEntryInfo * entry_info)
 {
     if (entry_info) {
 	FREE(entry_info->filename);
 	FREE(entry_info->type);
 	FREE(entry_info->date);
     }
-   /* dont free the struct */
+    /* dont free the struct */
 }
 
-int compare_VMSEntryInfo_structs (VMSEntryInfo * entry1,
-					      VMSEntryInfo * entry2)
+int compare_VMSEntryInfo_structs(VMSEntryInfo * entry1, VMSEntryInfo * entry2)
 {
     int i, status;
     char date1[16], date2[16], time1[8], time2[8], month[4];
 
-    switch(HTfileSortMethod)
-      {
-	case FILE_BY_SIZE:
-			/* both equal or both 0 */
-			if(entry1->size == entry2->size)
-			    return(strcasecomp(entry1->filename,
-					       entry2->filename));
-			else
-			    if(entry1->size > entry2->size)
-				return(1);
-			    else
-				return(-1);
-	case FILE_BY_TYPE:
-			if(entry1->type && entry2->type) {
-			    status = strcasecomp(entry1->type, entry2->type);
-			    if(status)
-				return(status);
-			    /* else fall to filename comparison */
-			}
-			return (strcasecomp(entry1->filename,
-					    entry2->filename));
-	case FILE_BY_DATE:
-			if(entry1->date && entry2->date) {
-			    /*
-			    ** Make sure we have the correct length. - FM
-			    */
-			    if (strlen(entry1->date) != 12 ||
-				strlen(entry2->date) != 12) {
-				return (strcasecomp(entry1->filename,
-						    entry2->filename));
-			    }
-			    /*
-			    ** Set up for sorting in reverse
-			    ** chronological order. - FM
-			    */
-			    if (entry1->date[7] != ' ') {
-				strcpy(date1, "9999");
-				strcpy(time1, (char *)&entry1->date[7]);
-			    } else {
-				strcpy(date1, (char *)&entry1->date[8]);
-				strcpy(time1, "00:00");
-			    }
-			    strncpy(month, entry1->date, 3);
-			    month[3] = '\0';
-			    for (i = 0; i < 12; i++) {
-				if (!strcasecomp(month, months[i])) {
-				    break;
-				}
-			    }
-			    i++;
-			    sprintf(month, "%02d", i);
-			    strcat(date1, month);
-			    strncat(date1, (char *)&entry1->date[4], 2);
-			    date1[8] = '\0';
-			    if (date1[6] == ' ') {
-				date1[6] = '0';
-			    }
-			    strcat(date1, time1);
-			    if (entry2->date[7] != ' ') {
-				strcpy(date2, "9999");
-				strcpy(time2, (char *)&entry2->date[7]);
-			    } else {
-				strcpy(date2, (char *)&entry2->date[8]);
-				strcpy(time2, "00:00");
-			    }
-			    strncpy(month, entry2->date, 3);
-			    month[3] = '\0';
-			    for (i = 0; i < 12; i++) {
-				if (!strcasecomp(month, months[i])) {
-				    break;
-				}
-			    }
-			    i++;
-			    sprintf(month, "%02d", i);
-			    strcat(date2, month);
-			    strncat(date2, (char *)&entry2->date[4], 2);
-			    date2[8] = '\0';
-			    if (date2[6] == ' ') {
-				date2[6] = '0';
-			    }
-			    strcat(date2, time2);
-			    /*
-			    ** Do the comparison. - FM
-			    */
-			    status = strcasecomp(date2, date1);
-			    if(status)
-				return(status);
-			    /* else fall to filename comparison */
-			}
-			return (strcasecomp(entry1->filename,
-					    entry2->filename));
-	case FILE_BY_NAME:
-	default:
-			return (strcmp(entry1->filename,
-					    entry2->filename));
-      }
+    switch (HTfileSortMethod) {
+    case FILE_BY_SIZE:
+	/* both equal or both 0 */
+	if (entry1->size == entry2->size)
+	    return (strcasecomp(entry1->filename,
+				entry2->filename));
+	else if (entry1->size > entry2->size)
+	    return (1);
+	else
+	    return (-1);
+    case FILE_BY_TYPE:
+	if (entry1->type && entry2->type) {
+	    status = strcasecomp(entry1->type, entry2->type);
+	    if (status)
+		return (status);
+	    /* else fall to filename comparison */
+	}
+	return (strcasecomp(entry1->filename,
+			    entry2->filename));
+    case FILE_BY_DATE:
+	if (entry1->date && entry2->date) {
+	    /*
+	     * Make sure we have the correct length. - FM
+	     */
+	    if (strlen(entry1->date) != 12 ||
+		strlen(entry2->date) != 12) {
+		return (strcasecomp(entry1->filename,
+				    entry2->filename));
+	    }
+	    /*
+	     * Set up for sorting in reverse
+	     * chronological order. - FM
+	     */
+	    if (entry1->date[7] != ' ') {
+		strcpy(date1, "9999");
+		strcpy(time1, (char *) &entry1->date[7]);
+	    } else {
+		strcpy(date1, (char *) &entry1->date[8]);
+		strcpy(time1, "00:00");
+	    }
+	    strncpy(month, entry1->date, 3);
+	    month[3] = '\0';
+	    for (i = 0; i < 12; i++) {
+		if (!strcasecomp(month, months[i])) {
+		    break;
+		}
+	    }
+	    i++;
+	    sprintf(month, "%02d", i);
+	    strcat(date1, month);
+	    strncat(date1, (char *) &entry1->date[4], 2);
+	    date1[8] = '\0';
+	    if (date1[6] == ' ') {
+		date1[6] = '0';
+	    }
+	    strcat(date1, time1);
+	    if (entry2->date[7] != ' ') {
+		strcpy(date2, "9999");
+		strcpy(time2, (char *) &entry2->date[7]);
+	    } else {
+		strcpy(date2, (char *) &entry2->date[8]);
+		strcpy(time2, "00:00");
+	    }
+	    strncpy(month, entry2->date, 3);
+	    month[3] = '\0';
+	    for (i = 0; i < 12; i++) {
+		if (!strcasecomp(month, months[i])) {
+		    break;
+		}
+	    }
+	    i++;
+	    sprintf(month, "%02d", i);
+	    strcat(date2, month);
+	    strncat(date2, (char *) &entry2->date[4], 2);
+	    date2[8] = '\0';
+	    if (date2[6] == ' ') {
+		date2[6] = '0';
+	    }
+	    strcat(date2, time2);
+	    /*
+	     * Do the comparison. - FM
+	     */
+	    status = strcasecomp(date2, date1);
+	    if (status)
+		return (status);
+	    /* else fall to filename comparison */
+	}
+	return (strcasecomp(entry1->filename,
+			    entry2->filename));
+    case FILE_BY_NAME:
+    default:
+	return (strcmp(entry1->filename,
+		       entry2->filename));
+    }
 }
 
-
 /*							HTVMSBrowseDir()
-**
-**	This function generates a directory listing as an HTML-object
-**	for local file URL's.  It assumes the first two elements of
-**	of the path are a device followed by a directory:
-**
-**		file://localhost/device/directory[/[foo]]
-**
-**	Will not accept 000000 as a directory name.
-**	Will offer links to parent through the top directory, unless
-**	a terminal slash was included in the calling URL.
-**
-**	Returns HT_LOADED on success, HTLoadError() messages on error.
-**
-**	Developed for Lynx by Foteos Macrides (macrides@sci.wfeb.edu).
-*/
-int HTVMSBrowseDir (
-	const char *		address,
-	HTParentAnchor *	anchor,
-	HTFormat		format_out,
-	HTStream *		sink
-)
+ *
+ *	This function generates a directory listing as an HTML-object
+ *	for local file URL's.  It assumes the first two elements of
+ *	of the path are a device followed by a directory:
+ *
+ *		file://localhost/device/directory[/[foo]]
+ *
+ *	Will not accept 000000 as a directory name.
+ *	Will offer links to parent through the top directory, unless
+ *	a terminal slash was included in the calling URL.
+ *
+ *	Returns HT_LOADED on success, HTLoadError() messages on error.
+ *
+ *	Developed for Lynx by Foteos Macrides (macrides@sci.wfeb.edu).
+ */
+int HTVMSBrowseDir(const char *address,
+		   HTParentAnchor *anchor,
+		   HTFormat format_out,
+		   HTStream *sink)
 {
-    HTStructured* target;
+    HTStructured *target;
     HTStructuredClass targetClass;
     char *pathname = HTParse(address, "", PARSE_PATH + PARSE_PUNCTUATION);
     char *tail = NULL;
@@ -746,7 +729,7 @@ int HTVMSBrowseDir (
     char *parent = NULL;
     char *relative = NULL;
     char *cp, *cp1;
-    int  pathend, len;
+    int pathend, len;
     DIR *dp;
     struct stat file_info;
     time_t NowTime;
@@ -755,16 +738,16 @@ int HTVMSBrowseDir (
     char string_buffer[64];
 
     HTUnEscape(pathname);
-    CTRACE((tfp,"HTVMSBrowseDir: Browsing `%s\'\n", pathname));
+    CTRACE((tfp, "HTVMSBrowseDir: Browsing `%s\'\n", pathname));
 
     /*
-     *  Require at least two elements (presumably a device and directory)
-     *  and disallow the device root (000000 directory).  Symbolic paths
-     *  (e.g., sys$help) should have been translated and expanded (e.g.,
-     *  to /sys$sysroot/syshlp) before calling this routine.
+     * Require at least two elements (presumably a device and directory) and
+     * disallow the device root (000000 directory).  Symbolic paths (e.g.,
+     * sys$help) should have been translated and expanded (e.g., to
+     * /sys$sysroot/syshlp) before calling this routine.
      */
     if (((*pathname != '/') ||
-	 (cp = strchr(pathname+1, '/')) == NULL ||
+	 (cp = strchr(pathname + 1, '/')) == NULL ||
 	 *(cp + 1) == '\0' ||
 	 0 == strncmp((cp + 1), "000000", 6)) ||
 	(dp = HTVMSopendir(pathname)) == NULL) {
@@ -773,9 +756,9 @@ int HTVMSBrowseDir (
     }
 
     /*
-     *  Set up the output stream.
+     * Set up the output stream.
      */
-    _HTProgress (BUILDING_DIR_LIST);
+    _HTProgress(BUILDING_DIR_LIST);
     if (UCLYhndl_HTFile_for_unspec >= 0) {
 	HTAnchor_setUCInfoStage(anchor,
 				UCLYhndl_HTFile_for_unspec,
@@ -786,38 +769,38 @@ int HTVMSBrowseDir (
     targetClass = *(target->isa);
 
     /*
-     *  Set up the offset string of the anchor reference,
-     *  and strings for the title and header.
+     * Set up the offset string of the anchor reference, and strings for the
+     * title and header.
      */
-    cp = strrchr(pathname, '/');  /* find lastslash */
-    StrAllocCopy(tail, (cp+1)); /* take slash off the beginning */
+    cp = strrchr(pathname, '/');	/* find lastslash */
+    StrAllocCopy(tail, (cp + 1));	/* take slash off the beginning */
     if (*tail != '\0') {
 	StrAllocCopy(title, tail);
 	*cp = '\0';
-	if ((cp1=strrchr(pathname, '/')) != NULL &&
+	if ((cp1 = strrchr(pathname, '/')) != NULL &&
 	    cp1 != pathname &&
-	    strncmp((cp1+1), "000000", 6))
-	    StrAllocCopy(parent, (cp1+1));
+	    strncmp((cp1 + 1), "000000", 6))
+	    StrAllocCopy(parent, (cp1 + 1));
 	*cp = '/';
     } else {
-	pathname[strlen(pathname)-1] = '\0';
+	pathname[strlen(pathname) - 1] = '\0';
 	cp = strrchr(pathname, '/');
-	StrAllocCopy(title, (cp+1));
+	StrAllocCopy(title, (cp + 1));
 	pathname[strlen(pathname)] = '/';
     }
     StrAllocCopy(header, pathname);
 
     /*
-     *  Initialize path name for HTStat().
+     * Initialize path name for HTStat().
      */
     pathend = strlen(pathname);
-    if (*(pathname+pathend-1) != '/') {
+    if (*(pathname + pathend - 1) != '/') {
 	StrAllocCat(pathname, "/");
 	pathend++;
     }
 
     /*
-     *  Output the title and header.
+     * Output the title and header.
      */
     START(HTML_HTML);
     PUTC('\n');
@@ -840,29 +823,31 @@ int HTVMSBrowseDir (
     END(HTML_H1);
     PUTC('\n');
     if (HTDirReadme == HT_DIR_README_TOP) {
-	FILE * fp;
-	if (header[strlen(header)-1] != '/')
+	FILE *fp;
+
+	if (header[strlen(header) - 1] != '/')
 	    StrAllocCat(header, "/");
 	StrAllocCat(header, HT_DIR_README_FILE);
-	if ((fp = fopen(header,	 "r")) != NULL) {
+	if ((fp = fopen(header, "r")) != NULL) {
 	    START(HTML_PRE);
-	    for(;;) {
+	    for (;;) {
 		char c = fgetc(fp);
-		if (c == (char)EOF)
+
+		if (c == (char) EOF)
 		    break;
 #ifdef NOTDEFINED
 		switch (c) {
-		    case '&':
-		    case '<':
-		    case '>':
-			PUTC('&');
-			PUTC('#');
-			PUTC((char)(c / 10));
-			PUTC((char) (c % 10));
-			PUTC(';');
-			break;
-		    default:
-			PUTC(c);
+		case '&':
+		case '<':
+		case '>':
+		    PUTC('&');
+		    PUTC('#');
+		    PUTC((char) (c / 10));
+		    PUTC((char) (c % 10));
+		    PUTC(';');
+		    break;
+		default:
+		    PUTC(c);
 		}
 #else
 		PUTC(c);
@@ -887,10 +872,10 @@ int HTVMSBrowseDir (
     }
 
     /*
-     *  Set up the date comparison.
+     * Set up the date comparison.
      */
     NowTime = time(NULL);
-    strcpy(ThisYear, (char *)ctime(&NowTime)+20);
+    strcpy(ThisYear, (char *) ctime(&NowTime) + 20);
     ThisYear[4] = '\0';
 
     /*
@@ -910,7 +895,7 @@ int HTVMSBrowseDir (
 	    HTFormat format;
 
 	    /* Skip if not used */
-	    if (!dirbuf->d_ino)	{
+	    if (!dirbuf->d_ino) {
 		continue;
 	    }
 
@@ -933,14 +918,14 @@ int HTVMSBrowseDir (
 	    }
 
 	    /* OK, make an lstat() and get a key ready. */
-	    *(pathname+pathend) = '\0';
+	    *(pathname + pathend) = '\0';
 	    StrAllocCat(pathname, dirbuf->d_name);
 	    if (HTStat(pathname, &file_info)) {
 		/* for VMS the failure here means the file is not readable...
 		   we however continue to browse through the directory... */
 		continue;
 	    }
-	    entry_info = (VMSEntryInfo *)malloc(sizeof(VMSEntryInfo));
+	    entry_info = (VMSEntryInfo *) malloc(sizeof(VMSEntryInfo));
 	    if (entry_info == NULL)
 		outofmem(__FILE__, "HTVMSBrowseDir");
 	    entry_info->type = 0;
@@ -951,15 +936,13 @@ int HTVMSBrowseDir (
 
 	    /* Get the type */
 	    format = HTFileFormat(dirbuf->d_name, &encoding,
-				  (const char **)&cp);
+				  (const char **) &cp);
 	    if (!cp) {
-		if(!strncmp(HTAtom_name(format), "application",11))
-		{
+		if (!strncmp(HTAtom_name(format), "application", 11)) {
 		    cp = HTAtom_name(format) + 12;
-		    if(!strncmp(cp,"x-", 2))
+		    if (!strncmp(cp, "x-", 2))
 			cp += 2;
-		}
-		else
+		} else
 		    cp = HTAtom_name(format);
 	    }
 	    StrAllocCopy(entry_info->type, cp);
@@ -968,9 +951,10 @@ int HTVMSBrowseDir (
 	    if (S_ISDIR(file_info.st_mode)) {
 		/* strip .DIR part... */
 		char *dot;
+
 		dot = strstr(entry_info->filename, ".DIR");
 		if (dot)
-		   *dot = '\0';
+		    *dot = '\0';
 		LYLowerCase(entry_info->filename);
 		StrAllocCopy(entry_info->type, "Directory");
 	    } else {
@@ -992,43 +976,43 @@ int HTVMSBrowseDir (
 		}
 		LYLowerCase(cp);
 		if (((len = strlen(entry_info->filename)) > 2) &&
-		    entry_info->filename[len-1] == 'z') {
-		    if (entry_info->filename[len-2] == '.' ||
-			entry_info->filename[len-2] == '_')
-			entry_info->filename[len-1] = 'Z';
+		    entry_info->filename[len - 1] == 'z') {
+		    if (entry_info->filename[len - 2] == '.' ||
+			entry_info->filename[len - 2] == '_')
+			entry_info->filename[len - 1] = 'Z';
 		}
 	    }
 
 	    /* Get the date */
 	    {
-		char *t = (char *)ctime((const time_t *)&file_info.st_ctime);
-		*(t+24) = '\0';
+		char *t = (char *) ctime((const time_t *) &file_info.st_ctime);
+
+		*(t + 24) = '\0';
 
-		StrAllocCopy(entry_info->date, (t+4));
-		*((entry_info->date)+7) = '\0';
-		if ((atoi((t+19))) < atoi(ThisYear))
-		    StrAllocCat(entry_info->date,  (t+19));
+		StrAllocCopy(entry_info->date, (t + 4));
+		*((entry_info->date) + 7) = '\0';
+		if ((atoi((t + 19))) < atoi(ThisYear))
+		    StrAllocCat(entry_info->date, (t + 19));
 		else {
-		    StrAllocCat(entry_info->date, (t+11));
-		    *((entry_info->date)+12) = '\0';
+		    StrAllocCat(entry_info->date, (t + 11));
+		    *((entry_info->date) + 12) = '\0';
 		}
 	    }
 
 	    /* Get the size */
 	    if (!S_ISDIR(file_info.st_mode))
-		entry_info->size = (unsigned int)file_info.st_size;
+		entry_info->size = (unsigned int) file_info.st_size;
 	    else
 		entry_info->size = 0;
 
 	    /* Now, update the BTree etc. */
-	    if(entry_info->display)
-	      {
-		 CTRACE((tfp,"Adding file to BTree: %s\n",
-						      entry_info->filename));
-		 HTBTree_add(bt, entry_info);
-	      }
+	    if (entry_info->display) {
+		CTRACE((tfp, "Adding file to BTree: %s\n",
+			entry_info->filename));
+		HTBTree_add(bt, entry_info);
+	    }
 
-	} /* End while HTVMSreaddir() */
+	}			/* End while HTVMSreaddir() */
 
 	FREE(pathname);
 	HTVMSclosedir(dp);
@@ -1038,32 +1022,29 @@ int HTVMSBrowseDir (
 	 * Run through the BTree printing out in order
 	 */
 	{
-	    HTBTElement * ele;
+	    HTBTElement *ele;
 	    int i;
+
 	    for (ele = HTBTree_next(bt, NULL);
 		 ele != NULL;
-		 ele = HTBTree_next(bt, ele))
-	    {
-		entry_info = (VMSEntryInfo *)HTBTree_object(ele);
+		 ele = HTBTree_next(bt, ele)) {
+		entry_info = (VMSEntryInfo *) HTBTree_object(ele);
 
 		/* Output the date */
-		if(entry_info->date)
-		       {
-			     PUTS(entry_info->date);
-			     PUTS("  ");
-		       }
-		else
-			PUTS("     * ");
+		if (entry_info->date) {
+		    PUTS(entry_info->date);
+		    PUTS("  ");
+		} else
+		    PUTS("     * ");
 
 		/* Output the type */
-		if(entry_info->type)
-		  {
-		    for(i = 0; entry_info->type[i] != '\0' && i < 15; i++)
+		if (entry_info->type) {
+		    for (i = 0; entry_info->type[i] != '\0' && i < 15; i++)
 			PUTC(entry_info->type[i]);
-		    for(; i < 17; i++)
+		    for (; i < 17; i++)
 			PUTC(' ');
 
-		  }
+		}
 
 		/* Output the link for the name */
 		HTDirEntry(target, tail, entry_info->filename);
@@ -1071,18 +1052,17 @@ int HTVMSBrowseDir (
 		END(HTML_A);
 
 		/* Output the size */
-		if(entry_info->size)
-		  {
-			  if(entry_info->size < 1024)
-			      sprintf(string_buffer,"  %d bytes",
-							entry_info->size);
-			  else
-			      sprintf(string_buffer,"  %dKb",
-							entry_info->size/1024);
-			  PUTS(string_buffer);
-		  }
-
-		PUTC('\n'); /* end of this entry */
+		if (entry_info->size) {
+		    if (entry_info->size < 1024)
+			sprintf(string_buffer, "  %d bytes",
+				entry_info->size);
+		    else
+			sprintf(string_buffer, "  %dKb",
+				entry_info->size / 1024);
+		    PUTS(string_buffer);
+		}
+
+		PUTC('\n');	/* end of this entry */
 
 		free_VMSEntryInfo_contents(entry_info);
 	    }
@@ -1090,10 +1070,10 @@ int HTVMSBrowseDir (
 
 	HTBTreeAndObject_free(bt);
 
-    } /* End of both BTree loops */
+    }				/* End of both BTree loops */
 
     /*
-     *  Complete the output stream.
+     * Complete the output stream.
      */
     END(HTML_PRE);
     PUTC('\n');
@@ -1106,7 +1086,7 @@ int HTVMSBrowseDir (
 
     return HT_LOADED;
 
-} /* End of directory reading section */
+}				/* End of directory reading section */
 
 /*
  * Remove all versions of the given file.  We assume there are no permissions
@@ -1115,8 +1095,8 @@ int HTVMSBrowseDir (
 int HTVMS_remove(char *filename)
 {
     int code = remove(filename);	/* return the first status code */
-    while (remove(filename) == 0)
-	;
+
+    while (remove(filename) == 0) ;
     return code;
 }
 
@@ -1134,8 +1114,7 @@ void HTVMS_purge(char *filename)
     StrAllocCopy(older_file, filename);
     StrAllocCat(older_file, ";-1");
 
-    while (remove(older_file) == 0)
-	;
+    while (remove(older_file) == 0) ;
     /*
      * If we do not have any more older versions, it is safe to rename the
      * current file to version #1.
@@ -1149,3 +1128,4 @@ void HTVMS_purge(char *filename)
 
     FREE(older_file);
 }
+#endif /* VMS */