diff options
| author | Karl Heuer | 1999-08-28 15:13:37 +0000 |
|---|---|---|
| committer | Karl Heuer | 1999-08-28 15:13:37 +0000 |
| commit | 5e21ef7a07eebedd9b499749f35817974c79f36d (patch) | |
| tree | 78aabf4149bb454537a6b863a4ddc62622022801 | |
| parent | 620fdfdf610c3f5b7f775d1ca30fbfaf25d37440 (diff) | |
| download | emacs-5e21ef7a07eebedd9b499749f35817974c79f36d.tar.gz emacs-5e21ef7a07eebedd9b499749f35817974c79f36d.zip | |
(easy-mmode-define-minor-mode):
On repeated call, override previous values put into
minor-mode-map-alist and minor-mode-alist.
| -rw-r--r-- | lisp/emacs-lisp/easy-mmode.el | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index a157028a6be..fe5b7a6ad07 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el | |||
| @@ -137,11 +137,11 @@ in order to build a valid keymap. | |||
| 137 | (keymap-name (concat mode-name "-map")) | 137 | (keymap-name (concat mode-name "-map")) |
| 138 | (keymap-doc (format "Keymap for %s mode." mode-name))) | 138 | (keymap-doc (format "Keymap for %s mode." mode-name))) |
| 139 | `(progn | 139 | `(progn |
| 140 | ;; define the switch | 140 | ;; Define the variable to enable or disable the mode. |
| 141 | (defvar ,mode ,init-value ,mode-doc) | 141 | (defvar ,mode ,init-value ,mode-doc) |
| 142 | (make-variable-buffer-local ',mode) | 142 | (make-variable-buffer-local ',mode) |
| 143 | 143 | ||
| 144 | ;; define the minor-mode keymap | 144 | ;; Define the minor-mode keymap. |
| 145 | (defvar ,(intern keymap-name) | 145 | (defvar ,(intern keymap-name) |
| 146 | (cond ((and ,keymap (keymapp ,keymap)) | 146 | (cond ((and ,keymap (keymapp ,keymap)) |
| 147 | ,keymap) | 147 | ,keymap) |
| @@ -150,18 +150,21 @@ in order to build a valid keymap. | |||
| 150 | (t (error "Invalid keymap %S" ,keymap))) | 150 | (t (error "Invalid keymap %S" ,keymap))) |
| 151 | ,keymap-doc) | 151 | ,keymap-doc) |
| 152 | 152 | ||
| 153 | ;; define the toggle and the hooks | 153 | ;; Define the toggle and the hooks. |
| 154 | ,(macroexpand `(easy-mmode-define-toggle ,mode ,doc)) ; toggle and hooks | 154 | ,(macroexpand `(easy-mmode-define-toggle ,mode ,doc)) |
| 155 | 155 | ||
| 156 | ;; update the mode-bar | 156 | ;; Update the mode line. |
| 157 | (or (assq ',mode minor-mode-alist) | 157 | (or (assq ',mode minor-mode-alist) |
| 158 | (setq minor-mode-alist | 158 | (setq minor-mode-alist |
| 159 | (cons (list ',mode ,lighter) minor-mode-alist))) | 159 | (cons (list ',mode nil) minor-mode-alist))) |
| 160 | (setcar (cdr (assq ',mode minor-mode-alist)) ,lighter) | ||
| 160 | 161 | ||
| 161 | ;; update the minor-mode-map | 162 | ;; Update the minor mode map. |
| 162 | (or (assq ',mode minor-mode-map-alist) | 163 | (or (assq ',mode minor-mode-map-alist) |
| 163 | (setq minor-mode-map-alist | 164 | (setq minor-mode-map-alist |
| 164 | (cons (cons ',mode ,(intern keymap-name)) minor-mode-map-alist)))) )) | 165 | (cons (cons ',mode ,(intern keymap-name)) minor-mode-map-alist))) |
| 166 | (setcdr (assq ',mode minor-mode-map-alist) | ||
| 167 | ,(intern keymap-name))) )) | ||
| 165 | 168 | ||
| 166 | (provide 'easy-mmode) | 169 | (provide 'easy-mmode) |
| 167 | 170 | ||