Subject: Re: bug#1702: [PATCH]: feature request: correctly display single file zip archive

From: Matthew Leach <[email-masked]>
Date: Tue, 18 Nov 2014 20:12:25 +0000

Daniel Colascione <[email-masked]> writes:

> On 11/14/2014 03:31 AM, Matthew Leach wrote:
>> Matthew Leach <[email-masked]> writes:
>> 
>
> I don't think the new behavior should be the default. 

It seems as though that is the consensus.  Revised patch included that
turns off the feature by default.

Thanks,
Matt

lisp/ChangeLog:
2014-11-13  Matthew Leach  <[email-masked]>

        * arc-mode.el (archive-visit-single-files): New.
        (archive-mode): Visit file if archive contains a single file.

diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index ef155ee..9833c90 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -147,6 +147,15 @@ A local copy of the archive will be used when updating."
   "Hook run when an archive member has been extracted."
   :type 'hook
   :group 'archive)
+
+(defcustom archive-visit-single-files nil
+  "If non-nil, opening an archive with a single file visits that file.
+
+  If this option's value is nil, visiting such archives will
+  display the archive summary."
+  :type '(choice (const :tag "Visit the single file" t)
+                 (const :tag "Show the archive summary" nil))
+  :group 'archive)
 ;; ------------------------------
 ;; Arc archive configuration
 
@@ -742,7 +751,12 @@ archive.
       (if (default-value 'enable-multibyte-characters)
 	  (set-buffer-multibyte 'to))
       (archive-summarize nil)
-      (setq buffer-read-only t))))
+      (setq buffer-read-only t)
+      (when (and archive-visit-single-files
+                 auto-compression-mode
+                 (= (length archive-files) 1))
+        (rename-buffer (concat " " (buffer-name)))
+        (archive-extract)))))
 
 ;; Archive mode is suitable only for specially formatted data.
 (put 'archive-mode 'mode-class 'special)