*** empty log message ***

This commit is contained in:
Gerd Moellmann 2000-04-28 11:53:43 +00:00
parent 030106ca73
commit c94f467716
3 changed files with 66 additions and 16 deletions

View file

@ -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

View file

@ -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

View file

@ -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