changeset 109181:61d8d0cf32a8

Make make-docfile understand DEFUN arguments written in standard C. * lib-src/make-docfile.c (write_c_args): Deal with type names in DEFUN arguments.
author Dan Nicolaescu <dann@ics.uci.edu>
date Thu, 08 Jul 2010 18:09:50 -0700
parents 6b6f31e8107e
children 843d932d732e c8a969d13eda 0b8608a36b55
files lib-src/ChangeLog lib-src/make-docfile.c
diffstat 2 files changed, 21 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lib-src/ChangeLog	Thu Jul 08 16:34:47 2010 -0700
+++ b/lib-src/ChangeLog	Thu Jul 08 18:09:50 2010 -0700
@@ -1,3 +1,8 @@
+2010-07-09  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* make-docfile.c (write_c_args): Deal with type names in DEFUN
+	arguments.
+
 2010-07-08  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	* update-game-score.c (P_): Remove macro.
--- a/lib-src/make-docfile.c	Thu Jul 08 16:34:47 2010 -0700
+++ b/lib-src/make-docfile.c	Thu Jul 08 18:09:50 2010 -0700
@@ -450,9 +450,24 @@
 
   for (p = buf; *p; p++)
     {
-      char c = *p;
+      char c;
       int ident_start = 0;
 
+      /* FIXME: this must be made a bit more robust*/
+      
+      /* Skip "register Lisp_Object", this can be removed when we get
+	 rid of "register" for DEFUNs. */
+      if (strncmp ("register Lisp_Object", p, 20) == 0)
+	p += 20;
+
+      if (strncmp ("Lisp_Object", p, 11) == 0)
+	p += 11;
+
+      if (strncmp ("void", p, 4) == 0)
+	p += 4;
+
+      c  = *p;
+      
       /* Notice when we start printing a new identifier.  */
       if ((('A' <= c && c <= 'Z')
 	   || ('a' <= c && c <= 'z')