2005-05-26 John Wiegley <johnw@newartisans.com>
+ * eshell/esh-cmd.el (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.
+
* eshell/em-cmpl.el (eshell-complete-parse-arguments): If the
character before a space at the end of a line is \, assume the
space is part of the last argument rather than a final argument
(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))
(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."