Path: gmdzi!unido!math.fu-berlin.de!ox.com!yale.edu!think.com!rpi!news-server.csri.toronto.edu!
utzoo!henry
From: h...@zoo.toronto.edu (Henry Spencer)
Newsgroups: news.software.b,comp.sources.bugs
Subject: C News patch of 27-Aug-1991
Message-ID: <1991Aug27.181843.18454@zoo.toronto.edu>
Date: 27 Aug 91 18:18:43 GMT
Organization: U of Toronto Zoology
Lines: 533

Okay, sixth and last of the three August patches. :-)

This one contains four fixes.  First, the last of Bill Kucharski's bugs,
compile options not being passed into Makefiles, has been fixed with an
overhaul of the option-passing stuff to also avoid future problems of
the same kind.  Second, the C spacefor variants have been modified slightly
to accept scientific notation in their first argument -- it turns out that
some old awks switch to e-format output fairly early, and this sometimes
affects the output of sizeof, which typically gets fed into spacefor.
Third, a problem in error reporting was introduced by some inews changes,
and this is hereby corrected.  Fourth, moderators will doubtless cheer
this one:  relaynews now rejects articles with imbedded white space in
their newsgroup lists, which is the main remaining cause of the "700
identical mail messages to the moderator" problem.  (It would be nicer
to just ignore the white space and carry on, but in Geoff's words,
"someday maybe, but not tonight"; this problem has been in need of
*some* action for too long already, and the nicer solution is harder.)
Oh yes, and some small touchups to documentation.

