;ELC   
;;; Compiled
;;; in Emacs version 30.2
;;; with all optimizations.


#@51 A hook that gets run when `eshell-ext' is loaded.#@2 #@62 A list of suffixes used when searching for executable files.#@485 If non-nil, try to execute files regardless of execute permissions.
This can be useful on systems like Windows, where the operating system
doesn't support the execution bit for shell scripts; or in cases where
you want to associate an interpreter with a particular kind of script
file, but the language won't let you but a `#!' interpreter line in
the file, and you don't want to make it executable since nothing else
but Eshell will be able to understand
`eshell-interpreter-alist'.#@50 Search the environment path for NAME.

(fn NAME)
(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\306\307\310\311\312\313\314\315&\210\316\317\320\321\322DD\323\324\325\326\327\314\307&	\210\316\330\320\321\331DD\332\326\333\314\307&\210\316\334\320\321\335DD\336\326\337\314\307&\207" [require esh-io esh-arg esh-opt esh-proc esh-util custom-declare-group eshell-ext nil "External commands are invoked when operating system executables are\nloaded into memory, thus beginning a new process." :tag "External commands" :group eshell custom-declare-variable eshell-ext-load-hook funcall function #[0 "\300\207" [nil] 1 (#$ . 137)] (#$ . 83) :version "24.1" :type hook eshell-binary-suffixes #[0 "\207" [exec-suffixes] 1 (#$ . 137)] (#$ . 143) (repeat string) eshell-force-execution #[0 "\301>??\207" [system-type (windows-nt ms-dos)] 2 (#$ . 137)] (#$ . 210) boolean] 10)
(defalias 'eshell-search-path #[257 "\302!\203 \207\303 \304\211\211\211\203R \305@\"\262\262\203K @P\262\306!\2046 	\203D \307!\203D \310!\204D \210\211\304\262\304\262A\262\202 A\262\202 \207" [eshell-binary-suffixes eshell-force-execution file-name-absolute-p eshell-get-path nil file-name-concat file-executable-p file-readable-p file-directory-p] 9 (#$ . 699)])#@151 The name of the shell command to use for DOS/Windows batch files.
This defaults to nil on non-Windows systems, where this variable is
wholly ignored.#@75 Invoke a .BAT or .CMD file on MS-DOS/MS-Windows systems.

(fn &rest ARGS)
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\313\314\"\207" [custom-declare-variable eshell-windows-shell-file funcall function #[0 "\302>\205 \303\304	\"\203 \305\306!\206 \305\307!\207	\207" [system-type shell-file-name (ms-dos windows-nt) string-match "\\(cmdproxy\\|sh\\)\\.\\(com\\|exe\\)" eshell-search-path "cmd.exe" "command.com"] 3 (#$ . 137)] (#$ . 2000) :type (choice file (const nil)) :group eshell-ext autoload eshell-parse-command "esh-cmd"] 8)
(defalias 'eshell-invoke-batch-file #[128 "\211\301\302\303@#\240\210\304\305\306\307!\310B\"\"\207" [eshell-windows-shell-file subst-char-in-string 47 92 throw eshell-replace-command eshell-parse-command eshell-quote-argument "/c"] 7 (#$ . 2155)])#@801 An alist defining interpreter substitutions.
Each member is a cons cell of the form:

  (MATCH . INTERPRETER)

MATCH should be a regexp, which is matched against the command
name, or a function of arity 2 receiving the COMMAND and its
ARGS (a list).  If either returns a non-nil value, then
INTERPRETER will be used for that command.

If INTERPRETER is a string, it will be called as the command name,
with the original command name passed as the first argument, with all
subsequent arguments following.  If INTERPRETER is a function, it will
be called with all of those arguments.  Note that interpreter
functions should throw `eshell-replace-command' with the alternate
command form, or they should return a value compatible with the
possible return values of `eshell-external-command', which see.#@483 A hook run whenever external command lookup fails.
If a functions wishes to provide an alternate command, they must throw
it using the tag `eshell-replace-command'.  This is done because the
substituted command need not be external at all, and therefore must be
passed up to a higher level for re-evaluation.

