X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/68e7476278a3dc4bd13dab63cc23bc0e671e5525..8838172bf0c35831f6b0f0a9763af0d04edf5468:/lib-src/make-docfile.c diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index 6e22eb857e..eb15342ca5 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c @@ -1,14 +1,14 @@ /* Generate doc-string file for GNU Emacs from source files. Copyright (C) 1985, 1986, 1992, 1993, 1994, 1997, 1999, 2000, 2001, - 2002, 2003, 2004, 2005, 2006, 2007, 2008 + 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GNU Emacs. -GNU Emacs is free software; you can redistribute it and/or modify +GNU Emacs is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3, or (at your option) -any later version. +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -16,9 +16,8 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with GNU Emacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. */ +along with GNU Emacs. If not, see . */ + /* The arguments given to this program are all the C and Lisp source files of GNU Emacs. .elc and .el and .c files are allowed. @@ -35,7 +34,6 @@ Boston, MA 02110-1301, USA. */ Then comes the documentation for that function or variable. */ -#define NO_SHORTNAMES /* Tell config not to load remap.h */ #include /* defined to be emacs_main, sys_fopen, etc. in config.h */ @@ -242,10 +240,10 @@ struct rcsoc_state /* A keyword we look for at the beginning of lines. If found, it is not copied, and SAW_KEYWORD is set to true. */ char *keyword; - /* The current point we've reached in an occurance of KEYWORD in + /* The current point we've reached in an occurrence of KEYWORD in the input stream. */ char *cur_keyword_ptr; - /* Set to true if we saw an occurance of KEYWORD. */ + /* Set to true if we saw an occurrence of KEYWORD. */ int saw_keyword; }; @@ -356,7 +354,7 @@ scan_keyword_or_put_char (ch, state) PRINTFLAG is positive, output string contents to outfile. If it is negative, store contents in buf. Convert escape sequences \n and \t to newline and tab; discard \ followed by newline. - If SAW_USAGE is non-zero, then any occurances of the string `usage:' + If SAW_USAGE is non-zero, then any occurrences of the string `usage:' at the beginning of a line will be removed, and *SAW_USAGE set to true if any were encountered. */ @@ -535,7 +533,7 @@ write_c_args (out, func, buf, minargs, maxargs) } /* Read through a c file. If a .o file is named, - the corresponding .c file is read instead. + the corresponding .c or .m file is read instead. Looks for DEFUN constructs such as are defined in ../src/lisp.h. Accepts any word starting DEF... so it finds DEFSIMPLE and DEFPRED. */ @@ -557,6 +555,15 @@ scan_c_file (filename, mode) infile = fopen (filename, mode); + if (infile == NULL && extension == 'o') + { + /* try .m */ + filename[strlen (filename) - 1] = 'm'; + infile = fopen (filename, mode); + if (infile == NULL) + filename[strlen (filename) - 1] = 'c'; /* don't confuse people */ + } + /* No error if non-ex input file */ if (infile == NULL) { @@ -900,9 +907,8 @@ scan_lisp_file (filename, mode) length--; /* Read in the contents. */ - if (saved_string != 0) - free (saved_string); - saved_string = (char *) malloc (length); + free (saved_string); + saved_string = (char *) xmalloc (length); for (i = 0; i < length; i++) saved_string[i] = getc (infile); /* The last character is a ^_. @@ -1001,7 +1007,9 @@ scan_lisp_file (filename, mode) } } - else if (! strcmp (buffer, "custom-declare-variable")) + else if (! strcmp (buffer, "custom-declare-variable") + || ! strcmp (buffer, "defvaralias") + ) { char c1 = 0, c2 = 0; type = 'V'; @@ -1184,7 +1192,7 @@ scan_lisp_file (filename, mode) else { #ifdef DEBUG - fprintf (stderr, "## unrecognised top-level form, %s (%s)\n", + fprintf (stderr, "## unrecognized top-level form, %s (%s)\n", buffer, filename); #endif continue;