Mercurial > emacs
comparison src/lisp.h @ 39898:bc20a5e30bfd
(DEFUN, DEFVAR_LISP, ...) [DOC_STRINGS_IN_COMMENTS]:
Provide definitions for doc strings in comments.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Sat, 13 Oct 2001 20:43:52 +0000 |
parents | f510faf7f4d7 |
children | c1262fd975b2 |
comparison
equal
deleted
inserted
replaced
39897:3e6f2f2a0a62 | 39898:bc20a5e30bfd |
---|---|
1501 A null string means call interactively with no arguments. | 1501 A null string means call interactively with no arguments. |
1502 `doc' is documentation for the user. */ | 1502 `doc' is documentation for the user. */ |
1503 | 1503 |
1504 #if (!defined (__STDC__) && !defined (PROTOTYPES)) \ | 1504 #if (!defined (__STDC__) && !defined (PROTOTYPES)) \ |
1505 || defined (USE_NONANSI_DEFUN) | 1505 || defined (USE_NONANSI_DEFUN) |
1506 | |
1507 #ifdef DOC_STRINGS_IN_COMMENTS | |
1508 | |
1506 #define DEFUN(lname, fnname, sname, minargs, maxargs, prompt, doc) \ | 1509 #define DEFUN(lname, fnname, sname, minargs, maxargs, prompt, doc) \ |
1507 Lisp_Object fnname (); \ | 1510 Lisp_Object fnname (); \ |
1508 struct Lisp_Subr sname = \ | 1511 struct Lisp_Subr sname = \ |
1509 { PVEC_SUBR | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)), \ | 1512 { PVEC_SUBR | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)), \ |
1510 fnname, minargs, maxargs, lname, prompt, 0}; \ | 1513 fnname, minargs, maxargs, lname, prompt, 0}; \ |
1511 Lisp_Object fnname | 1514 Lisp_Object fnname |
1512 | 1515 |
1516 #else /* not DOC_STRINGS_IN_COMMENTS */ | |
1517 | |
1518 #define DEFUN(lname, fnname, sname, minargs, maxargs, prompt, args) \ | |
1519 Lisp_Object fnname (); \ | |
1520 struct Lisp_Subr sname = \ | |
1521 { PVEC_SUBR | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)), \ | |
1522 fnname, minargs, maxargs, lname, prompt, 0}; \ | |
1523 Lisp_Object fnname args | |
1524 | |
1525 #endif /* not DOC_STRINGS_IN_COMMENTS */ | |
1526 | |
1513 #else | 1527 #else |
1528 | |
1529 #ifdef DOC_STRINGS_IN_COMMENTS | |
1530 | |
1531 #define DEFUN(lname, fnname, sname, minargs, maxargs, prompt, args) \ | |
1532 Lisp_Object fnname DEFUN_ARGS_ ## maxargs ; \ | |
1533 struct Lisp_Subr sname = \ | |
1534 { PVEC_SUBR | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)), \ | |
1535 fnname, minargs, maxargs, lname, prompt, 0}; \ | |
1536 Lisp_Object fnname args | |
1537 | |
1538 #else /* not DOC_STRINGS_IN_COMMENTS */ | |
1514 | 1539 |
1515 /* This version of DEFUN declares a function prototype with the right | 1540 /* This version of DEFUN declares a function prototype with the right |
1516 arguments, so we can catch errors with maxargs at compile-time. */ | 1541 arguments, so we can catch errors with maxargs at compile-time. */ |
1517 #define DEFUN(lname, fnname, sname, minargs, maxargs, prompt, doc) \ | 1542 #define DEFUN(lname, fnname, sname, minargs, maxargs, prompt, doc) \ |
1518 Lisp_Object fnname DEFUN_ARGS_ ## maxargs ; \ | 1543 Lisp_Object fnname DEFUN_ARGS_ ## maxargs ; \ |
1519 struct Lisp_Subr sname = \ | 1544 struct Lisp_Subr sname = \ |
1520 { PVEC_SUBR | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)), \ | 1545 { PVEC_SUBR | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)), \ |
1521 fnname, minargs, maxargs, lname, prompt, 0}; \ | 1546 fnname, minargs, maxargs, lname, prompt, 0}; \ |
1522 Lisp_Object fnname | 1547 Lisp_Object fnname |
1548 | |
1549 #endif /* not DOC_STRINGS_IN_COMMENTS */ | |
1523 | 1550 |
1524 /* Note that the weird token-substitution semantics of ANSI C makes | 1551 /* Note that the weird token-substitution semantics of ANSI C makes |
1525 this work for MANY and UNEVALLED. */ | 1552 this work for MANY and UNEVALLED. */ |
1526 #define DEFUN_ARGS_MANY (int, Lisp_Object *) | 1553 #define DEFUN_ARGS_MANY (int, Lisp_Object *) |
1527 #define DEFUN_ARGS_UNEVALLED (Lisp_Object) | 1554 #define DEFUN_ARGS_UNEVALLED (Lisp_Object) |
1563 extern void defvar_kboard P_ ((char *, int)); | 1590 extern void defvar_kboard P_ ((char *, int)); |
1564 | 1591 |
1565 /* Macros we use to define forwarded Lisp variables. | 1592 /* Macros we use to define forwarded Lisp variables. |
1566 These are used in the syms_of_FILENAME functions. */ | 1593 These are used in the syms_of_FILENAME functions. */ |
1567 | 1594 |
1595 #ifdef DOC_STRINGS_IN_COMMENTS | |
1596 | |
1597 #define DEFVAR_LISP(lname, vname) defvar_lisp (lname, vname) | |
1598 #define DEFVAR_LISP_NOPRO(lname, vname) defvar_lisp_nopro (lname, vname) | |
1599 #define DEFVAR_BOOL(lname, vname) defvar_bool (lname, vname) | |
1600 #define DEFVAR_INT(lname, vname) defvar_int (lname, vname) | |
1601 #define DEFVAR_PER_BUFFER(lname, vname, type) \ | |
1602 defvar_per_buffer (lname, vname, type, 0) | |
1603 #define DEFVAR_KBOARD(lname, vname) \ | |
1604 defvar_kboard (lname, \ | |
1605 (int)((char *)(¤t_kboard->vname) \ | |
1606 - (char *)current_kboard)) | |
1607 | |
1608 #else /* not DOC_STRINGS_IN_COMMENTS */ | |
1609 | |
1568 #define DEFVAR_LISP(lname, vname, doc) defvar_lisp (lname, vname) | 1610 #define DEFVAR_LISP(lname, vname, doc) defvar_lisp (lname, vname) |
1569 #define DEFVAR_LISP_NOPRO(lname, vname, doc) defvar_lisp_nopro (lname, vname) | 1611 #define DEFVAR_LISP_NOPRO(lname, vname, doc) defvar_lisp_nopro (lname, vname) |
1570 #define DEFVAR_BOOL(lname, vname, doc) defvar_bool (lname, vname) | 1612 #define DEFVAR_BOOL(lname, vname, doc) defvar_bool (lname, vname) |
1571 #define DEFVAR_INT(lname, vname, doc) defvar_int (lname, vname) | 1613 #define DEFVAR_INT(lname, vname, doc) defvar_int (lname, vname) |
1572 #define DEFVAR_PER_BUFFER(lname, vname, type, doc) \ | 1614 #define DEFVAR_PER_BUFFER(lname, vname, type, doc) \ |
1573 defvar_per_buffer (lname, vname, type, 0) | 1615 defvar_per_buffer (lname, vname, type, 0) |
1574 #define DEFVAR_KBOARD(lname, vname, doc) \ | 1616 #define DEFVAR_KBOARD(lname, vname, doc) \ |
1575 defvar_kboard (lname, \ | 1617 defvar_kboard (lname, \ |
1576 (int)((char *)(¤t_kboard->vname) \ | 1618 (int)((char *)(¤t_kboard->vname) \ |
1577 - (char *)current_kboard)) | 1619 - (char *)current_kboard)) |
1620 | |
1621 #endif /* not DOC_STRINGS_IN_COMMENTS */ | |
1622 | |
1623 | |
1578 | 1624 |
1579 /* Structure for recording Lisp call stack for backtrace purposes. */ | 1625 /* Structure for recording Lisp call stack for backtrace purposes. */ |
1580 | 1626 |
1581 /* The special binding stack holds the outer values of variables while | 1627 /* The special binding stack holds the outer values of variables while |
1582 they are bound by a function application or a let form, stores the | 1628 they are bound by a function application or a let form, stores the |