[net.sources.bugs] rn 4.3 patch #39

lwall@sdcrdcf.UUCP (Larry Wall) (11/19/86)

System: rn version 4.3
Patch #: 39
Priority: depends on whether you installed #37
Subject: patch #37 deletes the .rnlast file
From: lotsa people

Description:
	Rn used to dump core on adding a new newsgroup to the
	.newsrc file.  Patch #37 fixed this but caused rn to delete the
	.rnlast file so that rn thinks you've never run rn before, with
	all that that implies (shows newsnews, new newsgroups, etc.).
	
Repeat by:
	Apply patch #37.  Run rn.  Run rn again.

Fix:	The fix is to substitute "" for the null pointer, but still write the
	file.

	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.

	If patch indicates that patchlevel is the wrong version, you may need
	to apply one or more previous patches, or the patch may already
	have been applied.  See the patchlevel file to find out what has or
	has not been applied.  In any event, don't continue with the patch.

	[Note, I cannot test this patch because rn is being rewritten.  Please
	be patient with us during this remodelling--law]

	If you are missing previous patches they can be obtained from me:

	Larry Wall
	{allegra,burdvax,cbosgd,hplabs,ihnp4,sdcsvax}!sdcrdcf!lwall

	If you send a mail message of the following form it will greatly speed
	processing:

	Subject: Command
	@SH mailpatch PATH rn 4.3 LIST
		   ^
		   notice the c

	where PATH is a return path FROM ME TO YOU in bang notation, and LIST
	is a list of one or more patches you need, separated by spaces, commas
	and/or hyphens.  Saying n- will give you everything from n on up.

Index: patchlevel
Prereq: 38
1c1
< Patch #: 38
---
> Patch #: 39

Index: last.c
*** last.c.orig	Wed Nov 19 10:42:43 1986
--- last.c	Wed Nov 19 10:42:47 1986
***************
*** 47,55
  writelast()
  {
      if ((tmpfp = fopen(lastname,"w")) != Nullfp) {
! 	if (ngname != Nullch)
! 		fprintf(tmpfp,"%s\n%ld\n%ld\n",
! 			ngname,(long)lasttime,(long)lastactsiz);
  	fclose(tmpfp);
      }
      else

--- 47,54 -----
  writelast()
  {
      if ((tmpfp = fopen(lastname,"w")) != Nullfp) {
! 	fprintf(tmpfp,"%s\n%ld\n%ld\n",
! 	    (ngname==Nullch?nullstr:ngname),(long)lasttime,(long)lastactsiz);
  	fclose(tmpfp);
      }
      else