diff options
author | Tino Calancha <tino.calancha@gmail.com> | 2017-10-20 22:11:39 +0900 |
---|---|---|
committer | Tino Calancha <tino.calancha@gmail.com> | 2017-10-20 22:11:39 +0900 |
commit | ee6fe8378a28444cb4913abca4af742f736e9b45 (patch) | |
tree | 35beb1736dbf4c4791d5795a09f7c71d8be084b1 /lisp/ibuf-macs.el | |
parent | 658853aebb0ae2ee243276e04a7672fa7525ec5c (diff) | |
download | emacs-ee6fe8378a28444cb4913abca4af742f736e9b45.tar.gz |
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.
Diffstat (limited to 'lisp/ibuf-macs.el')
-rw-r--r-- | lisp/ibuf-macs.el | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/lisp/ibuf-macs.el b/lisp/ibuf-macs.el index e0c91e20edd..c30067f2f58 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 |