start of patch 27-Aug-1991
(suggested archive name: `pch27Aug91.Z')
this should be run with   patch -p0 <thisfile

The following is a complete list of patches to date.

Prereq: 23-Jun-1989
Prereq: 7-Jul-1989
Prereq: 23-Jul-1989
Prereq: 22-Aug-1989
Prereq: 24-Aug-1989
Prereq: 14-Sep-1989
Prereq: 13-Nov-1989
Prereq: 10-Jan-1990
Prereq: 16-Jan-1990
Prereq: 17-Jan-1990
Prereq: 18-Jan-1990
Prereq: 12-Mar-1990
Prereq: 14-Apr-1990
Prereq: 15-Apr-1990
Prereq: 16-Apr-1990
Prereq: 25-May-1990
Prereq: 1-Sep-1990
Prereq: 7-Sep-1990
Prereq: 1-Dec-1990
Prereq: 12-Dec-1990
Prereq: 13-Dec-1990
Prereq: 14-Dec-1990
Prereq: 15-Dec-1990
Prereq: 16-Mar-1991
Prereq: 17-Mar-1991
Prereq: 23-Mar-1991
Prereq: 24-Mar-1991
Prereq: 6-Jul-1991
Prereq: 9-Aug-1991
Prereq: 17-Aug-1991
Prereq: 21-Aug-1991
Prereq: 22-Aug-1991
Prereq: 23-Aug-1991
*** PATCHDATES.old	Tue Aug 27 12:29:03 1991
--- PATCHDATES	Tue Aug 27 12:29:03 1991
***************
*** 1,33 ****
--- 1,34 ----
  23-Jun-1989
  7-Jul-1989
  23-Jul-1989
  22-Aug-1989
  24-Aug-1989
  14-Sep-1989
  13-Nov-1989
  10-Jan-1990
  16-Jan-1990
  17-Jan-1990
  18-Jan-1990
  12-Mar-1990
  14-Apr-1990
  15-Apr-1990
  16-Apr-1990
  25-May-1990
  1-Sep-1990
  7-Sep-1990
  1-Dec-1990
  12-Dec-1990
  13-Dec-1990
  14-Dec-1990
  15-Dec-1990
  16-Mar-1991
  17-Mar-1991
  23-Mar-1991
  24-Mar-1991
  6-Jul-1991
  9-Aug-1991
  17-Aug-1991
  21-Aug-1991
  22-Aug-1991
  23-Aug-1991
+ 27-Aug-1991

Changed files, if any:

*** cnpatch/old/conf/Makefile	Tue Aug 27 12:29:40 1991
--- conf/Makefile	Mon Aug 26 00:16:06 1991
***************
*** 17,20 ****
--- 17,21 ----
  CMPDIRS = batch conf expire input man misc relay rna
  RDIRS = batch dbz expire input relay
+ FRDIRS = batch expire input relay
  SHS = doit.root doit.bin doit.news again.root
  
***************
*** 146,149 ****
--- 147,153 ----
  rs:
  	for d in $(RDIRS) ; do cd ../$$d ; make r ; done
+ 
+ frs:
+ 	for d in $(FRDIRS) ; do cd ../$$d ; make r ; done
  
  save:	$(SHS)

*** cnpatch/old/conf/build	Tue Aug 27 12:29:46 1991
--- conf/build	Thu Aug 22 13:38:42 1991
***************
*** 729,732 ****
--- 729,745 ----
  	echo '# options are seen in first argument only, i.e. use -ti not -t -i'
  	echo "umask $newsumask"
+ 	case "$cc" in
+ 	cc)	ccc="COPTS='$copts'"	;;
+ 	*)	ccc="CC=$cc COPTS='$copts'"	;;
+ 	esac
+ 	case "$ldopts" in
+ 	'')					;;
+ 	*)	ccc="$ccc LDFLAGS='$ldopts'"	;;
+ 	esac
+ 	case "$postlibs" in
+ 	'')					;;
+ 	*)	ccc="$ccc POST='$postlibs'"	;;
+ 	esac
+ 	ccc="$ccc DBM=$dbmopt"
  	echo "set -x"
  	echo ': setting up for substitutions'
***************
*** 779,791 ****
  	echo '	mv nnewshsed newshsed'
  	echo 'fi'
! 	echo 'make all || exit 1'
  	echo 'cd ../hfake'
   	echo "sed -e '/NEEDED =/s~.*~NEEDED = $fakehdrs~' Makefile" '>M.$$'
   	echo 'mv -f M.$$ Makefile'
! 	echo "make all || exit 1"
  	echo ": done"
  	echo ": making substitutions..."
  	echo "cd ../conf"
! 	echo 'make substs || exit 1'
  	echo ": done"
  	echo ': making library...'
--- 792,804 ----
  	echo '	mv nnewshsed newshsed'
  	echo 'fi'
! 	echo 'make all $ccc || exit 1'
  	echo 'cd ../hfake'
   	echo "sed -e '/NEEDED =/s~.*~NEEDED = $fakehdrs~' Makefile" '>M.$$'
   	echo 'mv -f M.$$ Makefile'
! 	echo "make all $ccc || exit 1"
  	echo ": done"
  	echo ": making substitutions..."
  	echo "cd ../conf"
! 	echo 'make substs $ccc || exit 1'
  	echo ": done"
  	echo ': making library...'
***************
*** 797,812 ****
  	no)	libstdio=		;;
  	esac
- 	case "$cc" in
- 	cc)	ccc="COPTS='$copts'"	;;
- 	*)	ccc="CC=$cc COPTS='$copts'"	;;
- 	esac
- 	case "$ldopts" in
- 	'')					;;
- 	*)	ccc="$ccc LDFLAGS='$ldopts'"	;;
- 	esac
- 	case "$postlibs" in
- 	'')					;;
- 	*)	ccc="$ccc POST='$postlibs'"	;;
- 	esac
  	echo "for dir in lib$unixkind lib$addrsize libc libcnews $libstdio $dbzlib"
  	echo "do"
--- 810,813 ----
***************
*** 820,824 ****
  	echo "cd ../conf"
  	case "$ranlib" in
! 	yes)	echo "make ../ranlibed || exit 1"	;;
  	esac
  	echo ': library done'
--- 821,825 ----
  	echo "cd ../conf"
  	case "$ranlib" in
! 	yes)	echo "make ../ranlibed $ccc || exit 1"	;;
  	esac
  	echo ': library done'
***************
*** 840,846 ****
  	echo 'cd ../conf'
  	echo "rm -f spacefor queuelen hostname setnewsids"
! 	echo "make sf.$dftype || exit 1"
  	echo "cp sf.$dftype spacefor"
! 	echo "make queuelen.$uucptype || exit 1"
  	echo "cp queuelen.$uucptype queuelen"
  	case "$hostname" in
--- 841,847 ----
  	echo 'cd ../conf'
  	echo "rm -f spacefor queuelen hostname setnewsids"
! 	echo "make sf.$dftype $ccc || exit 1"
  	echo "cp sf.$dftype spacefor"
! 	echo "make queuelen.$uucptype $ccc || exit 1"
  	echo "cp queuelen.$uucptype queuelen"
  	case "$hostname" in
***************
*** 856,864 ****
  		;;
  	esac
- 	dbm="DBM=$dbmopt"
  	echo "for dir in $pgmdirs"
  	echo "do"
  	echo "	cd ../\$dir"
! 	echo "	make all $dbm $ccc || exit 1"
  	echo "done"
  	echo ": done"
--- 857,864 ----
  		;;
  	esac
  	echo "for dir in $pgmdirs"
  	echo "do"
  	echo "	cd ../\$dir"
! 	echo "	make all $ccc || exit 1"
  	echo "done"
  	echo ": done"
***************
*** 913,917 ****
  	echo "cp sys.proto sys"
  	echo "cd ../expire"
! 	echo "make explists && cp explist.$archive explist"
  	echo "cd ../conf"
  	case "$archive" in
--- 913,917 ----
  	echo "cp sys.proto sys"
  	echo "cd ../expire"
! 	echo "make explists $ccc && cp explist.$archive explist"
  	echo "cd ../conf"
  	case "$archive" in
***************
*** 939,943 ****
  	echo "do"
  	echo "	cd ../\$dir"
! 	echo "	make bininstall BIN=$bin RBIN=$rbin $dbm || exit 1"
  	echo "done"
  	echo ": done"
--- 939,943 ----
  	echo "do"
  	echo "	cd ../\$dir"
! 	echo "	make bininstall BIN=$bin RBIN=$rbin $ccc || exit 1"
  	echo "done"
  	echo ": done"
***************
*** 975,979 ****
  	echo "do"
  	echo "	cd ../\$dir"
! 	echo "	make newsinstall BIN=$bin RBIN=$rbin || exit 1"
  	echo "done"
  	echo ": done"
--- 975,979 ----
  	echo "do"
  	echo "	cd ../\$dir"
! 	echo "	make newsinstall BIN=$bin RBIN=$rbin $ccc || exit 1"
  	echo "done"
  	echo ": done"

*** cnpatch/old/conf/dostatfs.c	Tue Aug 27 12:29:50 1991
--- conf/dostatfs.c	Thu Aug 22 15:07:13 1991
***************
*** 31,34 ****
--- 31,35 ----
  	void process();
  	extern long atol();
+ 	extern double atof();
  
  	progname = argv[0];
***************
*** 52,57 ****
  	}
  
! 	process(atol(argv[optind]), argv[optind+1], atol(argv[optind+2]),
! 							atol(argv[optind+3]));
  	exit(0);
  }
--- 53,58 ----
  	}
  
! 	process((long)atof(argv[optind]), argv[optind+1],
! 				atol(argv[optind+2]), atol(argv[optind+3]));
  	exit(0);
  }
***************
*** 64,68 ****
  char *s;
  {
! 	return(strspn(s, "0123456789") == strlen(s));
  }
  
--- 65,69 ----
  char *s;
  {
! 	return(strspn(s, "0123456789.eE+-") == strlen(s));
  }
  

*** cnpatch/old/conf/doultrix.c	Tue Aug 27 12:29:52 1991
--- conf/doultrix.c	Thu Aug 22 15:08:40 1991
***************
*** 27,30 ****
--- 27,31 ----
  	void process();
  	extern long atol();
+ 	extern double atof();
  
  	progname = argv[0];
***************
*** 48,53 ****
  	}
  
! 	process(atol(argv[optind]), argv[optind+1], atol(argv[optind+2]),
! 							atol(argv[optind+3]));
  	exit(0);
  }
--- 49,54 ----
  	}
  
! 	process((long)atof(argv[optind]), argv[optind+1],
! 				atol(argv[optind+2]), atol(argv[optind+3]));
  	exit(0);
  }
***************
*** 60,64 ****
  char *s;
  {
! 	return(strspn(s, "0123456789") == strlen(s));
  }
  
--- 61,65 ----
  char *s;
  {
! 	return(strspn(s, "0123456789.eE+-") == strlen(s));
  }
  

*** cnpatch/old/conf/doustat.c	Tue Aug 27 12:29:53 1991
--- conf/doustat.c	Thu Aug 22 15:08:09 1991
***************
*** 27,30 ****
--- 27,31 ----
  	void process();
  	extern long atol();
+ 	extern double atof();
  
  	progname = argv[0];
***************
*** 48,53 ****
  	}
  
! 	process(atol(argv[optind]), argv[optind+1], atol(argv[optind+2]),
! 							atol(argv[optind+3]));
  	exit(0);
  }
--- 49,54 ----
  	}
  
! 	process((long)atof(argv[optind]), argv[optind+1],
! 				atol(argv[optind+2]), atol(argv[optind+3]));
  	exit(0);
  }
***************
*** 60,64 ****
  char *s;
  {
! 	return(strspn(s, "0123456789") == strlen(s));
  }
  
--- 61,65 ----
  char *s;
  {
! 	return(strspn(s, "0123456789.eE+-") == strlen(s));
  }
  

*** cnpatch/old/man/news.5	Tue Aug 27 12:33:05 1991
--- man/news.5	Tue Aug 27 00:38:14 1991
***************
*** 29,33 ****
  .LP
  ..
! .TH NEWS 5 "14 Aug 1991"
  .BY "C News"
  .SH NAME
--- 29,33 ----
  .LP
  ..
! .TH NEWS 5 "26 Aug 1991"
  .BY "C News"
  .SH NAME
***************
*** 411,414 ****
--- 411,421 ----
  is executed by the shell with the article
  to be transmitted as the standard input.
+ The substring
+ `\c
+ .BR %s '
+ will be replaced at most once per command
+ with the name of a file containing the article,
+ relative to
+ .BR \*a .
  The default is
  `\c

*** cnpatch/old/misc/newsdaily	Tue Aug 27 12:33:29 1991
--- misc/newsdaily	Mon Aug 26 00:33:19 1991
***************
*** 102,105 ****
--- 102,106 ----
  unparsable
  header
+ space in
  Message-ID' log.o >$sus
  
***************
*** 147,151 ****
  	) >>$gripes
  fi
! egrep ' (no|empty) .* header|contains non-|Message-ID' $sus |
  	egrep ' - ' | awk '{print $4}' | sort | uniq -c | sort -nr |
  	sed 5q >$tmp
--- 148,152 ----
  	) >>$gripes
  fi
! egrep ' (no|empty) .* header|contains non-|Message-ID|space in' $sus |
  	egrep ' - ' | awk '{print $4}' | sort | uniq -c | sort -nr |
  	sed 5q >$tmp

*** cnpatch/old/notebook/problems	Tue Aug 27 12:33:44 1991
--- notebook/problems	Thu Aug 22 15:17:24 1991
***************
*** 1,3 ****
! .DA "6 Aug 1991"
  .TL
  Known Porting Problems With C News
--- 1,3 ----
! .DA "22 Aug 1991"
  .TL
  Known Porting Problems With C News
***************
*** 238,247 ****
  Floating Point
  .PP
! The only place in C News where floating point is used, as far as we know,
! is in the calculation of expiry dates in \fIexpire\fR.
! This is not a performance bottleneck, so slow floating-point arithmetic
  is not a problem.
! Complete absence of floating point would require minor modifications to
! \fIexpire\fR.
  .SH
  386 Optimizer vs. dbz
--- 238,247 ----
  Floating Point
  .PP
! The only places in C News where floating point is used, as far as we know,
! are in the calculation of expiry dates in \fIexpire\fR
! and the calculation of space in some of the variants of \fIspacefor\fR.
! These are not performance bottlenecks, so slow floating-point arithmetic
  is not a problem.
! Complete absence of floating point would require minor modifications.
  .SH
  386 Optimizer vs. dbz

*** cnpatch/old/relay/procart.c	Tue Aug 27 12:34:33 1991
--- relay/procart.c	Sun Aug 25 23:49:38 1991
***************
*** 4,7 ****
--- 4,8 ----
  
  #include <stdio.h>
+ #include <string.h>
  #include <sys/types.h>
  #include <sys/timeb.h>		/* solely for getindate call */
***************
*** 375,378 ****
--- 376,382 ----
  		prefuse(art);
  		(void) printf("ancient date `%s'\n", hdrs->h_date);
+ 	} else if (strchr(ngs, ' ') != NULL) {
+ 		prefuse(art);
+ 		(void) printf("space in groups `%s'\n", ngs);
  	} else if (hopcount(hdrs->h_path) > 0 &&
  	    !ngmatch(oursys()->sy_ngs, ngs)) {

*** cnpatch/old/relay/sh/inews	Tue Aug 27 12:35:08 1991
--- relay/sh/inews	Sun Aug 25 23:48:47 1991
***************
*** 159,165 ****
  # post with new headers and .signature
  (anne.jones <$inhdrs >/tmp/in$$realtmp	# bash headers
   mv /tmp/in$$realtmp $inhdrs
   cat $inhdrs		# | grep -v "^Lines:"	# uncomment if generating Lines:
-  status=$?
   case $status in
   0)	;;
--- 159,165 ----
  # post with new headers and .signature
  (anne.jones <$inhdrs >/tmp/in$$realtmp	# bash headers
+  status=$?
   mv /tmp/in$$realtmp $inhdrs
   cat $inhdrs		# | grep -v "^Lines:"	# uncomment if generating Lines:
   case $status in
   0)	;;


end of patch 27-Aug-1991
-- 
Any program that calls itself an OS     | Henry Spencer @ U of Toronto Zoology
(e.g. "MSDOS") isn't one. -Geoff Collyer|  h...@zoo.toronto.edu  utzoo!henry

			  SCO's Case Against IBM

November 12, 2003 - Jed Boal from Eyewitness News KSL 5 TV provides an
overview on SCO's case against IBM. Darl McBride, SCO's president and CEO,
talks about the lawsuit's impact and attacks. Jason Holt, student and 
Linux user, talks about the benefits of code availability and the merits 
of the SCO vs IBM lawsuit. See SCO vs IBM.

Note: The materials and information included in these Web pages are not to
be used for any other purpose other than private study, research, review
or criticism.