]> code.delx.au - gnu-emacs/blobdiff - lib-src/sorted-doc.c
*** empty log message ***
[gnu-emacs] / lib-src / sorted-doc.c
index 120a510f006eb9c6a36a1c05102d7f5a2e94739c..33959aefefe6118a4b2ab0c2933b5973b3127858 100644 (file)
@@ -1,14 +1,14 @@
 /* Give this program DOC-mm.nn.oo as standard input and it outputs to
    standard output a file of texinfo input containing the doc strings.
 
 /* Give this program DOC-mm.nn.oo as standard input and it outputs to
    standard output a file of texinfo input containing the doc strings.
 
-   Copyright (C) 1989, 1992, 1994, 1996, 1999, 2000, 2001
-      Free Software Foundation Inc.
+   Copyright (C) 1989, 1992, 1994, 1996, 1999, 2000, 2001, 2002, 2003,
+                 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
    This file is part of GNU Emacs.
 
    GNU Emacs is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
    This file is part of GNU Emacs.
 
    GNU Emacs is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    GNU Emacs is distributed in the hope that it will be useful,
    any later version.
 
    GNU Emacs is distributed in the hope that it will be useful,
 
 #include <stdio.h>
 #include <ctype.h>
 
 #include <stdio.h>
 #include <ctype.h>
+#ifdef DOS_NT
+#include <fcntl.h>             /* for O_BINARY */
+#include <io.h>                        /* for setmode */
+#endif
 #ifndef HAVE_STDLIB_H          /* config.h includes stdlib.  */
 #ifndef HAVE_STDLIB_H          /* config.h includes stdlib.  */
+#ifndef WINDOWSNT              /* src/s/ms-w32.h includes stdlib.h */
 extern char *malloc ();
 #endif
 extern char *malloc ();
 #endif
+#endif
 
 #define NUL    '\0'
 #define MARKER '\037'
 
 #define NUL    '\0'
 #define MARKER '\037'
@@ -131,9 +137,17 @@ main ()
   register enum state state = WAITING; /* state at start */
   int cnt = 0;                 /* number of DOCSTRs read */
 
   register enum state state = WAITING; /* state at start */
   int cnt = 0;                 /* number of DOCSTRs read */
 
-  DOCSTR *docs;                        /* chain of allocated DOCSTRS */
+  DOCSTR *docs = NULL;          /* chain of allocated DOCSTRS */
   char buf[512];               /* line buffer */
 
   char buf[512];               /* line buffer */
 
+#ifdef DOS_NT
+  /* DOC is a binary file.  */
+  if (!isatty (fileno (stdin)))
+    setmode (fileno (stdin), O_BINARY);
+#endif
+
+  bp = buf;
+
   while (1)                    /* process one char at a time */
     {
       /* this char from the DOCSTR file */
   while (1)                    /* process one char at a time */
     {
       /* this char from the DOCSTR file */