(DEFUN, DEFVAR_LISP, ...) [DOC_STRINGS_IN_COMMENTS]:

Provide definitions for doc strings in comments.
This commit is contained in:
Gerd Moellmann 2001-10-13 20:43:52 +00:00
parent 74c55c82b6
commit df7cd53bbe

View file

@ -1503,6 +1503,9 @@ typedef unsigned char UCHAR;
#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 @@ typedef unsigned char UCHAR;
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 @@ typedef unsigned char UCHAR;
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 @@ extern void defvar_kboard P_ ((char *, int));
/* 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 *)(&current_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 @@ extern void defvar_kboard P_ ((char *, int));
defvar_kboard (lname, \
(int)((char *)(&current_kboard->vname) \
- (char *)current_kboard))
#endif /* not DOC_STRINGS_IN_COMMENTS */
/* Structure for recording Lisp call stack for backtrace purposes. */