summaryrefslogtreecommitdiff
path: root/lisp/buff-menu.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2005-09-06 20:44:41 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2005-09-06 20:44:41 +0000
commit3076c7266f4464fbc0b3531c0d799369ffcc3b50 (patch)
treef5845cb626f3fe4c3db94cb63007498930f75e86 /lisp/buff-menu.el
parent4cc1468e0b888d56ea06567493ceed01c554503d (diff)
downloademacs-3076c7266f4464fbc0b3531c0d799369ffcc3b50.tar.gz
(Buffer-menu-make-sort-button): Add docstrings, use non-anonymous functions.
Diffstat (limited to 'lisp/buff-menu.el')
-rw-r--r--lisp/buff-menu.el55
1 files changed, 29 insertions, 26 deletions
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el
index 41bc4bb3335..18ba3bf25ca 100644
--- a/lisp/buff-menu.el
+++ b/lisp/buff-menu.el
@@ -635,32 +635,35 @@ For more information, see the function `buffer-menu'."
(defun Buffer-menu-make-sort-button (name column)
(if (equal column Buffer-menu-sort-column) (setq column nil))
- (propertize name
- 'help-echo (if column
- (if Buffer-menu-use-header-line
- (concat "mouse-1, mouse-2: sort by "
- (downcase name))
- (concat "mouse-2, RET: sort by "
- (downcase name)))
- (if Buffer-menu-use-header-line
- "mouse-1, mouse-2: sort by visited order"
- "mouse-2, RET: sort by visited order"))
- 'mouse-face 'highlight
- 'keymap (let ((map (make-sparse-keymap))
- (fun `(lambda (e)
- (interactive "e")
- (if e (mouse-select-window e))
- (Buffer-menu-sort ,column))))
- ;; This keymap handles both nil and non-nil
- ;; values for Buffer-menu-use-header-line.
- (define-key map [header-line mouse-1] fun)
- (define-key map [header-line mouse-2] fun)
- (define-key map [mouse-2] fun)
- (define-key map [follow-link] 'mouse-face)
- (define-key map "\C-m"
- `(lambda () (interactive)
- (Buffer-menu-sort ,column)))
- map)))
+ (let* ((downname (downcase name))
+ (map (make-sparse-keymap))
+ (fun `(lambda (&optional e)
+ ,(concat "Sort the buffer menu by " downname ".")
+ (interactive (list last-input-event))
+ (if e (mouse-select-window e))
+ (Buffer-menu-sort ,column)))
+ (sym (intern (format "Buffer-menu-sort-by-%s-%s" name column))))
+ ;; Use a symbol rather than an anonymous function, to make the output of
+ ;; C-h k less intimidating.
+ (fset sym fun)
+ (setq fun sym)
+ ;; This keymap handles both nil and non-nil
+ ;; values for Buffer-menu-use-header-line.
+ (define-key map [header-line mouse-1] fun)
+ (define-key map [header-line mouse-2] fun)
+ (define-key map [mouse-2] fun)
+ (define-key map [follow-link] 'mouse-face)
+ (define-key map "\C-m" fun)
+ (propertize name
+ 'help-echo (concat
+ (if Buffer-menu-use-header-line
+ "mouse-1, mouse-2: sort by "
+ "mouse-2, RET: sort by ")
+ ;; No clue what this is for, but I preserved the
+ ;; behavior, just in case. --Stef
+ (if column downname "visited order"))
+ 'mouse-face 'highlight
+ 'keymap map)))
(defun list-buffers-noselect (&optional files-only buffer-list)
"Create and return a buffer with a list of names of existing buffers.