summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Abrahamsen <eric@ericabrahamsen.net>2019-06-06 20:43:27 -0700
committerEric Abrahamsen <eric@ericabrahamsen.net>2019-06-06 20:43:27 -0700
commitf1c980a979f23676253c71c07a78e4546ee57800 (patch)
tree5e930bbb8c78396e25aa639e03e46c931f00d5a9
parent548c778ee823388780182309b3ddd3678e518655 (diff)
downloademacs-f1c980a979f23676253c71c07a78e4546ee57800.tar.gz
Preserve group name encoding in newsrc.eld files
* lisp/gnus/gnus-start.el (gnus-gnus-to-quick-newsrc-format): Preserve Gnus' earlier odd encoding of group names. Don't change any file formats until it's time to release a new Gnus version.
-rw-r--r--lisp/gnus/gnus-start.el14
1 files changed, 13 insertions, 1 deletions
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index 9a93ad05498..32d438aadce 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -2887,7 +2887,19 @@ SPECIFIC-VARIABLES, or those in `gnus-variable-list'."
(set (nth (seq-position gnus-variable-list 'gnus-newsrc-alist)
gnus-variable-list)
(mapcar (lambda (g)
- (nth 1 (gethash g gnus-newsrc-hashtb)))
+ (let ((entry (copy-sequence
+ (nth 1 (gethash g gnus-newsrc-hashtb)))))
+ ;; Encode in order to keep newsrc.eld files
+ ;; compatible with older versions of Gnus. At
+ ;; some point, if/when a new version of Gnus is
+ ;; released, drop this (and the corresponding
+ ;; decode in
+ ;; `gnus-make-hashtable-from-newsrc-alist').
+ (setf (car entry)
+ (encode-coding-string
+ (car entry)
+ 'utf-8-emacs))
+ entry))
(delete "dummy.group" gnus-group-list)))
;; Insert the variables into the file.