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

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

[elpa] externals/exwm bb4ebde 46/64: Fix `exwm-workspace-rename-buffer`


From: Chris Feng
Subject: [elpa] externals/exwm bb4ebde 46/64: Fix `exwm-workspace-rename-buffer`
Date: Thu, 17 Sep 2015 23:18:07 +0000

branch: externals/exwm
commit bb4ebde55b3bdd903cfc3bcaba3001957763c83d
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>

    Fix `exwm-workspace-rename-buffer`
    
    Ensure buffer names are unique.
---
 exwm-workspace.el |   21 +++++++++++----------
 1 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/exwm-workspace.el b/exwm-workspace.el
index cf8caa8..27e3179 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -202,16 +202,17 @@ The optional FORCE option is for internal use only."
 
 (defun exwm-workspace-rename-buffer (newname)
   "Rename a buffer."
-  (if (/= ?\s (aref newname 0))
-      (rename-buffer newname t)
-    ;; If a buffer name is prefixed with a space, Emacs append a random
-    ;; number before renaming it. This is not desired behavior.
-    (let ((name (replace-regexp-in-string "<[0-9]+>$" "" newname))
-          (counter 1))
-      (while (and (get-buffer newname)
-                  (not (eq (get-buffer newname) (current-buffer))))
-        (setq newname (format "%s<%d>" name (cl-incf counter)))))
-    (rename-buffer newname)))
+  (let ((hidden (= ?\s (aref newname 0)))
+        (basename (replace-regexp-in-string "<[0-9]+>$" "" newname))
+        (counter 1)
+        tmp)
+    (when hidden (setq basename (substring basename 1)))
+    (setq newname basename)
+    (while (and (setq tmp (or (get-buffer newname)
+                              (get-buffer (concat " " newname))))
+                (not (eq tmp (current-buffer))))
+      (setq newname (format "%s<%d>" basename (cl-incf counter))))
+    (rename-buffer (concat (and hidden " ") newname))))
 
 (defun exwm-workspace--init ()
   "Initialize workspace module."



reply via email to

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