summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2009-09-07 18:01:27 +0000
committerChong Yidong <cyd@stupidchicken.com>2009-09-07 18:01:27 +0000
commit9508c3b32bf96026a36eb2a93054bf2fd97d3567 (patch)
treec947086d603823d8c7bea63b76d316d4420e1f76 /lisp/emacs-lisp
parent2182c2cca56675e2810ef320a89fe3dd7c229dda (diff)
downloademacs-9508c3b32bf96026a36eb2a93054bf2fd97d3567.tar.gz
emacs-9508c3b32bf96026a36eb2a93054bf2fd97d3567.tar.bz2
emacs-9508c3b32bf96026a36eb2a93054bf2fd97d3567.zip
* emacs-lisp/autoload.el (make-autoload): Handle defclass form.
* emacs-lisp/eieio.el (eieio-defclass-autoload): Autoload.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/autoload.el8
-rw-r--r--lisp/emacs-lisp/eieio.el1
2 files changed, 9 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index 8b2a8985229..9dad31af0e3 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -135,6 +135,14 @@ or macro definition or a defcustom)."
(eq (car-safe (car body)) 'interactive))
(if macrop (list 'quote 'macro) nil))))
+ ;; For defclass forms, use `eieio-defclass-autoload'.
+ ((eq car 'defclass)
+ (let ((name (nth 1 form))
+ (superclasses (nth 2 form))
+ (doc (nth 4 form)))
+ (list 'eieio-defclass-autoload (list 'quote name)
+ (list 'quote superclasses) file doc)))
+
;; Convert defcustom to less space-consuming data.
((eq car 'defcustom)
(let ((varname (car-safe (cdr-safe form)))
diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el
index 09a1710dc67..28af9bad419 100644
--- a/lisp/emacs-lisp/eieio.el
+++ b/lisp/emacs-lisp/eieio.el
@@ -331,6 +331,7 @@ wish, and reference them using the function `class-option'."
(defvar eieio-defclass-autoload-map (make-vector 7 nil)
"Symbol map of superclasses we find in autoloads.")
+;;;###autoload
(defun eieio-defclass-autoload (cname superclasses filename doc)
"Create autoload symbols for the EIEIO class CNAME.
SUPERCLASSES are the superclasses that CNAME inherites from.