]> git.eshelyaron.com Git - emacs.git/commitdiff
Decode Gnus group names when browsing server group lists
authorEric Abrahamsen <eric@ericabrahamsen.net>
Wed, 24 Apr 2019 03:32:02 +0000 (20:32 -0700)
committerEric Abrahamsen <eric@ericabrahamsen.net>
Wed, 24 Apr 2019 03:32:02 +0000 (20:32 -0700)
* lisp/gnus/gnus-srvr.el (gnus-browse-foreign-server): The coding
  system for the nntp-server-buffer is 'binary; decode group names as
  'utf-8-emacs.

lisp/gnus/gnus-srvr.el

index 2328f1da16324411066a43c44d1aca4f1f1ccf3d..da110c8bbfad87ff8ae70c4ff5f3b77d419cbbb1 100644 (file)
@@ -784,11 +784,13 @@ claim them."
              (while (not (eobp))
                (ignore-errors
                  (push (cons
-                        (buffer-substring
-                         (point)
-                         (progn
-                           (skip-chars-forward "^ \t")
-                           (point)))
+                        (decode-coding-string
+                         (buffer-substring
+                          (point)
+                          (progn
+                            (skip-chars-forward "^ \t")
+                            (point)))
+                         'utf-8-emacs)
                         (let ((last (read cur)))
                           (cons (read cur) last)))
                        groups))
@@ -796,18 +798,20 @@ claim them."
            (while (not (eobp))
              (ignore-errors
                (push (cons
-                      (if (eq (char-after) ?\")
-                          (read cur)
-                        (let ((p (point)) (name ""))
-                          (skip-chars-forward "^ \t\\\\")
-                          (setq name (buffer-substring p (point)))
-                          (while (eq (char-after) ?\\)
-                            (setq p (1+ (point)))
-                            (forward-char 2)
-                            (skip-chars-forward "^ \t\\\\")
-                            (setq name (concat name (buffer-substring
-                                                     p (point)))))
-                          name))
+                      (decode-coding-string
+                       (if (eq (char-after) ?\")
+                           (read cur)
+                         (let ((p (point)) (name ""))
+                           (skip-chars-forward "^ \t\\\\")
+                           (setq name (buffer-substring p (point)))
+                           (while (eq (char-after) ?\\)
+                             (setq p (1+ (point)))
+                             (forward-char 2)
+                             (skip-chars-forward "^ \t\\\\")
+                             (setq name (concat name (buffer-substring
+                                                      p (point)))))
+                           name))
+                       'utf-8-emacs)
                       (let ((last (read cur)))
                         (cons (read cur) last)))
                      groups))