aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Francoise2006-03-23 07:05:33 +0000
committerRomain Francoise2006-03-23 07:05:33 +0000
commitfde057aac8743ec04145f99d2de634fa6e2c37c7 (patch)
tree09009ac960505501c02efd3899a158f48fd1452b
parente9e33c19b8ae7878f448804a54c338a4d83536a1 (diff)
downloademacs-fde057aac8743ec04145f99d2de634fa6e2c37c7.tar.gz
emacs-fde057aac8743ec04145f99d2de634fa6e2c37c7.zip
(ibuffer-read-filter-group-name):
Use `ibuffer-generate-filter-groups' to make completion list match the filter groups that are really displayed in the Ibuffer buffer. (ibuffer-generate-filter-groups): Add new args noempty, nodefault.
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/ibuf-ext.el36
2 files changed, 31 insertions, 12 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index e0b7bac0697..f0964ecb825 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,10 @@
12006-03-23 Romain Francoise <romain@orebokech.com>
2
3 * ibuf-ext.el (ibuffer-read-filter-group-name):
4 Use `ibuffer-generate-filter-groups' to make completion list match
5 the filter groups that are really displayed in the Ibuffer buffer.
6 (ibuffer-generate-filter-groups): Add new args noempty, nodefault.
7
12006-03-23 Kenichi Handa <handa@m17n.org> 82006-03-23 Kenichi Handa <handa@m17n.org>
2 9
3 * international/mule-cmds.el (sort-coding-systems): Describe that 10 * international/mule-cmds.el (sort-coding-systems): Describe that
diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el
index 183da83816d..292e158c097 100644
--- a/lisp/ibuf-ext.el
+++ b/lisp/ibuf-ext.el
@@ -511,9 +511,11 @@ To evaluate a form without viewing the buffer, see `ibuffer-do-eval'."
511 buf 511 buf
512 (cdr filter)))))))))) 512 (cdr filter))))))))))
513 513
514(defun ibuffer-generate-filter-groups (bmarklist) 514(defun ibuffer-generate-filter-groups (bmarklist &optional noempty nodefault)
515 (let ((filter-group-alist (append ibuffer-filter-groups 515 (let ((filter-group-alist (if nodefault
516 (list (cons "Default" nil))))) 516 ibuffer-filter-groups
517 (append ibuffer-filter-groups
518 (list (cons "Default" nil))))))
517;; (dolist (hidden ibuffer-hidden-filter-groups) 519;; (dolist (hidden ibuffer-hidden-filter-groups)
518;; (setq filter-group-alist (ibuffer-delete-alist 520;; (setq filter-group-alist (ibuffer-delete-alist
519;; hidden filter-group-alist))) 521;; hidden filter-group-alist)))
@@ -529,11 +531,13 @@ To evaluate a form without viewing the buffer, see `ibuffer-do-eval'."
529 (aset vec i hip-crowd) 531 (aset vec i hip-crowd)
530 (incf i) 532 (incf i)
531 (setq bmarklist lamers)))) 533 (setq bmarklist lamers))))
532 (let ((ret nil)) 534 (let (ret)
533 (dotimes (j i ret) 535 (dotimes (j i ret)
534 (push (cons (car (nth j filter-group-alist)) 536 (let ((bufs (aref vec j)))
535 (aref vec j)) 537 (unless (and noempty (null bufs))
536 ret)))))) 538 (push (cons (car (nth j filter-group-alist))
539 bufs)
540 ret))))))))
537 541
538;;;###autoload 542;;;###autoload
539(defun ibuffer-filters-to-filter-group (name) 543(defun ibuffer-filters-to-filter-group (name)
@@ -575,11 +579,19 @@ To evaluate a form without viewing the buffer, see `ibuffer-do-eval'."
575(defun ibuffer-read-filter-group-name (msg &optional nodefault noerror) 579(defun ibuffer-read-filter-group-name (msg &optional nodefault noerror)
576 (when (and (not noerror) (null ibuffer-filter-groups)) 580 (when (and (not noerror) (null ibuffer-filter-groups))
577 (error "No filter groups active")) 581 (error "No filter groups active"))
578 (let ((groups (mapcar #'car ibuffer-filter-groups))) 582 ;; `ibuffer-generate-filter-groups' returns all non-hidden filter
579 (completing-read msg (if nodefault 583 ;; groups, possibly excluding empty groups or Default.
580 groups 584 ;; We add `ibuffer-hidden-filter-groups' to the list, excluding
581 (cons "Default" groups)) 585 ;; Default if necessary.
582 nil t))) 586 (completing-read msg (nconc
587 (ibuffer-generate-filter-groups
588 (ibuffer-current-state-list)
589 (not ibuffer-show-empty-filter-groups)
590 nodefault)
591 (if nodefault
592 (remove "Default" ibuffer-hidden-filter-groups)
593 ibuffer-hidden-filter-groups))
594 nil t))
583 595
584;;;###autoload 596;;;###autoload
585(defun ibuffer-decompose-filter-group (group) 597(defun ibuffer-decompose-filter-group (group)