emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/buff-menu.el


From: Chong Yidong
Subject: [Emacs-diffs] Changes to emacs/lisp/buff-menu.el
Date: Wed, 07 Sep 2005 14:48:35 -0400

Index: emacs/lisp/buff-menu.el
diff -c emacs/lisp/buff-menu.el:1.91 emacs/lisp/buff-menu.el:1.92
*** emacs/lisp/buff-menu.el:1.91        Tue Sep  6 20:44:41 2005
--- emacs/lisp/buff-menu.el     Wed Sep  7 18:48:34 2005
***************
*** 633,669 ****
            (insert m2)))
        (forward-line)))))
  
  (defun Buffer-menu-make-sort-button (name column)
    (if (equal column Buffer-menu-sort-column) (setq column nil))
!   (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.
--- 633,672 ----
            (insert m2)))
        (forward-line)))))
  
+ (defun Buffer-menu-sort-by-column (&optional e)
+   "Sort the buffer menu by the column clicked on."
+   (interactive (list last-input-event))
+   (if e (mouse-select-window e))
+   (let* ((pos (event-start e))
+        (obj (posn-object pos))
+        (col (if obj
+                 (get-text-property (cdr obj) 'column (car obj))
+               (get-text-property (posn-point pos) 'column))))
+     (Buffer-menu-sort col)))
+ 
+ (defvar Buffer-menu-sort-button-map
+   (let ((map (make-sparse-keymap)))
+     ;; This keymap handles both nil and non-nil values for
+     ;; Buffer-menu-use-header-line.
+     (define-key map [header-line mouse-1] 'Buffer-menu-sort-by-column)
+     (define-key map [header-line mouse-2] 'Buffer-menu-sort-by-column)
+     (define-key map [mouse-2] 'Buffer-menu-sort-by-column)
+     (define-key map [follow-link] 'mouse-face)
+     (define-key map "\C-m" 'Buffer-menu-sort-by-column)
+     map)
+   "Local keymap for Buffer menu sort buttons.")
+ 
  (defun Buffer-menu-make-sort-button (name column)
    (if (equal column Buffer-menu-sort-column) (setq column nil))
!   (propertize name
!             'column column
!             'help-echo (concat
!                         (if Buffer-menu-use-header-line
!                             "mouse-1, mouse-2: sort by "
!                           "mouse-2, RET: sort by ")
!                         (if column (downcase name) "visited order"))
!             'mouse-face 'highlight
!             'keymap Buffer-menu-sort-button-map))
  
  (defun list-buffers-noselect (&optional files-only buffer-list)
    "Create and return a buffer with a list of names of existing buffers.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]