zeeff@b-tech.ann-arbor.mi.us (Jon Zeeff) (02/20/89)
This is a small unofficial patch for rn to make the '=' command start
where you left off. You can use ^ to return to the top.
When presented with a large number of unread articles, I like to hit
=, pick and read a subject thread, and then hit = aqain to find
another. When I hit the bottom, I 'c' catchup to remove everything I
didn't read. The problem is that = always starts with the first
unread article, not where you left off. Maybe there is another way to
do this, but I didn't see it.
diff -c ../backup/bits.h ./bits.h
*** ../backup/bits.h Sun Feb 19 14:18:39 1989
--- ./bits.h Sun Feb 19 15:14:09 1989
***************
*** 42,47 ****
--- 42,48 ----
EXT ART_NUM absfirst INIT(0); /* 1st real article in current newsgroup */
EXT ART_NUM firstart INIT(0); /* minimum unread article number in newsgroup */
+ EXT ART_NUM req_art INIT(0); /* last requested article number in newsgroup */
EXT ART_NUM firstbit INIT(0); /* minimum valid bit, usually == firstart */
EXT ART_NUM lastart INIT(0); /* maximum article number in newsgroup */
diff -c ../backup/ng.c ./ng.c
*** ../backup/ng.c Sun Feb 19 14:14:32 1989
--- ./ng.c Sun Feb 19 15:14:10 1989
***************
*** 181,187 ****
in_ng = TRUE; /* tell the world we are here */
forcelast = TRUE; /* if 0 unread, do not bomb out */
! art=firstart;
/* remember what newsgroup we were in for sake of posterity */
--- 181,187 ----
in_ng = TRUE; /* tell the world we are here */
forcelast = TRUE; /* if 0 unread, do not bomb out */
! art=req_art=firstart;
/* remember what newsgroup we were in for sake of posterity */
***************
*** 586,591 ****
--- 586,592 ----
case NN_ASK:
return AS_ASK;
case NN_REREAD:
+ req_art = art;
reread = TRUE;
#ifdef ARTSEARCH
if (srchahead)
***************
*** 786,792 ****
if (!subj_list)
fetchsubj(art,TRUE,FALSE);
#endif
! for (i=firstart; i<=lastart && !int_count; i++) {
#ifdef CACHESUBJ
if (!was_read(i) &&
(subj_list[OFFSET(i)] != Nullch || fetchsubj(i,FALSE,FALSE)) &&
--- 787,793 ----
if (!subj_list)
fetchsubj(art,TRUE,FALSE);
#endif
! for (i=req_art; i<=lastart && !int_count; i++) {
#ifdef CACHESUBJ
if (!was_read(i) &&
(subj_list[OFFSET(i)] != Nullch || fetchsubj(i,FALSE,FALSE)) &&
***************
*** 827,833 ****
return AS_ASK;
}
case '^':
! art = firstart;
#ifdef ARTSEARCH
srchahead = 0;
#endif
--- 828,834 ----
return AS_ASK;
}
case '^':
! art = req_art = firstart;
#ifdef ARTSEARCH
srchahead = 0;
#endif
--
Jon Zeeff zeeff@b-tech.ann-arbor.mi.us
Ann Arbor, MI mailrus!b-tech!zeeff