summaryrefslogtreecommitdiff
path: root/lib-src
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1997-08-31 17:05:53 +0000
committerRichard M. Stallman <rms@gnu.org>1997-08-31 17:05:53 +0000
commita24608cf14a0b19761c3c4d96359f563c92e9583 (patch)
treed1cd89754828f45490a2380cccd1dcf65cb12ad7 /lib-src
parent3c248dbd36617460130f2699a43e3796eb8bb0ee (diff)
downloademacs-a24608cf14a0b19761c3c4d96359f563c92e9583.tar.gz
(scan_lisp_file): Handle custom-declare-variable.
Diffstat (limited to 'lib-src')
-rw-r--r--lib-src/make-docfile.c63
1 files changed, 62 insertions, 1 deletions
diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c
index b0072672114..9fe30bd6c34 100644
--- a/lib-src/make-docfile.c
+++ b/lib-src/make-docfile.c
@@ -1,5 +1,5 @@
/* Generate doc-string file for GNU Emacs from source files.
- Copyright (C) 1985, 1986, 1992, 1993, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 92, 93, 94, 1997 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -523,6 +523,7 @@ scan_c_file (filename, mode)
(fset (quote NAME) (make-byte-code ... DOCSTRING ...))
(fset (quote NAME) #[... DOCSTRING ...])
(defalias (quote NAME) #[... DOCSTRING ...])
+ (custom-declare-variable (quote NAME) VALUE DOCSTRING ...)
starting in column zero.
(quote NAME) may appear as 'NAME as well.
@@ -732,6 +733,66 @@ scan_lisp_file (filename, mode)
}
}
+ else if (! strcmp (buffer, "custom-declare-variable"))
+ {
+ char c1 = 0, c2 = 0;
+ type = 'V';
+
+ c = getc (infile);
+ if (c == '\'')
+ read_lisp_symbol (infile, buffer);
+ else
+ {
+ if (c != '(')
+ {
+ fprintf (stderr,
+ "## unparsable name in custom-declare-variable in %s\n",
+ filename);
+ continue;
+ }
+ read_lisp_symbol (infile, buffer);
+ if (strcmp (buffer, "quote"))
+ {
+ fprintf (stderr,
+ "## unparsable name in custom-declare-variable in %s\n",
+ filename);
+ continue;
+ }
+ read_lisp_symbol (infile, buffer);
+ c = getc (infile);
+ if (c != ')')
+ {
+ fprintf (stderr,
+ "## unparsable quoted name in custom-declare-variable in %s\n",
+ filename);
+ continue;
+ }
+ }
+
+ if (saved_string == 0)
+ {
+ /* Skip until the first newline; remember the two previous
+ chars. */
+ while (c != '\n' && c >= 0)
+ {
+ c2 = c1;
+ c1 = c;
+ c = getc (infile);
+ }
+
+ /* If two previous characters were " and \,
+ this is a doc string. Otherwise, there is none. */
+ if (c2 != '"' || c1 != '\\')
+ {
+#ifdef DEBUG
+ fprintf (stderr, "## non-docstring in %s (%s)\n",
+ buffer, filename);
+#endif
+ continue;
+ }
+ }
+ }
+
else if (! strcmp (buffer, "fset") || ! strcmp (buffer, "defalias"))
{
char c1 = 0, c2 = 0;