aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/arc-mode.el8
1 files changed, 7 insertions, 1 deletions
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index 5e696c091b2..05a71fb4c5a 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -1990,6 +1990,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
1990 (setq p (+ p (point-min))) 1990 (setq p (+ p (point-min)))
1991 (while (string= "PK\001\002" (buffer-substring p (+ p 4))) 1991 (while (string= "PK\001\002" (buffer-substring p (+ p 4)))
1992 (let* ((creator (get-byte (+ p 5))) 1992 (let* ((creator (get-byte (+ p 5)))
1993 (gpflags (archive-l-e (+ p 8) 2))
1993 ;; (method (archive-l-e (+ p 10) 2)) 1994 ;; (method (archive-l-e (+ p 10) 2))
1994 (modtime (archive-l-e (+ p 12) 2)) 1995 (modtime (archive-l-e (+ p 12) 2))
1995 (moddate (archive-l-e (+ p 14) 2)) 1996 (moddate (archive-l-e (+ p 14) 2))
@@ -2001,7 +2002,12 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
2001 (efnname (let ((str (buffer-substring (+ p 46) (+ p 46 fnlen)))) 2002 (efnname (let ((str (buffer-substring (+ p 46) (+ p 46 fnlen))))
2002 (decode-coding-string 2003 (decode-coding-string
2003 str 2004 str
2004 (or (if (and w32-fname-encoding 2005 ;; Bit 11 of general purpose bit flags (bytes
2006 ;; 8-9) of Central Directory: 1 means UTF-8
2007 ;; encoded file names.
2008 (or (if (/= 0 (logand gpflags #x0800))
2009 'utf-8-unix)
2010 (if (and w32-fname-encoding
2005 (memq creator 2011 (memq creator
2006 ;; This should be just 10 and 2012 ;; This should be just 10 and
2007 ;; 14, but InfoZip uses 0 and 2013 ;; 14, but InfoZip uses 0 and