all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Daniel Brooks <db48x@db48x.net>
To: Juri Linkov <juri@jurta.org>
Cc: 10347@debbugs.gnu.org
Subject: bug#10347: 24.0.50; archive-mode includes warning messages from unzip in the content of extracted files
Date: Thu, 22 Dec 2011 14:23:30 -0800	[thread overview]
Message-ID: <m3mxaim7j6.fsf@db48x.net> (raw)
In-Reply-To: <874nwsbcc4.fsf@mail.jurta.org> (Juri Linkov's message of "Thu, 22 Dec 2011 22:07:05 +0200")

Juri Linkov <juri@jurta.org> writes:

>> archive-extract-by-stdout intermingles stderr and stdout unless the
>> caller passes in a buffer to send the stderr too. As none of the callers
>> do, I think it would be best to disable stderr unless the caller
>> supplies a buffer.
>
>> [2. fix --- application/octet-stream; archive-mode-stdout.bundle]...
>
> Unfortunately, I can't read what you've encrypted into this git bundle.
>
> But I think we should use the same solution as we developed for
> `archive-7z-extract' - to redirect stdout into a temporary file
> and display its contents in the echo area.
>

It is a binary file, which is unfortunate. Mercurial has a way to export
a commit (or a set of commits) with all of the necessary metadata as a
text file that I really like, but I digress.

> This patch fixes `archive-zip-extract' by duplicating the logic of
> `archive-7z-extract':

Yes, this is a good idea. However, let's avoid duplicating the code by
defining a function. Here's what I've got so far, although it doesn't
actually display the messages, for whatever reason. I'll debug it when I
get a spare minute.

diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index 00023a6..442a258 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -1113,7 +1113,7 @@ using `make-temp-file', and the generated name is returned."
     (archive-delete-local tmpfile)
     success))
 
-(defun archive-extract-by-stdout (archive name command &optional stderr-file)
+(defun archive-extract-by-stdout-with-stderr (archive name command &optional stderr-file)
   (apply 'call-process
 	 (car command)
 	 nil
@@ -1121,6 +1121,16 @@ using `make-temp-file', and the generated name is returned."
 	 nil
 	 (append (cdr command) (list archive name))))
 
+(defun archive-extract-by-stdout (archive name command)
+  (let ((tmpfile (make-temp-file "zip-stderr")))
+      (prog1 (archive-extract-by-stdout archive name command tmpfile)
+        (with-temp-buffer
+          (insert-file-contents tmpfile)
+          (if (buffer-size)
+              (message "%s" (buffer-string)))
+          (delete-file tmpfile)))))
+
 (defun archive-extract-other-window ()
   "In archive mode, find this member in another window."
   (interactive)
@@ -1826,9 +1836,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
     (let ((archive-7z-extract archive-zip-extract))
       (archive-7z-extract archive name)))
    (t
-    (let ((tmpfile (make-temp-file "zip-stderr")))
-      (prog1 (archive-extract-by-stdout
-     archive
+    (archive-extract-by-stdout archive
      ;; unzip expands wildcards in NAME, so we need to quote it.  But
      ;; not on DOS/Windows, since that fails extraction on those
      ;; systems (unless w32-quote-process-args is nil), and file names
@@ -1840,13 +1848,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
 	      (equal (car archive-zip-extract) "unzip"))
 	 (shell-quote-argument name)
        name)
-              archive-zip-extract
-              tmpfile)
-        (with-temp-buffer
-          (insert-file-contents tmpfile)
-          (unless (search-forward "Everything is Ok" nil t)
-            (message "%s" (buffer-string)))
-          (delete-file tmpfile)))))))
+     archive-zip-extract))))
 
 (defun archive-zip-write-file-member (archive descr)
   (archive-*-write-file-member





  reply	other threads:[~2011-12-22 22:23 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-21 21:44 bug#10347: 24.0.50; archive-mode includes warning messages from unzip in the content of extracted files Daniel Brooks
2011-12-22 20:07 ` Juri Linkov
2011-12-22 22:23   ` Daniel Brooks [this message]
2011-12-25 21:27     ` Juri Linkov
2011-12-25 21:28     ` Juri Linkov
2012-09-28 16:38 ` Juri Linkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3mxaim7j6.fsf@db48x.net \
    --to=db48x@db48x.net \
    --cc=10347@debbugs.gnu.org \
    --cc=juri@jurta.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.