Gnus development mailing list
 help / color / mirror / Atom feed
From: Kevin Ryde <user42@zip.com.au>
Subject: Re: summary rescan and cancelled articles
Date: Mon, 24 Mar 2003 10:36:29 +1000	[thread overview]
Message-ID: <871y0xtxbm.fsf@zip.com.au> (raw)
In-Reply-To: <2nhee3pynk.fsf@zsh.cs.rochester.edu>

[-- Attachment #1: Type: text/plain, Size: 208 bytes --]

A bit more to help M-g keep point in the same location,

	* gnus-sum.el (gnus-summary-find-for-reselect): Renamed from
	gnus-summary-find-uncancelled, skip temporary articles inserted by
	"refer" functions.


[-- Attachment #2: gnus-sum.el.more-reselect.diff --]
[-- Type: text/plain, Size: 1941 bytes --]

CVS_RSH not defined
/usr/bin/cvs -d :pserver:gnus@cvs.gnus.org:/usr/local/cvsroot diff gnus-sum.el
Index: gnus-sum.el
===================================================================
RCS file: /usr/local/cvsroot/gnus/lisp/gnus-sum.el,v
retrieving revision 6.322
diff -u -r6.322 gnus-sum.el
--- gnus-sum.el	21 Mar 2003 07:18:25 -0000	6.322
+++ gnus-sum.el	24 Mar 2003 00:34:16 -0000
@@ -6317,17 +6317,19 @@
 	  (> (prefix-numeric-value arg) 0)))
   (redraw-display))
 
-(defun gnus-summary-find-uncancelled ()
-  "Return the number of an uncancelled article.
+(defun gnus-summary-find-for-reselect ()
+  "Return the number of an article to stay on across a reselect.
 The current article is considered, then following articles, then previous
-articles.  If all articles are cancelled then return a dummy 0."
+articles.  An article is sought which is not cancelled and isn't a temporary
+insertion from another group.  If there's no such then return a dummy 0."
   (let (found)
     (dolist (rev '(nil t))
       (unless found      ; don't demand the reverse list if we don't need it
         (let ((data (gnus-data-find-list
                      (gnus-summary-article-number) (gnus-data-list rev))))
           (while (and data (not found))
-            (if (not (eq gnus-canceled-mark (gnus-data-mark (car data))))
+            (if (and (< 0 (gnus-data-number (car data)))
+                     (not (eq gnus-canceled-mark (gnus-data-mark (car data)))))
                 (setq found (gnus-data-number (car data))))
             (setq data (cdr data))))))
     (or found 0)))
@@ -6338,7 +6340,7 @@
   (interactive "P")
   (when (gnus-ephemeral-group-p gnus-newsgroup-name)
     (error "Ephemeral groups can't be reselected"))
-  (let ((current-subject (gnus-summary-find-uncancelled))
+  (let ((current-subject (gnus-summary-find-for-reselect))
 	(group gnus-newsgroup-name))
     (setq gnus-newsgroup-begin nil)
     (gnus-summary-exit)

  reply	other threads:[~2003-03-24  0:36 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-17 22:33 Kevin Ryde
2002-11-27  1:52 ` ShengHuo ZHU
2003-03-24  0:36   ` Kevin Ryde [this message]
2003-03-26 20:52     ` ShengHuo ZHU

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=871y0xtxbm.fsf@zip.com.au \
    --to=user42@zip.com.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).