;;; DO NOT MODIFY THIS FILE
(if (featurep 'ibuffer-autoloads) (error "Already loaded"))

;;;### (autoloads nil "_pkg" "ibuffer/_pkg.el")

(package-provide 'ibuffer :version 1.04 :type 'regular)

;;;***

;;;### (autoloads (ibuffer-do-occur ibuffer-mark-dired-buffers ibuffer-mark-read-only-buffers ibuffer-mark-special-buffers ibuffer-mark-old-buffers ibuffer-mark-help-buffers ibuffer-mark-dissociated-buffers ibuffer-mark-unsaved-buffers ibuffer-mark-modified-buffers ibuffer-mark-by-mode ibuffer-mark-by-file-name-regexp ibuffer-mark-by-mode-regexp ibuffer-mark-by-name-regexp ibuffer-copy-filename-as-kill ibuffer-diff-with-file ibuffer-jump-to-buffer ibuffer-do-kill-lines ibuffer-backwards-next-marked ibuffer-forward-next-marked ibuffer-add-to-tmp-show ibuffer-add-to-tmp-hide ibuffer-bs-show ibuffer-invert-sorting ibuffer-toggle-sorting-mode ibuffer-switch-to-saved-filters ibuffer-add-saved-filters ibuffer-delete-saved-filters ibuffer-save-filters ibuffer-or-filter ibuffer-negate-filter ibuffer-exchange-filters ibuffer-decompose-filter ibuffer-pop-filter ibuffer-filter-disable ibuffer-included-in-filters-p ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode ibuffer-auto-mode) "ibuf-ext" "ibuffer/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." t nil)

(autoload 'ibuffer-mouse-filter-by-mode "ibuf-ext" "\
Enable or disable filtering by the major mode chosen via mouse." t nil)

(autoload 'ibuffer-interactive-filter-by-mode "ibuf-ext" "\
Enable or disable filtering by the major mode at point." t nil)

(autoload 'ibuffer-included-in-filters-p "ibuf-ext" nil nil nil)

(autoload 'ibuffer-filter-disable "ibuf-ext" "\
Disable all filters currently in effect in this buffer." t nil)

(autoload 'ibuffer-pop-filter "ibuf-ext" "\
Remove the top filter in this buffer." t nil)

(autoload 'ibuffer-decompose-filter "ibuf-ext" "\
Separate the top compound filter (OR, NOT, or SAVED) in this buffer.

This means that the topmost filter on the filtering stack, which must
be a complex filter like (OR [name: foo] [mode: bar-mode]), will be
turned into two separate filters [name: foo] and [mode: bar-mode]." t nil)

(autoload 'ibuffer-exchange-filters "ibuf-ext" "\
Exchange the top two filters on the stack in this buffer." t nil)

(autoload 'ibuffer-negate-filter "ibuf-ext" "\
Negate the sense of the top filter in the current buffer." t nil)

(autoload 'ibuffer-or-filter "ibuf-ext" "\
Replace the top two filters in this buffer with their logical OR.
If optional argument REVERSE is non-nil, instead break the top OR
filter into parts." t nil)

(autoload 'ibuffer-save-filters "ibuf-ext" "\
Save FILTERS in this buffer with name NAME in `ibuffer-saved-filters'.
Interactively, prompt for NAME, and use the current filters." t nil)

(autoload 'ibuffer-delete-saved-filters "ibuf-ext" "\
Delete saved filters with NAME from `ibuffer-saved-filters'." t nil)

(autoload 'ibuffer-add-saved-filters "ibuf-ext" "\
Add saved filters from `ibuffer-saved-filters' to this buffer's filters." t nil)

(autoload 'ibuffer-switch-to-saved-filters "ibuf-ext" "\
Set this buffer's filters to filters with NAME from `ibuffer-saved-filters'.
If prefix argument ADD is non-nil, then add the saved filters instead
of replacing the current filters." t nil)

(autoload 'ibuffer-toggle-sorting-mode "ibuf-ext" "\
Toggle the current sorting mode.
Default sorting modes are:
 Recency - the last time the buffer was viewed
 Alphabetic - the `buffer-name' of the buffer
 Major Mode - the `major-mode' of the buffer
 Mode Name - the `mode-name' of the buffer
 Size - the `buffer-size' of the buffer" t nil)

(autoload 'ibuffer-invert-sorting "ibuf-ext" "\
Toggle whether or not sorting is in reverse order." t nil)

(autoload 'ibuffer-bs-show "ibuf-ext" "\
Emulate `bs-show' from the bs.el package." t nil)

(autoload 'ibuffer-add-to-tmp-hide "ibuf-ext" "\
Add REGEXP to `ibuffer-tmp-hide-regexps'.
This means that buffers whose name matches REGEXP will not be shown
for this ibuffer session." t nil)

(autoload 'ibuffer-add-to-tmp-show "ibuf-ext" "\
Add REGEXP to `ibuffer-tmp-show-regexps'.
This means that buffers whose name matches REGEXP will always be shown
for this ibuffer session." t nil)

(autoload 'ibuffer-forward-next-marked "ibuf-ext" "\
Move forward by COUNT marked buffers (default 1).

If MARK is non-nil, it should be a character denoting the type of mark
to move by.  The default is `ibuffer-marked-char'.

If DIRECTION is non-nil, it should be an integer; negative integers
mean move backwards, non-negative integers mean move forwards." t nil)

(autoload 'ibuffer-backwards-next-marked "ibuf-ext" "\
Move backwards by COUNT marked buffers (default 1).

If MARK is non-nil, it should be a character denoting the type of mark
to move by.  The default is `ibuffer-marked-char'." t nil)

(autoload 'ibuffer-do-kill-lines "ibuf-ext" "\
Hide all of the currently marked lines." t nil)

(autoload 'ibuffer-jump-to-buffer "ibuf-ext" "\
Move point to the buffer whose name is NAME." t nil)

(autoload 'ibuffer-diff-with-file "ibuf-ext" "\
View the differences between this buffer and its associated file.
This requires the external program \"diff\" to be in your `exec-path'." t nil)

(autoload 'ibuffer-copy-filename-as-kill "ibuf-ext" "\
Copy filenames of marked buffers into the kill ring.
The names are separated by a space.
If a buffer has no filename, it is ignored.
With a zero prefix arg, use the complete pathname of each marked file.

You can then feed the file name(s) to other commands with C-y.

 [ This docstring shamelessly stolen from the
 `dired-copy-filename-as-kill' in \"dired-x\". ]" t nil)

(autoload 'ibuffer-mark-by-name-regexp "ibuf-ext" "\
Mark all buffers whose name matches REGEXP." t nil)

(autoload 'ibuffer-mark-by-mode-regexp "ibuf-ext" "\
Mark all buffers whose major mode matches REGEXP." t nil)

(autoload 'ibuffer-mark-by-file-name-regexp "ibuf-ext" "\
Mark all buffers whose file name matches REGEXP." t nil)

(autoload 'ibuffer-mark-by-mode "ibuf-ext" "\
Mark all buffers whose major mode equals MODE." t nil)

(autoload 'ibuffer-mark-modified-buffers "ibuf-ext" "\
Mark all modified buffers." t nil)

(autoload 'ibuffer-mark-unsaved-buffers "ibuf-ext" "\
Mark all modified buffers that have an associated file." t nil)

(autoload 'ibuffer-mark-dissociated-buffers "ibuf-ext" "\
Mark all buffers whose associated file does not exist." t nil)

(autoload 'ibuffer-mark-help-buffers "ibuf-ext" "\
Mark buffers like *Help*, *Apropos*, *Hyper Apropos*, *Info*." t nil)

(autoload 'ibuffer-mark-old-buffers "ibuf-ext" "\
Mark buffers which have not been viewed in `ibuffer-old-time' hours." t nil)

(autoload 'ibuffer-mark-special-buffers "ibuf-ext" "\
Mark all buffers whose name begins and ends with '*'." t nil)

(autoload 'ibuffer-mark-read-only-buffers "ibuf-ext" "\
Mark all read-only buffers." t nil)

(autoload 'ibuffer-mark-dired-buffers "ibuf-ext" "\
Mark all `dired' buffers." t nil)

(autoload 'ibuffer-do-occur "ibuf-ext" "\
View lines which match REGEXP in all marked buffers.
Optional argument NLINES says how many lines of context to display: it
defaults to one." t nil)

;;;***

;;;### (autoloads nil "ibuf-macs" "ibuffer/ibuf-macs.el")

(defmacro* define-ibuffer-column (symbol (&key name inline props summarizer) &rest body) "Define a column SYMBOL for use with `ibuffer-formats'.\n\nBODY will be called with `buffer' bound to the buffer object, and\n`mark' bound to the current mark on the buffer.  The current buffer\nwill be `buffer'.\n\nIf NAME is given, it will be used as a title for the column.\nOtherwise, the title will default to a capitalized version of the\nSYMBOL's name.  PROPS is a plist of additional properties to add to\nthe text, such as `mouse-face'.  And SUMMARIZER, if given, is a\nfunction which will be passed a list of all the strings in its column;\nit should return a string to display at the bottom.\n\nNote that this macro expands into a `defun' for a function named\nibuffer-make-column-NAME.  If INLINE is non-nil, then the form will be\ninlined into the compiled format versions.  This means that if you\nchange its definition, you should explicitly call\n`ibuffer-recompile-formats'." (let* ((sym (intern (concat "ibuffer-make-column-" (symbol-name symbol)))) (bod-2 (backquote (with-current-buffer buffer (\,@ body)))) (bod-1 (if summarizer (backquote (car (push (\, bod-2) (\, (intern (format "ibuffer-summary-for-column-%s" name)))))) bod-2)) (bod (if props (backquote (ibuffer-propertize (\, bod-1) (\,@ props))) bod-1))) (backquote (progn (\, (if inline (backquote (push '((\, sym) (\, bod)) ibuffer-inline-columns)) (backquote (defun (\, sym) (buffer mark) (\, bod))))) (put '(\, sym) 'ibuffer-column-name (\, (if (stringp name) name (capitalize (symbol-name symbol))))) (\, (if summarizer (backquote (put '(\, sym) 'ibuffer-column-summarizer '(\, summarizer))))) (\, (if summarizer (backquote (defvar (\, (intern (format "ibuffer-summary-for-column-%s" name))) nil)))) :autoload-end))))

(defmacro* define-ibuffer-sorter (name documentation (&key description) &rest body) "Define a method of sorting named NAME.\nDOCUMENTATION is the documentation of the function, which will be called\n`ibuffer-do-sort-by-NAME'.\nDESCRIPTION is a short string describing the sorting method.\n\nFor sorting, the forms in BODY will be evaluated with `a' bound to one\nbuffer object, and `b' bound to another.  BODY should return a non-nil\nvalue if and only if `a' is \"less than\" `b'." (backquote (progn (defun (\, (intern (concat "ibuffer-do-sort-by-" (symbol-name name)))) nil (\, (or documentation "No :documentation specified for this sorting method.")) (interactive) (setq ibuffer-sorting-mode '(\, name)) (ibuffer-redisplay t)) (push (list '(\, name) (\, description) (function (lambda (a b) (\,@ body)))) ibuffer-sorting-functions-alist) :autoload-end)))

(defmacro* define-ibuffer-op (op args documentation (&key interactive mark modifier-p dangerous (opstring "operated on") (active-opstring "Operate on") complex) &rest body) "Generate a function named `ibuffer-do-OP', which operates on a buffer.\nWhen an operation is performed, this function will be called once for\neach marked buffer, with that buffer current.\n\nARGS becomes the formal parameters of the function.\nDOCUMENTATION becomes the docstring of the function.\nINTERACTIVE becomes the interactive specification of the function.\nMARK describes which type of mark (:deletion, or nil) this operation\nuses.  :deletion means the function operates on buffers marked for\ndeletion, otherwise it acts on normally marked buffers.\nMODIFIER-P describes how the function modifies buffers.  This is used\nto set the modification flag of the Ibuffer buffer itself.  Valid\nvalues are:\n nil - the function never modifiers buffers\n t - the function it always modifies buffers\n :maybe - attempt to discover this information by comparing the\n  buffer's modification flag.\nDANGEROUS is a boolean which should be set if the user should be\nprompted before performing this operation.\nOPSTRING is a string which will be displayed to the user after the\noperation is complete, in the form:\n \"Operation complete; OPSTRING x buffers\"\nACTIVE-OPSTRING is a string which will be displayed to the user in a\nconfirmation message, in the form:\n \"Really ACTIVE-OPSTRING x buffers?\"\nCOMPLEX means this function is special; see the source code of this\nmacro for exactly what it does." (backquote (progn (defun (\, (intern (concat "ibuffer-do-" (symbol-name op)))) (\, args) (\, (if (stringp documentation) documentation (format "%s marked buffers." active-opstring))) (\, (if (not (null interactive)) (backquote (interactive (\, interactive))) '(interactive))) (assert (eq major-mode 'ibuffer-mode)) (setq ibuffer-did-modification nil) (let ((marked-names ((\, (case mark (:deletion 'ibuffer-deletion-marked-buffer-names) (t 'ibuffer-marked-buffer-names)))))) (when (null marked-names) (setq marked-names (list (buffer-name (ibuffer-current-buffer)))) (ibuffer-set-mark (\, (case mark (:deletion 'ibuffer-deletion-char) (t 'ibuffer-marked-char))))) (\, (let* ((finish (append '(progn) (if (eq modifier-p t) '((setq ibuffer-did-modification t)) nil) (backquote ((ibuffer-redisplay t) (message (\, (concat "Operation finished; " opstring " %s buffers")) count))))) (inner-body (if complex (backquote (progn (\,@ body))) (backquote (progn (with-current-buffer buf (save-excursion (\,@ body))) t)))) (body (backquote (let ((count ((\, (case mark (:deletion 'ibuffer-map-deletion-lines) (t 'ibuffer-map-marked-lines))) (function (lambda (buf mark beg end) (\, (if (eq modifier-p :maybe) (backquote (let ((ibuffer-tmp-previous-buffer-modification (buffer-modified-p buf))) (prog1 (\, inner-body) (when (not (eq ibuffer-tmp-previous-buffer-modification (buffer-modified-p buf))) (setq ibuffer-did-modification t))))) inner-body))))))) (\, finish))))) (if dangerous (backquote (when (ibuffer-confirm-operation-on (\, active-opstring) marked-names) (\, body))) body))))) :autoload-end)))

(defmacro* define-ibuffer-filter (name documentation (&key reader description) &rest body) "Define a filter named NAME.\nDOCUMENTATION is the documentation of the function.\nREADER is a form which should read a qualifier from the user.\nDESCRIPTION is a short string describing the filter.\n\nBODY should contain forms which will be evaluated to test whether or\nnot a particular buffer should be displayed or not.  The forms in BODY\nwill be evaluated with BUF bound to the buffer object, and QUALIFIER\nbound to the current value of the filter." (let ((fn-name (intern (concat "ibuffer-filter-by-" (symbol-name name))))) (backquote (progn (defun (\, fn-name) (qualifier) (\, (concat (or documentation "This filter is not documented."))) (interactive (list (\, reader))) (ibuffer-push-filter (cons '(\, name) qualifier)) (message (format (\, (concat (format "Filter by %s added: " description) " %s")) qualifier)) (ibuffer-update nil t)) (push (list '(\, name) (\, description) (function (lambda (buf qualifier) (\,@ body)))) ibuffer-filtering-alist) :autoload-end))))

;;;***

;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-customize) "ibuffer" "ibuffer/ibuffer.el")

(defgroup ibuffer nil "An advanced replacement for `buffer-menu'.\n\nIbuffer allows you to operate on buffers in a manner much like Dired.\nOperations include sorting, marking by regular expression, and\nthe ability to filter the displayed buffers by various criteria." :group 'convenience)

(defgroup ibuffer-faces nil "Faces used by Ibuffer package." :group 'ibuffer :group 'faces)

(autoload 'ibuffer-customize "ibuffer" "\
Begin customizing Ibuffer interactively." t nil)

(autoload 'ibuffer-other-window "ibuffer" "\
Like `ibuffer', but displayed in another window by default.
If optional argument FILES-ONLY is non-nil, then add a filter for
buffers which are visiting a file." t nil)

(defalias 'ibuffer-list-buffers 'ibuffer-other-window)

(autoload 'ibuffer "ibuffer" "\
Begin using `ibuffer' to edit a list of buffers.
Type 'h' after entering ibuffer for more information.

Optional argument OTHER-WINDOW-P says to use another window.
Optional argument NAME specifies the name of the buffer; it defaults
to \"*Ibuffer*\".
Optional argument QUALIFIERS is an initial set of filtering qualifiers
to use; see `ibuffer-filtering-qualifiers'.
Optional argument NOSELECT means don't select the Ibuffer buffer.
Optional argument SHRINK means shrink the buffer to minimal size.  The
special value `onewindow' means always use another window." t nil)

;;;***

(provide 'ibuffer-autoloads)
