rn bug #28
Larry Wall
lwall at sdcrdcf.UUCP
Sat Dec 1 11:43:36 AEST 1984
System: rn version 4.1
Bug #: 28
Priority: LOW
Subject: rn doesn't find new articles as quickly as it should on 4.2
Description:
Rn tries to discard the current buffer from the active file whenever
it wants to find the size of a newsgroup, but the discard isn't
successful most of the time on 4.2 because stdio buffers grew, and
fseeking forward 1024 bytes doesn't usually get out of the current
buffer.
Repeat-By:
If you find that you have to exit a newsgroup and re-enter to get
rn to see a new article, you have the problem. In particular, you
ought to be seeing your own followups without having to exit the
newsgroup.
Fix: From rn, say "| patch -d DIR", where DIR is your rn source directory.
Outside of rn, say "cd DIR; patch <thisarticle". If you don't have
the patch program, apply the following by hand, or get patch.
Index: ngdata.c
Prereq: 4.1.1.2
***************
*** 1,4
! /* $Header: ngdata.c,v 4.1.1.2 84/10/12 15:23:46 lwall Exp $
*
* $Log: ngdata.c,v $
* Revision 4.1.1.2 84/10/12 15:23:46 lwall
--- 1,4 -----
! /* $Header: ngdata.c,v 4.1.1.3 84/11/30 15:11:47 lwall Exp $
*
* $Log: ngdata.c,v $
* Revision 4.1.1.3 84/11/30 15:11:47 lwall
***************
*** 1,6
/* $Header: ngdata.c,v 4.1.1.2 84/10/12 15:23:46 lwall Exp $
*
* $Log: ngdata.c,v $
* Revision 4.1.1.2 84/10/12 15:23:46 lwall
* s/atoi/atol/ where necessary.
*
--- 1,10 -----
/* $Header: ngdata.c,v 4.1.1.3 84/11/30 15:11:47 lwall Exp $
*
* $Log: ngdata.c,v $
+ * Revision 4.1.1.3 84/11/30 15:11:47 lwall
+ * getngsize wasn't dumping buffer on 4.2 because the buffer size grew
+ * beyond 1024.
+ *
* Revision 4.1.1.2 84/10/12 15:23:46 lwall
* s/atoi/atol/ where necessary.
*
***************
*** 68,74
nam = rcline[num];
len = rcnums[num] - 1;
softtries++;
! fseek(actfp,1024L,1); /* hopefully this forces a reread */
#ifdef DEBUGGING
if (debug & DEB_SOFT_POINTERS)
printf("Softptr = %ld\n",(long)softptr[num]);
--- 72,78 -----
nam = rcline[num];
len = rcnums[num] - 1;
softtries++;
! fseek(actfp,100000L,1); /* hopefully this forces a reread */
#ifdef DEBUGGING
if (debug & DEB_SOFT_POINTERS)
printf("Softptr = %ld\n",(long)softptr[num]);
More information about the Comp.sources.bugs
mailing list