mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
(add-minor-mode): Handle AFTER for keymaps. Don't
set TOGGLE's value.
This commit is contained in:
parent
329bed06e9
commit
49102500cc
1 changed files with 16 additions and 7 deletions
23
lisp/subr.el
23
lisp/subr.el
|
|
@ -1502,10 +1502,9 @@ to `minor-mode-map-alist'.
|
|||
Optional AFTER specifies that TOGGLE should be added after AFTER
|
||||
in `minor-mode-alist'.
|
||||
|
||||
Optional TOGGLE-FUN is there for compatiblity with other Emacssen.
|
||||
Optional TOGGLE-FUN is there for compatiblity with other Emacsen.
|
||||
It is currently not used."
|
||||
(make-local-variable toggle)
|
||||
(set toggle t)
|
||||
|
||||
(when name
|
||||
(let ((existing (assq toggle minor-mode-alist))
|
||||
|
|
@ -1519,7 +1518,7 @@ It is currently not used."
|
|||
(if found
|
||||
(let ((rest (cdr found)))
|
||||
(setcdr found nil)
|
||||
(nconc found (list toggle name) rest))
|
||||
(nconc found (list (list toggle name)) rest))
|
||||
(setq minor-mode-alist (cons (list toggle name)
|
||||
minor-mode-alist)))))
|
||||
(t
|
||||
|
|
@ -1527,10 +1526,20 @@ It is currently not used."
|
|||
|
||||
(when keymap
|
||||
(let ((existing (assq toggle minor-mode-map-alist)))
|
||||
(if existing
|
||||
(setcdr existing keymap)
|
||||
(setq minor-mode-map-alist (cons (cons toggle keymap)
|
||||
minor-mode-map-alist))))))
|
||||
(cond ((null existing)
|
||||
(let ((tail minor-mode-map-alist) found)
|
||||
(while (and tail (not found))
|
||||
(if (eq after (caar tail))
|
||||
(setq found tail)
|
||||
(setq tail (cdr tail))))
|
||||
(if found
|
||||
(let ((rest (cdr found)))
|
||||
(setcdr found nil)
|
||||
(nconc found (list (cons toggle keymap)) rest))
|
||||
(setq minor-mode-map-alist (cons (cons toggle keymap)
|
||||
minor-mode-map-alist)))))
|
||||
(t
|
||||
(setcdr existing keymap))))))
|
||||
|
||||
|
||||
;;; subr.el ends here
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue