summaryrefslogtreecommitdiff
path: root/lib-src/make-docfile.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1994-01-06 03:59:30 +0000
committerRichard M. Stallman <rms@gnu.org>1994-01-06 03:59:30 +0000
commit6b3baa36d85fd1e6d579a084ccb00194e307bb49 (patch)
tree62bc97460aa9b36407e79b1de592eaf2977540d6 /lib-src/make-docfile.c
parent116b92eb0fefaf10f43d1e621b84a7c529add86c (diff)
downloademacs-6b3baa36d85fd1e6d579a084ccb00194e307bb49.tar.gz
[MSDOS]: Use text/binary mode as appropriate.
(scan_c_file, scan_lisp_file): Extra parameter for the mode to open with.
Diffstat (limited to 'lib-src/make-docfile.c')
-rw-r--r--lib-src/make-docfile.c36
1 files changed, 26 insertions, 10 deletions
diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c
index b038415deed..366c784075f 100644
--- a/lib-src/make-docfile.c
+++ b/lib-src/make-docfile.c
@@ -1,5 +1,5 @@
/* Generate doc-string file for GNU Emacs from source files.
- Copyright (C) 1985, 1986, 1992 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1992, 1993 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -32,6 +32,17 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
*/
#include <stdio.h>
+#ifdef MSDOS
+#include <fcntl.h>
+#endif /* MSDOS */
+
+#ifdef MSDOS
+#define READ_TEXT "rt"
+#define READ_BINARY "rb"
+#else /* not MSDOS */
+#define READ_TEXT "r"
+#define READ_BINARY "r"
+#endif /* not MSDOS */
FILE *outfile;
@@ -42,6 +53,11 @@ main (argc, argv)
int i;
int err_count = 0;
+#ifdef MSDOS
+ _fmode = O_BINARY; /* all of files are treated as binary files */
+ (stdout)->_flag &= ~_IOTEXT;
+ _setmode (fileno (stdout), O_BINARY);
+#endif /* MSDOS */
outfile = stdout;
/* If first two args are -o FILE, output to FILE. */
@@ -77,11 +93,11 @@ scan_file (filename)
{
int len = strlen (filename);
if (!strcmp (filename + len - 4, ".elc"))
- return scan_lisp_file (filename);
+ return scan_lisp_file (filename, READ_BINARY);
else if (!strcmp (filename + len - 3, ".el"))
- return scan_lisp_file (filename);
+ return scan_lisp_file (filename, READ_TEXT);
else
- return scan_c_file (filename);
+ return scan_c_file (filename, READ_TEXT);
}
char buf[128];
@@ -211,8 +227,8 @@ write_c_args (out, buf, minargs, maxargs)
Looks for DEFUN constructs such as are defined in ../src/lisp.h.
Accepts any word starting DEF... so it finds DEFSIMPLE and DEFPRED. */
-scan_c_file (filename)
- char *filename;
+scan_c_file (filename, mode)
+ char *filename, *mode;
{
FILE *infile;
register int c;
@@ -225,7 +241,7 @@ scan_c_file (filename)
if (filename[strlen (filename) - 1] == 'o')
filename[strlen (filename) - 1] = 'c';
- infile = fopen (filename, "r");
+ infile = fopen (filename, mode);
/* No error if non-ex input file */
if (infile == NULL)
@@ -458,13 +474,13 @@ read_lisp_symbol (infile, buffer)
}
-scan_lisp_file (filename)
- char *filename;
+scan_lisp_file (filename, mode)
+ char *filename, *mode;
{
FILE *infile;
register int c;
- infile = fopen (filename, "r");
+ infile = fopen (filename, mode);
if (infile == NULL)
{
perror (filename);