From 763f325e2611ed74232acb7f94500815cf27349f Mon Sep 17 00:00:00 2001
From: Chong Yidong <cyd@stupidchicken.com>
Date: Thu, 28 Jan 2010 15:06:36 -0500
Subject: [PATCH] * arc-mode.el (archive-zip-extract): Quote the argument
 passed to unzip (Bug#5475).

---
 lisp/ChangeLog   | 5 +++++
 lisp/arc-mode.el | 5 ++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 7a12dc0256f..d6e3597f18c 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2010-01-28  Chong Yidong  <cyd@stupidchicken.com>
+
+	* arc-mode.el (archive-zip-extract): Quote the argument passed to
+	unzip (Bug#5475).
+
 2010-01-28  Nil Geisweiller  <ngeiswei@googlemail.com>  (tiny change)
 
 	* progmodes/flymake.el (flymake-allowed-file-name-masks)
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index 3629a16f29e..4a0576fdded 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -1784,7 +1784,10 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
 (defun archive-zip-extract (archive name)
   (if (equal (car archive-zip-extract) "pkzip")
       (archive-*-extract archive name archive-zip-extract)
-    (archive-extract-by-stdout archive name archive-zip-extract)))
+    ;; unzip expands wildcards in NAME, so we need to quote it.
+    ;; FIXME: Does pkzip need similar treatment?
+    (archive-extract-by-stdout archive (shell-quote-argument name)
+			       archive-zip-extract)))
 
 (defun archive-zip-write-file-member (archive descr)
   (archive-*-write-file-member
-- 
2.39.5