Merge from trunk.
[bpt/emacs.git] / lisp / ibuffer.el
index f7ac24f..17be553 100644 (file)
@@ -1,6 +1,6 @@
 ;;; ibuffer.el --- operate on buffers like dired
 
-;; Copyright (C) 2000-2011  Free Software Foundation, Inc.
+;; Copyright (C) 2000-2012  Free Software Foundation, Inc.
 
 ;; Author: Colin Walters <walters@verbum.org>
 ;; Maintainer: John Paul Wallington <jpw@gnu.org>
@@ -356,12 +356,12 @@ directory, like `default-directory'."
   :type 'hook
   :group 'ibuffer)
 
-(defcustom ibuffer-marked-face 'font-lock-warning-face
+(defcustom ibuffer-marked-face 'warning
   "Face used for displaying marked buffers."
   :type 'face
   :group 'ibuffer)
 
-(defcustom ibuffer-deletion-face 'font-lock-type-face
+(defcustom ibuffer-deletion-face 'error
   "Face used for displaying buffers marked for deletion."
   :type 'face
   :group 'ibuffer)
@@ -426,7 +426,7 @@ directory, like `default-directory'."
       '(menu-item "Save current filter groups permanently..."
         ibuffer-save-filter-groups
         :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups)
-        :help "Use a mnemnonic name to store current filter groups"))
+        :help "Use a mnemonic name to store current filter groups"))
     (define-key-after groups-map [switch-to-saved-filter-groups]
       '(menu-item "Restore permanently saved filters..."
         ibuffer-switch-to-saved-filter-groups
@@ -676,7 +676,7 @@ directory, like `default-directory'."
     (define-key-after map [menu-bar view filter save-filters]
       '(menu-item "Save current filters permanently..." ibuffer-save-filters
         :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers)
-        :help "Use a mnemnonic name to store current filter stack"))
+        :help "Use a mnemonic name to store current filter stack"))
     (define-key-after map [menu-bar view filter switch-to-saved-filters]
       '(menu-item "Restore permanently saved filters..."
         ibuffer-switch-to-saved-filters
@@ -1137,15 +1137,15 @@ a new window in the current frame, splitting vertically."
                             (frame-height)))
                       (1+ (length marked-bufs)))))
        (mapcar (if (eq type 'other-frame)
-                   #'(lambda (buf)
-                       (let ((curframe (selected-frame)))
-                         (select-frame (make-frame))
-                         (switch-to-buffer buf)
-                         (select-frame curframe)))
-                 #'(lambda (buf)
-                     (split-window nil height (eq type 'horizontally))
-                     (other-window 1)
-                     (switch-to-buffer buf)))
+                   (lambda (buf)
+                     (let ((curframe (selected-frame)))
+                       (select-frame (make-frame))
+                       (switch-to-buffer buf)
+                       (select-frame curframe)))
+                 (lambda (buf)
+                   (split-window nil height (eq type 'horizontally))
+                   (other-window 1)
+                   (switch-to-buffer buf)))
                marked-bufs)))))
 
 (defun ibuffer-do-view-other-frame ()
@@ -1214,10 +1214,10 @@ a new window in the current frame, splitting vertically."
 (defun ibuffer-buffer-names-with-mark (mark)
   (let ((ibuffer-buffer-names-with-mark-result nil))
     (ibuffer-map-lines-nomodify
-     #'(lambda (buf mk)
-        (when (char-equal mark mk)
-          (push (buffer-name buf)
-                ibuffer-buffer-names-with-mark-result))))
+     (lambda (buf mk)
+       (when (char-equal mark mk)
+        (push (buffer-name buf)
+              ibuffer-buffer-names-with-mark-result))))
     ibuffer-buffer-names-with-mark-result))
 
 (defsubst ibuffer-marked-buffer-names ()
@@ -1229,16 +1229,16 @@ a new window in the current frame, splitting vertically."
 (defun ibuffer-count-marked-lines (&optional all)
   (if all
       (ibuffer-map-lines-nomodify
-       #'(lambda (buf mark)
-          (not (char-equal mark ?\s))))
+       (lambda (_buf mark)
+        (not (char-equal mark ?\s))))
     (ibuffer-map-lines-nomodify
-     #'(lambda (buf mark)
-        (char-equal mark ibuffer-marked-char)))))
+     (lambda (_buf mark)
+       (char-equal mark ibuffer-marked-char)))))
 
 (defsubst ibuffer-count-deletion-lines ()
   (ibuffer-map-lines-nomodify
-   #'(lambda (buf mark)
-       (char-equal mark ibuffer-deletion-char))))
+   (lambda (_buf mark)
+     (char-equal mark ibuffer-deletion-char))))
 
 (defsubst ibuffer-map-deletion-lines (func)
   (ibuffer-map-on-mark ibuffer-deletion-char func))
@@ -1317,20 +1317,20 @@ With optional ARG, make read-only only if ARG is positive."
     (cond
      ((char-equal mark ibuffer-marked-char)
       (ibuffer-map-marked-lines
-       #'(lambda (buf mark)
-          (ibuffer-set-mark-1 ?\s)
-          t)))
+       (lambda (_buf _mark)
+        (ibuffer-set-mark-1 ?\s)
+        t)))
      ((char-equal mark ibuffer-deletion-char)
       (ibuffer-map-deletion-lines
-       #'(lambda (buf mark)
-          (ibuffer-set-mark-1 ?\s)
-          t)))
+       (lambda (_buf _mark)
+        (ibuffer-set-mark-1 ?\s)
+        t)))
      (t
       (ibuffer-map-lines
-       #'(lambda (buf mark)
-          (when (not (char-equal mark ?\s))
-            (ibuffer-set-mark-1 ?\s))
-          t)))))
+       (lambda (_buf mark)
+        (when (not (char-equal mark ?\s))
+          (ibuffer-set-mark-1 ?\s))
+        t)))))
   (ibuffer-redisplay t))
 
 (defun ibuffer-toggle-marks (&optional group)
@@ -1344,15 +1344,15 @@ group."
       (setq group it))
   (let ((count
         (ibuffer-map-lines
-         #'(lambda (buf mark)
-             (cond ((eq mark ibuffer-marked-char)
-                    (ibuffer-set-mark-1 ?\s)
-                    nil)
-                   ((eq mark ?\s)
-                    (ibuffer-set-mark-1 ibuffer-marked-char)
-                    t)
-                   (t
-                    nil)))
+         (lambda (_buf mark)
+           (cond ((eq mark ibuffer-marked-char)
+                  (ibuffer-set-mark-1 ?\s)
+                  nil)
+                 ((eq mark ?\s)
+                  (ibuffer-set-mark-1 ibuffer-marked-char)
+                  t)
+                 (t
+                  nil)))
          nil group)))
     (message "%s buffers marked" count))
   (ibuffer-redisplay t))
@@ -1663,11 +1663,11 @@ If point is on a group name, this function operates on that group."
        (mapcar #'ibuffer-compile-format ibuffer-formats))
   (when (boundp 'ibuffer-filter-format-alist)
     (setq ibuffer-compiled-filter-formats
-         (mapcar #'(lambda (entry)
-                     (cons (car entry)
-                           (mapcar #'(lambda (formats)
-                                       (mapcar #'ibuffer-compile-format formats))
-                                   (cdr entry))))
+         (mapcar (lambda (entry)
+                   (cons (car entry)
+                         (mapcar (lambda (formats)
+                                   (mapcar #'ibuffer-compile-format formats))
+                                 (cdr entry))))
                  ibuffer-filter-format-alist))))
 
 (defun ibuffer-clear-summary-columns (format)
@@ -1864,10 +1864,10 @@ If point is on a group name, this function operates on that group."
 
 (defun ibuffer-map-on-mark (mark func)
   (ibuffer-map-lines
-   #'(lambda (buf mk)
-       (if (char-equal mark mk)
-          (funcall func buf mark)
-        nil))))
+   (lambda (buf mk)
+     (if (char-equal mark mk)
+        (funcall func buf mark)
+       nil))))
 
 (defun ibuffer-map-lines (function &optional nomodify group)
   "Call FUNCTION for each buffer.
@@ -1939,9 +1939,9 @@ the buffer object itself and the current mark symbol."
 (defun ibuffer-get-marked-buffers ()
   "Return a list of buffer objects currently marked."
   (delq nil
-       (mapcar #'(lambda (e)
-                   (when (eq (cdr e) ibuffer-marked-char)
-                     (car e)))
+       (mapcar (lambda (e)
+                 (when (eq (cdr e) ibuffer-marked-char)
+                   (car e)))
                (ibuffer-current-state-list))))
 
 (defun ibuffer-current-state-list (&optional pos)
@@ -1953,22 +1953,22 @@ the value of point at the beginning of the line for that buffer."
     ;; break later.  Don't blame me.
     (if pos
        (ibuffer-map-lines-nomodify
-        #'(lambda (buf mark)
-            (when (buffer-live-p buf)
-              (push (list buf mark (point)) ibuffer-current-state-list-tmp))))
-      (ibuffer-map-lines-nomodify
-       #'(lambda (buf mark)
+        (lambda (buf mark)
           (when (buffer-live-p buf)
-            (push (cons buf mark) ibuffer-current-state-list-tmp)))))
+            (push (list buf mark (point)) ibuffer-current-state-list-tmp))))
+      (ibuffer-map-lines-nomodify
+       (lambda (buf mark)
+        (when (buffer-live-p buf)
+          (push (cons buf mark) ibuffer-current-state-list-tmp)))))
     (nreverse ibuffer-current-state-list-tmp)))
 
 (defun ibuffer-current-buffers-with-marks (curbufs)
   "Return a list like (BUF . MARK) of all open buffers."
   (let ((bufs (ibuffer-current-state-list)))
-    (mapcar #'(lambda (buf) (let ((e (assq buf bufs)))
-                             (if e
-                                 e
-                               (cons buf ?\s))))
+    (mapcar (lambda (buf) (let ((e (assq buf bufs)))
+                           (if e
+                               e
+                             (cons buf ?\s))))
            curbufs)))
 
 (defun ibuffer-buf-matches-predicates (buf predicates)
@@ -1986,17 +1986,17 @@ the value of point at the beginning of the line for that buffer."
     (delq nil
          (mapcar
           ;; element should be like (BUFFER . MARK)
-          #'(lambda (e)
-              (let* ((buf (car e)))
-                (when
-                    ;; This takes precedence over anything else
-                    (or (and ibuffer-always-show-last-buffer
-                             (eq last buf))
-                        (funcall (if ext-loaded
-                                     #'ibuffer-ext-visible-p
-                                   #'ibuffer-visible-p)
-                                 buf all ibuffer-buf))
-                  e)))
+          (lambda (e)
+            (let* ((buf (car e)))
+              (when
+                  ;; This takes precedence over anything else
+                  (or (and ibuffer-always-show-last-buffer
+                           (eq last buf))
+                      (funcall (if ext-loaded
+                                   #'ibuffer-ext-visible-p
+                                 #'ibuffer-visible-p)
+                               buf all ibuffer-buf))
+                e)))
           bmarklist))))
 
 (defun ibuffer-visible-p (buf all &optional ibuffer-buf)
@@ -2084,11 +2084,11 @@ the value of point at the beginning of the line for that buffer."
                      (beginning-of-line)
                      (buffer-substring (point) (line-end-position)))))
           (apply #'insert (mapcar
-                           #'(lambda (c)
-                               (if (not (or (char-equal c ?\s)
-                                            (char-equal c ?\n)))
-                                   ?-
-                                 ?\s))
+                           (lambda (c)
+                             (if (not (or (char-equal c ?\s)
+                                          (char-equal c ?\n)))
+                                 ?-
+                               ?\s))
                            str)))
         (insert "\n"))
        (point))
@@ -2244,7 +2244,7 @@ If optional arg SILENT is non-nil, do not display progress messages."
      'ibuffer-filter-group
      name)))
 
-(defun ibuffer-redisplay-engine (bmarklist &optional ignore)
+(defun ibuffer-redisplay-engine (bmarklist &optional _ignore)
   (ibuffer-assert-ibuffer-mode)
   (let* ((--ibuffer-insert-buffers-and-marks-format
          (ibuffer-current-format))
@@ -2345,7 +2345,7 @@ FORMATS is the value to use for `ibuffer-formats'.
   (setq ibuffer-prev-window-config (current-window-configuration))
   (let ((buf (get-buffer-create (or name "*Ibuffer*"))))
     (if other-window-p
-       (funcall (if noselect #'(lambda (buf) (display-buffer buf t)) #'pop-to-buffer) buf)
+       (funcall (if noselect (lambda (buf) (display-buffer buf t)) #'pop-to-buffer) buf)
       (funcall (if noselect #'display-buffer #'switch-to-buffer) buf))
     (with-current-buffer buf
       (save-selected-window
@@ -2384,7 +2384,7 @@ currently open buffers, in addition to filtering your view to a
 particular subset of them, and sorting by various criteria.
 
 Operations on marked buffers:
-
+\\<ibuffer-mode-map>
   '\\[ibuffer-do-save]' - Save the marked buffers
   '\\[ibuffer-do-view]' - View the marked buffers in this frame.
   '\\[ibuffer-do-view-other-frame]' - View the marked buffers in another frame.
@@ -2504,7 +2504,7 @@ Other commands:
 
 ** Information on Filtering:
 
- You can filter your ibuffer view via different critera.  Each Ibuffer
+ You can filter your ibuffer view via different criteria.  Each Ibuffer
 buffer has its own stack of active filters.  For example, suppose you
 are working on an Emacs Lisp project.  You can create an Ibuffer
 buffer displays buffers in just `emacs-lisp' modes via
@@ -2648,12 +2648,14 @@ will be inserted before the group at point."
 ;;;;;;  ibuffer-backward-filter-group ibuffer-forward-filter-group
 ;;;;;;  ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group
 ;;;;;;  ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode
-;;;;;;  ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" "eb3de21aef70e4ca75f611f1c3c56aa1")
+;;;;;;  ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" "1400db1bc3d4a3010cbc4807a6725072")
 ;;; Generated autoloads from ibuf-ext.el
 
 (autoload 'ibuffer-auto-mode "ibuf-ext" "\
-Toggle use of Ibuffer's auto-update facility.
-With numeric ARG, enable auto-update if and only if ARG is positive.
+Toggle use of Ibuffer's auto-update facility (Ibuffer Auto mode).
+With a prefix argument ARG, enable Ibuffer Auto mode if ARG is
+positive, and disable it otherwise.  If called from Lisp, enable
+the mode if ARG is omitted or nil.
 
 \(fn &optional ARG)" t nil)
 
@@ -2701,7 +2703,7 @@ Move point backwards by COUNT filtering groups.
  (autoload 'ibuffer-do-print "ibuf-ext")
 
 (autoload 'ibuffer-included-in-filters-p "ibuf-ext" "\
-Not documented
+
 
 \(fn BUF FILTERS)" nil nil)
 
@@ -2778,8 +2780,10 @@ The value from `ibuffer-saved-filter-groups' is used.
 
 (autoload 'ibuffer-filter-disable "ibuf-ext" "\
 Disable all filters currently in effect in this buffer.
+With optional arg DELETE-FILTER-GROUPS non-nil, delete all filter
+group definitions by setting `ibuffer-filter-groups' to nil.
 
-\(fn)" t nil)
+\(fn &optional DELETE-FILTER-GROUPS)" t nil)
 
 (autoload 'ibuffer-pop-filter "ibuf-ext" "\
 Remove the top filter in this buffer.