From: Jim Porter Date: Sun, 20 Jul 2025 23:05:00 +0000 (-0700) Subject: ; * lisp/eshell/esh-cmd.el (eshell-lisp-command): Simplify. X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4a372ef129d276784cc41af5316cbcb6829faa46;p=emacs.git ; * lisp/eshell/esh-cmd.el (eshell-lisp-command): Simplify. (cherry picked from commit cb2de766149e47a7ffe245f7c78ff414ead69d78) --- diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el index a6662285722..64724e5ee9b 100644 --- a/lisp/eshell/esh-cmd.el +++ b/lisp/eshell/esh-cmd.el @@ -1585,36 +1585,30 @@ a string naming a Lisp function." (setq eshell-last-arguments args) (let* ((eshell-ensure-newline-p t) (command-form-p (functionp object)) - (result - (if command-form-p - (let ((numeric (not (get object - 'eshell-no-numeric-conversions))) - (fname-args (get object 'eshell-filename-arguments))) - (when (or numeric fname-args) - (while args - (let ((arg (car args))) - (cond - ((and numeric (eshell--numeric-string-p arg)) - ;; If any of the arguments are flagged as - ;; numbers waiting for conversion, convert - ;; them now. - (setcar args (string-to-number arg))) - ((and fname-args (stringp arg) - (string-equal arg "~")) - ;; If any of the arguments match "~", - ;; prepend "./" to treat it as a regular - ;; file name. - (setcar args (concat "./" arg))))) - (setq args (cdr args)))) - (setq eshell-last-command-name - (concat "#")) - (eshell-apply* #'eshell-print-maybe-n - #'eshell-error-maybe-n - object eshell-last-arguments)) - (setq eshell-last-command-name "#") - (eshell-eval* #'eshell-print-maybe-n - #'eshell-error-maybe-n - object)))) + result) + (if command-form-p + (let ((numeric (not (get object 'eshell-no-numeric-conversions))) + (fname-args (get object 'eshell-filename-arguments))) + (when (or numeric fname-args) + (while args + (let ((arg (car args))) + (cond + ((and numeric (eshell--numeric-string-p arg)) + ;; If any of the arguments are flagged as numbers + ;; waiting for conversion, convert them now. + (setcar args (string-to-number arg))) + ((and fname-args (stringp arg) + (string-equal arg "~")) + ;; If any of the arguments match "~", prepend "./" + ;; to treat it as a regular file name. + (setcar args (concat "./" arg))))) + (setq args (cdr args)))) + (setq eshell-last-command-name + (concat "#"))) + (setq eshell-last-command-name "#")) + (setq result (eshell-exec-lisp + #'eshell-print-maybe-n #'eshell-error-maybe-n + object eshell-last-arguments (not command-form-p))) (when (memq eshell-in-pipeline-p '(nil last)) (eshell-set-exit-info ;; If `eshell-lisp-form-nil-is-failure' is non-nil, Lisp forms