[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master ee6fe83: Make ibuffer filters idempotent
From: |
Tino Calancha |
Subject: |
[Emacs-diffs] master ee6fe83: Make ibuffer filters idempotent |
Date: |
Fri, 20 Oct 2017 09:13:34 -0400 (EDT) |
branch: master
commit ee6fe8378a28444cb4913abca4af742f736e9b45
Author: Tino Calancha <address@hidden>
Commit: Tino Calancha <address@hidden>
Make ibuffer filters idempotent
* lisp/ibuf-ext.el (ibuffer-push-filter): Check if the
filter is already in effect (Bug#28826).
* lisp/ibuf-macs.el (define-ibuffer-filter):
Report to user if the filter was already enabled.
---
lisp/ibuf-ext.el | 7 +++++--
lisp/ibuf-macs.el | 16 ++++++++++------
2 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el
index 686bc39..2c841fa 100644
--- a/lisp/ibuf-ext.el
+++ b/lisp/ibuf-ext.el
@@ -1033,8 +1033,11 @@ group definitions by setting `ibuffer-filter-groups' to
nil."
(ibuffer-jump-to-buffer (buffer-name buf)))))
(defun ibuffer-push-filter (filter-specification)
- "Add FILTER-SPECIFICATION to `ibuffer-filtering-qualifiers'."
- (push filter-specification ibuffer-filtering-qualifiers))
+ "Add FILTER-SPECIFICATION to `ibuffer-filtering-qualifiers'.
+If FILTER-SPECIFICATION is already in the list then return nil. Otherwise,
+return the updated list."
+ (unless (member filter-specification ibuffer-filtering-qualifiers)
+ (push filter-specification ibuffer-filtering-qualifiers)))
;;;###autoload
(defun ibuffer-decompose-filter ()
diff --git a/lisp/ibuf-macs.el b/lisp/ibuf-macs.el
index e0c91e2..c30067f 100644
--- a/lisp/ibuf-macs.el
+++ b/lisp/ibuf-macs.el
@@ -301,12 +301,16 @@ bound to the current value of the filter.
(defun ,fn-name (qualifier)
,(or documentation "This filter is not documented.")
(interactive (list ,reader))
- (ibuffer-push-filter (cons ',name qualifier))
- (message "%s"
- (format ,(concat (format "Filter by %s added: " description)
- " %s")
- qualifier))
- (ibuffer-update nil t))
+ (if (null (ibuffer-push-filter (cons ',name qualifier)))
+ (message "%s"
+ (format ,(concat (format "Filter by %s already applied: "
description)
+ " %s")
+ qualifier))
+ (message "%s"
+ (format ,(concat (format "Filter by %s added: " description)
+ " %s")
+ qualifier))
+ (ibuffer-update nil t)))
(push (list ',name ,description
(lambda (buf qualifier)
(condition-case nil
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master ee6fe83: Make ibuffer filters idempotent,
Tino Calancha <=