2002-09-25 Bj\e,Av\e(Brn Torkelsson <torkel@acc.umu.se>
[gnus] / lisp / gnus-srvr.el
index f0667b6..66ee4b5 100644 (file)
@@ -58,7 +58,7 @@ The following specs are understood:
 %a agent covered
 
 General format specifiers can also be used.
-See (gnus)Formatting Variables."
+See Info node `(gnus)Formatting Variables'."
   :link '(custom-manual "(gnus)Formatting Variables")
   :group 'gnus-server-visual
   :type 'string)
@@ -72,7 +72,7 @@ See (gnus)Formatting Variables."
   "Whether server browsing should take place in the group buffer.
 If nil, a faster, but more primitive, buffer is used instead."
   :group 'gnus-server-visual
-  :type 'string)
+  :type 'boolean)
 
 ;;; Internal variables.
 
@@ -105,7 +105,7 @@ If nil, a faster, but more primitive, buffer is used instead."
     (easy-menu-define
      gnus-server-server-menu gnus-server-mode-map ""
      '("Server"
-       ["Add" gnus-server-add-server t]
+       ["Add..." gnus-server-add-server t]
        ["Browse" gnus-server-read-server t]
        ["Scan" gnus-server-scan-server t]
        ["List" gnus-server-list-servers t]
@@ -380,7 +380,11 @@ The following commands are available:
      (concat "(gnus-server-set-info \"" server "\" '"
             (prin1-to-string info) ")"))
     (let* ((server (nth 1 info))
-          (entry (assoc server gnus-server-alist)))
+          (entry (assoc server gnus-server-alist))
+          (cached (assoc server gnus-server-method-cache)))
+      (if cached
+         (setq gnus-server-method-cache
+               (delq cached gnus-server-method-cache)))
       (if entry (setcdr entry info)
        (setq gnus-server-alist
              (nconc gnus-server-alist (list (cons server info))))))))
@@ -658,6 +662,7 @@ The following commands are available:
     "L" gnus-browse-exit
     "q" gnus-browse-exit
     "Q" gnus-browse-exit
+    "d" gnus-browse-describe-group
     "\C-c\C-c" gnus-browse-exit
     "?" gnus-browse-describe-briefly
 
@@ -673,6 +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]
        ["Next" gnus-browse-next-group t]
        ["Prev" gnus-browse-prev-group t]
        ["Exit" gnus-browse-exit t]))
@@ -760,18 +766,19 @@ The following commands are available:
              (list
               (format
                "Gnus: %%b {%s:%s}" (car method) (cadr method))))
-       (let ((buffer-read-only nil) charset
+       (let ((buffer-read-only nil)
+             charset
              (prefix (let ((gnus-select-method orig-select-method))
                        (gnus-group-prefixed-name "" method))))
-         (while groups
-           (setq group (car groups))
+         (dolist (group groups)
            (setq charset (gnus-group-name-charset method (car group)))
            (gnus-add-text-properties
             (point)
             (prog1 (1+ (point))
               (insert
                (format "%c%7d: %s\n"
-                       (let ((level (gnus-group-level (concat prefix (car group)))))
+                       (let ((level (gnus-group-level
+                                     (concat prefix (car group)))))
                              (cond
                               ((<= level gnus-level-subscribed) ? )
                               ((<= level gnus-level-unsubscribed) ?U)
@@ -874,6 +881,11 @@ buffer.
             (match-string-no-properties 1))
         gnus-browse-current-method)))))
 
+(defun gnus-browse-describe-group (group)
+  "Describe the current group."
+  (interactive (list (gnus-browse-group-name)))
+  (gnus-group-describe-group nil group))
+
 (defun gnus-browse-unsubscribe-group ()
   "Toggle subscription of the current group in the browse buffer."
   (let ((sub nil)
@@ -885,10 +897,6 @@ buffer.
       (unless (eq (char-after) ? )
        (setq sub t))
       (setq group (gnus-browse-group-name))
-      ;;;;
-      ;;(when (and sub
-      ;;                (cadr (gnus-gethash group gnus-newsrc-hashtb)))
-      ;;(error "Group already subscribed"))
       (if sub
          (progn
            ;; Make sure the group has been properly removed before we