summaryrefslogtreecommitdiff
path: root/lisp/uniquify.el
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2008-11-15 22:37:20 +0000
committerGlenn Morris <rgm@gnu.org>2008-11-15 22:37:20 +0000
commit43ae2c48f7e87b8ed6143781507cc7063af1c941 (patch)
tree85940db357de8051da994e61f0b5904a13ce8641 /lisp/uniquify.el
parent406aaa6f6d6786ca258ac7dc7f7a10ed409059b5 (diff)
downloademacs-43ae2c48f7e87b8ed6143781507cc7063af1c941.tar.gz
(uniquify-maybe-rerationalize-w/o-cb): Remove
uniquify-after-kill-buffer-p dependency. (uniquify-kill-buffer-function): New function. (kill-buffer-hook): Use uniquify-kill-buffer-function. (Bug#1315)
Diffstat (limited to 'lisp/uniquify.el')
-rw-r--r--lisp/uniquify.el17
1 files changed, 11 insertions, 6 deletions
diff --git a/lisp/uniquify.el b/lisp/uniquify.el
index 7acd6506426..a6063c21d9c 100644
--- a/lisp/uniquify.el
+++ b/lisp/uniquify.el
@@ -427,22 +427,27 @@ in `uniquify-list-buffers-directory-modes', otherwise returns nil."
;;; Hooks from the rest of Emacs
+(defun uniquify-maybe-rerationalize-w/o-cb ()
+ "Re-rationalize buffer names, ignoring current buffer."
+ (and (cdr uniquify-managed)
+ uniquify-buffer-name-style
+ (uniquify-rerationalize-w/o-cb uniquify-managed)))
+
;; Buffer deletion
;; Rerationalize after a buffer is killed, to reduce coinciding buffer names.
;; This mechanism uses `kill-buffer-hook', which runs *before* deletion, so
;; it calls `uniquify-rerationalize-w/o-cb' to rerationalize the buffer list
;; ignoring the current buffer (which is going to be deleted anyway).
-(defun uniquify-maybe-rerationalize-w/o-cb ()
+(defun uniquify-kill-buffer-function ()
"Re-rationalize buffer names, ignoring current buffer.
For use on `kill-buffer-hook'."
- (if (and (cdr uniquify-managed)
- uniquify-buffer-name-style
- uniquify-after-kill-buffer-p)
- (uniquify-rerationalize-w/o-cb uniquify-managed)))
+ (and uniquify-after-kill-buffer-p
+ (uniquify-maybe-rerationalize-w/o-cb)))
;; Ideally we'd like to add it buffer-locally, but that doesn't work
;; because kill-buffer-hook is not permanent-local :-(
-(add-hook 'kill-buffer-hook 'uniquify-maybe-rerationalize-w/o-cb)
+;; FIXME kill-buffer-hook _is_ permanent-local in 22+.
+(add-hook 'kill-buffer-hook 'uniquify-kill-buffer-function)
;; The logical place to put all this code is in generate-new-buffer-name.
;; It's written in C, so we would add a generate-new-buffer-name-function