*** empty log message ***
This commit is contained in:
parent
030106ca73
commit
c94f467716
3 changed files with 66 additions and 16 deletions
23
etc/NEWS
23
etc/NEWS
|
@ -1150,12 +1150,25 @@ so I will know I still need to look at it -- rms.
|
|||
** The function `add-minor-mode' simplifies the definition of minor
|
||||
modes.
|
||||
|
||||
- Function: add-minor-mode SYMBOL NAME MAP
|
||||
- Function: add-minor-mode TOGGLE NAME &optional KEYMAP AFTER TOGGLE-FUN
|
||||
|
||||
Register a new minor mode. SYMBOL is the name of a buffer-local
|
||||
variable that is toggled on or off to say whether the minor mode is
|
||||
active or not. NAME is the string that will appear in the mode line
|
||||
when the minor mode is active. MAP is the keymap for the minor mode.
|
||||
Register a new minor mode.
|
||||
|
||||
TOGGLE is a symbol which is the name of a buffer-local variable that
|
||||
is toggled on or off to say whether the minor mode is active or not.
|
||||
|
||||
NAME specifies what will appear in the mode line when the minor mode
|
||||
is active. NAME should be either a string starting with a space, or a
|
||||
symbol whose value is such a string.
|
||||
|
||||
Optional KEYMAP is the keymap for the minor mode that will be added
|
||||
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.
|
||||
It is currently not used.
|
||||
|
||||
** The function `shell-command' now sets the default directory of the
|
||||
`*Shell Command Output*' buffer to the default directory of the buffer
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2000-04-28 Gerd Moellmann <gerd@gnu.org>
|
||||
|
||||
* subr.el (add-minor-mode): Rewritten.
|
||||
|
||||
2000-04-28 Kenichi Handa <handa@etl.go.jp>
|
||||
|
||||
* mail/sendmail.el (sendmail-send-it): Set
|
||||
|
|
55
lisp/subr.el
55
lisp/subr.el
|
@ -1486,18 +1486,51 @@ If DIR-FLAG is non-nil, create a new empty directory instead of a file."
|
|||
file))
|
||||
|
||||
|
||||
(defun add-minor-mode (symbol name &optional map)
|
||||
(defun add-minor-mode (toggle name &optional keymap after toggle-fun)
|
||||
"Register a new minor mode.
|
||||
SYMBOL is the name of a buffer-local variable that is toggled on
|
||||
or off to say whether the minor mode is active or not. NAME is the
|
||||
string that will appear in the mode line when the minor mode is
|
||||
active. Optional MAP is the keymap for the minor mode."
|
||||
(make-local-variable symbol)
|
||||
(set symbol t)
|
||||
(unless (assq symbol minor-mode-alist)
|
||||
(add-to-list 'minor-mode-alist (list symbol name)))
|
||||
(when (and map (not (assq symbol minor-mode-map-alist)))
|
||||
(add-to-list 'minor-mode-map-alist (cons symbol map))))
|
||||
|
||||
TOGGLE is a symbol which is the name of a buffer-local variable that
|
||||
is toggled on or off to say whether the minor mode is active or not.
|
||||
|
||||
NAME specifies what will appear in the mode line when the minor mode
|
||||
is active. NAME should be either a string starting with a space, or a
|
||||
symbol whose value is such a string.
|
||||
|
||||
Optional KEYMAP is the keymap for the minor mode that will be added
|
||||
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.
|
||||
It is currently not used."
|
||||
(make-local-variable toggle)
|
||||
(set toggle t)
|
||||
|
||||
(when name
|
||||
(let ((existing (assq toggle minor-mode-alist))
|
||||
(name (if (symbolp name) (symbol-value name) name)))
|
||||
(cond ((null existing)
|
||||
(let ((tail minor-mode-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 toggle name) rest))
|
||||
(setq minor-mode-alist (cons (list toggle name)
|
||||
minor-mode-alist)))))
|
||||
(t
|
||||
(setcdr existing (list name))))))
|
||||
|
||||
(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))))))
|
||||
|
||||
|
||||
;;; subr.el ends here
|
||||
|
|
Loading…
Add table
Reference in a new issue