Mercurial > emacs
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." |