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

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


(byte-code "\300\301!\210\302\301\303\304\305\306\307\310\311\312\313\314&\210\315\316!\204 \317\320\303\321#\210\303\207" [provide eshell custom-declare-group nil "Eshell is a command shell implemented entirely in Emacs Lisp.  It\ninvokes no external processes beyond those requested by the user.  It\nis intended to be a functional replacement for command shells such as\nbash, zsh, rc, 4dos; since Emacs itself is capable of handling most of\nthe tasks accomplished by such tools." :tag "The Emacs shell" :link (info-link "(eshell)The Emacs shell") :version "21.1" :group applications featurep esh-util load "esh-util" t] 12)
#@57 Add `eshell-buffer-name' to `same-window-buffer-names'.
(defalias 'eshell-add-to-window-buffer-names #[nil "\301\302\"\207" [eshell-buffer-name add-to-list same-window-buffer-names] 3 (#$ . 1252)])
(put 'eshell-add-to-window-buffer-names 'byte-optimizer 'byte-compile-inline-expand)
#@62 Remove `eshell-buffer-name' from `same-window-buffer-names'.
(defalias 'eshell-remove-from-window-buffer-names #[nil "\302	\"\211\207" [eshell-buffer-name same-window-buffer-names delete] 3 (#$ . 1542)])
(put 'eshell-remove-from-window-buffer-names 'byte-optimizer 'byte-compile-inline-expand)
#@42 *A hook run once Eshell has been loaded.
(custom-declare-variable 'eshell-load-hook 'nil '(#$ . -1844) :type 'hook :group 'eshell)
#@50 *A hook run when Eshell is unloaded from memory.
(custom-declare-variable 'eshell-unload-hook ''(eshell-remove-from-window-buffer-names eshell-unload-all-modules) '(#$ . -1981) :type 'hook :group 'eshell)
#@40 *The basename used for Eshell buffers.
(custom-declare-variable 'eshell-buffer-name '"*eshell*" '(#$ . -2192) :set (lambda (symbol value) (if (boundp 'eshell-buffer-name) (eshell-remove-from-window-buffer-names)) (set symbol value) (eshell-add-to-window-buffer-names) value) :type 'string :group 'eshell)
#@59 *The directory where Eshell control files should be kept.
(custom-declare-variable 'eshell-directory-name '(convert-standard-filename "~/.eshell/") '(#$ . -2503) :type 'directory :group 'eshell)
#@70 *If non-nil, \[shell-command] will use Eshell instead of shell-mode.
(custom-declare-variable 'eshell-prefer-to-shell 'nil '(#$ . -2704) :set (lambda (symbol value) (if value (progn (define-key global-map [(meta 33)] 'eshell-command)) (define-key global-map [(meta 33)] 'shell-command)) (set symbol value)) :type 'boolean :require 'eshell :group 'eshell)
#@375 Create an interactive Eshell buffer.
The buffer used for Eshell sessions is determined by the value of
`eshell-buffer-name'.  If there is already an Eshell session active in
that buffer, Emacs will simply switch to it.  Otherwise, a new session
will begin.  A new session is always created if the prefix argument
ARG is specified.  Returns the buffer selected (or created).
(defalias 'eshell #[(&optional arg) "\203\n \304	!\202 \305	!\306\n!\210\307\310!\204 \311\312!\210\310=\204% \310 \210\n)\207" [arg eshell-buffer-name buf major-mode generate-new-buffer get-buffer-create pop-to-buffer fboundp eshell-mode error "`eshell-auto' must be loaded before Eshell can be used"] 2 (#$ . 3066) "P"])
(defalias 'eshell-return-exits-minibuffer #[nil "\301\302\303#\210\301\304\305#\210\301\306\305#\210\301\307\305#\210\301\310\305#\210\301\311\305#\207" [eshell-mode-map define-key [(control 103)] abort-recursive-edit [return] exit-minibuffer [(control 109)] [(control 106)] [(meta return)] [(meta control 109)]] 4])
#@194 A variable which is non-nil when Eshell is not running interactively.
Modules should use this variable so that they don't clutter
non-interactive sessions, such as when using `eshell-command'.
(defvar eshell-non-interactive-p nil (#$ . 4098))
#@109 Execute the Eshell command string COMMAND.
With prefix ARG, insert output into the current buffer at point.
(defalias 'eshell-command #[(&optional command arg) "\306\307!\210\204\n 	\310\216\311\312\313\314\"\210\312\315\316\"\210\204  \317\320!*\204) \321\322!\210\2036 \323\324\325p!\"P\212\306\326!\210\327\330!q\311\314 \210\331\332\333!D!\3342\203] <\203] \335\202a \3112\3363\337\3403!!\203q \3413!\210\3423!\2102\203\227 4\203\205 \3434!\210db\210n\203\227 o\204\227 \344\345!\210\202\210 ?\205\353 2\204\245 \346\202\251 \347ed\"\2115\350U\203\273 \351\352!\210\341\f!\202\352 5\345U\203\316 \351\353\354 \"\210\341\f!\202\352 \355 6\356\216\357\360\f!!\210eb\2102\205\351 7\205\351 \361 *).\207" [arg current-prefix-arg eshell-non-interactive-p command buf proc require esh-cmd ((byte-code "\300\301\302\"\210\300\303\304\"\207" [remove-hook eshell-mode-hook eshell-return-exits-minibuffer minibuffer-setup-hook eshell-mode] 3)) t add-hook minibuffer-setup-hook eshell-mode eshell-mode-hook eshell-return-exits-minibuffer read-from-minibuffer "Emacs shell command: " error "No command specified!" format " >>> #<buffer %s>" buffer-name esh-mode generate-new-buffer " *eshell cmd*" eshell-eval-command eshell-commands eshell-parse-command nil "*EShell Async Command Output*" "*EShell Command Output*" buffer-live-p get-buffer kill-buffer rename-buffer eshell-wait-for-process delete-backward-char 1 2 count-lines 0 message "(There was no command output)" "%s" buffer-string selected-window ((byte-code "\301!\203\n \302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) select-window display-buffer resize-temp-buffer-window intr bufname eshell-last-async-proc len save-selected-window-window temp-buffer-resize-mode] 6 (#$ . 4348) nil])
#@275 Execute the given Eshell COMMAND, and return the result.
The result might be any Lisp object.
If STATUS-VAR is a symbol, it will be set to the exit status of the
command.  This is the only way to determine whether the value returned
corresponding to a successful execution.
(defalias 'eshell-command-result #[(command &optional status-var) "\204 \306	\205 	9\205 	\307L!\207\310\311\312!!\313\216r\nq\210\314\315!\210\316\317 \210\320\321\322\323!DD\316\"	\203@ 	9\203@ 	L\210\f\211A@.\207" [command status-var #1=#:temp-buffer eshell-non-interactive-p result eshell-last-command-status ignore 0 get-buffer-create generate-new-buffer-name " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) require esh-mode t eshell-mode eshell-do-eval eshell-commands eshell-command-to-value eshell-parse-command x] 6 (#$ . 6161)])
#@47 E-mail address to send Eshell bug reports to.
(defconst eshell-report-bug-address "johnw@gnu.org" (#$ . 7034))
#@143 Report a bug in Eshell.
Prompts for the TOPIC.  Leaves you in a mail buffer.
Please include any configuration details that might be involved.
(defalias 'eshell-report-bug #[(topic) "\304	\"\210eb\210\305\306\307\n!\310Q!\210\311y\210`d{\312\313!\210`d|\210c\210\314G!\210)\315\316 \261\210\317\320\321\322\261\210\323\324 \325 \244!\207" [eshell-report-bug-address topic mail-header-separator signature compose-mail re-search-forward "^" regexp-quote "$" 1 set-buffer-multibyte nil backward-char "emacs-version: " emacs-version "\n\nThere appears to be a bug in Eshell.\n\n" "Please describe exactly what actions " "triggered the bug and the precise\n" "symptoms of the bug:\n\n" use-local-map make-sparse-keymap current-local-map] 4 (#$ . 7152) "sBug Subject: "])
#@267 Unload all modules that were loaded by Eshell, if possible.
If the user has require'd in any of the modules, or customized a
variable with a :require tag (such as `eshell-prefer-to-shell'), it
will be impossible to unload Eshell completely without restarting
Emacs.
(defalias 'eshell-unload-all-modules #[nil "\302\303!\205( \303\304!\211\203$ @\305	!\203 \306\307\310\217\210)A\211\204 )\311\312!\207" [list-iter module fboundp eshell-subgroups eshell featurep #1=#:G97285 (byte-code "\301\302\303!\"\210\304!\210\301\305\303!\"\207" [module message "Unloading %s..." symbol-name unload-feature "Unloading %s...done"] 4) ((error)) message "Unloading eshell...done"] 4 (#$ . 7930)])
(run-hooks 'eshell-load-hook)
