(gnus-browse-foreign-server): Reduce consing.
authorJesper Harder <harder@ifa.au.dk>
Mon, 12 Jan 2004 22:58:16 +0000 (22:58 +0000)
committerJesper Harder <harder@ifa.au.dk>
Mon, 12 Jan 2004 22:58:16 +0000 (22:58 +0000)
lisp/ChangeLog
lisp/gnus-srvr.el

index 3be46c2..cb13757 100644 (file)
@@ -1,3 +1,7 @@
+2004-01-12  Jesper Harder  <harder@ifa.au.dk>
+
+       * gnus-srvr.el (gnus-browse-foreign-server): Reduce consing.
+
 2004-01-12  Teodor Zlatanov  <tzz@lifelogs.com>
 
        * spam.el (spam-get-article-as-string): updated to use
index 63249ef..1b22b5e 100644 (file)
@@ -797,18 +797,26 @@ gnus-method-to-server."
             (prog1 (1+ (point))
               (insert
                (format "%c%7d: %s\n"
-                       (let ((level (gnus-group-level
-                                     (concat prefix (setq name (car group))))))
-                             (cond
-                              ((<= level gnus-level-subscribed) ? )
-                              ((<= level gnus-level-unsubscribed) ?U)
-                              ((= level gnus-level-zombie) ?Z)
-                              (t ?K)))
+                       (let ((level
+                              (if (string= prefix "")
+                                  (gnus-group-level (setq name (car group)))
+                                (gnus-group-level
+                                 (concat prefix (setq name (car group)))))))
+                         (cond
+                          ((<= level gnus-level-subscribed) ? )
+                          ((<= level gnus-level-unsubscribed) ?U)
+                          ((= level gnus-level-zombie) ?Z)
+                          (t ?K)))
                        (max 0 (- (1+ (cddr group)) (cadr group)))
-                       (mm-decode-coding-string
-                        name
-                        (inline (gnus-group-name-charset method name))))))
-            (list 'gnus-group name))))
+                       ;; Don't decode if name is ASCII
+                       (if (and (fboundp 'detect-coding-string)
+                                (eq (detect-coding-string name t) 'undecided))
+                           name
+                         (mm-decode-coding-string
+                          name
+                          (inline (gnus-group-name-charset method name)))))))
+            (list 'gnus-group name)
+            )))
        (switch-to-buffer (current-buffer)))
       (goto-char (point-min))
       (gnus-group-position-point)