[news.software.b] C News patch of 23-Jul-1989

henry@utzoo.uucp (Henry Spencer) (07/23/89)

Here is another patch.  This one is being prepared in haste, as I'm about
to leave for 10 days' vacation, and consequently I haven't had time to
tackle the major pending issue, dbz.  This one is mostly trivia.  There
are no serious bugs outstanding in any case.  There are a bunch of other
small fixes that didn't get into this one because of lack of time.

This one includes...  Some fixes to reduce problems with doing compilation
as one user and installation as another.  A fix for long-directory-name
problems in ihave/sendme.  An Ultrix version of spacefor.  Some more cleanup
and deletion of a couple of never-really-implemented features.  A couple of
additions to build, essentially improvements in documentation.  Addition of
a couple of options to doit.bin, so that you can suppress some stages of its
operation (notably, actual installation) easily.  A small improvement to the
ihave/sendme example in the sample sys file.  Minor portability fixes.  A
fix for the off-by-one bug in the commented-out Lines: code in inews.  Fix
for the inability to give arbitrary shell commands in a sys file.  And a
quick-and-dirty fake -ms, not very good but functional enough to print our
documentation on broken systems that don't have -ms.

start of patch 23-Jul-1989
this should be run with   patch -p0 <thisfile

Some versions of patch have broken the Prereq feature, but it
is such a good idea that we will try it anyway...
Prereq: 23-Jun-1989
Prereq: 7-Jul-1989
*** tmp.dates.with.really.long.filename.for.patch	Sun Jul 23 00:19:05 1989
--- PATCHDATES	Sun Jul 23 00:19:05 1989
***************
*** 1,2 ****
--- 1,3 ----
  23-Jun-1989
  7-Jul-1989
+ 23-Jul-1989

Changed files, if any:

*** cnpatch/tmp.file	Sun Jul 23 00:19:10 1989
--- batch/Makefile	Thu Jul 20 17:56:15 1989
***************
*** 36,42 ****
  
  bencode.o:	coder.h
  
! bininstall:	all
  	-if test ! -d $(PGMDIR) ; then mkdir $(PGMDIR) ; fi
  	cp $(PGMS) $(PGMDIR)
  
--- 36,42 ----
  
  bencode.o:	coder.h
  
! bininstall:	$(ALL)
  	-if test ! -d $(PGMDIR) ; then mkdir $(PGMDIR) ; fi
  	cp $(PGMS) $(PGMDIR)
  

*** cnpatch/tmp.file	Sun Jul 23 00:19:14 1989
--- batch/batchih	Mon Jul 17 17:47:33 1989
***************
*** 14,20 ****
  	;;
  esac
  
! dest=`expr "$NEWSSITE" : "^\([^.]*\)\.ihave$"`
  case "$dest"
  in
  	'')
--- 14,20 ----
  	;;
  esac
  
! dest=`expr "$NEWSSITE" : "^\(.*\)\.[^.]*$"`
  case "$dest"
  in
  	'')

*** cnpatch/tmp.file	Sun Jul 23 00:19:19 1989
--- conf/Makefile	Thu Jul 20 17:53:40 1989
***************
*** 18,28 ****
  PGMS = spacefor queuelen
  
  all:	$(PGMS)
  
  bininstall:	$(PGMS)
- 	chmod +x $(PGMS)
  	cp $(PGMS) $(NEWSBIN)
! 	-if test -r hostname ; then chmod +x hostname ; cp hostname $(NEWSBIN) ; fi
  	: and build takes care of setnewsids if needed
  
  newsinstall:
--- 18,29 ----
  PGMS = spacefor queuelen
  
  all:	$(PGMS)
+ 	chmod +x $(PGMS)
+ 	-if test -r hostname ; then chmod +x hostname ; fi
  
  bininstall:	$(PGMS)
  	cp $(PGMS) $(NEWSBIN)
! 	-if test -r hostname ; then cp hostname $(NEWSBIN) ; fi
  	: and build takes care of setnewsids if needed
  
  newsinstall:
***************
*** 36,42 ****
  	rm -f junk
  	./subst -f substitutions `sed 's;^;../;' subst.hs subst.gc`
  
! spacefors:	spacefor.sysv spacefor.v7 spacefor.sgi spacefor.bsd spacefor.null
  
  spacefor.bsd:	spacefor.proto Makefile
  	cp spacefor.proto $@
--- 37,43 ----
  	rm -f junk
  	./subst -f substitutions `sed 's;^;../;' subst.hs subst.gc`
  
! spacefors:	spacefor.sysv spacefor.v7 spacefor.sgi spacefor.bsd spacefor.ultrix spacefor.null
  
  spacefor.bsd:	spacefor.proto Makefile
  	cp spacefor.proto $@
