puder@burdvax.UUCP (09/20/83)
I noticed that saved news had Dec 31 19:00:00 1969 on it, so I went in looking for a zero. I found that the internal header record has a subtime field (corresponding to subdate) that is used but never set. I fixed this with getdate, and did the same for exptime and rectime. Here is the diff: % rcsdiff -c2 -r1.1 -r1.2 header.c RCS file: RCS/header.c,v retrieving revision 1.1 retrieving revision 1.2 diff -c2 -r1.1 -r1.2 *** /tmp/,RCSt1023482 Mon Sep 19 17:27:38 1983 --- /tmp/,RCSt2023482 Mon Sep 19 17:27:44 1983 *************** *** 59,62 if (!nstrip(hp->subdate)) return(NULL); hfgets(hp->title, BUFLEN, fp); /* title */ if (!nstrip(hp->title)) --- 59,64 ----- if (!nstrip(hp->subdate)) return(NULL); + /* fill in subtime * puder 9/19/83 */ + hp->subtime = getdate(hp->subdate, (struct timeb *) NULL); hfgets(hp->title, BUFLEN, fp); /* title */ if (!nstrip(hp->title)) *************** *** 144,147 case SUBMIT: getfield(hp->subdate); break; case RECEIVE: --- 146,151 ----- case SUBMIT: getfield(hp->subdate); + hp->subtime = getdate(hp->subdate, + (struct timeb *) NULL);/* puder 9/19/83 */ break; case RECEIVE: *************** *** 147,150 case RECEIVE: getfield(hp->recdate); break; case EXPIRE: --- 151,156 ----- case RECEIVE: getfield(hp->recdate); + hp->rectime = getdate(hp->recdate, + (struct timeb *) NULL);/* puder 9/19/83 */ break; case EXPIRE: *************** *** 150,153 case EXPIRE: getfield(hp->expdate); break; case ARTICLEID: --- 156,161 ----- case EXPIRE: getfield(hp->expdate); + hp->exptime = getdate(hp->expdate, + (struct timeb *) NULL);/* puder 9/19/83 */ break; case ARTICLEID: ++++++++++++++++ These last two differences are not real, they are (apparently) a bug in rcsdiff. Has anybody else seen this behavior? *************** *** 554,558 *--tp = '\0'; /* clobber newline */ ! while ((c = getc(fp)) == ' ' || c == '\t') { /* for each cont line */ /* Continuation line. */ while ((c = getc(fp)) == ' ' || c == 't') /* skip white space */ --- 562,568 ----- *--tp = '\0'; /* clobber newline */ ! while ((c = getc(fp)) == ' ' || c == '\t') { /* f[1] 23491 ! [1] Done /usr/adm/RCSLOG/bin/snoop ... ! or each cont line */ /* Continuation line. */ while ((c = getc(fp)) == ' ' || c == 't') /* skip white space */ *************** *** 566,570 if (c != EOF) ungetc(c, fp); /* push back first char of next header */ ! return c[1] 23487 ! p; } --- 576,579 ----- if (c != EOF) ungetc(c, fp); /* push back first char of next header */ ! return cp; } 8.1u 4.6s 0:37 34% 35+18k 174+78io 29pf+0w %