mirror of
https://github.com/emacs-exwm/exwm.git
synced 2024-11-27 06:48:00 +01:00
Fix exwm-workspace-rename-buffer
Ensure buffer names are unique.
This commit is contained in:
parent
b50a6e6dd9
commit
bb4ebde55b
1 changed files with 11 additions and 10 deletions
|
@ -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."
|
||||
|
|
Loading…
Reference in a new issue