***************
*** 50,55 ****
--- 51,59 ----
  spacefor.sgi:	spacefor.proto Makefile
  	sed '/dfunit=/s/1024/512/;/nf = 4/s//nf = 5/;/stupid/s/4BSD/SGI/' spacefor.proto >$@
  
+ spacefor.ultrix:	spacefor.proto Makefile
+ 	sed '/nr = 2/s//nr = 3/;/stupid/s/4BSD/Ultrix/' spacefor.proto >$@
+ 
  spacefor.null:	Makefile
  	echo '#! /bin/sh' >$@
  	echo 'echo 100' >>$@
***************
*** 74,80 ****
  clean:
  	rm -f spacefor.sysv spacefor.v7 spacefor.null queuelen.null
  	rm -f spacefor.sgi
! 	rm -f allowed config mailname organization server whoami hostname errlog
  	rm -f substitutions history history.pag history.dir active localgroups
  	rm -f log mailpaths sys cron rc setnewsids setnewsids.o spacefor.bsd
  	rm -f replyusepath spacefor queuelen junk
--- 78,84 ----
  clean:
  	rm -f spacefor.sysv spacefor.v7 spacefor.null queuelen.null
  	rm -f spacefor.sgi
! 	rm -f config mailname organization server whoami hostname errlog
  	rm -f substitutions history history.pag history.dir active localgroups
  	rm -f log mailpaths sys cron rc setnewsids setnewsids.o spacefor.bsd
  	rm -f replyusepath spacefor queuelen junk

*** cnpatch/tmp.file	Sun Jul 23 00:19:21 1989
--- conf/build	Sat Jul 22 22:07:13 1989
***************
*** 10,16 ****
  pgmdirs='conf batch expire input relay misc rna'
  
  # control files built in conf
! ctlf="active allowed errlog history history.pag history.dir localgroups"
  ctlf="$ctlf log mailname mailpaths organization postdefltdist postdefltgroup"
  ctlf="$ctlf replyusepath server sys whoami"
  
--- 10,16 ----
  pgmdirs='conf batch expire input relay misc rna'
  
  # control files built in conf
! ctlf="active errlog history history.pag history.dir localgroups"
  ctlf="$ctlf log mailname mailpaths organization postdefltdist postdefltgroup"
  ctlf="$ctlf replyusepath server sys whoami"
  
***************
*** 60,65 ****
--- 60,74 ----
  case "$bingid" in
  '')	bingid=bin	;;
  esac
+ ./query "Do the C News sources belong to $binuid [yes]? "
+ read answer
+ case "$answer" in
+ n*|N*)	echo "You may need to do some of the installation procedures by hand"
+ 	echo "after the software is built; doit.bin assumes that it has the"
+ 	echo "power to create files in the source directories and to update"
+ 	echo "the news programs."
+ 	;;
+ esac
  
  answer=
  if test -d /var -a -d /usr/share
***************
*** 249,254 ****
--- 258,264 ----
  	exit 1
  fi
  (
+ 	echo '#! /bin/sh'
  	echo "umask $newsumask"
  	echo 'set -x'
  	echo ": making directories..."
***************
*** 573,578 ****
--- 583,589 ----
  echo '	bsd	4.2BSD and later'
  echo '	sysv	most System Vs'
  echo '	sgi	Silicon Graphics Iris systems'
+ echo '	ultrix	DEC Ultrix 3.0 (and later) (and earlier??)'
  echo '	v7	plain old style:  no headers or fluff, just name and number'
  echo "	null	don't know or don't care how much space is available"
  while true
***************
*** 587,593 ****
  		;;
  	esac
  	case "$dftype" in
! 	bsd|sysv|sgi|v7|null)	break	;;
  	esac
  	echo 'Sorry, no such choice is available.'
  done
--- 598,604 ----
  		;;
  	esac
  	case "$dftype" in
! 	bsd|sysv|sgi|ultrix|v7|null)	break	;;
  	esac
  	echo 'Sorry, no such choice is available.'
  done
***************
*** 678,688 ****
  read organization
  
  echo
- echo 'What user other than root (if any) should be allowed to create'
- ./query 'new news groups [no such user]? '
- read allowed
- 
- echo
  echo 'Manual pages are normally stored in a tree structure under /usr/man.'
  echo 'Local practices vary a great deal, however, and System V has also'
  echo 'introduced some bizarre distortions into this once-simple structure.'
--- 689,694 ----
***************
*** 755,760 ****
--- 761,782 ----
  read postdefltdist
  
  echo
