summaryrefslogtreecommitdiff
path: root/lib-src/make-docfile.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1994-01-16 08:35:01 +0000
committerRoland McGrath <roland@gnu.org>1994-01-16 08:35:01 +0000
commit069ad9ead4a4f1f48dceb3677ed4601799034a8f (patch)
tree4fc22149d05a371d9e3c2a2f7a96db88b61d8b12 /lib-src/make-docfile.c
parenta1d528953c09ac8f78cc5efd9bc64265412221d3 (diff)
downloademacs-069ad9ead4a4f1f48dceb3677ed4601799034a8f.tar.gz
Make the argument list output look more like the Lisp docstrings do.
(write_c_args): Take new arg FUNC. Make output look like lisp call prototypes: (function ARG1 ARG2), upcasing arg names. (scan_c_file): Pass BUF to write_c_args for FUNC arg.
Diffstat (limited to 'lib-src/make-docfile.c')
-rw-r--r--lib-src/make-docfile.c27
1 files changed, 20 insertions, 7 deletions
diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c
index 366c784075f..b865845cfcf 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 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1992, 1993, 1994 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -153,19 +153,23 @@ read_c_string (infile, printflag)
return c;
}
-/* Write to file OUT the argument names of the function whose text is in BUF.
+/* Write to file OUT the argument names of function FUNC, whose text is in BUF.
MINARGS and MAXARGS are the minimum and maximum number of arguments. */
-write_c_args (out, buf, minargs, maxargs)
+write_c_args (out, func, buf, minargs, maxargs)
FILE *out;
- char *buf;
+ char *func, *buf;
int minargs, maxargs;
{
register char *p;
int in_ident = 0;
int just_spaced = 0;
+ int need_space = 1;
- fprintf (out, "arguments: ");
+ fprintf (out, "(%s", func);
+
+ if (*buf == '(')
+ ++buf;
for (p = buf; *p; p++)
{
@@ -184,6 +188,9 @@ write_c_args (out, buf, minargs, maxargs)
in_ident = 1;
ident_start = 1;
+ if (need_space)
+ putc (' ', out);
+
if (minargs == 0 && maxargs > 0)
fprintf (out, "&optional ");
just_spaced = 1;
@@ -216,9 +223,15 @@ write_c_args (out, buf, minargs, maxargs)
just_spaced = 0;
}
else if (c != ' ' || ! just_spaced)
- putc (c, out);
+ {
+ if (c >= 'a' && c <= 'z')
+ /* Upcase the letter. */
+ c += 'A' - 'a';
+ putc (c, out);
+ }
just_spaced = (c == ' ');
+ need_space = 0;
}
}
@@ -398,7 +411,7 @@ scan_c_file (filename, mode)
*p = '\0';
/* Output them. */
fprintf (outfile, "\n\n");
- write_c_args (outfile, argbuf, minargs, maxargs);
+ write_c_args (outfile, buf, argbuf, minargs, maxargs);
}
}
}