Synch to No Gnus 200503230048.
[elisp/gnus.git-] / lisp / nnrss.el
index 77fdd82..832b9b5 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnrss.el --- interfacing with RSS
-;; Copyright (C) 2001, 2002, 2003, 2004  Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005  Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
 ;; Keywords: RSS
@@ -151,16 +151,19 @@ ARTICLE is the article number of the current headline.")
   'nov)
 
 (deffoo nnrss-request-group (group &optional server dont-check)
+  (nnheader-message 6 (concat "nnrss: Requesting " group "..."))
   (setq group (nnrss-decode-group-name group))
   (nnrss-possibly-change-group group server)
-  (if dont-check
-      t
-    (nnrss-check-group group server)
-    (nnheader-report 'nnrss "Opened group %s" group)
-    (nnheader-insert
-     "211 %d %d %d %s\n" nnrss-group-max nnrss-group-min nnrss-group-max
-     (prin1-to-string group)
-     t)))
+  (prog1
+      (if dont-check
+         t
+       (nnrss-check-group group server)
+       (nnheader-report 'nnrss "Opened group %s" group)
+       (nnheader-insert
+        "211 %d %d %d %s\n" nnrss-group-max nnrss-group-min nnrss-group-max
+        (prin1-to-string group)
+        t))
+    (nnheader-message 6 (concat "nnrss: Requesting " group "...done"))))
 
 (deffoo nnrss-close-group (group &optional server)
   t)
@@ -284,6 +287,11 @@ The return value will be `html' or `text'."
 (deffoo nnrss-request-delete-group (group &optional force server)
   (setq group (nnrss-decode-group-name group))
   (nnrss-possibly-change-group group server)
+  (let (elem)
+    ;; There may be two or more entries in `nnrss-group-alist' since
+    ;; this function didn't delete them formerly.
+    (while (setq elem (assoc group nnrss-group-alist))
+      (setq nnrss-group-alist (delq elem nnrss-group-alist))))
   (setq nnrss-server-data
        (delq (assoc group nnrss-server-data) nnrss-server-data))
   (nnrss-save-server-data server)
@@ -406,6 +414,7 @@ nnrss: %s: Not valid XML %s and w3-parse doesn't work %s"
       (insert (format ";; -*- coding: %s; -*-\n"
                      nnrss-file-coding-system))
       (gnus-prin1 `(setq nnrss-group-alist ',nnrss-group-alist))
+      (insert "\n")
       (gnus-prin1 `(setq nnrss-server-data ',nnrss-server-data)))))
 
 (defun nnrss-read-group-data (group server)
@@ -681,7 +690,8 @@ Careful with this on large documents!"
            (when (car-safe bit)
              (when (equal tag (car bit))
                ;; Old xml.el may return a list of string.
-               (when (consp (caddr bit))
+               (when (and (consp (caddr bit))
+                          (stringp (caaddr bit)))
                  (setcar (cddr bit) (caaddr bit)))
                (setq found-list
                      (append found-list