comparison lisp/ibuf-ext.el @ 44871:15b639b48157

(ibuffer-saved-filter-groups): Don't include broken defaults. (ibuffer-yank): Be sure to `setq' after we use `nconc'. (ibuffer-save-filter-groups): Correctly structure filter groups. (ibuffer-switch-to-saved-filter-groups): Correctly extract filter groups.
author Colin Walters <walters@gnu.org>
date Fri, 26 Apr 2002 03:59:35 +0000
parents 663ebf8868d8
children 34f60f6d5261
comparison
equal deleted inserted replaced
44870:ed308b745565 44871:15b639b48157
155 (defcustom ibuffer-show-empty-filter-groups t 155 (defcustom ibuffer-show-empty-filter-groups t
156 "If non-nil, then show the names of filter groups which are empty." 156 "If non-nil, then show the names of filter groups which are empty."
157 :type 'boolean 157 :type 'boolean
158 :group 'ibuffer) 158 :group 'ibuffer)
159 159
160 (defcustom ibuffer-saved-filter-groups 160 (defcustom ibuffer-saved-filter-groups nil
161 '(("gnus"
162 ((or (mode . message-mode)
163 (mode . mail-mode)
164 (mode . gnus-group-mode)
165 (mode . gnus-summary-mode)
166 (mode . gnus-article-mode))))
167 ("programming"
168 ((or (mode . emacs-lisp-mode)
169 (mode . cperl-mode)
170 (mode . c-mode)
171 (mode . java-mode)
172 (mode . idl-mode)
173 (mode . lisp-mode)))))
174 161
175 "An alist of filtering groups to switch between. 162 "An alist of filtering groups to switch between.
176 163
177 This variable should look like ((\"STRING\" QUALIFIERS) 164 This variable should look like ((\"STRING\" QUALIFIERS)
178 (\"STRING\" QUALIFIERS) ...), where 165 (\"STRING\" QUALIFIERS) ...), where
646 (pos (or (position cur (mapcar #'car all-groups) :test #'equal) 633 (pos (or (position cur (mapcar #'car all-groups) :test #'equal)
647 (1- (length all-groups))))) 634 (1- (length all-groups)))))
648 (cond ((= pos 0) 635 (cond ((= pos 0)
649 (push last-killed ibuffer-filter-groups)) 636 (push last-killed ibuffer-filter-groups))
650 ((= pos (1- (length all-groups))) 637 ((= pos (1- (length all-groups)))
651 (nconc ibuffer-filter-groups (list last-killed))) 638 (setq ibuffer-filter-groups
639 (nconc ibuffer-filter-groups (list last-killed))))
652 (t 640 (t
653 (let ((cell (nthcdr pos ibuffer-filter-groups))) 641 (let ((cell (nthcdr pos ibuffer-filter-groups)))
654 (setf (cdr cell) (cons (car cell) (cdr cell))) 642 (setf (cdr cell) (cons (car cell) (cdr cell)))
655 (setf (car cell) last-killed)))))) 643 (setf (car cell) last-killed))))))
656 (ibuffer-update nil t)) 644 (ibuffer-update nil t))
666 (list 654 (list
667 (read-from-minibuffer "Save current filter groups as: ") 655 (read-from-minibuffer "Save current filter groups as: ")
668 ibuffer-filter-groups))) 656 ibuffer-filter-groups)))
669 (ibuffer-aif (assoc name ibuffer-saved-filter-groups) 657 (ibuffer-aif (assoc name ibuffer-saved-filter-groups)
670 (setcdr it groups) 658 (setcdr it groups)
671 (push (list name groups) ibuffer-saved-filter-groups)) 659 (push (cons name groups) ibuffer-saved-filter-groups))
672 (ibuffer-maybe-save-stuff) 660 (ibuffer-maybe-save-stuff)
673 (ibuffer-update-mode-name)) 661 (ibuffer-update-mode-name))
674 662
675 ;;;###autoload 663 ;;;###autoload
676 (defun ibuffer-delete-saved-filter-groups (name) 664 (defun ibuffer-delete-saved-filter-groups (name)
697 (list 685 (list
698 (if (null ibuffer-saved-filter-groups) 686 (if (null ibuffer-saved-filter-groups)
699 (error "No saved filters") 687 (error "No saved filters")
700 (completing-read "Switch to saved filter group: " 688 (completing-read "Switch to saved filter group: "
701 ibuffer-saved-filter-groups nil t)))) 689 ibuffer-saved-filter-groups nil t))))
702 (setq ibuffer-filter-groups (assoc name ibuffer-saved-filter-groups)) 690 (setq ibuffer-filter-groups (cdr (assoc name ibuffer-saved-filter-groups)))
703 (ibuffer-update nil t)) 691 (ibuffer-update nil t))
704 692
705 ;;;###autoload 693 ;;;###autoload
706 (defun ibuffer-filter-disable () 694 (defun ibuffer-filter-disable ()
707 "Disable all filters currently in effect in this buffer." 695 "Disable all filters currently in effect in this buffer."