home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
unix
/
volume19
/
cnews2
/
pch07jul89
< prev
next >
Wrap
Internet Message Format
|
1989-09-17
|
45KB
From attcan!utzoo!henry@uunet.uu.net Wed Aug 9 10:38:47 1989
Received: from BBN.COM by pineapple.bbn.com
id <AA13984@pineapple.bbn.com>; Wed, 9 Aug 89 10:38:28 -0400
Received: from uunet.uu.net by BBN.COM id aa27375; 9 Aug 89 10:38 EDT
Received: from attcan.UUCP by uunet.uu.net (5.61/1.14) with UUCP
id AA02384; Wed, 9 Aug 89 10:37:17 -0400
Date: Wed, 9 Aug 89 10:37:17 -0400
From: attcan!utzoo!henry@uunet.uu.net
Message-Id: <8908091437.AA02384@uunet.uu.net>
To: source-patches@uunet.UU.NET
Subject: C News patch of 7-Jul-1989
Content-Type: text
Content-Length: 44679
Status: R
Here is another C News patch. This one is mostly small stuff; in particular,
we haven't had time to work dbz in as we intend, so that's postponed to the
next one. This patch:
- fixes some small bugs in the software
- revises batcher logging and error reporting
- provides for use of non-standard system libraries
- works around the SVID violation in many System V makes (which
shows up if your machine has no /bin/test)
- augments the stdio-compatibility checker so it catches the
compatibility problem on A/UX (but not, yet, SunOS 4.0)
- adds documentation on the log formats
- makes assorted minor fixes to documentation
start of patch 7-Jul-1989
this should be run with patch -p0 <thisfile
The following are obsolete and should be deleted (there is no
easy way we can convince patch to do this automatically):
notebook/tmac.pic
Like to use Prereq, but it is broken in some versions of patch.
*** tmp.dates.with.really.long.filename.for.patch Fri Jul 7 15:27:01 1989
--- PATCHDATES Fri Jul 7 15:27:01 1989
***************
*** 1 ****
--- 1,2 ----
23-Jun-1989
+ 7-Jul-1989
Changed files, if any:
*** cnpatch/tmp.file Fri Jul 7 15:27:05 1989
--- batch/Makefile Tue Jul 4 17:35:04 1989
***************
*** 26,38 ****
chmod +x $(PGMS)
batcher: batcher.o $(LIBS)
! $(CC) $(CFLAGS) $(LDFLAGS) batcher.o $(LIBS) -o $@
c7encode: c7encode.o $(LIBS)
! $(CC) $(CFLAGS) $(LDFLAGS) c7encode.o $(LIBS) -o $@
bencode: bencode.o crctab.o $(LIBS)
! $(CC) $(CFLAGS) bencode.o crctab.o $(LIBS) -o $@
bencode.o: coder.h
--- 26,38 ----
chmod +x $(PGMS)
batcher: batcher.o $(LIBS)
! $(CC) $(CFLAGS) $(LDFLAGS) batcher.o $(PRE) $(LIBS) $(POST) -o $@
c7encode: c7encode.o $(LIBS)
! $(CC) $(CFLAGS) $(LDFLAGS) c7encode.o $(PRE) $(LIBS) $(POST) -o $@
bencode: bencode.o crctab.o $(LIBS)
! $(CC) $(CFLAGS) bencode.o crctab.o $(PRE) $(LIBS) $(POST) -o $@
bencode.o: coder.h
***************
*** 135,144 ****
echo bletch >test.good
cmp test.out test.good
>batchlog
- >batchlog.o
NEWSARTS=`pwd` NEWSCTL=`pwd` ./sendbatches
! test ! -s out.going/foo/output
! test ! -s out.going/bar/output
echo `pwd`/test.1 200 >out.going/foo/togo
echo `pwd`/test.2 200 >>out.going/foo/togo
echo `pwd`/test.3 200 >>out.going/foo/togo
--- 135,143 ----
echo bletch >test.good
cmp test.out test.good
>batchlog
NEWSARTS=`pwd` NEWSCTL=`pwd` ./sendbatches
! test ! -s out.going/foo/output ;
! test ! -s out.going/bar/output ;
echo `pwd`/test.1 200 >out.going/foo/togo
echo `pwd`/test.2 200 >>out.going/foo/togo
echo `pwd`/test.3 200 >>out.going/foo/togo
***************
*** 149,160 ****
NEWSARTS=`pwd` NEWSCTL=`pwd` ./sendbatches
cmp out.going/foo/output test.out1
cmp out.going/bar/output test.out2
! test ! -s out.going/foo/togo
! test ! -s out.going/bar/togo
cmp test.left out.going/bar/togo.2
! sed 1d batchlog.o >test.log
! test ! -s test.log
! sed 1d batchlog >test.log
echo 'bar backlog 1 (batches flowing)' >test.good
cmp test.good test.log
rm -rf test.* togo out.going bin batchparms batchlog batchlog.*
--- 148,159 ----
NEWSARTS=`pwd` NEWSCTL=`pwd` ./sendbatches
cmp out.going/foo/output test.out1
cmp out.going/bar/output test.out2
! test ! -s out.going/foo/togo ;
! test ! -s out.going/bar/togo ;
cmp test.left out.going/bar/togo.2
! sed '/^$$/q' batchlog | sed '1d;$$d' >test.log
! test ! -s test.log ;
! sed '1,/^$$/d' batchlog | sed '1d;$$d' >test.log
echo 'bar backlog 1 (batches flowing)' >test.good
cmp test.good test.log
rm -rf test.* togo out.going bin batchparms batchlog batchlog.*
*** cnpatch/tmp.file Fri Jul 7 15:27:07 1989
--- batch/batchsplit Wed Jul 5 00:03:29 1989
***************
*** 55,61 ****
if (NF == 1)
size = 3000 # Arbitrary guess.
else
! size = $2
if (total + size > limit && ninbatch > 0) {
# Go to next batch.
bno++
--- 55,61 ----
if (NF == 1)
size = 3000 # Arbitrary guess.
else
! size = $NF
if (total + size > limit && ninbatch > 0) {
# Go to next batch.
bno++
*** cnpatch/tmp.file Fri Jul 7 15:27:12 1989
--- batch/sendbatches Thu Jun 29 14:36:38 1989
***************
*** 10,16 ****
origpath="$PATH"
parms=$NEWSCTL/batchparms
! log=$NEWSCTL/batchlog # also same with suffixes .o and .oo
# lock against multiple simultaneous execution
lock="$NEWSCTL/LOCKbatch"
--- 10,16 ----
origpath="$PATH"
parms=$NEWSCTL/batchparms
! log=$NEWSCTL/batchlog
# lock against multiple simultaneous execution
lock="$NEWSCTL/LOCKbatch"
***************
*** 61,69 ****
esac
# Start up logging.
! mv $log.o $log.oo
! mv $log $log.o
! date >$log
# Run through them.
for sys in $syses
--- 61,67 ----
esac
# Start up logging.
! date >>$log
# Run through them.
for sys in $syses
***************
*** 72,78 ****
here=$NEWSARTS/out.going/$sys
if test ! -d $here
then
! echo "$0: cannot find batch directory for \`$sys'" >>$log
continue
fi
cd $here
--- 70,77 ----
here=$NEWSARTS/out.going/$sys
if test ! -d $here
then
! echo "$0: cannot find batch directory for \`$sys'" |
! mail $NEWSMASTER
continue
fi
cd $here
***************
*** 95,101 ****
set $ctlline
if test " $#" -ne 6
then
! echo "$0: bad or missing batchparms line for \`$sys'" >>$log
continue
fi
batchsize=$2
--- 94,101 ----
set $ctlline
if test " $#" -ne 6
then
! echo "$0: bad or missing batchparms line for \`$sys'" |
! mail $NEWSMASTER
continue
fi
batchsize=$2
***************
*** 143,153 ****
them=`ls | egrep '^togo\.[0-9]' | sed "${nbatch}q"`
for f in $them
do
! if $batcher -d $NEWSARTS $f | $muncher | $sender $sys
then
! rm $f
else
! echo "$0: batching for \`$sys' failed" >>$log
exit 1
fi
done
--- 143,159 ----
them=`ls | egrep '^togo\.[0-9]' | sed "${nbatch}q"`
for f in $them
do
! ( $batcher -d $NEWSARTS $f | $muncher |
! $sender $sys ) >/tmp/nb$$ 2>&1
! if test $? -eq 0 -a ! -s /tmp/nb$$
then
! rm $f /tmp/nb$$
else
! (
! echo "$0: batching $f for \`$sys' failed"
! cat /tmp/nb$$
! echo "$0: aborting"
! ) | mail $NEWSMASTER
exit 1
fi
done
***************
*** 169,171 ****
--- 175,179 ----
echo "$sys backlog $nart ($status)" >>$log
fi
done
+
+ echo >>$log
*** cnpatch/tmp.file Fri Jul 7 15:27:13 1989
--- batch/viainews Tue Jul 4 19:18:17 1989
***************
*** 1,4 ****
#! /bin/sh
# Feed batch to inews, for ihave/sendme mostly.
! exec inews -h -W
--- 1,4 ----
#! /bin/sh
# Feed batch to inews, for ihave/sendme mostly.
! exec inews -h -W -A
*** cnpatch/tmp.file Fri Jul 7 15:27:15 1989
--- conf/Makefile Tue Jul 4 17:34:12 1989
***************
*** 32,38 ****
chmod +x subst
: too late for h and hfake, include has already been built
-egrep '^(h|hfake)/' subst.hs subst.gc >junk
! test ! -s junk
rm -f junk
./subst -f substitutions `sed 's;^;../;' subst.hs subst.gc`
--- 32,38 ----
chmod +x subst
: too late for h and hfake, include has already been built
-egrep '^(h|hfake)/' subst.hs subst.gc >junk
! test ! -s junk ;
rm -f junk
./subst -f substitutions `sed 's;^;../;' subst.hs subst.gc`
***************
*** 65,71 ****
echo 'echo 0' >>$@
setnewsids: setnewsids.o $(LIBS)
! $(CC) $(CFLAGS) setnewsids.o $(LIBS) -o $@
../ranlibed: ../libcnews.a
ranlib ../libcnews.a
--- 65,71 ----
echo 'echo 0' >>$@
setnewsids: setnewsids.o $(LIBS)
! $(CC) $(CFLAGS) setnewsids.o $(PRE) $(LIBS) $(POST) -o $@
../ranlibed: ../libcnews.a
ranlib ../libcnews.a
*** cnpatch/tmp.file Fri Jul 7 15:27:17 1989
--- conf/build Tue Jul 4 17:50:04 1989
***************
*** 381,387 ****
./query 'Do you want to use our fast stdio library [yes]? '
read libstdio
case "$libstdio" in
! y*|Y*|'') libstdio=libstdio ;;
*) libstdio= ;;
esac
--- 381,391 ----
./query 'Do you want to use our fast stdio library [yes]? '
read libstdio
case "$libstdio" in
! y*|Y*|'') libstdio=libstdio
! echo 'Beware that the compatibility check will work best if'
! echo 'the output of doit.bin is NOT redirected into a file'
! echo 'or a pipe.'
! ;;
*) libstdio= ;;
esac
***************
*** 513,518 ****
--- 517,534 ----
esac
echo
+ echo 'On unusual systems it may be necessary to link C News programs with'
+ echo 'libraries other than the usual C library. These can be specified as'
+ echo 'either full pathnames or -l... options. What libraries, in addition'
+ echo 'to the one(s) picked up automatically by the compiler, should be used'
+ ./query 'when linking C News [none]? '
+ read postlibs
+ case "$postlibs" in
+ '') ;;
+ *) postlibs="POST='$postlibs'" ;;
+ esac
+
+ echo
./query 'Does your system have a "hostname" command [yes]? '
read hostname
case "$hostname" in
***************
*** 846,852 ****
echo "for dir in lib$unixkind lib$addrsize libc libcnews $libstdio"
echo "do"
echo " cd ../\$dir"
! echo " make u $cc $copts || exit 1"
echo "done"
echo "cd ../libfake"
echo "ed - Makefile <<'!'"
--- 862,868 ----
echo "for dir in lib$unixkind lib$addrsize libc libcnews $libstdio"
echo "do"
echo " cd ../\$dir"
! echo " make u $cc $copts $postlibs || exit 1"
echo "done"
echo "cd ../libfake"
echo "ed - Makefile <<'!'"
***************
*** 853,859 ****
echo "/NEEDED =/s/.*/NEEDED = $fake/"
echo "w"
echo "!"
! echo "make u $cc $copts || exit 1"
echo "cd ../conf"
if test " $ranlib" = " y"
then
--- 869,875 ----
echo "/NEEDED =/s/.*/NEEDED = $fake/"
echo "w"
echo "!"
! echo "make u $cc $copts $postlibs || exit 1"
echo "cd ../conf"
if test " $ranlib" = " y"
then
***************
*** 864,870 ****
then
echo ': testing libstdio'
echo 'cd ../libstdio'
! echo "make trials $cc $copts || exit 1"
echo ': done'
fi
echo ': building programs'
--- 880,889 ----
then
echo ': testing libstdio'
echo 'cd ../libstdio'
! echo ': produces some meaningless-looking output on terminal,'
! echo ': but do not redirect it -- it is important that stdio'
! echo ': think output is going to a terminal.'
! echo "make trials $cc $copts $postlibs || exit 1"
echo ': done'
fi
echo ': building programs'
***************
*** 871,882 ****
echo 'cd ../conf'
if test " $sete" != " y"
then
! echo "make setnewsids NEWSUSER=$newsuid NEWSGROUP=$newsgid $cc $copts"
fi
echo "for dir in $pgmdirs"
echo "do"
echo " cd ../\$dir"
! echo " make all $dbm $cc $copts"
echo "done"
echo ": done"
echo ": building prototype control files"
--- 890,901 ----
echo 'cd ../conf'
if test " $sete" != " y"
then
! echo "make setnewsids NEWSUSER=$newsuid NEWSGROUP=$newsgid $cc $copts $postlibs"
fi
echo "for dir in $pgmdirs"
echo "do"
echo " cd ../\$dir"
! echo " make all $dbm $cc $copts $postlibs"
echo "done"
echo ": done"
echo ": building prototype control files"
*** cnpatch/tmp.file Fri Jul 7 15:27:37 1989
--- doc/interface Tue Jul 4 16:37:34 1989
***************
*** 1,4 ****
! .DA "9 June 1989"
.TL
The Interface Between C News And The Outside World
.AU
--- 1,4 ----
! .DA "4 July 1989"
.TL
The Interface Between C News And The Outside World
.AU
***************
*** 71,79 ****
You need a standard shell.
.PP
To the best of our ability, all our shell files begin with ``#!\ /bin/sh''.
! If your shell misinterprets this as a request to run the C shell, you're
! in trouble.
! If your shell doesn't know about ``#'' comments at all, you're in trouble.
We hope that no modern shell makes either of these mistakes.
.PP
We believe that none of our stuff relies on relatively modern shell features
--- 71,95 ----
You need a standard shell.
.PP
To the best of our ability, all our shell files begin with ``#!\ /bin/sh''.
! As far as we know, nothing actually relies on being able to \fIexec\fR a
! shell file; that is, if ``#!\ /bin/sh'' is just a comment to your shell,
! that should be okay.
! If your shell misinterprets it as a request to run the C shell, however,
! you're in trouble.
! Running the following might help:
! .DS
! for f in `find . \-type f \-print`
! do
! if test " `sed 1q $f`" = "#! /bin/sh"
! then
! ed $f <<'!'
! 1s/#!/: use/
! w
! !
! fi
! done
! .DE
! If your shell doesn't know about ``#'' comments at all, again you're in trouble.
We hope that no modern shell makes either of these mistakes.
.PP
We believe that none of our stuff relies on relatively modern shell features
*** cnpatch/tmp.file Fri Jul 7 15:27:38 1989
--- expire/Makefile Tue Jul 4 17:36:01 1989
***************
*** 34,52 ****
-for f in $(THEM) ; do cmp $$f $(NEWSBIN)/expire/$$f ; done
expire: expire.o $(LIBS)
! $(CC) $(LDFLAGS) expire.o $(LIBS) $(DBM) -o $@
histinfo: histinfo.o $(LIBS)
! $(CC) $(LDFLAGS) histinfo.o $(LIBS) -o $@
lowest: lowest.o $(LIBS)
! $(CC) $(LDFLAGS) lowest.o $(LIBS) -o $@
histslash: histslash.o $(LIBS)
! $(CC) $(LDFLAGS) histslash.o $(LIBS) -o $@
mkdbm: mkdbm.o $(LIBS)
! $(CC) $(LDFLAGS) mkdbm.o $(LIBS) $(DBM) -o $@
lint: expire.c
lint -ha $(LINTFLAGS) expire.c 2>&1 | egrep -v $(JUNKLINT) | tee $@
--- 34,52 ----
-for f in $(THEM) ; do cmp $$f $(NEWSBIN)/expire/$$f ; done
expire: expire.o $(LIBS)
! $(CC) $(LDFLAGS) expire.o $(PRE) $(LIBS) $(DBM) $(POST) -o $@
histinfo: histinfo.o $(LIBS)
! $(CC) $(LDFLAGS) histinfo.o $(PRE) $(LIBS) $(POST) -o $@
lowest: lowest.o $(LIBS)
! $(CC) $(LDFLAGS) lowest.o $(PRE) $(LIBS) $(POST) -o $@
histslash: histslash.o $(LIBS)
! $(CC) $(LDFLAGS) histslash.o $(PRE) $(LIBS) $(POST) -o $@
mkdbm: mkdbm.o $(LIBS)
! $(CC) $(LDFLAGS) mkdbm.o $(PRE) $(LIBS) $(DBM) $(POST) -o $@
lint: expire.c
lint -ha $(LINTFLAGS) expire.c 2>&1 | egrep -v $(JUNKLINT) | tee $@
***************
*** 194,202 ****
sed $(FIXPATHS) test.out | cmp - tgood
: "okay, it seems to know what it's doing -- now, can it do it?"
$(RUN) -p explist >test.out 2>test.stderr
! test ! -s test.stderr
cmp test.out pgood
! test ! -f history.n
cmp history.proto history.o
egrep wont history.proto | ./dircheck arts
egrep 'will|two|gone|three' history.proto | ./dircheck -n arts
--- 194,202 ----
sed $(FIXPATHS) test.out | cmp - tgood
: "okay, it seems to know what it's doing -- now, can it do it?"
$(RUN) -p explist >test.out 2>test.stderr
! test ! -s test.stderr ;
cmp test.out pgood
! test ! -f history.n ;
cmp history.proto history.o
egrep wont history.proto | ./dircheck arts
egrep 'will|two|gone|three' history.proto | ./dircheck -n arts
***************
*** 206,215 ****
egrep 'will|wont|gone|three' history.proto | ./dircheck -n arch2
egrep three history.proto | ./dircheck arch3
egrep 'will|wont|gone|two' history.proto | ./dircheck -n arch3
! test -f arts/foo/99
! test -f arts/bar/ugh/99
! test -f arch2/bar/99
! test ! -f arts/urp/99
cmp history history.after
: "that's it for expire, on to upact"
$(D) ./upact
--- 206,215 ----
egrep 'will|wont|gone|three' history.proto | ./dircheck -n arch2
egrep three history.proto | ./dircheck arch3
egrep 'will|wont|gone|two' history.proto | ./dircheck -n arch3
! test -f arts/foo/99 ;
! test -f arts/bar/ugh/99 ;
! test -f arch2/bar/99 ;
! test ! -f arts/urp/99 ;
cmp history history.after
: "that's it for expire, on to upact"
$(D) ./upact
***************
*** 219,232 ****
rm -f history.pag history.dir
$(D) ./mkhistory
sort history | sed $(FIXMIDFIELD) | cmp - history.after
! test -r history.pag
! test -r history.dir
: "and that's mkhistory done, finally try superkludge"
! test -r arts/foo/1
! test -r arts/foo/10
$(D) ./superkludge foo
! test ! -r arts/foo/1
! test -r arts/foo/10
: "success!"
tidy:
--- 219,232 ----
rm -f history.pag history.dir
$(D) ./mkhistory
sort history | sed $(FIXMIDFIELD) | cmp - history.after
! test -r history.pag ;
! test -r history.dir ;
: "and that's mkhistory done, finally try superkludge"
! test -r arts/foo/1 ;
! test -r arts/foo/10 ;
$(D) ./superkludge foo
! test ! -r arts/foo/1 ;
! test -r arts/foo/10 ;
: "success!"
tidy:
*** cnpatch/tmp.file Fri Jul 7 15:27:43 1989
--- expire/mkhistory Tue Jun 27 16:47:59 1989
***************
*** 29,34 ****
--- 29,35 ----
if egrep '^<swill@trash> ' history.n >/dev/null
then
echo "$0: <swill@trash> found in history.n -- aborting" >&2
+ echo "$0: (some article lacks a Message-ID)" >&2
exit 1
fi
mkdbm <history.n
*** cnpatch/tmp.file Fri Jul 7 15:27:49 1989
--- input/Makefile Tue Jul 4 17:36:58 1989
***************
*** 39,51 ****
: nothing
newsspool: newsspool.o $(LIBS)
! $(CC) $(LDFLAGS) newsspool.o $(LIBS) -o $@
c7decode: c7decode.o $(LIBS)
! $(CC) $(LDFLAGS) c7decode.o $(LIBS) -o $@
bdecode: bdecode.o $(BATCH)/crctab.o $(LIBS)
! $(CC) $(LDFLAGS) bdecode.o $(BATCH)/crctab.o $(LIBS) -o $@
$(BATCH)/crctab.o: $(BATCH)/crctab.c
( cd $(BATCH) ; make crctab.o )
--- 39,51 ----
: nothing
newsspool: newsspool.o $(LIBS)
! $(CC) $(LDFLAGS) newsspool.o $(PRE) $(LIBS) $(POST) -o $@
c7decode: c7decode.o $(LIBS)
! $(CC) $(LDFLAGS) c7decode.o $(PRE) $(LIBS) $(POST) -o $@
bdecode: bdecode.o $(BATCH)/crctab.o $(LIBS)
! $(CC) $(LDFLAGS) bdecode.o $(BATCH)/crctab.o $(PRE) $(LIBS) $(POST) -o $@
$(BATCH)/crctab.o: $(BATCH)/crctab.c
( cd $(BATCH) ; make crctab.o )
***************
*** 118,136 ****
NEWSARTS=`pwd` NEWSCTL=`pwd` ./rnews.batch <test.3
cmp `ls -t in.coming | sed -n '1s;^;in.coming/;p'` test.3c
NEWSARTS=`pwd` NEWSCTL=`pwd` ./newsrunning off
! test -r in.coming/stop
NEWSARTS=`pwd` NEWSCTL=`pwd` ./newsrunning on
! test ! -r in.coming/stop
mkdir in.coming/bad
NEWSARTS=`pwd` NEWSCTL=`pwd` ./newsrun
cmp tmp.1 test.out
! test " `echo in.coming/*`" = ' in.coming/bad'
rm tmp.1
NEWSARTS=`pwd` NEWSCTL=`pwd` ./rnews.batch <test.1
NEWSARTS=`pwd` NEWSCTL=`pwd` ./rnews.batch <test.2
NEWSARTS=`pwd` NEWSCTL=`pwd` NEWSBIN=`pwd`/bin ./rnews.immed <test.3
cmp tmp.1 test.out
! test " `echo in.coming/*`" = ' in.coming/bad'
rm tmp.1
rm -r bin in.coming
--- 118,136 ----
NEWSARTS=`pwd` NEWSCTL=`pwd` ./rnews.batch <test.3
cmp `ls -t in.coming | sed -n '1s;^;in.coming/;p'` test.3c
NEWSARTS=`pwd` NEWSCTL=`pwd` ./newsrunning off
! test -r in.coming/stop ;
NEWSARTS=`pwd` NEWSCTL=`pwd` ./newsrunning on
! test ! -r in.coming/stop ;
mkdir in.coming/bad
NEWSARTS=`pwd` NEWSCTL=`pwd` ./newsrun
cmp tmp.1 test.out
! test " `echo in.coming/*`" = ' in.coming/bad' ;
rm tmp.1
NEWSARTS=`pwd` NEWSCTL=`pwd` ./rnews.batch <test.1
NEWSARTS=`pwd` NEWSCTL=`pwd` ./rnews.batch <test.2
NEWSARTS=`pwd` NEWSCTL=`pwd` NEWSBIN=`pwd`/bin ./rnews.immed <test.3
cmp tmp.1 test.out
! test " `echo in.coming/*`" = ' in.coming/bad' ;
rm tmp.1
rm -r bin in.coming
*** cnpatch/tmp.file Fri Jul 7 15:28:26 1989
--- libstdio/Makefile Tue Jul 4 17:38:07 1989
***************
*** 16,34 ****
trials: all
chmod +x runtrials
./runtrials >junk
! test ! -s junk
! rm stdiock.stock stdiock.fast junk trial.out
lint:
! lint $(LINTFLAGS) -u $(SRC)
lintport:
! lint -p $(LINTFLAGS) -u $(SRC)
stdiock.stock: stdiock.o $(LIBS)
! $(CC) $(CFLAGS) stdiock.o $(LIBS) -o $@
stdiock.fast: stdiock.o $(OBJ) $(LIBS)
! $(CC) $(CFLAGS) stdiock.o $(OBJ) $(LIBS) -o $@
clean:
! rm -f *.o stdiock stdiock.fast stdiock.stock *mon.out trial.out
--- 16,40 ----
trials: all
chmod +x runtrials
+ : run first with stdout directed to a plain file
./runtrials >junk
! : and again with stdout directed to a tty, we hope.
! : do not panic. you can ignore the output of runtrials.
! : only its exit status really matters.
! ./runtrials
! rm stdiock.stock stdiock.fast junk
lint:
! lint $(LINTFLAGS) $(SRC) stdiock.c
lintport:
! lint -p $(LINTFLAGS) $(SRC) stdiock.c
stdiock.stock: stdiock.o $(LIBS)
! : search -lc before libcnews.a to get stock stdio
! $(CC) $(CFLAGS) stdiock.o $(PRE) -lc $(LIBS) $(POST) -o $@
stdiock.fast: stdiock.o $(OBJ) $(LIBS)
! : load *.o by hand to get tuned stdio
! $(CC) $(CFLAGS) stdiock.o $(OBJ) $(PRE) $(LIBS) $(POST) -o $@
clean:
! rm -f *.o stdiock stdiock.fast stdiock.stock junk *mon.out
*** cnpatch/tmp.file Fri Jul 7 15:28:27 1989
--- libstdio/README Tue Jun 27 13:41:06 1989
***************
*** 1,4 ****
! This directory does not form a library; fgets.o, fputs.o and rdwr.o
! constitute re-written stdio guts, thought to be compatible with the
! usual UNIX stdio implementation but a good deal faster than old
! versions.
--- 1,3 ----
! fgets.o, fputs.o and rdwr.o are re-implemented stdio guts, thought to be
! compatible with the usual UNIX stdio implementation but a good deal
! faster than old versions.
*** cnpatch/tmp.file Fri Jul 7 15:28:29 1989
--- libstdio/runtrials Tue Jun 27 13:41:07 1989
***************
*** 6,16 ****
for buf in "" -u
do
echo stdiock.$whose $fp $buf:
! ./stdiock.$whose $fp $buf <<!
a line
!
echo ''
done
done
! done | tee trial.out | egrep 'incompat|bugger'
! exit 0 # exit status of pipe is unportable anyway
--- 6,21 ----
for buf in "" -u
do
echo stdiock.$whose $fp $buf:
! if ./stdiock.$whose $fp $buf <<!
a line
!
+ then
+ : passed
+ else
+ exit 1 # something amiss
+ fi
echo ''
done
done
! done
! exit 0
*** cnpatch/tmp.file Fri Jul 7 15:28:30 1989
--- libstdio/stdiock.c Tue Jun 27 13:41:08 1989
***************
*** 7,12 ****
--- 7,13 ----
#include <stdio.h>
FILE *fp = stdout;
+ int status = 0;
main(argc, argv)
char **argv;
***************
*** 40,47 ****
(void) fgets(line, sizeof line, fp);
evalfile("fgets");
} else {
! if (fwrite("your", 1, 4, fp) != 4)
(void) write(1, buggered, strlen(buggered));
evalfile("fwrite");
(void) fputs(" stdio seems to be ", stdout);
--- 41,50 ----
(void) fgets(line, sizeof line, fp);
evalfile("fgets");
} else {
! if (fwrite("your", 1, 4, fp) != 4) {
! status = 1;
(void) write(1, buggered, strlen(buggered));
+ }
evalfile("fwrite");
(void) fputs(" stdio seems to be ", stdout);
***************
*** 48,61 ****
evalfile("fputs");
}
! if (wantbuf && fp->_ptr == NULL)
(void) fputs("incompatible (_ptr) ", stdout);
! else
(void) fputs("compatible (_ptr) ", stdout);
if (fp->_cnt >= 0 && fp->_cnt <= BUFSIZ)
(void) fputs("compatible (_cnt)", stdout);
! else
(void) fputs("incompatible (_cnt)", stdout);
evalfile("test");
(void) fputs(" with stdio.fast\n", stdout);
--- 51,67 ----
evalfile("fputs");
}
! if (wantbuf && fp->_ptr == NULL) {
! status = 1;
(void) fputs("incompatible (_ptr) ", stdout);
! } else
(void) fputs("compatible (_ptr) ", stdout);
if (fp->_cnt >= 0 && fp->_cnt <= BUFSIZ)
(void) fputs("compatible (_cnt)", stdout);
! else {
! status = 1;
(void) fputs("incompatible (_cnt)", stdout);
+ }
evalfile("test");
(void) fputs(" with stdio.fast\n", stdout);
***************
*** 65,71 ****
(void) fflush(stdout);
evalfile("fflush");
! exit(0);
}
/* write on stdout with using stdio. ugh */
--- 71,80 ----
(void) fflush(stdout);
evalfile("fflush");
! exit(status);
!
! /* next line is not executed, but drags in the appropriate fread */
! (void) fread(buf, 1, sizeof buf, stdin);
}
/* write on stdout with using stdio. ugh */
***************
*** 81,88 ****
if (fp->_ptr != NULL && fp->_cnt != 0) {
if (bufend == NULL)
bufend = (char *)fp->_ptr + fp->_cnt;
! if (bufend != (char *)fp->_ptr + fp->_cnt)
(void) write(1, buggered, strlen(buggered));
}
(void) write(1, s, strlen(s));
--- 90,99 ----
if (fp->_ptr != NULL && fp->_cnt != 0) {
if (bufend == NULL)
bufend = (char *)fp->_ptr + fp->_cnt;
! if (bufend != (char *)fp->_ptr + fp->_cnt) {
! status = 1;
(void) write(1, buggered, strlen(buggered));
+ }
}
(void) write(1, s, strlen(s));
*** cnpatch/tmp.file Fri Jul 7 15:28:37 1989
--- man/inews.1 Thu Jul 6 17:46:09 1989
***************
*** 6,14 ****
.ds c /usr/lib/news
.\" =()<.ds m @<NEWSMASTER>@>()=
.ds m usenet
! .TH INEWS 1 "7 June 1989" "C News"
.SH NAME
! inews \- `user-friendly' news-posting front-end for rnews
.SH SYNOPSIS
.B inews
.B \-p
--- 6,14 ----
.ds c /usr/lib/news
.\" =()<.ds m @<NEWSMASTER>@>()=
.ds m usenet
! .TH INEWS 1 "6 July 1989" "C News"
.SH NAME
! inews \- `user-friendly' news-posting front-end for relaynews
.SH SYNOPSIS
.B inews
.B \-p
***************
*** 85,129 ****
]
.SH DESCRIPTION
.I Inews
! installs locally
! and
! broadcasts a (network) news article
! (\fIi\fPnjects it into the
.I news
! flow),
! read from
.IR file s
! or standard input if none,
! normally
! by giving it as standard input to
! .IR rnews (1),
! after adding and altering headers,
notably
.BR Message-ID: ,
.BR From:
and
.BR Path: ,
! deleting invisible characters,
and
! appending the first four lines of
.BR $HOME/.signature ,
! if any.
! The article will instead be mailed
to the moderators of the moderated newsgroups in the
.B Newsgroups:
! header,
! if any are found.
.PP
.B "inews -p"
is exactly equivalent to
! .BR rnews .
! Normal usage is simply
.BR "inews -h" ,
which assumes the presence of at least
.B Subject:
and
.B Newsgroups:
! headers.
.B \-h
tells
.I inews
--- 85,132 ----
]
.SH DESCRIPTION
.I Inews
! \fIi\fPnjects an article into the
.I news
! flow,
! installing it locally
! and
! broadcasting it (if appropriate) onto the network.
! The article is read from
.IR file s
! or standard input if none.
! .I Inews
! adds and alters headers,
notably
.BR Message-ID: ,
.BR From:
and
.BR Path: ,
! deletes invisible characters,
and
! appends the first four lines of
.BR $HOME/.signature ,
! if any,
! to the article, and then hands it to
! .IR relaynews (8),
! provided the newsgroup(s) are unmoderated.
! If the groups are moderated,
! the article will instead be mailed
to the moderators of the moderated newsgroups in the
.B Newsgroups:
! header.
.PP
.B "inews -p"
is exactly equivalent to
! invoking
! .BR rnews (8);
! this is seldom useful in C News.
! Normal usage is
.BR "inews -h" ,
which assumes the presence of at least
.B Subject:
and
.B Newsgroups:
! headers in the article.
.B \-h
tells
.I inews
***************
*** 156,162 ****
to complete,
instead of running it in the background and not waiting.
.PP
! The remaining options are inherited from B news
and exist only for backward-compatibility with news readers.
.I "They should not be used by humans,"
as they are equivalent to
--- 159,165 ----
to complete,
instead of running it in the background and not waiting.
.PP
! The rest of the options are inherited from B news
and exist only for backward-compatibility with news readers.
.I "They should not be used by humans,"
as they are equivalent to
***************
*** 230,234 ****
most novices use
.IR Pnews ,
which could invoke
! .I rnews
directly.
--- 233,237 ----
most novices use
.IR Pnews ,
which could invoke
! .I relaynews
directly.
*** cnpatch/tmp.file Fri Jul 7 15:28:40 1989
--- man/newsaux.8 Tue Jul 4 19:30:11 1989
***************
*** 6,12 ****
.ds c /usr/lib/news
.\" =()<.ds m @<NEWSMASTER>@>()=
.ds m usenet
! .TH NEWSAUX 8 "22 June 1989" "C News"
.SH NAME
spacefor \- check available space for news
.br
--- 6,12 ----
.ds c /usr/lib/news
.\" =()<.ds m @<NEWSMASTER>@>()=
.ds m usenet
! .TH NEWSAUX 8 "4 July 1989" "C News"
.SH NAME
spacefor \- check available space for news
.br
***************
*** 147,156 ****
performs minor maintenance chores
that typically should be done once a day for the news system:
saving copies of log files and truncating them,
! reporting logged errors, and checking for anomalies suggesting something
! is wrong.
\fINewsdaily\fR saves one generation of old \fIlog\fR files and three
! generations of old \fIerrlog\fR files.
It reports problems to the named \fIguru\fRs
(default: `\*m').
.PP
--- 147,156 ----
performs minor maintenance chores
that typically should be done once a day for the news system:
saving copies of log files and truncating them,
! reporting logged errors, checking for anomalies suggesting something
! is wrong, and cleaning out leftover files.
\fINewsdaily\fR saves one generation of old \fIlog\fR files and three
! generations of old \fIerrlog\fR and \fIbatchlog\fR files.
It reports problems to the named \fIguru\fRs
(default: `\*m').
.PP
***************
*** 193,198 ****
--- 193,200 ----
\*c/log.o previous news log
\*c/errlog current news-error log
\*c/errlog.o* old news-error logs
+ \*c/batchlog current news-batcher log
+ \*c/batchlog.o* old news-batcher logs
\*a/in.coming input-spooling area
\*a/out.going output-batching area
\*c/watchtime last time \fInewswatch\fR was run
***************
*** 218,226 ****
The need for \fIsizeof\fR and \fInewslock\fR is a botch.
.PP
\fILocknews\fR is a bit crude.
- .PP
- \fIAddgroup\fR does not create the directory(-ies) for the new group;
- C News creates them as necessary but some news-reader programs disapprove.
.PP
\fIDelgroup\fR does not remove files or directories from \*a, although it
prints a reminder to do so.
--- 220,225 ----
*** cnpatch/tmp.file Fri Jul 7 15:28:44 1989
--- man/newsbatch.8 Tue Jul 4 19:30:20 1989
***************
*** 6,12 ****
.ds c /usr/lib/news
.\" =()<.ds m @<NEWSMASTER>@>()=
.ds m usenet
! .TH NEWSBATCH 8 "28 May 1989" "C News"
.SH NAME
sendbatches, batchsplit \- news batching to other sites
.br
--- 6,12 ----
.ds c /usr/lib/news
.\" =()<.ds m @<NEWSMASTER>@>()=
.ds m usenet
! .TH NEWSBATCH 8 "4 July 1989" "C News"
.SH NAME
sendbatches, batchsplit \- news batching to other sites
.br
***************
*** 121,127 ****
\fIsendbatches\fR when invoked without arguments; see above.)
The second field is the size of batches to be prepared (before compression),
in bytes.
! The third field is the maximum number of batches to be queued up for
transmission to that site.
The fourth, fifth, and sixth fields are the names of the programs to
be used to build, compress, and transmit (respectively) batches to that site.
--- 121,127 ----
\fIsendbatches\fR when invoked without arguments; see above.)
The second field is the size of batches to be prepared (before compression),
in bytes.
! The third field is the maximum length of the output queue for
transmission to that site.
The fourth, fifth, and sixth fields are the names of the programs to
be used to build, compress, and transmit (respectively) batches to that site.
***************
*** 132,138 ****
finds the \fIbatchparms\fR line for that site
and
invokes \fIqueuelen\fR (see \fInewsaux\fR(8))
! to find out how many batches are in the outbound queue for it already.
\fISendbatches\fR limits the number of batches prepared to the minimum of
the limits implied by queue lengths and available space.
.PP
--- 132,138 ----
finds the \fIbatchparms\fR line for that site
and
invokes \fIqueuelen\fR (see \fInewsaux\fR(8))
! to find out the size of the outbound queue for the site.
\fISendbatches\fR limits the number of batches prepared to the minimum of
the limits implied by queue lengths and available space.
.PP
***************
*** 220,227 ****
This ought to suffice to get data through almost any network.
.PP
\fISendbatches\fR logs some information about sites with backlogs in
! \fI\*c/batchlog\fR, keeping the previous \fIbatchlog\fR in
! \fIbatchlog.o\fR and the one before that in \fIbatchlog.oo\fR.
This is intended to help detection and diagnosis of flow problems.
.SH FILES
.ta \w'\*a/out.going/*'u+2n
--- 220,226 ----
This ought to suffice to get data through almost any network.
.PP
\fISendbatches\fR logs some information about sites with backlogs in
! \fI\*c/batchlog\fR (see also \fInewsdaily\fR(8)).
This is intended to help detection and diagnosis of flow problems.
.SH FILES
.ta \w'\*a/out.going/*'u+2n
***************
*** 235,240 ****
--- 234,242 ----
also see text
.SH SEE ALSO
inews(1), compress(1), uux(1), relaynews(8), rnews(8)
+ .SH DIAGNOSTICS
+ Complaints, if any,
+ from \fIsendbatches\fR and its auxiliaries are mailed to `\*m'.
.SH HISTORY
Written at University of Toronto as part of the C News project.
A number of the ideas came from Chris Lewis, who was then with Motorola.
*** cnpatch/tmp.file Fri Jul 7 15:28:49 1989
--- man/relaynews.8 Tue Jul 4 19:43:15 1989
***************
*** 6,12 ****
.ds c /usr/lib/news
.\" =()<.ds m @<NEWSMASTER>@>()=
.ds m usenet
! .TH RELAYNEWS 8 "28 May 1989" "C News"
.SH NAME
relaynews \- store and forward netnews articles
.SH SYNOPSIS
--- 6,12 ----
.ds c /usr/lib/news
.\" =()<.ds m @<NEWSMASTER>@>()=
.ds m usenet
! .TH RELAYNEWS 8 "4 July 1989" "C News"
.SH NAME
relaynews \- store and forward netnews articles
.SH SYNOPSIS
***************
*** 31,37 ****
Typically the articles will be in a batch
(see
.IR news (5)),
! which may
.I not
be compressed
(see
--- 31,37 ----
Typically the articles will be in a batch
(see
.IR news (5)),
! which must
.I not
be compressed
(see
***************
*** 63,69 ****
enables ``NNTP mode''
in which history entries are generated as articles are rejected.
.B \-s
! makes discarding an article a serious matter.
.B \-x
excludes
.I excluded-site
--- 63,71 ----
enables ``NNTP mode''
in which history entries are generated as articles are rejected.
.B \-s
! makes discarding an article a serious matter,
! justifying a non-zero exit status (for the benefit of
! .IR inews ).
.B \-x
excludes
.I excluded-site
***************
*** 74,80 ****
.B Control:
headers
(or
! .B "for backward compatibility ONLY"
a
.B Newsgroups:
header containing a single newsgroup ending in
--- 76,82 ----
.B Control:
headers
(or
! .I "for backward compatibility ONLY"
a
.B Newsgroups:
header containing a single newsgroup ending in
***************
*** 106,113 ****
.B junk
pseudo-group,
and forwarded as usual.
! In particular,
! if all newsgroups in the article are refused by
the local subscription list
or
are refused by an
--- 108,114 ----
.B junk
pseudo-group,
and forwarded as usual.
! If all newsgroups in the article are refused by
the local subscription list
or
are refused by an
***************
*** 184,190 ****
and its subdirectories
.TP
.B \*b/ctl
! common directory of programs to implement control messages
.TP
.B \*b/relay/relaynews
the lean, mean news-relayin' machine
--- 185,191 ----
and its subdirectories
.TP
.B \*b/ctl
! directory of programs to implement control messages
.TP
.B \*b/relay/relaynews
the lean, mean news-relayin' machine
*** cnpatch/tmp.file Fri Jul 7 15:28:52 1989
--- misc/Makefile Tue Jul 4 17:39:13 1989
***************
*** 30,45 ****
: nothing
gngp: gngp.o $(LIBS)
! $(CC) $(CFLAGS) gngp.o $(LIBS) -o $@
ctime: ctime.o $(LIBS)
! $(CC) $(CFLAGS) ctime.o $(LIBS) -o $@
getdate: getdate.o $(LIBS)
! $(CC) $(CFLAGS) getdate.o $(LIBS) -o $@
newslock: newslock.o $(LIBS)
! $(CC) $(CFLAGS) newslock.o $(LIBS) -o $@
NHCFLAGS = -I$(RN) $(CFLAGS)
RNEWSOBJS = $(RN)/history.o $(RN)/article.o $(RN)/hdrcommon.o \
--- 30,45 ----
: nothing
gngp: gngp.o $(LIBS)
! $(CC) $(CFLAGS) gngp.o $(PRE) $(LIBS) $(POST) -o $@
ctime: ctime.o $(LIBS)
! $(CC) $(CFLAGS) ctime.o $(PRE) $(LIBS) $(POST) -o $@
getdate: getdate.o $(LIBS)
! $(CC) $(CFLAGS) getdate.o $(PRE) $(LIBS) $(POST) -o $@
newslock: newslock.o $(LIBS)
! $(CC) $(CFLAGS) newslock.o $(PRE) $(LIBS) $(POST) -o $@
NHCFLAGS = -I$(RN) $(CFLAGS)
RNEWSOBJS = $(RN)/history.o $(RN)/article.o $(RN)/hdrcommon.o \
***************
*** 46,52 ****
$(RN)/io.o $(RN)/msgs.o
NHLIBS = $(LIBS) $(DBM)
newshist: newshist.o $(RNEWSOBJS) $(LIBS)
! $(CC) $(NHCFLAGS) newshist.o $(RNEWSOBJS) $(NHLIBS) -o $@
newshist.o: newshist.c
$(CC) $(NHCFLAGS) -c newshist.c
--- 46,52 ----
$(RN)/io.o $(RN)/msgs.o
NHLIBS = $(LIBS) $(DBM)
newshist: newshist.o $(RNEWSOBJS) $(LIBS)
! $(CC) $(NHCFLAGS) newshist.o $(RNEWSOBJS) $(PRE) $(NHLIBS) $(POST) -o $@
newshist.o: newshist.c
$(CC) $(NHCFLAGS) -c newshist.c
*** cnpatch/tmp.file Fri Jul 7 15:29:00 1989
--- misc/newsdaily Thu Jun 29 14:22:36 1989
***************
*** 31,38 ****
rm log.o
mv log log.o && >log
# report any errors
! sleep 500 # hope that log.o is quiescent after this
if test -s errlog.o
then
(
--- 31,44 ----
rm log.o
mv log log.o && >log
+ # keep several generations of batchlog for statistics
+ rm -f batchlog.ooo
+ mv batchlog.oo batchlog.ooo
+ mv batchlog.o batchlog.oo
+ mv batchlog batchlog.o && >batchlog
+
# report any errors
! sleep 500 # hope that errlog.o is quiescent after this
if test -s errlog.o
then
(
*** cnpatch/tmp.file Fri Jul 7 15:29:11 1989
--- notebook/README Wed Jul 5 11:57:59 1989
***************
*** 9,15 ****
Ihave.pic.in is an illustration for ihave; ihave.pic is what you get after
you run ihave.pic.in through pic (in case you have a troff that knows about
! the graphics commands but don't have pic); tmac.pic is extra macros for
! use in troffing pic stuff.
Config and newslock need tbl. Nothing here uses eqn.
--- 9,14 ----
Ihave.pic.in is an illustration for ihave; ihave.pic is what you get after
you run ihave.pic.in through pic (in case you have a troff that knows about
! the graphics commands but don't have pic).
Config and newslock need tbl. Nothing here uses eqn.
*** cnpatch/tmp.file Fri Jul 7 15:29:34 1989
--- relay/ctl/newgroup Sun Jun 25 13:41:31 1989
***************
*** 46,52 ****
moderated) flag=m ;;
*) flag=y ;;
esac
! echo "$1 0000000000 00000 $flag" >>$NEWSCTL/active
(echo "$1 `getdate now` $SENDER" >>$NEWSCTL/active.times) # rn hook
# make the directory since rn will bitch if it's missing
mkpdir $NEWSARTS/`echo $1 | tr . / `
--- 46,52 ----
moderated) flag=m ;;
*) flag=y ;;
esac
! echo "$1 0000000000 0000000000 $flag" >>$NEWSCTL/active
(echo "$1 `getdate now` $SENDER" >>$NEWSCTL/active.times) # rn hook
# make the directory since rn will bitch if it's missing
mkpdir $NEWSARTS/`echo $1 | tr . / `
*** cnpatch/tmp.file Fri Jul 7 15:29:41 1989
--- relay/makefile Tue Jul 4 17:40:12 1989
***************
*** 38,44 ****
OBJ=relaynews.o active.o article.o caches.o mkdirs.o control.o fileart.o \
hdrdefs.o hdrcommon.o hdrparse.o hdrmunge.o \
history.o io.o msgs.o procart.o \
! sys.o transmit.o trbatch.o ihave.o $(LIBOBJS)
FILES=$(NONCFILES) $(CFILES)
NONCFILES= TODO* README ads/README ads/[0-9]* \
sh/inews sh/tear sh/anne.jones sh/defhdrs.awk \
--- 38,44 ----
OBJ=relaynews.o active.o article.o caches.o mkdirs.o control.o fileart.o \
hdrdefs.o hdrcommon.o hdrparse.o hdrmunge.o \
history.o io.o msgs.o procart.o \
! sys.o transmit.o trbatch.o ihave.o
FILES=$(NONCFILES) $(CFILES)
NONCFILES= TODO* README ads/README ads/[0-9]* \
sh/inews sh/tear sh/anne.jones sh/defhdrs.awk \
***************
*** 52,59 ****
mkfile: makefile
sed '/mkfile/d' makefile | mkconv | sed 's/make/mk/g' >$@
! relaynews: $(OBJ)
! $(CC) $(CFLAGS) $(OBJ) $(LIBS) $(LIBOBJS) -o $@
lint: $(SRC)
$(LINT) $(LINTFLAGS) $(SRC) $(LLIBS) | $(LINTFILT)
lint-p: $(SRC)
--- 52,59 ----
mkfile: makefile
sed '/mkfile/d' makefile | mkconv | sed 's/make/mk/g' >$@
! relaynews: $(OBJ) $(LIBOBJS)
! $(CC) $(CFLAGS) $(OBJ) $(PRE) $(LIBS) $(LIBOBJS) $(POST) -o $@
lint: $(SRC)
$(LINT) $(LINTFLAGS) $(SRC) $(LLIBS) | $(LINTFILT)
lint-p: $(SRC)
*** cnpatch/tmp.file Fri Jul 7 15:29:59 1989
--- relay/sh/inews Wed Jul 5 13:17:03 1989
***************
*** 71,76 ****
--- 71,77 ----
-e) shift; echo "Expires: $1" >>$input ;;
-f) shift; echo "From: $1" >>$input ;;
-n) shift; echo "Newsgroups: $1" >>$input ;;
+ -r) shift; echo "Reply-To: $1" >>$input ;;
-t) shift; echo "Subject: $1" >>$input ;; # aka Title:
-D) # obsolete, undocumented: meant "don't check for recordings".
# last present in B 2.10.1, invoked by readnews for followups.
***************
*** 96,112 ****
;;
esac
rm -f $whoami
-
- inewsopt="$1" # for use in message body
shift # skip -C to get ng as $1
-
cat <<! >>$input # generate a control message
Newsgroups: $1
Control: newgroup $1
Subject: newgroup $1
Approved: above-user@above-host
-
- This article generated by inews $inewsopt $1.
!
;;
-*)
--- 97,108 ----
*** cnpatch/tmp.file Fri Jul 7 15:30:09 1989
--- rna/makefile Tue Jul 4 17:40:38 1989
***************
*** 42,48 ****
: warning, defs.h may not be right for your system
readnews: $(ROFILES) defs.h $(LIBS)
! $(CC) $(CFLAGS) $(ROFILES) $(LIBS) -o $@
newsinstall:
: "install all control files; don't overwrite any!"
--- 42,48 ----
: warning, defs.h may not be right for your system
readnews: $(ROFILES) defs.h $(LIBS)
! $(CC) $(CFLAGS) $(ROFILES) $(PRE) $(LIBS) $(POST) -o $@
newsinstall:
: "install all control files; don't overwrite any!"
Files that are new:
new notebook/log (patch can't create, so diff against null):
Index: notebook/log
*** cnpatch/tmp.preposterously.long.name.to.make.patch.behave.right Fri Jul 7 15:26:59 1989
--- notebook/log Fri Jul 7 14:24:29 1989
***************
*** 0 ****
--- 1,84 ----
+ .TL
+ Log File Formats in C News
+ .AU
+ Geoff Collyer
+ .AI
+ Department of Statistics
+ University of Toronto
+ .SH
+ Introduction
+ .PP
+ The two main log files in C news are
+ \fINEWSCTL\fP\fB/log\fR
+ and
+ \fINEWSCTL\fP\fB/errlog\fR,
+ which are the standard output and standard error streams
+ of
+ .I relaynews .
+ .B errlog
+ should be empty;
+ if not,
+ something is seriously wrong,
+ probably with your configuration or
+ with unencapsulated news arriving mangled
+ courtesy of some network.
+ .SH
+ Formats
+ .PP
+ .B errlog
+ is a copy of any error messages written on
+ standard error by
+ .I relaynews
+ or its auxiliaries
+ (including control messages programs).
+ There are no timestamps
+ and the contents obey no special format.
+ A non-empty
+ .B errlog
+ is a sign of trouble,
+ which should be fixed promptly.
+ .PP
+ .B log
+ is written in a stylised format,
+ with whitespace separating the fields:
+ date and time, to millisecond resolution though possibly not
+ to millisecond accuracy;
+ the machine that sent us this article;
+ a single-character classification code;
+ the article's message-id;
+ and
+ code-specific information.
+ For example,
+ .DS L
+ .ft B
+ .ps 8
+ .vs 10
+ Jun 30 03:32:18.960 utgpu + <1312@sunset.MATH.UCLA.EDU> mailrus dptcdc me
+ Jun 30 03:32:19.600 utgpu j <1312@sunset.MATH.UCLA.EDU> junked due to groups `alt.drugs'
+ Jul 3 18:55:35.492 utstat s <470@lexicon.com> utzoo-real
+ Jul 3 18:55:35.912 utstat i <8907031824.AA09129@ucbvax.Berkeley.EDU> utzoo-send-ids
+ Jul 4 06:40:22.395 jarvis.csri.toronto.edu + <0541.AA0541@worsel> utgpu
+ Jul 4 06:40:22.595 jarvis.csri.toronto.edu + <0549.AA0549@worsel> utgpu
+ Jul 4 07:00:26.565 jarvis.csri.toronto.edu + <295@lancelot> utgpu
+ Jul 4 07:17:51.537 utgpu - <8258@saturn.ucsc.edu> duplicate
+ Jul 4 07:17:51.697 utgpu - <1675@neoucom.UUCP> duplicate
+ Jul 4 07:17:51.757 utgpu - <89Jul4.043358edt.10369@neat.ai.toronto.edu> duplicate
+ Jul 4 17:23:28.234 utgpu - <2537@quanta.eng.ohio-state.edu> no subscribed groups in `rec.arts.sf-lovers,rec.arts.startrek,rec.arts.drwho'
+ Jul 4 19:17:15.785 utgpu - <89Jul4.190330edt.5559@gpu.utcs.utoronto.ca> all groups `list.humanist' excluded in active
+ .ft R
+ .DE
+ .PP
+ The classification codes are:
+ .TS
+ c | c | c
+ cfB | lw(2.75i) | l .
+ code article disposition code-specific information
+ _
+ \- rejected reason for rejection
+ + accepted list of sites to which this article was relayed
+ j T{
+ accepted but filed in the \fIjunk\fR pseudo-newsgroup; preceding line will be \fB+\fR
+ T} reason for junking
+ i generated in response to an \fIihave\fR control message list of sites to which this article was relayed
+ s generated in response to a \fIsendme\fR control message list of sites to which this article was relayed
+ .TE
end of patch 7-Jul-1989