]> git.eshelyaron.com Git - emacs.git/commitdiff
Use 'eshell-with-handles' when executing an Eshell file
authorJim Porter <jporterbugs@gmail.com>
Wed, 28 Aug 2024 20:59:04 +0000 (13:59 -0700)
committerEshel Yaron <me@eshelyaron.com>
Wed, 4 Sep 2024 07:51:41 +0000 (09:51 +0200)
This makes sure we close the handles as we should, which is important
for writing the output to an actual file (bug#72857).

* lisp/eshell/em-script.el (esh-cmd): Require this, just to be explicit.
(eshell-execute-file): Use 'eshell-with-handles'.

(cherry picked from commit e97ab1c41332e179939f457cc010a606a5124ff8)

lisp/eshell/em-script.el

index 80dea16106bef6bf83db9967bfa44e0b6e619e30..a8662c4a2b79a0349dc8b1014946899ba59fe812 100644 (file)
@@ -24,6 +24,7 @@
 ;;; Code:
 
 (require 'esh-mode)
+(require 'esh-cmd)
 (require 'esh-io)
 
 ;;;###esh-module-autoload
@@ -127,10 +128,9 @@ Comments begin with `#'."
     (with-temp-buffer
       (eshell-mode)
       (eshell-do-eval
-       `(let ((eshell-current-handles
-               (eshell-create-handles ,stdout 'insert ,stderr 'insert))
-              (eshell-current-subjob-p))
-          ,(eshell--source-file file args))
+       `(eshell-with-handles (,stdout 'insert ,stderr 'insert)
+          (let ((eshell-current-subjob-p))
+            ,(eshell--source-file file args)))
        t))))
 
 (cl-defstruct (eshell-princ-target