;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:46:59 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/iswitchb.el
;;; in Emacs version 21.3
;;; with bytecomp version 2.85.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`iswitchb.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\203\f \300\302!\204 \303\304!\210\305\306\307\217\210\310\311!\203! \300\312!\204) \313\314M\210\315\316M\210\317\320\305\321\322\323\322\324\325\326\325\327\325\330&\207" [fboundp cadr last require cl nil (byte-code "\300\301!\207" [require custom] 2) ((error)) featurep custom custom-declare-variable defgroup (macro . #[(&rest args) "\300\207" [nil] 1]) defcustom (macro . #[(var value doc &rest args) "\303	\nF\207" [var value doc defvar] 4]) custom-declare-group iswitchb "Switch between buffers using substrings." :group convenience completion :link (emacs-commentary-link :tag "Commentary" "iswitchb.el") (url-link "http://www.anc.ed.ac.uk/~stephen/emacs/") (emacs-library-link :tag "Lisp File" "iswitchb.el")] 14)
#@133 Toggle Iswitchb mode.
Setting this variable directly does not take effect;
use either \[customize] or the function `iswitchb-mode'.
(custom-declare-variable 'iswitchb-mode 'nil '(#$ . 1366) :set (lambda (symbol value) (iswitchb-mode (or value 0))) :initialize 'custom-initialize-default :group 'iswitchb :require 'iswitchb :version "21.1" :type 'boolean)
#@50 Hook run at the end of function `iswitchb-mode'.
(custom-declare-variable 'iswitchb-mode-hook 'nil '(#$ . 1727) :group 'iswitchb :type 'hook)
#@165 *Non-nil if searching of buffer names should ignore case.
If this is non-nil but the user input has any upper case letters, matching
is temporarily case sensitive.
(custom-declare-variable 'iswitchb-case 'case-fold-search '(#$ . -1876) :type 'boolean :group 'iswitchb)
#@251 *List of regexps or functions matching buffer names to ignore.
For example, traditional behavior is not to list buffers whose names begin
with a space, for which the regexp is `^ '.  See the source file for
example functions that filter buffernames.
(custom-declare-variable 'iswitchb-buffer-ignore ''("^ ") '(#$ . -2152) :type '(repeat regexp) :group 'iswitchb)
#@593 *How to switch to new buffer when using `iswitchb-buffer'.
Possible values:
`samewindow'	Show new buffer in same window
`otherwindow'	Show new buffer in another window (same frame)
`display'	Display buffer in another window without switching to it
`otherframe'	Show new buffer in another frame
`maybe-frame'	If a buffer is visible in another frame, prompt to ask if you
		you want to see the buffer in the same window of the current
  		frame or in the other frame.
`always-frame'  If a buffer is visible in another frame, raise that
		frame.  Otherwise, visit the buffer in the same window.
(custom-declare-variable 'iswitchb-default-method ''always-frame '(#$ . -2522) :type '(choice (const samewindow) (const otherwindow) (const display) (const otherframe) (const maybe-frame) (const always-frame)) :group 'iswitchb)
#@128 *Non-nil means that `iswitchb' will do regexp matching.
Value can be toggled within `iswitchb' using `iswitchb-toggle-regexp'.
(custom-declare-variable 'iswitchb-regexp 'nil '(#$ . -3349) :type 'boolean :group 'iswitchb)
#@104 *Non-nil means create new buffer if no buffer matches substring.
See also `iswitchb-prompt-newbuffer'.
(custom-declare-variable 'iswitchb-newbuffer 't '(#$ . -3577) :type 'boolean :group 'iswitchb)
#@98 *Non-nil means prompt user to confirm before creating new buffer.
See also `iswitchb-newbuffer'.
(custom-declare-variable 'iswitchb-prompt-newbuffer 't '(#$ . -3781) :type 'boolean :group 'iswitchb)
#@67 Hook to define keys in `iswitchb-mode-map' for extra keybindings.
(custom-declare-variable 'iswitchb-define-mode-map-hook 'nil '(#$ . 3986) :type 'hook :group 'iswitchb)
#@61 *Non-nil means use font-lock fonts for showing first match.
(custom-declare-variable 'iswitchb-use-fonts 't '(#$ . -4162) :type 'boolean :group 'iswitchb)
#@64 *Non-nil means use the currently selected frame's buffer list.
(custom-declare-variable 'iswitchb-use-frame-buffer-list 'nil '(#$ . -4323) :type 'boolean :group 'iswitchb)
#@55 Hook to run when list of matching buffers is created.
(custom-declare-variable 'iswitchb-make-buflist-hook 'nil '(#$ . 4501) :type 'hook :group 'iswitchb)
#@122 *Argument to pass to `walk-windows' when finding visible buffers.
See documentation of `walk-windows' for useful values.
(defvar iswitchb-all-frames 'visible (#$ . -4663))
#@214 Iswitchb-specific customization of minibuffer setup.

This hook is run during minibuffer setup iff `iswitchb' will be active.
It is intended for use in customizing iswitchb for interoperation
with other packages.
(custom-declare-variable 'iswitchb-minibuffer-setup-hook 'nil '(#$ . 4842) :type 'hook :group 'iswitchb)
#@213 Stores the method for viewing the selected buffer.
Its value is one of `samewindow', `otherwindow', `display', `otherframe',
`maybe-frame' or `always-frame'.  See `iswitchb-default-method' for
details of values.
(defvar iswitchb-method nil (#$ . 5167))
#@96 Point where minibuffer input ends and completion info begins.
Copied from `icomplete-eoinput'.
(defvar iswitchb-eoinput 1 (#$ . 5426))
(make-variable-buffer-local 'iswitchb-eoinput)
#@263 Stores the current list of buffers that will be searched through.
The list is ordered, so that the most recent buffers come first,
although by default, the buffers visible in the current frame are put
at the end of the list.  Created by `iswitchb-make-buflist'.
(defvar iswitchb-buflist nil (#$ . 5615))
#@163 Non-nil means use `iswitchb-buffer' completion feedback.
Should only be set to t by iswitchb functions, so that it doesn't
interfere with other minibuffer usage.
(defvar iswitchb-use-mycompletion nil (#$ . 5926))
#@62 Private variable used by `iswitchb-word-matching-substring'.
(defvar iswitchb-change-word-sub nil (#$ . 6145))
#@59 Stores the string that is common to all matching buffers.
(defvar iswitchb-common-match-string nil (#$ . 6262))
#@67 Non-nil means we need to regenerate the list of matching buffers.
(defvar iswitchb-rescan nil (#$ . 6380))
#@44 Stores the users string as it is typed in.
(defvar iswitchb-text nil (#$ . 6493))
#@53 List of buffers currently matching `iswitchb-text'.
(defvar iswitchb-matches nil (#$ . 6581))
#@42 Minibuffer keymap for `iswitchb-buffer'.
(defvar iswitchb-mode-map (byte-code "\302 \303	\"\210\304\305\306#\210\304\307\310#\210\304\311\312#\210\304\313\314#\210\304\315\316#\210\304\317\320#\210\304\321\322#\210\304\323\324#\210\304\325\326#\210\304\327\330#\210)\207" [map minibuffer-local-map make-sparse-keymap set-keymap-parent define-key "?" iswitchb-completion-help "" iswitchb-next-match "" iswitchb-prev-match "	" iswitchb-complete "\n" iswitchb-select-buffer-text "" iswitchb-toggle-regexp "" iswitchb-find-file "" iswitchb-toggle-case "" iswitchb-kill-buffer "" iswitchb-exit-minibuffer] 4) (#$ . 6681))
#@36 Global keymap for `iswtichb-mode'.
(defvar iswitchb-global-map (byte-code "\302 \303\304\305	$\210\303\306\307	$\210\303\310\311	$\210\303\312\313	$\210)\207" [map global-map make-sparse-keymap substitute-key-definition switch-to-buffer iswitchb-buffer switch-to-buffer-other-window iswitchb-buffer-other-window switch-to-buffer-other-frame iswitchb-buffer-other-frame display-buffer iswitchb-display-buffer] 5) (#$ . 7325))
#@54 History of buffers selected using `iswitchb-buffer'.
(defvar iswitchb-history nil (#$ . 7762))
#@125 Flag to monitor how `iswitchb-buffer' exits.
If equal to `takeprompt', we use the prompt as the buffer name to be
selected.
(defvar iswitchb-exit nil (#$ . 7864))
#@52 Stores original value of `iswitchb-buffer-ignore'.
(defvar iswitchb-buffer-ignore-orig nil (#$ . 8033))
#@76 Non-nil if we are running XEmacs.  Otherwise, assume we are running Emacs.
(defvar iswitchb-xemacs (byte-code "\300\301\302 \"\207" [string-match "XEmacs" emacs-version] 3) (#$ . 8143))
#@30 Default buffer for iswitchb.
(defvar iswitchb-default nil (#$ . 8335))
#@46 Non-nil if matching buffer must be selected.
(defvar iswitchb-require-match nil (#$ . 8412))
#@62 Stores a temporary version of the buffer list being created.
(defvar iswitchb-temp-buflist nil (#$ . 8511))
#@51 List of the buffers visible in the current frame.
(defvar iswitchb-bufs-in-frame nil (#$ . 8625))
#@73 Value we expect to be returned by `minibuffer-depth' in the minibuffer.
(defvar iswitchb-minibuf-depth nil (#$ . 8729))
#@125 Set up the keymap for `iswitchb-buffer'.
This is obsolete.  Use \[iswitchb-mode] or customize the
variable `iswitchb-mode'.
(defalias 'iswitchb-define-mode-map #[nil "\303\304	!\305\306\307#\210\305\310\311#\210\305\312\313#\210\305\314\315#\210\305\316\317#\210\305\320\321#\210\305\322\323#\210\305\324\325#\210\305\326\327#\210\305\330\331#\210\332\333!)\207" [map minibuffer-local-map iswitchb-mode-map nil copy-keymap define-key "?" iswitchb-completion-help "" iswitchb-next-match "" iswitchb-prev-match "	" iswitchb-complete "\n" iswitchb-select-buffer-text "" iswitchb-toggle-regexp "" iswitchb-find-file "" iswitchb-toggle-case "" iswitchb-kill-buffer "" iswitchb-exit-minibuffer run-hooks iswitchb-define-mode-map-hook] 4 (#$ . 8856) nil])
#@1223 Switch to buffer matching a substring.
As you type in a string, all of the buffers matching the string are
displayed.  When you have found the buffer you want, it can then be
selected.  As you type, most keys have their normal keybindings,
except for the following:
\<iswitchb-mode-map>

RET Select the buffer at the front of the list of matches.  If the
list is empty, possibly prompt to create new buffer.

\[iswitchb-select-buffer-text] Select the current prompt as the buffer.
If no buffer is found, prompt for a new one.

\[iswitchb-next-match] Put the first element at the end of the list.
\[iswitchb-prev-match] Put the last element at the start of the list.
\[iswitchb-complete] Complete a common suffix to the current string that
matches all buffers.  If there is only one match, select that buffer.
If there is no common suffix, show a list of all matching buffers
in a separate window.
\[iswitchb-toggle-regexp] Toggle regexp searching.
\[iswitchb-toggle-case] Toggle case-sensitive searching of buffer names.
\[iswitchb-completion-help] Show list of matching buffers in separate window.
\[iswitchb-find-file] Exit iswitchb and drop into `find-file'.
\[iswitchb-kill-buffer] Kill buffer at head of buffer list.
(defalias 'iswitchb #[nil "\303\211\304\305!\306	!\n\307=\203 \310\311!\202+ \205+ \312!\203( \313!\202+ \314!*\207" [buf prompt iswitchb-exit nil format "iswitch " iswitchb-read-buffer findfile call-interactively find-file get-buffer iswitchb-visit-buffer iswitchb-possible-new-buffer] 2 (#$ . 9635)])
#@287 Replacement for the built-in `read-buffer'.
Return the name of a buffer selected.
PROMPT is the prompt to give to the user.  DEFAULT if given is the default
buffer to be selected, which will go to the front of the list.
If REQUIRE-MATCH is non-nil, an existing-buffer must be selected.
(defalias 'iswitchb-read-buffer #[(prompt &optional default require-match) "\306\211\211\205 \307\310!\205 \307\311!\312 \210\306\313\314\315!\203, \316!\202. \317!\210\320 \210\313\321 T !\322\"\323\306\211\211\324&,\203b \325 \204b \326\327!\210\f\330=\204m #\204r \n\202v #@\n\314\232\203\200 #@,\207" [iswitchb-use-fonts icomplete-mode iswitchb-final-text buf-sel iswitchb-exit iswitchb-rescan nil boundp font-lock-comment-face font-lock-function-name-face iswitchb-define-mode-map t "" bufferp buffer-name iswitchb-make-buflist iswitchb-set-matches minibuffer-depth completing-read (("dummy" . 1)) iswitchb-history iswitchb-existing-buffer-p error "Must specify valid buffer" takeprompt iswitchb-text default iswitchb-default iswitchb-mode-map require-match iswitchb-require-match iswitchb-minibuf-depth iswitchb-prepost-hooks minibuffer-local-completion-map prompt iswitchb-matches] 7 (#$ . 11176)])
#@47 Return non-nil if there is a matching buffer.
(defalias 'iswitchb-existing-buffer-p #[nil "??\207" [iswitchb-matches] 1 (#$ . 12417)])
#@122 Find common completion of `iswitchb-text' in `iswitchb-matches'.
The result is stored in `iswitchb-common-match-string'.
(defalias 'iswitchb-set-common-completion #[nil "\305\305\n\203# \204# \f;\203# \fG\306V\203# \307\n\f\"\211\203# )\207" [val iswitchb-common-match-string iswitchb-matches iswitchb-regexp iswitchb-text nil 0 iswitchb-find-common-substring] 3 (#$ . 12560)])
#@64 Try and complete the current pattern amongst the buffer names.
(defalias 'iswitchb-complete #[nil "\305	\204 \306 \2023 	G\307U\203 \310 \2023 \n\211\311>\2041 \232\2041 \305\312 `|\210c\2023 \306 )\207" [res iswitchb-matches iswitchb-common-match-string iswitchb-text iswitchb-rescan nil iswitchb-completion-help 1 exit-minibuffer (t nil) minibuffer-prompt-end] 3 (#$ . 12951) nil])
#@47 Toggle the value of variable `iswitchb-case'.
(defalias 'iswitchb-toggle-case #[nil "?\302\211\207" [iswitchb-case iswitchb-rescan t] 2 (#$ . 13349) nil])
#@40 Toggle the value of `iswitchb-regexp'.
(defalias 'iswitchb-toggle-regexp #[nil "?\302\211\207" [iswitchb-regexp iswitchb-rescan t] 2 (#$ . 13513) nil])
#@66 Toggle ignoring buffers specified with `iswitchb-buffer-ignore'.
(defalias 'iswitchb-toggle-ignore #[nil "\203 \304\202 	\305\n!\210\306\211\207" [iswitchb-buffer-ignore iswitchb-buffer-ignore-orig iswitchb-default iswitchb-rescan nil iswitchb-make-buflist t] 2 (#$ . 13674) nil])
#@66 Exit minibuffer, but make sure we have a match if one is needed.
(defalias 'iswitchb-exit-minibuffer #[nil "\203	 \301 \205 \302\303\304\"\207" [iswitchb-require-match iswitchb-existing-buffer-p throw exit nil] 3 (#$ . 13969) nil])
#@113 Select the buffer named by the prompt.
If no buffer exactly matching the prompt exists, maybe create a new one.
(defalias 'iswitchb-select-buffer-text #[nil "\301\302 \207" [iswitchb-exit takeprompt exit-minibuffer] 1 (#$ . 14210) nil])
#@46 Drop into `find-file' from buffer switching.
(defalias 'iswitchb-find-file #[nil "\301\302 \207" [iswitchb-exit findfile exit-minibuffer] 1 (#$ . 14454) nil])
#@65 Put first element of `iswitchb-matches' at the end of the list.
(defalias 'iswitchb-next-match #[nil "\211A@)\305\n\"\306\211)\207" [iswitchb-matches x next iswitchb-buflist iswitchb-rescan iswitchb-chop t] 4 (#$ . 14620) nil])
#@66 Put last element of `iswitchb-matches' at the front of the list.
(defalias 'iswitchb-prev-match #[nil "\304!@\305\n	\"\306\211)\207" [iswitchb-matches prev iswitchb-buflist iswitchb-rescan last iswitchb-chop t] 3 (#$ . 14860) nil])
#@66 Remove all elements before ELEM and put them at the end of LIST.
(defalias 'iswitchb-chop #[(list elem) "\305\211\211\n\204' @\211\f\232\203 \306\237\"\211\202 A	B\202 \n+\207" [sofar next ret list elem nil append] 4 (#$ . 15102)])
#@370 Set `iswitchb-buflist' to the current list of buffers.
Currently visible buffers are put at the end of the list.
The hook `iswitchb-make-buflist-hook' is run after the list has been
created to allow the user to further modify the order of the buffer names
in this list.  If DEFAULT is non-nil, and corresponds to an existing buffer,
it is put to the start of the list.
(defalias 'iswitchb-make-buflist #[(default) "\305 \306\307\310\311\312	\205 \313 !\"\"\211\244\314\315!\210\203' \316\n\"\nB\n*\211\207" [iswitchb-current-buffers iswitchb-use-frame-buffer-list iswitchb-temp-buflist default iswitchb-buflist iswitchb-get-buffers-in-frames delq nil mapcar #[(x) "\303!\304	!\206 	\n>?\205 	)\207" [x b-name iswitchb-current-buffers buffer-name iswitchb-ignore-buffername-p] 2] buffer-list selected-frame run-hooks iswitchb-make-buflist-hook delete] 7 (#$ . 15356)])
#@67 Move the elements from LST to the end of `iswitchb-temp-buflist'.
(defalias 'iswitchb-to-end #[(lst) "\302\303\"\210	\244\211\207" [lst iswitchb-temp-buflist mapcar #[(elem) "\302	\"\211\207" [elem iswitchb-temp-buflist delq] 3]] 3 (#$ . 16245)])
#@217 Return the list of buffers that are visible in the current frame.
If optional argument CURRENT is given, restrict searching to the
current frame, rather than all frames, regardless of value of
`iswitchb-all-frames'.
(defalias 'iswitchb-get-buffers-in-frames #[(&optional current) "\303\304\305\303	?\205 \n#\210)\207" [iswitchb-bufs-in-frame current iswitchb-all-frames nil walk-windows iswitchb-get-bufname] 4 (#$ . 16504)])
#@71 Used by `iswitchb-get-buffers-in-frames' to walk through all windows.
(defalias 'iswitchb-get-bufname #[(win) "\303\304!!\211\n\235?\205 	\nB\211)\207" [win buf iswitchb-bufs-in-frame buffer-name window-buffer] 4 (#$ . 16939)])
#@64 Set `iswitchb-matches' to the list of buffers matching prompt.
(defalias 'iswitchb-set-matches #[nil "\205 	\306\f\n#)\211\207" [iswitchb-rescan iswitchb-buflist buflist iswitchb-text iswitchb-regexp iswitchb-matches iswitchb-get-matched-buffers] 4 (#$ . 17177)])
#@147 Return buffers matching REGEXP.
If STRING-FORMAT is nil, consider REGEXP as just a string.
BUFFER-LIST can be list of buffers or list of strings.
(defalias 'iswitchb-get-matched-buffers #[(regexp &optional string-format buffer-list) "\306 \307	!\211@;\310\310\311\312\n\"\210-\207" [case-fold-search buffer-list list do-string name ret iswitchb-case reverse nil mapcar #[(x) "\203	 	\202 \306	!\203 \307\f\n\"\204& ?\2052 \307\310\f!\n\"\2052 \311\n!?\2052 \nB\211\207" [do-string x name string-format regexp ret buffer-name string-match regexp-quote iswitchb-ignore-buffername-p] 3]] 4 (#$ . 17453)])
#@51 Return t if the buffer BUFNAME should be ignored.
(defalias 'iswitchb-ignore-buffername-p #[(bufname) "\306 \307\211\203: @\211;\203# \310	\"\2033 \311\307\2023 \312	!\2033 	!\2033 \311\307A\211\204 \313\f!\210\n,\207" [iswitchb-buffer-ignore nextstr ignorep re-list data bufname match-data nil string-match t fboundp set-match-data] 5 (#$ . 18076)])
#@136 Return part of WORD before 1st match to `iswitchb-change-word-sub'.
If `iswitchb-change-word-sub' cannot be found in WORD, return nil.
(defalias 'iswitchb-word-matching-substring #[(word) "\304 \305	\n\"\211\205 \n\306O*\207" [case-fold-search iswitchb-change-word-sub word m iswitchb-case string-match nil] 4 (#$ . 18451)])
#@61 Return common string following SUBS in each element of LIS.
(defalias 'iswitchb-find-common-substring #[(lis subs) "\306\211\211\203 \f\202 \307\f!\310\311\"\312\306\n\"\310\313\n\"\314 \315\f	\",\207" [iswitchb-change-word-sub alist res iswitchb-regexp subs lis nil regexp-quote mapcar iswitchb-word-matching-substring delq iswitchb-makealist iswitchb-case try-completion completion-ignore-case] 3 (#$ . 18786)])
#@31 Return dotted pair (RES . 1).
(defalias 'iswitchb-makealist #[(res) "\301B\207" [res 1] 2 (#$ . 19219)])
#@113 Destructively remove the last element from LIS.
Return the modified list with the last element prepended to it.
(defalias 'iswitchb-rotate-list #[(lis) "G\303X\203	 \207\211\211A:\203 \n\nA\211\202 	\304\241\210\n@*B\207" [lis prev las 1 nil] 3 (#$ . 19332)])
#@61 Show possible completions in a *Buffer Completions* buffer.
(defalias 'iswitchb-completion-help #[nil "\306\306p\307\306	\n=\2033 q\210\310!\311d\f\"\203* \312\fe\"\210\202- \313 \210q\202g \220\203O \314\203E \202G \315\316\317\320%\202f rq\210\321 \210)\314\203c \202e !\221-\207" [iswitchb-rescan last-command this-command again win temp-buf nil "*Buffer Completions*" get-buffer-window pos-visible-in-window-p set-window-start scroll-other-window display-completion-list :help-string "iswitchb " :activate-callback #[(x y z) "\300\301!\207" [message "doesn't work yet, sorry!"] 2] fundamental-mode buf completion-setup-hook iswitchb-xemacs iswitchb-matches iswitchb-buflist standard-output] 7 (#$ . 19608) nil])
#@52 Kill the buffer at the head of `iswitchb-matches'.
(defalias 'iswitchb-kill-buffer #[nil "\305\306\n@\211\205! \307!\210\310!\203 \305\211\202! \311\f\"\211*\207" [buf enable-recursive-minibuffers iswitchb-matches iswitchb-rescan iswitchb-buflist t nil kill-buffer get-buffer delq] 4 (#$ . 20361) nil])
#@59 Visit buffer named BUFFER according to `iswitchb-method'.
(defalias 'iswitchb-visit-buffer #[(buffer) "\305\305\n\306=\203 \307!\202 \n\310>\203P \311!\211\203J \n\312=\204* \313\314!\203J \315!\316	!\210\317	!\210\320!\210\f?\205 \321\322 \323 S\324#\202 \307!\202 \n\325=\203\\ \326!\202 \n\327=\203h \330!\202 \n\331=\205 \332!\210\f?\205 \321\322 \323 S\324#*\207" [win newframe iswitchb-method buffer iswitchb-xemacs nil samewindow switch-to-buffer (always-frame maybe-frame) iswitchb-window-buffer-p always-frame y-or-n-p "Jump to frame? " window-frame raise-frame select-frame select-window set-mouse-position selected-frame frame-width 0 otherwindow switch-to-buffer-other-window display display-buffer otherframe switch-to-buffer-other-frame] 4 (#$ . 20679)])
#@52 Possibly create and visit a new buffer called BUF.
(defalias 'iswitchb-possible-new-buffer #[(buf) "\304	\203+ \n\203 \n\203+ \305\306\307\"!\203+ \310!\311\312!\203% \312!\210\313!\2021 \314\306\315\"!)\207" [newbufcreated iswitchb-newbuffer iswitchb-prompt-newbuffer buf nil y-or-n-p format "No buffer matching `%s', create one? " get-buffer-create fboundp set-buffer-major-mode iswitchb-visit-buffer message "no buffer matching `%s'"] 4 (#$ . 21475)])
#@117 Return window pointer if BUFFER is visible in another frame.
If BUFFER is visible in the current frame, return nil.
(defalias 'iswitchb-window-buffer-p #[(buffer) "\302\303!	>?\205 \304	\305\")\207" [blist buffer iswitchb-get-buffers-in-frames current get-buffer-window 0] 3 (#$ . 21945) nil])
#@190 Set up default keybindings for `iswitchb-buffer'.
Call this function to override the normal bindings.  This function also
adds a hook to the minibuffer.

Obsolescent.  Use `iswitchb-mode'.
(defalias 'iswitchb-default-keybindings #[nil "\300\301\302\"\210\303\304\305\"\210\303\306\307\"\210\303\310\311\"\210\303\312\313\"\207" [add-hook minibuffer-setup-hook iswitchb-minibuffer-setup global-set-key "b" iswitchb-buffer "4b" iswitchb-buffer-other-window "4" iswitchb-display-buffer "5b" iswitchb-buffer-other-frame] 3 (#$ . 22249) nil])
#@317 Switch to another buffer.

The buffer name is selected interactively by typing a substring.  The
buffer is displayed according to `iswitchb-default-method' -- the
default is to show it in the same window, unless it is already visible
in another frame.
For details of keybindings, do `\[describe-function] iswitchb'.
(defalias 'iswitchb-buffer #[nil "\302 \207" [iswitchb-default-method iswitchb-method iswitchb] 1 (#$ . 22799) nil])
#@186 Switch to another buffer and show it in another window.
The buffer name is selected interactively by typing a substring.
For details of keybindings, do `\[describe-function] iswitchb'.
(defalias 'iswitchb-buffer-other-window #[nil "\301\302 \207" [iswitchb-method otherwindow iswitchb] 1 (#$ . 23241) nil])
#@186 Display a buffer in another window but don't select it.
The buffer name is selected interactively by typing a substring.
For details of keybindings, do `\[describe-function] iswitchb'.
(defalias 'iswitchb-display-buffer #[nil "\301\302 \207" [iswitchb-method display iswitchb] 1 (#$ . 23556) nil])
#@185 Switch to another buffer and show it in another frame.
The buffer name is selected interactively by typing a substring.
For details of keybindings, do `\[describe-function] iswitchb'.
(defalias 'iswitchb-buffer-other-frame #[nil "\301\302 \207" [iswitchb-method otherframe iswitchb] 1 (#$ . 23862) nil])
#@135 Display default buffer when first entering minibuffer.
This is a hack for XEmacs, and should really be handled by `iswitchb-exhibit'.
(defalias 'iswitchb-init-XEmacs-trick #[nil "\300 \205\n \301 \210eb\207" [iswitchb-entryfn-p iswitchb-exhibit] 1 (#$ . 24174)])
(byte-code "\203	 \301\302\303\"\210\301\207" [iswitchb-xemacs add-hook iswitchb-minibuffer-setup-hook iswitchb-init-XEmacs-trick] 3)
#@43 Bind backspace to `backward-delete-char'.
(defalias 'iswitchb-xemacs-backspacekey #[nil "\301\302\303#\210\301\304\305#\207" [iswitchb-mode-map define-key [backspace] backward-delete-char [(meta backspace)] backward-kill-word] 4 (#$ . 24578)])
(byte-code "\203	 \301\302\303\"\210\301\207" [iswitchb-xemacs add-hook iswitchb-define-mode-map-hook iswitchb-xemacs-backspacekey] 3)
#@252 Find matching buffers and display a list in the minibuffer.
Copied from `icomplete-exhibit' with two changes:
1. It prints a default buffer name when there is no text yet entered.
2. It calls my completion routine rather than the standard completion.
(defalias 'iswitchb-exhibit #[nil "\2052 \306 d{\307\212db\210\310\303!\204 \311\303!\210`\n\312 \210\307\313 \210\314\315\n?$!+\207" [iswitchb-use-mycompletion buffer-undo-list contents iswitchb-eoinput iswitchb-text iswitchb-rescan minibuffer-prompt-end t boundp make-local-variable iswitchb-set-matches iswitchb-set-common-completion insert-string iswitchb-completions minibuffer-completion-table minibuffer-completion-predicate minibuffer-completion-confirm] 6 (#$ . 24967)])
#@99 Return the string that is displayed after the user's text.
Modified from `icomplete-completions'.
(defalias 'iswitchb-completions #[(name candidates predicate require-match) "	\203	 \306\202\n \307	\203 \310\202 \311\312\313\314 \203M \203M @\315\316\n\"\317\320\nG\321G\322U\203B \323\202C \324\n%\210\nAB\204[ \315\325#\202\330 A\204\202 @G!GV\203v @Q\202w \326 ?\205~ \327P\202\330 \314\"\314G#\314$\314\330\331\330\332\333\334\"\"A\"%&G!GV\205\261 &!G\314OQ#!GV\205\305 \"!G\314OQ\f$\203\322 \335%P\202\324 %\260-.\207" [iswitchb-matches require-match first close-bracket-prospects open-bracket-prospects close-bracket-determined "(" "[" ")" "]" "{" "}" nil format "%s" put-text-property 0 face 1 font-lock-comment-face font-lock-function-name-face " %sNo match%s" "" " [Matched]" apply concat nconc mapcar #[(com) "G	U\203 \303\304\207\305	\304OD\207" [com most-len most-is-exact t nil ","] 4] "," open-bracket-determined comps iswitchb-use-fonts name most most-len most-is-exact alternatives iswitchb-common-match-string] 7 (#$ . 25717)])
#@89 Set up minibuffer for `iswitchb-buffer'.
Copied from `icomplete-minibuffer-setup-hook'.
(defalias 'iswitchb-minibuffer-setup #[nil "\301 \205$ \302\300!\210\303\304\305!\210\306\305\307\310\303$\210\304\311!\210\306\311\312\310\303$\210\313\314!\207" [iswitchb-use-mycompletion iswitchb-entryfn-p make-local-variable t make-local-hook pre-command-hook add-hook iswitchb-pre-command nil post-command-hook iswitchb-post-command run-hooks iswitchb-minibuffer-setup-hook] 5 (#$ . 26839)])
#@42 Run before command in `iswitchb-buffer'.
(defalias 'iswitchb-pre-command #[nil "\300 \207" [iswitchb-tidy] 1 (#$ . 27331)])
#@41 Run after command in `iswitchb-buffer'.
(defalias 'iswitchb-post-command #[nil "\300 \207" [iswitchb-exhibit] 1 (#$ . 27461)])
#@92 Remove completions display, if any, prior to new user input.
Copied from `icomplete-tidy'.
(defalias 'iswitchb-tidy #[nil "\302\300!\203 \203 dV\203 d\211\207	d|)\207\303\300!\210\304\211\207" [iswitchb-eoinput buffer-undo-list boundp make-local-variable 1] 2 (#$ . 27594)])
#@51 Return non-nil if we are using `iswitchb-buffer'.
(defalias 'iswitchb-entryfn-p #[nil "\301 =\207" [iswitchb-minibuf-depth minibuffer-depth] 2 (#$ . 27884)])
#@216 Move the summaries to the end of the list.
This is an example function which can be hooked on to
`iswitchb-make-buflist-hook'.  Any buffer matching the regexps
`Summary' or `output*$'are put to the end of the list.
(defalias 'iswitchb-summaries-to-end #[nil "\302\303\304\305\"\"\306	!)\207" [iswitchb-temp-buflist summaries delq nil mapcar #[(x) "\301\302\"\205 \207" [x string-match "Summary\\|output\\*$"] 3] iswitchb-to-end] 5 (#$ . 28050)])
#@103 Return non-nil iff we should ignore case when matching.
See the variable `iswitchb-case' for details.
(defalias 'iswitchb-case #[nil "\205 	\203\f \303\n!\207\303\n\304\"\207" [iswitchb-case iswitchb-xemacs iswitchb-text isearch-no-upper-case-p t] 3 (#$ . 28508)])
#@192 Toggle Iswitchb global minor mode.
With arg, turn Iswitchb mode on if and only iff ARG is positive.
This mode enables switching between buffers using substrings.  See
`iswitchb' for details.
(defalias 'iswitchb-mode #[(&optional arg) "\203\f \302!\303V\202 	?\211\203 \304\305\306\"\210\202  \307\305\306\"\210\310\311!\210t\2054 \312\313	\2032 \314\2023 \315\"\207" [arg iswitchb-mode prefix-numeric-value 0 add-hook minibuffer-setup-hook iswitchb-minibuffer-setup remove-hook run-hooks iswitchb-mode-hook message "Iswitchb mode %sabled" "en" "dis"] 4 (#$ . 28782) "P"])
(byte-code "\302\236\204\f \302	BB\303\304!\207" [minor-mode-map-alist iswitchb-global-map iswitchb-mode provide iswitchb] 2)
