Subject: bug#5553: 23.1.92; Archives with wrong coding system

From: Juri Linkov <[email-masked]>
Date: Tue, 09 Feb 2010 23:19:27 +0200

When `archive-mode' is enabled for an archive file with an unknown file
extension, using the rule ("\\(PK00\\)?[P]K\003\004" . archive-mode)
from `magic-fallback-mode-alist', visiting such a file fails with the
args-out-of-range error.

The following patch should fix this bug using the same regexp as in
`magic-fallback-mode-alist' and the same coding system as for archive
file extensions in `auto-coding-alist':

=== modified file 'lisp/international/mule.el'
--- lisp/international/mule.el	2010-02-01 22:57:45 +0000
+++ lisp/international/mule.el	2010-02-09 21:18:51 +0000
@@ -1653,7 +1653,9 @@ (defcustom auto-coding-regexp-alist
     ("\\`\xFE\xFF" . utf-16be-with-signature)
     ("\\`\xFF\xFE" . utf-16le-with-signature)
     ("\\`\xEF\xBB\xBF" . utf-8-with-signature)
-    ("\\`;ELC\024\0\0\0" . emacs-mule)))	; Emacs 20-compiled
+    ("\\`;ELC\024\0\0\0" . emacs-mule)	; Emacs 20-compiled
+    ;; For `archive-mode' in `magic-fallback-mode-alist':
+    ("\\(PK00\\)?[P]K\003\004" . no-conversion-multibyte)))
   "Alist of patterns vs corresponding coding systems.
 Each element looks like (REGEXP . CODING-SYSTEM).
 A file whose first bytes match REGEXP is decoded by CODING-SYSTEM on reading.

-- 
Juri Linkov
http://www.jurta.org/emacs/