
(defvar fi:shell-token-pattern "[ 	
()<>&|;=]" "*The regular expression used by file name completion to mark path name
boundaries.")

(defvar fi::shell-completions-window nil "\
If non-nil, completion window requires cleaning up.")

(defun fi:shell-do-completion nil "\
Do either command or file name completion in a subprocess buffer
containing a shell (or other subprocess for which it would be useful, such
as Common Lisp or rlogin buffers)." (interactive) (byte-code "ÁˆÁ`ŠÇ!ƒ ‚ ÈbˆÉ
Æ#… `)…> ŠÊËÆ#†1 ÌÍÆ#)ƒ; ÎÏ!‚> ÎÐ!+‡" [completion-ignore-case nil opoint input-start fi::last-input-end subprocess-prompt-pattern t marker-buffer 0 re-search-forward re-search-backward "[ 	]" search-backward "/" call-interactively fi:shell-file-name-completion fi:shell-command-completion] 7))

(defun fi:shell-file-name-completion nil "\
Perform file name completion in subprocess modes." (interactive) (byte-code "ÂˆÈÉ !ÂÂÂÊ!† ‰ˆË!‰ˆÌ	\"‰ˆÆ=ƒ0 ÍÎ!‚r Â=ƒ< ÍÏ!‚r Ð\"ƒi ƒL Â‚Q Ñ ‰ˆÍÒ!ˆÓÔÕÖ	\"×\"!‘ˆÍØ!‚r Ù!ˆÚÆÆ#,‡" [shell-expand-string shell-expand-dir nil shell-expand-file shell-expand-completion default-directory t fi::shell-completions-window substitute-in-file-name fi::shell-completion-default-prefix file-name-directory file-name-nondirectory file-name-completion message "Sole completion" "No match" equal current-window-configuration "Making completion list..." " *Completions*" display-completion-list sort file-name-all-completions string-lessp "" search-backward replace-match] 19))

(defun fi:shell-command-completion (shell-expand-string) "\
Perform file name completion in subprocess modes." (interactive (byte-code "À C‡" [fi::shell-completion-default-prefix] 2)) (byte-code "ÁˆÁÁ…1 Ì@!ÍÎ\"\"…' Ï\"‰*ˆA‰ˆ‚ ˆ…P @@B
B‰ˆA‰ˆ‚5 )ˆ?ƒ] ÐÑ!‚¼ ÒGUƒ„ Ó@\"ƒv Ô ˆÐÕ!‚ Ö!ˆ×@ÉÉ#‚¼ Ø
\"

…— Ó
\"?…¥ Ö!ˆ×
ÉÉ#ˆ?…± Ù ‰ˆÚÛÜÝ\"!‘)+‡" [completions nil complete-alist dirs exec-path dir res shell-expand-string names t new-command fi::shell-completions-window expand-file-name fi::executable-files file-name-all-completions append message "No match" 1 string= fi::shell-completion-cleanup "Sole completion" search-backward replace-match try-completion current-window-configuration " *Completions*" display-completion-list sort string-lessp] 20))

(defun fi::executable-files (files dir) (byte-code "…9 ÄÄ…6 Å@Q‰ˆÆ
!?…$ ÇÈÉÊ
!\"!?…- @	B‰ˆA‰ˆ‚ ˆ	*‡" [files res file dir nil "/" file-directory-p zerop logand 73 file-modes] 7))

(defun fi::shell-completion-default-prefix nil (byte-code "ÃÁÂ#ˆÄ ˆÅ`ÆÁÇ#… È ˆ`\"‡" [fi:shell-token-pattern nil t re-search-backward forward-char buffer-substring re-search-forward 0 backward-char] 8))

(defun fi::shell-completion-cleanup nil "\
Clean up windows after shell file name completion." (interactive) (byte-code "Áˆ… ŠÂ!ˆÁ‰)‡" [fi::shell-completions-window nil set-window-configuration] 3))
