unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Glenn Morris <rgm@gnu.org>
To: 9907@debbugs.gnu.org
Subject: bug#9907: 24.0.90; eshell:for command destructivly modifies list variables
Date: Thu, 17 Nov 2011 21:05:46 -0500	[thread overview]
Message-ID: <65pqgqmbgl.fsf@fencepost.gnu.org> (raw)
In-Reply-To: <87ehxv5ral.fsf@luca.i-did-not-set--mail-host-address--so-tickle-me>


>> Sorry 'bout that.  Should be fixed now, but please confirm.
> It is working fine now, thanks.

It was pointed out on emacs-devel that eshell pipes no longer work
(it's because I just closed this bug...):

emacs -Q -f eshell
ls | grep foo

  -> Wrong type argument: symbolp, (quote nil)
   and a stale grep process in M-x list-processes

Debugger entered--Lisp error: (wrong-type-argument symbolp (quote nil))
  (setq (quote nil) (quote #<process grep>))
  eval((setq (quote nil) (quote #<process grep>)))
  (setq result (eval form))
  (ignore (setq result (eval form)))
  (catch (quote eshell-replace-command) (ignore (setq result (eval form))))
  (setq new-form (catch (quote eshell-replace-command) (ignore (setq result (eval form)))))
  (if (setq new-form (catch (quote eshell-replace-command) (ignore (setq result (eval form))))) (progn (eshell-manipulate "substituting replacement form" (setcar form (car new-form)) (setcdr form (cdr new-form))) (eshell-do-eval form synchronous-p)) (if (and (memq (car form) eshell-deferrable-commands) (not eshell-current-subjob-p) result (eshell-processp result)) (if synchronous-p (eshell/wait result) (eshell-manipulate "inserting ignore form" (setcar form (quote ignore)) (setcdr form nil)) (throw (quote eshell-defer) result)) (list (quote quote) result)))
  (let (result new-form) (if (setq new-form (catch (quote eshell-replace-command) (ignore (setq result (eval form))))) (progn (eshell-manipulate "substituting replacement form" (setcar form (car new-form)) (setcdr form (cdr new-form))) (eshell-do-eval form synchronous-p)) (if (and (memq (car form) eshell-deferrable-commands) (not eshell-current-subjob-p) result (eshell-processp result)) (if synchronous-p (eshell/wait result) (eshell-manipulate "inserting ignore form" (setcar form (quote ignore)) (setcdr form nil)) (throw (quote eshell-defer) result)) (list (quote quote) result))))
  (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form (catch (quote eshell-replace-command) (ignore (setq result ...)))) (progn (eshell-manipulate "substituting replacement form" (setcar form (car new-form)) (setcdr form (cdr new-form))) (eshell-do-eval form synchronous-p)) (if (and (memq (car form) eshell-deferrable-commands) (not eshell-current-subjob-p) result (eshell-processp result)) (if synchronous-p (eshell/wait result) (eshell-manipulate "inserting ignore form" (setcar form ...) (setcdr form nil)) (throw (quote eshell-defer) result)) (list (quote quote) result))))))
  (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval (quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (progn (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if synchronous-p ... ... ...) (list ... result))))))))
  (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and ... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ... ...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...)))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (if ... ... ...))))))))
  (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp (eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate (format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
  eshell-do-eval((setq (quote nil) (quote #<process grep>)) nil)
  (let (nextproc) (eshell-do-eval (quote (setq (quote nil) (quote #<process grep>))) nil) (eshell-set-output-handle 1 (quote append) nextproc) (eshell-set-output-handle 2 (quote append) nextproc) (setq tailproc (or tailproc nextproc)))
  eval((let (nextproc) (eshell-do-eval (quote (setq (quote nil) (quote #<process grep>))) nil) (eshell-set-output-handle 1 (quote append) nextproc) (eshell-set-output-handle 2 (quote append) nextproc) (setq tailproc (or tailproc nextproc))))
  (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval (quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (progn (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if synchronous-p ... ... ...) (list ... result))))))))
  (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and ... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ... ...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...)))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (if ... ... ...))))))))
  (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp (eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate (format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
  eshell-do-eval((let (nextproc) (eshell-do-eval (quote (setq (quote nil) (quote #<process grep>))) nil) (eshell-set-output-handle 1 (quote append) nextproc) (eshell-set-output-handle 2 (quote append) nextproc) (setq tailproc (or tailproc nextproc))) nil)
  (setcar args (eshell-do-eval (car args) synchronous-p))
  (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args)))
  (progn (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))
  (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))
  (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args)))))
  (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval (quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (progn (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if synchronous-p ... ... ...) (list ... result))))))))
  (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and ... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ... ...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...)))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (if ... ... ...))))))))
  (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp (eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate (format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
  eshell-do-eval((progn (let (nextproc) (eshell-do-eval (quote (setq (quote nil) (quote #<process grep>))) nil) (eshell-set-output-handle 1 (quote append) nextproc) (eshell-set-output-handle 2 (quote append) nextproc) (setq tailproc (or tailproc nextproc))) nil (let ((eshell-in-pipeline-p (quote first))) (eshell-named-command* "ls"))) nil)
  (let ((eshell-current-handles (quote [nil (t . 1) (t . 1)]))) (eshell-do-eval (quote (progn (let (nextproc) (eshell-do-eval (quote (setq ... ...)) nil) (eshell-set-output-handle 1 (quote append) nextproc) (eshell-set-output-handle 2 (quote append) nextproc) (setq tailproc (or tailproc nextproc))) nil (let ((eshell-in-pipeline-p (quote first))) (eshell-named-command* "ls")))) nil))
  eval((let ((eshell-current-handles (quote [nil (t . 1) (t . 1)]))) (eshell-do-eval (quote (progn (let (nextproc) (eshell-do-eval (quote (setq ... ...)) nil) (eshell-set-output-handle 1 (quote append) nextproc) (eshell-set-output-handle 2 (quote append) nextproc) (setq tailproc (or tailproc nextproc))) nil (let ((eshell-in-pipeline-p (quote first))) (eshell-named-command* "ls")))) nil)))
  (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval (quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (progn (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if synchronous-p ... ... ...) (list ... result))))))))
  (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and ... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ... ...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...)))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (if ... ... ...))))))))
  (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp (eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate (format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
  eshell-do-eval((let ((eshell-current-handles (quote [nil (t . 1) (t . 1)]))) (eshell-do-eval (quote (progn (let (nextproc) (eshell-do-eval (quote (setq ... ...)) nil) (eshell-set-output-handle 1 (quote append) nextproc) (eshell-set-output-handle 2 (quote append) nextproc) (setq tailproc (or tailproc nextproc))) nil (let ((eshell-in-pipeline-p (quote first))) (eshell-named-command* "ls")))) nil)) nil)
  (setcar args (eshell-do-eval (car args) synchronous-p))
  (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args)))
  (progn (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))
  (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))
  (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args)))))
  (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval (quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (progn (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if synchronous-p ... ... ...) (list ... result))))))))
  (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and ... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ... ...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...)))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (if ... ... ...))))))))
  (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp (eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate (format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
  eshell-do-eval((progn (let ((eshell-current-handles (quote [nil (t . 1) (t . 1)]))) (eshell-do-eval (quote (progn (let (nextproc) (eshell-do-eval (quote ...) nil) (eshell-set-output-handle 1 (quote append) nextproc) (eshell-set-output-handle 2 (quote append) nextproc) (setq tailproc (or tailproc nextproc))) nil (let ((eshell-in-pipeline-p ...)) (eshell-named-command* "ls")))) nil)) (eshell-process-identity tailproc)) nil)
  (let ((eshell-in-pipeline-p (quote t)) tailproc) (eshell-do-eval (quote (progn (let ((eshell-current-handles (quote [nil ... ...]))) (eshell-do-eval (quote (progn ... nil ...)) nil)) (eshell-process-identity tailproc))) nil))
  eval((let ((eshell-in-pipeline-p (quote t)) tailproc) (eshell-do-eval (quote (progn (let ((eshell-current-handles (quote [nil ... ...]))) (eshell-do-eval (quote (progn ... nil ...)) nil)) (eshell-process-identity tailproc))) nil)))
  (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval (quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (progn (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if synchronous-p ... ... ...) (list ... result))))))))
  (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and ... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ... ...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...)))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (if ... ... ...))))))))
  (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp (eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate (format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
  eshell-do-eval((let ((eshell-in-pipeline-p (quote t)) tailproc) (eshell-do-eval (quote (progn (let ((eshell-current-handles (quote [nil ... ...]))) (eshell-do-eval (quote (progn ... nil ...)) nil)) (eshell-process-identity tailproc))) nil)) nil)
  (setcar args (eshell-do-eval (car args) synchronous-p))
  (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args)))
  (progn (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))
  (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))
  (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args)))))
  (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval (quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (progn (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if synchronous-p ... ... ...) (list ... result))))))))
  (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and ... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ... ...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...)))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (if ... ... ...))))))))
  (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp (eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate (format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
  eshell-do-eval((prog1 (let ((eshell-in-pipeline-p (quote t)) tailproc) (eshell-do-eval (quote (progn (let ((eshell-current-handles ...)) (eshell-do-eval (quote ...) nil)) (eshell-process-identity tailproc))) nil)) (run-hooks (quote eshell-this-command-hook))) nil)
  (condition-case err (eshell-do-eval (quote (prog1 (let ((eshell-in-pipeline-p (quote t)) tailproc) (eshell-do-eval (quote (progn ... ...)) nil)) (run-hooks (quote eshell-this-command-hook)))) nil) (error (run-hooks (quote eshell-this-command-hook)) (eshell-errorn (error-message-string err)) (eshell-close-handles 1)))
  eval((condition-case err (eshell-do-eval (quote (prog1 (let ((eshell-in-pipeline-p (quote t)) tailproc) (eshell-do-eval (quote (progn ... ...)) nil)) (run-hooks (quote eshell-this-command-hook)))) nil) (error (run-hooks (quote eshell-this-command-hook)) (eshell-errorn (error-message-string err)) (eshell-close-handles 1))))
  (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval (quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (progn (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if synchronous-p ... ... ...) (list ... result))))))))
  (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and ... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ... ...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...)))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (if ... ... ...))))))))
  (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp (eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate (format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
  eshell-do-eval((condition-case err (eshell-do-eval (quote (prog1 (let ((eshell-in-pipeline-p (quote t)) tailproc) (eshell-do-eval (quote (progn ... ...)) nil)) (run-hooks (quote eshell-this-command-hook)))) nil) (error (run-hooks (quote eshell-this-command-hook)) (eshell-errorn (error-message-string err)) (eshell-close-handles 1))) nil)
  (let ((eshell-this-command-hook (quote (ignore)))) (eshell-do-eval (quote (condition-case err (eshell-do-eval (quote (prog1 (let ... ...) (run-hooks ...))) nil) (error (run-hooks (quote eshell-this-command-hook)) (eshell-errorn (error-message-string err)) (eshell-close-handles 1)))) nil))
  eval((let ((eshell-this-command-hook (quote (ignore)))) (eshell-do-eval (quote (condition-case err (eshell-do-eval (quote (prog1 (let ... ...) (run-hooks ...))) nil) (error (run-hooks (quote eshell-this-command-hook)) (eshell-errorn (error-message-string err)) (eshell-close-handles 1)))) nil)))
  (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval (quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (progn (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if synchronous-p ... ... ...) (list ... result))))))))
  (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and ... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ... ...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...)))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (if ... ... ...))))))))
  (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp (eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate (format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
  eshell-do-eval((let ((eshell-this-command-hook (quote (ignore)))) (eshell-do-eval (quote (condition-case err (eshell-do-eval (quote (prog1 (let ... ...) (run-hooks ...))) nil) (error (run-hooks (quote eshell-this-command-hook)) (eshell-errorn (error-message-string err)) (eshell-close-handles 1)))) nil)) nil)
  (setcar args (eshell-do-eval (car args) synchronous-p))
  (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args)))
  (progn (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))
  (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))
  (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args)))))
  (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval (quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (progn (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if synchronous-p ... ... ...) (list ... result))))))))
  (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and ... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ... ...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...)))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (if ... ... ...))))))))
  (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp (eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate (format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
  eshell-do-eval((progn (let ((eshell-this-command-hook (quote (ignore)))) (eshell-do-eval (quote (condition-case err (eshell-do-eval (quote (prog1 ... ...)) nil) (error (run-hooks (quote eshell-this-command-hook)) (eshell-errorn (error-message-string err)) (eshell-close-handles 1)))) nil))) nil)
  (catch (quote top-level) (eshell-do-eval (quote (progn (let ((eshell-this-command-hook (quote ...))) (eshell-do-eval (quote (condition-case err ... ...)) nil)))) nil))
  eval((catch (quote top-level) (eshell-do-eval (quote (progn (let ((eshell-this-command-hook (quote ...))) (eshell-do-eval (quote (condition-case err ... ...)) nil)))) nil)))
  (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval (quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (progn (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if synchronous-p ... ... ...) (list ... result))))))))
  (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and ... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ... ...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...)))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (if ... ... ...))))))))
  (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp (eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate (format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
  eshell-do-eval((catch (quote top-level) (eshell-do-eval (quote (progn (let ((eshell-this-command-hook (quote ...))) (eshell-do-eval (quote (condition-case err ... ...)) nil)))) nil)) nil)
  (setcar args (eshell-do-eval (car args) synchronous-p))
  (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args)))
  (progn (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))
  (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))
  (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args)))))
  (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval (quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (progn (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if synchronous-p ... ... ...) (list ... result))))))))
  (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and ... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ... ...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...)))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (if ... ... ...))))))))
  (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp (eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate (format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
  eshell-do-eval((progn (quote nil) (catch (quote top-level) (eshell-do-eval (quote (progn (let ((eshell-this-command-hook ...)) (eshell-do-eval (quote ...) nil)))) nil)) (run-hooks (quote eshell-post-command-hook))) nil)
  (let ((eshell-current-handles (quote [nil (t . 1) (t . 1)])) eshell-current-subjob-p) (eshell-do-eval (quote (progn (quote nil) (catch (quote top-level) (eshell-do-eval (quote (progn ...)) nil)) (run-hooks (quote eshell-post-command-hook)))) nil))
  eval((let ((eshell-current-handles (quote [nil (t . 1) (t . 1)])) eshell-current-subjob-p) (eshell-do-eval (quote (progn (quote nil) (catch (quote top-level) (eshell-do-eval (quote (progn ...)) nil)) (run-hooks (quote eshell-post-command-hook)))) nil)))
  (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn (\,@ ...))) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr (eshell-do-eval ...)) (cadr args) (car (cddr args))))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car (cadr args)) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and (listp letarg) (not ...)) (setcdr letarg (list ...)))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval (quote ...) (\, synchronous-p)))))) (eval form)) (t (if (and args (not (memq (car form) (quote (run-hooks))))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval (car args) synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form (catch ... ...)) (progn (eshell-manipulate "substituting replacement form" ... ...) (eshell-do-eval form synchronous-p)) (if (and ... ... result ...) (if synchronous-p ... ... ...) (list ... result))))))))
  (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (while (cadr (eshell-do-eval (car eshell-test-body))) (setcar eshell-command-body (if (cddr args) (\` (progn ...)) (eshell-copy-tree (cadr args)))) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body))) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree (car args)))) (setcar eshell-command-body (eshell-copy-tree (if (cadr ...) (cadr args) (car ...)))) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq (car form) (quote let)) (not (eq (car ...) (quote eshell-do-eval)))) (eshell-manipulate "evaluating let args" (dolist (letarg (car args)) (if (and ... ...) (setcdr letarg ...))))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args (\` (eshell-do-eval ... ...))))) (eval form)) (t (if (and args (not (memq (car form) (quote ...)))) (eshell-manipulate (format "evaluating arguments to `%s'" (symbol-name (car form))) (while args (setcar args (eshell-do-eval ... synchronous-p)) (setq args (cdr args))))) (cond ((eq (car form) (quote progn)) (car (last form))) ((eq (car form) (quote prog1)) (cadr form)) (t (let (result new-form) (if (setq new-form ...) (progn ... ...) (if ... ... ...))))))))
  (cond ((not (listp form)) (list (quote quote) (eval form))) ((memq (car form) (quote (quote function))) form) (t (when (eq (car form) (quote eshell-do-eval)) (setq form (cadr (cadr form)))) (if (eshell-macrop (car form)) (let ((exp (eshell-copy-tree (macroexpand form)))) (eshell-manipulate (format "expanding macro `%s'" (symbol-name (car form))) (setcar form (car exp)) (setcdr form (cdr exp))))) (let ((args (cdr form))) (cond ((eq (car form) (quote while)) (when (car eshell-command-body) (assert (not synchronous-p)) (eshell-do-eval (car eshell-command-body)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) (unless (car eshell-test-body) (setcar eshell-test-body (eshell-copy-tree ...))) (while (cadr (eshell-do-eval ...)) (setcar eshell-command-body (if ... ... ...)) (eshell-do-eval (car eshell-command-body) synchronous-p) (setcar eshell-command-body nil) (setcar eshell-test-body (eshell-copy-tree ...))) (setcar eshell-command-body nil)) ((eq (car form) (quote if)) (if (car eshell-command-body) (progn (assert ...) (eshell-do-eval ...)) (unless (car eshell-test-body) (setcar eshell-test-body ...)) (setcar eshell-command-body (eshell-copy-tree ...)) (eshell-do-eval (car eshell-command-body) synchronous-p)) (setcar eshell-command-body nil) (setcar eshell-test-body nil)) ((eq (car form) (quote setcar)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((eq (car form) (quote setcdr)) (setcar (cdr args) (eshell-do-eval (cadr args) synchronous-p)) (eval form)) ((memq (car form) (quote (let catch condition-case unwind-protect))) (if (and (eq ... ...) (not ...)) (eshell-manipulate "evaluating let args" (dolist ... ...))) (unless (eq (car form) (quote unwind-protect)) (setq args (cdr args))) (unless (eq (caar args) (quote eshell-do-eval)) (eshell-manipulate "handling special form" (setcar args ...))) (eval form)) (t (if (and args (not ...)) (eshell-manipulate (format "evaluating arguments to `%s'" ...) (while args ... ...))) (cond ((eq ... ...) (car ...)) ((eq ... ...) (cadr form)) (t (let ... ...))))))))
  eshell-do-eval((let ((eshell-current-handles (quote [nil (t . 1) (t . 1)])) eshell-current-subjob-p) (eshell-do-eval (quote (progn (quote nil) (catch (quote top-level) (eshell-do-eval (quote (progn ...)) nil)) (run-hooks (quote eshell-post-command-hook)))) nil)))
  (setq retval (eshell-do-eval eshell-current-command))
  (ignore (setq retval (eshell-do-eval eshell-current-command)))
  (catch (quote eshell-defer) (ignore (setq retval (eshell-do-eval eshell-current-command))))
  (let* (retval (proc (catch (quote eshell-defer) (ignore (setq retval (eshell-do-eval eshell-current-command)))))) (if (eshell-processp proc) (ignore (setq eshell-last-async-proc proc)) (cadr retval)))
  (progn (let* (retval (proc (catch (quote eshell-defer) (ignore (setq retval (eshell-do-eval eshell-current-command)))))) (if (eshell-processp proc) (ignore (setq eshell-last-async-proc proc)) (cadr retval))))
  (if eshell-current-command (progn (let* (retval (proc (catch (quote eshell-defer) (ignore (setq retval ...))))) (if (eshell-processp proc) (ignore (setq eshell-last-async-proc proc)) (cadr retval)))))
  (when eshell-current-command (let* (retval (proc (catch (quote eshell-defer) (ignore (setq retval (eshell-do-eval eshell-current-command)))))) (if (eshell-processp proc) (ignore (setq eshell-last-async-proc proc)) (cadr retval))))
  (progn (setq eshell-last-async-proc nil) (when eshell-current-command (let* (retval (proc (catch (quote eshell-defer) (ignore (setq retval ...))))) (if (eshell-processp proc) (ignore (setq eshell-last-async-proc proc)) (cadr retval)))))
  (condition-case err (progn (setq eshell-last-async-proc nil) (when eshell-current-command (let* (retval (proc (catch (quote eshell-defer) (ignore ...)))) (if (eshell-processp proc) (ignore (setq eshell-last-async-proc proc)) (cadr retval))))) (error (error (error-message-string err))))
  (eshell-condition-case err (progn (setq eshell-last-async-proc nil) (when eshell-current-command (let* (retval (proc (catch (quote eshell-defer) (ignore ...)))) (if (eshell-processp proc) (ignore (setq eshell-last-async-proc proc)) (cadr retval))))) (error (error (error-message-string err))))
  eshell-resume-eval()
  (catch (quote eshell-incomplete) (eshell-resume-eval))
  (let ((delim (catch (quote eshell-incomplete) (eshell-resume-eval)))) (if (listp delim) (setq delim (car delim))) (if (and delim (not (eq delim t))) (error "Unmatched delimiter: %c" delim)))
  (if eshell-current-command (setcdr (last (cdr eshell-current-command)) (list (\` (let ((here (and ... ...))) (\, (and input (\` ...))) (if here (eshell-update-markers here)) (eshell-do-eval (quote (\, command))))))) (and eshell-debug-command (with-current-buffer (get-buffer-create "*eshell last cmd*") (erase-buffer) (insert "command: \"" input "\"\n"))) (setq eshell-current-command command) (let ((delim (catch (quote eshell-incomplete) (eshell-resume-eval)))) (if (listp delim) (setq delim (car delim))) (if (and delim (not (eq delim t))) (error "Unmatched delimiter: %c" delim))))
  eshell-eval-command((let ((eshell-current-handles (quote [nil (t . 1) (t . 1)])) eshell-current-subjob-p) (eshell-do-eval (quote (progn (quote nil) (catch (quote top-level) (eshell-do-eval (quote (progn ...)) nil)) (run-hooks (quote eshell-post-command-hook)))) nil)) "ls | grep foo")
  (if (eshell-invoke-directly cmd input) (eval cmd) (eshell-eval-command cmd input))
  (ignore (if (eshell-invoke-directly cmd input) (eval cmd) (eshell-eval-command cmd input)))
  (catch (quote eshell-terminal) (ignore (if (eshell-invoke-directly cmd input) (eval cmd) (eshell-eval-command cmd input))))
  (and (catch (quote eshell-terminal) (ignore (if (eshell-invoke-directly cmd input) (eval cmd) (eshell-eval-command cmd input)))) (eshell-life-is-too-much))
  (progn (eshell-update-markers eshell-last-output-end) (setq input (buffer-substring-no-properties eshell-last-input-start (1- eshell-last-input-end))) (run-hooks (quote eshell-input-filter-functions)) (and (catch (quote eshell-terminal) (ignore (if (eshell-invoke-directly cmd input) (eval cmd) (eshell-eval-command cmd input)))) (eshell-life-is-too-much)))
  (if cmd (progn (eshell-update-markers eshell-last-output-end) (setq input (buffer-substring-no-properties eshell-last-input-start (1- eshell-last-input-end))) (run-hooks (quote eshell-input-filter-functions)) (and (catch (quote eshell-terminal) (ignore (if (eshell-invoke-directly cmd input) (eval cmd) (eshell-eval-command cmd input)))) (eshell-life-is-too-much))))
  (when cmd (eshell-update-markers eshell-last-output-end) (setq input (buffer-substring-no-properties eshell-last-input-start (1- eshell-last-input-end))) (run-hooks (quote eshell-input-filter-functions)) (and (catch (quote eshell-terminal) (ignore (if (eshell-invoke-directly cmd input) (eval cmd) (eshell-eval-command cmd input)))) (eshell-life-is-too-much)))
  (let ((cmd (eshell-parse-command-input eshell-last-output-end (1- (point))))) (when cmd (eshell-update-markers eshell-last-output-end) (setq input (buffer-substring-no-properties eshell-last-input-start (1- eshell-last-input-end))) (run-hooks (quote eshell-input-filter-functions)) (and (catch (quote eshell-terminal) (ignore (if (eshell-invoke-directly cmd input) (eval cmd) (eshell-eval-command cmd input)))) (eshell-life-is-too-much))))
  (progn (setq input (buffer-substring-no-properties eshell-last-output-end (1- (point)))) (run-hook-with-args (quote eshell-expand-input-functions) eshell-last-output-end (1- (point))) (let ((cmd (eshell-parse-command-input eshell-last-output-end (1- (point))))) (when cmd (eshell-update-markers eshell-last-output-end) (setq input (buffer-substring-no-properties eshell-last-input-start (1- eshell-last-input-end))) (run-hooks (quote eshell-input-filter-functions)) (and (catch (quote eshell-terminal) (ignore (if (eshell-invoke-directly cmd input) (eval cmd) (eshell-eval-command cmd input)))) (eshell-life-is-too-much)))))
  (condition-case err (progn (setq input (buffer-substring-no-properties eshell-last-output-end (1- (point)))) (run-hook-with-args (quote eshell-expand-input-functions) eshell-last-output-end (1- (point))) (let ((cmd (eshell-parse-command-input eshell-last-output-end (1- (point))))) (when cmd (eshell-update-markers eshell-last-output-end) (setq input (buffer-substring-no-properties eshell-last-input-start (1- eshell-last-input-end))) (run-hooks (quote eshell-input-filter-functions)) (and (catch (quote eshell-terminal) (ignore (if ... ... ...))) (eshell-life-is-too-much))))) (quit (eshell-reset t) (run-hooks (quote eshell-post-command-hook)) (signal (quote quit) nil)) (error (eshell-reset t) (eshell-interactive-print (concat (error-message-string err) "\n")) (run-hooks (quote eshell-post-command-hook)) (insert-and-inherit input)))
  (eshell-condition-case err (progn (setq input (buffer-substring-no-properties eshell-last-output-end (1- (point)))) (run-hook-with-args (quote eshell-expand-input-functions) eshell-last-output-end (1- (point))) (let ((cmd (eshell-parse-command-input eshell-last-output-end (1- (point))))) (when cmd (eshell-update-markers eshell-last-output-end) (setq input (buffer-substring-no-properties eshell-last-input-start (1- eshell-last-input-end))) (run-hooks (quote eshell-input-filter-functions)) (and (catch (quote eshell-terminal) (ignore (if ... ... ...))) (eshell-life-is-too-much))))) (quit (eshell-reset t) (run-hooks (quote eshell-post-command-hook)) (signal (quote quit) nil)) (error (eshell-reset t) (eshell-interactive-print (concat (error-message-string err) "\n")) (run-hooks (quote eshell-post-command-hook)) (insert-and-inherit input)))
  (let (input) (eshell-condition-case err (progn (setq input (buffer-substring-no-properties eshell-last-output-end (1- (point)))) (run-hook-with-args (quote eshell-expand-input-functions) eshell-last-output-end (1- (point))) (let ((cmd (eshell-parse-command-input eshell-last-output-end (1- ...)))) (when cmd (eshell-update-markers eshell-last-output-end) (setq input (buffer-substring-no-properties eshell-last-input-start (1- eshell-last-input-end))) (run-hooks (quote eshell-input-filter-functions)) (and (catch (quote eshell-terminal) (ignore ...)) (eshell-life-is-too-much))))) (quit (eshell-reset t) (run-hooks (quote eshell-post-command-hook)) (signal (quote quit) nil)) (error (eshell-reset t) (eshell-interactive-print (concat (error-message-string err) "\n")) (run-hooks (quote eshell-post-command-hook)) (insert-and-inherit input))))
  (if (= eshell-last-output-end (point)) (run-hooks (quote eshell-post-command-hook)) (let (input) (eshell-condition-case err (progn (setq input (buffer-substring-no-properties eshell-last-output-end (1- (point)))) (run-hook-with-args (quote eshell-expand-input-functions) eshell-last-output-end (1- (point))) (let ((cmd (eshell-parse-command-input eshell-last-output-end ...))) (when cmd (eshell-update-markers eshell-last-output-end) (setq input (buffer-substring-no-properties eshell-last-input-start ...)) (run-hooks (quote eshell-input-filter-functions)) (and (catch ... ...) (eshell-life-is-too-much))))) (quit (eshell-reset t) (run-hooks (quote eshell-post-command-hook)) (signal (quote quit) nil)) (error (eshell-reset t) (eshell-interactive-print (concat (error-message-string err) "\n")) (run-hooks (quote eshell-post-command-hook)) (insert-and-inherit input)))))
  (if proc-running-p (progn (eshell-update-markers eshell-last-output-end) (if (or eshell-send-direct-to-subprocesses (= eshell-last-input-start eshell-last-input-end)) (unless no-newline (process-send-string (eshell-interactive-process) "\n")) (process-send-region (eshell-interactive-process) eshell-last-input-start eshell-last-input-end))) (if (= eshell-last-output-end (point)) (run-hooks (quote eshell-post-command-hook)) (let (input) (eshell-condition-case err (progn (setq input (buffer-substring-no-properties eshell-last-output-end (1- ...))) (run-hook-with-args (quote eshell-expand-input-functions) eshell-last-output-end (1- (point))) (let ((cmd ...)) (when cmd (eshell-update-markers eshell-last-output-end) (setq input ...) (run-hooks ...) (and ... ...)))) (quit (eshell-reset t) (run-hooks (quote eshell-post-command-hook)) (signal (quote quit) nil)) (error (eshell-reset t) (eshell-interactive-print (concat (error-message-string err) "\n")) (run-hooks (quote eshell-post-command-hook)) (insert-and-inherit input))))))
  (if (and proc-running-p (not (eq (process-status (eshell-interactive-process)) (quote run)))) nil (if (or proc-running-p (>= (point) eshell-last-output-end)) (goto-char (point-max)) (let ((copy (eshell-get-old-input use-region))) (goto-char eshell-last-output-end) (insert-and-inherit copy))) (unless (or no-newline (and eshell-send-direct-to-subprocesses proc-running-p)) (insert-before-markers-and-inherit 10)) (if proc-running-p (progn (eshell-update-markers eshell-last-output-end) (if (or eshell-send-direct-to-subprocesses (= eshell-last-input-start eshell-last-input-end)) (unless no-newline (process-send-string (eshell-interactive-process) "\n")) (process-send-region (eshell-interactive-process) eshell-last-input-start eshell-last-input-end))) (if (= eshell-last-output-end (point)) (run-hooks (quote eshell-post-command-hook)) (let (input) (eshell-condition-case err (progn (setq input (buffer-substring-no-properties eshell-last-output-end ...)) (run-hook-with-args (quote eshell-expand-input-functions) eshell-last-output-end (1- ...)) (let (...) (when cmd ... ... ... ...))) (quit (eshell-reset t) (run-hooks (quote eshell-post-command-hook)) (signal (quote quit) nil)) (error (eshell-reset t) (eshell-interactive-print (concat ... "\n")) (run-hooks (quote eshell-post-command-hook)) (insert-and-inherit input)))))))
  (unless (and proc-running-p (not (eq (process-status (eshell-interactive-process)) (quote run)))) (if (or proc-running-p (>= (point) eshell-last-output-end)) (goto-char (point-max)) (let ((copy (eshell-get-old-input use-region))) (goto-char eshell-last-output-end) (insert-and-inherit copy))) (unless (or no-newline (and eshell-send-direct-to-subprocesses proc-running-p)) (insert-before-markers-and-inherit 10)) (if proc-running-p (progn (eshell-update-markers eshell-last-output-end) (if (or eshell-send-direct-to-subprocesses (= eshell-last-input-start eshell-last-input-end)) (unless no-newline (process-send-string (eshell-interactive-process) "\n")) (process-send-region (eshell-interactive-process) eshell-last-input-start eshell-last-input-end))) (if (= eshell-last-output-end (point)) (run-hooks (quote eshell-post-command-hook)) (let (input) (eshell-condition-case err (progn (setq input (buffer-substring-no-properties eshell-last-output-end ...)) (run-hook-with-args (quote eshell-expand-input-functions) eshell-last-output-end (1- ...)) (let (...) (when cmd ... ... ... ...))) (quit (eshell-reset t) (run-hooks (quote eshell-post-command-hook)) (signal (quote quit) nil)) (error (eshell-reset t) (eshell-interactive-print (concat ... "\n")) (run-hooks (quote eshell-post-command-hook)) (insert-and-inherit input)))))))
  (let ((proc-running-p (and (eshell-interactive-process) (not queue-p))) (inhibit-point-motion-hooks t) after-change-functions) (unless (and proc-running-p (not (eq (process-status (eshell-interactive-process)) (quote run)))) (if (or proc-running-p (>= (point) eshell-last-output-end)) (goto-char (point-max)) (let ((copy (eshell-get-old-input use-region))) (goto-char eshell-last-output-end) (insert-and-inherit copy))) (unless (or no-newline (and eshell-send-direct-to-subprocesses proc-running-p)) (insert-before-markers-and-inherit 10)) (if proc-running-p (progn (eshell-update-markers eshell-last-output-end) (if (or eshell-send-direct-to-subprocesses (= eshell-last-input-start eshell-last-input-end)) (unless no-newline (process-send-string (eshell-interactive-process) "\n")) (process-send-region (eshell-interactive-process) eshell-last-input-start eshell-last-input-end))) (if (= eshell-last-output-end (point)) (run-hooks (quote eshell-post-command-hook)) (let (input) (eshell-condition-case err (progn (setq input ...) (run-hook-with-args ... eshell-last-output-end ...) (let ... ...)) (quit (eshell-reset t) (run-hooks ...) (signal ... nil)) (error (eshell-reset t) (eshell-interactive-print ...) (run-hooks ...) (insert-and-inherit input))))))))
  eshell-send-input(nil)
  call-interactively(eshell-send-input nil nil)





  reply	other threads:[~2011-11-18  2:05 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-29 23:09 bug#9907: 24.0.90; eshell:for command destructivly modifies list variables Andreas Politz
2011-10-30  3:59 ` Stefan Monnier
2011-10-30  5:43   ` Thierry Volpiatto
2011-10-30  8:00     ` Stefan Monnier
2011-10-30 18:37       ` Thierry Volpiatto
2011-11-18  2:05         ` Glenn Morris [this message]
2011-11-18 14:49           ` Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=65pqgqmbgl.fsf@fencepost.gnu.org \
    --to=rgm@gnu.org \
    --cc=9907@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).