# HG changeset patch # User Dan Nicolaescu # Date 1278637790 25200 # Node ID 61d8d0cf32a81c56263bca6423f0d9e7c10b73e3 # Parent 6b6f31e8107ead411b466b518ae8d0b1452886bf 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. diff -r 6b6f31e8107e -r 61d8d0cf32a8 lib-src/ChangeLog --- 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 + + * make-docfile.c (write_c_args): Deal with type names in DEFUN + arguments. + 2010-07-08 Dan Nicolaescu * update-game-score.c (P_): Remove macro. diff -r 6b6f31e8107e -r 61d8d0cf32a8 lib-src/make-docfile.c --- 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')