From 05a685722c121fadc1b4c68e87c5813f041cb5c3 Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Sat, 9 Jun 2001 05:24:15 +0000 Subject: [PATCH] (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". --- lisp/eshell/esh-cmd.el | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el index 7ee97d5debc..88096be13e2 100644 --- a/lisp/eshell/esh-cmd.el +++ b/lisp/eshell/esh-cmd.el @@ -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 "#") + (if (save-match-data + (string-match "#<\\(Lisp object\\|function .*\\)>" + eshell-last-command-name)) eshell-last-command-result (= eshell-last-command-status 0))) -- 2.39.5