summaryrefslogtreecommitdiff
path: root/lib-src/make-docfile.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib-src/make-docfile.c')
-rw-r--r--lib-src/make-docfile.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c
index 83602f86e8a..c71fafb887b 100644
--- a/lib-src/make-docfile.c
+++ b/lib-src/make-docfile.c
@@ -152,6 +152,7 @@ write_c_args (out, buf, minargs, maxargs)
for (p = buf; *p; p++)
{
char c = *p;
+ int ident_start = 0;
/* Notice when we start printing a new identifier. */
if ((('A' <= c && c <= 'Z')
@@ -163,6 +164,7 @@ write_c_args (out, buf, minargs, maxargs)
if (!in_ident)
{
in_ident = 1;
+ ident_start = 1;
if (minargs == 0 && maxargs > 0)
fprintf (out, "&optional ");
@@ -181,7 +183,21 @@ write_c_args (out, buf, minargs, maxargs)
if (c == '_') c = '-';
if (c == ',') c = ' ';
- if (c != ' ' || ! just_spaced)
+ /* In C code, `default' is a reserved word, so we spell it
+ `defalt'; unmangle that here. */
+ if (ident_start
+ && strncmp (p, "defalt", 6) == 0
+ && ! (('A' <= p[6] && p[6] <= 'Z')
+ || ('a' <= p[6] && p[6] <= 'z')
+ || ('0' <= p[6] && p[6] <= '9')
+ || p[6] == '_'))
+ {
+ fprintf (out, "default");
+ p += 5;
+ in_ident = 0;
+ just_spaced = 0;
+ }
+ else if (c != ' ' || ! just_spaced)
putc (c, out);
just_spaced = (c == ' ');