Subject: bug#5540: 23.1.92; failed to access zip inside zip when not using tramp

From: Juri Linkov <[email-masked]>
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/