diff lib-src/make-docfile.c @ 5604:32ac07bd58ef

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.
author Roland McGrath <roland@gnu.org>
date Sun, 16 Jan 1994 08:35:01 +0000
parents 296db649863d
children d5d803ffff27
line wrap: on
line diff
--- a/lib-src/make-docfile.c	Sun Jan 16 04:35:38 1994 +0000
+++ b/lib-src/make-docfile.c	Sun Jan 16 08:35:01 1994 +0000
@@ -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 @@
   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 @@
 	      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 @@
 	  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 @@
 	      *p = '\0';
 	      /* Output them.  */
 	      fprintf (outfile, "\n\n");
-	      write_c_args (outfile, argbuf, minargs, maxargs);
+	      write_c_args (outfile, buf, argbuf, minargs, maxargs);
 	    }
 	}
     }