Synch to Oort Gnus 200304162310.
[elisp/gnus.git-] / lisp / gnus-srvr.el
index 2b6373f..c759d19 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-srvr.el --- virtual server support for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -321,7 +321,7 @@ The following commands are available:
     (while alist
       (unless (member (cdar alist) done)
        (push (cdar alist) done)
-       (cdr (setq server (pop alist)))
+       (setq server (pop alist))
        (when (and server (car server) (cdr server))
          (gnus-server-insert-server-line (car server) (cdr server))))
       (when (member (cdar alist) done)
@@ -359,7 +359,7 @@ The following commands are available:
       (when entry
        (gnus-dribble-enter
         (concat "(gnus-server-set-info \"" server "\" '"
-                (prin1-to-string (cdr entry)) ")\n")))
+                (gnus-prin1-to-string (cdr entry)) ")\n")))
       (when (or entry oentry)
        ;; Buffer may be narrowed.
        (save-restriction
@@ -378,7 +378,7 @@ The following commands are available:
   (when (and server info)
     (gnus-dribble-enter
      (concat "(gnus-server-set-info \"" server "\" '"
-            (prin1-to-string info) ")"))
+            (gnus-prin1-to-string info) ")"))
     (let* ((server (nth 1 info))
           (entry (assoc server gnus-server-alist))
           (cached (assoc server gnus-server-method-cache)))
@@ -445,7 +445,7 @@ The following commands are available:
   "Return to the group buffer."
   (interactive)
   (gnus-run-hooks 'gnus-server-exit-hook)
-  (kill-buffer (current-buffer))
+  (gnus-kill-buffer (current-buffer))
   (gnus-configure-windows 'group t))
 
 (defun gnus-server-list-servers ()
@@ -678,7 +678,7 @@ The following commands are available:
        ["Subscribe" gnus-browse-unsubscribe-current-group t]
        ["Read" gnus-browse-read-group t]
        ["Select" gnus-browse-select-group t]
-       ["Describe" gnus-browse-describe-groups t]
+       ["Describe" gnus-browse-describe-group t]
        ["Next" gnus-browse-next-group t]
        ["Prev" gnus-browse-prev-group t]
        ["Exit" gnus-browse-exit t]))
@@ -721,22 +721,22 @@ The following commands are available:
            (delete-matching-lines gnus-ignored-newsgroups))
          (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))
-                   (let ((last (read cur)))
-                     (cons (read cur) last)))
-                  groups))
+             (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))
+                    (let ((last (read cur)))
+                      (cons (read cur) last)))
+                   groups))
            (forward-line))))
       (setq groups (sort groups
                         (lambda (l1 l2)
@@ -767,27 +767,27 @@ The following commands are available:
               (format
                "Gnus: %%b {%s:%s}" (car method) (cadr method))))
        (let ((buffer-read-only nil)
-             charset
+             name
              (prefix (let ((gnus-select-method orig-select-method))
                        (gnus-group-prefixed-name "" method))))
-         (dolist (group groups)
-           (setq charset (gnus-group-name-charset method (car group)))
+         (while (setq group (pop groups))
            (gnus-add-text-properties
             (point)
             (prog1 (1+ (point))
               (insert
                (format "%c%7d: %s\n"
                        (let ((level (gnus-group-level
-                                     (concat prefix (car group)))))
+                                     (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)))
-                       (gnus-group-name-decode (car group) charset))))
-            (list 'gnus-group (car group)))
-           (setq groups (cdr groups))))
+                       (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)
@@ -831,7 +831,7 @@ buffer.
     (if (or (not (gnus-get-info group))
            (gnus-ephemeral-group-p group))
        (unless (gnus-group-read-ephemeral-group
-                (gnus-group-real-name group) gnus-browse-current-method nil
+                group gnus-browse-current-method nil
                 (cons (current-buffer) 'browse))
          (error "Couldn't enter %s" group))
       (unless (gnus-group-read-group nil no-article group)
@@ -876,10 +876,9 @@ buffer.
     (beginning-of-line)
     (let ((name (get-text-property (point) 'gnus-group)))
       (when (re-search-forward ": \\(.*\\)$" (gnus-point-at-eol) t)
-       (gnus-group-prefixed-name
-        (or name
-            (match-string-no-properties 1))
-        gnus-browse-current-method)))))
+       (concat (gnus-method-to-server-name gnus-browse-current-method) ":" 
+               (or name
+                   (match-string-no-properties 1)))))))
 
 (defun gnus-browse-describe-group (group)
   "Describe the current group."
@@ -926,7 +925,7 @@ buffer.
   "Quit browsing and return to the group buffer."
   (interactive)
   (when (eq major-mode 'gnus-browse-mode)
-    (kill-buffer (current-buffer)))
+    (gnus-kill-buffer (current-buffer)))
   ;; Insert the newly subscribed groups in the group buffer.
   (save-excursion
     (set-buffer gnus-group-buffer)