emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/eat 559c9c362c 4/7: Refactor 'eat--eshell-adjust-make-proc


From: ELPA Syncer
Subject: [nongnu] elpa/eat 559c9c362c 4/7: Refactor 'eat--eshell-adjust-make-process-args'
Date: Thu, 15 Dec 2022 10:58:37 -0500 (EST)

branch: elpa/eat
commit 559c9c362c43b942f1907b55bbbb48f9f1645e82
Author: Akib Azmain Turja <akib@disroot.org>
Commit: Akib Azmain Turja <akib@disroot.org>

    Refactor 'eat--eshell-adjust-make-process-args'
    
    * eat.el (eat--eshell-adjust-make-process-args): Move the
    'add-hook' out of 'unwind-protect'.
---
 eat.el | 83 +++++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 41 insertions(+), 42 deletions(-)

diff --git a/eat.el b/eat.el
index 673d8bdb10..831b85ab29 100644
--- a/eat.el
+++ b/eat.el
@@ -5543,49 +5543,48 @@ Disable terminal emulation?")))
                   (set-process-filter proc #'eat--eshell-filter)
                   (set-process-sentinel proc #'eat--eshell-sentinel)
                   (eat--eshell-setup-proc-and-term proc))))
+      (add-hook 'eshell-exec-hook hook 99)
       (unwind-protect
-          (progn
-            (add-hook 'eshell-exec-hook hook 99)
-            (cond
-             ;; Emacs 29 and above.
-             ((>= emacs-major-version 29)
-              (cl-letf*
-                  ((make-process (symbol-function #'make-process))
-                   ((symbol-function #'make-process)
-                    (lambda (&rest plist)
-                      ;; Make sure we don't attack wrong process.
-                      (if (not (equal
-                                (plist-get plist :command)
-                                (cons (file-local-name
-                                       (expand-file-name command))
-                                      args)))
-                          (apply make-process plist)
-                        (setf (plist-get plist :command)
-                              `("/usr/bin/env" "sh" "-c"
-                                ,(format "stty -nl echo rows %d \
-columns %d sane 2>%s ; if [ $1 = .. ]; then shift; fi; exec \"$@\""
-                                         (floor (window-screen-lines))
-                                         (window-max-chars-per-line)
-                                         null-device)
-                                ".." ,@(plist-get plist :command)))
-                        (apply make-process plist)))))
-                (funcall fn command args)))
-             ;; Emacs 28.
-             (t
-              (cl-letf*
-                  ((start-file-process
-                    (symbol-function #'start-file-process))
-                   ((symbol-function #'start-file-process)
-                    (lambda (name buffer &rest command)
-                      (apply start-file-process name buffer
-                             "/usr/bin/env" "sh" "-c"
-                             (format "stty -nl echo rows %d columns \
-%d sane 2>%s ; if [ $1 = .. ]; then shift; fi; exec \"$@\""
-                                     (floor (window-screen-lines))
-                                     (window-max-chars-per-line)
-                                     null-device)
-                             ".." command))))
-                (funcall fn command args)))))
+          (cond
+           ;; Emacs 29 and above.
+           ((>= emacs-major-version 29)
+            (cl-letf*
+                ((make-process (symbol-function #'make-process))
+                 ((symbol-function #'make-process)
+                  (lambda (&rest plist)
+                    ;; Make sure we don't attack wrong process.
+                    (if (not (equal
+                              (plist-get plist :command)
+                              (cons (file-local-name
+                                     (expand-file-name command))
+                                    args)))
+                        (apply make-process plist)
+                      (setf (plist-get plist :command)
+                            `("/usr/bin/env" "sh" "-c"
+                              ,(format "stty -nl echo rows %d columns\
+ %d sane 2>%s ; if [ $1 = .. ]; then shift; fi; exec \"$@\""
+                                       (floor (window-screen-lines))
+                                       (window-max-chars-per-line)
+                                       null-device)
+                              ".." ,@(plist-get plist :command)))
+                      (apply make-process plist)))))
+              (funcall fn command args)))
+           ;; Emacs 28.
+           (t
+            (cl-letf*
+                ((start-file-process
+                  (symbol-function #'start-file-process))
+                 ((symbol-function #'start-file-process)
+                  (lambda (name buffer &rest command)
+                    (apply start-file-process name buffer
+                           "/usr/bin/env" "sh" "-c"
+                           (format "stty -nl echo rows %d columns %d \
+sane 2>%s ; if [ $1 = .. ]; then shift; fi; exec \"$@\""
+                                   (floor (window-screen-lines))
+                                   (window-max-chars-per-line)
+                                   null-device)
+                           ".." command))))
+              (funcall fn command args))))
         (remove-hook 'eshell-exec-hook hook)))))
 
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]