summaryrefslogtreecommitdiff
path: root/lisp/uniquify.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2003-05-07 21:56:43 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2003-05-07 21:56:43 +0000
commitad599c11938b8cf5ccc85c403fb4659debac5d33 (patch)
treee3aaf2eb37d1dd8027af7ce9297b43630fa393e6 /lisp/uniquify.el
parentc6e26ce2e466e93739d2ba3917d15ce7cadf26ea (diff)
downloademacs-ad599c11938b8cf5ccc85c403fb4659debac5d33.tar.gz
emacs-ad599c11938b8cf5ccc85c403fb4659debac5d33.tar.bz2
emacs-ad599c11938b8cf5ccc85c403fb4659debac5d33.zip
(uniquify-rationalize-file-buffer-names):
Don't uniquify if there is no filename.
Diffstat (limited to 'lisp/uniquify.el')
-rw-r--r--lisp/uniquify.el48
1 files changed, 25 insertions, 23 deletions
diff --git a/lisp/uniquify.el b/lisp/uniquify.el
index cf5155c9615..d360b17dc0b 100644
--- a/lisp/uniquify.el
+++ b/lisp/uniquify.el
@@ -180,29 +180,31 @@ If `uniquify-min-dir-content' > 0, always pulls that many
file name elements.
Arguments NEWBUFFILE and NEWBUF cause only a subset of buffers to be renamed."
(interactive)
- (setq newbuffile (expand-file-name (directory-file-name newbuffile)))
- (let ((fix-list nil)
- (base (file-name-nondirectory newbuffile)))
- (dolist (buffer (buffer-list))
- (let ((bufname (buffer-name buffer))
- bfn)
- (when (and (not (and uniquify-ignore-buffers-re
- (string-match uniquify-ignore-buffers-re
- bufname)))
- ;; Only try to rename buffers we actually manage.
- (or (buffer-local-value 'uniquify-managed buffer)
- (eq buffer newbuf))
- (setq bfn (if (eq buffer newbuf) newbuffile
- (uniquify-buffer-file-name buffer)))
- (equal (file-name-nondirectory bfn) base))
- (when (setq bfn (file-name-directory bfn)) ;Strip off the `base'.
- (setq bfn (directory-file-name bfn))) ;Strip trailing slash.
- (push (uniquify-make-item base bfn buffer
- (uniquify-get-proposed-name base bfn))
- fix-list))))
- ;; selects buffers whose names may need changing, and others that
- ;; may conflict, then bring conflicting names together
- (uniquify-rationalize fix-list)))
+ (if (null newbuffile)
+ (with-current-buffer newbuf (setq uniquify-managed nil))
+ (setq newbuffile (expand-file-name (directory-file-name newbuffile)))
+ (let ((fix-list nil)
+ (base (file-name-nondirectory newbuffile)))
+ (dolist (buffer (buffer-list))
+ (let ((bufname (buffer-name buffer))
+ bfn)
+ (when (and (not (and uniquify-ignore-buffers-re
+ (string-match uniquify-ignore-buffers-re
+ bufname)))
+ ;; Only try to rename buffers we actually manage.
+ (or (buffer-local-value 'uniquify-managed buffer)
+ (eq buffer newbuf))
+ (setq bfn (if (eq buffer newbuf) newbuffile
+ (uniquify-buffer-file-name buffer)))
+ (equal (file-name-nondirectory bfn) base))
+ (when (setq bfn (file-name-directory bfn)) ;Strip off the `base'.
+ (setq bfn (directory-file-name bfn))) ;Strip trailing slash.
+ (push (uniquify-make-item base bfn buffer
+ (uniquify-get-proposed-name base bfn))
+ fix-list))))
+ ;; selects buffers whose names may need changing, and others that
+ ;; may conflict, then bring conflicting names together
+ (uniquify-rationalize fix-list))))
;; uniquify's version of buffer-file-name; result never contains trailing slash
(defun uniquify-buffer-file-name (buffer)