[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#9907: 24.0.90; eshell:for command destructivly modifies list variabl
From: |
Glenn Morris |
Subject: |
bug#9907: 24.0.90; eshell:for command destructivly modifies list variables |
Date: |
Thu, 17 Nov 2011 21:05:46 -0500 |
User-agent: |
Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) |
>> Sorry 'bout that. Should be fixed now, but please confirm.
> It is working fine now, thanks.
It was pointed out on emacs-devel that eshell pipes no longer work
(it's because I just closed this bug...):
emacs -Q -f eshell
ls | grep foo
-> Wrong type argument: symbolp, (quote nil)
and a stale grep process in M-x list-processes
Debugger entered--Lisp error: (wrong-type-argument symbolp (quote nil))
(setq (quote nil) (quote #<process grep>))
eval((setq (quote nil) (quote #<process grep>)))
(setq result (eval form))
(ignore (setq result (eval form)))
(catch (quote eshell-replace-command) (ignore (setq result (eval form))))
(setq new-form (catch (quote eshell-replace-command) (ignore (setq result
(eval form)))))
(if (setq new-form (catch (quote eshell-replace-command) (ignore (setq result
(eval form))))) (progn (eshell-manipulate "substituting replacement form"
(setcar form (car new-form)) (setcdr form (cdr new-form))) (eshell-do-eval form
synchronous-p)) (if (and (memq (car form) eshell-deferrable-commands) (not
eshell-current-subjob-p) result (eshell-processp result)) (if synchronous-p
(eshell/wait result) (eshell-manipulate "inserting ignore form" (setcar form
(quote ignore)) (setcdr form nil)) (throw (quote eshell-defer) result)) (list
(quote quote) result)))
(let (result new-form) (if (setq new-form (catch (quote
eshell-replace-command) (ignore (setq result (eval form))))) (progn
(eshell-manipulate "substituting replacement form" (setcar form (car new-form))
(setcdr form (cdr new-form))) (eshell-do-eval form synchronous-p)) (if (and
(memq (car form) eshell-deferrable-commands) (not eshell-current-subjob-p)
result (eshell-processp result)) (if synchronous-p (eshell/wait result)
(eshell-manipulate "inserting ignore form" (setcar form (quote ignore)) (setcdr
form nil)) (throw (quote eshell-defer) result)) (list (quote quote) result))))
(cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form)
(quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form (catch
(quote eshell-replace-command) (ignore (setq result ...)))) (progn
(eshell-manipulate "substituting replacement form" (setcar form (car new-form))
(setcdr form (cdr new-form))) (eshell-do-eval form synchronous-p)) (if (and
(memq (car form) eshell-deferrable-commands) (not eshell-current-subjob-p)
result (eshell-processp result)) (if synchronous-p (eshell/wait result)
(eshell-manipulate "inserting ignore form" (setcar form ...) (setcdr form nil))
(throw (quote eshell-defer) result)) (list (quote quote) result))))))
(cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert
(not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car
eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args))))
(while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree
(cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args)))))
(eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote
setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr
args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch
condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq
(car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let
args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr
letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq
args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval
(quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq
(car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating
arguments to `%s'" (symbol-name (car form))) (while args (setcar args
(eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq
(car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1))
(cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...))
(progn (eshell-manipulate "substituting replacement form" ... ...)
(eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if
synchronous-p ... ... ...) (list ... result))))))))
(let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car
eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
(car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr
args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car
eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar
eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote
setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if
(and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval))))
(eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and
... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect))
(setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ...
...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args
(cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq
(car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq
new-form ...) (progn ... ...) (if ... ... ...))))))))
(cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form)
(quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval))
(setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp
(eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding
macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr
exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when
(car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ...
... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...)))
(setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car
eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body
(eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body)
synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil))
((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args)
synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form)
(quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not
...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq
(car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar
args) (quote eshell-do-eval)) (eshell-manipulate "handling special form"
(setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate
(format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq
... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
eshell-do-eval((setq (quote nil) (quote #<process grep>)) nil)
(let (nextproc) (eshell-do-eval (quote (setq (quote nil) (quote #<process
grep>))) nil) (eshell-set-output-handle 1 (quote append) nextproc)
(eshell-set-output-handle 2 (quote append) nextproc) (setq tailproc (or
tailproc nextproc)))
eval((let (nextproc) (eshell-do-eval (quote (setq (quote nil) (quote
#<process grep>))) nil) (eshell-set-output-handle 1 (quote append) nextproc)
(eshell-set-output-handle 2 (quote append) nextproc) (setq tailproc (or
tailproc nextproc))))
(cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert
(not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car
eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args))))
(while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree
(cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args)))))
(eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote
setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr
args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch
condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq
(car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let
args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr
letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq
args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval
(quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq
(car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating
arguments to `%s'" (symbol-name (car form))) (while args (setcar args
(eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq
(car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1))
(cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...))
(progn (eshell-manipulate "substituting replacement form" ... ...)
(eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if
synchronous-p ... ... ...) (list ... result))))))))
(let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car
eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
(car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr
args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car
eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar
eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote
setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if
(and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval))))
(eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and
... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect))
(setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ...
...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args
(cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq
(car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq
new-form ...) (progn ... ...) (if ... ... ...))))))))
(cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form)
(quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval))
(setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp
(eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding
macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr
exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when
(car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ...
... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...)))
(setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car
eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body
(eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body)
synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil))
((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args)
synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form)
(quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not
...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq
(car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar
args) (quote eshell-do-eval)) (eshell-manipulate "handling special form"
(setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate
(format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq
... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
eshell-do-eval((let (nextproc) (eshell-do-eval (quote (setq (quote nil)
(quote #<process grep>))) nil) (eshell-set-output-handle 1 (quote append)
nextproc) (eshell-set-output-handle 2 (quote append) nextproc) (setq tailproc
(or tailproc nextproc))) nil)
(setcar args (eshell-do-eval (car args) synchronous-p))
(while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq
args (cdr args)))
(progn (while args (setcar args (eshell-do-eval (car args) synchronous-p))
(setq args (cdr args))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p))
(setq args (cdr args))))
(if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate
(format "evaluating arguments to `%s'" (symbol-name (car form))) (while args
(setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr
args)))))
(cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert
(not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car
eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args))))
(while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree
(cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args)))))
(eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote
setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr
args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch
condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq
(car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let
args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr
letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq
args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval
(quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq
(car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating
arguments to `%s'" (symbol-name (car form))) (while args (setcar args
(eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq
(car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1))
(cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...))
(progn (eshell-manipulate "substituting replacement form" ... ...)
(eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if
synchronous-p ... ... ...) (list ... result))))))))
(let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car
eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
(car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr
args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car
eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar
eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote
setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if
(and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval))))
(eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and
... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect))
(setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ...
...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args
(cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq
(car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq
new-form ...) (progn ... ...) (if ... ... ...))))))))
(cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form)
(quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval))
(setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp
(eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding
macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr
exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when
(car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ...
... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...)))
(setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car
eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body
(eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body)
synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil))
((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args)
synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form)
(quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not
...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq
(car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar
args) (quote eshell-do-eval)) (eshell-manipulate "handling special form"
(setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate
(format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq
... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
eshell-do-eval((progn (let (nextproc) (eshell-do-eval (quote (setq (quote
nil) (quote #<process grep>))) nil) (eshell-set-output-handle 1 (quote append)
nextproc) (eshell-set-output-handle 2 (quote append) nextproc) (setq tailproc
(or tailproc nextproc))) nil (let ((eshell-in-pipeline-p (quote first)))
(eshell-named-command* "ls"))) nil)
(let ((eshell-current-handles (quote [nil (t . 1) (t . 1)]))) (eshell-do-eval
(quote (progn (let (nextproc) (eshell-do-eval (quote (setq ... ...)) nil)
(eshell-set-output-handle 1 (quote append) nextproc) (eshell-set-output-handle
2 (quote append) nextproc) (setq tailproc (or tailproc nextproc))) nil (let
((eshell-in-pipeline-p (quote first))) (eshell-named-command* "ls")))) nil))
eval((let ((eshell-current-handles (quote [nil (t . 1) (t . 1)])))
(eshell-do-eval (quote (progn (let (nextproc) (eshell-do-eval (quote (setq ...
...)) nil) (eshell-set-output-handle 1 (quote append) nextproc)
(eshell-set-output-handle 2 (quote append) nextproc) (setq tailproc (or
tailproc nextproc))) nil (let ((eshell-in-pipeline-p (quote first)))
(eshell-named-command* "ls")))) nil)))
(cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert
(not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car
eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args))))
(while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree
(cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args)))))
(eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote
setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr
args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch
condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq
(car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let
args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr
letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq
args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval
(quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq
(car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating
arguments to `%s'" (symbol-name (car form))) (while args (setcar args
(eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq
(car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1))
(cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...))
(progn (eshell-manipulate "substituting replacement form" ... ...)
(eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if
synchronous-p ... ... ...) (list ... result))))))))
(let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car
eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
(car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr
args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car
eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar
eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote
setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if
(and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval))))
(eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and
... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect))
(setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ...
...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args
(cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq
(car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq
new-form ...) (progn ... ...) (if ... ... ...))))))))
(cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form)
(quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval))
(setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp
(eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding
macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr
exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when
(car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ...
... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...)))
(setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car
eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body
(eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body)
synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil))
((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args)
synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form)
(quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not
...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq
(car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar
args) (quote eshell-do-eval)) (eshell-manipulate "handling special form"
(setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate
(format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq
... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
eshell-do-eval((let ((eshell-current-handles (quote [nil (t . 1) (t . 1)])))
(eshell-do-eval (quote (progn (let (nextproc) (eshell-do-eval (quote (setq ...
...)) nil) (eshell-set-output-handle 1 (quote append) nextproc)
(eshell-set-output-handle 2 (quote append) nextproc) (setq tailproc (or
tailproc nextproc))) nil (let ((eshell-in-pipeline-p (quote first)))
(eshell-named-command* "ls")))) nil)) nil)
(setcar args (eshell-do-eval (car args) synchronous-p))
(while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq
args (cdr args)))
(progn (while args (setcar args (eshell-do-eval (car args) synchronous-p))
(setq args (cdr args))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p))
(setq args (cdr args))))
(if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate
(format "evaluating arguments to `%s'" (symbol-name (car form))) (while args
(setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr
args)))))
(cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert
(not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car
eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args))))
(while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree
(cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args)))))
(eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote
setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr
args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch
condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq
(car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let
args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr
letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq
args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval
(quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq
(car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating
arguments to `%s'" (symbol-name (car form))) (while args (setcar args
(eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq
(car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1))
(cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...))
(progn (eshell-manipulate "substituting replacement form" ... ...)
(eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if
synchronous-p ... ... ...) (list ... result))))))))
(let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car
eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
(car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr
args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car
eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar
eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote
setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if
(and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval))))
(eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and
... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect))
(setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ...
...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args
(cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq
(car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq
new-form ...) (progn ... ...) (if ... ... ...))))))))
(cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form)
(quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval))
(setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp
(eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding
macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr
exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when
(car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ...
... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...)))
(setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car
eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body
(eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body)
synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil))
((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args)
synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form)
(quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not
...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq
(car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar
args) (quote eshell-do-eval)) (eshell-manipulate "handling special form"
(setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate
(format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq
... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
eshell-do-eval((progn (let ((eshell-current-handles (quote [nil (t . 1) (t .
1)]))) (eshell-do-eval (quote (progn (let (nextproc) (eshell-do-eval (quote
...) nil) (eshell-set-output-handle 1 (quote append) nextproc)
(eshell-set-output-handle 2 (quote append) nextproc) (setq tailproc (or
tailproc nextproc))) nil (let ((eshell-in-pipeline-p ...))
(eshell-named-command* "ls")))) nil)) (eshell-process-identity tailproc)) nil)
(let ((eshell-in-pipeline-p (quote t)) tailproc) (eshell-do-eval (quote
(progn (let ((eshell-current-handles (quote [nil ... ...]))) (eshell-do-eval
(quote (progn ... nil ...)) nil)) (eshell-process-identity tailproc))) nil))
eval((let ((eshell-in-pipeline-p (quote t)) tailproc) (eshell-do-eval (quote
(progn (let ((eshell-current-handles (quote [nil ... ...]))) (eshell-do-eval
(quote (progn ... nil ...)) nil)) (eshell-process-identity tailproc))) nil)))
(cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert
(not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car
eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args))))
(while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree
(cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args)))))
(eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote
setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr
args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch
condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq
(car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let
args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr
letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq
args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval
(quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq
(car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating
arguments to `%s'" (symbol-name (car form))) (while args (setcar args
(eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq
(car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1))
(cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...))
(progn (eshell-manipulate "substituting replacement form" ... ...)
(eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if
synchronous-p ... ... ...) (list ... result))))))))
(let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car
eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
(car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr
args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car
eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar
eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote
setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if
(and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval))))
(eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and
... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect))
(setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ...
...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args
(cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq
(car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq
new-form ...) (progn ... ...) (if ... ... ...))))))))
(cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form)
(quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval))
(setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp
(eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding
macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr
exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when
(car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ...
... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...)))
(setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car
eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body
(eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body)
synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil))
((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args)
synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form)
(quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not
...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq
(car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar
args) (quote eshell-do-eval)) (eshell-manipulate "handling special form"
(setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate
(format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq
... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
eshell-do-eval((let ((eshell-in-pipeline-p (quote t)) tailproc)
(eshell-do-eval (quote (progn (let ((eshell-current-handles (quote [nil ...
...]))) (eshell-do-eval (quote (progn ... nil ...)) nil))
(eshell-process-identity tailproc))) nil)) nil)
(setcar args (eshell-do-eval (car args) synchronous-p))
(while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq
args (cdr args)))
(progn (while args (setcar args (eshell-do-eval (car args) synchronous-p))
(setq args (cdr args))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p))
(setq args (cdr args))))
(if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate
(format "evaluating arguments to `%s'" (symbol-name (car form))) (while args
(setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr
args)))))
(cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert
(not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car
eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args))))
(while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree
(cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args)))))
(eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote
setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr
args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch
condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq
(car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let
args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr
letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq
args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval
(quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq
(car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating
arguments to `%s'" (symbol-name (car form))) (while args (setcar args
(eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq
(car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1))
(cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...))
(progn (eshell-manipulate "substituting replacement form" ... ...)
(eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if
synchronous-p ... ... ...) (list ... result))))))))
(let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car
eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
(car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr
args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car
eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar
eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote
setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if
(and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval))))
(eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and
... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect))
(setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ...
...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args
(cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq
(car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq
new-form ...) (progn ... ...) (if ... ... ...))))))))
(cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form)
(quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval))
(setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp
(eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding
macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr
exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when
(car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ...
... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...)))
(setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car
eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body
(eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body)
synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil))
((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args)
synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form)
(quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not
...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq
(car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar
args) (quote eshell-do-eval)) (eshell-manipulate "handling special form"
(setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate
(format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq
... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
eshell-do-eval((prog1 (let ((eshell-in-pipeline-p (quote t)) tailproc)
(eshell-do-eval (quote (progn (let ((eshell-current-handles ...))
(eshell-do-eval (quote ...) nil)) (eshell-process-identity tailproc))) nil))
(run-hooks (quote eshell-this-command-hook))) nil)
(condition-case err (eshell-do-eval (quote (prog1 (let ((eshell-in-pipeline-p
(quote t)) tailproc) (eshell-do-eval (quote (progn ... ...)) nil)) (run-hooks
(quote eshell-this-command-hook)))) nil) (error (run-hooks (quote
eshell-this-command-hook)) (eshell-errorn (error-message-string err))
(eshell-close-handles 1)))
eval((condition-case err (eshell-do-eval (quote (prog1 (let
((eshell-in-pipeline-p (quote t)) tailproc) (eshell-do-eval (quote (progn ...
...)) nil)) (run-hooks (quote eshell-this-command-hook)))) nil) (error
(run-hooks (quote eshell-this-command-hook)) (eshell-errorn
(error-message-string err)) (eshell-close-handles 1))))
(cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert
(not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car
eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args))))
(while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree
(cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args)))))
(eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote
setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr
args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch
condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq
(car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let
args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr
letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq
args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval
(quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq
(car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating
arguments to `%s'" (symbol-name (car form))) (while args (setcar args
(eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq
(car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1))
(cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...))
(progn (eshell-manipulate "substituting replacement form" ... ...)
(eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if
synchronous-p ... ... ...) (list ... result))))))))
(let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car
eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
(car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr
args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car
eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar
eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote
setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if
(and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval))))
(eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and
... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect))
(setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ...
...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args
(cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq
(car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq
new-form ...) (progn ... ...) (if ... ... ...))))))))
(cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form)
(quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval))
(setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp
(eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding
macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr
exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when
(car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ...
... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...)))
(setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car
eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body
(eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body)
synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil))
((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args)
synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form)
(quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not
...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq
(car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar
args) (quote eshell-do-eval)) (eshell-manipulate "handling special form"
(setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate
(format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq
... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
eshell-do-eval((condition-case err (eshell-do-eval (quote (prog1 (let
((eshell-in-pipeline-p (quote t)) tailproc) (eshell-do-eval (quote (progn ...
...)) nil)) (run-hooks (quote eshell-this-command-hook)))) nil) (error
(run-hooks (quote eshell-this-command-hook)) (eshell-errorn
(error-message-string err)) (eshell-close-handles 1))) nil)
(let ((eshell-this-command-hook (quote (ignore)))) (eshell-do-eval (quote
(condition-case err (eshell-do-eval (quote (prog1 (let ... ...) (run-hooks
...))) nil) (error (run-hooks (quote eshell-this-command-hook)) (eshell-errorn
(error-message-string err)) (eshell-close-handles 1)))) nil))
eval((let ((eshell-this-command-hook (quote (ignore)))) (eshell-do-eval
(quote (condition-case err (eshell-do-eval (quote (prog1 (let ... ...)
(run-hooks ...))) nil) (error (run-hooks (quote eshell-this-command-hook))
(eshell-errorn (error-message-string err)) (eshell-close-handles 1)))) nil)))
(cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert
(not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car
eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args))))
(while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree
(cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args)))))
(eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote
setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr
args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch
condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq
(car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let
args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr
letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq
args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval
(quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq
(car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating
arguments to `%s'" (symbol-name (car form))) (while args (setcar args
(eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq
(car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1))
(cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...))
(progn (eshell-manipulate "substituting replacement form" ... ...)
(eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if
synchronous-p ... ... ...) (list ... result))))))))
(let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car
eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
(car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr
args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car
eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar
eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote
setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if
(and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval))))
(eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and
... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect))
(setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ...
...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args
(cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq
(car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq
new-form ...) (progn ... ...) (if ... ... ...))))))))
(cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form)
(quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval))
(setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp
(eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding
macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr
exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when
(car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ...
... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...)))
(setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car
eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body
(eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body)
synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil))
((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args)
synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form)
(quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not
...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq
(car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar
args) (quote eshell-do-eval)) (eshell-manipulate "handling special form"
(setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate
(format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq
... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
eshell-do-eval((let ((eshell-this-command-hook (quote (ignore))))
(eshell-do-eval (quote (condition-case err (eshell-do-eval (quote (prog1 (let
... ...) (run-hooks ...))) nil) (error (run-hooks (quote
eshell-this-command-hook)) (eshell-errorn (error-message-string err))
(eshell-close-handles 1)))) nil)) nil)
(setcar args (eshell-do-eval (car args) synchronous-p))
(while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq
args (cdr args)))
(progn (while args (setcar args (eshell-do-eval (car args) synchronous-p))
(setq args (cdr args))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p))
(setq args (cdr args))))
(if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate
(format "evaluating arguments to `%s'" (symbol-name (car form))) (while args
(setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr
args)))))
(cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert
(not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car
eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args))))
(while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree
(cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args)))))
(eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote
setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr
args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch
condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq
(car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let
args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr
letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq
args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval
(quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq
(car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating
arguments to `%s'" (symbol-name (car form))) (while args (setcar args
(eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq
(car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1))
(cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...))
(progn (eshell-manipulate "substituting replacement form" ... ...)
(eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if
synchronous-p ... ... ...) (list ... result))))))))
(let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car
eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
(car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr
args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car
eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar
eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote
setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if
(and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval))))
(eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and
... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect))
(setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ...
...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args
(cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq
(car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq
new-form ...) (progn ... ...) (if ... ... ...))))))))
(cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form)
(quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval))
(setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp
(eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding
macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr
exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when
(car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ...
... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...)))
(setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car
eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body
(eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body)
synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil))
((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args)
synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form)
(quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not
...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq
(car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar
args) (quote eshell-do-eval)) (eshell-manipulate "handling special form"
(setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate
(format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq
... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
eshell-do-eval((progn (let ((eshell-this-command-hook (quote (ignore))))
(eshell-do-eval (quote (condition-case err (eshell-do-eval (quote (prog1 ...
...)) nil) (error (run-hooks (quote eshell-this-command-hook)) (eshell-errorn
(error-message-string err)) (eshell-close-handles 1)))) nil))) nil)
(catch (quote top-level) (eshell-do-eval (quote (progn (let
((eshell-this-command-hook (quote ...))) (eshell-do-eval (quote (condition-case
err ... ...)) nil)))) nil))
eval((catch (quote top-level) (eshell-do-eval (quote (progn (let
((eshell-this-command-hook (quote ...))) (eshell-do-eval (quote (condition-case
err ... ...)) nil)))) nil)))
(cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert
(not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car
eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args))))
(while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree
(cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args)))))
(eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote
setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr
args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch
condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq
(car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let
args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr
letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq
args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval
(quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq
(car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating
arguments to `%s'" (symbol-name (car form))) (while args (setcar args
(eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq
(car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1))
(cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...))
(progn (eshell-manipulate "substituting replacement form" ... ...)
(eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if
synchronous-p ... ... ...) (list ... result))))))))
(let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car
eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
(car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr
args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car
eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar
eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote
setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if
(and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval))))
(eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and
... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect))
(setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ...
...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args
(cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq
(car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq
new-form ...) (progn ... ...) (if ... ... ...))))))))
(cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form)
(quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval))
(setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp
(eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding
macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr
exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when
(car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ...
... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...)))
(setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car
eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body
(eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body)
synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil))
((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args)
synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form)
(quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not
...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq
(car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar
args) (quote eshell-do-eval)) (eshell-manipulate "handling special form"
(setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate
(format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq
... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
eshell-do-eval((catch (quote top-level) (eshell-do-eval (quote (progn (let
((eshell-this-command-hook (quote ...))) (eshell-do-eval (quote (condition-case
err ... ...)) nil)))) nil)) nil)
(setcar args (eshell-do-eval (car args) synchronous-p))
(while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq
args (cdr args)))
(progn (while args (setcar args (eshell-do-eval (car args) synchronous-p))
(setq args (cdr args))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p))
(setq args (cdr args))))
(if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate
(format "evaluating arguments to `%s'" (symbol-name (car form))) (while args
(setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr
args)))))
(cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert
(not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car
eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args))))
(while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree
(cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args)))))
(eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote
setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr
args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch
condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq
(car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let
args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr
letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq
args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval
(quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq
(car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating
arguments to `%s'" (symbol-name (car form))) (while args (setcar args
(eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq
(car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1))
(cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...))
(progn (eshell-manipulate "substituting replacement form" ... ...)
(eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if
synchronous-p ... ... ...) (list ... result))))))))
(let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car
eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
(car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr
args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car
eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar
eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote
setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if
(and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval))))
(eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and
... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect))
(setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ...
...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args
(cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq
(car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq
new-form ...) (progn ... ...) (if ... ... ...))))))))
(cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form)
(quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval))
(setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp
(eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding
macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr
exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when
(car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ...
... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...)))
(setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car
eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body
(eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body)
synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil))
((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args)
synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form)
(quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not
...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq
(car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar
args) (quote eshell-do-eval)) (eshell-manipulate "handling special form"
(setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate
(format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq
... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
eshell-do-eval((progn (quote nil) (catch (quote top-level) (eshell-do-eval
(quote (progn (let ((eshell-this-command-hook ...)) (eshell-do-eval (quote ...)
nil)))) nil)) (run-hooks (quote eshell-post-command-hook))) nil)
(let ((eshell-current-handles (quote [nil (t . 1) (t . 1)]))
eshell-current-subjob-p) (eshell-do-eval (quote (progn (quote nil) (catch
(quote top-level) (eshell-do-eval (quote (progn ...)) nil)) (run-hooks (quote
eshell-post-command-hook)))) nil))
eval((let ((eshell-current-handles (quote [nil (t . 1) (t . 1)]))
eshell-current-subjob-p) (eshell-do-eval (quote (progn (quote nil) (catch
(quote top-level) (eshell-do-eval (quote (progn ...)) nil)) (run-hooks (quote
eshell-post-command-hook)))) nil)))
(cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert
(not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car
eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args))))
(while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree
(cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args)))))
(eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar
eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote
setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr
args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch
condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq
(car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let
args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr
letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq
args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval
(quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq
(car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating
arguments to `%s'" (symbol-name (car form))) (while args (setcar args
(eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq
(car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1))
(cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...))
(progn (eshell-manipulate "substituting replacement form" ... ...)
(eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if
synchronous-p ... ... ...) (list ... result))))))))
(let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car
eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
(car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar
eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr
args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car
args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body
(eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree
(if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car
eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar
eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote
setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval
form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if
(and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval))))
(eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and
... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect))
(setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval))
(eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ...
...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...))))
(eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car
form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args
(cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq
(car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq
new-form ...) (progn ... ...) (if ... ... ...))))))))
(cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form)
(quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval))
(setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp
(eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding
macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr
exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when
(car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car
eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body
nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree
...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ...
... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar
eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...)))
(setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car
eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car
eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body
(eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body)
synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil))
((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args)
synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args)
(eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form)
(quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not
...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq
(car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar
args) (quote eshell-do-eval)) (eshell-manipulate "handling special form"
(setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate
(format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq
... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
eshell-do-eval((let ((eshell-current-handles (quote [nil (t . 1) (t . 1)]))
eshell-current-subjob-p) (eshell-do-eval (quote (progn (quote nil) (catch
(quote top-level) (eshell-do-eval (quote (progn ...)) nil)) (run-hooks (quote
eshell-post-command-hook)))) nil)))
(setq retval (eshell-do-eval eshell-current-command))
(ignore (setq retval (eshell-do-eval eshell-current-command)))
(catch (quote eshell-defer) (ignore (setq retval (eshell-do-eval
eshell-current-command))))
(let* (retval (proc (catch (quote eshell-defer) (ignore (setq retval
(eshell-do-eval eshell-current-command)))))) (if (eshell-processp proc) (ignore
(setq eshell-last-async-proc proc)) (cadr retval)))
(progn (let* (retval (proc (catch (quote eshell-defer) (ignore (setq retval
(eshell-do-eval eshell-current-command)))))) (if (eshell-processp proc) (ignore
(setq eshell-last-async-proc proc)) (cadr retval))))
(if eshell-current-command (progn (let* (retval (proc (catch (quote
eshell-defer) (ignore (setq retval ...))))) (if (eshell-processp proc) (ignore
(setq eshell-last-async-proc proc)) (cadr retval)))))
(when eshell-current-command (let* (retval (proc (catch (quote eshell-defer)
(ignore (setq retval (eshell-do-eval eshell-current-command)))))) (if
(eshell-processp proc) (ignore (setq eshell-last-async-proc proc)) (cadr
retval))))
(progn (setq eshell-last-async-proc nil) (when eshell-current-command (let*
(retval (proc (catch (quote eshell-defer) (ignore (setq retval ...))))) (if
(eshell-processp proc) (ignore (setq eshell-last-async-proc proc)) (cadr
retval)))))
(condition-case err (progn (setq eshell-last-async-proc nil) (when
eshell-current-command (let* (retval (proc (catch (quote eshell-defer) (ignore
...)))) (if (eshell-processp proc) (ignore (setq eshell-last-async-proc proc))
(cadr retval))))) (error (error (error-message-string err))))
(eshell-condition-case err (progn (setq eshell-last-async-proc nil) (when
eshell-current-command (let* (retval (proc (catch (quote eshell-defer) (ignore
...)))) (if (eshell-processp proc) (ignore (setq eshell-last-async-proc proc))
(cadr retval))))) (error (error (error-message-string err))))
eshell-resume-eval()
(catch (quote eshell-incomplete) (eshell-resume-eval))
(let ((delim (catch (quote eshell-incomplete) (eshell-resume-eval)))) (if
(listp delim) (setq delim (car delim))) (if (and delim (not (eq delim t)))
(error "Unmatched delimiter: %c" delim)))
(if eshell-current-command (setcdr (last (cdr eshell-current-command)) (list
(\` (let ((here (and ... ...))) (\, (and input (\` ...))) (if here
(eshell-update-markers here)) (eshell-do-eval (quote (\, command))))))) (and
eshell-debug-command (with-current-buffer (get-buffer-create "*eshell last
cmd*") (erase-buffer) (insert "command: \"" input "\"\n"))) (setq
eshell-current-command command) (let ((delim (catch (quote eshell-incomplete)
(eshell-resume-eval)))) (if (listp delim) (setq delim (car delim))) (if (and
delim (not (eq delim t))) (error "Unmatched delimiter: %c" delim))))
eshell-eval-command((let ((eshell-current-handles (quote [nil (t . 1) (t .
1)])) eshell-current-subjob-p) (eshell-do-eval (quote (progn (quote nil) (catch
(quote top-level) (eshell-do-eval (quote (progn ...)) nil)) (run-hooks (quote
eshell-post-command-hook)))) nil)) "ls | grep foo")
(if (eshell-invoke-directly cmd input) (eval cmd) (eshell-eval-command cmd
input))
(ignore (if (eshell-invoke-directly cmd input) (eval cmd)
(eshell-eval-command cmd input)))
(catch (quote eshell-terminal) (ignore (if (eshell-invoke-directly cmd input)
(eval cmd) (eshell-eval-command cmd input))))
(and (catch (quote eshell-terminal) (ignore (if (eshell-invoke-directly cmd
input) (eval cmd) (eshell-eval-command cmd input)))) (eshell-life-is-too-much))
(progn (eshell-update-markers eshell-last-output-end) (setq input
(buffer-substring-no-properties eshell-last-input-start (1-
eshell-last-input-end))) (run-hooks (quote eshell-input-filter-functions)) (and
(catch (quote eshell-terminal) (ignore (if (eshell-invoke-directly cmd input)
(eval cmd) (eshell-eval-command cmd input)))) (eshell-life-is-too-much)))
(if cmd (progn (eshell-update-markers eshell-last-output-end) (setq input
(buffer-substring-no-properties eshell-last-input-start (1-
eshell-last-input-end))) (run-hooks (quote eshell-input-filter-functions)) (and
(catch (quote eshell-terminal) (ignore (if (eshell-invoke-directly cmd input)
(eval cmd) (eshell-eval-command cmd input)))) (eshell-life-is-too-much))))
(when cmd (eshell-update-markers eshell-last-output-end) (setq input
(buffer-substring-no-properties eshell-last-input-start (1-
eshell-last-input-end))) (run-hooks (quote eshell-input-filter-functions)) (and
(catch (quote eshell-terminal) (ignore (if (eshell-invoke-directly cmd input)
(eval cmd) (eshell-eval-command cmd input)))) (eshell-life-is-too-much)))
(let ((cmd (eshell-parse-command-input eshell-last-output-end (1- (point)))))
(when cmd (eshell-update-markers eshell-last-output-end) (setq input
(buffer-substring-no-properties eshell-last-input-start (1-
eshell-last-input-end))) (run-hooks (quote eshell-input-filter-functions)) (and
(catch (quote eshell-terminal) (ignore (if (eshell-invoke-directly cmd input)
(eval cmd) (eshell-eval-command cmd input)))) (eshell-life-is-too-much))))
(progn (setq input (buffer-substring-no-properties eshell-last-output-end (1-
(point)))) (run-hook-with-args (quote eshell-expand-input-functions)
eshell-last-output-end (1- (point))) (let ((cmd (eshell-parse-command-input
eshell-last-output-end (1- (point))))) (when cmd (eshell-update-markers
eshell-last-output-end) (setq input (buffer-substring-no-properties
eshell-last-input-start (1- eshell-last-input-end))) (run-hooks (quote
eshell-input-filter-functions)) (and (catch (quote eshell-terminal) (ignore (if
(eshell-invoke-directly cmd input) (eval cmd) (eshell-eval-command cmd
input)))) (eshell-life-is-too-much)))))
(condition-case err (progn (setq input (buffer-substring-no-properties
eshell-last-output-end (1- (point)))) (run-hook-with-args (quote
eshell-expand-input-functions) eshell-last-output-end (1- (point))) (let ((cmd
(eshell-parse-command-input eshell-last-output-end (1- (point))))) (when cmd
(eshell-update-markers eshell-last-output-end) (setq input
(buffer-substring-no-properties eshell-last-input-start (1-
eshell-last-input-end))) (run-hooks (quote eshell-input-filter-functions)) (and
(catch (quote eshell-terminal) (ignore (if ... ... ...)))
(eshell-life-is-too-much))))) (quit (eshell-reset t) (run-hooks (quote
eshell-post-command-hook)) (signal (quote quit) nil)) (error (eshell-reset t)
(eshell-interactive-print (concat (error-message-string err) "\n")) (run-hooks
(quote eshell-post-command-hook)) (insert-and-inherit input)))
(eshell-condition-case err (progn (setq input (buffer-substring-no-properties
eshell-last-output-end (1- (point)))) (run-hook-with-args (quote
eshell-expand-input-functions) eshell-last-output-end (1- (point))) (let ((cmd
(eshell-parse-command-input eshell-last-output-end (1- (point))))) (when cmd
(eshell-update-markers eshell-last-output-end) (setq input
(buffer-substring-no-properties eshell-last-input-start (1-
eshell-last-input-end))) (run-hooks (quote eshell-input-filter-functions)) (and
(catch (quote eshell-terminal) (ignore (if ... ... ...)))
(eshell-life-is-too-much))))) (quit (eshell-reset t) (run-hooks (quote
eshell-post-command-hook)) (signal (quote quit) nil)) (error (eshell-reset t)
(eshell-interactive-print (concat (error-message-string err) "\n")) (run-hooks
(quote eshell-post-command-hook)) (insert-and-inherit input)))
(let (input) (eshell-condition-case err (progn (setq input
(buffer-substring-no-properties eshell-last-output-end (1- (point))))
(run-hook-with-args (quote eshell-expand-input-functions)
eshell-last-output-end (1- (point))) (let ((cmd (eshell-parse-command-input
eshell-last-output-end (1- ...)))) (when cmd (eshell-update-markers
eshell-last-output-end) (setq input (buffer-substring-no-properties
eshell-last-input-start (1- eshell-last-input-end))) (run-hooks (quote
eshell-input-filter-functions)) (and (catch (quote eshell-terminal) (ignore
...)) (eshell-life-is-too-much))))) (quit (eshell-reset t) (run-hooks (quote
eshell-post-command-hook)) (signal (quote quit) nil)) (error (eshell-reset t)
(eshell-interactive-print (concat (error-message-string err) "\n")) (run-hooks
(quote eshell-post-command-hook)) (insert-and-inherit input))))
(if (= eshell-last-output-end (point)) (run-hooks (quote
eshell-post-command-hook)) (let (input) (eshell-condition-case err (progn (setq
input (buffer-substring-no-properties eshell-last-output-end (1- (point))))
(run-hook-with-args (quote eshell-expand-input-functions)
eshell-last-output-end (1- (point))) (let ((cmd (eshell-parse-command-input
eshell-last-output-end ...))) (when cmd (eshell-update-markers
eshell-last-output-end) (setq input (buffer-substring-no-properties
eshell-last-input-start ...)) (run-hooks (quote eshell-input-filter-functions))
(and (catch ... ...) (eshell-life-is-too-much))))) (quit (eshell-reset t)
(run-hooks (quote eshell-post-command-hook)) (signal (quote quit) nil)) (error
(eshell-reset t) (eshell-interactive-print (concat (error-message-string err)
"\n")) (run-hooks (quote eshell-post-command-hook)) (insert-and-inherit
input)))))
(if proc-running-p (progn (eshell-update-markers eshell-last-output-end) (if
(or eshell-send-direct-to-subprocesses (= eshell-last-input-start
eshell-last-input-end)) (unless no-newline (process-send-string
(eshell-interactive-process) "\n")) (process-send-region
(eshell-interactive-process) eshell-last-input-start eshell-last-input-end)))
(if (= eshell-last-output-end (point)) (run-hooks (quote
eshell-post-command-hook)) (let (input) (eshell-condition-case err (progn (setq
input (buffer-substring-no-properties eshell-last-output-end (1- ...)))
(run-hook-with-args (quote eshell-expand-input-functions)
eshell-last-output-end (1- (point))) (let ((cmd ...)) (when cmd
(eshell-update-markers eshell-last-output-end) (setq input ...) (run-hooks ...)
(and ... ...)))) (quit (eshell-reset t) (run-hooks (quote
eshell-post-command-hook)) (signal (quote quit) nil)) (error (eshell-reset t)
(eshell-interactive-print (concat (error-message-string err) "\n")) (run-hooks
(quote eshell-post-command-hook)) (insert-and-inherit input))))))
(if (and proc-running-p (not (eq (process-status
(eshell-interactive-process)) (quote run)))) nil (if (or proc-running-p (>=
(point) eshell-last-output-end)) (goto-char (point-max)) (let ((copy
(eshell-get-old-input use-region))) (goto-char eshell-last-output-end)
(insert-and-inherit copy))) (unless (or no-newline (and
eshell-send-direct-to-subprocesses proc-running-p))
(insert-before-markers-and-inherit 10)) (if proc-running-p (progn
(eshell-update-markers eshell-last-output-end) (if (or
eshell-send-direct-to-subprocesses (= eshell-last-input-start
eshell-last-input-end)) (unless no-newline (process-send-string
(eshell-interactive-process) "\n")) (process-send-region
(eshell-interactive-process) eshell-last-input-start eshell-last-input-end)))
(if (= eshell-last-output-end (point)) (run-hooks (quote
eshell-post-command-hook)) (let (input) (eshell-condition-case err (progn (setq
input (buffer-substring-no-properties eshell-last-output-end ...))
(run-hook-with-args (quote eshell-expand-input-functions)
eshell-last-output-end (1- ...)) (let (...) (when cmd ... ... ... ...))) (quit
(eshell-reset t) (run-hooks (quote eshell-post-command-hook)) (signal (quote
quit) nil)) (error (eshell-reset t) (eshell-interactive-print (concat ...
"\n")) (run-hooks (quote eshell-post-command-hook)) (insert-and-inherit
input)))))))
(unless (and proc-running-p (not (eq (process-status
(eshell-interactive-process)) (quote run)))) (if (or proc-running-p (>= (point)
eshell-last-output-end)) (goto-char (point-max)) (let ((copy
(eshell-get-old-input use-region))) (goto-char eshell-last-output-end)
(insert-and-inherit copy))) (unless (or no-newline (and
eshell-send-direct-to-subprocesses proc-running-p))
(insert-before-markers-and-inherit 10)) (if proc-running-p (progn
(eshell-update-markers eshell-last-output-end) (if (or
eshell-send-direct-to-subprocesses (= eshell-last-input-start
eshell-last-input-end)) (unless no-newline (process-send-string
(eshell-interactive-process) "\n")) (process-send-region
(eshell-interactive-process) eshell-last-input-start eshell-last-input-end)))
(if (= eshell-last-output-end (point)) (run-hooks (quote
eshell-post-command-hook)) (let (input) (eshell-condition-case err (progn (setq
input (buffer-substring-no-properties eshell-last-output-end ...))
(run-hook-with-args (quote eshell-expand-input-functions)
eshell-last-output-end (1- ...)) (let (...) (when cmd ... ... ... ...))) (quit
(eshell-reset t) (run-hooks (quote eshell-post-command-hook)) (signal (quote
quit) nil)) (error (eshell-reset t) (eshell-interactive-print (concat ...
"\n")) (run-hooks (quote eshell-post-command-hook)) (insert-and-inherit
input)))))))
(let ((proc-running-p (and (eshell-interactive-process) (not queue-p)))
(inhibit-point-motion-hooks t) after-change-functions) (unless (and
proc-running-p (not (eq (process-status (eshell-interactive-process)) (quote
run)))) (if (or proc-running-p (>= (point) eshell-last-output-end)) (goto-char
(point-max)) (let ((copy (eshell-get-old-input use-region))) (goto-char
eshell-last-output-end) (insert-and-inherit copy))) (unless (or no-newline (and
eshell-send-direct-to-subprocesses proc-running-p))
(insert-before-markers-and-inherit 10)) (if proc-running-p (progn
(eshell-update-markers eshell-last-output-end) (if (or
eshell-send-direct-to-subprocesses (= eshell-last-input-start
eshell-last-input-end)) (unless no-newline (process-send-string
(eshell-interactive-process) "\n")) (process-send-region
(eshell-interactive-process) eshell-last-input-start eshell-last-input-end)))
(if (= eshell-last-output-end (point)) (run-hooks (quote
eshell-post-command-hook)) (let (input) (eshell-condition-case err (progn (setq
input ...) (run-hook-with-args ... eshell-last-output-end ...) (let ... ...))
(quit (eshell-reset t) (run-hooks ...) (signal ... nil)) (error (eshell-reset
t) (eshell-interactive-print ...) (run-hooks ...) (insert-and-inherit
input))))))))
eshell-send-input(nil)
call-interactively(eshell-send-input nil nil)
- bug#9907: 24.0.90; eshell:for command destructivly modifies list variables,
Glenn Morris <=