Subject: bug#6083: closed (Re: bug#6083: Regression bug in auto-coding-alist)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 03 May 2010 02:04:02 +0000

Your bug report

#6083: Regression bug in auto-coding-alist

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
6083: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6083
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#6083: Regression bug in auto-coding-alist
From: Chong Yidong <[email-masked]>
To: Juri Linkov <[email-masked]>
Cc: [email-masked]
Date: Sun, 02 May 2010 22:02:59 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Juri Linkov <[email-masked]> writes:

>   ;; By default, Emacs thinks .arc is an archive extension.
>   ;; This makes it normal.
>   (dolist (coding auto-coding-alist)
>     (when (and (string-match "[Aa][Rr][Cc]\\\\|" (car coding))
>                (or (eq (cdr coding) 'no-conversion)
>                    (eq (cdr coding) 'no-conversion-multibyte)))
>       (setcar coding (replace-match "" nil nil (car coding)))))
>
> This code fails with
>
>   (error "Attempt to modify read-only object")
>
> A similar bug#4917 http://debbugs.gnu.org/4917
> for `auto-coding-regexp-alist' was fixed 2009-11-13
> by using purecopy only for car or each item,
> not the whole list.
>
> To make the code above to not fail, purecopy should be removed
> from `auto-coding-alist'.

Thanks, I've fixed it in the branch.

Subject: Regression bug in auto-coding-alist
From: Juri Linkov <[email-masked]>
To: [email-masked]
Date: Mon, 03 May 2010 03:34:00 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

I just discovered a regression bug wrt 23.1.

Loading arc-mode fails.

Arc-mode is a mode for the programming language Arc,
not for file archives.

It contains the following code to remove `no-conversion' associated with
the .arc extension from `auto-coding-alist' because there is a file
extension clash between Arc the programming language and file archives:

  ;; By default, Emacs thinks .arc is an archive extension.
  ;; This makes it normal.
  (dolist (coding auto-coding-alist)
    (when (and (string-match "[Aa][Rr][Cc]\\\\|" (car coding))
               (or (eq (cdr coding) 'no-conversion)
                   (eq (cdr coding) 'no-conversion-multibyte)))
      (setcar coding (replace-match "" nil nil (car coding)))))

This code fails with

  (error "Attempt to modify read-only object")

A similar bug#4917 http://debbugs.gnu.org/4917
for `auto-coding-regexp-alist' was fixed 2009-11-13
by using purecopy only for car or each item,
not the whole list.

To make the code above to not fail, purecopy should be removed
from `auto-coding-alist'.

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