branch: elpa/aidermacs commit 899af250e606aca569139ef3537d7ba9569d9002 Author: Milan Glacier <d...@milanglacier.com> Commit: Milan Glacier <d...@milanglacier.com>
fix(vterm): use dynamic binding instead of global binding. --- aidermacs-backend-vterm.el | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/aidermacs-backend-vterm.el b/aidermacs-backend-vterm.el index b26825d1fd..22ab2c93d4 100644 --- a/aidermacs-backend-vterm.el +++ b/aidermacs-backend-vterm.el @@ -7,6 +7,10 @@ (require 'vterm nil 'noerror) +;; we want to ensure these two variables are dynamic binding +(defvar vterm-shell) +(defvar vterm-buffer-name) + (defun aidermacs--vterm-output-advice (orig-fun &rest args) "Capture output before and after executing `vterm-send-return'. This advice records the current prompt position as START-POINT, @@ -67,17 +71,12 @@ and BUFFER-NAME is the name of the vterm buffer." "--dark-mode" "--light-mode")) (cmd (mapconcat 'identity (append (list program mode) args) " ")) - (vterm-buffer-name-orig vterm-buffer-name) + (vterm-buffer-name buffer-name) + (vterm-shell cmd) (vterm-shell-orig vterm-shell)) - ;; Temporarily set globals so that the new buffer uses our values. - (setq vterm-buffer-name buffer-name) - (setq vterm-shell cmd) (with-current-buffer (vterm-other-window) (aidermacs-minor-mode 1) - (advice-add 'vterm-send-return :around #'aidermacs--vterm-output-advice)) - ;; Restore the original globals. - (setq vterm-buffer-name vterm-buffer-name-orig) - (setq vterm-shell vterm-shell-orig))) + (advice-add 'vterm-send-return :around #'aidermacs--vterm-output-advice)))) buffer-name) (defun aidermacs--send-command-vterm (buffer command)