mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-27 10:54:40 +00:00
(uniquify-rationalize-file-buffer-names):
Add to kill-buffer-hook for buffers with conflict. (rename-buffer): Check kill-buffer-hook to see if there was a conflict. (uniquify-delay-rationalize-file-buffer-names): Remove useless check. (kill-buffer-hook): Don't change globally.
This commit is contained in:
parent
184c3d811a
commit
124e448b98
@ -184,7 +184,8 @@ contains the name of the directory which the buffer is visiting.")
|
||||
(defun uniquify-rationalize-file-buffer-names (&optional newbuffile newbuf)
|
||||
"Make file buffer names unique by adding segments from file name.
|
||||
If `uniquify-min-dir-content' > 0, always pulls that many
|
||||
file name elements. Arguments cause only a subset of buffers to be renamed."
|
||||
file name elements.
|
||||
Arguments NEWBUFFILE and NEWBUF cause only a subset of buffers to be renamed."
|
||||
(interactive)
|
||||
(let (fix-list
|
||||
uniquify-non-file-buffer-names
|
||||
@ -208,6 +209,13 @@ file name elements. Arguments cause only a subset of buffers to be renamed."
|
||||
rawname bfn uniquify-min-dir-content)))
|
||||
(push (vector rawname bfn buffer proposed) fix-list)
|
||||
(push bufname uniquify-non-file-buffer-names))))
|
||||
;; Set up uniquify to re-rationalize after killing/renaming
|
||||
;; if there is a conflict.
|
||||
(when (and uniquify-after-kill-buffer-p newbuffile (cdr fix-list))
|
||||
(dolist (fix fix-list)
|
||||
(with-current-buffer (uniquify-ref-buffer fix)
|
||||
(add-hook 'kill-buffer-hook
|
||||
'uniquify-delay-rationalize-file-buffer-names nil t))))
|
||||
;; selects buffers whose names may need changing, and others that
|
||||
;; may conflict, then bring conflicting names together
|
||||
(uniquify-rationalize-a-list fix-list uniquify-min-dir-content)))
|
||||
@ -361,7 +369,8 @@ in `uniquify-list-buffers-directory-modes', otherwise returns nil."
|
||||
;; UNIQUE argument
|
||||
(ad-get-arg 1))
|
||||
(progn
|
||||
(if uniquify-after-kill-buffer-p
|
||||
(if (memq 'uniquify-delay-rationalize-file-buffer-names
|
||||
kill-buffer-hook)
|
||||
;; call with no argument; rationalize vs. old name as well as new
|
||||
(uniquify-rationalize-file-buffer-names)
|
||||
;; call with argument: rationalize vs. new name only
|
||||
@ -389,9 +398,7 @@ in `uniquify-list-buffers-directory-modes', otherwise returns nil."
|
||||
"Add `delayed-uniquify-rationalize-file-buffer-names' to `post-command-hook'.
|
||||
For use on, eg, `kill-buffer-hook', to rationalize *after* buffer deletion."
|
||||
(if (and uniquify-buffer-name-style
|
||||
uniquify-after-kill-buffer-p
|
||||
;; Rationalizing is costly, so don't do it for temp buffers.
|
||||
(uniquify-buffer-file-name (current-buffer)))
|
||||
uniquify-after-kill-buffer-p)
|
||||
(add-hook 'post-command-hook
|
||||
'uniquify-delayed-rationalize-file-buffer-names)))
|
||||
|
||||
@ -402,6 +409,4 @@ See also `delay-rationalize-file-buffer-names' for hook setter."
|
||||
(remove-hook 'post-command-hook
|
||||
'uniquify-delayed-rationalize-file-buffer-names))
|
||||
|
||||
(add-hook 'kill-buffer-hook 'uniquify-delay-rationalize-file-buffer-names)
|
||||
|
||||
;;; uniquify.el ends here
|
||||
|
Loading…
Reference in New Issue
Block a user