]> code.delx.au - gnu-emacs/blobdiff - lisp/arc-mode.el
(url-open-stream): Don't hide errors.
[gnu-emacs] / lisp / arc-mode.el
index 9799e3e0834eed44f5ad3598eb545182ab1767fc..abf38994235a62ec9bc018791d8be75351c3d222 100644 (file)
@@ -907,16 +907,18 @@ using `make-temp-file', and the generated name is returned."
          (read-only-p (or archive-read-only
                          view-p
                          (string-match file-name-invalid-regexp ename)))
+        (arcfilename (expand-file-name (concat arcname ":" iname)))
          (buffer (get-buffer bufname))
          (just-created nil))
-      (if buffer
+      (if (and buffer
+              (string= (buffer-file-name buffer) arcfilename))
           nil
        (setq archive (archive-maybe-copy archive))
+       (setq bufname (generate-new-buffer-name bufname))
         (setq buffer (get-buffer-create bufname))
         (setq just-created t)
         (with-current-buffer buffer
-          (setq buffer-file-name
-                (expand-file-name (concat arcname ":" iname)))
+          (setq buffer-file-name arcfilename)
           (setq buffer-file-truename
                 (abbreviate-file-name buffer-file-name))
           ;; Set the default-directory to the dir of the superior buffer.