;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:37:36 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/complete.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 "`complete.el' was compiled for Emacs 19.29 or later"))

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


(custom-declare-group 'partial-completion nil "Partial Completion of items." :prefix "pc-" :group 'minibuffer :group 'convenience)
#@403 *Control how the first character of a string is to be interpreted.
If nil, the first character of a string is not taken literally if it is a word
delimiter, so that ".e" matches "*.e*".
If t, the first character of a string is always taken literally even if it is a
word delimiter, so that ".e" matches ".e*".
If non-nil and non-t, the first character is taken literally only for file name
completion.
(custom-declare-variable 'PC-first-char ''find-file '(#$ . -750) :type '(choice (const :tag "delimiter" nil) (const :tag "literal" t) (other :tag "find-file" find-file)) :group 'partial-completion)
#@148 *If non-nil, TAB means PC completion and M-TAB means normal completion.
Otherwise, TAB means normal completion and M-TAB means Partial Completion.
(custom-declare-variable 'PC-meta-flag 't '(#$ . -1357) :type 'boolean :group 'partial-completion)
#@383 *A string of characters treated as word delimiters for completion.
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').
(custom-declare-variable 'PC-word-delimiters '"-_. " '(#$ . -1610) :type 'string :group 'partial-completion)
#@137 *A list of directories in which to look for include files.
If nil, means use the colon-separated path in the variable $INCPATH instead.
(custom-declare-variable 'PC-include-file-path ''("/usr/include" "/usr/local/include") '(#$ . -2108) :type '(repeat directory) :group 'partial-completion)
#@64 *If non-nil, include-file support in \[find-file] is disabled.
(custom-declare-variable 'PC-disable-includes 'nil '(#$ . -2405) :type 'boolean :group 'partial-completion)
#@69 If non-nil, default partial completion key bindings are suppressed.
(defvar PC-default-bindings t (#$ . 2582))
#@54 A list of the environment variable names and values.
(defvar PC-env-vars-alist nil (#$ . 2699))
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list PC-old-read-file-name-internal boundp nil] 2)
(defalias 'PC-bindings #[(bind) "	\f\204@ \306\307\310#\210\306\311\312#\210\306\313\314#\210\306\n\307\310#\210\306\n\311\312#\210\306\n\315\316#\210\306\n\317\316#\210\306\n\313\314#\210\306\320\321#\202\266 \205\266 \306\307\322#\210\306\311\323#\210\306\313\324#\210\306\320\322#\210\306\325\323#\210\306\326\327#\210\306\330\327#\210\306\331\324#\210\306\n\307\322#\210\306\n\311\323#\210\306\n\315\332#\210\306\n\317\332#\210\306\n\313\324#\210\306\n\320\322#\210\306\n\325\323#\210\306\n\326\332#\210\306\n\330\332#\210\306\n\331\324#\210\306\320\333#*\207" [minibuffer-local-completion-map minibuffer-local-must-match-map must-match-map completion-map bind global-map define-key "	" minibuffer-complete " " minibuffer-complete-word "?" minibuffer-completion-help "" minibuffer-complete-and-exit "\n" "	" complete-symbol PC-complete PC-complete-word PC-completion-help " " "" PC-force-complete-and-exit "\n" "?" PC-complete-and-exit PC-lisp-complete-symbol PC-default-bindings] 4])
#@248 Non-nil if Partial-Completion mode is enabled.
See the command `partial-completion-mode' for a description of this minor-mode.
Setting this variable directly does not take effect;
use either \[customize] or the function `partial-completion-mode'.
(custom-declare-variable 'partial-completion-mode 'nil '(#$ . 3931) :set (lambda (symbol value) (funcall symbol (or value 0))) :initialize 'custom-initialize-default :group 'partial-completion :type 'boolean :require 'complete)
#@927 Toggle Partial Completion mode.
With prefix ARG, turn Partial Completion mode on if ARG is positive.

When Partial Completion mode is enabled, TAB (or M-TAB if `PC-meta-flag' is
nil) is enhanced so that if some string is divided into words and each word is
delimited by a character in `PC-word-delimiters', partial words are completed
as much as possible and `*' characters are treated likewise in file names.

For example, M-x p-c-m expands to M-x partial-completion-mode since no other
command begins with that sequence of characters, and
\[find-file] f_b.c TAB might complete to foo_bar.c if that file existed and no
other file in that directory begin with that sequence of characters.

Unless `PC-disable-includes' is non-nil, the `<...>' sequence is interpreted
specially in \[find-file].  For example,
\[find-file] <sys/time.h> RET finds the file `/usr/include/sys/time.h'.
See also the variable `PC-include-file-path'.
(defalias 'partial-completion-mode #[(&optional arg) "\203\f \306!\307V\202 	?\310	!\210	\204 \311\312\313\"\210\202( \n\204( \314\312\313\"\210	\2049 \315!\2039 \316M\210\202H \n\204H \204H \316K\316\317M\210	\203U \f\204U \320\321\"\322\323	\203_ \324\202` \325\"\210t\203s \326\327	\203p \330\202q \331\"\210\332 \210	\207" [arg partial-completion-mode PC-disable-includes PC-old-read-file-name-internal PC-env-vars-alist process-environment prefix-numeric-value 0 PC-bindings remove-hook find-file-not-found-hooks PC-look-for-include-file add-hook functionp read-file-name-internal PC-read-include-file-name-internal mapcar #[(string) "\302\303\"\304\305	OP	\205 	T\306O)B\207" [string d string-match "=" "$" 0 nil] 4] run-hooks partial-completion-mode-hook partial-completion-mode-on-hook partial-completion-mode-off-hook message "Partial-Completion mode %sabled" "en" "dis" force-mode-line-update] 3 (#$ . 4413) nil])
#@60 Hook run at the end of function `partial-completion-mode'.
(custom-declare-variable 'partial-completion-mode-hook 'nil '(#$ . 6285) :group 'partial-completion :type 'hook)
(byte-code "\303\301\304\305\306!\205 \306J#\210\203 	\203 \n\204 \307\310\"\210\304\207" [load-file-name partial-completion-mode purify-flag add-minor-mode nil boundp partial-completion-mode-map eval-after-load (partial-completion-mode 1)] 5)
#@520 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.
(defalias 'PC-complete #[nil "\304 \203 \305 \207	=\204 \306\n\211\203? \307!\203? \310\307!!\203? \212\307!q\210\311d\"\2039 \312e\306#\202; \313 )\202B \314\306!)\207" [last-command this-command minibuffer-scroll-window window PC-was-meta-key minibuffer-complete nil window-buffer buffer-name pos-visible-in-window-p set-window-start scroll-other-window PC-do-completion] 5 (#$ . 6714) nil])
#@169 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.
(defalias 'PC-complete-word #[nil "\302 =\203 	\303=\203 \304 \207\305\306!\207\305\306!\210m\205 \307\310!\207" [PC-meta-flag last-command-char PC-was-meta-key 32 minibuffer-complete-word self-insert-command 1 PC-do-completion word] 2 (#$ . 7644) nil])
#@180 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.
(defalias 'PC-complete-space #[nil "\301 =\203\n \302 \207\303c\210m\205 \304\305!\207" [PC-meta-flag PC-was-meta-key minibuffer-complete-word " " PC-do-completion word] 2 (#$ . 8077) nil])
#@109 Like `minibuffer-complete-and-exit', but allows "b--di"-style abbreviations.
See `PC-complete' for details.
(defalias 'PC-complete-and-exit #[nil "\301 =\203\n \302 \207\303 \207" [PC-meta-flag PC-was-meta-key minibuffer-complete-and-exit PC-do-complete-and-exit] 2 (#$ . 8455) nil])
#@109 Like `minibuffer-complete-and-exit', but allows "b--di"-style abbreviations.
See `PC-complete' for details.
(defalias 'PC-force-complete-and-exit #[nil "\301\302 )\207" [minibuffer-completion-confirm nil PC-do-complete-and-exit] 1 (#$ . 8747) nil])
(defalias 'PC-do-complete-and-exit #[nil "d\302 U\203\n \303 \207\304\305!\211\205$ \306=\204 	\204! \303 \202$ \307\310!)\207" [flag minibuffer-completion-confirm minibuffer-prompt-end exit-minibuffer PC-do-completion exit complete PC-temp-minibuffer-message " [Confirm]"] 3])
#@107 Like `minibuffer-completion-help', but allows "b--di"-style abbreviations.
See `PC-complete' for details.
(defalias 'PC-completion-help #[nil "\301 =\203\n \302 \207\303\304!\207" [PC-meta-flag PC-was-meta-key minibuffer-completion-help PC-do-completion help] 2 (#$ . 9285) nil])
(defalias 'PC-was-meta-key #[nil "\301 G\302U?\206! \301 \303H\211\250\203 \304Y\202  \305\306!>??)\207" [key this-command-keys 1 0 128 meta event-modifiers] 4])
(byte-code "\301B\306\301!\204\f \307\302B\306\302!\204 \307\303B\306\303!\204$ \310\304B\306\304!\2040 \310\305B\306\305!\204< \310\311B\306\311!\204I \310	\312B\306\312!\204V \310\n\310\207" [current-load-list PC-ignored-extensions PC-delims PC-ignored-regexp PC-word-failed-flag PC-delim-regex boundp empty-cache nil PC-ndelims-regex PC-delims-list] 2)
#@210 A function testing whether a minibuffer completion now will work filename-style.
The function takes no arguments, and typically looks at the value
of `minibuffer-completion-table' and the minibuffer contents.
(defvar PC-completion-as-file-name-predicate #[nil "\301>\207" [minibuffer-completion-table (read-file-name-internal read-directory-name-internal)] 2] (#$ . 10117))
(defalias 'PC-do-completion #[(&optional mode beg end) "\204 \306 	\204 d\n\f@ A\307B\310C	{DA\205+ \311\312D\"E\307F\307G\307H\307I\307J\307K\307L\307MNOP\313=\203] \314D#\203] \315\202\353A\203\246 \316D!\206j \317\211G\203\246 GG\211C\203\246 \320G!\211J\203\246 GJ\230\204\246 J\321D!P\211D\203\246 	|\210Dc\210DG\\QR\232\204\307 QR\322R\323QS\324R\325QT\326R\307\"UA\203i\311\327D\"\203iD\307VW\311\330W\"TJ\311SWJ#\211J\203\nW\310JO\331WJ\307OQWJ\332\\J\202\343 \333W\331P!\211V\203a\316V@!VJXJA\211J\2035X\316J@!\232\204!J\203G\307A\307\307\334F\202]	|\210X\321D!P\211Dc\210DG\\*\202h\307A\307\307*A\203\233E\203\206DE\307OGD\310EOB\202\237\321D!G\316D!\211BGPD\202\237DG\335G!\211IG\310V\203\312G\310H\336=\204\312Y\334=\204\306Y\203\312A\203\312\337\202\313\310\211KJ\311SIJ#\211J\203AIJH\340=\203I\310JOTSIJT\307ORIJTG\\SG\\J\202\320IJH\341>\203\342\202\310ZI\310JZ\\OTIJZ\\\307OQIJTG\\\337\\J)\202\320\310JA\203k\311\343IJ#\211J\203kI\310JO\344IJ\332\\\307OQI\202I\345IPIGG\310V\203\212G\310H\346U\203\212\334H[\307\311SA\203\226\347\202\227\317PDBGK\\#\211J\204\274\350H\203\262G\202\264D#L\202\350H\203\315\321D\310JO!\202\323D\310JO#\211\\\211J\203\311IJ@\"\203\375\351\310J@G\307J@$\210J@LBLJA\211J\204\337)L\204EP\352=\203&]\204&\334]\353\337!\210\354\352!)\202\353\355 \210\356F\2033\357\202?P\360=\203>\361\202?\362!\210\307\202\353L\211MA\204UP\363>\203\251A\203\261P\360=\204\261L^_`\232\204{\364\365\335_\211`\366#\367Qa\307J^\203\247\311a^@\"\204\236\311\370^@\"\204\236^@JBJ^A\211^\204\203J\203\260JL)P\360=?\205\273L\211J\203\323J@G\230\204\323JA\211J\204\301J\203\341P\204\341\356\371!\210J\203\367P\204\363bc=\204\367\334\202\353\307\211\211\345defgP\360=\204'\372\317\373\374L\"\"\211f\203'\334\307hiP\352=\203-\375fG\"fBG\\b\210\310h\310fGW\203\262`	W\203UfhHg=\203U\337u\210\202\251`	W\203\204\376\377!\203lfhHU>\204xfhH\227g\227=\203\204\201m \337!\210	S\202\235A\203\232\376\201n !\203\232\201m \337!\210	S\334gfh\211TOc\210	ThT\211h\2028e\204\300`\232\204\300`e\376S!\203d\335f!TQd\372\317\373\201o L\"\"\211f\203h\310V\204\361fG\310V\203P\352=\2034i\203fG\310V\203\307if\310\337O\211f\2044P\352=\203	\202$e\206$b\210*P\352=\203J]\204Jg\205\245\314\337	S{#\205\245	S	|\202\245g\203aP\313=\205\245\314\201p  #\202\245j\334=\204|j\203ucb=\204|P\360=\203\236\201q \220\201r \201s M\201t \"!\210\212kq\210C\211l)\221\210\202\244\356\201u !\210\307,\202\353GL@\232\203\312H\203\274A\204\312P\204\352\356\201v !\210\202\352	|\210\201w \201x A\203\344\320BL@P!\202\347L@\"c\210\334.\207" [beg end minibuffer-completion-table table minibuffer-completion-predicate pred minibuffer-prompt-end nil 0 string-match "<\\([^\"<>]*\\)>?$" exit PC-is-complete-p complete file-name-directory "" substitute-in-file-name file-name-nondirectory "[" "]" "[^" "]*" append "\\*.*/" "/[^/]*\\'" "*" 2 PC-expand-many-files t regexp-quote 42 1 32 (36 94 46 42 43 63 91 93 92) -1 "\\\\\\*" "[^/]*" "\\`" 36 "\\|\\*" all-completions set-text-properties word delete-backward-char PC-do-completion beep PC-temp-minibuffer-message " [Ambiguous dir name]" help " [No completions]" " [No match]" (help word) "\\(" mapconcat "\\|" "\\)\\'" "\\(\\`\\|/\\)[.][.]?/?\\'" " [Complete, but not unique]" try-completion mapcar list PC-chop-word looking-at " " PC-completion-as-file-name-predicate filename dirname dirlength str incname ambig basestr env-on regex p offset poss helpposs completion-ignore-case case-fold-search mode PC-word-delimiters PC-delims PC-delim-regex PC-ndelims-regex PC-delims-list files pat dir PC-first-char bump PC-env-vars-alist compl PC-word-failed-flag p2 completion-ignored-extensions PC-ignored-extensions PC-ignored-regexp this-command last-command skip pt prefix improved i first completion-auto-help standard-output completion-base-size delete-char "\\*" #[(x) "\302	\"\205\f 	\303\225\304OC\207" [skip x string-match 0 nil] 3] field-string "*Completions*" display-completion-list sort string-lessp " [Next char not unique]" " [Sole completion]" format "%s"] 7])
(defalias 'PC-is-complete-p #[(str table pred) "<\203\f \304	\"\202$ \305!\203 	\306\232\206$ \307	\"\202$ 	\n\310#\211\205? \n\203> <\2048 \305!\203> \n!\205? )\207" [table str pred res assoc vectorp "nil" intern-soft lambda] 5])
(defalias 'PC-chop-word #[(new old) "\306\211\307\n	T#\211\203 \307\n\fT#\211\204 \2035 \203- \307\n\fT#\211\2035 \f\310TO\2026 \f*\207" [j i PC-delim-regex old new PC-word-failed-flag -1 string-match 0] 4])
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list PC-not-minibuffer boundp nil] 2)
#@61 A Lisp version of `temp_minibuffer_message' from minibuf.c.
(defalias 'PC-temp-minibuffer-message #[(message) "\203 \301	!\210\306\307!\210\301\310!\207\311\312!\203 \312	!\207d\212\nb\210	c\210)\313\306\307!\210\nd|\210\f\2057 \314\315\211*\207" [PC-not-minibuffer message point-max inhibit-quit quit-flag unread-command-events sit-for 2 "" fboundp temp-minibuffer-message t nil (7)] 2 (#$ . 15514)])
#@374 Perform 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.
(defalias 'PC-lisp-complete-symbol #[nil "`\306 \307\216\212\n\203 \310\n!\210\311\312!\210gz\313U\203! \312u\210\202 `*\fSf\314=\2032 \315\2023 \316\317\320\321#.\207" [end buffer-syntax lisp-mode-syntax-table beg obarray minibuffer-completion-table syntax-table ((set-syntax-table buffer-syntax)) set-syntax-table backward-sexp 1 39 40 fboundp #[(sym) "\301!\206 \302!\206 \303!\207" [sym boundp fboundp symbol-plist] 2] t PC-do-completion nil minibuffer-completion-predicate PC-not-minibuffer] 4 (#$ . 15930) nil])
#@100 Perform completion on file names preceding point.
 Environment vars are converted to their values.
(defalias 'PC-complete-as-file-name #[nil "`\305\306e\307#\203 `\310\\\202 e\311\312\307b\210\313\314	#-\207" [end beg minibuffer-completion-table minibuffer-completion-predicate PC-not-minibuffer re-search-backward "[^\\][ 	\n\"`'][^ 	\n\"`']" t 2 read-file-name-internal "" PC-do-completion nil] 4 (#$ . 16847) nil])
(defalias 'PC-expand-many-files #[(name) "\212\306\307!q\210\310 \210\311\312P\313\"\210eb\210\314\315!?\205s \316c\210\317\320\321\313#\203/ \322\323!\210\324c\210\202 db\210\322\323!\210\325c\210eb\210\326p!\321\327p!\210\f\232\204W \330\331\332\211\333#\334Q\321\n\203q \335\n@\"\204j \n@	B\nA\211\204] 	*)\207" [name p files completion-ignored-extensions PC-ignored-extensions PC-ignored-regexp generate-new-buffer " *Glob Output*" erase-buffer shell-command "echo " t looking-at ".*No match" "(\"" search-forward " " nil delete-backward-char 1 "\" \"" "\")" read kill-buffer "\\(" mapconcat regexp-quote "\\|" "\\)\\'" string-match] 6])
(defalias 'PC-look-for-include-file #[nil "\306\307\310 \"\205\310 \311\224\311\225O\310 \312\224H\313\211\314p!\210\315\232\203\200 \212\316 @q\210\212\317 \210\320\321!\203B \311\224\311\225{\311\224Sf\202 \320\322!\204T \320\323!\204T \320\324!\203{ \311\224\311\225{\325\f\306\326\"\203m \312\327O\202 \306\330\"\204 \331P\202 \332\333!\210*\306\334\"\204\213 \335P\n\325=\203\305 	\206\227 \336 \211\203\256 \337\340	@!P!\204\256 	A\211\204\234 	\203\274 \340	@!P\202\301 \332\341\"\210)\202\346 \212\316 @q\210)(\337(P!\203\340 (P\202\345 \332\342\"\210)\343!\211\203\364 q\210\202\344!\211q\210\345 \210\346\347\"\210,\347\207" [new-buf path punc name load-path default-directory string-match "[\"<]\\([^\"<>]*\\)[\">]?$" buffer-file-name 1 0 nil kill-buffer "" buffer-list beginning-of-line looking-at "[ 	]*#[ 	]*include[ 	]+[<\"]\\(.+\\)[>\"][ 	]*[\n/]" "[ 	]*([ 	]*load[ 	]+\"\\([^\"]+\\)\"" "[ 	]*([ 	]*load-library[ 	]+\"\\([^\"]+\\)\"" "[ 	]*([ 	]*require[ 	]+'\\([^	 )]+\\)[	 )]" 60 "\\.elc$" -1 "\\.el$" ".el" error "Not on an #include line" "\\.[[:alnum:]]+$" ".h" PC-include-file-path file-exists-p file-name-as-directory "No such include file: <%s>" "No such include file: `%s'" get-file-buffer create-file-buffer erase-buffer insert-file-contents t dir] 5])
(defalias 'PC-include-file-path #[nil "\206/ \304\305!\306\211\211\204 \307\310!\210\311\312\"\211\203- 	T\306O\nB\313	O\202 \n+\207" [PC-include-file-path pos path env getenv "INCPATH" nil error "No include file path specified" string-match ":[^:]+$" 0] 4])
#@208 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.
(defalias 'PC-include-file-all-completions #[(file search-path &optional full) "\306\307\"\310	!\203 \311	!\312\313	!\314	!\"\207\314	!\313	!\315\211\203- \306\316\"\315\203W @\203= \202> \f\317!\203P \306\320\312@\"\"\nBA*\202- \321\322\323\n\"\324\"\315\211\203\202 @@\232\204y @BA\211\204g -\207" [search-path file file-lists ndfile subdir dir mapcar #[(dir) "\203 \302!\207	\207" [dir default-directory file-name-as-directory] 2] file-name-absolute-p expand-file-name file-name-all-completions file-name-nondirectory file-name-directory nil #[(dir) "	P\207" [dir subdir] 2] file-directory-p #[(file) "	P\207" [subdir file] 2] sort apply nconc #[(x y) "	\231?\207" [x y] 2] full compressed sorted] 6 (#$ . 19531)])
(defalias 'PC-read-include-file-name-internal #[(string dir action) "\306\307\"\203P \310\224\310\225O\311\224\312O\313\314\315	\316 \"\"\211\204% \312\202N \f\312=\2033 \317\n\312#\202N \f\320=\203A \321\n\312#\202N \f\322=\205N \317\n\312#\320=+\207\f#\207" [string name str2 completion-table action PC-old-read-file-name-internal string-match "<\\([^\"<>]*\\)>?$" 1 0 nil mapcar #[(x) "\301\302\"C\207" [x format "<%s>"] 3] PC-include-file-all-completions PC-include-file-path try-completion t all-completions lambda dir] 6])
(provide 'complete)
