annotate lib-src/make-docfile.c @ 66573:e65b759c6906

Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-630 Merge from gnus--rel--5.10 Patches applied: * gnus--rel--5.10 (patch 149-151) - Merge from emacs--cvs-trunk--0 - Update from CVS 2005-10-27 Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/flow-fill.el (fill-flowed-encode-tests): Restore trailing whitespace removed in revision 7.8. Use concatenated string to protect trailing whitespace. 2005-10-27 Jouni K Seppanen <jks@iki.fi> (tiny change) * lisp/gnus/nnimap.el (nnimap-search-uids-not-since-is-evil): Add variable. (nnimap-request-expire-articles): Use it to avoid sending 'UID SEARCH UID ... NOT SINCE' queries, for inefficient servers like Courier IMAP ("some version from 2004"). Mostly based on similar code in the same function. 2005-10-26 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/message.el (message-display-completion-list): New function. (message-expand-group): Use it; make sure the Completions buffer is modifiable.
author Miles Bader <miles@gnu.org>
date Mon, 31 Oct 2005 07:07:28 +0000
parents 6358e3c6075c
children 3661e9b3c48f 2d92f5c9d6ae
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1 /* Generate doc-string file for GNU Emacs from source files.
64769
6358e3c6075c Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64083
diff changeset
2 Copyright (C) 1985, 1986, 1992, 1993, 1994, 1997, 1999, 2000, 2001,
6358e3c6075c Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64083
diff changeset
3 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5 This file is part of GNU Emacs.
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6
38
056b931d312b *** empty log message ***
Joseph Arceneaux <jla@gnu.org>
parents: 24
diff changeset
7 GNU Emacs is free software; you can redistribute it and/or modify
056b931d312b *** empty log message ***
Joseph Arceneaux <jla@gnu.org>
parents: 24
diff changeset
8 it under the terms of the GNU General Public License as published by
638
40b255f55df3 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 168
diff changeset
9 the Free Software Foundation; either version 2, or (at your option)
38
056b931d312b *** empty log message ***
Joseph Arceneaux <jla@gnu.org>
parents: 24
diff changeset
10 any later version.
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11
38
056b931d312b *** empty log message ***
Joseph Arceneaux <jla@gnu.org>
parents: 24
diff changeset
12 GNU Emacs is distributed in the hope that it will be useful,
056b931d312b *** empty log message ***
Joseph Arceneaux <jla@gnu.org>
parents: 24
diff changeset
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
056b931d312b *** empty log message ***
Joseph Arceneaux <jla@gnu.org>
parents: 24
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
056b931d312b *** empty log message ***
Joseph Arceneaux <jla@gnu.org>
parents: 24
diff changeset
15 GNU General Public License for more details.
056b931d312b *** empty log message ***
Joseph Arceneaux <jla@gnu.org>
parents: 24
diff changeset
16
056b931d312b *** empty log message ***
Joseph Arceneaux <jla@gnu.org>
parents: 24
diff changeset
17 You should have received a copy of the GNU General Public License
056b931d312b *** empty log message ***
Joseph Arceneaux <jla@gnu.org>
parents: 24
diff changeset
18 along with GNU Emacs; see the file COPYING. If not, write to
64083
23a17af379b1 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 62292
diff changeset
19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
23a17af379b1 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 62292
diff changeset
20 Boston, MA 02110-1301, USA. */
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22 /* The arguments given to this program are all the C and Lisp source files
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23 of GNU Emacs. .elc and .el and .c files are allowed.
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
24 A .o file can also be specified; the .c file it was made from is used.
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
25 This helps the makefile pass the correct list of files.
53269
957afba80853 (main): For return code, no longer special-case VMS.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 52401
diff changeset
26 Option -d DIR means change to DIR before looking for files.
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
28 The results, which go to standard output or to a file
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
29 specified with -a or -o (-a to append, -o to start from nothing),
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 are entries containing function or variable names and their documentation.
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31 Each entry starts with a ^_ character.
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 Then comes F for a function or V for a variable.
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33 Then comes the function or variable name, terminated with a newline.
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
34 Then comes the documentation for that function or variable.
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 */
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36
11690
450b9598aca5 Include config.h.
Richard M. Stallman <rms@gnu.org>
parents: 11413
diff changeset
37 #define NO_SHORTNAMES /* Tell config not to load remap.h */
25532
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
38 #include <config.h>
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
39
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
40 /* defined to be emacs_main, sys_fopen, etc. in config.h */
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
41 #undef main
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
42 #undef fopen
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
43 #undef chdir
11690
450b9598aca5 Include config.h.
Richard M. Stallman <rms@gnu.org>
parents: 11413
diff changeset
44
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
45 #include <stdio.h>
5449
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
46 #ifdef MSDOS
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
47 #include <fcntl.h>
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
48 #endif /* MSDOS */
9772
20652342eb9a (main) [WINDOWSNT]: Now sets _fmode and stdout to O_BINARY.
Richard M. Stallman <rms@gnu.org>
parents: 9643
diff changeset
49 #ifdef WINDOWSNT
60369
3f6c5215bb43 Undo previous change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 59143
diff changeset
50 #include <stdlib.h>
9772
20652342eb9a (main) [WINDOWSNT]: Now sets _fmode and stdout to O_BINARY.
Richard M. Stallman <rms@gnu.org>
parents: 9643
diff changeset
51 #include <fcntl.h>
20652342eb9a (main) [WINDOWSNT]: Now sets _fmode and stdout to O_BINARY.
Richard M. Stallman <rms@gnu.org>
parents: 9643
diff changeset
52 #include <direct.h>
20652342eb9a (main) [WINDOWSNT]: Now sets _fmode and stdout to O_BINARY.
Richard M. Stallman <rms@gnu.org>
parents: 9643
diff changeset
53 #endif /* WINDOWSNT */
5449
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
54
9772
20652342eb9a (main) [WINDOWSNT]: Now sets _fmode and stdout to O_BINARY.
Richard M. Stallman <rms@gnu.org>
parents: 9643
diff changeset
55 #ifdef DOS_NT
5449
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
56 #define READ_TEXT "rt"
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
57 #define READ_BINARY "rb"
9772
20652342eb9a (main) [WINDOWSNT]: Now sets _fmode and stdout to O_BINARY.
Richard M. Stallman <rms@gnu.org>
parents: 9643
diff changeset
58 #else /* not DOS_NT */
5449
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
59 #define READ_TEXT "r"
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
60 #define READ_BINARY "r"
9772
20652342eb9a (main) [WINDOWSNT]: Now sets _fmode and stdout to O_BINARY.
Richard M. Stallman <rms@gnu.org>
parents: 9643
diff changeset
61 #endif /* not DOS_NT */
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
62
62292
3c46f9593ea1 (DIRECTORY_SEP): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60369
diff changeset
63 #ifndef DIRECTORY_SEP
3c46f9593ea1 (DIRECTORY_SEP): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60369
diff changeset
64 #ifdef MAC_OS8
3c46f9593ea1 (DIRECTORY_SEP): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60369
diff changeset
65 #define DIRECTORY_SEP ':'
3c46f9593ea1 (DIRECTORY_SEP): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60369
diff changeset
66 #else /* not MAC_OS8 */
3c46f9593ea1 (DIRECTORY_SEP): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60369
diff changeset
67 #define DIRECTORY_SEP '/'
3c46f9593ea1 (DIRECTORY_SEP): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60369
diff changeset
68 #endif /* not MAC_OS8 */
3c46f9593ea1 (DIRECTORY_SEP): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60369
diff changeset
69 #endif
3c46f9593ea1 (DIRECTORY_SEP): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60369
diff changeset
70
55147
c2f1d71314c4 (IS_DIRECTORY_SEP): New macro.
Eli Zaretskii <eliz@gnu.org>
parents: 54746
diff changeset
71 #ifndef IS_DIRECTORY_SEP
62292
3c46f9593ea1 (DIRECTORY_SEP): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60369
diff changeset
72 #define IS_DIRECTORY_SEP(_c_) ((_c_) == DIRECTORY_SEP)
55147
c2f1d71314c4 (IS_DIRECTORY_SEP): New macro.
Eli Zaretskii <eliz@gnu.org>
parents: 54746
diff changeset
73 #endif
c2f1d71314c4 (IS_DIRECTORY_SEP): New macro.
Eli Zaretskii <eliz@gnu.org>
parents: 54746
diff changeset
74
9491
dd3b83e4ceb0 Eliminate some -Wall warnings.
David J. MacKenzie <djm@gnu.org>
parents: 7564
diff changeset
75 int scan_file ();
dd3b83e4ceb0 Eliminate some -Wall warnings.
David J. MacKenzie <djm@gnu.org>
parents: 7564
diff changeset
76 int scan_lisp_file ();
dd3b83e4ceb0 Eliminate some -Wall warnings.
David J. MacKenzie <djm@gnu.org>
parents: 7564
diff changeset
77 int scan_c_file ();
dd3b83e4ceb0 Eliminate some -Wall warnings.
David J. MacKenzie <djm@gnu.org>
parents: 7564
diff changeset
78
12134
cf65209088d6 [MSDOS]: #undef chdir.
Karl Heuer <kwzh@gnu.org>
parents: 11690
diff changeset
79 #ifdef MSDOS
cf65209088d6 [MSDOS]: #undef chdir.
Karl Heuer <kwzh@gnu.org>
parents: 11690
diff changeset
80 /* s/msdos.h defines this as sys_chdir, but we're not linking with the
cf65209088d6 [MSDOS]: #undef chdir.
Karl Heuer <kwzh@gnu.org>
parents: 11690
diff changeset
81 file where that function is defined. */
cf65209088d6 [MSDOS]: #undef chdir.
Karl Heuer <kwzh@gnu.org>
parents: 11690
diff changeset
82 #undef chdir
cf65209088d6 [MSDOS]: #undef chdir.
Karl Heuer <kwzh@gnu.org>
parents: 11690
diff changeset
83 #endif
cf65209088d6 [MSDOS]: #undef chdir.
Karl Heuer <kwzh@gnu.org>
parents: 11690
diff changeset
84
21783
798a28989dde Include <unistd.h> for chdir.
Andreas Schwab <schwab@suse.de>
parents: 19636
diff changeset
85 #ifdef HAVE_UNISTD_H
798a28989dde Include <unistd.h> for chdir.
Andreas Schwab <schwab@suse.de>
parents: 19636
diff changeset
86 #include <unistd.h>
798a28989dde Include <unistd.h> for chdir.
Andreas Schwab <schwab@suse.de>
parents: 19636
diff changeset
87 #endif
798a28989dde Include <unistd.h> for chdir.
Andreas Schwab <schwab@suse.de>
parents: 19636
diff changeset
88
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
89 /* Stdio stream for output to the DOC file. */
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
90 FILE *outfile;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
91
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
92 /* Name this program was invoked with. */
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
93 char *progname;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
94
41084
052c2896e6ca Comment fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 40130
diff changeset
95 /* Print error message. `s1' is printf control string, `s2' is arg for it. */
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
96
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
97 /* VARARGS1 */
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
98 void
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
99 error (s1, s2)
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
100 char *s1, *s2;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
101 {
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
102 fprintf (stderr, "%s: ", progname);
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
103 fprintf (stderr, s1, s2);
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
104 fprintf (stderr, "\n");
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
105 }
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
106
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
107 /* Print error message and exit. */
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
108
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
109 /* VARARGS1 */
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
110 void
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
111 fatal (s1, s2)
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
112 char *s1, *s2;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
113 {
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
114 error (s1, s2);
55442
a47704955f8d Throughout, replace 0 destined for `exit' arg with `EXIT_SUCCESS'.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 55147
diff changeset
115 exit (EXIT_FAILURE);
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
116 }
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
117
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
118 /* Like malloc but get fatal error if memory is exhausted. */
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
119
54746
effb507b5258 (xmalloc): Fix return type.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53269
diff changeset
120 void *
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
121 xmalloc (size)
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
122 unsigned int size;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
123 {
54746
effb507b5258 (xmalloc): Fix return type.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53269
diff changeset
124 void *result = (void *) malloc (size);
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
125 if (result == NULL)
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
126 fatal ("virtual memory exhausted", 0);
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
127 return result;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
128 }
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
129
9491
dd3b83e4ceb0 Eliminate some -Wall warnings.
David J. MacKenzie <djm@gnu.org>
parents: 7564
diff changeset
130 int
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
131 main (argc, argv)
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
132 int argc;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
133 char **argv;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
134 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
135 int i;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
136 int err_count = 0;
9643
5d1e70b22a93 (main): Don't process one input file twice.
Richard M. Stallman <rms@gnu.org>
parents: 9491
diff changeset
137 int first_infile;
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
138
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
139 progname = argv[0];
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
140
12328
dbc55496f684 (main): On MSDOS, don't change stdout to binary, and insist on an -o option.
Richard M. Stallman <rms@gnu.org>
parents: 12134
diff changeset
141 outfile = stdout;
dbc55496f684 (main): On MSDOS, don't change stdout to binary, and insist on an -o option.
Richard M. Stallman <rms@gnu.org>
parents: 12134
diff changeset
142
9772
20652342eb9a (main) [WINDOWSNT]: Now sets _fmode and stdout to O_BINARY.
Richard M. Stallman <rms@gnu.org>
parents: 9643
diff changeset
143 /* Don't put CRs in the DOC file. */
5449
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
144 #ifdef MSDOS
12350
68508136431f (main) [MSDOS]: Do set _fmode.
Richard M. Stallman <rms@gnu.org>
parents: 12328
diff changeset
145 _fmode = O_BINARY;
12328
dbc55496f684 (main): On MSDOS, don't change stdout to binary, and insist on an -o option.
Richard M. Stallman <rms@gnu.org>
parents: 12134
diff changeset
146 #if 0 /* Suspicion is that this causes hanging.
dbc55496f684 (main): On MSDOS, don't change stdout to binary, and insist on an -o option.
Richard M. Stallman <rms@gnu.org>
parents: 12134
diff changeset
147 So instead we require people to use -o on MSDOS. */
5449
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
148 (stdout)->_flag &= ~_IOTEXT;
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
149 _setmode (fileno (stdout), O_BINARY);
12328
dbc55496f684 (main): On MSDOS, don't change stdout to binary, and insist on an -o option.
Richard M. Stallman <rms@gnu.org>
parents: 12134
diff changeset
150 #endif
dbc55496f684 (main): On MSDOS, don't change stdout to binary, and insist on an -o option.
Richard M. Stallman <rms@gnu.org>
parents: 12134
diff changeset
151 outfile = 0;
5449
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
152 #endif /* MSDOS */
9772
20652342eb9a (main) [WINDOWSNT]: Now sets _fmode and stdout to O_BINARY.
Richard M. Stallman <rms@gnu.org>
parents: 9643
diff changeset
153 #ifdef WINDOWSNT
20652342eb9a (main) [WINDOWSNT]: Now sets _fmode and stdout to O_BINARY.
Richard M. Stallman <rms@gnu.org>
parents: 9643
diff changeset
154 _fmode = O_BINARY;
20652342eb9a (main) [WINDOWSNT]: Now sets _fmode and stdout to O_BINARY.
Richard M. Stallman <rms@gnu.org>
parents: 9643
diff changeset
155 _setmode (fileno (stdout), O_BINARY);
20652342eb9a (main) [WINDOWSNT]: Now sets _fmode and stdout to O_BINARY.
Richard M. Stallman <rms@gnu.org>
parents: 9643
diff changeset
156 #endif /* WINDOWSNT */
20652342eb9a (main) [WINDOWSNT]: Now sets _fmode and stdout to O_BINARY.
Richard M. Stallman <rms@gnu.org>
parents: 9643
diff changeset
157
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
158 /* If first two args are -o FILE, output to FILE. */
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
159 i = 1;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
160 if (argc > i + 1 && !strcmp (argv[i], "-o"))
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
161 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
162 outfile = fopen (argv[i + 1], "w");
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
163 i += 2;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
164 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
165 if (argc > i + 1 && !strcmp (argv[i], "-a"))
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
166 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
167 outfile = fopen (argv[i + 1], "a");
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
168 i += 2;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
169 }
2814
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 2483
diff changeset
170 if (argc > i + 1 && !strcmp (argv[i], "-d"))
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 2483
diff changeset
171 {
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 2483
diff changeset
172 chdir (argv[i + 1]);
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 2483
diff changeset
173 i += 2;
0da5b58e98ed Install patches from David J. Mackenzie to make the srcdir option
Jim Blandy <jimb@redhat.com>
parents: 2483
diff changeset
174 }
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
175
12328
dbc55496f684 (main): On MSDOS, don't change stdout to binary, and insist on an -o option.
Richard M. Stallman <rms@gnu.org>
parents: 12134
diff changeset
176 if (outfile == 0)
dbc55496f684 (main): On MSDOS, don't change stdout to binary, and insist on an -o option.
Richard M. Stallman <rms@gnu.org>
parents: 12134
diff changeset
177 fatal ("No output file specified", "");
dbc55496f684 (main): On MSDOS, don't change stdout to binary, and insist on an -o option.
Richard M. Stallman <rms@gnu.org>
parents: 12134
diff changeset
178
9643
5d1e70b22a93 (main): Don't process one input file twice.
Richard M. Stallman <rms@gnu.org>
parents: 9491
diff changeset
179 first_infile = i;
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
180 for (; i < argc; i++)
9643
5d1e70b22a93 (main): Don't process one input file twice.
Richard M. Stallman <rms@gnu.org>
parents: 9491
diff changeset
181 {
5d1e70b22a93 (main): Don't process one input file twice.
Richard M. Stallman <rms@gnu.org>
parents: 9491
diff changeset
182 int j;
5d1e70b22a93 (main): Don't process one input file twice.
Richard M. Stallman <rms@gnu.org>
parents: 9491
diff changeset
183 /* Don't process one file twice. */
5d1e70b22a93 (main): Don't process one input file twice.
Richard M. Stallman <rms@gnu.org>
parents: 9491
diff changeset
184 for (j = first_infile; j < i; j++)
5d1e70b22a93 (main): Don't process one input file twice.
Richard M. Stallman <rms@gnu.org>
parents: 9491
diff changeset
185 if (! strcmp (argv[i], argv[j]))
5d1e70b22a93 (main): Don't process one input file twice.
Richard M. Stallman <rms@gnu.org>
parents: 9491
diff changeset
186 break;
5d1e70b22a93 (main): Don't process one input file twice.
Richard M. Stallman <rms@gnu.org>
parents: 9491
diff changeset
187 if (j == i)
5d1e70b22a93 (main): Don't process one input file twice.
Richard M. Stallman <rms@gnu.org>
parents: 9491
diff changeset
188 err_count += scan_file (argv[i]);
5d1e70b22a93 (main): Don't process one input file twice.
Richard M. Stallman <rms@gnu.org>
parents: 9491
diff changeset
189 }
53269
957afba80853 (main): For return code, no longer special-case VMS.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 52401
diff changeset
190 return (err_count > 0 ? EXIT_FAILURE : EXIT_SUCCESS);
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
191 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
192
54746
effb507b5258 (xmalloc): Fix return type.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53269
diff changeset
193 /* Add a source file name boundary marker in the output file. */
effb507b5258 (xmalloc): Fix return type.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53269
diff changeset
194 void
effb507b5258 (xmalloc): Fix return type.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53269
diff changeset
195 put_filename (filename)
effb507b5258 (xmalloc): Fix return type.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53269
diff changeset
196 char *filename;
effb507b5258 (xmalloc): Fix return type.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53269
diff changeset
197 {
55147
c2f1d71314c4 (IS_DIRECTORY_SEP): New macro.
Eli Zaretskii <eliz@gnu.org>
parents: 54746
diff changeset
198 char *tmp;
c2f1d71314c4 (IS_DIRECTORY_SEP): New macro.
Eli Zaretskii <eliz@gnu.org>
parents: 54746
diff changeset
199
c2f1d71314c4 (IS_DIRECTORY_SEP): New macro.
Eli Zaretskii <eliz@gnu.org>
parents: 54746
diff changeset
200 for (tmp = filename; *tmp; tmp++)
c2f1d71314c4 (IS_DIRECTORY_SEP): New macro.
Eli Zaretskii <eliz@gnu.org>
parents: 54746
diff changeset
201 {
c2f1d71314c4 (IS_DIRECTORY_SEP): New macro.
Eli Zaretskii <eliz@gnu.org>
parents: 54746
diff changeset
202 if (IS_DIRECTORY_SEP(*tmp))
c2f1d71314c4 (IS_DIRECTORY_SEP): New macro.
Eli Zaretskii <eliz@gnu.org>
parents: 54746
diff changeset
203 filename = tmp + 1;
c2f1d71314c4 (IS_DIRECTORY_SEP): New macro.
Eli Zaretskii <eliz@gnu.org>
parents: 54746
diff changeset
204 }
54746
effb507b5258 (xmalloc): Fix return type.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53269
diff changeset
205
effb507b5258 (xmalloc): Fix return type.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53269
diff changeset
206 putc (037, outfile);
effb507b5258 (xmalloc): Fix return type.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53269
diff changeset
207 putc ('S', outfile);
effb507b5258 (xmalloc): Fix return type.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53269
diff changeset
208 fprintf (outfile, "%s\n", filename);
effb507b5258 (xmalloc): Fix return type.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53269
diff changeset
209 }
effb507b5258 (xmalloc): Fix return type.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53269
diff changeset
210
164
aba3ff2b9eb4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 162
diff changeset
211 /* Read file FILENAME and output its doc strings to outfile. */
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
212 /* Return 1 if file is not found, 0 if it is found. */
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
213
9491
dd3b83e4ceb0 Eliminate some -Wall warnings.
David J. MacKenzie <djm@gnu.org>
parents: 7564
diff changeset
214 int
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
215 scan_file (filename)
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
216 char *filename;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
217 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
218 int len = strlen (filename);
54746
effb507b5258 (xmalloc): Fix return type.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53269
diff changeset
219
effb507b5258 (xmalloc): Fix return type.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53269
diff changeset
220 put_filename (filename);
12351
f2e9eb6a8939 (scan_file): Make sure it never looks at filename[-1].
Richard M. Stallman <rms@gnu.org>
parents: 12350
diff changeset
221 if (len > 4 && !strcmp (filename + len - 4, ".elc"))
5449
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
222 return scan_lisp_file (filename, READ_BINARY);
12351
f2e9eb6a8939 (scan_file): Make sure it never looks at filename[-1].
Richard M. Stallman <rms@gnu.org>
parents: 12350
diff changeset
223 else if (len > 3 && !strcmp (filename + len - 3, ".el"))
5449
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
224 return scan_lisp_file (filename, READ_TEXT);
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
225 else
5449
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
226 return scan_c_file (filename, READ_TEXT);
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
227 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
228
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
229 char buf[128];
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
230
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
231 /* Some state during the execution of `read_c_string_or_comment'. */
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
232 struct rcsoc_state
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
233 {
41084
052c2896e6ca Comment fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 40130
diff changeset
234 /* A count of spaces and newlines that have been read, but not output. */
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
235 unsigned pending_spaces, pending_newlines;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
236
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
237 /* Where we're reading from. */
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
238 FILE *in_file;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
239
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
240 /* If non-zero, a buffer into which to copy characters. */
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
241 char *buf_ptr;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
242 /* If non-zero, a file into which to copy characters. */
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
243 FILE *out_file;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
244
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
245 /* A keyword we look for at the beginning of lines. If found, it is
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
246 not copied, and SAW_KEYWORD is set to true. */
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
247 char *keyword;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
248 /* The current point we've reached in an occurance of KEYWORD in
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
249 the input stream. */
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
250 char *cur_keyword_ptr;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
251 /* Set to true if we saw an occurance of KEYWORD. */
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
252 int saw_keyword;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
253 };
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
254
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
255 /* Output CH to the file or buffer in STATE. Any pending newlines or
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
256 spaces are output first. */
39986
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
257
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
258 static INLINE void
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
259 put_char (ch, state)
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
260 int ch;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
261 struct rcsoc_state *state;
39986
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
262 {
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
263 int out_ch;
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
264 do
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
265 {
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
266 if (state->pending_newlines > 0)
39986
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
267 {
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
268 state->pending_newlines--;
39986
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
269 out_ch = '\n';
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
270 }
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
271 else if (state->pending_spaces > 0)
39986
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
272 {
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
273 state->pending_spaces--;
39986
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
274 out_ch = ' ';
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
275 }
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
276 else
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
277 out_ch = ch;
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
278
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
279 if (state->out_file)
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
280 putc (out_ch, state->out_file);
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
281 if (state->buf_ptr)
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
282 *state->buf_ptr++ = out_ch;
39986
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
283 }
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
284 while (out_ch != ch);
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
285 }
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
286
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
287 /* If in the middle of scanning a keyword, continue scanning with
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
288 character CH, otherwise output CH to the file or buffer in STATE.
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
289 Any pending newlines or spaces are output first, as well as any
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
290 previously scanned characters that were thought to be part of a
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
291 keyword, but were in fact not. */
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
292
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
293 static void
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
294 scan_keyword_or_put_char (ch, state)
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
295 int ch;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
296 struct rcsoc_state *state;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
297 {
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
298 if (state->keyword
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
299 && *state->cur_keyword_ptr == ch
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
300 && (state->cur_keyword_ptr > state->keyword
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
301 || state->pending_newlines > 0))
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
302 /* We might be looking at STATE->keyword at some point.
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
303 Keep looking until we know for sure. */
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
304 {
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
305 if (*++state->cur_keyword_ptr == '\0')
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
306 /* Saw the whole keyword. Set SAW_KEYWORD flag to true. */
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
307 {
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
308 state->saw_keyword = 1;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
309
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
310 /* Reset the scanning pointer. */
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
311 state->cur_keyword_ptr = state->keyword;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
312
41084
052c2896e6ca Comment fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 40130
diff changeset
313 /* Canonicalize whitespace preceding a usage string. */
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
314 state->pending_newlines = 2;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
315 state->pending_spaces = 0;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
316
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
317 /* Skip any whitespace between the keyword and the
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
318 usage string. */
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
319 do
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
320 ch = getc (state->in_file);
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
321 while (ch == ' ' || ch == '\n');
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
322
46958
d7669c85c9cb (scan_keyword_or_put_char, write_c_args): Use `fn'
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 46394
diff changeset
323 /* Output the open-paren we just read. */
d7669c85c9cb (scan_keyword_or_put_char, write_c_args): Use `fn'
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 46394
diff changeset
324 put_char (ch, state);
d7669c85c9cb (scan_keyword_or_put_char, write_c_args): Use `fn'
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 46394
diff changeset
325
d7669c85c9cb (scan_keyword_or_put_char, write_c_args): Use `fn'
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 46394
diff changeset
326 /* Skip the function name and replace it with `fn'. */
d7669c85c9cb (scan_keyword_or_put_char, write_c_args): Use `fn'
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 46394
diff changeset
327 do
d7669c85c9cb (scan_keyword_or_put_char, write_c_args): Use `fn'
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 46394
diff changeset
328 ch = getc (state->in_file);
d7669c85c9cb (scan_keyword_or_put_char, write_c_args): Use `fn'
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 46394
diff changeset
329 while (ch != ' ' && ch != ')');
d7669c85c9cb (scan_keyword_or_put_char, write_c_args): Use `fn'
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 46394
diff changeset
330 put_char ('f', state);
d7669c85c9cb (scan_keyword_or_put_char, write_c_args): Use `fn'
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 46394
diff changeset
331 put_char ('n', state);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48313
diff changeset
332
46958
d7669c85c9cb (scan_keyword_or_put_char, write_c_args): Use `fn'
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 46394
diff changeset
333 /* Put back the last character. */
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
334 ungetc (ch, state->in_file);
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
335 }
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
336 }
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
337 else
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
338 {
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
339 if (state->keyword && state->cur_keyword_ptr > state->keyword)
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
340 /* We scanned the beginning of a potential usage
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
341 keyword, but it was a false alarm. Output the
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
342 part we scanned. */
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
343 {
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
344 char *p;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
345
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
346 for (p = state->keyword; p < state->cur_keyword_ptr; p++)
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
347 put_char (*p, state);
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
348
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
349 state->cur_keyword_ptr = state->keyword;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
350 }
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
351
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
352 put_char (ch, state);
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
353 }
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
354 }
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
355
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
356
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
357 /* Skip a C string or C-style comment from INFILE, and return the
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
358 character that follows. COMMENT non-zero means skip a comment. If
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
359 PRINTFLAG is positive, output string contents to outfile. If it is
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
360 negative, store contents in buf. Convert escape sequences \n and
40112
3a1cdf305658 (read_c_string_or_comment): Add SAW_USAGE parameter, and implement
Miles Bader <miles@gnu.org>
parents: 39986
diff changeset
361 \t to newline and tab; discard \ followed by newline.
3a1cdf305658 (read_c_string_or_comment): Add SAW_USAGE parameter, and implement
Miles Bader <miles@gnu.org>
parents: 39986
diff changeset
362 If SAW_USAGE is non-zero, then any occurances of the string `usage:'
3a1cdf305658 (read_c_string_or_comment): Add SAW_USAGE parameter, and implement
Miles Bader <miles@gnu.org>
parents: 39986
diff changeset
363 at the beginning of a line will be removed, and *SAW_USAGE set to
3a1cdf305658 (read_c_string_or_comment): Add SAW_USAGE parameter, and implement
Miles Bader <miles@gnu.org>
parents: 39986
diff changeset
364 true if any were encountered. */
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
365
9491
dd3b83e4ceb0 Eliminate some -Wall warnings.
David J. MacKenzie <djm@gnu.org>
parents: 7564
diff changeset
366 int
40112
3a1cdf305658 (read_c_string_or_comment): Add SAW_USAGE parameter, and implement
Miles Bader <miles@gnu.org>
parents: 39986
diff changeset
367 read_c_string_or_comment (infile, printflag, comment, saw_usage)
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
368 FILE *infile;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
369 int printflag;
40112
3a1cdf305658 (read_c_string_or_comment): Add SAW_USAGE parameter, and implement
Miles Bader <miles@gnu.org>
parents: 39986
diff changeset
370 int *saw_usage;
48313
85a91bbe8e45 (read_c_string_or_comment): Declare msgno.
Dave Love <fx@gnu.org>
parents: 46958
diff changeset
371 int comment;
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
372 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
373 register int c;
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
374 struct rcsoc_state state;
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
375
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
376 state.in_file = infile;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
377 state.buf_ptr = (printflag < 0 ? buf : 0);
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
378 state.out_file = (printflag > 0 ? outfile : 0);
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
379 state.pending_spaces = 0;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
380 state.pending_newlines = 0;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
381 state.keyword = (saw_usage ? "usage:" : 0);
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
382 state.cur_keyword_ptr = state.keyword;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
383 state.saw_keyword = 0;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
384
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
385 c = getc (infile);
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
386 if (comment)
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
387 while (c == '\n' || c == '\r' || c == '\t' || c == ' ')
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
388 c = getc (infile);
40112
3a1cdf305658 (read_c_string_or_comment): Add SAW_USAGE parameter, and implement
Miles Bader <miles@gnu.org>
parents: 39986
diff changeset
389
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
390 while (c != EOF)
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
391 {
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
392 while (c != EOF && (comment ? c != '*' : c != '"'))
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
393 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
394 if (c == '\\')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
395 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
396 c = getc (infile);
25532
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
397 if (c == '\n' || c == '\r')
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
398 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
399 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
400 continue;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
401 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
402 if (c == 'n')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
403 c = '\n';
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
404 if (c == 't')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
405 c = '\t';
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
406 }
42566
6c1d733d1794 Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents: 41084
diff changeset
407
39986
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
408 if (c == ' ')
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
409 state.pending_spaces++;
39986
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
410 else if (c == '\n')
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
411 {
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
412 state.pending_newlines++;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
413 state.pending_spaces = 0;
39986
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
414 }
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
415 else
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
416 scan_keyword_or_put_char (c, &state);
39986
c9411c9fab91 (put_char): New function.
Miles Bader <miles@gnu.org>
parents: 39976
diff changeset
417
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
418 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
419 }
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
420
39949
f169b10c8e00 (read_c_string_or_comment): Don't drop a '*'
Gerd Moellmann <gerd@gnu.org>
parents: 39897
diff changeset
421 if (c != EOF)
f169b10c8e00 (read_c_string_or_comment): Don't drop a '*'
Gerd Moellmann <gerd@gnu.org>
parents: 39897
diff changeset
422 c = getc (infile);
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
423
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
424 if (comment)
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
425 {
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
426 if (c == '/')
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
427 {
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
428 c = getc (infile);
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
429 break;
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
430 }
42566
6c1d733d1794 Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents: 41084
diff changeset
431
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
432 scan_keyword_or_put_char ('*', &state);
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
433 }
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
434 else
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
435 {
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
436 if (c != '"')
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
437 break;
42566
6c1d733d1794 Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents: 41084
diff changeset
438
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
439 /* If we had a "", concatenate the two strings. */
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
440 c = getc (infile);
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
441 }
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
442 }
42566
6c1d733d1794 Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents: 41084
diff changeset
443
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
444 if (printflag < 0)
40130
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
445 *state.buf_ptr = 0;
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
446
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
447 if (saw_usage)
89269b100451 (struct rcsoc_state): New type.
Miles Bader <miles@gnu.org>
parents: 40112
diff changeset
448 *saw_usage = state.saw_keyword;
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
449
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
450 return c;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
451 }
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
452
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
453
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
454
5604
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
455 /* Write to file OUT the argument names of function FUNC, whose text is in BUF.
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
456 MINARGS and MAXARGS are the minimum and maximum number of arguments. */
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
457
9491
dd3b83e4ceb0 Eliminate some -Wall warnings.
David J. MacKenzie <djm@gnu.org>
parents: 7564
diff changeset
458 void
5604
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
459 write_c_args (out, func, buf, minargs, maxargs)
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
460 FILE *out;
5604
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
461 char *func, *buf;
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
462 int minargs, maxargs;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
463 {
1206
de54d705652f *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 753
diff changeset
464 register char *p;
1250
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
465 int in_ident = 0;
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
466 int just_spaced = 0;
5604
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
467 int need_space = 1;
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
468
46958
d7669c85c9cb (scan_keyword_or_put_char, write_c_args): Use `fn'
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 46394
diff changeset
469 fprintf (out, "(fn");
5604
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
470
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
471 if (*buf == '(')
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
472 ++buf;
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
473
1206
de54d705652f *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 753
diff changeset
474 for (p = buf; *p; p++)
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
475 {
1250
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
476 char c = *p;
2483
b4145a12422d * make-docfile.c (write_c_args): Print an argument named "defalt"
Jim Blandy <jimb@redhat.com>
parents: 1676
diff changeset
477 int ident_start = 0;
1250
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
478
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
479 /* Notice when we start printing a new identifier. */
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
480 if ((('A' <= c && c <= 'Z')
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
481 || ('a' <= c && c <= 'z')
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
482 || ('0' <= c && c <= '9')
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
483 || c == '_')
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
484 != in_ident)
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
485 {
1250
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
486 if (!in_ident)
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
487 {
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
488 in_ident = 1;
2483
b4145a12422d * make-docfile.c (write_c_args): Print an argument named "defalt"
Jim Blandy <jimb@redhat.com>
parents: 1676
diff changeset
489 ident_start = 1;
1206
de54d705652f *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 753
diff changeset
490
5604
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
491 if (need_space)
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
492 putc (' ', out);
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
493
1250
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
494 if (minargs == 0 && maxargs > 0)
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
495 fprintf (out, "&optional ");
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
496 just_spaced = 1;
1206
de54d705652f *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 753
diff changeset
497
1250
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
498 minargs--;
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
499 maxargs--;
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
500 }
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
501 else
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
502 in_ident = 0;
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
503 }
638
40b255f55df3 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 168
diff changeset
504
1250
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
505 /* Print the C argument list as it would appear in lisp:
35293
39b2af5f7ee2 (write_c_args): Print newlines as spaces.
Gerd Moellmann <gerd@gnu.org>
parents: 28401
diff changeset
506 print underscores as hyphens, and print commas and newlines
39b2af5f7ee2 (write_c_args): Print newlines as spaces.
Gerd Moellmann <gerd@gnu.org>
parents: 28401
diff changeset
507 as spaces. Collapse adjacent spaces into one. */
39b2af5f7ee2 (write_c_args): Print newlines as spaces.
Gerd Moellmann <gerd@gnu.org>
parents: 28401
diff changeset
508 if (c == '_')
39b2af5f7ee2 (write_c_args): Print newlines as spaces.
Gerd Moellmann <gerd@gnu.org>
parents: 28401
diff changeset
509 c = '-';
39b2af5f7ee2 (write_c_args): Print newlines as spaces.
Gerd Moellmann <gerd@gnu.org>
parents: 28401
diff changeset
510 else if (c == ',' || c == '\n')
39b2af5f7ee2 (write_c_args): Print newlines as spaces.
Gerd Moellmann <gerd@gnu.org>
parents: 28401
diff changeset
511 c = ' ';
1250
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
512
2483
b4145a12422d * make-docfile.c (write_c_args): Print an argument named "defalt"
Jim Blandy <jimb@redhat.com>
parents: 1676
diff changeset
513 /* In C code, `default' is a reserved word, so we spell it
b4145a12422d * make-docfile.c (write_c_args): Print an argument named "defalt"
Jim Blandy <jimb@redhat.com>
parents: 1676
diff changeset
514 `defalt'; unmangle that here. */
b4145a12422d * make-docfile.c (write_c_args): Print an argument named "defalt"
Jim Blandy <jimb@redhat.com>
parents: 1676
diff changeset
515 if (ident_start
b4145a12422d * make-docfile.c (write_c_args): Print an argument named "defalt"
Jim Blandy <jimb@redhat.com>
parents: 1676
diff changeset
516 && strncmp (p, "defalt", 6) == 0
b4145a12422d * make-docfile.c (write_c_args): Print an argument named "defalt"
Jim Blandy <jimb@redhat.com>
parents: 1676
diff changeset
517 && ! (('A' <= p[6] && p[6] <= 'Z')
b4145a12422d * make-docfile.c (write_c_args): Print an argument named "defalt"
Jim Blandy <jimb@redhat.com>
parents: 1676
diff changeset
518 || ('a' <= p[6] && p[6] <= 'z')
b4145a12422d * make-docfile.c (write_c_args): Print an argument named "defalt"
Jim Blandy <jimb@redhat.com>
parents: 1676
diff changeset
519 || ('0' <= p[6] && p[6] <= '9')
b4145a12422d * make-docfile.c (write_c_args): Print an argument named "defalt"
Jim Blandy <jimb@redhat.com>
parents: 1676
diff changeset
520 || p[6] == '_'))
b4145a12422d * make-docfile.c (write_c_args): Print an argument named "defalt"
Jim Blandy <jimb@redhat.com>
parents: 1676
diff changeset
521 {
7564
d5d803ffff27 (write_c_args): Put `default' in upper case.
Richard M. Stallman <rms@gnu.org>
parents: 5604
diff changeset
522 fprintf (out, "DEFAULT");
2483
b4145a12422d * make-docfile.c (write_c_args): Print an argument named "defalt"
Jim Blandy <jimb@redhat.com>
parents: 1676
diff changeset
523 p += 5;
b4145a12422d * make-docfile.c (write_c_args): Print an argument named "defalt"
Jim Blandy <jimb@redhat.com>
parents: 1676
diff changeset
524 in_ident = 0;
b4145a12422d * make-docfile.c (write_c_args): Print an argument named "defalt"
Jim Blandy <jimb@redhat.com>
parents: 1676
diff changeset
525 just_spaced = 0;
b4145a12422d * make-docfile.c (write_c_args): Print an argument named "defalt"
Jim Blandy <jimb@redhat.com>
parents: 1676
diff changeset
526 }
35293
39b2af5f7ee2 (write_c_args): Print newlines as spaces.
Gerd Moellmann <gerd@gnu.org>
parents: 28401
diff changeset
527 else if (c != ' ' || !just_spaced)
5604
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
528 {
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
529 if (c >= 'a' && c <= 'z')
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
530 /* Upcase the letter. */
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
531 c += 'A' - 'a';
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
532 putc (c, out);
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
533 }
1250
5788741d1eaa entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1206
diff changeset
534
35293
39b2af5f7ee2 (write_c_args): Print newlines as spaces.
Gerd Moellmann <gerd@gnu.org>
parents: 28401
diff changeset
535 just_spaced = c == ' ';
5604
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
536 need_space = 0;
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
537 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
538 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
539
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
540 /* Read through a c file. If a .o file is named,
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
541 the corresponding .c file is read instead.
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
542 Looks for DEFUN constructs such as are defined in ../src/lisp.h.
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
543 Accepts any word starting DEF... so it finds DEFSIMPLE and DEFPRED. */
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
544
9491
dd3b83e4ceb0 Eliminate some -Wall warnings.
David J. MacKenzie <djm@gnu.org>
parents: 7564
diff changeset
545 int
5449
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
546 scan_c_file (filename, mode)
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
547 char *filename, *mode;
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
548 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
549 FILE *infile;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
550 register int c;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
551 register int commas;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
552 register int defunflag;
1676
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
553 register int defvarperbufferflag;
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
554 register int defvarflag;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
555 int minargs, maxargs;
11413
9cd115f44483 (scan_c_file): At end, restore file name last char to its original value.
Richard M. Stallman <rms@gnu.org>
parents: 10199
diff changeset
556 int extension = filename[strlen (filename) - 1];
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
557
11413
9cd115f44483 (scan_c_file): At end, restore file name last char to its original value.
Richard M. Stallman <rms@gnu.org>
parents: 10199
diff changeset
558 if (extension == 'o')
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
559 filename[strlen (filename) - 1] = 'c';
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
560
5449
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
561 infile = fopen (filename, mode);
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
562
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
563 /* No error if non-ex input file */
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
564 if (infile == NULL)
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
565 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
566 perror (filename);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
567 return 0;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
568 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
569
41084
052c2896e6ca Comment fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 40130
diff changeset
570 /* Reset extension to be able to detect duplicate files. */
11413
9cd115f44483 (scan_c_file): At end, restore file name last char to its original value.
Richard M. Stallman <rms@gnu.org>
parents: 10199
diff changeset
571 filename[strlen (filename) - 1] = extension;
9cd115f44483 (scan_c_file): At end, restore file name last char to its original value.
Richard M. Stallman <rms@gnu.org>
parents: 10199
diff changeset
572
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
573 c = '\n';
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
574 while (!feof (infile))
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
575 {
39976
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
576 int doc_keyword = 0;
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
577
25532
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
578 if (c != '\n' && c != '\r')
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
579 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
580 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
581 continue;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
582 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
583 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
584 if (c == ' ')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
585 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
586 while (c == ' ')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
587 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
588 if (c != 'D')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
589 continue;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
590 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
591 if (c != 'E')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
592 continue;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
593 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
594 if (c != 'F')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
595 continue;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
596 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
597 if (c != 'V')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
598 continue;
1676
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
599 c = getc (infile);
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
600 if (c != 'A')
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
601 continue;
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
602 c = getc (infile);
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
603 if (c != 'R')
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
604 continue;
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
605 c = getc (infile);
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
606 if (c != '_')
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
607 continue;
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
608
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
609 defvarflag = 1;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
610 defunflag = 0;
1676
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
611
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
612 c = getc (infile);
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
613 defvarperbufferflag = (c == 'P');
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
614
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
615 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
616 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
617 else if (c == 'D')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
618 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
619 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
620 if (c != 'E')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
621 continue;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
622 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
623 if (c != 'F')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
624 continue;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
625 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
626 defunflag = c == 'U';
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
627 defvarflag = 0;
58079
bbf8071c5ce8 (scan_c_file): Set defvarperbufferflag to silence compiler.
Kim F. Storm <storm@cua.dk>
parents: 55442
diff changeset
628 defvarperbufferflag = 0;
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
629 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
630 else continue;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
631
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
632 while (c != '(')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
633 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
634 if (c < 0)
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
635 goto eof;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
636 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
637 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
638
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
639 /* Lisp variable or function name. */
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
640 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
641 if (c != '"')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
642 continue;
40112
3a1cdf305658 (read_c_string_or_comment): Add SAW_USAGE parameter, and implement
Miles Bader <miles@gnu.org>
parents: 39986
diff changeset
643 c = read_c_string_or_comment (infile, -1, 0, 0);
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
644
39976
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
645 /* DEFVAR_LISP ("name", addr, "doc")
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
646 DEFVAR_LISP ("name", addr /\* doc *\/)
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
647 DEFVAR_LISP ("name", addr, doc: /\* doc *\/) */
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
648
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
649 if (defunflag)
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
650 commas = 5;
1676
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
651 else if (defvarperbufferflag)
e8b3c6b52c1e * make-docfile.c (scan_c_file): Since DEFVAR_PER_BUFFER now takes
Jim Blandy <jimb@redhat.com>
parents: 1250
diff changeset
652 commas = 2;
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
653 else if (defvarflag)
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
654 commas = 1;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
655 else /* For DEFSIMPLE and DEFPRED */
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
656 commas = 2;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
657
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
658 while (commas)
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
659 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
660 if (c == ',')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
661 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
662 commas--;
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
663
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
664 if (defunflag && (commas == 1 || commas == 2))
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
665 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
666 do
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
667 c = getc (infile);
25532
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
668 while (c == ' ' || c == '\n' || c == '\r' || c == '\t');
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
669 if (c < 0)
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
670 goto eof;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
671 ungetc (c, infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
672 if (commas == 2) /* pick up minargs */
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
673 fscanf (infile, "%d", &minargs);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
674 else /* pick up maxargs */
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
675 if (c == 'M' || c == 'U') /* MANY || UNEVALLED */
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
676 maxargs = -1;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
677 else
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
678 fscanf (infile, "%d", &maxargs);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
679 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
680 }
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
681
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
682 if (c == EOF)
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
683 goto eof;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
684 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
685 }
39976
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
686
25532
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
687 while (c == ' ' || c == '\n' || c == '\r' || c == '\t')
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
688 c = getc (infile);
42566
6c1d733d1794 Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents: 41084
diff changeset
689
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
690 if (c == '"')
40112
3a1cdf305658 (read_c_string_or_comment): Add SAW_USAGE parameter, and implement
Miles Bader <miles@gnu.org>
parents: 39986
diff changeset
691 c = read_c_string_or_comment (infile, 0, 0, 0);
42566
6c1d733d1794 Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents: 41084
diff changeset
692
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
693 while (c != EOF && c != ',' && c != '/')
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
694 c = getc (infile);
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
695 if (c == ',')
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
696 {
39976
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
697 c = getc (infile);
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
698 while (c == ' ' || c == '\n' || c == '\r' || c == '\t')
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
699 c = getc (infile);
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
700 while ((c >= 'a' && c <= 'z') || (c >= 'Z' && c <= 'Z'))
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
701 c = getc (infile);
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
702 if (c == ':')
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
703 {
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
704 doc_keyword = 1;
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
705 c = getc (infile);
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
706 while (c == ' ' || c == '\n' || c == '\r' || c == '\t')
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
707 c = getc (infile);
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
708 }
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
709 }
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
710
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
711 if (c == '"'
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
712 || (c == '/'
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
713 && (c = getc (infile),
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
714 ungetc (c, infile),
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
715 c == '*')))
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
716 {
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
717 int comment = c != '"';
40112
3a1cdf305658 (read_c_string_or_comment): Add SAW_USAGE parameter, and implement
Miles Bader <miles@gnu.org>
parents: 39986
diff changeset
718 int saw_usage;
42566
6c1d733d1794 Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents: 41084
diff changeset
719
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
720 putc (037, outfile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
721 putc (defvarflag ? 'V' : 'F', outfile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
722 fprintf (outfile, "%s\n", buf);
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
723
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
724 if (comment)
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
725 getc (infile); /* Skip past `*' */
40112
3a1cdf305658 (read_c_string_or_comment): Add SAW_USAGE parameter, and implement
Miles Bader <miles@gnu.org>
parents: 39986
diff changeset
726 c = read_c_string_or_comment (infile, 1, comment, &saw_usage);
168
e0ec73426aea *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 164
diff changeset
727
e0ec73426aea *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 164
diff changeset
728 /* If this is a defun, find the arguments and print them. If
e0ec73426aea *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 164
diff changeset
729 this function takes MANY or UNEVALLED args, then the C source
e0ec73426aea *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 164
diff changeset
730 won't give the names of the arguments, so we shouldn't bother
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
731 trying to find them.
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
732
39976
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
733 Various doc-string styles:
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
734 0: DEFUN (..., "DOC") (args) [!comment]
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
735 1: DEFUN (..., /\* DOC *\/ (args)) [comment && !doc_keyword]
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
736 2: DEFUN (..., doc: /\* DOC *\/) (args) [comment && doc_keyword]
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
737 */
40112
3a1cdf305658 (read_c_string_or_comment): Add SAW_USAGE parameter, and implement
Miles Bader <miles@gnu.org>
parents: 39986
diff changeset
738 if (defunflag && maxargs != -1 && !saw_usage)
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
739 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
740 char argbuf[1024], *p = argbuf;
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
741
39976
fa2e20b1440c (scan_c_file): Handle `new style' doc strings in comments [with `doc:'
Miles Bader <miles@gnu.org>
parents: 39949
diff changeset
742 if (!comment || doc_keyword)
39897
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
743 while (c != ')')
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
744 {
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
745 if (c < 0)
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
746 goto eof;
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
747 c = getc (infile);
3e6f2f2a0a62 (read_c_string_or_comment): Renamed from
Gerd Moellmann <gerd@gnu.org>
parents: 35293
diff changeset
748 }
42566
6c1d733d1794 Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents: 41084
diff changeset
749
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
750 /* Skip into arguments. */
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
751 while (c != '(')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
752 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
753 if (c < 0)
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
754 goto eof;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
755 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
756 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
757 /* Copy arguments into ARGBUF. */
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
758 *p++ = c;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
759 do
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
760 *p++ = c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
761 while (c != ')');
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
762 *p = '\0';
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
763 /* Output them. */
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
764 fprintf (outfile, "\n\n");
5604
32ac07bd58ef Make the argument list output look more like the Lisp docstrings do.
Roland McGrath <roland@gnu.org>
parents: 5449
diff changeset
765 write_c_args (outfile, buf, argbuf, minargs, maxargs);
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
766 }
46394
1dd68094031a (scan_c_file): Warn about missing `usage' info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 42566
diff changeset
767 else if (defunflag && maxargs == -1 && !saw_usage)
1dd68094031a (scan_c_file): Warn about missing `usage' info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 42566
diff changeset
768 /* The DOC should provide the usage form. */
1dd68094031a (scan_c_file): Warn about missing `usage' info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 42566
diff changeset
769 fprintf (stderr, "Missing `usage' for function `%s'.\n", buf);
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
770 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
771 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
772 eof:
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
773 fclose (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
774 return 0;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
775 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
776
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
777 /* Read a file of Lisp code, compiled or interpreted.
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
778 Looks for
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
779 (defun NAME ARGS DOCSTRING ...)
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
780 (defmacro NAME ARGS DOCSTRING ...)
28401
65f19ae2c578 (scan_lisp_file): Also look for `defsubst'.
Andreas Schwab <schwab@suse.de>
parents: 26083
diff changeset
781 (defsubst NAME ARGS DOCSTRING ...)
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
782 (autoload (quote NAME) FILE DOCSTRING ...)
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
783 (defvar NAME VALUE DOCSTRING)
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
784 (defconst NAME VALUE DOCSTRING)
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
785 (fset (quote NAME) (make-byte-code ... DOCSTRING ...))
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
786 (fset (quote NAME) #[... DOCSTRING ...])
2966
e936d56c2354 (scan_lisp_file): Recognize defalias like fset.
Richard M. Stallman <rms@gnu.org>
parents: 2814
diff changeset
787 (defalias (quote NAME) #[... DOCSTRING ...])
19636
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
788 (custom-declare-variable (quote NAME) VALUE DOCSTRING ...)
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
789 starting in column zero.
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
790 (quote NAME) may appear as 'NAME as well.
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
791
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
792 We also look for #@LENGTH CONTENTS^_ at the beginning of the line.
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
793 When we find that, we save it for the following defining-form,
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
794 and we use that instead of reading a doc string within that defining-form.
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
795
42566
6c1d733d1794 Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents: 41084
diff changeset
796 For defvar, defconst, and fset we skip to the docstring with a kludgy
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
797 formatting convention: all docstrings must appear on the same line as the
42566
6c1d733d1794 Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents: 41084
diff changeset
798 initial open-paren (the one in column zero) and must contain a backslash
25536
2cfdaebe325c Fix comment about conventions for Lisp files.
Dave Love <fx@gnu.org>
parents: 25532
diff changeset
799 and a newline immediately after the initial double-quote. No newlines
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
800 must appear between the beginning of the form and the first double-quote.
25536
2cfdaebe325c Fix comment about conventions for Lisp files.
Dave Love <fx@gnu.org>
parents: 25532
diff changeset
801 For defun, defmacro, and autoload, we know how to skip over the
2cfdaebe325c Fix comment about conventions for Lisp files.
Dave Love <fx@gnu.org>
parents: 25532
diff changeset
802 arglist, but the doc string must still have a backslash and newline
42566
6c1d733d1794 Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents: 41084
diff changeset
803 immediately after the double quote.
25536
2cfdaebe325c Fix comment about conventions for Lisp files.
Dave Love <fx@gnu.org>
parents: 25532
diff changeset
804 The only source files that must follow this convention are preloaded
2cfdaebe325c Fix comment about conventions for Lisp files.
Dave Love <fx@gnu.org>
parents: 25532
diff changeset
805 uncompiled ones like loaddefs.el and bindings.el; aside
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
806 from that, it is always the .elc file that we look at, and they are no
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
807 problem because byte-compiler output follows this convention.
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
808 The NAME and DOCSTRING are output.
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
809 NAME is preceded by `F' for a function or `V' for a variable.
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
810 An entry is output only if DOCSTRING has \ newline just after the opening "
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
811 */
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
812
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
813 void
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
814 skip_white (infile)
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
815 FILE *infile;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
816 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
817 char c = ' ';
25532
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
818 while (c == ' ' || c == '\t' || c == '\n' || c == '\r')
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
819 c = getc (infile);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
820 ungetc (c, infile);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
821 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
822
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
823 void
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
824 read_lisp_symbol (infile, buffer)
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
825 FILE *infile;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
826 char *buffer;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
827 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
828 char c;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
829 char *fillp = buffer;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
830
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
831 skip_white (infile);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
832 while (1)
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
833 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
834 c = getc (infile);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
835 if (c == '\\')
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
836 *(++fillp) = getc (infile);
25532
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
837 else if (c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '(' || c == ')')
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
838 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
839 ungetc (c, infile);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
840 *fillp = 0;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
841 break;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
842 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
843 else
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
844 *fillp++ = c;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
845 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
846
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
847 if (! buffer[0])
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
848 fprintf (stderr, "## expected a symbol, got '%c'\n", c);
42566
6c1d733d1794 Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents: 41084
diff changeset
849
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
850 skip_white (infile);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
851 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
852
9491
dd3b83e4ceb0 Eliminate some -Wall warnings.
David J. MacKenzie <djm@gnu.org>
parents: 7564
diff changeset
853 int
5449
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
854 scan_lisp_file (filename, mode)
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
855 char *filename, *mode;
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
856 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
857 FILE *infile;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
858 register int c;
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
859 char *saved_string = 0;
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
860
5449
296db649863d [MSDOS]: Use text/binary mode as appropriate.
Richard M. Stallman <rms@gnu.org>
parents: 5317
diff changeset
861 infile = fopen (filename, mode);
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
862 if (infile == NULL)
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
863 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
864 perror (filename);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
865 return 0; /* No error */
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
866 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
867
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
868 c = '\n';
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
869 while (!feof (infile))
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
870 {
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
871 char buffer[BUFSIZ];
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
872 char type;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
873
25809
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
874 /* If not at end of line, skip till we get to one. */
25532
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
875 if (c != '\n' && c != '\r')
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
876 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
877 c = getc (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
878 continue;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
879 }
25809
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
880 /* Skip the line break. */
25821
9a999c51f856 (scan_lisp_file): Fix typo causing infloop.
Dave Love <fx@gnu.org>
parents: 25809
diff changeset
881 while (c == '\n' || c == '\r')
25809
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
882 c = getc (infile);
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
883 /* Detect a dynamic doc string and save it for the next expression. */
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
884 if (c == '#')
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
885 {
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
886 c = getc (infile);
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
887 if (c == '@')
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
888 {
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
889 int length = 0;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
890 int i;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
891
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
892 /* Read the length. */
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
893 while ((c = getc (infile),
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
894 c >= '0' && c <= '9'))
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
895 {
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
896 length *= 10;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
897 length += c - '0';
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
898 }
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
899
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
900 /* The next character is a space that is counted in the length
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
901 but not part of the doc string.
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
902 We already read it, so just ignore it. */
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
903 length--;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
904
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
905 /* Read in the contents. */
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
906 if (saved_string != 0)
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
907 free (saved_string);
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
908 saved_string = (char *) malloc (length);
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
909 for (i = 0; i < length; i++)
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
910 saved_string[i] = getc (infile);
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
911 /* The last character is a ^_.
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
912 That is needed in the .elc file
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
913 but it is redundant in DOC. So get rid of it here. */
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
914 saved_string[length - 1] = 0;
25809
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
915 /* Skip the line break. */
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
916 while (c == '\n' && c == '\r')
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
917 c = getc (infile);
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
918 /* Skip the following line. */
25532
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
919 while (c != '\n' && c != '\r')
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
920 c = getc (infile);
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
921 }
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
922 continue;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
923 }
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
924
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
925 if (c != '(')
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
926 continue;
164
aba3ff2b9eb4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 162
diff changeset
927
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
928 read_lisp_symbol (infile, buffer);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
929
25809
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
930 if (! strcmp (buffer, "defun")
28401
65f19ae2c578 (scan_lisp_file): Also look for `defsubst'.
Andreas Schwab <schwab@suse.de>
parents: 26083
diff changeset
931 || ! strcmp (buffer, "defmacro")
65f19ae2c578 (scan_lisp_file): Also look for `defsubst'.
Andreas Schwab <schwab@suse.de>
parents: 26083
diff changeset
932 || ! strcmp (buffer, "defsubst"))
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
933 {
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
934 type = 'F';
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
935 read_lisp_symbol (infile, buffer);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
936
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
937 /* Skip the arguments: either "nil" or a list in parens */
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
938
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
939 c = getc (infile);
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
940 if (c == 'n') /* nil */
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
941 {
25809
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
942 if ((c = getc (infile)) != 'i'
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
943 || (c = getc (infile)) != 'l')
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
944 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
945 fprintf (stderr, "## unparsable arglist in %s (%s)\n",
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
946 buffer, filename);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
947 continue;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
948 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
949 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
950 else if (c != '(')
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
951 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
952 fprintf (stderr, "## unparsable arglist in %s (%s)\n",
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
953 buffer, filename);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
954 continue;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
955 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
956 else
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
957 while (c != ')')
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
958 c = getc (infile);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
959 skip_white (infile);
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
960
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
961 /* If the next three characters aren't `dquote bslash newline'
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
962 then we're not reading a docstring.
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
963 */
25809
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
964 if ((c = getc (infile)) != '"'
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
965 || (c = getc (infile)) != '\\'
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
966 || ((c = getc (infile)) != '\n' && c != '\r'))
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
967 {
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
968 #ifdef DEBUG
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
969 fprintf (stderr, "## non-docstring in %s (%s)\n",
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
970 buffer, filename);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
971 #endif
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
972 continue;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
973 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
974 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
975
25809
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
976 else if (! strcmp (buffer, "defvar")
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
977 || ! strcmp (buffer, "defconst"))
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
978 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
979 char c1 = 0, c2 = 0;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
980 type = 'V';
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
981 read_lisp_symbol (infile, buffer);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
982
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
983 if (saved_string == 0)
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
984 {
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
985
25809
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
986 /* Skip until the end of line; remember two previous chars. */
25532
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
987 while (c != '\n' && c != '\r' && c >= 0)
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
988 {
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
989 c2 = c1;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
990 c1 = c;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
991 c = getc (infile);
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
992 }
42566
6c1d733d1794 Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents: 41084
diff changeset
993
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
994 /* If two previous characters were " and \,
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
995 this is a doc string. Otherwise, there is none. */
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
996 if (c2 != '"' || c1 != '\\')
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
997 {
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
998 #ifdef DEBUG
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
999 fprintf (stderr, "## non-docstring in %s (%s)\n",
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1000 buffer, filename);
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1001 #endif
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1002 continue;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1003 }
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1004 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1005 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1006
19636
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1007 else if (! strcmp (buffer, "custom-declare-variable"))
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1008 {
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1009 char c1 = 0, c2 = 0;
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1010 type = 'V';
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1011
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1012 c = getc (infile);
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1013 if (c == '\'')
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1014 read_lisp_symbol (infile, buffer);
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1015 else
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1016 {
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1017 if (c != '(')
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1018 {
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1019 fprintf (stderr,
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1020 "## unparsable name in custom-declare-variable in %s\n",
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1021 filename);
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1022 continue;
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1023 }
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1024 read_lisp_symbol (infile, buffer);
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1025 if (strcmp (buffer, "quote"))
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1026 {
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1027 fprintf (stderr,
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1028 "## unparsable name in custom-declare-variable in %s\n",
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1029 filename);
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1030 continue;
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1031 }
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1032 read_lisp_symbol (infile, buffer);
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1033 c = getc (infile);
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1034 if (c != ')')
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1035 {
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1036 fprintf (stderr,
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1037 "## unparsable quoted name in custom-declare-variable in %s\n",
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1038 filename);
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1039 continue;
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1040 }
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1041 }
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1042
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1043 if (saved_string == 0)
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1044 {
25809
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
1045 /* Skip to end of line; remember the two previous chars. */
25532
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
1046 while (c != '\n' && c != '\r' && c >= 0)
19636
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1047 {
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1048 c2 = c1;
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1049 c1 = c;
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1050 c = getc (infile);
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1051 }
42566
6c1d733d1794 Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents: 41084
diff changeset
1052
19636
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1053 /* If two previous characters were " and \,
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1054 this is a doc string. Otherwise, there is none. */
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1055 if (c2 != '"' || c1 != '\\')
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1056 {
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1057 #ifdef DEBUG
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1058 fprintf (stderr, "## non-docstring in %s (%s)\n",
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1059 buffer, filename);
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1060 #endif
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1061 continue;
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1062 }
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1063 }
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1064 }
77fa90ed939d (scan_lisp_file): Handle custom-declare-variable.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
1065
2966
e936d56c2354 (scan_lisp_file): Recognize defalias like fset.
Richard M. Stallman <rms@gnu.org>
parents: 2814
diff changeset
1066 else if (! strcmp (buffer, "fset") || ! strcmp (buffer, "defalias"))
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1067 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1068 char c1 = 0, c2 = 0;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1069 type = 'F';
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1070
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1071 c = getc (infile);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1072 if (c == '\'')
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1073 read_lisp_symbol (infile, buffer);
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1074 else
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1075 {
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1076 if (c != '(')
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1077 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1078 fprintf (stderr, "## unparsable name in fset in %s\n",
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1079 filename);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1080 continue;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1081 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1082 read_lisp_symbol (infile, buffer);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1083 if (strcmp (buffer, "quote"))
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1084 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1085 fprintf (stderr, "## unparsable name in fset in %s\n",
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1086 filename);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1087 continue;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1088 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1089 read_lisp_symbol (infile, buffer);
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1090 c = getc (infile);
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1091 if (c != ')')
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1092 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1093 fprintf (stderr,
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1094 "## unparsable quoted name in fset in %s\n",
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1095 filename);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1096 continue;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1097 }
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1098 }
164
aba3ff2b9eb4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 162
diff changeset
1099
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1100 if (saved_string == 0)
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1101 {
25809
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
1102 /* Skip to end of line; remember the two previous chars. */
25532
9ed9cbc425fe Include config.h not ../src/config.h.
Richard M. Stallman <rms@gnu.org>
parents: 25449
diff changeset
1103 while (c != '\n' && c != '\r' && c >= 0)
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1104 {
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1105 c2 = c1;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1106 c1 = c;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1107 c = getc (infile);
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1108 }
42566
6c1d733d1794 Remove unnecessary whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents: 41084
diff changeset
1109
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1110 /* If two previous characters were " and \,
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1111 this is a doc string. Otherwise, there is none. */
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1112 if (c2 != '"' || c1 != '\\')
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1113 {
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1114 #ifdef DEBUG
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1115 fprintf (stderr, "## non-docstring in %s (%s)\n",
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1116 buffer, filename);
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1117 #endif
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1118 continue;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1119 }
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1120 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1121 }
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1122
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1123 else if (! strcmp (buffer, "autoload"))
164
aba3ff2b9eb4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 162
diff changeset
1124 {
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1125 type = 'F';
164
aba3ff2b9eb4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 162
diff changeset
1126 c = getc (infile);
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1127 if (c == '\'')
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1128 read_lisp_symbol (infile, buffer);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1129 else
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1130 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1131 if (c != '(')
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1132 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1133 fprintf (stderr, "## unparsable name in autoload in %s\n",
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1134 filename);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1135 continue;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1136 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1137 read_lisp_symbol (infile, buffer);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1138 if (strcmp (buffer, "quote"))
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1139 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1140 fprintf (stderr, "## unparsable name in autoload in %s\n",
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1141 filename);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1142 continue;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1143 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1144 read_lisp_symbol (infile, buffer);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1145 c = getc (infile);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1146 if (c != ')')
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1147 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1148 fprintf (stderr,
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1149 "## unparsable quoted name in autoload in %s\n",
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1150 filename);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1151 continue;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1152 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1153 }
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1154 skip_white (infile);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1155 if ((c = getc (infile)) != '\"')
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1156 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1157 fprintf (stderr, "## autoload of %s unparsable (%s)\n",
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1158 buffer, filename);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1159 continue;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1160 }
40112
3a1cdf305658 (read_c_string_or_comment): Add SAW_USAGE parameter, and implement
Miles Bader <miles@gnu.org>
parents: 39986
diff changeset
1161 read_c_string_or_comment (infile, 0, 0, 0);
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1162 skip_white (infile);
164
aba3ff2b9eb4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 162
diff changeset
1163
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1164 if (saved_string == 0)
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1165 {
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1166 /* If the next three characters aren't `dquote bslash newline'
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1167 then we're not reading a docstring. */
25809
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
1168 if ((c = getc (infile)) != '"'
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
1169 || (c = getc (infile)) != '\\'
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
1170 || ((c = getc (infile)) != '\n' && c != '\r'))
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1171 {
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1172 #ifdef DEBUG
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1173 fprintf (stderr, "## non-docstring in %s (%s)\n",
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1174 buffer, filename);
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1175 #endif
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1176 continue;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1177 }
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1178 }
164
aba3ff2b9eb4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 162
diff changeset
1179 }
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1180
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1181 #ifdef DEBUG
25809
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
1182 else if (! strcmp (buffer, "if")
89230444d638 patched by pjr from diff by rms
Phillip Rulon <pjr@gnu.org>
parents: 25536
diff changeset
1183 || ! strcmp (buffer, "byte-code"))
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1184 ;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1185 #endif
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1186
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1187 else
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1188 {
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1189 #ifdef DEBUG
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1190 fprintf (stderr, "## unrecognised top-level form, %s (%s)\n",
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1191 buffer, filename);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1192 #endif
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1193 continue;
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1194 }
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1195
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1196 /* At this point, we should either use the previous
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1197 dynamic doc string in saved_string
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1198 or gobble a doc string from the input file.
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1200 In the latter case, the opening quote (and leading
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1201 backslash-newline) have already been read. */
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1202
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1203 putc (037, outfile);
753
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1204 putc (type, outfile);
8a4c2c149ec2 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 650
diff changeset
1205 fprintf (outfile, "%s\n", buffer);
10199
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1206 if (saved_string)
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1207 {
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1208 fputs (saved_string, outfile);
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1209 /* Don't use one dynamic doc string twice. */
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1210 free (saved_string);
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1211 saved_string = 0;
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1212 }
3e2571e22b61 (scan_lisp_file): Handle dynamic doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 9772
diff changeset
1213 else
40112
3a1cdf305658 (read_c_string_or_comment): Add SAW_USAGE parameter, and implement
Miles Bader <miles@gnu.org>
parents: 39986
diff changeset
1214 read_c_string_or_comment (infile, 1, 0, 0);
24
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1215 }
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1216 fclose (infile);
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1217 return 0;
2354a499c504 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1218 }
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
1219
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
1220 /* arch-tag: f7203aaf-991a-4238-acb5-601db56f2894
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
1221 (do not change this comment) */
55442
a47704955f8d Throughout, replace 0 destined for `exit' arg with `EXIT_SUCCESS'.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 55147
diff changeset
1222
a47704955f8d Throughout, replace 0 destined for `exit' arg with `EXIT_SUCCESS'.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 55147
diff changeset
1223 /* make-docfile.c ends here */