;ELC ;;; compiled by kwzh@hal.gnu.ai.mit.edu on Tue May 2 20:19:19 1995 ;;; from file /gd/gnu/emacs/19.0/lisp/complete.el ;;; emacs version 19.28.90.69. ;;; bytecomp version FSF 2.10 ;;; 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 "`/gd/gnu/emacs/19.0/lisp/complete.el' was compiled for Emacs 19")) #@146 *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-meta-flag t (#$ . -486)) #@419 *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-word-delimiters "-_. " (#$ . -674)) #@291 *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-first-char (quote x) (#$ . -1146)) #@125 *List of directories in which to look for include files. If this is nil, uses the colon-separated path in $INCPATH instead. (defvar PC-include-file-path (quote ("/usr/include")) (#$ . -1489)) #@66 Set this to non-nil to disable wildcard support in \[find-file]. (defvar PC-disable-wildcards nil (#$ . 1687)) #@70 Set this to non-nil to disable include-file support in \[find-file]. (defvar PC-disable-includes nil (#$ . 1804)) #@74 Set this to nil to suppress the default partial completion key bindings. (defvar PC-default-bindings t (#$ . 1924)) (byte-code "\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" global-map PC-lisp-complete-symbol] 4) #@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 "  !" [PC-was-meta-key minibuffer-complete PC-do-completion nil] 2 (#$ . 2478) 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 " =\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 (#$ . 3127) 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 " =\n cm!" [PC-was-meta-key PC-meta-flag minibuffer-complete-word " " PC-do-completion word] 2 (#$ . 3513) nil]) #@109 Like `minibuffer-complete-and-exit', but allows "b--di"-style abbreviations. See `PC-complete' for details. (defalias 'PC-complete-and-exit #[nil " =\n " [PC-was-meta-key PC-meta-flag minibuffer-complete-and-exit PC-do-complete-and-exit] 2 (#$ . 3861) 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 " )" [nil minibuffer-completion-confirm PC-do-complete-and-exit] 1 (#$ . 4135) nil]) (defalias '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]) #@107 Like `minibuffer-completion-help', but allows "b--di"-style abbreviations. See `PC-complete' for details. (defalias 'PC-completion-help #[nil " =\n !" [PC-was-meta-key PC-meta-flag minibuffer-completion-help PC-do-completion help] 2 (#$ . 4610) nil]) (defalias 'PC-was-meta-key #[nil " GU?! H Y !>??)" [this-command-keys 1 0 key 128 meta event-modifiers] 4]) (byte-code "! B! B!  B!- B!: B!G B!T\n BƇ" [boundp PC-ignored-extensions empty-cache current-load-list PC-delims PC-ignored-regexp nil PC-word-failed-flag PC-delim-regex PC-ndelims-regex PC-delims-list] 2) (defalias 'PC-do-completion #[(&optional mode beg end) "e \fd\n\f > \n { * \"=Y #Yۂf !Gg\n  ! |c  G\\   Q# Q& \"(P \"P *++\"T#+#+O+OQ+\\+P!*H*@!*0A0@!.D |0 !P c G\\*O*|m O O  ! !  !GVH=5=5݉##\"H=O&#TOR&G#G\\\\H>::\\O&:\\OQ&G\\\\)L#LO\\OQ*P#^_P  G\\#|@ #@ O #A@\"@BA)B=CCD!EB!)F GHI=JK!ȂAL>nI=nMNOAPQNOR#SQTMdTM@\"[M@BMAMIm)I=?z@AGU!VW=ȉXYZ[I= \\]^\"\"Z _`B=aZ\"Z G\\b_ZGW` W$Z_Hg=$u` WWbc!?Z_H(>KZ_Hg=Wd! Srobe!od! S[fgZ_TO\"c T_T_Y``Yb#!XZ!&QX\\]h\"\"Z_VZGVB=`ZGV`ZOZB= \nY\nb*B=2C2[ S{ # S |[I=ځi #jWI=yklmn\"!oq\np)Gq!,@Gr! |fg @P!@\"c." [beg end minibuffer-completion-table table minibuffer-completion-predicate pred (read-file-name-internal read-directory-name-internal) filename nil dirname dirlength str string-match "<\\([^\"<>]*\\)>?$" incname ambig basestr regex p offset poss helpposs completion-ignore-case case-fold-search mode exit PC-is-complete-p complete file-name-directory 0 substitute-in-file-name PC-word-delimiters PC-delims "[" "]" PC-delim-regex "[^" "]*" PC-ndelims-regex append PC-delims-list "\\*.*/" files pat "/[^/]*\\'" "*" 2 PC-expand-many-files 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]" this-command last-command skip pt prefix improved try-completion mapcar list i first PC-chop-word looking-at " " delete-char "\\*" format "%s" #[(x) " \n\"\f\nÕOC" [string-match skip x 0 nil] 3] buffer-string completion-auto-help "*Completions*" display-completion-list sort string-lessp standard-output completion-base-size " [Next char not unique]" " [Sole completion]"] 7]) (defalias 'PC-is-complete-p #[(str table pred) "<\f\n\"%!\nĚ%\n\"%\n#EC<;!C!E)" [table assoc str vectorp "nil" intern-soft pred lambda res] 5]) (defalias 'PC-chop-word #[(new old) "\f \nT#\f T# 90\f T#9 TO;*" [-1 j i string-match PC-delim-regex old new PC-word-failed-flag 0] 4]) (byte-code "! B‡" [boundp PC-not-minibuffer nil current-load-list] 2) #@61 A Lisp version of `temp_minibuffer_message' from minibuf.c. (defalias 'PC-temp-minibuffer-message #[(m) "\n!!!!\n!ddb\nc)\n!d| = ͉*" [PC-not-minibuffer message m sit-for 2 "" fboundp temp-minibuffer-message savemax t inhibit-quit quit-flag nil 7 unread-command-char] 2 (#$ . 8670)]) #@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 "` Î\f\f!!gzU!u`* \n  Sf=6͂7 #." [end syntax-table buffer-syntax ((set-syntax-table buffer-syntax)) lisp-mode-syntax-table set-syntax-table backward-sexp 1 39 beg obarray minibuffer-completion-table 40 fboundp #[(sym) " ! ! !" [boundp sym fboundp symbol-plist] 2] minibuffer-completion-predicate t PC-not-minibuffer PC-do-completion nil] 4 (#$ . 9001) nil]) (byte-code "! B‡" [boundp PC-many-files-list nil current-load-list] 2) (defalias '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]) (defalias '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]) (defalias 'PC-expand-many-files #[(name) "!q P\"eb!?Hc#/!cdb!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]) (byte-code "\n>\nB" [PC-disable-wildcards PC-try-load-many-files find-file-not-found-hooks] 2) (defalias 'PC-look-for-include-file #[nil " \"; ÔÕO ĔHʼn p! ˚ @qy!IÔÕ{ ÔSf![![!ÔÕ{  \"{ O  \" P !* \" P = @! P!A@! P  \")  @q )!! P!! P \n \") !q. !q  \" ()," [string-match "[\"<]\\([^\"<>]*\\)[\">]?$" buffer-file-name 1 0 nil new-buf path punc name kill-buffer "" buffer-list looking-at "[ ]*#[ ]*include[ ]+[<\"]\\(.+\\)[>\"][ ]*[\n/]" "[ ]*([ ]*load[ ]+\"\\([^\"]+\\)\"" "[ ]*([ ]*load-library[ ]+\"\\([^\"]+\\)\"" "[ ]*([ ]*require[ ]+'\\([^ )]+\\)[ )]" 60 load-path "\\.elc$" -1 "\\.el$" ".el" error "Not on an #include line" "\\.[a-zA-Z0-9]+$" ".h" PC-include-file-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]) (defalias 'PC-include-file-path #[nil "4!É!\"2\fTO B\fO +" [PC-include-file-path getenv "INCPATH" nil pos path env 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) "\n\"\f!\f!\f!\f!\"\f!\f!\n \f0\n\"\nb\n@BD\f\f![ \n@\"\"\nB\n\nA*0\n\"\"@@@BAs-" [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 ndfile 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] 6 (#$ . 12289)]) (byte-code "! B‡" [boundp PC-old-read-file-name-internal nil current-load-list] 2) (defalias 'PC-read-include-file-name-internal #[(string dir action) "\n\"[\nÔÕO\nŔO\f \"\"\f'ƂY =8\f#Y =I\f#Y =Y\f#=+\n #" [string-match "<\\([^\"<>]*\\)>?$" string 1 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]) (byte-code "\n>\nB KM!" [PC-disable-includes PC-look-for-include-file find-file-not-found-hooks PC-old-read-file-name-internal read-file-name-internal PC-read-include-file-name-internal provide complete] 2)