Subject: Re: bug#20231: 25.0.50; package.el mangles non-ascii content in downloaded archive-contents data

From: Eli Zaretskii <[email-masked]>
Date: Sat, 11 Apr 2015 21:35:33 +0300

> From: Ivan Shmakov <[email-masked]>
> Date: Sat, 11 Apr 2015 18:07:13 +0000
> 
> >>>>> Steve Purcell <[email-masked]> writes:
> 
>  > --- a/lisp/emacs-lisp/package.el
>  > +++ b/lisp/emacs-lisp/package.el
>  > @@ -1279,12 +1279,13 @@ defun package--read-archive-file (file)
>  >    (let ((filename (expand-file-name file package-user-dir)))
>  >      (when (file-exists-p filename)
>  >        (with-temp-buffer
>  > -        (insert-file-contents-literally filename)
>  > -        (let ((contents (read (current-buffer))))
>  > -          (if (> (car contents) package-archive-version)
>  > -              (error "Package archive version %d is higher than %d"
>  > -                (car contents) package-archive-version))
>  > -          (cdr contents))))))
>  > +        (let ((coding-system-for-read 'utf-8))
>  > +          (insert-file-contents filename)
> 
> 	As insert-file-contents may imply a whole lot of additional
> 	processing beyond decoding UTF-8, I’d rather use an explicit
> 	decode-coding-region here

Can you explain why?  What additional processing can get in the way?