X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/23d6b5a6ee9ddd1d6bffe06d4b73e7ec16e0396f..c8fa98ccfc86bac03eb119505abd8cbd112f387a:/lib-src/make-docfile.c diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index 676f29cb9c..037e00e680 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c @@ -143,36 +143,36 @@ write_c_args (out, buf, minargs, maxargs) char *buf; int minargs, maxargs; { - register int c; - register char *p = buf; + register char *p; int space = 0; fprintf (out, "arguments: "); - while (*p) + for (p = buf; *p; p++) { - c = *p++; - if (c == ',') + if (*p == ',' || p == buf) { - minargs--; - maxargs--; if (!space) putc (' ', out); if (minargs == 0 && maxargs > 0) fprintf (out, "&optional "); space = 1; + + minargs--; + maxargs--; + continue; } - else if (c == ' ' && space) + else if (*p == ' ' && space) continue; - space = (c == ' '); + space = (*p == ' '); /* Print the C arguments as they would appear in Elisp; print underscores as hyphens. */ - if (c == '_') + if (*p == '_') putc ('-', out); else - putc (c, out); + putc (*p, out); } putc ('\n', out); }