Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10 Apollo 7/31/84; site apollo.uucp
Path: utzoo!watmath!clyde!burl!mgnetp!ihnp4!zehntel!dual!amd!decwrl!decvax!wivax!apollo!rees
From: rees@apollo.UUCP
Newsgroups: net.bugs
Subject: Re: Readnews Bug
Message-ID: <20f090b2.1de6@apollo.uucp>
Date: Fri, 3-Aug-84 13:46:17 EDT
Article-I.D.: apollo.20f090b2.1de6
Posted: Fri Aug  3 13:46:17 1984
Date-Received: Sun, 5-Aug-84 06:10:12 EDT
References: <552@houxe.UUCP>
Organization: Apollo Computer, Chelmsford, Mass.
Lines: 52

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)