]> git.eshelyaron.com Git - emacs.git/commitdiff
(eshell-exit-success-p): Use a string-match to test if the last
authorJohn Wiegley <johnw@newartisans.com>
Sat, 9 Jun 2001 05:24:15 +0000 (05:24 +0000)
committerJohn Wiegley <johnw@newartisans.com>
Sat, 9 Jun 2001 05:24:15 +0000 (05:24 +0000)
command was Lisp or not.
(eshell-rewrite-if-command): "if" syntax is "if A B C", not "if A B x
C".

lisp/eshell/esh-cmd.el

index 7ee97d5debc3f95df38eb259cae95b4bee3a6dcc..88096be13e211be00c6f3bda5cec59373da7f2cd 100644 (file)
@@ -613,10 +613,10 @@ must be implemented via rewriting, rather than as a function."
        (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 @@ must be implemented via rewriting, rather than as a function."
   "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)))