branch: externals/mpdired
commit 558206b2a13031c20e85c0b949d5b10cc15edaf5
Author: Manuel Giraud <man...@ledu-giraud.fr>
Commit: Manuel Giraud <man...@ledu-giraud.fr>

    create main buffer in one place only
    
    Also, do not reset its mode if the buffer already exists.
---
 mpdired.el | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/mpdired.el b/mpdired.el
index ef27f9a939..584930fbcb 100644
--- a/mpdired.el
+++ b/mpdired.el
@@ -440,7 +440,7 @@ used for mark followed by a space."
     (with-current-buffer (process-buffer proc)
       (setq ascending-p mpdired--ascending-p
            playlist mpdired--playlist))
-    (with-current-buffer (get-buffer-create main-buffer)
+    (with-current-buffer main-buffer
       (let* ((inhibit-read-only t)
             ;; `content' is always of the form ("" rest...) so if
             ;; there is only one element in rest use it as content.
@@ -491,7 +491,7 @@ used for mark followed by a space."
         (elapsed (cadr data))
         (duration (caddr data))
         (songs (cdddr data)))
-    (with-current-buffer (get-buffer-create main-buffer)
+    (with-current-buffer main-buffer
       (let ((inhibit-read-only t))
        (erase-buffer)
        ;; Insert content
@@ -593,10 +593,11 @@ used for mark followed by a space."
          (setq mpdired--network-params params
                mpdired--main-buffer (mpdired--main-name host service localp))
          (set-process-buffer (apply 'make-network-process params)
-                             (current-buffer))
-         ;; Set mode in main buffer.
-         (with-current-buffer (get-buffer-create mpdired--main-buffer)
-           (mpdired-mode)))))))
+                             (current-buffer))))
+      ;; Set mode in main buffer if it does not already exist.
+      (unless (get-buffer mpdired--main-buffer)
+       (with-current-buffer (get-buffer-create mpdired--main-buffer)
+         (mpdired-mode))))))
 
 (defmacro mpdired--with-comm-buffer (process buffer &rest body)
   "Helper macro when sending a command via the communication buffer.

Reply via email to