# HG changeset patch # User Richard M. Stallman # Date 758020647 0 # Node ID 24f0d2908e6164f6a03be450e0642ec70eaca04c # Parent 87f9165f5b143de32efe96aa29844308cad7e735 [MSDOS]: Use text mode for all files but ".elc" files. (complete_file_name) [MSDOS]: Drive letter support. diff -r 87f9165f5b14 -r 24f0d2908e61 src/lread.c --- 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 #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 and not used here */ +#undef INTBITS +#undef LONGBITS +#undef SHORTBITS +#endif +#endif + #include #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 ); }