summaryrefslogtreecommitdiff
path: root/lisp/ibuf-ext.el
diff options
context:
space:
mode:
authorColin Walters <walters@gnu.org>2002-02-17 08:57:24 +0000
committerColin Walters <walters@gnu.org>2002-02-17 08:57:24 +0000
commit13e14c5148d111774ee113d2181ef50e43dd90ba (patch)
tree10148d664cc78750fb4c62b0cfb7347cc095b75f /lisp/ibuf-ext.el
parent9b25ea40c51436aa298f7d4547bd169e8e53b659 (diff)
downloademacs-13e14c5148d111774ee113d2181ef50e43dd90ba.tar.gz
(ibuffer-toggle-sorting-mode): Make it work. Patch from John Paul
Wallington <jpw@shootybangbang.com>.
Diffstat (limited to 'lisp/ibuf-ext.el')
-rw-r--r--lisp/ibuf-ext.el21
1 files changed, 9 insertions, 12 deletions
diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el
index 9d914fae7c8..e5b85fd5a86 100644
--- a/lisp/ibuf-ext.el
+++ b/lisp/ibuf-ext.el
@@ -654,23 +654,20 @@ of replacing the current filters."
;;;###autoload
(defun ibuffer-toggle-sorting-mode ()
"Toggle the current sorting mode.
-Possible sorting modes are:
+Default sorting modes are:
Recency - the last time the buffer was viewed
Name - the name of the buffer
Major Mode - the name of the major mode of the buffer
Size - the size of the buffer"
(interactive)
- (let* ((keys (mapcar #'car ibuffer-sorting-functions-alist))
- (entry (memq ibuffer-sorting-mode keys))
- (next (or (cadr entry) (car keys)))
- (nextentry (assq next ibuffer-sorting-functions-alist)))
- (if (and entry nextentry)
- (progn
- (setq ibuffer-sorting-mode next)
- (message "Sorting by %s" (cadr nextentry)))
- (progn
- (setq ibuffer-sorting-mode 'recency)
- (message "Sorting by last view time"))))
+ (let ((modes (mapcar 'car ibuffer-sorting-functions-alist)))
+ (add-to-list 'modes 'recency)
+ (setq modes (sort modes 'string-lessp))
+ (let ((next (or (find-if
+ (lambda (x) (string-lessp ibuffer-sorting-mode x)) modes)
+ (car modes))))
+ (setq ibuffer-sorting-mode next)
+ (message "Sorting by %s" next)))
(ibuffer-redisplay t))
;;;###autoload