1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-19 18:13:55 +00:00

Make the recency sorting stable when we have inverted sorting

* lisp/ibuffer.el (recency): Remove.
(recency): New macro function so that sorting by recency is
stable when inverted sorting is switched on (bug#30129).
This commit is contained in:
Lars Ingebrigtsen 2021-02-04 12:59:16 +01:00
parent 3b27f2e464
commit d3cb07d784

View File

@ -219,7 +219,6 @@ view of the buffers."
(const :tag "File name" :value filename/process)
(const :tag "Major mode" :value major-mode)))
(defvar ibuffer-sorting-mode nil)
(defvar ibuffer-last-sorting-mode nil)
(defcustom ibuffer-default-sorting-reversep nil
"If non-nil, reverse the default sorting order."
@ -2129,16 +2128,13 @@ the value of point at the beginning of the line for that buffer."
(and ibuffer-buf
(not (eq ibuffer-buf buf))))))
;; This function is a special case; it's not defined by
;; `define-ibuffer-sorter'.
(defun ibuffer-do-sort-by-recency ()
"Sort the buffers by last view time."
(interactive)
(setq ibuffer-sorting-mode 'recency)
(when (eq ibuffer-last-sorting-mode 'recency)
(setq ibuffer-sorting-reversep (not ibuffer-sorting-reversep)))
(ibuffer-update nil t)
(setq ibuffer-last-sorting-mode 'recency))
(define-ibuffer-sorter recency
"Sort the buffers by how recently they've been used."
(:description "recency")
(time-less-p (with-current-buffer (car b)
(or buffer-display-time 0))
(with-current-buffer (car a)
(or buffer-display-time 0))))
(defun ibuffer-update-format ()
(when (null ibuffer-current-format)