Merge changes in Emacs21.
[gnus] / lisp / nnkiboze.el
index fb826da..1ad6f8c 100644 (file)
@@ -1,5 +1,7 @@
 ;;; nnkiboze.el --- select virtual news access for Gnus
-;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
+
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000
+;;     Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
       ;; article fetching by message-id at all.
       (nntp-request-article article newsgroup gnus-nntp-server buffer)
     (let* ((header (gnus-summary-article-header article))
-          (xref (mail-header-xref header)))
+          (xref (mail-header-xref header))
+          num group)
       (unless xref
        (error "nnkiboze: No xref"))
       (unless (string-match " \\([^ ]+\\):\\([0-9]+\\)" xref)
        (error "nnkiboze: Malformed xref"))
-      (gnus-request-article (string-to-int (match-string 2 xref))
-                           (match-string 1 xref)
-                           buffer))))
+      (setq num (string-to-int (match-string 2 xref))
+           group (match-string 1 xref))
+      (or (with-current-buffer buffer
+           (gnus-cache-request-article num group))
+         (gnus-request-article num group buffer)))))
 
 (deffoo nnkiboze-request-scan (&optional group server)
   (nnkiboze-generate-group (concat "nnkiboze:" group)))