bug-gnu-emacs
[Top][All Lists]
Advanced

[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)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]