From 9b1fad33f06875dd649a0e3eecd8b3b6f64e134f Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Wed, 8 Mar 2006 01:57:59 +0000 Subject: * arc-mode.el (archive-extract): Check if an existing buffer name comes from a different archive. --- lisp/arc-mode.el | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'lisp/arc-mode.el') diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el index 9799e3e083..abf3899423 100644 --- a/lisp/arc-mode.el +++ b/lisp/arc-mode.el @@ -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. -- cgit v1.2.3