GNU bug report logs - #5540
23.1.92; failed to access zip inside zip when not using tramp

Previous Next

Package: emacs;

Reported by: Juri Linkov <juri <at> jurta.org>

Date: Sun, 7 Feb 2010 17:04:01 UTC

Severity: normal

Done: Juri Linkov <juri <at> jurta.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 5540 in the body.
You can then email your comments to 5540 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#5540; Package emacs. (Sun, 07 Feb 2010 17:04:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Juri Linkov <juri <at> jurta.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 07 Feb 2010 17:04:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> jurta.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 23.1.92; failed to access zip inside zip when not using tramp
Date: Sun, 07 Feb 2010 19:01:56 +0200
The fix revno#98570 for bug#4929 (with the subject "failed to access file
inside zip archive when using tramp") broke the ability to visit a file
in an archive inside another archive.

The problem is in the following lines in `archive-extract':

	    ;; Just in case an archive occurs inside another archive.
	    (when (derived-mode-p 'archive-mode)
              (setq archive-remote t)

This means that nested archives are treated as remote files.

An example of a patch that fixes this bug for nested archives:

=== modified file 'lisp/arc-mode.el'
--- lisp/arc-mode.el	2010-02-04 18:54:46 +0000
+++ lisp/arc-mode.el	2010-02-07 17:01:18 +0000
@@ -842,7 +842,7 @@ (defun archive-unique-fname (fname dir)
 	      "am"
 	    "arc-mode.")
 	  dir)))
-    (if (or alien (file-exists-p fullname))
+    (if (or alien (not (file-exists-p fullname)))
 	(progn
 	  ;; Maked sure all the leading directories in
 	  ;; archive-local-name exist under archive-tmpdir, so that

But this patch should NOT be installed, because it causes the original
remote archive to be overwritten!  This is just a demonstration of the
logic for nested archives.

I currently don't understand the decision to use archive-remote=t
for nested archives (this is an old decision), but perhaps they
should be distinguished from remote archives with a new variable
or a new value of `archive-remote'?

-- 
Juri Linkov
http://www.jurta.org/emacs/





Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#5540; Package emacs. (Tue, 09 Feb 2010 21:28:02 GMT) Full text and rfc822 format available.

Message #8 received at 5540 <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> jurta.org>
To: 5540 <at> debbugs.gnu.org
Subject: Re: bug#5540: 23.1.92;
	failed to access zip inside zip when not using tramp
Date: Tue, 09 Feb 2010 23:16:12 +0200
> I currently don't understand the decision to use archive-remote=t
> for nested archives (this is an old decision), but perhaps they
> should be distinguished from remote archives with a new variable
> or a new value of `archive-remote'?

Actually for remote archives `archive-remote' is 0 and for nested
archives `archive-remote' is t.  But this difference doesn't matter.

The following patch creates the directories for nested archives:

=== modified file 'lisp/arc-mode.el'
--- lisp/arc-mode.el	2010-02-04 19:54:46 +0000
+++ lisp/arc-mode.el	2010-02-09 21:12:51 +0000
@@ -850,6 +850,11 @@ (defun archive-unique-fname (fname dir)
 	  ;; reconstructed in the temporary directory.
 	  (make-directory (file-name-directory tmpfile) t)
 	  (make-temp-file tmpfile))
+      ;; Maked sure all the leading directories in `fullname' exist
+      ;; under archive-tmpdir.  This is necessary for nested archives
+      ;; (`archive-extract' sets `archive-remote' to t in case
+      ;; an archive occurs inside another archive).
+      (make-directory (file-name-directory fullname) t)
       fullname)))
 
 (defun archive-maybe-copy (archive)

-- 
Juri Linkov
http://www.jurta.org/emacs/




Reply sent to Juri Linkov <juri <at> jurta.org>:
You have taken responsibility. (Fri, 12 Feb 2010 19:52:04 GMT) Full text and rfc822 format available.

Notification sent to Juri Linkov <juri <at> jurta.org>:
bug acknowledged by developer. (Fri, 12 Feb 2010 19:52:04 GMT) Full text and rfc822 format available.

Message #13 received at 5540-done <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> jurta.org>
To: 5540-done <at> debbugs.gnu.org
Subject: Re: bug#5540: 23.1.92;
	failed to access zip inside zip when not using tramp
Date: Fri, 12 Feb 2010 21:45:17 +0200
> The following patch creates the directories for nested archives:
>
> === modified file 'lisp/arc-mode.el'
> --- lisp/arc-mode.el	2010-02-04 19:54:46 +0000
> +++ lisp/arc-mode.el	2010-02-09 21:12:51 +0000
> @@ -850,6 +850,11 @@ (defun archive-unique-fname (fname dir)
>  	  ;; reconstructed in the temporary directory.
>  	  (make-directory (file-name-directory tmpfile) t)
>  	  (make-temp-file tmpfile))
> +      ;; Maked sure all the leading directories in `fullname' exist
> +      ;; under archive-tmpdir.  This is necessary for nested archives
> +      ;; (`archive-extract' sets `archive-remote' to t in case
> +      ;; an archive occurs inside another archive).
> +      (make-directory (file-name-directory fullname) t)
>        fullname)))
>  
>  (defun archive-maybe-copy (archive)

Installed.

-- 
Juri Linkov
http://www.jurta.org/emacs/




bug archived. Request was from Debbugs Internal Request <bug-gnu-emacs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 13 Mar 2010 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 15 years and 160 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.