diff options
| author | Lars Ingebrigtsen | 2021-02-04 12:59:16 +0100 |
|---|---|---|
| committer | Lars Ingebrigtsen | 2021-02-04 12:59:16 +0100 |
| commit | d3cb07d784a4c4029f0a50ba003ebf4b93dd59c3 (patch) | |
| tree | c4e31933c1e56d4b8e168756d808feca6ecbfd7f | |
| parent | 3b27f2e46494cbcb5a2c81bd68617ecdf3bc4ad9 (diff) | |
| download | emacs-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.el | 18 |
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) |