mangoe@mimsy.UUCP (03/26/87)
Now that the Xref feature supposedly works (it doesn't always, for me), I get this annoying phenomenon which occurs when I undelete an article which is posted to several groups, it appears in *all* of them. When I delete it from one, it disappears in *all* of them. Has anyone else seen this behavior? C. Wingate
dave@onfcanim.UUCP (03/30/87)
In article <5963@mimsy.UUCP> mangoe@mimsy.UUCP (Charley Wingate) writes: >Now that the Xref feature supposedly works (it doesn't always, for me), I >get this annoying phenomenon which occurs when I undelete an article which >is posted to several groups, it appears in *all* of them. When I delete it >from one, it disappears in *all* of them. Has anyone else seen this >behavior? This is a feature. When an article is marked unread, rn goes through the bitmaps of any other groups the article is in and marks it unread there as well. To turn off this feature, comment out the definition of MCHASE in the "defs.h" header file for rn. I don't like the default behaviour either. And just unsetting MCHASE still isn't enough for me. When I type 'm' or 'M' at an article, it is because I don't want to read it now, in this rn session. Thus, I don't want to be asked about it once for each of the groups that it shows up in either. The following modifications to "bits.c" alter rn so that when you type 'm' or 'M' the article is left unread in the current group, but marked as *read* in all other groups in which it appears. diff -r -c STD/bits.c ./bits.c *** STD/bits.c Wed Jan 28 15:21:52 1987 --- ./bits.c Wed Jan 28 15:26:25 1987 *************** *** 205,211 { check_first(artnum); onemore(artnum); - #ifdef MCHASE if (!parse_maybe(artnum)) chase_xrefs(artnum,FALSE); #endif --- 205,210 ----- { check_first(artnum); onemore(artnum); if (!parse_maybe(artnum)) #ifndef MCHASE chase_xrefs(artnum,TRUE); *************** *** 207,212 onemore(artnum); #ifdef MCHASE if (!parse_maybe(artnum)) chase_xrefs(artnum,FALSE); #endif } --- 206,214 ----- check_first(artnum); onemore(artnum); if (!parse_maybe(artnum)) + #ifndef MCHASE + chase_xrefs(artnum,TRUE); + #else chase_xrefs(artnum,FALSE); #endif } *************** *** 229,234 oneless(artnum); /* set the correct bit */ dmcount++; fprintf(dmfp,"%ld\n",(long)artnum); } #endif --- 231,239 ----- oneless(artnum); /* set the correct bit */ dmcount++; fprintf(dmfp,"%ld\n",(long)artnum); + #ifndef MCHASE + chase_xrefs(artnum,TRUE); + #endif } #endif