GNU bug report logs -
#20231
25.0.50; package.el mangles non-ascii content in downloaded archive-contents data
Previous Next
Reported by: Steve Purcell <steve <at> sanityinc.com>
Date: Mon, 30 Mar 2015 16:23:02 UTC
Severity: normal
Merged with 20010
Found in versions 24.4, 25.0.50
Done: Artur Malabarba <bruce.connor.am <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
>>>>> Steve Purcell <steve <at> sanityinc.com> 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, like (untested):
(with-temp-buffer
(insert-file-contents-literally filename)
+ (decode-coding-region (point-min) (point-max) 'utf-8)
(let ((contents (read (current-buffer))))
…))
> + (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)))))))
>
> (defun package-read-archive-contents (archive)
> "Re-read archive contents for ARCHIVE.
--
FSF associate member #7257 http://boycottsystemd.org/ … 3013 B6A0 230E 334A
This bug report was last modified 10 years and 30 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.