Initial Commit
[packages] / xemacs-packages / xemacs-base / autoload-operators.el
1 ;;; autoload-operators.el --- special autoload treatment for some operators
2
3 ;; Copyright (C) 1991-1994, 1997, 2003 Free Software Foundation, Inc.
4
5 ;; Original Author: Roland McGrath <roland@gnu.ai.mit.edu>
6 ;; Heavily Modified: XEmacs Maintainers
7 ;; Keywords: maint
8
9 ;; This file is part of XEmacs.
10
11 ;; XEmacs is free software; you can redistribute it and/or modify it
12 ;; under the terms of the GNU General Public License as published by
13 ;; the Free Software Foundation; either version 2, or (at your option)
14 ;; any later version.
15
16 ;; XEmacs is distributed in the hope that it will be useful, but
17 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19 ;; General Public License for more details.
20
21 ;; You should have received a copy of the GNU General Public License
22 ;; along with XEmacs; see the file COPYING.  If not, write to the Free
23 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
24 ;; 02111-1307, USA.
25
26 ;;; Forms which have doc-strings which should be printed specially.
27 ;;; A doc-string-elt property of ELT says that (nth ELT FORM) is
28 ;;; the doc-string in FORM.
29 ;;;
30 ;;; There used to be the following note here:
31 ;;; ;;; Note: defconst and defvar should NOT be marked in this way.
32 ;;; ;;; We don't want to produce defconsts and defvars that
33 ;;; ;;; make-docfile can grok, because then it would grok them twice,
34 ;;; ;;; once in foo.el (where they are given with ;;;###autoload) and
35 ;;; ;;; once in loaddefs.el.
36 ;;;
37 ;;; Counter-note: Yes, they should be marked in this way.
38 ;;; make-docfile only processes those files that are loaded into the
39 ;;; dumped Emacs, and those files should never have anything
40 ;;; autoloaded here.  The above-feared problem only occurs with files
41 ;;; which have autoloaded entries *and* are processed by make-docfile;
42 ;;; there should be no such files.
43
44 (defvar autoload-make-autoload-operators
45   '(defun define-skeleton defmacro define-derived-mode define-generic-mode
46     easy-mmode-define-minor-mode easy-mmode-define-global-mode
47     define-minor-mode defun* defmacro* defclass defmethod)
48   "`defun'-like operators that use `autoload' to load the library.")
49
50 (defvar autoload-make-autoload-complex-operators
51   '(easy-mmode-define-minor-mode easy-mmode-define-global-mode
52     define-minor-mode)
53   "`defun'-like operators to macroexpand before using `autoload'.")
54
55 ;;; Forms which have doc-strings which should be printed specially.
56 ;;; A doc-string-elt property of ELT says that (nth ELT FORM) is
57 ;;; the doc-string in FORM.
58 ;;;
59 ;;; There used to be the following note here:
60 ;;; ;;; Note: defconst and defvar should NOT be marked in this way.
61 ;;; ;;; We don't want to produce defconsts and defvars that
62 ;;; ;;; make-docfile can grok, because then it would grok them twice,
63 ;;; ;;; once in foo.el (where they are given with ;;;###autoload) and
64 ;;; ;;; once in loaddefs.el.
65 ;;;
66 ;;; Counter-note: Yes, they should be marked in this way.
67 ;;; make-docfile only processes those files that are loaded into the
68 ;;; dumped Emacs, and those files should never have anything
69 ;;; autoloaded here.  The above-feared problem only occurs with files
70 ;;; which have autoloaded entries *and* are processed by make-docfile;
71 ;;; there should be no such files.
72
73 (put 'autoload 'doc-string-elt 3)
74 (put 'defun    'doc-string-elt 3)
75 (put 'defun*   'doc-string-elt 3)
76 (put 'defvar   'doc-string-elt 3)
77 (put 'defcustom 'doc-string-elt 3)
78 (put 'defconst 'doc-string-elt 3)
79 (put 'defmacro 'doc-string-elt 3)
80 (put 'defmacro* 'doc-string-elt 3)
81 (put 'defsubst 'doc-string-elt 3)
82 (put 'define-skeleton 'doc-string-elt 2)
83 (put 'define-derived-mode 'doc-string-elt 4)
84 (put 'easy-mmode-define-minor-mode 'doc-string-elt 2)
85 (put 'define-minor-mode 'doc-string-elt 2)
86 (put 'define-generic-mode 'doc-string-elt 7)
87 (put 'defclass 'doc-string-elt 4)
88 (put 'defmethod 'doc-string-elt 3)
89 ;; defin-global-mode has no explicit docstring.
90 (put 'easy-mmode-define-global-mode 'doc-string-elt 1000)
91
92 (provide 'autoload-operators)
93
94 ;;; autoload-operators.el ends here