aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Ingebrigtsen2021-02-04 12:59:16 +0100
committerLars Ingebrigtsen2021-02-04 12:59:16 +0100
commitd3cb07d784a4c4029f0a50ba003ebf4b93dd59c3 (patch)
treec4e31933c1e56d4b8e168756d808feca6ecbfd7f
parent3b27f2e46494cbcb5a2c81bd68617ecdf3bc4ad9 (diff)
downloademacs-d3cb07d784a4c4029f0a50ba003ebf4b93dd59c3.tar.gz
emacs-d3cb07d784a4c4029f0a50ba003ebf4b93dd59c3.zip
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).
-rw-r--r--lisp/ibuffer.el18
1 files changed, 7 insertions, 11 deletions
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index 84c53b16acf..c91a70b3a1c 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -219,7 +219,6 @@ view of the buffers."
219 (const :tag "File name" :value filename/process) 219 (const :tag "File name" :value filename/process)
220 (const :tag "Major mode" :value major-mode))) 220 (const :tag "Major mode" :value major-mode)))
221(defvar ibuffer-sorting-mode nil) 221(defvar ibuffer-sorting-mode nil)
222(defvar ibuffer-last-sorting-mode nil)
223 222
224(defcustom ibuffer-default-sorting-reversep nil 223(defcustom ibuffer-default-sorting-reversep nil
225 "If non-nil, reverse the default sorting order." 224 "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."
2129 (and ibuffer-buf 2128 (and ibuffer-buf
2130 (not (eq ibuffer-buf buf)))))) 2129 (not (eq ibuffer-buf buf))))))
2131 2130
2132;; This function is a special case; it's not defined by 2131(define-ibuffer-sorter recency
2133;; `define-ibuffer-sorter'. 2132 "Sort the buffers by how recently they've been used."
2134(defun ibuffer-do-sort-by-recency () 2133 (:description "recency")
2135 "Sort the buffers by last view time." 2134 (time-less-p (with-current-buffer (car b)
2136 (interactive) 2135 (or buffer-display-time 0))
2137 (setq ibuffer-sorting-mode 'recency) 2136 (with-current-buffer (car a)
2138 (when (eq ibuffer-last-sorting-mode 'recency) 2137 (or buffer-display-time 0))))
2139 (setq ibuffer-sorting-reversep (not ibuffer-sorting-reversep)))
2140 (ibuffer-update nil t)
2141 (setq ibuffer-last-sorting-mode 'recency))
2142 2138
2143(defun ibuffer-update-format () 2139(defun ibuffer-update-format ()
2144 (when (null ibuffer-current-format) 2140 (when (null ibuffer-current-format)