Commit c94f4677 authored by Gerd Moellmann's avatar Gerd Moellmann
Browse files

*** empty log message ***

parent 030106ca
...@@ -1150,12 +1150,25 @@ so I will know I still need to look at it -- rms. ...@@ -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 ** The function `add-minor-mode' simplifies the definition of minor
modes. 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 Register a new minor mode.
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 TOGGLE is a symbol which is the name of a buffer-local variable that
when the minor mode is active. MAP is the keymap for the minor mode. 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 ** The function `shell-command' now sets the default directory of the
`*Shell Command Output*' buffer to the default directory of the buffer `*Shell Command Output*' buffer to the default directory of the buffer
......
2000-04-28 Gerd Moellmann <gerd@gnu.org>
* subr.el (add-minor-mode): Rewritten.
2000-04-28 Kenichi Handa <handa@etl.go.jp> 2000-04-28 Kenichi Handa <handa@etl.go.jp>
* mail/sendmail.el (sendmail-send-it): Set * mail/sendmail.el (sendmail-send-it): Set
......
...@@ -1486,18 +1486,51 @@ If DIR-FLAG is non-nil, create a new empty directory instead of a file." ...@@ -1486,18 +1486,51 @@ If DIR-FLAG is non-nil, create a new empty directory instead of a file."
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. "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 TOGGLE is a symbol which is the name of a buffer-local variable that
string that will appear in the mode line when the minor mode is is toggled on or off to say whether the minor mode is active or not.
active. Optional MAP is the keymap for the minor mode."
(make-local-variable symbol) NAME specifies what will appear in the mode line when the minor mode
(set symbol t) is active. NAME should be either a string starting with a space, or a
(unless (assq symbol minor-mode-alist) symbol whose value is such a string.
(add-to-list 'minor-mode-alist (list symbol name)))
(when (and map (not (assq symbol minor-mode-map-alist))) Optional KEYMAP is the keymap for the minor mode that will be added
(add-to-list 'minor-mode-map-alist (cons symbol map)))) 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 ;;; subr.el ends here
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment