From 71cca84d57cd7b90c2cb9040fc703cdbe78e024c Mon Sep 17 00:00:00 2001
From: Gnus developers <ding@gnus.org>
Date: Mon, 11 Jun 2012 22:35:02 +0000
Subject: [PATCH] Merge bugfixes done in Gnus trunk

Those changes fix only the bugs having appeared in the bug list.
Many other Gnus changes not yet merged to Emacs are in:
   ftp://ftp.jpl.org/pub/tmp/MaGnus-to-Emacs.patch
(or http://www.jpl.org/ftp/pub/tmp/MaGnus-to-Emacs.patch)

2012-06-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Group Timestamp): Mention where to find documentation for
  the `gnus-tmp-' variables (bug#11601).
2012-04-14 Wolfgang Jenkner <wjenkner@inode.at>
* gnus-agent.el (gnus-agent-retrieve-headers): Recalculate the range of
  articles when fetch-old is non-nil (bug#11370).
---
 doc/misc/ChangeLog      |  5 +++++
 doc/misc/gnus.texi      |  5 +++++
 lisp/gnus/ChangeLog     |  5 +++++
 lisp/gnus/gnus-agent.el | 17 +++++++++--------
 4 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 37ad89dfacb..1026215a46b 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,8 @@
+2012-06-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.texi (Group Timestamp): Mention where to find documentation for
+	the `gnus-tmp-' variables (bug#11601).
+
 2012-06-11  Michael Albinus  <michael.albinus@gmx.de>
 
 	Sync with Tramp 2.2.6-pre.
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index b0839906df5..71a06d4461a 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -4588,6 +4588,11 @@ trick:
       "")))
 @end lisp
 
+To see what variables are dynamically bound (like
+@code{gnus-tmp-group}), you have to look at the source code.  The
+variable names aren't guaranteed to be stable over Gnus versions,
+either.
+
 
 @node File Commands
 @subsection File Commands
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index aefb2a61683..b86b4a76e30 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,8 @@
+2012-04-14  Wolfgang Jenkner  <wjenkner@inode.at>
+
+	* gnus-agent.el (gnus-agent-retrieve-headers): Recalculate the range of
+	articles when fetch-old is non-nil (bug#11370).
+
 2012-06-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
 	* gnus-group.el (gnus-group-get-new-news): Respect
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el
index bbd3c95265d..0d469b174bf 100644
--- a/lisp/gnus/gnus-agent.el
+++ b/lisp/gnus/gnus-agent.el
@@ -3742,6 +3742,13 @@ has been fetched."
       (gnus-make-directory (nnheader-translate-file-chars
 			    (file-name-directory file) t))
 
+      (when fetch-old
+	(setq articles (gnus-uncompress-range
+			(cons (if (numberp fetch-old)
+				  (max 1 (- (car articles) fetch-old))
+				1)
+			      (car (last articles))))))
+
       ;; Populate temp buffer with known headers
       (when (file-exists-p file)
 	(with-current-buffer gnus-agent-overview-buffer
@@ -3778,12 +3785,7 @@ has been fetched."
                    (set-buffer nntp-server-buffer)
                    (let* ((fetched-articles (list nil))
                           (tail-fetched-articles fetched-articles)
-                          (min (cond ((numberp fetch-old)
-                                      (max 1 (- (car articles) fetch-old)))
-                                     (fetch-old
-                                      1)
-                                     (t
-                                      (car articles))))
+                          (min (car articles))
                           (max (car (last articles))))
 
                      ;; Get the list of articles that were fetched
@@ -3858,8 +3860,7 @@ has been fetched."
 	     (not (numberp fetch-old)))
 	t				; Don't remove anything.
       (nnheader-nov-delete-outside-range
-       (if fetch-old (max 1 (- (car articles) fetch-old))
-	 (car articles))
+       (car articles)
        (car (last articles)))
       t)
 
-- 
2.39.5