summaryrefslogtreecommitdiff
path: root/lisp/gnus/gnus-undo.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2010-05-02 20:41:45 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2010-05-02 20:41:45 -0400
commitbbf52f1e6fdaca0197ce67b897eb69a006fff8ad (patch)
tree3c41f146a8835ff85ae32fe666e4348653a292ce /lisp/gnus/gnus-undo.el
parenta101e0fbac19df1d78912ee67d690d65d8f96ab0 (diff)
downloademacs-bbf52f1e6fdaca0197ce67b897eb69a006fff8ad.tar.gz
emacs-bbf52f1e6fdaca0197ce67b897eb69a006fff8ad.tar.bz2
emacs-bbf52f1e6fdaca0197ce67b897eb69a006fff8ad.zip
Use define-minor-mode in Gnus where applicable.
* mml.el (mml-mode): Use define-minor-mode. * gnus-undo.el (gnus-undo-mode-map): Initialize in declaration. (gnus-undo-mode): Use define-minor-mode. * gnus-sum.el (gnus-dead-summary-mode-map): Initialize in declaration. (gnus-dead-summary-mode): Use define-minor-mode. * gnus-salt.el (gnus-pick-mode-map, gnus-binary-mode-map): Initialize in declaration. (gnus-pick-mode, gnus-binary-mode): Use define-minor-mode. * gnus-ml.el (gnus-mailing-list-mode-map): Initialize in declaration. (gnus-mailing-list-mode): Use define-minor-mode. * gnus-draft.el (gnus-draft-mode-map): Initialize in declaration. (gnus-draft-mode): Use define-minor-mode. * gnus-dired.el (gnus-dired-mode-map): Initialize in declaration. (gnus-dired-mode): Use define-minor-mode.
Diffstat (limited to 'lisp/gnus/gnus-undo.el')
-rw-r--r--lisp/gnus/gnus-undo.el35
1 files changed, 16 insertions, 19 deletions
diff --git a/lisp/gnus/gnus-undo.el b/lisp/gnus/gnus-undo.el
index 8030c084c39..433edef078f 100644
--- a/lisp/gnus/gnus-undo.el
+++ b/lisp/gnus/gnus-undo.el
@@ -59,6 +59,10 @@
:group 'gnus-undo)
(defcustom gnus-undo-mode nil
+ ;; FIXME: This is a buffer-local minor mode which requires running
+ ;; code upon activation/deactivation, so defining it as a defcustom
+ ;; doesn't seem very useful: setting it to non-nil via Customize
+ ;; probably won't do the right thing.
"Minor mode for undoing in Gnus buffers."
:type 'boolean
:group 'gnus-undo)
@@ -77,17 +81,15 @@
;;; Minor mode definition.
-(defvar gnus-undo-mode-map nil)
-
-(unless gnus-undo-mode-map
- (setq gnus-undo-mode-map (make-sparse-keymap))
-
- (gnus-define-keys gnus-undo-mode-map
- "\M-\C-_" gnus-undo
- "\C-_" gnus-undo
- "\C-xu" gnus-undo
- ;; many people are used to type `C-/' on X terminals and get `C-_'.
- [(control /)] gnus-undo))
+(defvar gnus-undo-mode-map
+ (let ((map (make-sparse-keymap)))
+ (gnus-define-keys map
+ "\M-\C-_" gnus-undo
+ "\C-_" gnus-undo
+ "\C-xu" gnus-undo
+ ;; many people are used to type `C-/' on X terminals and get `C-_'.
+ [(control /)] gnus-undo)
+ map))
(defun gnus-undo-make-menu-bar ()
;; This is disabled for the time being.
@@ -96,24 +98,19 @@
(cons "Undo" 'gnus-undo-actions)
[menu-bar file whatever])))
-(defun gnus-undo-mode (&optional arg)
+(define-minor-mode gnus-undo-mode
"Minor mode for providing `undo' in Gnus buffers.
\\{gnus-undo-mode-map}"
- (interactive "P")
- (set (make-local-variable 'gnus-undo-mode)
- (if (null arg) (not gnus-undo-mode)
- (> (prefix-numeric-value arg) 0)))
+ :keymap gnus-undo-mode-map
(set (make-local-variable 'gnus-undo-actions) nil)
(set (make-local-variable 'gnus-undo-boundary) t)
(when gnus-undo-mode
;; Set up the menu.
(when (gnus-visual-p 'undo-menu 'menu)
(gnus-undo-make-menu-bar))
- (add-minor-mode 'gnus-undo-mode "" gnus-undo-mode-map)
(gnus-make-local-hook 'post-command-hook)
- (add-hook 'post-command-hook 'gnus-undo-boundary nil t)
- (gnus-run-hooks 'gnus-undo-mode-hook)))
+ (add-hook 'post-command-hook 'gnus-undo-boundary nil t)))
;;; Interface functions.