From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Glenn Morris Newsgroups: gmane.emacs.bugs Subject: bug#9907: 24.0.90; eshell:for command destructivly modifies list variables Date: Thu, 17 Nov 2011 21:05:46 -0500 Message-ID: <65pqgqmbgl.fsf@fencepost.gnu.org> References: <87ehxv5ral.fsf@luca.i-did-not-set--mail-host-address--so-tickle-me> <87boszjap9.fsf@gmail.com> <877h3mnx67.fsf@gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1321582064 31387 80.91.229.12 (18 Nov 2011 02:07:44 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 18 Nov 2011 02:07:44 +0000 (UTC) To: 9907@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Nov 18 03:07:28 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RRDrS-0006Gq-K9 for geb-bug-gnu-emacs@m.gmane.org; Fri, 18 Nov 2011 03:07:27 +0100 Original-Received: from localhost ([::1]:49603 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RRDrS-0006X9-1H for geb-bug-gnu-emacs@m.gmane.org; Thu, 17 Nov 2011 21:07:26 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:53592) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RRDrI-0006Wr-3k for bug-gnu-emacs@gnu.org; Thu, 17 Nov 2011 21:07:23 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RRDrA-0000yL-6t for bug-gnu-emacs@gnu.org; Thu, 17 Nov 2011 21:07:16 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:54623) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RRDrA-0000yG-0V for bug-gnu-emacs@gnu.org; Thu, 17 Nov 2011 21:07:08 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1RRDs1-0004GS-Om for bug-gnu-emacs@gnu.org; Thu, 17 Nov 2011 21:08:01 -0500 X-Loop: help-debbugs@gnu.org In-Reply-To: <87ehxv5ral.fsf@luca.i-did-not-set--mail-host-address--so-tickle-me> Resent-From: Glenn Morris Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 18 Nov 2011 02:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 9907 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 9907-submit@debbugs.gnu.org id=B9907.132158202316321 (code B ref 9907); Fri, 18 Nov 2011 02:08:01 +0000 Original-Received: (at 9907) by debbugs.gnu.org; 18 Nov 2011 02:07:03 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RRDqw-0004Ej-3Q for submit@debbugs.gnu.org; Thu, 17 Nov 2011 21:07:03 -0500 Original-Received: from fencepost.gnu.org ([140.186.70.10]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RRDqj-0004ES-9M for 9907@debbugs.gnu.org; Thu, 17 Nov 2011 21:06:51 -0500 Original-Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1RRDpq-0007EV-Go; Thu, 17 Nov 2011 21:05:46 -0500 X-Spook: assassination Soviet George W. Bush Saddam Hussein X-Ran: sx%#1R,sBM!D;Y[i/;H*^&V|dO-61.|[Ue'w:-u?6h|{2=\j:7D\9&sA?^hv\J. X-Hue: blue X-Attribution: GM User-Agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Thu, 17 Nov 2011 21:08:01 -0500 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:54029 Archived-At: >> 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 #)) eval((setq (quote nil) (quote #))) (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 re= sult (eval form))))) (progn (eshell-manipulate "substituting replacement fo= rm" (setcar form (car new-form)) (setcdr form (cdr new-form))) (eshell-do-e= val form synchronous-p)) (if (and (memq (car form) eshell-deferrable-comman= ds) (not eshell-current-subjob-p) result (eshell-processp result)) (if sync= hronous-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-co= mmand) (ignore (setq result (eval form))))) (progn (eshell-manipulate "subs= tituting replacement form" (setcar form (car new-form)) (setcdr form (cdr n= ew-form))) (eshell-do-eval form synchronous-p)) (if (and (memq (car form) e= shell-deferrable-commands) (not eshell-current-subjob-p) result (eshell-pro= cessp result)) (if synchronous-p (eshell/wait result) (eshell-manipulate "i= nserting ignore form" (setcar form (quote ignore)) (setcdr form nil)) (thro= w (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 (ca= tch (quote eshell-replace-command) (ignore (setq result ...)))) (progn (esh= ell-manipulate "substituting replacement form" (setcar form (car new-form))= (setcdr form (cdr new-form))) (eshell-do-eval form synchronous-p)) (if (an= d (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 ni= l)) (throw (quote eshell-defer) result)) (list (quote quote) result)))))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (ass= ert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar= eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshel= l-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (whil= e (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-bod= y (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (= eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-comm= and-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (set= car eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-c= ommand-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshel= l-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (= eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tre= e (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-= do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-bo= dy nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (set= car (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((e= q (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 a= rgs" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr= letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (set= q 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 argume= nts to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-= eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car f= orm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr= form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (prog= n (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-ev= al 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 eshe= ll-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-tr= ee (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-bo= dy (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eva= l (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil= ) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (c= dr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car= form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synch= ronous-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 (c= ar form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar = args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (s= etcar 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 (eshe= ll-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car fo= rm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr = form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (i= f ... ... ...)))))))) (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car f= orm) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-= do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (l= et ((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) (q= uote 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 eshel= l-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (se= tcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-comm= and-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-te= st-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (ca= r form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshe= ll-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ..= .)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (ca= r eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (se= tcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr ar= gs) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form= ) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronou= s-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwin= d-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluatin= g 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 argumen= ts to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq= ... ...) (cadr form)) (t (let ... ...)))))))) eshell-do-eval((setq (quote nil) (quote #)) nil) (let (nextproc) (eshell-do-eval (quote (setq (quote nil) (quote #))) nil) (eshell-set-output-handle 1 (quote append) nextproc) (eshell= -set-output-handle 2 (quote append) nextproc) (setq tailproc (or tailproc n= extproc))) eval((let (nextproc) (eshell-do-eval (quote (setq (quote nil) (quote #))) nil) (eshell-set-output-handle 1 (quote append) nextproc) (e= shell-set-output-handle 2 (quote append) nextproc) (setq tailproc (or tailp= roc nextproc)))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (ass= ert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar= eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshel= l-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (whil= e (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-bod= y (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (= eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-comm= and-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (set= car eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-c= ommand-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshel= l-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (= eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tre= e (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-= do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-bo= dy nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (set= car (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((e= q (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 a= rgs" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr= letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (set= q 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 argume= nts to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-= eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car f= orm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr= form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (prog= n (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-ev= al 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 eshe= ll-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-tr= ee (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-bo= dy (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eva= l (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil= ) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (c= dr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car= form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synch= ronous-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 (c= ar form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar = args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (s= etcar 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 (eshe= ll-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car fo= rm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr = form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (i= f ... ... ...)))))))) (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car f= orm) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-= do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (l= et ((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) (q= uote 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 eshel= l-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (se= tcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-comm= and-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-te= st-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (ca= r form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshe= ll-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ..= .)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (ca= r eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (se= tcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr ar= gs) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form= ) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronou= s-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwin= d-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluatin= g 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 argumen= ts 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 #))) nil) (eshell-set-output-handle 1 (quote append) ne= xtproc) (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 (c= ar 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-manipu= late (format "evaluating arguments to `%s'" (symbol-name (car form))) (whil= e 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) (ass= ert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar= eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshel= l-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (whil= e (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-bod= y (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (= eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-comm= and-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (set= car eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-c= ommand-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshel= l-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (= eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tre= e (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-= do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-bo= dy nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (set= car (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((e= q (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 a= rgs" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr= letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (set= q 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 argume= nts to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-= eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car f= orm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr= form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (prog= n (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-ev= al 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 eshe= ll-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-tr= ee (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-bo= dy (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eva= l (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil= ) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (c= dr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car= form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synch= ronous-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 (c= ar form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar = args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (s= etcar 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 (eshe= ll-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car fo= rm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr = form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (i= f ... ... ...)))))))) (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car f= orm) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-= do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (l= et ((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) (q= uote 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 eshel= l-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (se= tcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-comm= and-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-te= st-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (ca= r form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshe= ll-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ..= .)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (ca= r eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (se= tcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr ar= gs) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form= ) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronou= s-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwin= d-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluatin= g 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 argumen= ts 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 #))) nil) (eshell-set-output-handle 1 (quote app= end) nextproc) (eshell-set-output-handle 2 (quote append) nextproc) (setq t= ailproc (or tailproc nextproc))) nil (let ((eshell-in-pipeline-p (quote fir= st))) (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 ... ...)) n= il) (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)]))) (eshel= l-do-eval (quote (progn (let (nextproc) (eshell-do-eval (quote (setq ... ..= .)) nil) (eshell-set-output-handle 1 (quote append) nextproc) (eshell-set-o= utput-handle 2 (quote append) nextproc) (setq tailproc (or tailproc nextpro= c))) nil (let ((eshell-in-pipeline-p (quote first))) (eshell-named-command*= "ls")))) nil))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (ass= ert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar= eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshel= l-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (whil= e (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-bod= y (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (= eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-comm= and-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (set= car eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-c= ommand-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshel= l-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (= eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tre= e (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-= do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-bo= dy nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (set= car (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((e= q (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 a= rgs" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr= letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (set= q 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 argume= nts to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-= eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car f= orm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr= form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (prog= n (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-ev= al 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 eshe= ll-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-tr= ee (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-bo= dy (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eva= l (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil= ) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (c= dr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car= form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synch= ronous-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 (c= ar form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar = args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (s= etcar 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 (eshe= ll-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car fo= rm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr = form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (i= f ... ... ...)))))))) (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car f= orm) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-= do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (l= et ((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) (q= uote 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 eshel= l-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (se= tcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-comm= and-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-te= st-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (ca= r form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshe= ll-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ..= .)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (ca= r eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (se= tcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr ar= gs) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form= ) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronou= s-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwin= d-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluatin= g 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 argumen= ts 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 (s= etq ... ...)) nil) (eshell-set-output-handle 1 (quote append) nextproc) (es= hell-set-output-handle 2 (quote append) nextproc) (setq tailproc (or tailpr= oc nextproc))) nil (let ((eshell-in-pipeline-p (quote first))) (eshell-name= d-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 (c= ar 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-manipu= late (format "evaluating arguments to `%s'" (symbol-name (car form))) (whil= e 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) (ass= ert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar= eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshel= l-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (whil= e (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-bod= y (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (= eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-comm= and-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (set= car eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-c= ommand-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshel= l-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (= eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tre= e (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-= do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-bo= dy nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (set= car (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((e= q (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 a= rgs" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr= letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (set= q 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 argume= nts to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-= eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car f= orm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr= form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (prog= n (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-ev= al 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 eshe= ll-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-tr= ee (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-bo= dy (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eva= l (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil= ) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (c= dr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car= form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synch= ronous-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 (c= ar form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar = args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (s= etcar 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 (eshe= ll-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car fo= rm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr = form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (i= f ... ... ...)))))))) (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car f= orm) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-= do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (l= et ((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) (q= uote 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 eshel= l-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (se= tcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-comm= and-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-te= st-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (ca= r form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshe= ll-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ..= .)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (ca= r eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (se= tcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr ar= gs) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form= ) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronou= s-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwin= d-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluatin= g 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 argumen= ts 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 (q= uote ...) nil) (eshell-set-output-handle 1 (quote append) nextproc) (eshell= -set-output-handle 2 (quote append) nextproc) (setq tailproc (or tailproc n= extproc))) 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 (qu= ote (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) (ass= ert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar= eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshel= l-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (whil= e (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-bod= y (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (= eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-comm= and-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (set= car eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-c= ommand-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshel= l-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (= eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tre= e (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-= do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-bo= dy nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (set= car (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((e= q (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 a= rgs" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr= letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (set= q 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 argume= nts to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-= eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car f= orm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr= form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (prog= n (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-ev= al 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 eshe= ll-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-tr= ee (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-bo= dy (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eva= l (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil= ) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (c= dr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car= form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synch= ronous-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 (c= ar form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar = args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (s= etcar 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 (eshe= ll-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car fo= rm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr = form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (i= f ... ... ...)))))))) (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car f= orm) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-= do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (l= et ((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) (q= uote 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 eshel= l-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (se= tcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-comm= and-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-te= st-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (ca= r form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshe= ll-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ..= .)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (ca= r eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (se= tcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr ar= gs) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form= ) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronou= s-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwin= d-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluatin= g 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 argumen= ts to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq= ... ...) (cadr form)) (t (let ... ...)))))))) eshell-do-eval((let ((eshell-in-pipeline-p (quote t)) tailproc) (eshell-d= o-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 (c= ar 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-manipu= late (format "evaluating arguments to `%s'" (symbol-name (car form))) (whil= e 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) (ass= ert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar= eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshel= l-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (whil= e (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-bod= y (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (= eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-comm= and-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (set= car eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-c= ommand-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshel= l-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (= eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tre= e (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-= do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-bo= dy nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (set= car (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((e= q (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 a= rgs" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr= letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (set= q 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 argume= nts to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-= eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car f= orm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr= form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (prog= n (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-ev= al 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 eshe= ll-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-tr= ee (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-bo= dy (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eva= l (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil= ) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (c= dr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car= form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synch= ronous-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 (c= ar form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar = args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (s= etcar 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 (eshe= ll-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car fo= rm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr = form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (i= f ... ... ...)))))))) (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car f= orm) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-= do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (l= et ((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) (q= uote 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 eshel= l-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (se= tcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-comm= and-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-te= st-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (ca= r form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshe= ll-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ..= .)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (ca= r eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (se= tcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr ar= gs) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form= ) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronou= s-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwin= d-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluatin= g 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 argumen= ts to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq= ... ...) (cadr form)) (t (let ... ...)))))))) eshell-do-eval((prog1 (let ((eshell-in-pipeline-p (quote t)) tailproc) (e= shell-do-eval (quote (progn (let ((eshell-current-handles ...)) (eshell-do-= eval (quote ...) nil)) (eshell-process-identity tailproc))) nil)) (run-hook= s (quote eshell-this-command-hook))) nil) (condition-case err (eshell-do-eval (quote (prog1 (let ((eshell-in-pipeli= ne-p (quote t)) tailproc) (eshell-do-eval (quote (progn ... ...)) nil)) (ru= n-hooks (quote eshell-this-command-hook)))) nil) (error (run-hooks (quote e= shell-this-command-hook)) (eshell-errorn (error-message-string err)) (eshel= l-close-handles 1))) eval((condition-case err (eshell-do-eval (quote (prog1 (let ((eshell-in-p= ipeline-p (quote t)) tailproc) (eshell-do-eval (quote (progn ... ...)) nil)= ) (run-hooks (quote eshell-this-command-hook)))) nil) (error (run-hooks (qu= ote 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) (ass= ert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar= eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshel= l-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (whil= e (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-bod= y (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (= eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-comm= and-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (set= car eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-c= ommand-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshel= l-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (= eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tre= e (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-= do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-bo= dy nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (set= car (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((e= q (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 a= rgs" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr= letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (set= q 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 argume= nts to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-= eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car f= orm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr= form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (prog= n (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-ev= al 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 eshe= ll-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-tr= ee (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-bo= dy (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eva= l (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil= ) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (c= dr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car= form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synch= ronous-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 (c= ar form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar = args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (s= etcar 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 (eshe= ll-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car fo= rm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr = form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (i= f ... ... ...)))))))) (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car f= orm) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-= do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (l= et ((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) (q= uote 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 eshel= l-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (se= tcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-comm= and-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-te= st-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (ca= r form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshe= ll-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ..= .)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (ca= r eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (se= tcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr ar= gs) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form= ) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronou= s-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwin= d-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluatin= g 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 argumen= ts to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq= ... ...) (cadr form)) (t (let ... ...)))))))) eshell-do-eval((condition-case err (eshell-do-eval (quote (prog1 (let ((e= shell-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-stri= ng 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-er= rorn (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)) (eshe= ll-errorn (error-message-string err)) (eshell-close-handles 1)))) nil))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (ass= ert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar= eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshel= l-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (whil= e (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-bod= y (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (= eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-comm= and-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (set= car eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-c= ommand-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshel= l-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (= eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tre= e (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-= do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-bo= dy nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (set= car (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((e= q (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 a= rgs" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr= letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (set= q 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 argume= nts to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-= eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car f= orm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr= form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (prog= n (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-ev= al 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 eshe= ll-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-tr= ee (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-bo= dy (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eva= l (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil= ) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (c= dr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car= form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synch= ronous-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 (c= ar form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar = args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (s= etcar 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 (eshe= ll-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car fo= rm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr = form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (i= f ... ... ...)))))))) (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car f= orm) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-= do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (l= et ((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) (q= uote 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 eshel= l-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (se= tcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-comm= and-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-te= st-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (ca= r form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshe= ll-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ..= .)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (ca= r eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (se= tcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr ar= gs) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form= ) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronou= s-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwin= d-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluatin= g 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 argumen= ts 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-ho= ok)) (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 (c= ar 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-manipu= late (format "evaluating arguments to `%s'" (symbol-name (car form))) (whil= e 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) (ass= ert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar= eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshel= l-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (whil= e (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-bod= y (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (= eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-comm= and-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (set= car eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-c= ommand-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshel= l-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (= eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tre= e (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-= do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-bo= dy nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (set= car (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((e= q (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 a= rgs" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr= letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (set= q 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 argume= nts to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-= eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car f= orm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr= form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (prog= n (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-ev= al 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 eshe= ll-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-tr= ee (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-bo= dy (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eva= l (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil= ) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (c= dr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car= form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synch= ronous-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 (c= ar form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar = args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (s= etcar 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 (eshe= ll-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car fo= rm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr = form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (i= f ... ... ...)))))))) (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car f= orm) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-= do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (l= et ((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) (q= uote 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 eshel= l-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (se= tcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-comm= and-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-te= st-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (ca= r form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshe= ll-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ..= .)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (ca= r eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (se= tcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr ar= gs) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form= ) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronou= s-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwin= d-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluatin= g 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 argumen= ts 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-er= rorn (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) (ass= ert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar= eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshel= l-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (whil= e (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-bod= y (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (= eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-comm= and-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (set= car eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-c= ommand-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshel= l-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (= eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tre= e (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-= do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-bo= dy nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (set= car (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((e= q (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 a= rgs" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr= letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (set= q 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 argume= nts to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-= eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car f= orm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr= form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (prog= n (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-ev= al 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 eshe= ll-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-tr= ee (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-bo= dy (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eva= l (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil= ) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (c= dr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car= form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synch= ronous-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 (c= ar form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar = args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (s= etcar 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 (eshe= ll-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car fo= rm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr = form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (i= f ... ... ...)))))))) (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car f= orm) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-= do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (l= et ((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) (q= uote 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 eshel= l-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (se= tcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-comm= and-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-te= st-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (ca= r form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshe= ll-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ..= .)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (ca= r eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (se= tcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr ar= gs) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form= ) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronou= s-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwin= d-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluatin= g 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 argumen= ts to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq= ... ...) (cadr form)) (t (let ... ...)))))))) eshell-do-eval((catch (quote top-level) (eshell-do-eval (quote (progn (le= t ((eshell-this-command-hook (quote ...))) (eshell-do-eval (quote (conditio= n-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 (c= ar 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-manipu= late (format "evaluating arguments to `%s'" (symbol-name (car form))) (whil= e 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) (ass= ert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar= eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshel= l-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (whil= e (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-bod= y (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (= eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-comm= and-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (set= car eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-c= ommand-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshel= l-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (= eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tre= e (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-= do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-bo= dy nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (set= car (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((e= q (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 a= rgs" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr= letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (set= q 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 argume= nts to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-= eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car f= orm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr= form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (prog= n (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-ev= al 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 eshe= ll-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-tr= ee (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-bo= dy (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eva= l (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil= ) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (c= dr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car= form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synch= ronous-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 (c= ar form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar = args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (s= etcar 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 (eshe= ll-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car fo= rm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr = form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (i= f ... ... ...)))))))) (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car f= orm) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-= do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (l= et ((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) (q= uote 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 eshel= l-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (se= tcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-comm= and-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-te= st-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (ca= r form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshe= ll-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ..= .)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (ca= r eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (se= tcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr ar= gs) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form= ) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronou= s-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwin= d-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluatin= g 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 argumen= ts to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq= ... ...) (cadr form)) (t (let ... ...)))))))) eshell-do-eval((progn (quote nil) (catch (quote top-level) (eshell-do-eva= l (quote (progn (let ((eshell-this-command-hook ...)) (eshell-do-eval (quot= e ...) nil)))) nil)) (run-hooks (quote eshell-post-command-hook))) nil) (let ((eshell-current-handles (quote [nil (t . 1) (t . 1)])) eshell-curre= nt-subjob-p) (eshell-do-eval (quote (progn (quote nil) (catch (quote top-le= vel) (eshell-do-eval (quote (progn ...)) nil)) (run-hooks (quote eshell-pos= t-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 t= op-level) (eshell-do-eval (quote (progn ...)) nil)) (run-hooks (quote eshel= l-post-command-hook)))) nil))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (ass= ert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar= eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshel= l-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (whil= e (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-bod= y (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (= eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-comm= and-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (set= car eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-c= ommand-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshel= l-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (= eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tre= e (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-= do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-bo= dy nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (set= car (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((e= q (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 a= rgs" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr= letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (set= q 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 argume= nts to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-= eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car f= orm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr= form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (prog= n (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-ev= al 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 eshe= ll-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-tr= ee (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-bo= dy (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eva= l (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil= ) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (c= dr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car= form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synch= ronous-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 (c= ar form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar = args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (s= etcar 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 (eshe= ll-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car fo= rm) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr = form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (i= f ... ... ...)))))))) (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car f= orm) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-= do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (l= et ((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) (q= uote 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 eshel= l-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (se= tcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-comm= and-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-te= st-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (ca= r form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshe= ll-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ..= .)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (ca= r eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (se= tcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr ar= gs) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form= ) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronou= s-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwin= d-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluatin= g 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 argumen= ts 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) (catc= h (quote top-level) (eshell-do-eval (quote (progn ...)) nil)) (run-hooks (q= uote 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-c= urrent-command)))) (let* (retval (proc (catch (quote eshell-defer) (ignore (setq retval (esh= ell-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 retv= al (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 eshel= l-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-def= er) (ignore (setq retval (eshell-do-eval eshell-current-command)))))) (if (= eshell-processp proc) (ignore (setq eshell-last-async-proc proc)) (cadr ret= val)))) (progn (setq eshell-last-async-proc nil) (when eshell-current-command (le= t* (retval (proc (catch (quote eshell-defer) (ignore (setq retval ...))))) = (if (eshell-processp proc) (ignore (setq eshell-last-async-proc proc)) (cad= r 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) (ig= nore ...)))) (if (eshell-processp proc) (ignore (setq eshell-last-async-pro= c 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)) (l= ist (\` (let ((here (and ... ...))) (\, (and input (\` ...))) (if here (esh= ell-update-markers here)) (eshell-do-eval (quote (\, command))))))) (and es= hell-debug-command (with-current-buffer (get-buffer-create "*eshell last cm= d*") (erase-buffer) (insert "command: \"" input "\"\n"))) (setq eshell-curr= ent-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-hoo= ks (quote eshell-post-command-hook)))) nil)) "ls | grep foo") (if (eshell-invoke-directly cmd input) (eval cmd) (eshell-eval-command cm= d input)) (ignore (if (eshell-invoke-directly cmd input) (eval cmd) (eshell-eval-co= mmand cmd input))) (catch (quote eshell-terminal) (ignore (if (eshell-invoke-directly cmd in= put) (eval cmd) (eshell-eval-command cmd input)))) (and (catch (quote eshell-terminal) (ignore (if (eshell-invoke-directly c= md 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 esh= ell-terminal) (ignore (if (eshell-invoke-directly cmd input) (eval cmd) (es= hell-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-in= put-end))) (run-hooks (quote eshell-input-filter-functions)) (and (catch (q= uote 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 (buf= fer-substring-no-properties eshell-last-input-start (1- eshell-last-input-e= nd))) (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-inpu= t-end))) (run-hooks (quote eshell-input-filter-functions)) (and (catch (quo= te eshell-terminal) (ignore (if (eshell-invoke-directly cmd input) (eval cm= d) (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) e= shell-last-output-end (1- (point))) (let ((cmd (eshell-parse-command-input = eshell-last-output-end (1- (point))))) (when cmd (eshell-update-markers esh= ell-last-output-end) (setq input (buffer-substring-no-properties eshell-las= t-input-start (1- eshell-last-input-end))) (run-hooks (quote eshell-input-f= ilter-functions)) (and (catch (quote eshell-terminal) (ignore (if (eshell-i= nvoke-directly cmd input) (eval cmd) (eshell-eval-command cmd input)))) (es= hell-life-is-too-much))))) (condition-case err (progn (setq input (buffer-substring-no-properties es= hell-last-output-end (1- (point)))) (run-hook-with-args (quote eshell-expan= d-input-functions) eshell-last-output-end (1- (point))) (let ((cmd (eshell-= parse-command-input eshell-last-output-end (1- (point))))) (when cmd (eshel= l-update-markers eshell-last-output-end) (setq input (buffer-substring-no-p= roperties 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-s= tring err) "\n")) (run-hooks (quote eshell-post-command-hook)) (insert-and-= inherit input))) (eshell-condition-case err (progn (setq input (buffer-substring-no-proper= ties eshell-last-output-end (1- (point)))) (run-hook-with-args (quote eshel= l-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-substri= ng-no-properties eshell-last-input-start (1- eshell-last-input-end))) (run-= hooks (quote eshell-input-filter-functions)) (and (catch (quote eshell-term= inal) (ignore (if ... ... ...))) (eshell-life-is-too-much))))) (quit (eshel= l-reset t) (run-hooks (quote eshell-post-command-hook)) (signal (quote quit= ) nil)) (error (eshell-reset t) (eshell-interactive-print (concat (error-me= ssage-string err) "\n")) (run-hooks (quote eshell-post-command-hook)) (inse= rt-and-inherit input))) (let (input) (eshell-condition-case err (progn (setq input (buffer-substr= ing-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 (buffe= r-substring-no-properties eshell-last-input-start (1- eshell-last-input-end= ))) (run-hooks (quote eshell-input-filter-functions)) (and (catch (quote es= hell-terminal) (ignore ...)) (eshell-life-is-too-much))))) (quit (eshell-re= set t) (run-hooks (quote eshell-post-command-hook)) (signal (quote quit) ni= l)) (error (eshell-reset t) (eshell-interactive-print (concat (error-messag= e-string err) "\n")) (run-hooks (quote eshell-post-command-hook)) (insert-a= nd-inherit input)))) (if (=3D eshell-last-output-end (point)) (run-hooks (quote eshell-post-co= mmand-hook)) (let (input) (eshell-condition-case err (progn (setq input (bu= ffer-substring-no-properties eshell-last-output-end (1- (point)))) (run-hoo= k-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 (q= uote eshell-input-filter-functions)) (and (catch ... ...) (eshell-life-is-t= oo-much))))) (quit (eshell-reset t) (run-hooks (quote eshell-post-command-h= ook)) (signal (quote quit) nil)) (error (eshell-reset t) (eshell-interactiv= e-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 (=3D eshell-last-input-start esh= ell-last-input-end)) (unless no-newline (process-send-string (eshell-intera= ctive-process) "\n")) (process-send-region (eshell-interactive-process) esh= ell-last-input-start eshell-last-input-end))) (if (=3D eshell-last-output-e= nd (point)) (run-hooks (quote eshell-post-command-hook)) (let (input) (eshe= ll-condition-case err (progn (setq input (buffer-substring-no-properties es= hell-last-output-end (1- ...))) (run-hook-with-args (quote eshell-expand-in= put-functions) eshell-last-output-end (1- (point))) (let ((cmd ...)) (when = cmd (eshell-update-markers eshell-last-output-end) (setq input ...) (run-ho= oks ...) (and ... ...)))) (quit (eshell-reset t) (run-hooks (quote eshell-p= ost-command-hook)) (signal (quote quit) nil)) (error (eshell-reset t) (eshe= ll-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-proc= ess)) (quote run)))) nil (if (or proc-running-p (>=3D (point) eshell-last-o= utput-end)) (goto-char (point-max)) (let ((copy (eshell-get-old-input use-r= egion))) (goto-char eshell-last-output-end) (insert-and-inherit copy))) (un= less (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-subpr= ocesses (=3D eshell-last-input-start eshell-last-input-end)) (unless no-new= line (process-send-string (eshell-interactive-process) "\n")) (process-send= -region (eshell-interactive-process) eshell-last-input-start eshell-last-in= put-end))) (if (=3D eshell-last-output-end (point)) (run-hooks (quote eshel= l-post-command-hook)) (let (input) (eshell-condition-case err (progn (setq = input (buffer-substring-no-properties eshell-last-output-end ...)) (run-hoo= k-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 (q= uote 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 (>=3D (point) eshell-last-o= utput-end)) (goto-char (point-max)) (let ((copy (eshell-get-old-input use-r= egion))) (goto-char eshell-last-output-end) (insert-and-inherit copy))) (un= less (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-subpr= ocesses (=3D eshell-last-input-start eshell-last-input-end)) (unless no-new= line (process-send-string (eshell-interactive-process) "\n")) (process-send= -region (eshell-interactive-process) eshell-last-input-start eshell-last-in= put-end))) (if (=3D eshell-last-output-end (point)) (run-hooks (quote eshel= l-post-command-hook)) (let (input) (eshell-condition-case err (progn (setq = input (buffer-substring-no-properties eshell-last-output-end ...)) (run-hoo= k-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 (q= uote 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-run= ning-p (not (eq (process-status (eshell-interactive-process)) (quote run)))= ) (if (or proc-running-p (>=3D (point) eshell-last-output-end)) (goto-char = (point-max)) (let ((copy (eshell-get-old-input use-region))) (goto-char esh= ell-last-output-end) (insert-and-inherit copy))) (unless (or no-newline (an= d eshell-send-direct-to-subprocesses proc-running-p)) (insert-before-marker= s-and-inherit 10)) (if proc-running-p (progn (eshell-update-markers eshell-= last-output-end) (if (or eshell-send-direct-to-subprocesses (=3D eshell-las= t-input-start eshell-last-input-end)) (unless no-newline (process-send-stri= ng (eshell-interactive-process) "\n")) (process-send-region (eshell-interac= tive-process) eshell-last-input-start eshell-last-input-end))) (if (=3D esh= ell-last-output-end (point)) (run-hooks (quote eshell-post-command-hook)) (= let (input) (eshell-condition-case err (progn (setq input ...) (run-hook-wi= th-args ... eshell-last-output-end ...) (let ... ...)) (quit (eshell-reset = t) (run-hooks ...) (signal ... nil)) (error (eshell-reset t) (eshell-intera= ctive-print ...) (run-hooks ...) (insert-and-inherit input)))))))) eshell-send-input(nil) call-interactively(eshell-send-input nil nil)