Or, if the function returns a filename, that filename will be invoked
with the current command arguments rather than the command specified
by the user on the command line.#@66 The maximum length of any command interpreter string, plus args.#@149 If this char occurs before a command name, call it externally.
That is, although `vi' may be an alias, `*vi' will always call the
external version.#@256 If non-nil, support explicitly-remote commands.
These are commands with a full remote file name, such as
"/ssh:host:whoami".  If this is enabled, you can also explicitly run
commands on your local host by using the "/local:" prefix, like
"/local:whoami".
(byte-code "\300\301\302\303#\304\301\305\306#\210\307\310\311\312\313DD\314\315\316\317\320&\210\307\321\311\312\322DD\323\315\324\317\320&\210\307\325\311\312\326DD\327\315\330\317\320&\210\307\331\311\312\332DD\333\315\334\317\320&\210\307\335\311\312\336DD\337\315\340\341\342\317\320&	\207" [function-put eshell-invoke-batch-file speed -1 put byte-optimizer byte-compile-inline-expand custom-declare-variable eshell-interpreter-alist funcall function #[0 "\301>\205 \302\207" [system-type (ms-dos windows-nt) (("\\.\\(bat\\|cmd\\)\\'" . eshell-invoke-batch-file))] 2 (#$ . 137)] (#$ . 2970) :type (repeat (cons (choice regexp (function :tag "Predicate")) (choice string (function :tag "Interpreter")))) :group eshell-ext eshell-alternate-command-hook #[0 "\300\207" [nil] 1 (#$ . 137)] (#$ . 3776) hook eshell-command-interpreter-max-length #[0 "\300\207" [256] 1 (#$ . 137)] (#$ . 4263) integer eshell-explicit-command-char #[0 "\300\207" [42] 1 (#$ . 137)] (#$ . 4334) character eshell-explicit-remote-commands #[0 "\300\207" [t] 1 (#$ . 137)] (#$ . 4488) boolean :version "30.1"] 11)
(defconst eshell--local-prefix "/local:")#@48 Initialize the external command handling code.
(defalias 'eshell-ext-initialize #[0 "\300\301\302\303\304$\210\300\301\305\303\304$\207" [add-hook eshell-named-command-hook eshell-quoted-file-command nil t eshell-explicit-command] 5 (#$ . 5888)])#@16 

(fn COMMAND)
(defalias 'eshell-explicit-command--which #[257 "\211G\301V\205 \211\302H=\205 \303\301\304O!\207" [eshell-explicit-command-char 1 0 eshell-external-command--which nil] 5 (#$ . 6140)])#@128 If a command name begins with "*", always call it externally.
This bypasses all Lisp functions and aliases.

(fn COMMAND ARGS)
(defalias 'eshell-explicit-command #[514 "G\301V\205. \302H=\205. \303\301\304O!\211\203% \305\"\206, \306\307\"\207\306\310\301\304O\"\262\207" [eshell-explicit-command-char 1 0 eshell-search-path nil eshell-external-command error "%s: external command failed" "%s: external command not found"] 8 (#$ . 6350)])
(put 'eshell-explicit-command 'eshell-which-function 'eshell-explicit-command--which)
(defalias 'eshell-quoted-file-command--which #[257 "\211\301\211?\205 \302\303\304!\")\266\202\205R \305\301\211?\205 \304!\211\211?\205* \302\303\304!\")\266\202\203I \211G\306U\203C \210\307\202I \211\306\301O\262\310!P)\266\203!\207" [file-name-handler-alist nil string-prefix-p "/:" file-local-name eshell-external-command--which 2 "/" file-remote-p] 11 (#$ . 6140)])#@207 If a command name begins with "/:", always call it externally.
Similar to `eshell-explicit-command', this bypasses all Lisp functions
and aliases, but it also ignores file name handlers.

(fn COMMAND ARGS)
(defalias 'eshell-quoted-file-command #[514 "\301\211?\205 \302\303\304!\")\266\202\205S \305\301\211?\205 \304!\211\211?\205* \302\303\304!\")\266\202\203I \211G\306U\203C \210\307\202I \211\306\301O\262\310!P)\266\203\"\207" [file-name-handler-alist nil string-prefix-p "/:" file-local-name eshell-external-command 2 "/" file-remote-p] 12 (#$ . 7278)])#@267 Insert output from a remote COMMAND, using ARGS.
A "remote" command in Eshell is something that executes on a different
machine.  If COMMAND is a remote file name, run it on the host for that
file; if COMMAND is a local file name, run it locally.

(fn COMMAND ARGS)
(put 'eshell-quoted-file-command 'eshell-which-function 'eshell-quoted-file-command--which)
(defalias 'eshell-remote-command #[514 "\301!\301!\232\203 \202 \211\206 \302\303!\301\304\305#\206! \306\")\207" [default-directory file-remote-p expand-file-name "~" localname never eshell-connection-local-command] 8 (#$ . 7863)])#@165 Insert output from an external COMMAND, using ARGS.
This always runs COMMAND using the connection associated with the
current working directory.

(fn COMMAND ARGS)
(defalias 'eshell-connection-local-command #[514 "\301!\302\303\"\266\202\304;\203 \305!\206 \305!#\211\204# \306\307!\210\310@!\2034 \311@\312A\"\"\207\313@\312A\"\"\207" [default-directory flatten-tree mapcar eshell-stringify eshell-find-interpreter file-remote-p cl--assertion-failed interp functionp apply append eshell-gather-process-output] 8 (#$ . 8473)])
(defalias 'eshell-external-command--which #[257 "\300!\206 \301\302\303\304!\305 \306\307#\266\202#\207" [eshell-search-path error "no %s in (%s)" eshell-get-path t path-separator mapconcat identity] 10 (#$ . 6140)])#@72 Insert output from an external COMMAND, using ARGS.

(fn COMMAND ARGS)
(defalias 'eshell-external-command #[514 "\203 \302!\203 \303\"\207\203# \304	\"\203# \303	G\305O\"\207\306\"\207" [eshell-explicit-remote-commands eshell--local-prefix file-remote-p eshell-remote-command string-prefix-p nil eshell-connection-local-command] 6 (#$ . 9243)])#@46 Add a set of paths to PATH.

(fn &rest ARGS)
(defalias 'eshell/addpath #[128 "\301!\302\303\"\262\304\305\306\307%\211A\262\242\310\311!\203= \203* \312\"\262\2020 \312\"\262\313!\210\211\314 \315\316#\207\211\211\205W \211@\211\211\317\"\266\320\317\"\266A\202> \207" [eshell-output-handle flatten-tree mapcar eshell-stringify eshell--do-opts "addpath" ((98 "begin" nil prepend "add to beginning of $PATH") (104 "help" nil nil "display this usage message") :usage "[-b] DIR...\nAdds the given DIR to $PATH.") (prepend) eshell-get-path t append eshell-set-path path-separator mapconcat identity eshell-output-object "\n"] 12 (#$ . 9605)])#@141 Extract the script to run from FILE, if it has #!<interp> in it.
Return nil, or a list of the form:

  (INTERPRETER [ARGS] FILE)

(fn FILE)
(byte-code "\300\301\302\303#\210\300\301\304\303#\207" [put eshell/addpath eshell-no-numeric-conversions t eshell-filename-arguments] 4)
(defalias 'eshell-script-interpreter #[257 "\301!\205M \302!\205M \303!\3048\262\305V\205M \306\307\310\"r\211q\210\311\312\"\216\313\314\305$\210\315\316!\205J \317\320!\203E \317\321!\317\320!E\202J \317\321!D*\262\207" [eshell-command-interpreter-max-length file-readable-p file-regular-p file-attributes 7 0 generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] insert-file-contents-literally nil looking-at "#![ 	]*\\([^ 	\n]+\\)\\([ 	]+\\(.+\\)\\)?" match-string 3 1] 8 (#$ . 10274)])#@194 Find the command interpreter with which to execute FILE.
If NO-EXAMINE-P is non-nil, FILE will not be inspected for a script
line of the form #!<interp>.

(fn FILE ARGS &optional NO-EXAMINE-P)
(defalias 'eshell-find-interpreter #[770 "\3042M \211\203J \211@\305@!\203( \211@\211\"\203# \306\304A\"\210\266\202F \211@;\203A \307@\"\203E \306\304A\"\266\202F \310\311!\210\210A\202 \210\3120\211\203U \211D\207\313!\203_ \202b \314!	\203\207 \315!\204\207 \315\n!\203\207 \316!\203\201 \315\n!P\202\205 \317\n\"\262\203\270 \204\270 \320!\204\270 \211\203\270 @P\320!\204\255 \203\263 \321!\203\263 \266\202\312\202\225 \210A\202\225 \203\302 \322!\204\333 \206\307 \323\324\"\211\262\204\327 \310\325\"\210\210\202\352 \204\352 \320!\204\352 \310\326\"\210\312\204\327!\262\211\203\330@\331#@AB\262\211\206C\207" [eshell-interpreter-alist eshell-binary-suffixes default-directory eshell-force-execution found functionp throw string-match error "Invalid interpreter-alist test" nil file-name-directory eshell-search-path file-remote-p file-name-absolute-p expand-file-name file-executable-p file-readable-p file-exists-p run-hook-with-args-until-success eshell-alternate-command-hook "%s: command not found" "%s: Permission denied" eshell-script-interpreter eshell-find-interpreter t] 11 (#$ . 11120)])
(provide 'esh-ext)
