diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2003-05-07 21:56:43 +0000 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2003-05-07 21:56:43 +0000 |
commit | ad599c11938b8cf5ccc85c403fb4659debac5d33 (patch) | |
tree | e3aaf2eb37d1dd8027af7ce9297b43630fa393e6 /lisp/uniquify.el | |
parent | c6e26ce2e466e93739d2ba3917d15ce7cadf26ea (diff) | |
download | emacs-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.el | 48 |
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) |