[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/detached 4aa219a660: Reuse detached shell buffers with
From: |
ELPA Syncer |
Subject: |
[elpa] externals/detached 4aa219a660: Reuse detached shell buffers with <NUMBER> suffix |
Date: |
Mon, 24 Oct 2022 11:57:32 -0400 (EDT) |
branch: externals/detached
commit 4aa219a6600b5f37d8926496401f2b20d0b4900a
Author: Daniel Pettersson <daniel@dpettersson.net>
Commit: Niklas Eklund <niklas.eklund@posteo.net>
Reuse detached shell buffers with <NUMBER> suffix
Currently only the first shell command buffer "*Detached Shell
Command*" is reused if `get-buffer-process` fails to get process.
Buffers named "*Detached Shell Command*<NUMBER>" are handled
differently and if "*Detached Shell Command*" is attached to a long
running process. New *Detached Shell Command*<NUMBER> will fill up the
buffer list.
This is fixed by doing the same check process check for
*Detached Shell Command*<NUMBER> buffers as well before creating a new
buffer.
---
detached.el | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/detached.el b/detached.el
index 20439139f4..7d91058cb3 100644
--- a/detached.el
+++ b/detached.el
@@ -694,10 +694,10 @@ Optionally SUPPRESS-OUTPUT."
(or detached--current-session
(detached-create-session command)))
((symbol-function #'set-process-sentinel) #'ignore)
- (buffer (get-buffer-create detached--shell-command-buffer))
+ (buffer (detached--generate-buffer
detached--shell-command-buffer
+ (lambda (buffer)
+ (not (get-buffer-process
buffer)))))
(command (detached--shell-command detached--current-session
t)))
- (when (get-buffer-process buffer)
- (setq buffer (generate-new-buffer (buffer-name buffer))))
(setq detached-enabled nil)
(funcall #'async-shell-command command buffer)
(with-current-buffer buffer
@@ -1653,6 +1653,22 @@ If event is cased by an update to the `detached'
database, re-initialize
(seq-max)
(min width)))))
+(defun detached--generate-buffer (name reuse-p &optional number)
+ "Reuse or generate new buffer like built-in function `generate-new-buffer'.
+NAME is used the same way as `generate-new-buffer' but if a buffer which
+REUSE-P for buffer returns nil, return buffer instead.
+
+NUMBER is used internally for recursive calls, but can be used to
+start searching at NUMBER offset."
+ (let* ((buffer-name (if number
+ (format "%s<%d>" name number)
+ name))
+ (buffer (get-buffer buffer-name))
+ (number (or number 1)))
+ (if (and buffer (not (funcall reuse-p buffer)))
+ (detached--generate-buffer name reuse-p (1+ number))
+ (get-buffer-create buffer-name))))
+
(defun detached--metadata-git-branch ()
"Return current git branch."
(let ((args '("symbolic-ref" "HEAD" "--short")))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/detached 4aa219a660: Reuse detached shell buffers with <NUMBER> suffix,
ELPA Syncer <=