]> git.eshelyaron.com Git - emacs.git/commitdiff
(uniquify-rationalize-file-buffer-names):
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 7 May 2003 21:56:43 +0000 (21:56 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 7 May 2003 21:56:43 +0000 (21:56 +0000)
Don't uniquify if there is no filename.

lisp/uniquify.el

index cf5155c9615f8b6614ec024048726aa44fc71059..d360b17dc0b39037d9800217c7153919ecc38982 100644 (file)
@@ -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)