* lisp/ibuf-ext.el (ibuffer-filter-disable): Make it work. (Bug#7969)

Details:

An error in a filter would cause an infinite loop.
ibuffer-update calls ibuffer-redisplay-engine which calls
ibuffer-update which calls ibuffer-redisplay-engine, etc.

ibuffer-generate-filter-groups calls ibuffer-included-in-filters-p.
If ibuffer-included-in-filter-p-1 meets an unknown element in the
filter, it calls ibuffer-filter-disable, which calls ibuffer-update.
If the filters have not been properly disabled, we go round and round.
This commit is contained in:
Glenn Morris 2011-02-02 23:02:52 -08:00
parent 95838641ae
commit df27585129
2 changed files with 4 additions and 1 deletions

View file

@ -1,5 +1,7 @@
2011-02-03 Glenn Morris <rgm@gnu.org>
* ibuf-ext.el (ibuffer-filter-disable): Make it work. (Bug#7969)
* faces.el (set-face-attribute): Doc fix. (Bug#2659)
2011-02-02 Stefan Monnier <monnier@iro.umontreal.ca>

View file

@ -780,7 +780,8 @@ The value from `ibuffer-saved-filter-groups' is used."
(defun ibuffer-filter-disable ()
"Disable all filters currently in effect in this buffer."
(interactive)
(setq ibuffer-filtering-qualifiers nil)
(setq ibuffer-filtering-qualifiers nil
ibuffer-filter-groups nil)
(let ((buf (ibuffer-current-buffer)))
(ibuffer-update nil t)
(when buf