B News 2.11, patch #19
Arnold D. Robbins
arnold at skeeve.UUCP
Fri Nov 10 14:06:10 AEST 1989
Here is patch #19 for B News 2.11. Note that there is a bug for
which the next article will have an unofficial fix -- keep the
original copy of sendbatch.sh for patch #20 (if and when).
Arnold
--------------------------------------------------------------------
Path: emory!ctrsol!cica!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!rick
From: rick at uunet.UU.NET (Rick Adams)
Newsgroups: news.software.b
Subject: Patch 19 for B news 2.11 src
Message-ID: <71135 at uunet.UU.NET>
Date: 31 Oct 89 04:10:04 GMT
Organization: UUNET Communications Services, Falls Church, VA
Lines: 648
Description:
This is patch 19 for news 2.11. It addresses the following problems:
Fixes buffering problem with rnews.
Several typos introduced in patch 18 fixed.
If no articles are in a group, minarticle will be one
more than maxarticle in active file (like C news)
expire -I and -i now work
version control message no longer includes header of message
in response.
version control message NOTIFYs usenet if NOTIFY is enabled.
new localize.xenix
if cancel control message arrives and is not propagated
(due to cancel failing), dont save the control message,
only the history of it.
Fix:
cd src and make install
Index: control.c
Prereq: 2.60
diff -c1 onews/control.c news/control.c
*** onews/control.c Tue Sep 12 17:56:08 1989
--- news/control.c Sun Oct 29 20:44:14 1989
***************
*** 21,23
#ifdef SCCSID
! static char *SccsId = "@(#)control.c 2.60 9/5/89";
#endif /* SCCSID */
--- 21,23 -----
#ifdef SCCSID
! static char *SccsId = "@(#)control.c 2.61 10/29/89";
#endif /* SCCSID */
***************
*** 476,478
(void) fseek(actfp, 0L, 2); clearerr(actfp);
! fprintf(actfp, "%s 0000000 0000000 %c\n", argv[1],
(argc > 2 && STRCMP(argv[2], "moderated") == 0)
--- 476,478 -----
(void) fseek(actfp, 0L, 2); clearerr(actfp);
! fprintf(actfp, "%s 0000000 0000001 %c\n", argv[1],
(argc > 2 && STRCMP(argv[2], "moderated") == 0)
***************
*** 787,788
f = mailhdr(&header, "Our news version");
--- 787,799 -----
+ #ifdef NOTIFY
+ if (argc < 2) {
+ f = mailhdr((struct hbuf *)NULL, "version control message");
+ if (f != NULL) {
+ fprintf(f, "%s requested your news version.\n", header.path);
+ fprintf(f, "It has been sent.\n");
+ fprintf(f, "\n\n%s says:\n", header.path);
+ controlmail = f;
+ }
+ }
+ #endif /* NOTIFY */
f = mailhdr(&header, "Our news version");
***************
*** 791,794
fprintf(f, "Currently running news version %s.\n\n", news_version);
- fprintf(f, "The header of your message follows:\n\n");
- (void) hwrite(&header, f);
(void) mclose(f);
--- 802,803 -----
fprintf(f, "Currently running news version %s.\n\n", news_version);
(void) mclose(f);
Index: expire.c
Prereq: 2.63
diff -c1 onews/expire.c news/expire.c
*** onews/expire.c Tue Sep 12 17:56:10 1989
--- news/expire.c Sun Oct 29 20:44:14 1989
***************
*** 19,21
#ifdef SCCSID
! static char *SccsId = "@(#)expire.c 2.63 9/1/89";
#endif /* SCCSID */
--- 19,21 -----
#ifdef SCCSID
! static char *SccsId = "@(#)expire.c 2.64 10/29/89";
#endif /* SCCSID */
***************
*** 468,470
rectime = cgtdate(recdate);
! exptime = atol(p3);
} else {
--- 468,474 -----
rectime = cgtdate(recdate);
! exptime = rectime + expincr;
! newtime = atol(p3);
! if (ignorexp == 0
! || (ignorexp == 1 && newtime < exptime) )
! exptime = newtime;
} else {
***************
*** 927,929
if (minart > maxart)
! minart = maxart;
--- 931,933 -----
if (minart > maxart)
! minart = maxart + 1;
Index: ifuncs.c
Prereq: 2.77
diff -c1 onews/ifuncs.c news/ifuncs.c
*** onews/ifuncs.c Tue Sep 12 17:56:19 1989
--- news/ifuncs.c Sun Oct 29 20:44:15 1989
***************
*** 18,20
#ifdef SCCSID
! static char *SccsId = "@(#)ifuncs.c 2.77 9/12/89";
#endif /* SCCSID */
--- 18,20 -----
#ifdef SCCSID
! static char *SccsId = "@(#)ifuncs.c 2.78 10/29/89";
#endif /* SCCSID */
***************
*** 27,28
extern long localize();
--- 27,29 -----
extern long localize();
+ extern char *infpbuf;
***************
*** 401,405
ofp = fopen(sp->s_xmit, "a");
- #ifdef F_SETFL
- (void) fcntl(fileno(ofp), F_SETFL, O_APPEND);
- #endif /* F_SETFL */
if (ofp == NULL)
--- 402,403 -----
ofp = fopen(sp->s_xmit, "a");
if (ofp == NULL)
***************
*** 406,407
xerror("Cannot append to %s", sp->s_xmit);
if (appfile && appmsgid)
--- 404,409 -----
xerror("Cannot append to %s", sp->s_xmit);
+ #if defined(F_SETFL) && !defined(MULTICAST)
+ (void) fcntl(fileno(ofp), F_SETFL, O_APPEND);
+ #endif /* F_SETFL */
+ #ifdef MULTICAST
if (appfile && appmsgid)
***************
*** 411,413
firstbufname);
- #ifdef MULTICAST
while (--mc >= 0)
--- 413,414 -----
firstbufname);
while (--mc >= 0)
***************
*** 414,416
fprintf(ofp, " %s", *sysnames++);
- #endif /* !MULTICAST */
putc('\n', ofp);
--- 415,416 -----
fprintf(ofp, " %s", *sysnames++);
putc('\n', ofp);
***************
*** 416,417
putc('\n', ofp);
(void) fclose(ofp);
--- 416,424 -----
putc('\n', ofp);
+ #else /* !MULTICAST */
+ if (appfile && appmsgid)
+ fprintf(ofp, "%s\t%s\n", firstbufname, hh.ident);
+ else
+ fprintf(ofp, "%s\n", appmsgid ? hh.ident :
+ firstbufname);
+ #endif /* !MULTICAST */
(void) fclose(ofp);
***************
*** 1333,1335
int c;
- char *cp;
--- 1340,1341 -----
int c;
***************
*** 1365,1369
tfilename = 0;
! cp = malloc((unsigned)BUFSIZ);
! if (cp != NULL)
! setbuf(infp, cp);
do {
--- 1371,1375 -----
tfilename = 0;
! infpbuf = malloc((unsigned)BUFSIZ);
! if (infpbuf != NULL)
! setbuf(infp, infpbuf);
do {
***************
*** 1454,1456
setbuf(infp, (char *) NULL);
! (void) free(cp);
return; /* from checkbatch as if
--- 1460,1463 -----
setbuf(infp, (char *) NULL);
! (void) free(infpbuf);
! infpbuf = NULL;
return; /* from checkbatch as if
***************
*** 1480,1484
} /* while a batch */
! cp = malloc((unsigned)BUFSIZ);
! if (cp != NULL)
! setbuf(infp, cp);
if (c != EOF)
--- 1487,1491 -----
} /* while a batch */
! infpbuf = malloc((unsigned)BUFSIZ);
! if (infpbuf != NULL)
! setbuf(infp, infpbuf);
if (c != EOF)
Index: inews.c
Prereq: 2.92
diff -c1 onews/inews.c news/inews.c
*** onews/inews.c Tue Sep 12 17:56:22 1989
--- news/inews.c Sun Oct 29 20:44:17 1989
***************
*** 19,21
#ifdef SCCSID
! static char *SccsId = "@(#)inews.c 2.92 9/1/89";
#endif /* SCCSID */
--- 19,21 -----
#ifdef SCCSID
! static char *SccsId = "@(#)inews.c 2.93 10/29/89";
#endif /* SCCSID */
***************
*** 103,104
extern int errno, xxit();
--- 103,105 -----
extern int errno, xxit();
+ char *infpbuf = NULL;
***************
*** 239,241
if (space()) { /* check disk space */
! spool_news = DOSPOOL;
logerr("Out of space in %s.", SPOOLDIR);
--- 240,242 -----
if (space()) { /* check disk space */
! spool_news = DO_SPOOL;
logerr("Out of space in %s.", SPOOLDIR);
***************
*** 524,525
checkbatch();
(void) signal(SIGHUP, SIG_IGN);
--- 525,531 -----
checkbatch();
+ if (infpbuf == NULL) { /* make sure do buffered reads */
+ infpbuf = malloc((unsigned)BUFSIZ);
+ if (infpbuf != NULL)
+ setbuf(infp, infpbuf);
+ }
(void) signal(SIGHUP, SIG_IGN);
***************
*** 1088,1090
#ifndef NFSCLIENT
! if (localize("control") && exitcode != 0)
savehist(histline);
--- 1094,1096 -----
#ifndef NFSCLIENT
! if (exitcode != 0)
savehist(histline);
***************
*** 1090,1091
savehist(histline);
} else {
--- 1096,1099 -----
savehist(histline);
+ else
+ localize("control");
} else {
***************
*** 1183,1184
(void) fclose(infp);
if(exitcode == 0) {
--- 1191,1196 -----
(void) fclose(infp);
+ if (infpbuf) {
+ (void) free(infpbuf);
+ infpbuf = NULL;
+ }
if(exitcode == 0) {
***************
*** 1297,1299
}
! if (*filename)
(void) fclose(infp);
--- 1309,1311 -----
}
! if (*filename) {
(void) fclose(infp);
***************
*** 1299,1300
(void) fclose(infp);
if (mode != PROC &&
--- 1311,1317 -----
(void) fclose(infp);
+ if (infpbuf) {
+ (void) free(infpbuf);
+ infpbuf = NULL;
+ }
+ }
if (mode != PROC &&
Index: localize.xenix
diff -c1 onews/localize.xenix news/localize.xenix
*** onews/localize.xenix Fri Oct 16 18:22:08 1987
--- news/localize.xenix Sun Oct 29 20:44:17 1989
***************
*** 1,2
- #
# This is correct for the
--- 1 -----
# This is correct for the
***************
*** 2,4
# This is correct for the
! # XENIX (empty) 5.0 iAPX286 1 1006 (empty)
# version. There are so many versions of xenix out there
--- 1,3 -----
# This is correct for the
! # SCO XENIX 286 release 2.2.3
# version. There are so many versions of xenix out there
***************
*** 11,12
ed - Makefile <<'EOF'
g/^#USG /s///
--- 10,23 -----
ed - Makefile <<'EOF'
+ /^HOME/s/^HOME/#HOME/
+ /^UUXFLAGS/s/ -r -z/ -r/
+ /^SPOOL_DISK/s/\/usr\/spool//
+ /^DEFS/;a
+ -DMAILPROGRAM=\"/usr/bin/mail\" \
+ .
+ /^fullinstall:/+3;a
+ -test -d $(DESTDIR)$(BATCHDIR) || mkdir $(DESTDIR)$(BATCHDIR)
+ chmod 777 $(DESTDIR)$(BATCHDIR)
+ chown $(NEWSUSR) $(DESTDIR)$(BATCHDIR)
+ chgrp $(NEWSGRP) $(DESTDIR)$(BATCHDIR)
+ .
g/^#USG /s///
***************
*** 17,19
g/^MISC *=/s/$/ uname.o/
- g/^UUXFLAGS/s//UUXFLAGS =/
g/^IBMFLAGS/s/$/ -M2l -LARGE -DM_XENIX/
--- 28,29 -----
g/^MISC *=/s/$/ uname.o/
g/^IBMFLAGS/s/$/ -M2l -LARGE -DM_XENIX/
***************
*** 25,28
g/-o readnews/s/-o/-m readnews.map -F 3000 -o/
! g/-o vnews /s/-o/-F 5000 -m vnews.map -o /
! g/-o checknews/s/-o/-F E000 -o/
g/-o expire/s/-o/-F A000 -o/
--- 35,38 -----
g/-o readnews/s/-o/-m readnews.map -F 3000 -o/
! /^vnews:/+1;s/-o $@ /-F 5000 -m vnews.map -o vnews/
! /^checknews:/+1;s/$(LFLAGS)/$(LFLAGS) -F E000/
g/-o expire/s/-o/-F A000 -o/
***************
*** 40,41
ed - defs.h <<'EOF'
g/#define TMAIL/s//\/\* #define TMAIL/
--- 50,54 -----
ed - defs.h <<'EOF'
+ /ROOTID/s/10/100/
+ /N_UMASK/s/000/022/
+ /DFLTSUB/s/general,all.announce/all/
g/#define TMAIL/s//\/\* #define TMAIL/
***************
*** 41,44
g/#define TMAIL/s//\/\* #define TMAIL/
! g/\/usr\/ucb\/more/s//\/usr\/bin\/more/
! g/uux - -r -z/s//uux - /
g/uucpname/s//systemid/
--- 54,58 -----
g/#define TMAIL/s//\/\* #define TMAIL/
! /PAGE/s/\/usr\/ucb\/more/\/usr\/bin\/more/
! /DFTXMIT/s/uux - -r -z/uux - -r/
! /UXMIT/s/uux -r -z -c/uux -r/
g/uucpname/s//systemid/
***************
*** 46,47
g/\/\* #define UUNAME/s/...//
w
--- 60,62 -----
g/\/\* #define UUNAME/s/...//
+ /MYORG/s/Frobozz Inc., St. Louis/My Organization, Inc., Hometown, ST/
w
Index: postnews.c
Prereq: 1.40
diff -c1 onews/postnews.c news/postnews.c
*** onews/postnews.c Tue Sep 12 17:56:28 1989
--- news/postnews.c Sun Oct 29 20:44:18 1989
***************
*** 19,21
#ifdef SCCSID
! static char *SccsId = "@(#)postnews.c 1.40 9/1/89";
#endif /* SCCSID */
--- 19,21 -----
#ifdef SCCSID
! static char *SccsId = "@(#)postnews.c 1.41 10/29/89";
#endif /* SCCSID */
***************
*** 777,779
register char *p;
! int i;
char *getenv();
--- 777,779 -----
register char *p;
! int i = 0;
char *getenv();
Index: readr.c
Prereq: 2.70
diff -c1 onews/readr.c news/readr.c
*** onews/readr.c Sun Jan 22 22:18:21 1989
--- news/readr.c Sun Oct 29 20:44:19 1989
***************
*** 18,20
#ifdef SCCSID
! static char *SccsId = "@(#)readr.c 2.70 1/22/89";
#endif /* SCCSID */
--- 18,20 -----
#ifdef SCCSID
! static char *SccsId = "@(#)readr.c 2.71 10/29/89";
#endif /* SCCSID */
***************
*** 75,76
/* to match declaration in visual.c */
--- 75,79 -----
/* to match declaration in visual.c */
+ #ifdef SERVER
+ static int clrtmp = 0;
+ #endif
***************
*** 144,145
xxit(0); /* kludge! drop when qfflush works */
return;
--- 147,153 -----
xxit(0); /* kludge! drop when qfflush works */
+ #ifdef SERVER
+ if (clrtmp)
+ (void) unlink(filename);
+ clrtmp = 0;
+ #endif
return;
***************
*** 191,193
break;
! if (!SigTrap)
return;
--- 199,206 -----
break;
! if (!SigTrap) {
! #ifdef SERVER
! if (clrtmp)
! (void) unlink(filename);
! clrtmp = 0;
! #endif
return;
***************
*** 193,194
return;
#ifdef SIGCONT
--- 206,208 -----
return;
+ }
#ifdef SIGCONT
***************
*** 209,210
cout(ofp);
}
--- 223,229 -----
cout(ofp);
+ #ifdef SERVER
+ if (clrtmp)
+ (void) unlink(filename);
+ clrtmp = 0;
+ #endif
}
***************
*** 1045,1046
#ifdef SERVER
if (bit == 0 || (fp = getarticle(groupdir, bit, "ARTICLE")) == NULL)
--- 1064,1068 -----
#ifdef SERVER
+ if (clrtmp)
+ unlink(filename);
+ clrtmp = 0;
if (bit == 0 || (fp = getarticle(groupdir, bit, "ARTICLE")) == NULL)
***************
*** 1047,1048
goto badart;
strcpy(filename, article_name());
--- 1069,1071 -----
goto badart;
+ clrtmp = 1;
strcpy(filename, article_name());
***************
*** 1178,1182
obit = bit;
- #ifdef SERVER
- (void) unlink(filename);
- #endif /* SERVER */
return 0;
--- 1201,1202 -----
obit = bit;
return 0;
Index: sendbatch.sh
Prereq: 1.21
diff -c1 onews/sendbatch.sh news/sendbatch.sh
*** onews/sendbatch.sh Tue Sep 12 17:56:35 1989
--- news/sendbatch.sh Sun Oct 29 20:44:19 1989
***************
*** 1,2
! : '@(#)sendbatch.sh 1.21 9/1/89'
--- 1,2 -----
! : '@(#)sendbatch.sh 1.22 10/29/89'
***************
*** 26,27
continue;;
-r*) RNEWS=`expr "$rmt" : '-r\(.*\)'`
--- 26,31 -----
continue;;
+ -p*) MAXPERRUN=`expr "$rmt" : '-p\(.*\)'`
+ continue;;
+ +p*) MAXPERRUN=''
+ continue;;
-r*) RNEWS=`expr "$rmt" : '-r\(.*\)'`
***************
*** 64,65
esac
--- 68,73 -----
esac
+ if test ! -n "$MAXPERRUN"
+ then
+ MAXPERRUN=$MAXBATCH
+ fi
***************
*** 108,110
sentbytes=0
! while test $? -eq 0 -a $sentbytes -le "$MAXBATCH" -a \
\( \( $sentbytes -eq 0 -a -s $BATCH/$rmt \) -o \
--- 116,123 -----
sentbytes=0
! bytes_this_batch=`expr $MAXBATCH - $du`
! if test $bytes_this_batch -gt $MAXPERRUN
! then
! bytes_this_batch=$MAXPERRUN
! fi
! while test $? -eq 0 -a $sentbytes -le $bytes_this_batch -a \
\( \( $sentbytes -eq 0 -a -s $BATCH/$rmt \) -o \
Index: patchlevel.h
Prereq: 18
diff -c1 onews/patchlevel.h news/patchlevel.h
*** onews/patchlevel.h Tue Sep 12 17:56:27 1989
--- news/patchlevel.h Thu Oct 12 23:28:00 1989
***************
*** 1,2
! #define PATCHLEVEL 18
--- 1,2 -----
! #define PATCHLEVEL 19
***************
*** 2,3
! #define NEWS_VERSION "B 2.11 9/12/89"
--- 2,3 -----
! #define NEWS_VERSION "B 2.11.19 10/30/89"
--
Arnold Robbins -- The Basement Computer | Laundry increases
Internet: arnold at skeeve.ATL.GA.US | exponentially in the
UUCP: { gatech, gladys, emory }!skeeve!arnold | number of children.
Bitnet: Forget it. Get on a real network. | -- Miriam Hartholz
More information about the Unix-pc.sources
mailing list