Official Patch #17 for B News 2.11
Arnold D. Robbins
arnold at skeeve.UUCP
Fri Jan 27 13:36:55 AEST 1989
See the announcement in unix-pc.general for what this is and why you
might want it.
----------------------------------------------------------------
>From gatech!ncar!ames!amdcad!sun!pitstop!sundc!seismo!uunet!rick Wed Jan 25 13:16:25 EST 1989
Article 1799 of news.software.b:
Path: emory!gatech!ncar!ames!amdcad!sun!pitstop!sundc!seismo!uunet!rick
>From: rick at uunet.UU.NET (Rick Adams)
Newsgroups: news.software.b
Subject: Patch #17 for news 2.11 source
Summary: part three of three
Message-ID: <47350 at uunet.UU.NET>
Date: 25 Jan 89 03:28:01 GMT
References: <47348 at uunet.UU.NET> <47349 at uunet.UU.NET>
Organization: UUNET Communications Services, Arlington, VA
Lines: 1441
Description:
This is the third part of three patches. After applying this
you should be at patchlevel 17.
Fix:
apply this in the same manner as patch 15 and 16.
Don't forget the "make update".
Index: readr.c
Prereq: 2.66
*** old/readr.c Fri Dec 4 02:52:24 1987
--- readr.c Sun Jan 22 22:18:21 1989
***************
*** 1,3
/*
! * This software is Copyright (c) 1986 by Rick Adams.
*
--- 1,3 -----
/*
! * This software is Copyright 1986, 1989 by Rick Adams.
*
***************
*** 18,20
#ifdef SCCSID
! static char *SccsId = "@(#)readr.c 2.66 11/30/87";
#endif /* SCCSID */
--- 18,20 -----
#ifdef SCCSID
! static char *SccsId = "@(#)readr.c 2.70 1/22/89";
#endif /* SCCSID */
***************
*** 32,34
! #define saveart oobit = bit;strcpy(ofilename1, filename);strcpy(ogroupdir, groupdir);hptr = h;h = hold;hold = hptr;ongsize = pngsize
#define NLINES(h, fp) (h->numlines[0] ? h->intnumlines : (h->intnumlines=linecnt(fp),sprintf(h->numlines, "%d", h->intnumlines), h->intnumlines))
--- 32,34 -----
! #define saveart oobit = bit;strcpy(ofilename1, filename);strcpy(ogroupdir, groupdir);hptr = h;h = hold;hold = hptr
#define NLINES(h, fp) (h->numlines[0] ? h->intnumlines : (h->intnumlines=linecnt(fp),sprintf(h->numlines, "%d", h->intnumlines), h->intnumlines))
***************
*** 53,55
static int rfq = 0; /* for last article */
- static long ongsize; /* Previous ngsize */
static long pngsize; /* Printing ngsize */
--- 53,54 -----
static int rfq = 0; /* for last article */
static long pngsize; /* Printing ngsize */
***************
*** 56,58
static char *bptr; /* temp pointer. */
- static struct srec srec; /* srec for sys file entries */
static char *tfilename; /* temporary file name */
--- 55,56 -----
static char *bptr; /* temp pointer. */
static char *tfilename; /* temporary file name */
***************
*** 70,72
static FILE *fp; /* current article to be printed*/
- static int holdup; /* 1 iff should stop before hdr */
static int ignorenews; /* 1 iff readnews -p > /dev/null*/
--- 68,69 -----
static FILE *fp; /* current article to be printed*/
static int ignorenews; /* 1 iff readnews -p > /dev/null*/
***************
*** 157,159
int nlines;
! int (*ointr)();
#ifdef SIGCONT
--- 154,156 -----
int nlines;
! SIGNAL_TYPE ointr;
#ifdef SIGCONT
***************
*** 159,161
#ifdef SIGCONT
! int (*ocont)();
#endif /* SIGCONT */
--- 156,158 -----
#ifdef SIGCONT
! SIGNAL_TYPE ocont;
#endif /* SIGCONT */
***************
*** 552,554
(void) strcpy(bfr, groupdir);
! selectng(ogroupdir, TRUE, PERHAPS);
(void) strcpy(groupdir, ogroupdir);
--- 549,551 -----
(void) strcpy(bfr, groupdir);
! selectng(ogroupdir, FALSE, PERHAPS);
(void) strcpy(groupdir, ogroupdir);
***************
*** 647,649
}
!
cancel_command()
--- 644,646 -----
}
!
cancel_command()
***************
*** 650,651
{
int notauthor;
--- 647,649 -----
{
+ register char *poster;
int notauthor;
***************
*** 651,652
int notauthor;
tfilename = filename;
--- 649,652 -----
int notauthor;
+ char *tailpath();
+
tfilename = filename;
***************
*** 662,668
readmode = SPEC;
! (void) strcpy(rcbuf, hptr->path);
! ptr1 = index(rcbuf, ' ');
! if (ptr1)
! *ptr1 = 0;
! notauthor = STRCMP(username, rcbuf);
if (uid != ROOTID && uid && notauthor) {
--- 662,665 -----
readmode = SPEC;
! poster = tailpath(hptr);
! notauthor = STRCMP(username, poster);
if (uid != ROOTID && uid && notauthor) {
***************
*** 668,670
if (uid != ROOTID && uid && notauthor) {
! fprintf(ofp, "Can't cancel what you didn't write.\n");
return FALSE;
--- 665,669 -----
if (uid != ROOTID && uid && notauthor) {
! fprintf(ofp,
! "You (%s) can't cancel someone else's (%s) article.\n",
! username,poster);
return FALSE;
***************
*** 682,684
}
!
reply_command()
--- 681,683 -----
}
!
reply_command()
***************
*** 829,831
}
-
xmit_command()
--- 828,829 -----
}
xmit_command()
***************
*** 832,833
{
tfilename = filename;
--- 830,837 -----
{
+ #ifdef u370
+ static struct srec srec;
+ #else /* !u370 */
+ struct srec srec;
+ #endif /* !u370 */
+
tfilename = filename;
***************
*** 856,858
}
!
next_ng_command()
--- 860,862 -----
}
!
next_ng_command()
***************
*** 891,893
back();
! selectng(bptr, TRUE, TRUE);
return FALSE;
--- 895,897 -----
back();
! selectng(bptr, FALSE, TRUE);
return FALSE;
***************
*** 894,896
}
!
caesar_command()
--- 898,900 -----
}
!
caesar_command()
***************
*** 915,917
}
!
/*
--- 919,921 -----
}
!
/*
***************
*** 964,966
pout(ofp);
- holdup = TRUE;
}
--- 968,969 -----
pout(ofp);
}
***************
*** 970,972
}
!
/*
--- 973,975 -----
}
!
/*
***************
*** 983,985
register DIR *dirp;
! register struct direct *dir;
#endif /* !SERVER */
--- 986,988 -----
register DIR *dirp;
! register DIRECTORY_STRUCT *dir;
#endif /* !SERVER */
***************
*** 1103,1105
(void) get_server(workspace,sizeof(workspace));
! if (*workspace != CHAR_OK) {
if (rflag)
--- 1106,1108 -----
(void) get_server(workspace,sizeof(workspace));
! if (*workspace != '2') {
if (rflag)
***************
*** 1258,1260
#ifdef SERVER
! (void) unlink(active_name());
close_server();
--- 1261,1266 -----
#ifdef SERVER
! if (active_name() != NULL)
! (void) unlink(active_name());
! if (article_name() != NULL)
! (void) unlink(article_name());
close_server();
Index: recmail.c
Prereq: 1.16
*** old/recmail.c Wed Oct 7 16:54:25 1987
--- recmail.c Tue Jan 17 13:09:30 1989
***************
*** 1,3
/*
! * This software is Copyright (c) 1986 by Rick Adams.
*
--- 1,3 -----
/*
! * This software is Copyright 1986, 1989 by Rick Adams.
*
***************
*** 22,24
#ifdef SCCSID
! static char *SccsId = "@(#)recmail.c 1.16 9/24/87";
#endif /* SCCSID */
--- 22,24 -----
#ifdef SCCSID
! static char *SccsId = "@(#)recmail.c 1.18 1/17/89";
#endif /* SCCSID */
***************
*** 39,41
FILE *fd;
! char *tmpf;
FILE *errfd;
--- 39,41 -----
FILE *fd;
! static char tmpf[] = "/tmp/rmXXXXXX";
FILE *errfd;
***************
*** 41,43
FILE *errfd;
! char *errf;
char linebuf[1024];
--- 41,43 -----
FILE *errfd;
! static char errf[] = "/tmp/rmXXXXXX";
char linebuf[1024];
***************
*** 49,51
! tmpf = mktemp("/tmp/rmXXXXXX");
(void) close(creat(tmpf,0666));
--- 49,51 -----
! mktemp(tmpf);
(void) close(creat(tmpf,0666));
***************
*** 52,54
fd = fopen(tmpf, "w");
! errf = mktemp("/tmp/rmXXXXXX");
(void) close(creat(errf,0666));
--- 52,54 -----
fd = fopen(tmpf, "w");
! mktemp(errf);
(void) close(creat(errf,0666));
***************
*** 67,70
}
! else if (fputs(linebuf, fd) == EOF)
! goto werror;
if (linebuf[0] == '\n')
--- 67,73 -----
}
! else {
! fputs(linebuf, fd);
! if (ferror(fd))
! goto werror;
! }
if (linebuf[0] == '\n')
***************
*** 82,84
while (fgets(linebuf, sizeof linebuf, stdin) != NULL) {
! if (fputs(linebuf, fd) == EOF) {
werror:
--- 85,88 -----
while (fgets(linebuf, sizeof linebuf, stdin) != NULL) {
! fputs(linebuf, fd);
! if (ferror(fd)) {
werror:
***************
*** 162,163
exit (0);
}
--- 166,168 -----
exit (0);
+ /*NOTREACHED*/
}
Index: recnews.c
Prereq: 2.18
*** old/recnews.c Fri Dec 4 02:52:27 1987
--- recnews.c Tue Jan 17 13:09:30 1989
***************
*** 50,52
#ifdef SCCSID
! static char *SccsId = "@(#)recnews.c 2.18 12/4/87";
#endif /* SCCSID */
--- 50,52 -----
#ifdef SCCSID
! static char *SccsId = "@(#)recnews.c 2.20 1/17/89";
#endif /* SCCSID */
***************
*** 253,254
exit(0);
}
--- 253,255 -----
exit(0);
+ /*NOTREACHED*/
}
***************
*** 390,392
register char *bcp = cmd-1;
! while (*cmd && *cmd != '"')
*bcp++ = *cmd++;
--- 391,398 -----
register char *bcp = cmd-1;
! while (*cmd) {
! if(*cmd == '\\') {
! cmd++;
! *bcp++ = *cmd++;
! } else if (*cmd == '"')
! break;
*bcp++ = *cmd++;
***************
*** 392,393
*bcp++ = *cmd++;
*bcp = '\0';
--- 398,400 -----
*bcp++ = *cmd++;
+ }
*bcp = '\0';
***************
*** 419,421
{
! register f, r, (*hstat)(), (*istat)(), (*qstat)();
int status;
--- 426,429 -----
{
! register int f, r;
! SIGNAL_TYPE hstat, istat, qstat;
int status;
Index: rfuncs.c
Prereq: 2.44
*** old/rfuncs.c Fri Dec 4 02:52:29 1987
--- rfuncs.c Thu Jan 19 00:06:44 1989
***************
*** 1,3
/*
! * This software is Copyright (c) 1986 by Rick Adams.
*
--- 1,3 -----
/*
! * This software is Copyright 1986, 1989 by Rick Adams.
*
***************
*** 18,20
#ifdef SCCSID
! static char *SccsId = "@(#)rfuncs.c 2.44 11/30/87";
#endif /* SCCSID */
--- 18,20 -----
#ifdef SCCSID
! static char *SccsId = "@(#)rfuncs.c 2.47 1/19/89";
#endif /* SCCSID */
***************
*** 620,622
! static char *newactivename = "/tmp/newsaXXXXXX";
#endif /* SORTACTIVE */
--- 620,622 -----
! static char newactivename[] = "/tmp/newsaXXXXXX";
#endif /* SORTACTIVE */
***************
*** 678,679
if (tp->rcindex < 0) {
if (++line > LINES)
--- 678,684 -----
if (tp->rcindex < 0) {
+ /*
+ ** If there aren't any articles in the group, skip it.
+ */
+ if (tp->maxart == 0)
+ continue;
if (++line > LINES)
***************
*** 709,712
} else {
- fprintf(stderr, "Duplicate .newsrc line or bad group %s\n",
- rcline[lastline]);
lentab[lastline] = 0;
--- 714,715 -----
} else {
lentab[lastline] = 0;
***************
*** 769,771
register DIR *dirp;
! register struct direct *dir;
#endif /* !SERVER */
--- 772,774 -----
register DIR *dirp;
! register DIRECTORY_STRUCT *dir;
#endif /* !SERVER */
***************
*** 775,777
unsigned int alloc_size;
! int (*old_sig) ();
extern lg_trap();
--- 778,780 -----
unsigned int alloc_size;
! SIGNAL_TYPE old_sig;
extern lg_trap();
***************
*** 806,808
#ifdef SERVER
! for(i = lowgp; i < highgp; i++){
#else /* !SERVER */
--- 809,811 -----
#ifdef SERVER
! for(i = lowgp; i <= highgp; i++){
#else /* !SERVER */
***************
*** 898,900
}
- #endif /* !SMALL_ADDRESS_SPACE */
--- 901,902 -----
}
***************
*** 908
}
--- 910,911 -----
}
+ #endif /* !SMALL_ADDRESS_SPACE */
Index: rfuncs2.c
Prereq: 1.36
*** old/rfuncs2.c Fri Dec 4 02:52:30 1987
--- rfuncs2.c Tue Jan 17 13:09:31 1989
***************
*** 18,20
#ifdef SCCSID
! static char *SccsId = "@(#)rfuncs2.c 1.36 11/30/87";
#endif /* SCCSID */
--- 18,20 -----
#ifdef SCCSID
! static char *SccsId = "@(#)rfuncs2.c 1.37 1/17/89";
#endif /* SCCSID */
***************
*** 302,303
*/
/* ARGSUSED */
--- 302,304 -----
*/
+ #ifndef fileno
/* ARGSUSED */
***************
*** 303,304
/* ARGSUSED */
qfflush(fp)
--- 304,306 -----
/* ARGSUSED */
+ #endif /* !defined fileno */
qfflush(fp)
Index: sendbatch.sh
Prereq: 1.16
*** old/sendbatch.sh Fri Dec 4 02:52:32 1987
--- sendbatch.sh Sun Jan 15 23:04:11 1989
***************
*** 1,2
! : '@(#)sendbatch.sh 1.16 12/1/87'
--- 1,2 -----
! : '@(#)sendbatch.sh 1.20 1/15/89'
***************
*** 2,6
! cflags=
! LIM=50000
! MINDF=MINDISKFREE
MAXBATCH=MAXPERBATCH
--- 2,6 -----
! LIB=LIBDIR
! BATCH=BATCHDIR
! LIM=50000
MAXBATCH=MAXPERBATCH
***************
*** 6,9
MAXBATCH=MAXPERBATCH
! SPOOLDISK=SPOOL_DISK
! CMD='LIBDIR/batch BATCHDIR/$rmt $BLIM'
ECHO=
--- 6,10 -----
MAXBATCH=MAXPERBATCH
! RNEWS=rnews
! UUX_FLAGS="UUXFLAGS"
! CMD='$LIB/batch $BATCH/$rmt $BLIM'
ECHO=
***************
*** 11,12
C7=
DOIHAVE=
--- 12,14 -----
C7=
+ cflags=
DOIHAVE=
***************
*** 12,14
DOIHAVE=
! RNEWS=rnews
--- 14,17 -----
DOIHAVE=
! SPOOLDISK=SPOOL_DISK
! MINDF=MINDISKFREE
***************
*** 17,19
case $rmt in
- -[bBC]*) cflags="$cflags $rmt"; continue;;
-s*) LIM=`expr "$rmt" : '-s\(.*\)'`
--- 20,21 -----
case $rmt in
-s*) LIM=`expr "$rmt" : '-s\(.*\)'`
***************
*** 20,23
continue;;
! -c7) COMP='| LIBDIR/compress $cflags'
! C7='| LIBDIR/encode'
ECHO='echo "#! c7unbatch"'
--- 22,33 -----
continue;;
! -m*) MAXBATCH=`expr "$rmt" : '-m\(.*\)'`
! continue;;
! +m*) MAXBATCH=''
! continue;;
! -r*) RNEWS=`expr "$rmt" : '-r\(.*\)'`
! continue;;
! -u*) UUX_FLAGS=`expr "$rmt" : '-u\(.*\)'`
! continue;;
! -c7) COMP='| $LIB/compress $cflags'
! C7='| $LIB/encode'
ECHO='echo "#! c7unbatch"'
***************
*** 24,26
continue;;
! -c) COMP='| LIBDIR/compress $cflags'
ECHO='echo "#! cunbatch"'
--- 34,36 -----
continue;;
! -c) COMP='| $LIB/compress $cflags'
ECHO='echo "#! cunbatch"'
***************
*** 27,28
continue;;
-o*) ECHO=`expr "$rmt" : '-o\(.*\)'`
--- 37,44 -----
continue;;
+ +c*) COMP=''
+ C7=''
+ ECHO=''
+ cflags=''
+ continue;;
+ -[bBC]*) cflags="$cflags $rmt"; continue;;
-o*) ECHO=`expr "$rmt" : '-o\(.*\)'`
***************
*** 30,31
continue;;
-i*) DOIHAVE=`expr "$rmt" : '-i\(.*\)'`
--- 46,50 -----
continue;;
+ +o*) ECHO=''
+ RNEWS=rnews
+ continue;;
-i*) DOIHAVE=`expr "$rmt" : '-i\(.*\)'`
***************
*** 36,38
continue;;
! -m*) MAXBATCH=`expr "$rmt" : '-m\(.*\)'`
continue;;
--- 55,57 -----
continue;;
! +i*) DOIHAVE=''
continue;;
***************
*** 38,39
continue;;
esac
--- 57,62 -----
continue;;
+ -D*) SPOOLDISK=`expr "$rmt" : '-D\(.*\)'`
+ continue;;
+ +D*) SPOOLDISK=''
+ continue;;
esac
***************
*** 40,44
! df=`df $SPOOLDISK | awk "\\$6 == \\"$SPOOLDISK\" {print \\$4}
! \\$1 == \\"$SPOOLDISK\\" {print \\$3}"`
! if test ! -z "$df" -a \( "$df" -lt $MINDF \)
then
--- 63,65 -----
! if test -n "$SPOOLDISK"
then
***************
*** 44,47
then
! echo not enough space on $SPOOLDISK: $df
! continue
fi
--- 65,77 -----
then
! df=`df $SPOOLDISK | awk '
! $6 == "'$SPOOLDISK'" {print $4;exit}
! $1 == "'$SPOOLDISK'" && NF == 7 {print $4;exit}
! $2 == "'$SPOOLDISK'" {print $5;exit}
! $1 == "'$SPOOLDISK'" {print $3;exit}
! '`
! if test ! -z "$df" -a \( "$df" -lt $MINDF \)
! then
! echo $rmt: not enough space on $SPOOLDISK: $df
! continue
! fi
fi
***************
*** 48,50
! if test -s /tmp/uuq.output
then
--- 78,80 -----
! if test -n "$MAXBATCH"
then
***************
*** 50,54
then
! q=`echo "$rmt" | sed 's/\(.......\).*/\1/'`
! q=`awk "\\$1 == \\"$q:\\" { print \\$4;exit}" </tmp/uuq.output`
! if test ! -z "$q" -a \( "$q" -gt $MAXBATCH \)
then
--- 80,83 -----
then
! du=`du "/usr/spool/uucp/$rmt" | sed 's/ .*/000/'`
! if test ! -z "$du" -a \( "$du" -gt $MAXBATCH \)
then
***************
*** 54,56
then
! echo $rmt already has $q bytes queued
continue
--- 83,85 -----
then
! echo $rmt already has $du Kbytes queued
continue
***************
*** 66,68
! : make sure $? is zero
sentbytes=0
--- 95,106 -----
! # only do ihave processing once, not every time through loop
! if test -n "$DOIHAVE" -a -s BATCHDIR/$rmt.ihave
! then
! mv $BATCH/$rmt.ihave $BATCH/$rmt.$$
! $LIB/inews -t "cmsg ihave $DOIHAVE" -n to.$rmt.ctl < \
! $BATCH/$rmt.$$
! rm $BATCH/$rmt.$$
! fi
!
! # make sure $? is zero
sentbytes=0
***************
*** 69,73
while test $? -eq 0 -a $sentbytes -le $MAXBATCH -a \
! \( \( $sentbytes -eq 0 -a -s BATCHDIR/$rmt \) -o \
! -s BATCHDIR/$rmt.work -o \
! \( -n "$DOIHAVE" -a -s BATCHDIR/$rmt.ihave \) \)
do
--- 107,110 -----
while test $? -eq 0 -a $sentbytes -le $MAXBATCH -a \
! \( \( $sentbytes -eq 0 -a -s $BATCH/$rmt \) -o \
! -s $BATCH/$rmt.work \)
do
***************
*** 73,75
do
! if test -n "$DOIHAVE" -a -s BATCHDIR/$rmt.ihave
then
--- 110,113 -----
do
! (eval $ECHO; eval $CMD $COMP $C7) |
! if test -s $BATCH/$rmt.cmd
then
***************
*** 75,81
then
! mv BATCHDIR/$rmt.ihave BATCHDIR/$rmt.$$
! LIBDIR/inews -t "cmsg ihave $DOIHAVE" -n to.$rmt.ctl < \
! BATCHDIR/$rmt.$$
! rm BATCHDIR/$rmt.$$
!
else
--- 113,115 -----
then
! $BATCH/$rmt.cmd
else
***************
*** 81,90
else
! (eval $ECHO; eval $CMD $COMP $C7) |
! if test -s BATCHDIR/$rmt.cmd
! then
! BATCHDIR/$rmt.cmd
! else
! uux - UUXFLAGS $rmt!$RNEWS
! fi
! sentbytes=`expr $sentbytes + $LIM`
fi
--- 115,117 -----
else
! uux - $UUX_FLAGS $rmt!$RNEWS
fi
***************
*** 90,91
fi
done
--- 117,119 -----
fi
+ sentbytes=`expr $sentbytes + $LIM`
done
Index: sendnews.c
Prereq: 2.13
*** old/sendnews.c Wed Oct 7 16:54:57 1987
--- sendnews.c Tue Jan 17 13:09:31 1989
***************
*** 5,7
#ifdef SCCSID
! static char *SccsId = "@(#)sendnews.c 2.13 9/24/87";
#endif /* SCCSID */
--- 5,7 -----
#ifdef SCCSID
! static char *SccsId = "@(#)sendnews.c 2.14 1/17/89";
#endif /* SCCSID */
***************
*** 77,78
exit(0);
}
--- 77,79 -----
exit(0);
+ /*NOTREACHED*/
}
Index: uname.c
Prereq: 2.17
*** old/uname.c Mon Nov 23 19:13:34 1987
--- uname.c Sun Jan 15 19:49:05 1989
***************
*** 1,3
/*
! * This software is Copyright (c) 1986 by Rick Adams.
*
--- 1,3 -----
/*
! * This software is Copyright 1986, 1989 by Rick Adams.
*
***************
*** 23,25
#ifdef SCCSID
! static char *SccsId = "@(#)uname.c 2.17 11/19/87";
#endif /* SCCSID */
--- 23,25 -----
#ifdef SCCSID
! static char *SccsId = "@(#)uname.c 2.18 1/15/89";
#endif /* SCCSID */
***************
*** 27,29
#ifdef BSD2_10
! #include <shortnames.h>
#endif /* BSD2_10 */
--- 27,29 -----
#ifdef BSD2_10
! #include <short_names.h>
#endif /* BSD2_10 */
***************
*** 43,46
gethostname(uptr->nodename, sizeof (uptr->nodename));
! for (cp = uptr->nodename; *cp == '\0'; cp++)
! if (isupper(*cp)) *cp = tolower(*cp);
cp = mydomain();
--- 43,47 -----
gethostname(uptr->nodename, sizeof (uptr->nodename));
! for (cp = uptr->nodename; *cp != '\0'; cp++)
! if (isupper(*cp))
! *cp = tolower(*cp);
cp = mydomain();
Index: uurec.c
Prereq: 2.11
*** old/uurec.c Tue Mar 24 13:52:00 1987
--- uurec.c Tue Jan 17 13:09:31 1989
***************
*** 5,7
#ifdef SCCSID
! static char *SccsId = "@(#)uurec.c 2.11 3/21/87";
#endif /* SCCSID */
--- 5,7 -----
#ifdef SCCSID
! static char *SccsId = "@(#)uurec.c 2.13 1/17/89";
#endif /* SCCSID */
***************
*** 32,35
! #ifdef debug
! # define RNEWS "cat"
#endif
--- 32,36 -----
! #undef DEBUG
! #ifdef DEBUG
! # define RNEWS "/bin/cat"
#endif
***************
*** 44,46
{
! char buf[BFSZ], fbuf[BFSZ];
char bfr[BFSZ], *pbfr = bfr;
--- 45,47 -----
{
! char buf[BFSZ], fbuf[BFSZ], senderbuf[BFSZ];
char bfr[BFSZ], *pbfr = bfr;
***************
*** 53,54
frmflg = FALSE;
while (fgets(buf, BFSZ, stdin) != NULL) {
--- 54,56 -----
frmflg = FALSE;
+ senderbuf[0] = '\0';
while (fgets(buf, BFSZ, stdin) != NULL) {
***************
*** 54,56
while (fgets(buf, BFSZ, stdin) != NULL) {
! #ifdef debug
printf("%o\t%s", mode|type(buf), buf);
--- 56,58 -----
while (fgets(buf, BFSZ, stdin) != NULL) {
! #ifdef DEBUG
printf("%o\t%s", mode|type(buf), buf);
***************
*** 60,61
case FROM | SKIPPING:
if (frmflg)
--- 62,64 -----
case FROM | SKIPPING:
+ strcpy(senderbuf, buf);
if (frmflg)
***************
*** 64,65
p = fbuf;
frmflg = TRUE;
--- 67,71 -----
p = fbuf;
+ #ifdef DEBUG
+ printf("From: %s\n", p);
+ #endif
frmflg = TRUE;
***************
*** 81,83
format = A;
! #ifdef debug
printf("format = %d\n", format);
--- 87,89 -----
format = A;
! #ifdef DEBUG
printf("format = %d\n", format);
***************
*** 114,116
fprintf(pipe, "%s\n", fbuf);
! } else
fputs(buf+1, pipe);
--- 120,136 -----
fprintf(pipe, "%s\n", fbuf);
! } else {
! if (senderbuf[0] != '\0') {
! register char *cp;
! #ifdef DEBUG
! printf("senderbuf: %s",
! senderbuf);
! #endif
! cp = index(senderbuf, ' ');
! if (cp != NULL) {
! fprintf(pipe,
! "Sender: %s",
! cp);
! }
! senderbuf[0] = '\0';
! }
fputs(buf+1, pipe);
***************
*** 116,117
fputs(buf+1, pipe);
}
--- 136,138 -----
fputs(buf+1, pipe);
+ }
}
***************
*** 130,131
exit(0);
}
--- 151,153 -----
exit(0);
+ /*NOTREACHED*/
}
***************
*** 147,148
return(OTHER);
--- 169,173 -----
+ if (strncmp(p, "From: ", 6) == 0)
+ return (FROM);
+
return(OTHER);
***************
*** 189,192
garbled:
! strcat(buf, "???!");
! return(buf+4);
}
--- 214,217 -----
garbled:
! strcat(buf, "GARBLED");
! return(buf+7);
}
Index: virtterm.c
Prereq: 1.14
*** old/virtterm.c Wed Oct 7 16:55:19 1987
--- virtterm.c Sun Jan 15 19:49:06 1989
***************
*** 7,9
#ifdef SCCSID
! static char *SccsId = "@(#)virtterm.c 1.14 9/24/87";
#endif /* SCCSID */
--- 7,9 -----
#ifdef SCCSID
! static char *SccsId = "@(#)virtterm.c 1.15 1/15/89";
#endif /* SCCSID */
***************
*** 104,107
int _dir = 1;
- int _shifttop, _shiftbot;
- int _shift;
int _scratched;
--- 104,105 -----
int _dir = 1;
int _scratched;
***************
*** 108,109
int vputc();
--- 106,108 -----
int vputc();
+ static int _shifttop, _shiftbot, _shift;
***************
*** 401,403
}
- for (; i <= bot; i++)
for (; i <= bot; i++)
--- 400,401 -----
}
for (; i <= bot; i++)
***************
*** 583,585
{
! char direct[20];
char rel[MAXPLEN*10 + MAXLLEN*10]; /* longest move is full screen */
--- 581,583 -----
{
! char direct[MAXPLEN*2];
char rel[MAXPLEN*10 + MAXLLEN*10]; /* longest move is full screen */
Index: visual.c
Prereq: 1.40
*** old/visual.c Fri Dec 4 02:52:37 1987
--- visual.c Sun Jan 22 22:18:19 1989
***************
*** 6,8
#ifdef SCCSID
! static char *SccsId = "@(#)visual.c 1.40 11/30/87";
#endif /* SCCSID */
--- 6,8 -----
#ifdef SCCSID
! static char *SccsId = "@(#)visual.c 1.44 1/22/89";
#endif /* SCCSID */
***************
*** 69,71
! #define saveart oobit = bit;strcpy(ofilename1, filename);strcpy(ogroupdir, groupdir);hptr = h;h = hold;hold = hptr;ongsize = pngsize
#define NLINES(h, fp) (h->numlines[0] ? h->intnumlines : (h->intnumlines=linecnt(fp),sprintf(h->numlines, "%d", h->intnumlines), h->intnumlines))
--- 69,71 -----
! #define saveart oobit = bit;strcpy(ofilename1, filename);strcpy(ogroupdir, groupdir);hptr = h;h = hold;hold = hptr
#define NLINES(h, fp) (h->numlines[0] ? h->intnumlines : (h->intnumlines=linecnt(fp),sprintf(h->numlines, "%d", h->intnumlines), h->intnumlines))
***************
*** 158,160
static int rfq = 0; /* for last article */
- static long ongsize; /* Previous ngsize */
static long pngsize; /* Printing ngsize */
--- 158,159 -----
static int rfq = 0; /* for last article */
static long pngsize; /* Printing ngsize */
***************
*** 161,163
static char *bptr; /* temp pointer. */
- static char *tfilename; /* temporary file name */
static char ofilename1[BUFLEN]; /* previous file name */
--- 160,161 -----
static char *bptr; /* temp pointer. */
static char ofilename1[BUFLEN]; /* previous file name */
***************
*** 171,173
static long oobit; /* last bit, really */
- static int dgest = 0;
static FILE *fp; /* current article to be printed*/
--- 169,170 -----
static long oobit; /* last bit, really */
static FILE *fp; /* current article to be printed*/
***************
*** 260,262
(void) strcpy(prompt, "more? ");
! else
#ifdef DIGPAGE
--- 257,261 -----
(void) strcpy(prompt, "more? ");
! else {
! int percent;
!
#ifdef DIGPAGE
***************
*** 262,264
#ifdef DIGPAGE
! (void) sprintf(prompt, "more(%d%%)? ",
((((endsuba > 0) ?
--- 261,263 -----
#ifdef DIGPAGE
! percent =
((((endsuba > 0) ?
***************
*** 265,267
endsuba : (dlinno + ARTWLEN)) -
! hdrend) * 100) / maxlinno);
#else /* !DIGPAGE */
--- 264,266 -----
endsuba : (dlinno + ARTWLEN)) -
! hdrend) * 100) / maxlinno;
#else /* !DIGPAGE */
***************
*** 267,270
#else /* !DIGPAGE */
! (void) sprintf(prompt, "more(%d%%)? ",
! ((dlinno + ARTWLEN - hdrend) * 100) / maxlinno);
#endif /* !DIGPAGE */
--- 266,269 -----
#else /* !DIGPAGE */
! percent =
! ((dlinno + ARTWLEN - hdrend) * 100) / maxlinno;
#endif /* !DIGPAGE */
***************
*** 270,271
#endif /* !DIGPAGE */
} else {
--- 269,275 -----
#endif /* !DIGPAGE */
+ if (percent > 100 ||
+ (percent == 100 && !feof(fp)))
+ (void) sprintf(prompt, "more? ");
+ else (void) sprintf(prompt, "more(%d%%)? ", percent);
+ }
} else {
***************
*** 686,687
/* escape to shell */
--- 690,692 -----
+ #ifndef NOSHELL
/* escape to shell */
***************
*** 717,719
}
!
/* mail reply */
--- 722,724 -----
}
! #endif /* NOSHELL */
/* mail reply */
***************
*** 951,953
{
! register char *poster, *r;
int notauthor;
--- 956,958 -----
{
! register char *poster;
int notauthor;
***************
*** 953,955
int notauthor;
! char *senderof();
--- 958,960 -----
int notauthor;
! char *tailpath();
***************
*** 955,964
! poster = senderof(h);
! /* only compare up to '.' or ' ' */
! r = index(poster,'.');
! if (r == NULL)
! r = index(poster,' ');
! if (r != NULL)
! *r = '\0';
! tfilename = filename;
notauthor = STRCMP(username, poster);
--- 960,962 -----
! poster = tailpath(h);
notauthor = STRCMP(username, poster);
***************
*** 965,967
if (uid != ROOTID && uid && notauthor) {
! msg("Can't cancel what you didn't write.");
return;
--- 963,966 -----
if (uid != ROOTID && uid && notauthor) {
! msg("You (%s) can't cancel someone else's (%s) article.",
! username,poster);
return;
***************
*** 1149,1151
register DIR *dirp;
! register struct direct *dir;
#endif /* !SERVER */
--- 1148,1150 -----
register DIR *dirp;
! register DIRECTORY_STRUCT *dir;
#endif /* !SERVER */
***************
*** 1166,1168
}
- dgest = 0;
--- 1165,1166 -----
}
***************
*** 1198,1199
#ifdef SERVER
if (bit == 0 || (fp = getarticle(groupdir, bit, "ARTICLE")) == NULL)
--- 1196,1198 -----
#ifdef SERVER
+ if (article_name() != NULL) (void) unlink(article_name());
if (bit == 0 || (fp = getarticle(groupdir, bit, "ARTICLE")) == NULL)
***************
*** 1237,1239
(void) get_server(workspace,sizeof(workspace));
! if (*workspace != CHAR_OK) {
if (rflag)
--- 1236,1238 -----
(void) get_server(workspace,sizeof(workspace));
! if (*workspace != '2') {
if (rflag)
***************
*** 1740,1742
int i;
! int (*savequit)();
char *env[100], **envp, **oenvp;
--- 1739,1741 -----
int i;
! SIGNAL_TYPE savequit;
char *env[100], **envp, **oenvp;
***************
*** 2421,2423
int getpgrp();
! #if defined(BSD4_2) || defined(BSD4_1C)
int tpgrp;
--- 2420,2422 -----
int getpgrp();
! #if defined(BSD4_2)
int tpgrp;
***************
*** 2699,2701
#ifdef SERVER
! (void) unlink(active_name());
close_server();
--- 2698,2703 -----
#ifdef SERVER
! if (active_name() != NULL)
! (void) unlink(active_name());
! if (article_name() != NULL)
! (void) unlink(article_name());
close_server();
Index: vnews.help
*** old/vnews.help Tue Mar 24 13:52:05 1987
--- vnews.help Tue Jan 17 13:45:31 1989
***************
*** 1,2
! Vnews commands: (each may be preceded by a non-negative count)
--- 1,2 -----
! Vnews commands: ( may be preceded by a non-negative count) V 2.2 1/17/89
***************
*** 5,7
e Mark current article as unread < Go to article with given ID
! + Go forwards count articles p Go to parent article
- Go to previous article ug Unsubscribe to this group
--- 5,7 -----
e Mark current article as unread < Go to article with given ID
! + or = Go forwards count articles p Go to parent article
- Go to previous article ug Unsubscribe to this group
Index: patchlevel.h
Prereq: 16
*** .d/patchlevel.h Fri Dec 4 02:52:37 1987
--- patchlevel.h Tue Jan 24 14:52:11 1989
***************
*** 1,2
! #define PATCHLEVEL 16
--- 1,2 -----
! #define PATCHLEVEL 17
***************
*** 2,3
! #define NEWS_VERSION "B 2.11 1/23/89"
--- 2,3 -----
! #define NEWS_VERSION "B 2.11 1/24/89"
--- end of patch 17 ---
--
"Crack-pot societies of all kinds sprang up everwhere, advocating everything
from absolutism to anarchy. Queer cults arose, preaching free love, the
imminent end of the world, and many other departures from the norm of thought."
E.E. "Doc" Smith, Children of the Lens, 1954 | Arnold Robbins, skeeve!arnold
More information about the Unix-pc.sources
mailing list