lisp/ibuf-ext.el (ibuffer-switch-to-saved-filter-groups): Shortcut completing-read...
authorRoland Winkler <winkler@gnu.org>
Sun, 23 Sep 2012 11:54:50 +0000 (06:54 -0500)
committerRoland Winkler <winkler@gnu.org>
Sun, 23 Sep 2012 11:54:50 +0000 (06:54 -0500)
lisp/ChangeLog
lisp/ibuf-ext.el

index 40c9f6c..29affbd 100644 (file)
@@ -1,3 +1,9 @@
+2012-09-23  Roland Winkler  <winkler@gnu.org>
+
+       * ibuf-ext.el (ibuffer-switch-to-saved-filter-groups): If list
+       ibuffer-saved-filter-groups has one element, shortcut the call of
+       completing-read.  (Bug#12331)
+
 2012-09-23  Chong Yidong  <cyd@gnu.org>
 
        * bindings.el (mode-line-toggle-read-only):
index 97df90a..ee5bd0f 100644 (file)
@@ -755,10 +755,16 @@ They are removed from `ibuffer-saved-filter-groups'."
 The value from `ibuffer-saved-filter-groups' is used."
   (interactive
    (list
-    (if (null ibuffer-saved-filter-groups)
-       (error "No saved filters")
-      (completing-read "Switch to saved filter group: "
-                      ibuffer-saved-filter-groups nil t))))
+    (cond ((null ibuffer-saved-filter-groups)
+           (error "No saved filters"))
+          ;; `ibuffer-saved-filter-groups' is a user variable that defaults
+          ;; to nil.  We assume that with one element in this list the user
+          ;; knows what she wants.  See bug#12331.
+          ((null (cdr ibuffer-saved-filter-groups))
+           (caar ibuffer-saved-filter-groups))
+          (t
+           (completing-read "Switch to saved filter group: "
+                            ibuffer-saved-filter-groups nil t)))))
   (setq ibuffer-filter-groups (cdr (assoc name ibuffer-saved-filter-groups))
        ibuffer-hidden-filter-groups nil)
   (ibuffer-update nil t))