]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix downloading updates for packages with non-ASCII descriptions
authorEli Zaretskii <eliz@gnu.org>
Tue, 19 Mar 2019 11:16:50 +0000 (13:16 +0200)
committerEli Zaretskii <eliz@gnu.org>
Tue, 19 Mar 2019 11:16:50 +0000 (13:16 +0200)
* lisp/emacs-lisp/package.el (package--download-one-archive):
Make sure archive contents are written using UTF-8 encoding.
(Bug#34909)
(list-packages): Set buffer's encoding to UTF-8.

lisp/emacs-lisp/package.el

index 3118e38fcdd8f2047af5758423b6f208d85291a4..1a185de4a52cd72827c91c7d2a7275ed3e3f7a65 100644 (file)
@@ -1538,14 +1538,16 @@ similar to an entry in `package-alist'.  Save the cached copy to
                 (member name package-unsigned-archives))
             ;; If we don't care about the signature, save the file and
             ;; we're done.
-            (progn (write-region content nil local-file nil 'silent)
+            (progn (let ((coding-system-for-write 'utf-8))
+                     (write-region content nil local-file nil 'silent))
                    (package--update-downloads-in-progress archive))
           ;; If we care, check it (perhaps async) and *then* write the file.
           (package--check-signature
            location file content async
            ;; This function will be called after signature checking.
            (lambda (&optional good-sigs)
-             (write-region content nil local-file nil 'silent)
+             (let ((coding-system-for-write 'utf-8))
+               (write-region content nil local-file nil 'silent))
              ;; Write out good signatures into archive-contents.signed file.
              (when good-sigs
                (write-region (mapconcat #'epg-signature-to-string good-sigs "\n")
@@ -3425,6 +3427,9 @@ short description."
   ;; Generate the Package Menu.
   (let ((buf (get-buffer-create "*Packages*")))
     (with-current-buffer buf
+      ;; Since some packages have their descriptions include non-ASCII
+      ;; characters...
+      (setq buffer-file-coding-system 'utf-8)
       (package-menu-mode)
 
       ;; Fetch the remote list of packages.