changeset 46900:3c3d686b25fa

(easy-mmode-define-global-mode): Use find-file-hook instead of find-file-hooks. (define-minor-mode): Get rid of this silly `togglep'. Add an explicit `toggle' argument (used for interactive calls). Emit a warning when a nil argument turns the mode off.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 15 Aug 2002 01:06:05 +0000
parents f00337f04e78
children 3e733b163fd4
files lisp/emacs-lisp/easy-mmode.el
diffstat 1 files changed, 15 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/easy-mmode.el	Thu Aug 15 00:48:20 2002 +0000
+++ b/lisp/emacs-lisp/easy-mmode.el	Thu Aug 15 01:06:05 2002 +0000
@@ -107,7 +107,6 @@
   (let* ((mode-name (symbol-name mode))
 	 (pretty-name (easy-mmode-pretty-mode-name mode lighter))
 	 (globalp nil)
-	 (togglep t) ;; This should never be nil -- rms.
 	 (group nil)
 	 (extra-args nil)
 	 (keymap-sym (if (and keymap (symbolp keymap)) keymap
@@ -172,16 +171,22 @@
 	 ,(or doc
 	      (format (concat "Toggle %s on or off.
 Interactively, with no prefix argument, toggle the mode.
-With universal prefix ARG " (unless togglep "(or if ARG is nil) ") "turn mode on.
+With universal prefix ARG turn mode on.
 With zero or negative ARG turn mode off.
 \\{%s}") pretty-name keymap-sym))
-	 ;; Make no arg by default in an interactive call,
-	 ;; so that repeating the command toggles again.
-	 (interactive "P")
+	 ;; Use `toggle' rather than (if ,mode 0 1) so that using
+	 ;; repeat-command still does the toggling correctly.
+	 (interactive (list (or current-prefix-arg 'toggle)))
 	 (setq ,mode
-	       (if arg
-		   (> (prefix-numeric-value arg) 0)
-		 ,(if togglep `(not ,mode) t)))
+	       (cond
+		((eq arg 'toggle) (not ,mode))
+		(arg (> (prefix-numeric-value arg) 0))
+		(t
+		 (if (null ,mode) t
+		   (message
+		    "Toggling %s off; better pass an explicit argument."
+		    ',mode)
+		   nil))))
 	 ,@body
 	 ;; The on/off hooks are here for backward compatibility only.
 	 (run-hooks ',hook (if ,mode ',hook-on ',hook-off))
@@ -266,9 +271,9 @@
 	 ;; Setup hook to handle future mode changes and new buffers.
 	 (if ,global-mode
 	     (progn
-	       (add-hook 'find-file-hooks ',buffers)
+	       (add-hook 'find-file-hook ',buffers)
 	       (add-hook 'change-major-mode-hook ',cmmh))
-	   (remove-hook 'find-file-hooks ',buffers)
+	   (remove-hook 'find-file-hook ',buffers)
 	   (remove-hook 'change-major-mode-hook ',cmmh))
 
 	 ;; Go through existing buffers.