changeset 5496:24f0d2908e61

[MSDOS]: Use text mode for all files but ".elc" files. (complete_file_name) [MSDOS]: Drive letter support.
author Richard M. Stallman <rms@gnu.org>
date Sat, 08 Jan 1994 09:17:27 +0000
parents 87f9165f5b14
children 525a2027ec95
files src/lread.c
diffstat 1 files changed, 25 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lread.c	Sat Jan 08 09:16:45 1994 +0000
+++ b/src/lread.c	Sat Jan 08 09:17:27 1994 +0000
@@ -47,6 +47,17 @@
 #ifdef STDC_HEADERS
 #include <stdlib.h>
 #endif
+
+#if 0 /* That is untrue--XINT is used below, and it uses INTBITS.
+	 What in the world is values.h, anyway?  */
+#ifdef MSDOS
+/* These are redefined in <values.h> and not used here */
+#undef INTBITS
+#undef LONGBITS
+#undef SHORTBITS
+#endif
+#endif
+
 #include <math.h>
 #endif /* LISP_FLOAT_TYPE */
 
@@ -319,6 +330,9 @@
   /* 1 means inhibit the message at the beginning.  */
   int nomessage1 = 0;
   Lisp_Object handler;
+#ifdef MSDOS
+  char *dosmode = "rt";
+#endif
 
   CHECK_STRING (str, 0);
   str = Fsubstitute_in_file_name (str);
@@ -352,6 +366,9 @@
       struct stat s1, s2;
       int result;
 
+#ifdef MSDOS
+      dosmode = "rb";
+#endif
       stat (XSTRING (found)->data, &s1);
       XSTRING (found)->data[XSTRING (found)->size - 1] = 0;
       result = stat (XSTRING (found)->data, &s2);
@@ -366,7 +383,12 @@
       XSTRING (found)->data[XSTRING (found)->size - 1] = 'c';
     }
 
+#ifdef MSDOS
+  close (fd);
+  stream = fopen ((char *) XSTRING (found)->data, dosmode);
+#else
   stream = fdopen (fd, "r");
+#endif
   if (stream == 0)
     {
       close (fd);
@@ -422,6 +444,9 @@
 #ifdef VMS
 	  || index (s, ':')
 #endif /* VMS */
+#ifdef MSDOS	/* MW, May 1993 */
+	  || (s[0] != '\0' && s[1] == ':' && s[2] == '/')
+#endif
 	  );
 }