Mercurial > emacs
changeset 43379:3fce95e542b1
(ibuffer-toggle-sorting-mode): Make it work. Patch from John Paul
Wallington <jpw@shootybangbang.com>.
author | Colin Walters <walters@gnu.org> |
---|---|
date | Sun, 17 Feb 2002 08:57:24 +0000 |
parents | 5043145dbf59 |
children | c3f2cf68ef3d |
files | lisp/ibuf-ext.el |
diffstat | 1 files changed, 9 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ibuf-ext.el Sun Feb 17 08:57:09 2002 +0000 +++ b/lisp/ibuf-ext.el Sun Feb 17 08:57:24 2002 +0000 @@ -654,23 +654,20 @@ ;;;###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