changeset 38007:fa54203d014a

(eshell-exit-success-p): Use a string-match to test if the last command was Lisp or not. (eshell-rewrite-if-command): "if" syntax is "if A B C", not "if A B x C".
author John Wiegley <johnw@newartisans.com>
date Sat, 09 Jun 2001 05:24:15 +0000
parents 13be8065f0ca
children 710f2cbdd6ab
files lisp/eshell/esh-cmd.el
diffstat 1 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/eshell/esh-cmd.el	Sat Jun 09 05:23:38 2001 +0000
+++ b/lisp/eshell/esh-cmd.el	Sat Jun 09 05:24:15 2001 +0000
@@ -613,10 +613,10 @@
        (eshell-invokify-arg (cadr terms) nil t)
        (list 'eshell-protect
 	     (eshell-invokify-arg
-	      (if (= (length terms) 5)
-		  (car (last terms 3))
+	      (if (= (length terms) 4)
+		  (car (last terms 2))
 		(car (last terms))) t))
-       (if (= (length terms) 5)
+       (if (= (length terms) 4)
 	   (list 'eshell-protect
 		 (eshell-invokify-arg
 		  (car (last terms)))) t))))
@@ -625,7 +625,9 @@
   "Return non-nil if the last command was \"successful\".
 For a bit of Lisp code, this means a return value of non-nil.
 For an external command, it means an exit code of 0."
-  (if (string= eshell-last-command-name "#<Lisp>")
+  (if (save-match-data
+	(string-match "#<\\(Lisp object\\|function .*\\)>"
+		      eshell-last-command-name))
       eshell-last-command-result
     (= eshell-last-command-status 0)))