aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2003-05-07 21:56:43 +0000
committerStefan Monnier2003-05-07 21:56:43 +0000
commitad599c11938b8cf5ccc85c403fb4659debac5d33 (patch)
treee3aaf2eb37d1dd8027af7ce9297b43630fa393e6
parentc6e26ce2e466e93739d2ba3917d15ce7cadf26ea (diff)
downloademacs-ad599c11938b8cf5ccc85c403fb4659debac5d33.tar.gz
emacs-ad599c11938b8cf5ccc85c403fb4659debac5d33.zip
(uniquify-rationalize-file-buffer-names):
Don't uniquify if there is no filename.
-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
180file name elements. 180file name elements.
181Arguments NEWBUFFILE and NEWBUF cause only a subset of buffers to be renamed." 181Arguments NEWBUFFILE and NEWBUF cause only a subset of buffers to be renamed."
182 (interactive) 182 (interactive)
183 (setq newbuffile (expand-file-name (directory-file-name newbuffile))) 183 (if (null newbuffile)
184 (let ((fix-list nil) 184 (with-current-buffer newbuf (setq uniquify-managed nil))
185 (base (file-name-nondirectory newbuffile))) 185 (setq newbuffile (expand-file-name (directory-file-name newbuffile)))
186 (dolist (buffer (buffer-list)) 186 (let ((fix-list nil)
187 (let ((bufname (buffer-name buffer)) 187 (base (file-name-nondirectory newbuffile)))
188 bfn) 188 (dolist (buffer (buffer-list))
189 (when (and (not (and uniquify-ignore-buffers-re 189 (let ((bufname (buffer-name buffer))
190 (string-match uniquify-ignore-buffers-re 190 bfn)
191 bufname))) 191 (when (and (not (and uniquify-ignore-buffers-re
192 ;; Only try to rename buffers we actually manage. 192 (string-match uniquify-ignore-buffers-re
193 (or (buffer-local-value 'uniquify-managed buffer) 193 bufname)))
194 (eq buffer newbuf)) 194 ;; Only try to rename buffers we actually manage.
195 (setq bfn (if (eq buffer newbuf) newbuffile 195 (or (buffer-local-value 'uniquify-managed buffer)
196 (uniquify-buffer-file-name buffer))) 196 (eq buffer newbuf))
197 (equal (file-name-nondirectory bfn) base)) 197 (setq bfn (if (eq buffer newbuf) newbuffile
198 (when (setq bfn (file-name-directory bfn)) ;Strip off the `base'. 198 (uniquify-buffer-file-name buffer)))
199 (setq bfn (directory-file-name bfn))) ;Strip trailing slash. 199 (equal (file-name-nondirectory bfn) base))
200 (push (uniquify-make-item base bfn buffer 200 (when (setq bfn (file-name-directory bfn)) ;Strip off the `base'.
201 (uniquify-get-proposed-name base bfn)) 201 (setq bfn (directory-file-name bfn))) ;Strip trailing slash.
202 fix-list)))) 202 (push (uniquify-make-item base bfn buffer
203 ;; selects buffers whose names may need changing, and others that 203 (uniquify-get-proposed-name base bfn))
204 ;; may conflict, then bring conflicting names together 204 fix-list))))
205 (uniquify-rationalize fix-list))) 205 ;; selects buffers whose names may need changing, and others that
206 ;; may conflict, then bring conflicting names together
207 (uniquify-rationalize fix-list))))
206 208
207;; uniquify's version of buffer-file-name; result never contains trailing slash 209;; uniquify's version of buffer-file-name; result never contains trailing slash
208(defun uniquify-buffer-file-name (buffer) 210(defun uniquify-buffer-file-name (buffer)