[net.sources.bugs] rn bug #17--important for usenet admin types

lwall@sdcrdcf.UUCP (Larry Wall) (10/19/84)

#!/bin/sh
: make a subdirectory, cd to it, and run this through sh.
echo 'If this kit is complete, "End of kit" will echo at the end'
echo Extracting index
cat >index <<'!STUFFY!FUNK!'
bug1:	Subject: %i and %R use old Article-I.D. line
bug2:	Subject: rn may get confused about minimum article numbers
bug3:	Subject: rn on System V--circular dependency
bug4:	Subject: 2.10.2 disables checkexpired() optimization.
bug5:	Subject: Xref patch for 2.10.1 inews is wrong.
bug6:	Subject: articles saved to mailbox start with "From: " instead of "From ".
bug7:	Subject: core dump on portable rn
bug8:	Subject: <sys/ioctl> not found on V7
bug9:	Subject: int vs. long
bug10:	Subject: %d vs %ld
bug11:	Subject: R and F may not include article.
bug12:	Subject: missing free() on pdp11's
bug13:	Subject: switch bugs
bug14:	Subject: missing ; if DEBUGGING not defined
bug15:	Subject: (Mail) happens inappropriately.
bug16:	Subject: & substitution in fullname incorrect
bug17:	Subject: null junk files and checkgroups that want to remove everything
!STUFFY!FUNK!
echo Extracting bug17
cat >bug17 <<'!STUFFY!FUNK!'
System: rn version 4.1
Bug #: 17
Subject: null junk files and checkgroups that want to remove everything
Index: inews.c (version 2.10.2)

Description:
	Due to differences between 2.10.1 and 2.10.2, the DOXREFS patch
	sent out with the rn kit for inews 2.10.2 can cause inews to do
	certain strange things.  All your files in the junk newsgroup will
	end up empty, and the checkgroups control message will ask you to
	remove all non-local newsgroups.

Repeat-By:
	If you installed inews.c.2.pat, you've got the problem, and are
	already repeating it.

Fix:	Install inews.c.17-c on a 2.10.2 inews that already has the DOXREFS
	patch.  This new patch merely changes some LINKART's into DOXREFS's
	(the code was already there, I just short-circuited), and moves the
	call to control() to after the article file is copied.  Someone
	suggested changing the code in control() regarding checkgroups, but
	changing inews.c is more general, and besides, I'm lazy and don't
	want to patch two files when I could patch one.
!STUFFY!FUNK!
echo Extracting inews.c.17-c
cat >inews.c.17-c <<'!STUFFY!FUNK!'
*** inews.c.2.oldpat	Thu Oct 18 09:39:54 1984
--- inews.c.2	Thu Oct 18 09:36:44 1984
***************
*** 576,582
  		logerr("No valid newsgroups found, moved to junk");
  		if (localize("junk"))
  			savehist(histline);
! #ifndef LINKART
  		xxit(1);
  #endif
  	}

--- 576,582 -----
  		logerr("No valid newsgroups found, moved to junk");
  		if (localize("junk"))
  			savehist(histline);
! #ifndef DOXREFS
  		xxit(1);
  #endif
  	}
***************
*** 580,586
  		xxit(1);
  #endif
  	}
! #ifdef LINKART
  	else
  #endif
  	if (time((time_t)0) > (cgtdate(header.subdate) + DFLTEXP) ){

--- 580,586 -----
  		xxit(1);
  #endif
  	}
! #ifdef DOXREFS
  	else
  #endif
  	if (time((time_t)0) > (cgtdate(header.subdate) + DFLTEXP) ){
***************
*** 587,593
  		logerr("Article too old, moved to junk");
  		if (localize("junk"))
  			savehist(histline);
! #ifndef LINKART
  		xxit(1);
  #endif
  	}

--- 587,593 -----
  		logerr("Article too old, moved to junk");
  		if (localize("junk"))
  			savehist(histline);
! #ifndef DOXREFS
  		xxit(1);
  #endif
  	}
***************
*** 591,597
  		xxit(1);
  #endif
  	}
! #ifdef LINKART
  	else
  #endif
  	if (is_ctl) {

--- 591,597 -----
  		xxit(1);
  #endif
  	}
! #ifdef DOXREFS
  	else
  #endif
  	if (is_ctl) {
***************
*** 595,600
  	else
  #endif
  	if (is_ctl) {
  		control(&header);
  		localize("control");
  	} else {

--- 595,601 -----
  	else
  #endif
  	if (is_ctl) {
+ #ifndef DOXREFS
  		control(&header);
  #endif
  		localize("control");
***************
*** 596,601
  #endif
  	if (is_ctl) {
  		control(&header);
  		localize("control");
  	} else {
  		if (s_find(&srec, FULLSYSNAME) == FALSE)

--- 597,603 -----
  	if (is_ctl) {
  #ifndef DOXREFS
  		control(&header);
+ #endif
  		localize("control");
  	} else {
  		if (s_find(&srec, FULLSYSNAME) == FALSE)
***************
*** 656,661
  	fclose(tfp);
  	fclose(infp);
  #endif LINKART || DOXREFS
  
  	broadcast();
  	savehist(histline);

--- 658,668 -----
  	fclose(tfp);
  	fclose(infp);
  #endif LINKART || DOXREFS
+ 
+ #ifdef DOXREFS
+ 	if (is_ctl)	/* moved here cuz checkgroups uses ARTICLE! */
+ 		control(&header);
+ #endif
  
  	broadcast();
  	savehist(histline);
!STUFFY!FUNK!
echo ""
echo "End of kit"
: I do not append .signature, but someone might mail this.
exit

uddeborg@chalmers.UUCP (G|ran Uddeborg) (10/25/84)

What about a shell script that takes a bug fix message from Larry, unpacks
it, installs the patches using rcs, archives the fixes and cleans up? :-)

G|ran Uddeborg
...!mcvax!enea!chalmers!uddeborg