(gnus-point-at-bol, gnus-point-at-eol): Remove.
[gnus] / lisp / gnus-srvr.el
index cf3d24c..0e41ff5 100644 (file)
@@ -281,8 +281,7 @@ The following commands are available:
                  "(closed)")
              ((error) "(error)")))))
         (gnus-tmp-agent (if (and gnus-agent
-                                 (member method
-                                         gnus-agent-covered-methods))
+                                 (gnus-agent-method-p method))
                             " (agent)"
                           "")))
     (beginning-of-line)
@@ -291,7 +290,8 @@ The following commands are available:
      (prog1 (1+ (point))
        ;; Insert the text.
        (eval gnus-server-line-format-spec))
-     (list 'gnus-server (intern gnus-tmp-name)))))
+     (list 'gnus-server (intern gnus-tmp-name)
+           'gnus-named-server (intern (gnus-method-to-server method))))))
 
 (defun gnus-enter-server-buffer ()
   "Set up the server buffer."
@@ -342,7 +342,13 @@ The following commands are available:
   (gnus-server-position-point))
 
 (defun gnus-server-server-name ()
-  (let ((server (get-text-property (gnus-point-at-bol) 'gnus-server)))
+  (let ((server (get-text-property (point-at-bol) 'gnus-server)))
+    (and server (symbol-name server))))
+
+(defun gnus-server-named-server ()
+  "Returns a server name that matches one of the names returned by
+gnus-method-to-server."
+  (let ((server (get-text-property (point-at-bol) 'gnus-named-server)))
     (and server (symbol-name server))))
 
 (defalias 'gnus-server-position-point 'gnus-goto-colon)
@@ -713,31 +719,46 @@ The following commands are available:
        1 "Couldn't request list: %s" (gnus-status-message method))
       nil)
      (t
-      (save-excursion
-       (set-buffer nntp-server-buffer)
+      (with-current-buffer nntp-server-buffer
        (let ((cur (current-buffer)))
          (goto-char (point-min))
          (unless (string= gnus-ignored-newsgroups "")
            (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)
+         ;; We treat NNTP as a special case to avoid problems with
+         ;; garbage group names like `"foo' that appear in some badly
+         ;; managed active files. -jh.
+         (if (eq (car method) 'nntp)
+             (while (not (eobp))
+               (ignore-errors
+                 (push (cons 
+                        (buffer-substring 
+                         (point)
+                         (progn 
+                           (skip-chars-forward "^ \t")
+                           (point)))
+                        (let ((last (read cur)))
+                          (cons (read cur) last)))
+                       groups))
+               (forward-line))
+           (while (not (eobp))
+             (ignore-errors
+               (push (cons
+                      (if (eq (char-after) ?\")
+                          (read cur)
+                        (let ((p (point)) (name ""))
                           (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 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)
                           (string< (car l1) (car l2)))))
@@ -875,7 +896,7 @@ buffer.
   (save-excursion
     (beginning-of-line)
     (let ((name (get-text-property (point) 'gnus-group)))
-      (when (re-search-forward ": \\(.*\\)$" (gnus-point-at-eol) t)
+      (when (re-search-forward ": \\(.*\\)$" (point-at-eol) t)
        (concat (gnus-method-to-server-name gnus-browse-current-method) ":" 
                (or name
                    (match-string-no-properties 1)))))))
@@ -896,6 +917,8 @@ buffer.
       (unless (eq (char-after) ? )
        (setq sub t))
       (setq group (gnus-browse-group-name))
+      (when (gnus-server-equal gnus-browse-current-method "native")
+       (setq group (gnus-group-real-name group)))
       (if sub
          (progn
            ;; Make sure the group has been properly removed before we