# HG changeset patch # User Gerd Moellmann # Date 1003005832 0 # Node ID bc20a5e30bfd6af49143647886d776076d62e978 # Parent 3e6f2f2a0a62b1741fc3a43a0c786808b7f8cf22 (DEFUN, DEFVAR_LISP, ...) [DOC_STRINGS_IN_COMMENTS]: Provide definitions for doc strings in comments. diff -r 3e6f2f2a0a62 -r bc20a5e30bfd src/lisp.h --- a/src/lisp.h Sat Oct 13 20:41:25 2001 +0000 +++ b/src/lisp.h Sat Oct 13 20:43:52 2001 +0000 @@ -1503,6 +1503,9 @@ #if (!defined (__STDC__) && !defined (PROTOTYPES)) \ || defined (USE_NONANSI_DEFUN) + +#ifdef DOC_STRINGS_IN_COMMENTS + #define DEFUN(lname, fnname, sname, minargs, maxargs, prompt, doc) \ Lisp_Object fnname (); \ struct Lisp_Subr sname = \ @@ -1510,8 +1513,30 @@ fnname, minargs, maxargs, lname, prompt, 0}; \ Lisp_Object fnname +#else /* not DOC_STRINGS_IN_COMMENTS */ + +#define DEFUN(lname, fnname, sname, minargs, maxargs, prompt, args) \ + Lisp_Object fnname (); \ + struct Lisp_Subr sname = \ + { PVEC_SUBR | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)), \ + fnname, minargs, maxargs, lname, prompt, 0}; \ + Lisp_Object fnname args + +#endif /* not DOC_STRINGS_IN_COMMENTS */ + #else +#ifdef DOC_STRINGS_IN_COMMENTS + +#define DEFUN(lname, fnname, sname, minargs, maxargs, prompt, args) \ + Lisp_Object fnname DEFUN_ARGS_ ## maxargs ; \ + struct Lisp_Subr sname = \ + { PVEC_SUBR | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)), \ + fnname, minargs, maxargs, lname, prompt, 0}; \ + Lisp_Object fnname args + +#else /* not DOC_STRINGS_IN_COMMENTS */ + /* This version of DEFUN declares a function prototype with the right arguments, so we can catch errors with maxargs at compile-time. */ #define DEFUN(lname, fnname, sname, minargs, maxargs, prompt, doc) \ @@ -1521,6 +1546,8 @@ fnname, minargs, maxargs, lname, prompt, 0}; \ Lisp_Object fnname +#endif /* not DOC_STRINGS_IN_COMMENTS */ + /* Note that the weird token-substitution semantics of ANSI C makes this work for MANY and UNEVALLED. */ #define DEFUN_ARGS_MANY (int, Lisp_Object *) @@ -1565,6 +1592,21 @@ /* Macros we use to define forwarded Lisp variables. These are used in the syms_of_FILENAME functions. */ +#ifdef DOC_STRINGS_IN_COMMENTS + +#define DEFVAR_LISP(lname, vname) defvar_lisp (lname, vname) +#define DEFVAR_LISP_NOPRO(lname, vname) defvar_lisp_nopro (lname, vname) +#define DEFVAR_BOOL(lname, vname) defvar_bool (lname, vname) +#define DEFVAR_INT(lname, vname) defvar_int (lname, vname) +#define DEFVAR_PER_BUFFER(lname, vname, type) \ + defvar_per_buffer (lname, vname, type, 0) +#define DEFVAR_KBOARD(lname, vname) \ + defvar_kboard (lname, \ + (int)((char *)(¤t_kboard->vname) \ + - (char *)current_kboard)) + +#else /* not DOC_STRINGS_IN_COMMENTS */ + #define DEFVAR_LISP(lname, vname, doc) defvar_lisp (lname, vname) #define DEFVAR_LISP_NOPRO(lname, vname, doc) defvar_lisp_nopro (lname, vname) #define DEFVAR_BOOL(lname, vname, doc) defvar_bool (lname, vname) @@ -1575,6 +1617,10 @@ defvar_kboard (lname, \ (int)((char *)(¤t_kboard->vname) \ - (char *)current_kboard)) + +#endif /* not DOC_STRINGS_IN_COMMENTS */ + + /* Structure for recording Lisp call stack for backtrace purposes. */