;ELC   
;;; compiled by jwz@thalidomide on Wed Mar 23 18:49:07 1994
;;; from file /th/jwz/emacs19/lisp/ilisp/completer.el
;;; emacs version 19.10 Lucid (beta8).
;;; bytecomp version 2.22; 22-dec-93.
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19")))
    (error "This file was compiled for Emacs 19."))

(defvar completer-load-hook nil "\
Hook called when minibuffer partial completion is loaded.")
(defvar completer-disable nil "\
*If T, turn off partial completion.  Use the command
\\[completer-toggle] to set this.")
(defvar completer-complete-filenames t "\
*If T, then each component of a filename will be completed,
otherwise just the final component will be completed.")
(defvar completer-use-words nil "\
*If T, then prefer completions with the same number of words as the
pattern.")
(defvar completer-words "---. <" "\
*Delimiters used in partial completions.  It should be a set of
characters suitable for inclusion in a [] regular expression.")
(defvar completer-any-delimiter nil "\
*If a character, then a delimiter in the pattern that matches the
character will match any delimiter in completer-words.")
(defvar completer-file-skip "^cs/$\\|@sys\\|.edu/$\\|.gov/$\\|.com/$\\|:/$" "\
*Regular expression for pathname components to not complete.")
(defvar completer-exact nil "\
*If T, then you must have an exact match.  Otherwise, the shortest
string that matches the pattern will be used.")
(defvar completer-cache-size 100 "\
*Size of cache to use for partially completed pathnames.")
(defvar completer-use-cache t "\
*Set to nil to disable the partially completed pathname cache.")
(defvar completer-last-pattern "" "\
The last pattern expanded.")
(defvar completer-message nil "\
T if temporary message was just displayed.")
(defvar completer-path-cache nil "\
Cache of (path . choices) for completer.")
(defvar completer-string nil "\
Last completer string.")
(defvar completer-table nil "\
Last completer table.")
(defvar completer-pred nil "\
Last completer pred.")
(defvar completer-mode nil "\
Last completer mode.")
(defvar completer-result nil "\
Last completer result.")
(fset 'completer-message #[(message &optional point) "dbc`)!|\"?͉*" [point t completer-message message inhibit-quit end sit-for 2 quit-flag string-match "Lucid" emacs-version nil 7 unread-command-char] 3 "\
Display MESSAGE at optional POINT for two seconds."])
(fset 'completer-deleter #[(regexp choices &optional keep) "		@\"	Ar	AA@\"AnAAe		@\"	Ar	AA@\"AAkAf	*" [choices choiceb nil choicep keep string-match regexp] 4 "\
Destructively remove strings that match REGEXP in CHOICES and
return the modified list.  If optional KEEP, then keep entries that
match regexp."])
(fset 'completer-regexp #[(string delimiters any) "	QG	W#ƔƕO=	O!	%	,1X	O!P	," ["[" delimiters "]" delimiter-reg string limit 0 pos "^" regexp string-match begin end delimiter any anyp format "%s%s[^%s]*%s" regexp-quote] 7 "\
Convert STRING into a regexp with words delimited by characters in
DELIMITERS.  Any delimiter in STRING that is the same as ANY will
match any delimiter."])
(fset 'completer-words #[(regexp string &optional limit) "#XTÕj*" [limit 1000 1 0 pos count string-match regexp string] 4 "\
Return the number of words matching REGEXP in STRING up to LIMIT."])
(fset 'completer-matches #[(string choices delimiters any) "	Q	G\n\nW	T#\n	Ɯ=	TOG[	OGBB'!	Q@@AWT[\\\\GXU@O*UUT#ABA ." ["[" delimiters "]" regexp nil from 0 to pattern string len matches sub sublen choice word wordlen pat string-match completer-any-delimiter reverse choices begin end] 6 "\
Return STRING's matches in CHOICES using DELIMITERS and wildcard
ANY to segment the strings."])
(fset 'completer-choice #[(string choices delimiters use-words) "A@B Ű	\"\n@G\n#\nUW\n#\nUW*A.B" [choices t "[^" delimiters "]*[" "]" regexp use-words completer-words string words choice nil unique-p match match-count 1000 match-len current length] 6 "\
Return the best match of STRING in CHOICES with DELIMITERS between
words and T if it is unique.  A match is unique if it is the only
possibility or when USE-WORDS the only possibility with the same
number of words.  The shortest string of multiple possiblities will be
the best match."])
(fset 'completer-region #[(delimiters) "x`)w`)B" [delimiters nil] 3 "\
Return the completion region bounded by characters in DELIMITERS
for the current buffer assuming that point is in it."])
(fset 'completer-last-component #[(string) "GS\n#WTm\n+" [string 0 end match last string-match "/"] 4 "\
Return the start of the last filename component in STRING."])
(fset 'completer-match-record #[(string matches delimiters any dir mode) "		!O	$A	?$\"\"P@PAF*@PF)ÉF)" [dir string completer-last-component nil pattern completer-matches matches delimiters any completer-exact completer-choice completer-use-words try-completion "" mapcar list lcs match t] 8 "\
Return (match lcs choices unique) for STRING in MATCHES with
DELIMITERS or ANY wildcards and DIR if a filename when in MODE."])
(fset 'completer-extension-regexp #[(extensions) "\n	\n@\nAQ\nAp	P)" ["\\(" regexp extensions "\\|" "\\)$"] 4 "\
Return a regexp that matches any of EXTENSIONS."])
(fset 'completer-flush #[nil "" [nil completer-path-cache] 2 "\
Flush completer's pathname cache." nil])
(fset 'completer-cache #[(path pred words any mode) "\n@@			A\n@AATA)L	&AAA@	@@@GS=Y		B\nB)," [nil last completer-path-cache ptr 0 size result completer-use-cache current path completer read-file-name-internal pred words any mode t choices 47 completer-cache-size] 9 "\
Check to see if PATH is in path cache with PRED, WORDS, ANY and
MODE."])
(fset 'completer-file #[(string pred words any mode) "\n=!\"ɕ\"O͘!!PGԉF#ɕ\n>U\"@AAAA@ԡAh*!\n&=OPF)O#$#\"#P#PF#P&!\n%)AAA@OP@A@'AA@(''\"**'*O'(A\n=?(F+@UɜUOCF*J @@\n=AAA@/!0AA@1230@\"232301\"1ԉWAQ23O1!A@!\n&-@A@G'55OP''OPAABB+.\n" [completion-ignore-case case-fold-search mode exit-ok completer-last-component string last string-match "^/\\.\\./[^/]*/" 0 "[^~/]" position new "~" file-name-directory expand-file-name user words "/" len nil choices end old-choices begin exact-p (nil help) completer-match-record "" all-completions read-file-name-internal choicep "../" any t component completer-file-skip completer-cache pred lcs matches "/$" slash help 1 126 completer-extension-regexp completion-ignored-extensions extensions choiceb isext noext completer-deleter match] 8 "\
Return (match common-substring matches unique-p) for STRING using
read-file-name-internal for choices that pass PRED using WORDS to
delimit words.  Optional ANY is a delimiter that matches any of the
delimiters in WORD.  If optional MODE is nil or 'help then possible
matches will always be returned."])
(fset 'completer #[(string table pred words &optional any mode file-p) ";	\n===\n>\n\n\n=	% \n=Q	!	O	O		\"	G	\"		\"O!!!P!!C!F)	OP\n##	#%#	%##&ډF*.\n	\n" [completer-string string table completer-table pred completer-pred file-p mode completer-mode (read-file-name-internal read-directory-name-internal) completer-result "" completer-complete-filenames read-file-name-internal completer-file words any completion-ignore-case case-fold-search "[" "]" pattern completer-last-component component 0 dir nil string-match has-words "^\\$" getenv 1 "/" match all-completions choices completer-regexp regexp completer-match-record completer-deleter t] 8 "\
Return (match common-substring matches unique-p) for STRING in
TABLE for choices that pass PRED using WORDS to delimit words.  If the
flag completer-complete-filenames is T and the table is
read-file-name-internal, then filename components will be individually
expanded.  Optional ANY is a delimiter that can match any delimiter in
WORDS.  Optional MODE is nil for complete, 'help for help and 'exit
for exit."])
(fset 'completer-display-choices #[(choices &optional match message end display) "A@!BAn*!\"!\nqeb\nA̪ͱ) \"" [choices " *Completions*" display-completion-list sort display nil new old copy-sequence #[(x y) "		" [x y] 2] match "Guess = " ", " "" beep completer-message message " (No completions)" end] 6 "\
Display the list of possible CHOICES with optional MATCH, MESSAGE,
END and DISPLAY.  If MATCH is non-nil, it will be flagged as the best
guess.  If there are no choices, display MESSAGE.  END is where to put
temporary messages.  If DISPLAY is present then it will be called on
each possible completion and should return a string."])
(fset 'completer-goto #[(match lcs choices unique delimiters words &optional mode display) "!@A{\"\n=`{?b%,\n?,b\",\",\nR\"bcpF `G\\$\"TO$$\"$c)u`ZZ`|+?%\n`Uu#)b 誁\"." [nil completer-message completer-region delimiters region start end string string-match "[^ ]*\\(~\\|/\\|$\\)" file-p mode help no-insert t message lcs new unique completer-display-choices choices match display " (Sole completion)" completer-insert "[" words "/" "]" regexp completer-words point completer-last-pattern re-search-forward move 0 delimiter -1 1 beep " (No completions)" " (No match)"] 7 "\
MATCH is the best match, LCS is the longest common substring of all
of the matches.  CHOICES is a list of the possibilities, UNIQUE
indicates if MATCH is unique.  DELIMITERS are possible bounding
characters for the completion region.  WORDS are the characters that
delimit the words for partial matches.  Replace the region bounded by
delimiters with the match if unique and the lcs otherwise unless
optional MODE is 'help.  Then go to the part of the string that
disambiguates choices using WORDS to separate words and display the
possibilities if the string was not extended.  If optional DISPLAY is
present then it will be called on each possible completion and should
return a string."])
(fset 'completer-complete-goto #[(delimiters words table pred &optional no-insert display) "	!\n@\nA{	\n&		F\"\")" [completer-region delimiters region apply completer-goto append completer table pred words completer-any-delimiter no-insert display] 10 "\
Complete the string bound by DELIMITERS using WORDS to bound words
for partial matches in TABLE with PRED and then insert the longest
common substring unless optional NO-INSERT and go to the point of
ambiguity.  If optional DISPLAY, it will be called on each match when
possible completions are shown and should return a string."])
(fset 'completer-insert #[(match delimiters &optional buffer undo) "	!@\nAUp=!{	pF	|b\nc+" [completer-region delimiters region start end undo buffer error "No previous pattern" completer-last-pattern match] 5 "\
Replace the region bounded with characters in DELIMITERS by MATCH
and save it so that it can be restored by completer-undo."])
(fset 'completer-undo #[nil "\"!" [completer-last-pattern apply completer-insert error "No previous pattern"] 3 "\
Swap the last expansion and the last match pattern." nil])
(fset 'completer-minibuf-string #[nil "db=#e`T|ed{)" [minibuffer-completion-table read-file-name-internal re-search-backward "//\\|/~\\|.\\$" nil t] 4 "\
Remove dead filename specs from the minibuffer as delimited by //
or ~ or $ and return the resulting string."])
(fset 'completer-minibuf-exit #[nil " " [nil completer-last-pattern exit-minibuffer] 1 "\
Exit and clear pattern." nil])
(fset 'completer-new-cmd #[(cmd) " Q\n\"?ɏ)\n Ǉˇ" [completer-disable completer-minibuf-string string string-match "[" completer-words "/~]" nil (byte-code "	\n#\n=	?!)" [try-completion string minibuffer-completion-table minibuffer-completion-predicate completion read-file-name-internal file-exists-p] 4) ((error)) cmd t] 4 "\
Return T if we can't execute the old minibuffer version of CMD."])
(fset 'completer-minibuf #[(&optional mode) "	?\n? 	&)	E\"" [append completer-use-cache current-prefix-arg completer completer-minibuf-string minibuffer-completion-table minibuffer-completion-predicate completer-words completer-any-delimiter mode "^"] 8 "\
Partial completion of minibuffer expressions.  Optional MODE is
'help for help and 'exit for exit.

If what has been typed so far matches any possibility normal
completion will be done.  Otherwise, the string is considered to be a
pattern with words delimited by the characters in
completer-words.  If completer-exact is T, the best match will be
the shortest one with the same number of words as the pattern if
possible and otherwise the shortest matching expression.  If called
with a prefix, caching will be temporarily disabled.

Examples:
a-f     auto-fill-mode
r-e     rmail-expunge
b--d    *begining-of-defun or byte-recompile-directory
by  d   *byte-recompile-directory if completer-any-delimiter is \" \"
~/i.e   *~/ilisp.el or ~/il-el.el or ~/ilisp.elc
/u/mi/  /usr/misc/" nil])
(fset 'completer-toggle #[nil "?ª!" [completer-disable message "Partial completion OFF" "Partial completion ON"] 2 "\
Turn partial completion on or off." nil])
(defvar completer-old-help (lookup-key minibuffer-local-must-match-map "?") "\
Old binding of ? in minibuffer completion map.")
(fset 'completer-help #[nil "	!!\"" [completer-new-cmd completer-old-help apply completer-goto completer-minibuf help] 4 "\
Partial completion minibuffer-completion-help.  
See completer-minibuf for more information." nil])
(defvar completer-old-completer (lookup-key minibuffer-local-must-match-map "	") "\
Old binding of TAB in minibuffer completion map.")
(fset 'completer-complete #[nil "	! \"" [completer-new-cmd completer-old-completer apply completer-goto completer-minibuf] 3 "\
Partial completion minibuffer-complete.
See completer-minibuf for more information." nil])
(defvar completer-old-word (lookup-key minibuffer-local-must-match-map " ") "\
Old binding of SPACE in minibuffer completion map.")
(fset 'completer-word #[nil "=c! \"" [completer-any-delimiter 32 completer-new-cmd completer-old-word apply completer-goto completer-minibuf] 3 "\
Partial completion minibuffer-complete.
See completer-minibuf for more information." nil])
(defvar completer-old-exit (lookup-key minibuffer-local-must-match-map "\n") "\
Old binding of RET in minibuffer completion map.")
(fset 'completer-exit #[nil "	!!@AAA@\" \"! ? +" [completer-new-cmd completer-old-exit completer-minibuf exit completions match unique-p apply completer-goto completer-minibuf-exit completer-insert "^" minibuffer-completion-confirm completer-message " (Confirm)" beep] 4 "\
Partial completion minibuffer-complete-and-exit.
See completer-minibuf for more information." nil])
(fset 'completer-match-exit #[nil "!@!@ebc`d| \n\"*" [completer-minibuf exit completions guess exit-ok exit-minibuffer apply completer-goto] 4 "\
Exit the minibuffer with the current best match." nil])
(byte-code "	#	#	#	#	#	#	#	#########" [define-key minibuffer-local-completion-map "" completer-undo "	" completer-complete " " completer-word "?" completer-help "\n" completer-minibuf-exit "" "" completer-match-exit "" minibuffer-local-must-match-map completer-exit] 4)
(fset 'completer-comint-dynamic-list-completions #[(completions) "\"" [completer-comint-dynamic-complete-1 nil help] 3 "\
List in help buffer sorted COMPLETIONS.
Typing SPC flushes the help buffer."])
(fset 'completer-comint-dynamic-complete-filename #[nil "\"" [completer-comint-dynamic-complete-1 nil t] 3 "\
Dynamically complete the filename at point."])
(fset 'completer-comint-dynamic-complete-1 #[(&optional undo mode) "  \n%=!)" [undo completer-undo nil completer-string current-window-configuration conf completer-complete-goto "^ 	\n\"" completer-words read-file-name-internal default-directory mode help comint-restore-window-config] 6 "\
Complete the previous filename or display possibilities if done
twice in a row.  If called with a prefix, undo the last completion." "P"])
(byte-code "MM!:@=CCB" [comint-dynamic-complete-filename completer-comint-dynamic-complete-filename comint-dynamic-list-completions completer-comint-dynamic-list-completions #[nil "MM" [comint-dynamic-complete-filename completer-comint-dynamic-complete-filename comint-dynamic-list-completions completer-comint-dynamic-list-completions] 2] boundp comint-load-hook lambda] 3)
(fset 'lisp-complete-symbol #[(&optional mode) "	!W w`)!gzUuu`)\n{\nSf=ͪ#==?&\n|c!#=@!!@D@BA`)ߐ\"!)\"-" [prefix-numeric-value mode 0 completer-undo "^ 	\n)]}\"" nil end backward-sexp 1 39 beg pattern 40 fboundp #[(sym) "	!	!	!" [boundp sym fboundp symbol-plist] 2] predicate try-completion obarray completion t completer-complete-goto "^ 	\n()[]{}'`" completer-words #[(choice) "\n!!\nD\n" [fboundp intern choice " <f>"] 3] message "Making completion list..." all-completions list new intern " <f>" "*Help*" display-completion-list sort #[(x y) "		" [x y] 2] "Making completion list...%s" "done"] 9 "\
Perform partial completion on Lisp symbol preceding point.  That
symbol is compared against the symbols that exist and any additional
characters determined by what is there are inserted.  If the symbol
starts just after an open-parenthesis, only symbols with function
definitions are considered.  Otherwise, all symbols with function
definitions, values or properties are considered.  If called with a
negative prefix, the last completion will be undone." "P"])
(byte-code "!!" [provide completer run-hooks completer-load-hook] 2)
