From 069ad9ead4a4f1f48dceb3677ed4601799034a8f Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sun, 16 Jan 1994 08:35:01 +0000 Subject: 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. --- lib-src/make-docfile.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'lib-src') diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index 366c784075..b865845cfc 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); } } } -- cgit v1.2.3