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…
	
	Add table
		Add a link
		
	
		Reference in a new issue