define-ibuffer-filter: Discard wrong filters
* lisp/ibuf-macs.el (define-ibuffer-filter): Do not store in 'ibuffer-filtering-qualifiers' a wrong filter (Bug#25042). * test/lisp/ibuffer-tests.el (ibuffer-test-Bug25042): Add test.
This commit is contained in:
parent
53fefb55c5
commit
e41e89d128
2 changed files with 19 additions and 2 deletions
|
@ -302,8 +302,13 @@ bound to the current value of the filter.
|
|||
qualifier))
|
||||
(ibuffer-update nil t))
|
||||
(push (list ',name ,description
|
||||
#'(lambda (buf qualifier)
|
||||
,@body))
|
||||
(lambda (buf qualifier)
|
||||
(condition-case nil
|
||||
,@body
|
||||
(error (ibuffer-pop-filter)
|
||||
(when (eq ',name 'predicate)
|
||||
(error "Wrong filter predicate: %S"
|
||||
qualifier))))))
|
||||
ibuffer-filtering-alist)
|
||||
:autoload-end)))
|
||||
|
||||
|
|
|
@ -126,5 +126,17 @@
|
|||
(and (buffer-live-p it) (kill-buffer it))))))
|
||||
|
||||
|
||||
(ert-deftest ibuffer-test-Bug25042 ()
|
||||
"Test for http://debbugs.gnu.org/25042 ."
|
||||
(ibuffer)
|
||||
(let ((filters ibuffer-filtering-qualifiers))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(ignore-errors ; Mistyped `match-string' instead of `string-match'.
|
||||
(setq ibuffer-filtering-qualifiers nil)
|
||||
(ibuffer-filter-by-predicate '(match-string "foo" (buffer-name))))
|
||||
(should-not ibuffer-filtering-qualifiers))
|
||||
(setq ibuffer-filtering-qualifiers filters))))
|
||||
|
||||
(provide 'ibuffer-tests)
|
||||
;; ibuffer-tests.el ends here
|
||||
|
|
Loading…
Add table
Reference in a new issue