about summary refs log tree commit diff stats
path: root/WWW/Library/Implementation/HTDOS.c
diff options
context:
space:
mode:
Diffstat (limited to 'WWW/Library/Implementation/HTDOS.c')
-rw-r--r--WWW/Library/Implementation/HTDOS.c95
1 files changed, 95 insertions, 0 deletions
diff --git a/WWW/Library/Implementation/HTDOS.c b/WWW/Library/Implementation/HTDOS.c
new file mode 100644
index 00000000..79a8b463
--- /dev/null
+++ b/WWW/Library/Implementation/HTDOS.c
@@ -0,0 +1,95 @@
+/*             DOS specific routines

+

+ */

+

+#include <mem.h>

+#include <dos.h>

+#include "htstring.h"

+

+/* PUBLIC                                                       HTDOS_wwwName()

+**              CONVERTS DOS Name into WWW Name

+** ON ENTRY:

+**      dosname         DOS file specification (NO NODE)

+**

+** ON EXIT:

+**	returns 	www file specification

+**

+*/

+char * HTDOS_wwwName (char *dosname)

+{

+	static char wwwname[1024];

+	char *cp_url = wwwname;

+

+	strcpy(wwwname,dosname);
+
+	for ( ; *cp_url != '\0' ; cp_url++)
+	  if(*cp_url == '\\') *cp_url = '/';
+
+	 if(strlen(wwwname) > 3 && *cp_url == '/')
+		*cp_url = '\0';
+
+	 if(*cp_url == ':')
+	 {
+		cp_url++;
+		*cp_url = '/';
+	 }
+
+/*
+	if((strlen(wwwname)>2)&&(wwwname[1]==':')) wwwname[1]='|';
+	printf("\n\nwww: %s\n\ndos: %s\n\n",wwwname,dosname);

+	sleep(5);

+*/

+	return(wwwname);
+}

+

+

+/* PUBLIC                                                       HTDOS_name()

+**              CONVERTS WWW name into a DOS name

+** ON ENTRY:

+**	fn		WWW file name

+**

+** ON EXIT:

+**      returns         dos file specification

+**

+** Bug:	Returns pointer to static -- non-reentrant

+*/

+char * HTDOS_name(char *dosname)	{

+

+	static char cp_url[1024];
+	int joe;
+
+	memset(cp_url, 0, 1023);
+/*	strset(cp_url,0); */
+	sprintf(cp_url, "%s",dosname);
+
+	for(joe = 0; cp_url[joe] != '\0'; joe++)	{
+		if(cp_url[joe] == '/')	{
+			cp_url[joe] = '\\';
+		}
+	}
+
+//	if(strlen(cp_url) < 4) cp_url[] = ':';
+	if(strlen(cp_url) == 3) cp_url[3] = '\\';
+
+	if(strlen(cp_url) == 4) cp_url[4] = '.';
+
+	if((strlen(cp_url) > 2) && (cp_url[1] == '|'))
+		cp_url[1] = ':';
+
+	if((cp_url[1] == '\\') || (cp_url[0]  != '\\'))
+	{
+/*
+		printf("\n\n%s = i%\n\n",cp_url,strlen(cp_url));
+		sleep(5);
+/**/
+		return(cp_url);
+	} else {
+/*
+		printf("\n\n%s = %i\n\n",cp_url+1,strlen(cp_url));
+		sleep(5);
+/**/
+		return(cp_url+1);
+	}
+}
+
+