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