+ echo 'The ihave/sendme protocol, although marginally useful in some cases,'
+ echo 'is a security hole -- it lets another site ask for any article by'
+ echo 'Message-ID, and if your Message-IDs are predictable enough (which'
+ echo "C News's generally are not, mind you), that site can get any article"
+ echo 'currently on your system.  Do you have any newsgroups containing'
+ ./query 'confidential or proprietary material [no]? '
+ read answer
+ case "$answer" in
+ n*|N*|'')	;;
+ *)	echo 'You should substitute relay/ihave.not.c for relay/ihave.c'
+ 	echo 'before running doit.bin, so that ihave/sendme is disabled'
+ 	echo 'at your site.'
+ 	;;
+ esac
+ 
+ echo
  echo 'building doit.bin...'
  >doit.bin
  if test ! -w doit.bin
***************
*** 763,768 ****
--- 785,792 ----
  	exit 1
  fi
  (
+ 	echo '#! /bin/sh'
+ 	echo '# -i suppresses install, -t suppresses stdio test, -s suppresses subst'
  	echo "umask $newsumask"
  	echo "set -x"
  	echo ': setting up for substitutions'
***************
*** 832,838 ****
  	echo "cd ../conf"
  	if test " $needsubst" = " y"
  	then
! 		echo "make substs"
  	else
  		echo ": make substs		not necessary, defaults used"
  	fi
--- 856,865 ----
  	echo "cd ../conf"
  	if test " $needsubst" = " y"
  	then
! 		echo 'case "$1" in'
! 		echo '-*s*)	;;'
! 		echo '*)	make substs	;;'
! 		echo 'esac'
  	else
  		echo ": make substs		not necessary, defaults used"
  	fi
***************
*** 878,890 ****
  	echo ': library done'
  	if test " $libstdio" != " "
  	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'
  	echo 'cd ../conf'
--- 905,921 ----
  	echo ': library done'
  	if test " $libstdio" != " "
  	then
! 		echo 'case "$1" in'
! 		echo '-*t*)	;;'
! 		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'
! 		echo '	;;'
! 		echo 'esac'
  	fi
  	echo ': building programs'
  	echo 'cd ../conf'
***************
*** 906,915 ****
  	echo "cat <<'!' >organization"
  	echo "$organization"
  	echo '!'
- 	if test " $allowed" != " "
- 	then
- 		echo "echo '$allowed' >allowed"
- 	fi
  	if test " $server" != " "
  	then
  		echo "echo '$server' >server"
--- 937,942 ----
***************
*** 951,957 ****
  	echo "!"
  	echo "echo 'su news -c $newsbin/maint/newsboot' >rc"
  	echo ": done"
! 	echo ': installing programs'
  	echo "for dir in $pgmdirs"
  	echo "do"
  	echo "	cd ../\$dir"
--- 978,987 ----
  	echo "!"
  	echo "echo 'su news -c $newsbin/maint/newsboot' >rc"
  	echo ": done"
! 	echo 'case "$1" in'
! 	echo '-*i*)	exit 0	;;'
! 	echo 'esac'
! 	echo ': installing programs'
  	echo "for dir in $pgmdirs"
  	echo "do"
  	echo "	cd ../\$dir"
***************
*** 980,985 ****
--- 1010,1016 ----
  	exit 1
  fi
  (
+ 	echo '#! /bin/sh'
  	echo "umask $newsumask"
  	echo 'set -x'
  	echo ': installing programs'
***************
*** 1026,1031 ****
--- 1057,1063 ----
  	exit 1
  fi
  (
+ 	echo '#! /bin/sh'
  	echo "umask $newsumask"
  	echo 'set -x'
  	if test " $sete" != " y"
***************
*** 1052,1065 ****
  
  echo
  chmod +x doit.root doit.bin doit.news again.root
! echo 'You should now run doit.root as root (or as somebody with the power'
! echo "to create $newsctl, $newsarts, and $newsbin"
! echo "and run chown), doit.bin as $binuid, doit.news as $newsuid, and"
! echo "again.root as root (or as somebody with the power to run chown),"
! echo 'in that order.  Finally, you will want to add the contents of'
! echo "'cron', or something similar, to your cron's work-to-be-done"
! echo "file(s), and the contents of 'rc', or something similar, to"
! echo '/etc/rc or whatever your system executes when booting.'
  echo
  echo '"make gclean" will clean up everything afterwards.  "make lclean"'
  echo 'does a less drastic cleanup affecting only the library directories.'
--- 1084,1097 ----
  
  echo
  chmod +x doit.root doit.bin doit.news again.root
! echo "You should now run doit.root as root, doit.bin as $binuid, doit.news"
! echo "as $newsuid, and again.root as root, in that order.  (This assumes"
! echo "that the source directories are owned by $binuid.  If you need to do"
! echo "installation work by hand, run 'doit.bin -i' as the owner; this will"
! echo "create the programs but won't install them.)  Finally, you will"
! echo "want to add the contents of 'cron', or something similar, to your"
! echo "cron's work-to-be-done file(s), and the contents of 'rc', or something"
! echo "similar, to /etc/rc or whatever your system executes when booting."
  echo
  echo '"make gclean" will clean up everything afterwards.  "make lclean"'
  echo 'does a less drastic cleanup affecting only the library directories.'

*** cnpatch/tmp.file	Sun Jul 23 00:19:28 1989
--- conf/sys.proto	Sat Jul 22 23:25:17 1989
***************
*** 25,27 ****
--- 25,29 ----
  # Send articles in response to sendme messages from louie. (#5)
  louie-real:to.louie/sendme:f:louie/togo
  # Actually the last two could be combined.
+ # and send local postings to louie without waiting (beware ihave/sendme)
+ louie-local:comp,news,sci,rec,misc,soc,talk/all,!sendme,!ihave:L:

*** cnpatch/tmp.file	Sun Jul 23 00:19:39 1989
--- doc/README	Sat Jul  8 23:59:19 1989
***************
*** 7,9 ****
--- 7,10 ----
  install.out	nroffed version of install
  interface	technical summary of how C News works and its interface to
  		the rest of the system
+ tmac.cn		freely-redistributable fake of enough of -ms for C News

*** cnpatch/tmp.file	Sun Jul 23 00:19:42 1989
--- expire/Makefile	Thu Jul 20 17:54:55 1989
***************
*** 21,30 ****
  SHELL = /bin/sh
  
  all:	$(THEM)
  
  bininstall:	$(THEM) explist.proto
  	-if test ! -d $(NEWSBIN)/expire ; then mkdir $(NEWSBIN)/expire; fi
- 	chmod +x $(THEM)
  	cp $(THEM) $(NEWSBIN)/expire
  
  newsinstall:	explist.proto
--- 21,30 ----
  SHELL = /bin/sh
  
  all:	$(THEM)
+ 	chmod +x $(THEM)
  
  bininstall:	$(THEM) explist.proto
  	-if test ! -d $(NEWSBIN)/expire ; then mkdir $(NEWSBIN)/expire; fi
  	cp $(THEM) $(NEWSBIN)/expire
  
  newsinstall:	explist.proto

*** cnpatch/tmp.file	Sun Jul 23 00:19:54 1989
--- input/Makefile	Thu Jul 20 17:55:47 1989
***************
*** 25,33 ****
  	rnews.8 bdecode.c recenews recpnews
  
  all:	$(THEM) rnews
- 
- bininstall:	all
  	chmod +x $(THEM) rnews
  	-if test ! -d $(NEWSBIN)/input ; then mkdir $(NEWSBIN)/input ; fi
  	rm -f $(NEWSBIN)/input/newsspool
  	cp $(THEM) $(NEWSBIN)/input
--- 25,33 ----
  	rnews.8 bdecode.c recenews recpnews
  
  all:	$(THEM) rnews
  	chmod +x $(THEM) rnews
+ 
+ bininstall:	$(THEM) rnews
  	-if test ! -d $(NEWSBIN)/input ; then mkdir $(NEWSBIN)/input ; fi
  	rm -f $(NEWSBIN)/input/newsspool
  	cp $(THEM) $(NEWSBIN)/input

*** cnpatch/tmp.file	Sun Jul 23 00:20:09 1989
--- libcnews/ngmatch.c	Sat Jul 22 22:09:15 1989
***************
*** 39,45 ****
  static boolean debug = NO;
  
  /* forwards */
! extern boolean mpatsmatch();
  
  void
  matchdebug(state)
--- 39,46 ----
  static boolean debug = NO;
  
  /* forwards */
! FORWARD boolean mpatsmatch();
! FORWARD int onepatmatch();
  
  void
  matchdebug(state)

*** cnpatch/tmp.file	Sun Jul 23 00:20:33 1989
--- man/newsbatch.8	Mon Jul 17 17:52:10 1989
***************
*** 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
--- 6,12 ----
  .ds c /usr/lib/news
  .\" =()<.ds m @<NEWSMASTER>@>()=
  .ds m usenet
! .TH NEWSBATCH 8 "17 July 1989" "C News"
  .SH NAME
  sendbatches, batchsplit \- news batching to other sites
  .br
***************
*** 169,174 ****
--- 169,183 ----
  \fB\-d\ \*a\fR to \fIbatcher\fR will speed it up noticeably.
  Since \fIsendbatches\fR does this, other preparers had better be ready
  to ignore an initial \fB\-d\fR option.
+ .PP
+ .I Batchih
+ and
+ .I batchsm
+ have to map from the phony ``site name'' given in their \fIbatchparms\fR
+ line to the name of the site they should actually send to; they do this
+ by stripping off the last `.' and everything that follows (usually
+ `.ihave' or `.sendme' respectively, but on machines which limit the size
+ of filenames these may have to be shortened).
  .PP
  Batch compressors in the standard distribution are:
  .RS

*** cnpatch/tmp.file	Sun Jul 23 00:20:36 1989
--- man/rnews.8	Fri Jul 14 13:06:53 1989
***************
*** 6,12 ****
  .ds c /usr/lib/news
  .\" =()<.ds m @<NEWSMASTER>@>()=
  .ds m usenet
! .TH RNEWS 8 "22 June 1989" "C News"
  .SH NAME
  rnews, cunbatch \- accept and spool news input
  .br
--- 6,12 ----
  .ds c /usr/lib/news
  .\" =()<.ds m @<NEWSMASTER>@>()=
  .ds m usenet
! .TH RNEWS 8 "14 July 1989" "C News"
  .SH NAME
  rnews, cunbatch \- accept and spool news input
  .br
***************
*** 15,24 ****
  newsrunning \- control news-processing daemon
  .SH SYNOPSIS
  .B rnews
- [ file ... ]
  .br
  .B cunbatch
- [ file ... ]
  .br
  .B \*b/input/newsspool
  [
--- 15,22 ----
***************
*** 33,40 ****
  {\fBon\fR|\fBoff\fR}
  .SH DESCRIPTION
  .I Rnews
! accepts the named \fIfile\fR(s) (standard input default)
! as news, and spools it up for processing, space permitting.
  .I Cunbatch
  is a historical synonym for
  .IR rnews ;
--- 31,38 ----
  {\fBon\fR|\fBoff\fR}
  .SH DESCRIPTION
  .I Rnews
! accepts news from standard input
! and spools it up for processing, space permitting.
  .I Cunbatch
  is a historical synonym for
  .IR rnews ;

*** cnpatch/tmp.file	Sun Jul 23 00:20:38 1989
--- misc/Makefile	Thu Jul 20 17:57:44 1989
***************
*** 17,27 ****
  THEM = $(MAINT) $(UTILS)
  
  all:	$(THEM)
  
  bins:	$(UTILBIN)
  
  bininstall: $(THEM)
- 	chmod +x $(THEM)
  	-if test ! -d $(NEWSBIN)/maint ; then mkdir $(NEWSBIN)/maint ; fi
  	cp $(MAINT) $(NEWSBIN)/maint
  	cp $(UTILS) $(NEWSBIN)
--- 17,27 ----
  THEM = $(MAINT) $(UTILS)
  
  all:	$(THEM)
+ 	chmod +x $(THEM)
  
  bins:	$(UTILBIN)
  
  bininstall: $(THEM)
  	-if test ! -d $(NEWSBIN)/maint ; then mkdir $(NEWSBIN)/maint ; fi
  	cp $(MAINT) $(NEWSBIN)/maint
  	cp $(UTILS) $(NEWSBIN)

*** cnpatch/tmp.file	Sun Jul 23 00:20:53 1989
--- notebook/README	Sun Jul  9 00:00:27 1989
***************
*** 6,14 ****
  Most everything here is set up for the -ms macros, although very little
  fancy formatting is used in general.  The standard R, I, and B are the
  only fonts used.  Conversion to another macro package should not be hard.
  
  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.
--- 6,15 ----
  Most everything here is set up for the -ms macros, although very little
  fancy formatting is used in general.  The standard R, I, and B are the
  only fonts used.  Conversion to another macro package should not be hard.
+ Or see doc/tmac.cn, which is a fake -ms good enough for this stuff.
  
  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, newslock, log need tbl.  Nothing here uses eqn.

*** cnpatch/tmp.file	Sun Jul 23 00:20:54 1989
--- notebook/config	Sat Jul  8 21:53:39 1989
***************
*** 149,155 ****
  # foobar \- does foo, bar, and bletch
  
  # =()<. ${NEWSCONFIG\-@<NEWSCONFIG>@}>()=
! . ${NEWSCONFIG\-/usr/lib/news/bin/config}
  
  PATH=$NEWSCTL/bin:$NEWSBIN/xxx:$NEWSBIN:$NEWSPATH ; export PATH
  umask $NEWSUMASK
--- 149,155 ----
  # foobar \- does foo, bar, and bletch
  
  # =()<. ${NEWSCONFIG\-@<NEWSCONFIG>@}>()=
! \&. ${NEWSCONFIG\-/usr/lib/news/bin/config}
  
  PATH=$NEWSCTL/bin:$NEWSBIN/xxx:$NEWSBIN:$NEWSPATH ; export PATH
  umask $NEWSUMASK

*** cnpatch/tmp.file	Sun Jul 23 00:20:58 1989
--- notebook/log	Sat Jul  8 23:52:39 1989
***************
*** 65,71 ****
  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:
--- 65,73 ----
  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
! .vs
! .ps
! .ft
  .DE
  .PP
  The classification codes are:

*** cnpatch/tmp.file	Sun Jul 23 00:21:15 1989
--- relay/hdrint.h	Sat Jul 22 22:09:15 1989
***************
*** 10,18 ****
  #endif				/* __STDC__ < 1 */
  #endif				/* __STDC__ */
  
! #ifndef REALSTDC
  #define const
- #endif				/* REALSTDC */
  
  #ifndef DEFDIST
  #define DEFDIST "world"		/* default Distribution: */
--- 10,20 ----
  #endif				/* __STDC__ < 1 */
  #endif				/* __STDC__ */
  
! /*
!  * using const seemed like a good idea at the time.  then i discovered
!  * const-poisoning.
!  */
  #define const
  
  #ifndef DEFDIST
  #define DEFDIST "world"		/* default Distribution: */

*** cnpatch/tmp.file	Sun Jul 23 00:21:21 1989
--- relay/makefile	Thu Jul 20 17:59:05 1989
***************
*** 48,53 ****
--- 48,54 ----
  	hdrint.h headers.h history.h system.h transmit.h trbatch.h $(SRC)
  
  all: makefile relaynews
+ 	chmod +x sh/* aux/* ctl/*
  
  mkfile: makefile
  	sed '/mkfile/d' makefile | mkconv | sed 's/make/mk/g' >$@
***************
*** 70,80 ****
  	rm -f $(NEWSBIN)/relay/relaynews
  	cp relaynews $(NEWSBIN)/relay
  	: needs to be news-owned, setuid -- build looks after that
- 	chmod +x sh/* aux/* ctl/*
  	cp sh/* $(NEWSBIN)/inject
  	cp ctl/* $(NEWSBIN)/ctl
  	cp aux/* $(NEWSBIN)/relay
! 	cp sh/postnews sh/inews $(BIN)
  
  TODO.grep: TODO
  	-egrep TODO ../include/*.h *.h *.c sh/* | tr -s " \11" " " >$@
--- 71,81 ----
  	rm -f $(NEWSBIN)/relay/relaynews
  	cp relaynews $(NEWSBIN)/relay
  	: needs to be news-owned, setuid -- build looks after that
  	cp sh/* $(NEWSBIN)/inject
  	cp ctl/* $(NEWSBIN)/ctl
  	cp aux/* $(NEWSBIN)/relay
! 	ln $(NEWSBIN)/inject/postnews $(BIN)/postnews || cp sh/postnews $(BIN)
! 	ln $(NEWSBIN)/inject/inews $(BIN)/inews || cp sh/inews $(BIN)
  
  TODO.grep: TODO
  	-egrep TODO ../include/*.h *.h *.c sh/* | tr -s " \11" " " >$@

*** cnpatch/tmp.file	Sun Jul 23 00:21:37 1989
--- relay/sh/inews	Fri Jul 21 15:12:53 1989
***************
*** 180,192 ****
  
  # post with new headers and .signature
  (anne.jones <$inhdrs		# bash headers
!  # echo "Lines: `		# sop to msb, just uncomment to use
!  # if test -r $HOME/.signature; then
!  #	(cat $inbody; echo '-- '; sed 4q $HOME/.signature) | wc -l
!  # else
!  #	wc -l <$inbody
!  # fi
!  # `"
  
   # strip invisible chars from body, a la B news
   case "$trversion" in
--- 180,192 ----
  
  # post with new headers and .signature
  (anne.jones <$inhdrs		# bash headers
! # lines="`			# sop to msb, just uncomment to use
! # (sed 1d $inbody;	# take out the first (blank) line
! # if test -r $HOME/.signature; then
! # 	echo '-- '
! # 	sed 4q $HOME/.signature
! # fi) | wc -l `"
! # echo Lines: $lines
  
   # strip invisible chars from body, a la B news
   case "$trversion" in

*** cnpatch/tmp.file	Sun Jul 23 00:21:40 1989
--- relay/transmit.c	Tue Jul 11 12:47:15 1989
***************
*** 176,183 ****
  		bincmd = strsave(binfile("relay"));
  	cmd = nemalloc((unsigned)(STRLEN("PATH=") + strlen(ctlcmd) +
  		STRLEN(":") + strlen(bincmd) + STRLEN(":") + strlen(newspath()) +
! 		STRLEN(" <") + strlen(filename) + STRLEN(" ") +
! 		strlen(syscmd) + strlen(filename) + 1));
  	(void) strcpy(cmd, "PATH=");
  	(void) strcat(cmd, ctlcmd);
  	(void) strcat(cmd, ":");
--- 176,183 ----
  		bincmd = strsave(binfile("relay"));
  	cmd = nemalloc((unsigned)(STRLEN("PATH=") + strlen(ctlcmd) +
  		STRLEN(":") + strlen(bincmd) + STRLEN(":") + strlen(newspath()) +
! 		STRLEN(";<") + strlen(filename) + STRLEN(" (") +
! 		strlen(syscmd) + strlen(filename) + STRLEN(")") + 1));
  	(void) strcpy(cmd, "PATH=");
  	(void) strcat(cmd, ctlcmd);
  	(void) strcat(cmd, ":");
***************
*** 184,192 ****
  	(void) strcat(cmd, bincmd);
  	(void) strcat(cmd, ":");
  	(void) strcat(cmd, newspath());
! 	(void) strcat(cmd, " <");
  	(void) strcat(cmd, filename);
! 	(void) strcat(cmd, " ");
  	percent = index(syscmd, '%');
  	if (percent == NULL)
  		(void) strcat(cmd, syscmd);
--- 184,192 ----
  	(void) strcat(cmd, bincmd);
  	(void) strcat(cmd, ":");
  	(void) strcat(cmd, newspath());
! 	(void) strcat(cmd, ";<");
  	(void) strcat(cmd, filename);
! 	(void) strcat(cmd, " (");
  	percent = index(syscmd, '%');
  	if (percent == NULL)
  		(void) strcat(cmd, syscmd);
***************
*** 206,211 ****
--- 206,212 ----
  		} else
  			(void) sprintf(cmd+strlen(cmd), syscmd, filename);
  	}
+ 	(void) strcat(cmd, ")");
  	exitstat = system(cmd);
  	if (exitstat != 0) {
  		art->a_status |= ST_DROPPED;

*** cnpatch/tmp.file	Sun Jul 23 00:21:47 1989
--- rna/makefile	Thu Jul 20 17:59:54 1989
***************
*** 39,44 ****
--- 39,45 ----
  	$(INSTALL) -c $*.sh bin 755 $@
  
  all: readnews checknews
+ 	chmod +x checknews
  	: warning, defs.h may not be right for your system
  
  readnews: $(ROFILES) defs.h $(LIBS)
***************
*** 55,61 ****
  	cp readnews $(BINDIR)
  	: "$(INSTALL) - readnews bin 711 $(BINDIR)/readnews $(BINDIR)/news"
  $(BINDIR)/checknews:	checknews
- 	chmod +x checknews
  	cp checknews $(BINDIR)
  
  defs.h:	at.h # $C
--- 56,61 ----

Files that are new:

new doc/tmac.cn (patch can't create, so diff against null):
Index: doc/tmac.cn
*** cnpatch/tmp.preposterously.long.name.to.make.patch.behave.right	Sun Jul 23 00:19:04 1989
--- doc/tmac.cn	Sat Jul  8 23:59:43 1989
***************
*** 0 ****
--- 1,151 ----
+ .\" fake -ms, not very functional but enough for C News documents
+ .de Ph
+ 'sp 2.5
+ 'if \\n%>1 'tl @@- % -@@
+ 'sp |1i
+ 'ns
+ 'os
+ ..
+ .de Pf
+ 'sp 2
+ 'if \\n%=1 'tl @@@\\*(Da@
+ 'bp
+ ..
+ .de DA
+ .ds Da "\\$1
+ ..
+ .de TL
+ \&
+ .sp 0.5i
+ .ft B
+ .ps +2
+ .ce 999
+ .nr Tl 1
+ ..
+ .de AU
+ .sp 2
+ .Et
+ ..
+ .de Et
+ .if \\n(Tl=1 \{\
+ .br
+ .ps -2
+ .ft R
+ .nr Tl 2\}
+ ..
+ .de Eh
+ .Et
+ .if \\n(Tl=2 \{\
+ .ce 0
+ .sp 1i
+ .nr Tl 0\}
+ ..
+ .de AI
+ .sp 1
+ .Et
+ ..
+ .de AB
+ .Eh
+ .ll -1i
+ .in +1i
+ ..
+ .de AE
+ .br
+ .ll
+ .in
+ .sp 1i
+ ..
+ .de SH
+ .Eh
+ .br
+ .ne 0.75i
+ .sp 1.2
+ .in 0
+ .ft B
+ .nr Sh 1
+ ..
+ .de PP
+ .LP
+ .ti 5n
+ ..
+ .de LP
+ .Eh
+ .Es
+ .in \\n(Rsn
+ .sp 0.5
+ ..
+ .de IP
+ .Es
+ .br
+ .ne 0.7i
+ .sp 0.5
+ .if \\n(.$>1 .nr Ip \\$2
+ .in \\n(Rsn+\\n(Ipn
+ .ti \\n(Rsn
+ .ie \\w@\\$1@u<\\n(Ipn \{\
+ .ta \\n(Ipn
+ \&\\$1\t\c\}
+ .el \{\
+ \\&\\$1
+ .br\}
+ ..
+ .de Es
+ .if \\n(Sh=1 \{\
+ .ft R
+ .nr Sh 0\}
+ ..
+ .de DS
+ .Es
+ .br
+ .ne 1i
+ .sp 0.8
+ .nf
+ .ti 0
+ .ie '\\$1'L' .in \\n(Rsn
+ .el .in \\n(Rsn+0.5i
+ ..
+ .de DE
+ .sp 0.8
+ .fi
+ .in \\n(Rsn
+ ..
+ .de B
+ \\fB\&\\$1\\fR\\$2
+ ..
+ .de I
+ \\fI\&\\$1\\fR\\$2
+ ..
+ .de TS
+ .br
+ .ne 2i
+ .sp 1.5
+ .ti 0
+ ..
+ .de TE
+ .sp 1.5
+ ..
+ .de UX
+ UNIX
+ ..
+ .de PS
+ .sp 0.5i
+ .in \\n(Rsn+0.5i
+ .ne \\$1
+ ..
+ .de PE
+ .in
+ .sp 0.5i
+ ..
+ .de RS
+ .nr Rs \\n(Rs+5
+ .in \\n(Rsn
+ ..
+ .de RE
+ .nr Rs \\n(Rs-5
+ .in \\n(Rsn
+ ..
+ .\" setup
+ .wh 0 Ph
+ .wh -1i Pf
+ .ds Lh "C News
+ .nr Ip 5


end of patch 23-Jul-1989
-- 
1961-1969: 8 years of Apollo.  |     Henry Spencer at U of Toronto Zoology
1969-1989: 20 years of nothing.| uunet!attcan!utzoo!henry henry@zoo.toronto.edu

henry@utzoo.uucp (Henry Spencer) (07/23/89)

The distribution copies of C News on the U of T FTP sites and uunet have
been updated to be current with the latest patch.  The definitive test
of whether you have the latest is to look at PATCHDATES, of course, but
as a first approximation, the new one (compressed) is 393283 bytes.
-- 
1961-1969: 8 years of Apollo.  |     Henry Spencer at U of Toronto Zoology
1969-1989: 20 years of nothing.| uunet!attcan!utzoo!henry henry@zoo.toronto.edu

tpf@pyr.gatech.EDU (Tom Friedel) (07/24/89)

>Here is another patch.  This one is being prepared in haste, as I'm about
>tackle the major pending issue, dbz.  

I though that dbz was a transparent replacement to dbm, which C News
supports.  I apologize for not being more up to date.

Tom

henry@utzoo.uucp (Henry Spencer) (07/24/89)

In article <8822@pyr.gatech.EDU> tpf@pyr.UUCP (Tom Friedel) writes:
>>... the major pending issue, dbz.  
>
>I though that dbz was a transparent replacement to dbm, which C News
>supports.  I apologize for not being more up to date.

At present we supply it, but as "contributed software" with an explicit
warning that we have not examined it or tested it.  The "pending issue"
is cleanup work, careful testing of the option of keeping the files in
core for major speed improvements, and integration so that it becomes
our "official" dbm replacement, superseding the slow kludge we supply now.
I would really like to get this done but just haven't had time.
-- 
1961-1969: 8 years of Apollo.  |     Henry Spencer at U of Toronto Zoology
1969-1989: 20 years of nothing.| uunet!attcan!utzoo!henry henry@zoo.toronto.edu

moraes@cs.toronto.edu (Mark Moraes) (07/24/89)

tpf@pyr.gatech.EDU (Tom Friedel) writes:

>I though that dbz was a transparent replacement to dbm, which C News
>supports.  I apologize for not being more up to date.

dbz is not quite transparent - unlike dbm, it requires the
actual text file around for verifying that the hashed localtion
actually contains the key it is looking for (dbm stores a copy of the
key, dbz does not)

amos@taux01.UUCP (Amos Shapir) (07/27/89)

In article <1989Jul23.044736.387@utzoo.uucp> henry@utzoo.uucp (Henry Spencer) writes:
>Prereq: 7-Jul-1989

I seem to have missed this one.  Is there any archive I can get it from
via uucp and/or mail?  (Sorry, we have no ftp connection).

Thanks in advance,
-- 
	Amos Shapir		amos@taux01.nsc.com or amos@nsc.nsc.com
National Semiconductor (Israel) P.O.B. 3007, Herzlia 46104, Israel
Tel. +972 52 522261  TWX: 33691, fax: +972-52-558322
34 48 E / 32 10 N			(My other cpu is a NS32532)

henry@utzoo.uucp (Henry Spencer) (08/04/89)

In article <2229@taux01.UUCP> amos@taux01.UUCP (Amos Shapir) writes:
>>Prereq: 7-Jul-1989
>
>I seem to have missed this one.  Is there any archive I can get it from
>via uucp and/or mail?  (Sorry, we have no ftp connection).

Apologies to all about this; due to an oversight, we haven't been feeding
the patches to the comp.sources.unix archive sites.  This will be corrected
within the next few days.
-- 
1961-1969: 8 years of Apollo.  |     Henry Spencer at U of Toronto Zoology
1969-1989: 20 years of nothing.| uunet!attcan!utzoo!henry henry@zoo.toronto.edu