changeset 62789:74e26c83386f

(eshell-eval-command): If the return value of `eshell-resume-eval' is wrapped in a list, it indicates that the command was run asynchronously. In that case, unwrap the value before checking the delimiter value.
author John Wiegley <johnw@newartisans.com>
date Fri, 27 May 2005 02:56:52 +0000
parents ed936737c106
children 0751d21ef87f
files lisp/eshell/esh-cmd.el
diffstat 1 files changed, 4 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/eshell/esh-cmd.el	Fri May 27 02:15:36 2005 +0000
+++ b/lisp/eshell/esh-cmd.el	Fri May 27 02:56:52 2005 +0000
@@ -757,7 +757,7 @@
 
 (defmacro eshell-do-subjob (object)
   "Evaluate a command OBJECT as a subjob.
-We indicate thet the process was run in the background by returned it
+We indicate that the process was run in the background by returning it
 ensconced in a list."
   `(let ((eshell-current-subjob-p t))
      ,object))
@@ -1006,11 +1006,10 @@
 		   (eshell-resume-eval))))
       ;; On systems that don't support async subprocesses, eshell-resume
       ;; can return t.  Don't treat that as an error.
+      (if (listp delim)
+	  (setq delim (car delim)))
       (if (and delim (not (eq delim t)))
-	  (error "Unmatched delimiter: %c"
-		 (if (listp delim)
-		     (car delim)
-		   delim))))))
+	  (error "Unmatched delimiter: %c" delim)))))
 
 (defun eshell-resume-command (proc status)
   "Resume the current command when a process ends."