;;; compiled by jimb@geech.gnu.ai.mit.edu on Sat May 15 22:04:48 1993
;;; from file /gd/gnu/emacs/19.0/lisp/complete.el
;;; emacs version 19.5.19.
;;; bytecomp version FSF 2.08
;;; optimization is on.

(defvar PC-meta-flag t "\
*If nil, TAB does normal Emacs completion and M-TAB does Partial Completion.
If t, TAB does Partial Completion and M-TAB does normal completion.")
(defvar PC-word-delimiters "-_. " "\
*A string of characters which are to be treated as word delimiters
by the Partial Completion system.

Some arcane rules:  If `]' is in this string it must come first.
If `^' is in this string it must NOT come first.  If `-' is in this
string, it must come first or right after `]'.  In other words, if
S is this string, then `[S]' must be a legal Emacs regular expression
(not containing character ranges like `a-z').")
(defvar PC-first-char (quote x) "\
*If t, first character of a string to be completed is always taken literally.
If nil, word delimiters are handled even if they appear as first character.
This controls whether \".e\" matches \".e*\" (t) or \"*.e*\" (nil).
If neither nil nor t, first char is literal only for filename completion.")
(defvar PC-include-file-path (quote ("/usr/include")) "\
*List of directories in which to look for include files.
If this is nil, uses the colon-separated path in $INCPATH instead.")
(defvar PC-disable-wildcards nil "\
Set this to non-nil to disable wildcard support in \\[find-file].")
(defvar PC-disable-includes nil "\
Set this to non-nil to disable include-file support in \\[find-file].")
(defvar PC-default-bindings t "\
Set this to nil to suppress the default partial completion key bindings.")
(byte-code "z \n#\n#\n#\n#\n#\n#\n#\n###########" [PC-default-bindings define-key minibuffer-local-completion-map "	" PC-complete " " PC-complete-word "?" PC-completion-help "	" " " "" PC-force-complete-and-exit "\n" "?" minibuffer-local-must-match-map "" PC-complete-and-exit "\n"] 4)
(defalias 'PC-complete #[nil "   !" [PC-was-meta-key minibuffer-complete PC-do-completion nil] 2 "\
Like minibuffer-complete, but allows \"b--di\"-style abbreviations.
For example, \"M-x b--di\" would match \"byte-recompile-directory\", or any
name which consists of three or more words, the first beginning with \"b\"
and the third beginning with \"di\".

The pattern \"b--d\" is ambiguous for \"byte-recompile-directory\" and
\"beginning-of-defun\", so this would produce a list of completions
just like when normal Emacs completions are ambiguous.

Word-delimiters for the purposes of Partial Completion are \"-\", \"_\",
\".\", and SPC." nil])
(defalias 'PC-complete-word #[nil " 	= \n=  !!m !" [PC-was-meta-key PC-meta-flag last-command-char 32 minibuffer-complete-word self-insert-command 1 PC-do-completion word] 2 "\
Like minibuffer-complete-word, but allows \"b--di\"-style abbreviations.
See PC-complete for details.
This can be bound to other keys, like `-' and `.', if you wish." nil])
(defalias 'PC-complete-space #[nil " 	=\n  cm !" [PC-was-meta-key PC-meta-flag minibuffer-complete-word " " PC-do-completion word] 2 "\
Like minibuffer-complete-word, but allows \"b--di\"-style abbreviations.
See PC-complete for details.
This is suitable for binding to other keys which should act just like SPC." nil])
(defalias 'PC-complete-and-exit #[nil " 	=\n   " [PC-was-meta-key PC-meta-flag minibuffer-complete-and-exit PC-do-complete-and-exit] 2 "\
Like minibuffer-complete-and-exit, but allows \"b--di\"-style abbreviations.
See PC-complete for details." nil])
(defalias 'PC-force-complete-and-exit #[nil " )" [nil minibuffer-completion-confirm PC-do-complete-and-exit] 1 "\
Like minibuffer-complete-and-exit, but allows \"b--di\"-style abbreviations.
See PC-complete for details." nil])
(fset (quote PC-do-complete-and-exit) #[nil " U\n  !% = \"  % !)" [buffer-size 0 exit-minibuffer PC-do-completion exit flag complete minibuffer-completion-confirm PC-temp-minibuffer-message " (Confirm)"] 3])
(defalias 'PC-completion-help #[nil " 	=\n  !" [PC-was-meta-key PC-meta-flag minibuffer-completion-help PC-do-completion help] 2 "\
Like minibuffer-completion-help, but allows \"b--di\"-style abbreviations.
See PC-complete for details." nil])
(byte-code "M! ! ! !& !/ 	!8 \n!A MMM" [PC-was-meta-key #[nil " GU?\"  H! Y! !>??)" [this-command-keys 1 0 key integerp 128 meta event-modifiers] 3] boundp PC-ignored-extensions empty-cache PC-delims PC-ignored-regexp nil PC-word-failed-flag PC-delim-regex PC-ndelims-regex PC-delims-list PC-do-completion #[(&optional mode) "\n	> 	 	\"=G 		#G قKd 		!\"d  c	\" Q!Q$\"&	\"	())\"T!)# )O)OQ)\\ )P!((@!(0A 0@!\"  0	!P	c**J;	O	ON	!	!N	!GVxH=x5=t5xxy!#H=O$!TOR$G!G\\\\~H>::\\O$:\\OQ$G\\\\)~#O\\OQP!)*P	G\\#G@ 		#x@ 	O	#Aw@\"n@BA\\)B =CCD !E B !)KF  G H I =J K !ƂKAL >9I =9MNO\"P Q NOR #S QTM/TM@\"&M@BMAM8)I =?E^@\"^AKtpG U !KƉVWXYI =Z [ \\ \"\"X]^B =_ X\"XeG\\b]XGW(mX]Hg=` !ma b !X]H&>\nc X]H!c g!=d !YX]TOc]T]W7`e\"7`Wa !!VX!$QVZ [ e \"\"X]VnXGVB =^XGV^XOXB =dWeb*B =CY؁f dS\"	#g dSd\"Y= 	#hI =i j k l \"!G m !,K@\"3JG n !J E@P!H@c." [minibuffer-completion-table table minibuffer-completion-predicate pred (read-file-name-internal read-directory-name-internal) filename nil dirname buffer-string str string-match "<\\([^\"<>]*\\)>?$" incname ambig basestr regex p offset poss helpposs completion-ignore-case case-fold-search mode exit PC-is-complete-p complete equal substitute-in-file-name erase-buffer PC-word-delimiters PC-delims "[" "]" PC-delim-regex "[^" "]*" PC-ndelims-regex append PC-delims-list "\\*.*/" files pat "/[^/]*\\'" 0 "*" 2 PC-expand-many-files file-name-directory dir t file-name-nondirectory regexp-quote 42 PC-first-char 1 32 (36 94 46 42 43 63 91 93 92) -1 bump "\\\\\\*" "[^/]*" "\\`" "\\|\\*" "" all-completions compl word PC-word-failed-flag delete-backward-char PC-do-completion beep PC-temp-minibuffer-message " (Ambiguous dir name)" help " (No completions)" " (No match)" (help word) p2 completion-ignored-extensions PC-ignored-extensions "\\(" mapconcat "\\|" "\\)\\'" PC-ignored-regexp " (Complete, but not unique)" skip pt prefix improved try-completion mapcar list i first PC-chop-word forward-char looking-at " " downcase delete-char #[(x) "	\n\" \n!OC" [string-match skip x match-end 0 nil] 3] buffer-substring delete-region completion-auto-help " *Completions*" display-completion-list sort string-lessp " (Next char not unique)" " (Sole completion)"] 7] PC-is-complete-p #[(str table pred) "< \n\"& !  \n\"& \n\"& \n#	F D << !D 	!F 	)" [table assoc str vectorp equal "nil" intern-soft pred lambda res] 5] PC-chop-word #[(new old) "\nT# 	T# 	9 0 	T#9 	TO; *" [-1 j i string-match PC-delim-regex old new PC-word-failed-flag 0] 4]] 2)
(defalias 'PC-temp-minibuffer-message #[(m) "!\n \n!ddb\nc)!d\"	+ 	ˉ*" [fboundp temp-minibuffer-message m savemax t inhibit-quit sit-for 2 delete-region quit-flag nil 7 unread-command-char] 3 "\
A Lisp version of temp_minibuffer_message from minibuf.c."])
(byte-code "! MMM	& \n>& \nB\nMM" [boundp PC-many-files-list nil PC-try-load-many-files #[nil "\n\"f \n!@p!  !ˋ!C !q \"Aa \"T ՂU A#B	,҇" [string-match "\\*" buffer-file-name pat PC-expand-many-files files first next kill-buffer error "No matching files" ((byte-code "A @!\n!)  " [next find-file-noselect buf switch-to-buffer] 2)) get-file-buffer buf filename create-file-buffer erase-buffer insert-file-contents t mapconcat "\\*.*/" identity file-name-nondirectory ", " PC-many-files-list PC-after-load-many-files find-file-hooks nil] 5] PC-after-load-many-files #[nil "\n\"\"" [delq PC-after-load-many-files find-file-hooks message "Also loaded %s." PC-many-files-list] 3] PC-expand-many-files #[(name) "!q P\"eb!?H c#/ !c db!cebp!p!))" [generate-new-buffer " *Glob Output*" erase-buffer shell-command "echo " name t looking-at ".*No match" "(\"" search-forward " " nil delete-backward-char 1 "\" \"" "\")" read files kill-buffer] 4] PC-disable-wildcards find-file-not-found-hooks PC-look-for-include-file #[nil " \"  !!O !H	\np!\n\"T  @q!!O !!\"\n!Sf	S !*\n\"b \nP\n	=   @!\nP! Aq  @!\nP\n \n\")  @q)\nP! \nP\n \n\")\n! \n!q \n\"\n%&+" [string-match "[\"<]\\([^\"<>]*\\)[\">]?$" buffer-file-name match-beginning 1 match-end 0 nil new-buf punc name kill-buffer equal "" buffer-list forward-line looking-at "[ 	]*#[ 	]*include[ 	]+[<\"]\\(.+\\)[>\"][ 	]*[\n/]" buffer-substring error "Not on an #include line" "\\.[a-zA-Z0-9]+$" ".h" 60 PC-include-file-path path file-exists-p file-name-as-directory "No such include file: <%s>" default-directory dir "No such include file: \"%s\"" get-file-buffer create-file-buffer erase-buffer insert-file-contents t filename buf] 5] PC-include-file-path #[nil "4 !É !\"2 TOBO +" [PC-include-file-path getenv "INCPATH" nil pos path env error "No include file path specified" string-match ":[^:]+$" 0] 4]] 2)
(defalias 'PC-include-file-all-completions #[(FILE SEARCH-PATH &optional FULL) "\n\"! !!!\"!!\n0 \n\"\nb \n@B D ![ \n@\"\"\nB\n\nA*0 \n\"\" @@\" @BAs -" [mapcar #[(dir) " !\n" [dir file-name-as-directory default-directory] 2] SEARCH-PATH file-name-absolute-p FILE expand-file-name file-name-all-completions file-name-nondirectory file-name-directory nil file-lists file subdir #[(dir) "	P" [dir subdir] 2] dir FULL file-directory-p #[(file) "	P" [subdir file] 2] sort apply nconc (lambda (x y) (not (string-lessp x y))) compressed sorted equal] 6 "\
Return all completions for FILE in any directory on SEARCH-PATH.
If optional third argument FULL is non-nil, returned pathnames should be 
absolute rather than relative to some directory on the SEARCH-PATH."])
(byte-code "! M > B, 	, KM" [boundp PC-old-read-file-name-internal nil PC-read-include-file-name-internal #[(string dir action) "\n\"` \n!!O\n!O	 \"\", Ȃ^ == 	#^ =N 	#^ =^ 	#=+\n#" [string-match "<\\([^\"<>]*\\)>?$" string match-beginning 1 match-end name 0 nil str2 mapcar #[(x) "\n\"C" [format "<%s>" x] 3] PC-include-file-all-completions PC-include-file-path completion-table action try-completion t all-completions lambda PC-old-read-file-name-internal dir] 6] PC-disable-includes PC-look-for-include-file find-file-not-found-hooks read-file-name-internal] 2)
