rees@apollo.UUCP (08/03/84)
Here is the fix for readnews crashing after 8192 articles. Add this line to defs.h. Make this number as big as you want, keeping it a multiple of 8. I don't think it has to be a power of 2, but that's what it was before. #define BITMAPSIZE 32768 /* Size of bitmap for readnews; was hardcoded 8192 */ Now, make these changes in rextern.c and rfuncs.c: *** UW/rextern.c Thu Feb 2 14:00:17 1984 --- rextern.c Wed Apr 25 15:10:12 1984 *************** *** 73,79 FILE *rcfp, *actfp; time_t atime; char newsrc[BUFLEN], groupdir[BUFLEN], *rcline[LINES], rcbuf[LBUFLEN]; ! char bitmap[1024], *argvrc[LINES]; int bit, obit, readmode = NEXT; int defexp = FALSE; /* set if def. expiration date used */ int actdirect = FORWARD; /* read direction in ACTIVE file */ --- 73,79 ----- FILE *rcfp, *actfp; time_t atime; char newsrc[BUFLEN], groupdir[BUFLEN], *rcline[LINES], rcbuf[LBUFLEN]; ! char bitmap[BITMAPSIZE / 8], *argvrc[LINES]; int bit, obit, readmode = NEXT; int defexp = FALSE; /* set if def. expiration date used */ int actdirect = FORWARD; /* read direction in ACTIVE file */ *** UW/rfuncs.c Thu Feb 2 14:02:20 1984 --- rfuncs.c Fri Jul 6 12:55:32 1984 *************** *** 300,306 while (!(get(next)) && next <= ngsize) next++; if (cur == next) { ! next = 8193; goto skip; } if (cur + 1 == next) --- 296,302 ----- while (!(get(next)) && next <= ngsize) next++; if (cur == next) { ! next = BITMAPSIZE + 1; goto skip; } if (cur + 1 == next)
guy@rlgvax.UUCP (Guy Harris) (08/06/84)
News 2.10.2 handles newsgroups with articles with numbers > 8192 (but not newsgroups with > 8192 active articles) by storing both the lowest article number and the number of articles in the active file. The bitmap encodes the status of articles minart..minart+nart-1, rather than the status of articles 0..8191. (Thanx and a tip of the Hatlo to Rick Adams for implementing this.) Guy Harris {seismo,ihnp4,allegra}!rlgvax!guy