branch: externals/dtache commit 77d6ad3ac3bc2d51f2c679431cdbccd2cf165011 Author: Niklas Eklund <niklas.ekl...@posteo.net> Commit: Niklas Eklund <niklas.ekl...@posteo.net>
Improve buffer handling with dtache-shell-command This patch updates the way new buffers are generated with dtache-shell-command. A new buffer will only be issued if the existing one is occupied. --- dtache.el | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dtache.el b/dtache.el index 0bdbf6dbab..087df01cbc 100644 --- a/dtache.el +++ b/dtache.el @@ -333,9 +333,11 @@ Optionally SUPPRESS-OUTPUT." (if (not (dtache--session-attachable session)) (dtache-tail-output session) (cl-letf* (((symbol-function #'set-process-sentinel) #'ignore) - (buffer dtache--shell-command-buffer) + (buffer (get-buffer-create dtache--shell-command-buffer)) (default-directory (dtache--session-working-directory session)) (dtach-command (dtache-dtach-command session t))) + (when (get-buffer-process buffer) + (setq buffer (generate-new-buffer (buffer-name buffer)))) (funcall #'async-shell-command dtach-command buffer) (with-current-buffer buffer (setq dtache--buffer-session dtache--current-session)))))))) @@ -540,7 +542,9 @@ Optionally SUPPRESS-OUTPUT." `("dtache" nil ,(dtache-dtach-command dtache--current-session t)))) (cl-letf* ((dtache-session-mode 'create-and-attach) ((symbol-function #'set-process-sentinel) #'ignore) - (buffer (generate-new-buffer-name dtache--shell-command-buffer))) + (buffer (get-buffer-create dtache--shell-command-buffer))) + (when (get-buffer-process buffer) + (setq buffer (generate-new-buffer (buffer-name buffer)))) (setq dtache-enabled nil) (funcall #'async-shell-command (dtache-dtach-command dtache--current-session t) buffer) (with-current-buffer buffer (setq dtache--buffer-session dtache--current-session))))))