[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/exwm f4416a1 06/64: Fix potential naming conflicts
From: |
Chris Feng |
Subject: |
[elpa] externals/exwm f4416a1 06/64: Fix potential naming conflicts |
Date: |
Thu, 17 Sep 2015 23:17:50 +0000 |
branch: externals/exwm
commit f4416a10e3f87ceddc70ae02f065f14c5e6dc3fd
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>
Fix potential naming conflicts
Buffers may share a same name (without the possible leading space) when
created
in different workspaces.
---
exwm-workspace.el | 21 +++++++++++++++++----
1 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/exwm-workspace.el b/exwm-workspace.el
index bab2612..b46b2e8 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -119,9 +119,9 @@ The optional FORCE option is for internal use only "
(dolist (i exwm--id-buffer-alist)
(with-current-buffer (cdr i)
(let ((name (replace-regexp-in-string "^\\s-*" "" (buffer-name))))
- (rename-buffer (if (eq (selected-frame) exwm--frame)
- name
- (concat " " name))))))
+ (exwm-workspace-rename-buffer (if (eq (selected-frame) exwm--frame)
+ name
+ (concat " " name))))))
;; Update demands attention flag
(set-frame-parameter (selected-frame) 'exwm--urgency nil)
;; Update switch workspace history
@@ -151,7 +151,7 @@ The optional FORCE option is for internal use only "
(let ((frame (elt exwm-workspace--list index)))
(with-current-buffer (exwm--id->buffer id)
(setq exwm--frame frame)
- (rename-buffer
+ (exwm-workspace-rename-buffer
(concat " " (replace-regexp-in-string "^\\s-*" "" (buffer-name))))
(if exwm--floating-frame
;; Move the floating frame is enough
@@ -172,6 +172,19 @@ The optional FORCE option is for internal use only "
(xcb:flush exwm--connection)
(exwm-workspace--update-switch-history)))
+(defun exwm-workspace-rename-buffer (newname)
+ "Rename a buffer."
+ (if (/= ? (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)))
+
(defun exwm-workspace--init ()
"Initialize workspace module."
(cl-assert (and (< 0 exwm-workspace-number) (>= 10 exwm-workspace-number)))
- [elpa] branch externals/exwm created (now 4255f07), Chris Feng, 2015/09/17
- [elpa] externals/exwm cf87bb5 03/64: Add wiki link to README, Chris Feng, 2015/09/17
- [elpa] externals/exwm 968d0b4 04/64: Various fixes for workspace, Chris Feng, 2015/09/17
- [elpa] externals/exwm 36e8361 05/64: Various fixes, Chris Feng, 2015/09/17
- [elpa] externals/exwm f4416a1 06/64: Fix potential naming conflicts,
Chris Feng <=
- [elpa] externals/exwm ea7c6c7 08/64: Fix typos, Chris Feng, 2015/09/17
- [elpa] externals/exwm 7892ed3 02/64: Improve move/resize, Chris Feng, 2015/09/17
- [elpa] externals/exwm ee3ce55 09/64: Merge pull request #2 from KAMiKAZOW/patch-1, Chris Feng, 2015/09/17
- [elpa] externals/exwm caf2fee 11/64: Drop intro to EXIM, Chris Feng, 2015/09/17
- [elpa] externals/exwm 3fc0cb2 10/64: Various fixes, Chris Feng, 2015/09/17
- [elpa] externals/exwm 3fb90b9 12/64: Fix fullscreen issues, Chris Feng, 2015/09/17
- [elpa] externals/exwm 86764d2 07/64: Add basic RandR support, Chris Feng, 2015/09/17
- [elpa] externals/exwm 1e36a22 13/64: Check buffer mode in exwm-reset, Chris Feng, 2015/09/17
- [elpa] externals/exwm 14628a9 16/64: Fix race conditions when managing a window, Chris Feng, 2015/09/17
- [elpa] externals/exwm 5298489 18/64: Fix some input focus issues, Chris Feng, 2015/09/17