Always defvar a mode's hook and provide a docstring.
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 27 May 2013 16:12:52 +0000 (12:12 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 27 May 2013 16:12:52 +0000 (12:12 -0400)
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode):
* lisp/emacs-lisp/derived.el (define-derived-mode): Always defvar the
mode hook and provide a docstring.

lisp/ChangeLog
lisp/emacs-lisp/derived.el
lisp/emacs-lisp/easy-mmode.el

index 8f070f1..509c940 100644 (file)
@@ -1,3 +1,9 @@
+2013-05-27  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/easy-mmode.el (define-minor-mode):
+       * emacs-lisp/derived.el (define-derived-mode): Always defvar the
+       mode hook and provide a docstring.
+
 2013-05-27  Alan Mackenzie  <acm@muc.de>
 
        Remove spurious syntax-table text properties inserted by C-y.
index 684f9d9..96c223c 100644 (file)
@@ -192,12 +192,11 @@ See Info node `(elisp)Derived Modes' for more details."
                     parent child docstring syntax abbrev))
 
     `(progn
-       (unless (get ',hook 'variable-documentation)
-        (put ',hook 'variable-documentation
-             (purecopy ,(format "Hook run when entering %s mode.
+       (defvar ,hook nil
+         ,(format "Hook run after entering %s mode.
 No problems result if this variable is not bound.
 `add-hook' automatically binds it.  (This is true for all hook variables.)"
-                      name))))
+                  name))
        (unless (boundp ',map)
         (put ',map 'definition-name ',child))
        (with-no-warnings (defvar ,map (make-sparse-keymap)))
index 718018f..ed10080 100644 (file)
@@ -296,6 +296,12 @@ the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'.
        ;; up-to-here.
        :autoload-end
 
+       (defvar ,hook nil
+         ,(format "Hook run after entering or leaving `%s'.
+No problems result if this variable is not bound.
+`add-hook' automatically binds it.  (This is true for all hook variables.)"
+                  mode))
+
        ;; Define the minor-mode keymap.
        ,(unless (symbolp keymap)       ;nil is also a symbol.
          `(defvar ,keymap-sym