System: dist version 1.0
Patch #: 1
Priority: HIGH
Subject: Various fixes
From: lwall@jpl-devvax.jpl.nasa.gov (Larry Wall)

Description:
	Lots of little things weren't quite right about the pat system.

	Added three new metaconfig units.

Fix:	From rn, say "| patch -p0 -d DIR", where DIR is your dist source
			      ^^^
	directory.  Outside of rn, say "cd DIR; patch -p0 <thisarticle".
						      ^^^
	If you don't have the patch program, apply the following by hand,
	or get patch.

	*** NOTE the -p0 above--this patch will not work right without it ***

	If patch indicates that patchlevel is the wrong version, you may need
	to apply one or more previous patches, or the patch may already
	have been applied.  See the patchlevel.h file to find out what has or
	has not been applied.  In any event, don't continue with the patch.

	If you are missing previous patches they can be obtained from me:

	Larry Wall
	lwall@jpl-devvax.jpl.nasa.gov

	If you send a mail message of the following form it will greatly speed
	processing:

	Subject: Command
	@SH mailpatch PATH dist 1.0 LIST
		   ^ note the c

	where PATH is a return path FROM ME TO YOU in Internet notation, and
	LIST is the number of one or more patches you need, separated by spaces,
	commas, and/or hyphens.  Saying 35- says everything from 35 to the end.

	You can also get the patches via anonymous FTP from
	jpl-devvax.jpl.nasa.gov.

Index: patchlevel.h
Prereq: 0
1c1
< #define PATCHLEVEL 0
---
> #define PATCHLEVEL 1
 
Index: mcon/U/Cppsym.U
Prereq: 1.0
*** mcon/U/Cppsym.U.old	Thu Jan 21 23:22:10 1988
--- mcon/U/Cppsym.U	Thu Jan 21 23:22:11 1988
***************
*** 1,12 ****
! ?RCS:$Header: Cppsym.U,v 1.0 87/05/22 12:27:33 lwall Exp $
  ?X: 
  ?X: This unit produces a shell script called Cppsym, which can be used to
  ?X: determine whether any in a list of symbols is defined by the C preprocessor.
  ?X: It can determine the status of any symbol, though the symbols in attrlist
! ?X: are more easily determined.  If you want to add you attrlist you can do
  ?X: it in Myinit.U.
  ?X: 
  ?RCS:$Log:	Cppsym.U,v $
  ?RCS: Revision 1.0  87/05/22  12:27:33  lwall
  ?RCS: Initial revision
  ?RCS: 
--- 1,15 ----
! ?RCS:$Header: Cppsym.U,v 1.0.1.1 88/01/21 22:52:17 lwall Exp $
  ?X: 
  ?X: This unit produces a shell script called Cppsym, which can be used to
  ?X: determine whether any in a list of symbols is defined by the C preprocessor.
  ?X: It can determine the status of any symbol, though the symbols in attrlist
! ?X: are more easily determined.  If you want to add to attrlist you can do
  ?X: it in Myinit.U.
  ?X: 
  ?RCS:$Log:	Cppsym.U,v $
+ ?RCS: Revision 1.0.1.1  88/01/21  22:52:17  lwall
+ ?RCS: Now cpp takes from stdin to avoid problems on Suns.
+ ?RCS: 
  ?RCS: Revision 1.0  87/05/22  12:27:33  lwall
  ?RCS: Initial revision
  ?RCS: 
***************
*** 14,23 ****
  ?MAKE:	-pick add $@ %*
  ?INIT:attrlist="mc68000 sun gcos unix ibm gimpel interdata tss os mert pyr"
  ?INIT:attrlist="$attrlist vax pdp11 i8086 z8000 u3b2 u3b5 u3b20 u3b200"
! ?INIT:attrlist="$attrlist ns32000 ns16000 iAPX286"
  : get C preprocessor symbols handy
  echo " "
! echo $attrlist | $tr '[ ]' '[\012]' >Cppsym.know
  $cat <<EOSS >Cppsym
  $startsh
  case "\$1" in
--- 17,26 ----
  ?MAKE:	-pick add $@ %*
  ?INIT:attrlist="mc68000 sun gcos unix ibm gimpel interdata tss os mert pyr"
  ?INIT:attrlist="$attrlist vax pdp11 i8086 z8000 u3b2 u3b5 u3b20 u3b200"
! ?INIT:attrlist="$attrlist ns32000 ns16000 iAPX286 mc300 mc500 mc700 sparc"
  : get C preprocessor symbols handy
  echo " "
! echo $attrlist | $tr '[ - ]' '[\012-\012]' >Cppsym.know
  $cat <<EOSS >Cppsym
  $startsh
  case "\$1" in
***************
*** 44,56 ****
  case \$# in
  0) exit 1;;
  esac
! echo \$* | $tr '[ ]' '[\012]' | $sed -e 's/\(.*\)/\\
  #ifdef \1\\
  exit 0; _ _ _ _\1\\	 \1\\
  #endif\\
  /' >/tmp/Cppsym\$\$
  echo exit 1 >>/tmp/Cppsym\$\$
! $cpp /tmp/Cppsym\$\$ >/tmp/Cppsym2\$\$
  case "\$list" in
  true) awk '\$6 != "" {print substr(\$6,2,100)}' </tmp/Cppsym2\$\$ ;;
  *)
--- 47,59 ----
  case \$# in
  0) exit 1;;
  esac
! echo \$* | $tr '[ - ]' '[\012-\012]' | $sed -e 's/\(.*\)/\\
  #ifdef \1\\
  exit 0; _ _ _ _\1\\	 \1\\
  #endif\\
  /' >/tmp/Cppsym\$\$
  echo exit 1 >>/tmp/Cppsym\$\$
! $cpp $cppminus </tmp/Cppsym\$\$ >/tmp/Cppsym2\$\$
  case "\$list" in
  true) awk '\$6 != "" {print substr(\$6,2,100)}' </tmp/Cppsym2\$\$ ;;
  *)
 
Index: mcon/U/Finish.U
Prereq: 1.0
*** mcon/U/Finish.U.old	Thu Jan 21 23:22:17 1988
--- mcon/U/Finish.U	Thu Jan 21 23:22:18 1988
***************
*** 1,4 ****
! ?RCS:$Header: Finish.U,v 1.0 87/05/22 12:27:55 lwall Exp $
  ?X: 
  ?X: This unit is the very last one in the Configure script.  It runs all the
  ?X: SH files, which among other things produce config.h and (usually) Makefile.
--- 1,4 ----
! ?RCS:$Header: Finish.U,v 1.0.1.1 88/01/21 22:53:02 lwall Exp $
  ?X: 
  ?X: This unit is the very last one in the Configure script.  It runs all the
  ?X: SH files, which among other things produce config.h and (usually) Makefile.
***************
*** 5,10 ****
--- 5,13 ----
  ?X: It offers to do a make depend if the Makefile contains that target.
  ?X: 
  ?RCS:$Log:	Finish.U,v $
+ ?RCS: Revision 1.0.1.1  88/01/21  22:53:02  lwall
+ ?RCS: Now doesn't blow up if MANIFEST isn't there.
+ ?RCS: 
  ?RCS: Revision 1.0  87/05/22  12:27:55  lwall
  ?RCS: Initial revision
  ?RCS: 
***************
*** 26,32 ****
  
  echo " "
  echo "Doing variable substitutions on .SH files..."
! set `$grep '\.SH' <MANIFEST | awk '{print $1}'`
  for file in $*; do
      case "$file" in
      */*)
--- 29,42 ----
  
  echo " "
  echo "Doing variable substitutions on .SH files..."
! set x `$grep '\.SH' <MANIFEST | awk '{print $1}'`
! shift
! case $# in
! 0) set x *.SH; shift;;
! esac
! if test ! -f $1; then
!     shift
! fi
  for file in $*; do
      case "$file" in
      */*)
 
Index: MANIFEST
*** MANIFEST.old	Thu Jan 21 23:31:14 1988
--- MANIFEST	Thu Jan 21 23:00:32 1988
***************
*** 63,72 ****
--- 63,74 ----
  mcon/U/d_scorfl.U        4  Keep scoreboards by full name?
  mcon/U/d_sgndchr.U       4  Are chars signed?
  mcon/U/d_speedopt.U      4  Optimize speed vs memory?
+ mcon/U/d_stdstdio.U	 0  How standard is stdio?
  mcon/U/d_strctcpy.U      4  Do we do struct copies?
  mcon/U/d_termio.U        4  Termio vs sgtty.
  mcon/U/d_usendir.U       3  Use our own ndir routines?
  mcon/U/d_vfork.U         5  vfork() vs fork().
+ mcon/U/d_voidsig.U	 0  How is signal() declared?
  mcon/U/d_whoami.U        5  Is there a whoami.h file?
  mcon/U/defeditor.U       4  Find default editor.
  mcon/U/filexp.U          5  Finds location of filexp made by Filexp.U.
***************
*** 95,100 ****
--- 97,103 ----
  mcon/U/rootid.U          5  Root user id.
  mcon/U/spitshell.U       3  Shell comment stripper, maybe.
  mcon/U/startsh.U         5  How to guarantee sh startup.
+ mcon/U/stdchar.U	 0  Is char unsigned in stdio?
  mcon/U/voidflags.U       2  How supported is void?
  mcon/add                 5  Add a normal unit to Configure.
  mcon/add.Config_sh       5  Handle Config.sh magically.
 
Index: mcon/U/cpp.U
Prereq: 1.0
*** mcon/U/cpp.U.old	Thu Jan 21 23:22:25 1988
--- mcon/U/cpp.U	Thu Jan 21 23:22:26 1988
***************
*** 1,61 ****
! ?RCS:$Header: cpp.U,v 1.0 87/05/22 12:30:23 lwall Exp $
  ?RCS:$Log:	cpp.U,v $
  ?RCS: Revision 1.0  87/05/22  12:30:23  lwall
  ?RCS: Initial revision
  ?RCS: 
! ?MAKE:cpp: contains echo n c Myread Oldconfig
  ?MAKE:	-pick add $@ %*
  ?S:cpp:
  ?S:	This variable contains the command which will invoke the C
! ?S:	preprocessor on a given filename and put the output to stdout.
  ?S:	It is primarily used by other Configure units that ask about
  ?S:	preprocessor symbols.
  ?S:.
  : see how we invoke the C preprocessor
  echo " "
! echo "Checking to see how your C preprocessor is invoked..."
  cat <<'EOT' >testcpp.c
  #define ABC abc
  #define XYZ xyz
  ABC.XYZ
  EOT
! echo 'Maybe "cc -E" will work...'
! cc -E testcpp.c >testcpp.out 2>&1
  if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
      echo "Yup, it does."
!     cpp='cc -E'
  else
!     echo 'Nope...maybe "cc -P" will work...'
!     cc -P testcpp.c >testcpp.out 2>&1
      if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
! 	echo "Yup, that does."
! 	cpp='cc -P'
      else
! 	echo 'Nixed again...maybe "/lib/cpp" will work...'
! 	/lib/cpp testcpp.c >testcpp.out 2>&1
  	if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
! 	    echo "Hooray, it works!  I was beginning to wonder."
! 	    cpp='/lib/cpp'
  	else
! 	    echo 'Hmm...maybe you already told me...'
! 	    case "$cpp" in
! 	    '') ;;
! 	    *) $cpp testcpp.c >testcpp.out 2>&1;;
! 	    esac
  	    if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
! 		echo "Hooray, you did!  I was beginning to wonder."
  	    else
! 		dflt=blurfl
! 		$echo $n "Nope. I can't find a C preprocessor.  Name one: $c"
! 		rp='Name a C preprocessor:'
! 		. myread
! 		cpp="$ans"
! 		$cpp testcpp.c >testcpp.out 2>&1
  		if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
! 		    echo "OK, that will do."
  		else
! 		    echo "Sorry, I can't get that to work.  Go find one."
! 		    exit 1
  		fi
  	    fi
  	fi
--- 1,120 ----
! ?RCS:$Header: cpp.U,v 1.0.1.1 88/01/21 22:53:18 lwall Exp $
  ?RCS:$Log:	cpp.U,v $
+ ?RCS: Revision 1.0.1.1  88/01/21  22:53:18  lwall
+ ?RCS: Now assumes input to cpp will be via stdin.  cppminus is '-' if necessary.
+ ?RCS: 
  ?RCS: Revision 1.0  87/05/22  12:30:23  lwall
  ?RCS: Initial revision
  ?RCS: 
! ?MAKE:cpp cppminus: contains echo n c Myread Oldconfig
  ?MAKE:	-pick add $@ %*
  ?S:cpp:
  ?S:	This variable contains the command which will invoke the C
! ?S:	preprocessor on standard input and put the output to stdout.
  ?S:	It is primarily used by other Configure units that ask about
  ?S:	preprocessor symbols.
  ?S:.
+ ?S:cppminus:
+ ?S:	This variable contains the second part of the string which will invoke
+ ?S:	the C preprocessor on the standard input and produce to standard
+ ?S:	output.  This variable will have the value "-" if CPP needs a minus
+ ?S:	to specify standard input, otherwise the value is "".
+ ?S:.
+ ?C:CPP:
+ ?C:	This symbol contains the first part of the string which will invoke
+ ?C:	the C preprocessor on the standard input and produce to standard
+ ?C:	output.	 Typical value of "cc -E" or "/lib/cpp".
+ ?C:.
+ ?C:CPPMINUS:
+ ?C:	This symbol contains the second part of the string which will invoke
+ ?C:	the C preprocessor on the standard input and produce to standard
+ ?C:	output.  This symbol will have the value "-" if CPP needs a minus
+ ?C:	to specify standard input, otherwise the value is "".
+ ?C:.
+ ?H:?%1:#define CPP "$cpp"
+ ?H:?%1:#define CPPMINUS "$cppminus"
+ ?H:?%1:
  : see how we invoke the C preprocessor
  echo " "
! echo "Now, how can we feed standard input to your C preprocessor..."
  cat <<'EOT' >testcpp.c
  #define ABC abc
  #define XYZ xyz
  ABC.XYZ
  EOT
! echo 'Maybe "/lib/cpp" will work...'
! /lib/cpp <testcpp.c >testcpp.out 2>&1
  if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
      echo "Yup, it does."
!     cpp='/lib/cpp'
!     cppminus='';
  else
!     echo 'Nope, maybe "/lib/cpp -" will work...'
!     /lib/cpp - <testcpp.c >testcpp.out 2>&1
      if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
! 	echo "Yup, it does."
! 	cpp='/lib/cpp'
! 	cppminus='-';
      else
! 	echo 'No such luck...maybe "cc -E" will work...'
! 	cc -E <testcpp.c >testcpp.out 2>&1
  	if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
! 	    echo "It works!"
! 	    cpp='cc -E'
! 	    cppminus='';
  	else
! 	    echo 'Nixed again...maybe "cc -E -" will work...'
! 	    cc -E - <testcpp.c >testcpp.out 2>&1
  	    if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
! 		echo "Hooray, it works!  I was beginning to wonder."
! 		cpp='cc -E'
! 		cppminus='-';
  	    else
! 		echo 'Nope...maybe "cc -P" will work...'
! 		cc -P <testcpp.c >testcpp.out 2>&1
  		if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
! 		    echo "Yup, that does."
! 		    cpp='cc -P'
! 		    cppminus='';
  		else
! 		    echo 'Nope...maybe "cc -P -" will work...'
! 		    cc -P - <testcpp.c >testcpp.out 2>&1
! 		    if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
! 			echo "Yup, that does."
! 			cpp='cc -P'
! 			cppminus='-';
! 		    else
! 			echo 'Hmm...perhaps you already told me...'
! 			case "$cpp" in
! 			'') ;;
! 			*) $cpp $cppminus <testcpp.c >testcpp.out 2>&1;;
! 			esac
! 			if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
! 			    echo "Hooray, you did!  I was beginning to wonder."
! 			else
! 			    echo 'Uh-uh.  Time to get fancy...'
! 			    echo 'Trying (cat >/tmp/$$.c; cc -E /tmp/$$.c; rm /tmp/$$.c)'
! 			    cpp='(cat >/tmp/$$.c; cc -E /tmp/$$.c; rm /tmp/$$.c)'
! 			    cppminus='';
! 			    $cpp <testcpp.c >testcpp.out 2>&1
! 			    if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
! 				echo "Eureka!."
! 			    else
! 				dflt=blurfl
! 				$echo $n "No dice.  I can't find a C preprocessor.  Name one: $c"
! 				rp='Name a C preprocessor:'
! 				. myread
! 				cpp="$ans"
! 				$cpp <testcpp.c >testcpp.out 2>&1
! 				if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
! 				    echo "OK, that will do."
! 				else
! 				    echo "Sorry, I can't get that to work.  Go find one."
! 				    exit 1
! 				fi
! 			    fi
! 			fi
! 		    fi
  		fi
  	    fi
  	fi

*** /dev/null	Thu Jan 21 23:22:47 1988
--- mcon/U/d_stdstdio.U	Thu Jan 21 23:20:00 1988
***************
*** 0 ****
--- 1,38 ----
+ ?RCS:$Header: d_stdstdio.U,v 1.0 88/01/21 23:21:09 lwall Exp $
+ ?RCS:$Log:	d_stdstdio.U,v $
+ ?RCS: Revision 1.0  88/01/21  23:21:09  lwall
+ ?RCS: Initial revision
+ ?RCS: 
+ ?RCS: Revision 1.0  88/01/21  22:57:43  lwall
+ ?RCS: Initial revision
+ ?RCS: 
+ ?RCS: Revision 1.0  87/05/22  12:30:34  lwall
+ ?RCS: Initial revision
+ ?RCS: 
+ ?MAKE:d_stdstdio: contains
+ ?MAKE:	-pick add $@ %*
+ ?S:d_stdstdio:
+ ?S:	This variable conditionally defines STDSTDIO if this system
+ ?S:	has a FILE structure declaring _ptr and _cnt in stdio.h.
+ ?S:.
+ ?C:STDSTDIO:
+ ?C:	This symbol is defined if this system has a FILE structure declaring
+ ?C:	_ptr and _cnt in stdio.h.
+ ?C:.
+ ?H:?%1:#$d_stdstdio	STDSTDIO 	/**/
+ ?H:?%1:
+ : see if stdio is really std
+ echo " "
+ if $contains 'char.*_ptr;' /usr/include/stdio.h >/dev/null 2>&1 ; then
+     if $contains '_cnt;' /usr/include/stdio.h >/dev/null 2>&1 ; then
+ 	echo "Your stdio is pretty std."
+ 	d_stdstdio="$define"
+     else
+ 	echo "Your stdio isn't very std."
+ 	d_stdstdio="$undef"
+     fi
+ else
+     echo "Your stdio isn't very std."
+     d_stdstdio="$undef"
+ fi
+ 

*** /dev/null	Thu Jan 21 23:22:47 1988
--- mcon/U/d_voidsig.U	Thu Jan 21 23:19:53 1988
***************
*** 0 ****
--- 1,39 ----
+ ?RCS:$Header: d_voidsig.U,v 1.0 88/01/21 23:21:03 lwall Exp $
+ ?RCS:$Log:	d_voidsig.U,v $
+ ?RCS: Revision 1.0  88/01/21  23:21:03  lwall
+ ?RCS: Initial revision
+ ?RCS: 
+ ?RCS: Revision 1.1  88/01/21  23:11:07  lwall
+ ?RCS: Initial revision
+ ?RCS: 
+ ?RCS: Revision 1.0  88/01/21  22:57:40  lwall
+ ?RCS: Initial revision
+ ?RCS: 
+ ?RCS: Revision 1.0  87/05/22  12:30:34  lwall
+ ?RCS: Initial revision
+ ?RCS: 
+ ?MAKE:d_voidsig: contains
+ ?MAKE:	-pick add $@ %*
+ ?S:d_voidsig:
+ ?S:	This variable conditionally defines VOIDSIG if this system
+ ?S:	declares "void (*signal())()" in signal.h.  The old way was to
+ ?S:	declare it as "int (*signal())()".
+ ?S:.
+ ?C:VOIDSIG:
+ ?C:	This symbol is defined if this system declares "void (*signal())()" in
+ ?C:	signal.h.  The old way was to declare it as "int (*signal())()".  It
+ ?C:	is up to the package author to declare things correctly based on the
+ ?C:	symbol.
+ ?C:.
+ ?H:?%1:#$d_voidsig	VOIDSIG 	/**/
+ ?H:?%1:
+ : see if signal is declared as pointer to function returning int or void
+ echo " "
+ if $contains 'void.*signal' /usr/include/signal.h >/dev/null 2>&1 ; then
+     echo "You have void (*signal())() instead of int."
+     d_voidsig="$define"
+ else
+     echo "You have int (*signal())() instead of void."
+     d_voidsig="$undef"
+ fi
+ 
 
Index: mcon/U/libnm.U
Prereq: 1.0
*** mcon/U/libnm.U.old	Thu Jan 21 23:22:32 1988
--- mcon/U/libnm.U	Thu Jan 21 23:22:32 1988
***************
*** 1,5 ****
! ?RCS:$Header: libnm.U,v 1.0 87/05/22 12:34:20 lwall Exp $
  ?RCS:$Log:	libnm.U,v $
  ?RCS: Revision 1.0  87/05/22  12:34:20  lwall
  ?RCS: Initial revision
  ?RCS: 
--- 1,8 ----
! ?RCS:$Header: libnm.U,v 1.0.1.1 88/01/21 22:54:19 lwall Exp $
  ?RCS:$Log:	libnm.U,v $
+ ?RCS: Revision 1.0.1.1  88/01/21  22:54:19  lwall
+ ?RCS: Was looking for termcap library instead of nm.
+ ?RCS: 
  ?RCS: Revision 1.0  87/05/22  12:34:20  lwall
  ?RCS: Initial revision
  ?RCS: 
***************
*** 16,22 ****
      echo "New math library found."
      libnm='-lnm'
  else
!     ans=`loc libtermlib.a x $libpth`
      case "$ans" in
      x)
  	echo "No nm library found--the normal math library will have to do."
--- 19,25 ----
      echo "New math library found."
      libnm='-lnm'
  else
!     ans=`loc libnm.a x $libpth`
      case "$ans" in
      x)
  	echo "No nm library found--the normal math library will have to do."
 
Index: packinit.SH
*** packinit.SH.old	Thu Jan 21 23:07:14 1988
--- packinit.SH	Thu Jan 21 23:07:15 1988
***************
*** 325,330
  esac
  
  echo " "
  echo "Creating .package..."
  cat >.package <<EOSC
  : basic variables

--- 325,343 -----
  esac
  
  echo " "
+ case "$ftpdir" in
+ '') dflt='';;
+ *)  dflt="$ftpdir";;
+ esac
+ rp="FTP directory to copy patches to: [$dflt]"
+ echo $n "$rp $c"
+ . /tmp/myread
+ recipients="$ans"
+ case "$ftpdir" in
+ '') ftpdir="$dflt" ;;
+ esac
+ 
+ echo " "
  echo "Creating .package..."
  cat >.package <<EOSC
  : basic variables
***************
*** 338,343
  orgname='$orgname'
  newsgroups='$newsgroups'
  recipients='$recipients'
  
  : derivative variables--do not change
  revbranch="\$baserev.\$patchbranch"

--- 351,357 -----
  orgname='$orgname'
  newsgroups='$newsgroups'
  recipients='$recipients'
+ ftpdir='$ftpdir'
  
  : derivative variables--do not change
  revbranch="\$baserev.\$patchbranch"
 
Index: pat/pat.SH
*** pat/pat.SH.old	Thu Jan 21 23:22:48 1988
--- pat/pat.SH	Thu Jan 21 23:22:48 1988
***************
*** 34,39 ****
--- 34,49 ----
  0) echo pat [files]; exit;;
  esac
  
+ if test ! -f .package; then
+     if test -f ../.package -o -f ../../.package; then
+ 	echo "Run in top level directory only."
+     else
+ 	echo "No .package file!  Run packinit."
+     fi
+     exit 1
+ fi
+ . .package
+ 
  case "$1" in
  -a) set `awk '{print $1}' MANIFEST.new`;;
  esac
***************
*** 46,64 ****
      '') echo "Malformed patchlevel.h file."; exit 1;;
      esac
      
!     echo " "
!     $echo $n "Do you wish to post patch #$bnum to $newsgroups? [y] $c"
!     read ans
!     case "$ans" in
!     n*) ;;
!     *)  patpost $bnum ;;
      esac
!     echo " "
!     $echo $n "Do you wish to send patch #$bnum to $recipients? [y] $c"
!     read ans
!     case "$ans" in
!     n*) ;;
!     *)  patsend $recipients $bnum ;;
      esac
  fi
  !NO!SUBS!
--- 56,96 ----
      '') echo "Malformed patchlevel.h file."; exit 1;;
      esac
      
!     case "$newsgroups" in
!     '') ;;
!     *)
! 	echo " "
! 	$echo $n "Do you wish to post patch #$bnum to $newsgroups? [y] $c"
! 	read ans
! 	case "$ans" in
! 	n*) ;;
! 	*)  patpost $bnum ;;
! 	esac
!     ;;
      esac
!     case "$recipients" in
!     '') ;;
!     *)
! 	echo " "
! 	$echo $n "Do you wish to send patch #$bnum to $recipients? [y] $c"
! 	read ans
! 	case "$ans" in
! 	n*) ;;
! 	*)  patsend $recipients $bnum ;;
! 	esac
!     ;;
!     esac
!     case "$ftpdir" in
!     '') ;;
!     *)
! 	echo " "
! 	$echo $n "Do you wish to copy patch #$bnum to $ftpdir? [y] $c"
! 	read ans
! 	case "$ans" in
! 	n*) ;;
! 	*)  cp bugs/patch$bnum $ftpdir;;
! 	esac
!     ;;
      esac
  fi
  !NO!SUBS!
 
Index: pat/patcil.SH
*** pat/patcil.SH.old	Thu Jan 21 23:07:24 1988
--- pat/patcil.SH	Thu Jan 21 23:07:25 1988
***************
*** 69,76
  	-e q \
  	-e '}'`
      case "$revs" in
!     '') echo snark; exit 1;;
!     0)
  	case "$file" in
  	*.SH|Makefile*) rcs -i -c'# ' $files ;;
  	*.U) rcs -i -c'?RCS: ' $files ;;

--- 69,75 -----
  	-e q \
  	-e '}'`
      case "$revs" in
!     0|'')
  	case "$file" in
  	*.SH|Makefile*) rcs -i -c'# ' $files ;;
  	*.U) rcs -i -c'?RCS: ' $files ;;
 
Index: pat/patdiff.SH
*** pat/patdiff.SH.old	Thu Jan 21 23:07:38 1988
--- pat/patdiff.SH	Thu Jan 21 23:07:39 1988
***************
*** 135,141
  		    echo "Prereq: $lastpat"
  		fi
  		rm -f .sed
! 	    ) >>bugs/$fname.$bnum
  	    case "$mydiff" in
  	    '')
  		(rcsdiff -c -rlastpat -r$new $files | \

--- 135,141 -----
  		    echo "Prereq: $lastpat"
  		fi
  		rm -f .sed
! 	    ) >bugs/$fname.$bnum
  	    case "$mydiff" in
  	    '')
  		(rcsdiff -c -rlastpat -r$new $files | \
 
Index: pat/patmake.SH
*** pat/patmake.SH.old	Thu Jan 21 23:07:32 1988
--- pat/patmake.SH	Thu Jan 21 23:07:32 1988
***************
*** 96,103
  	@SH mailpatch PATH $package $baserev LIST
  		   ^ note the c
  
! 	where PATH is a return path FROM ME TO YOU in bang notation, and LIST
! 	is the number of one or more patches you need, separated by spaces,
  	commas, and/or hyphens.  Saying 35- says everything from 35 to the end.
  EOT
  case "$ftpsite" in

--- 96,103 -----
  	@SH mailpatch PATH $package $baserev LIST
  		   ^ note the c
  
! 	where PATH is a return path FROM ME TO YOU in Internet notation, and
! 	LIST is the number of one or more patches you need, separated by spaces,
  	commas, and/or hyphens.  Saying 35- says everything from 35 to the end.
  EOT
  case "$ftpsite" in
***************
*** 104,110
  '') ;;
  *)
      cat >>patch$bnum <<EOT
! 	You can also get them by anonymous FTP from $ftpsite.
  EOT
      ;;
  esac

--- 104,112 -----
  '') ;;
  *)
      cat >>patch$bnum <<EOT
! 
! 	You can also get the patches via anonymous FTP from
! 	$ftpsite.
  EOT
      ;;
  esac

*** /dev/null	Thu Jan 21 23:22:47 1988
--- mcon/U/stdchar.U	Thu Jan 21 23:20:06 1988
***************
*** 0 ****
--- 1,33 ----
+ ?RCS:$Header: stdchar.U,v 1.0 88/01/21 23:21:16 lwall Exp $
+ ?RCS:$Log:	stdchar.U,v $
+ ?RCS: Revision 1.0  88/01/21  23:21:16  lwall
+ ?RCS: Initial revision
+ ?RCS: 
+ ?RCS: Revision 1.0  88/01/21  22:57:47  lwall
+ ?RCS: Initial revision
+ ?RCS: 
+ ?RCS: Revision 1.0  87/05/22  12:30:34  lwall
+ ?RCS: Initial revision
+ ?RCS: 
+ ?MAKE:stdchar: contains
+ ?MAKE:	-pick add $@ %*
+ ?S:stdchar:
+ ?S:	This variable conditionally defines STDCHAR to be the type of char
+ ?S:	used in stdio.h.  It has the values "unsigned char" or "char".
+ ?S:.
+ ?C:STDCHAR:
+ ?C:	This symbol is defined to be the type of char used in stdio.h.
+ ?C:	It has the values "unsigned char" or "char".
+ ?C:.
+ ?H:?%1:#define STDCHAR $stdchar	/**/
+ ?H:?%1:
+ : see what type of char stdio uses.
+ echo " "
+ if $contains 'unsigned.*char.*_ptr;' /usr/include/stdio.h >/dev/null 2>&1 ; then
+     echo "Your stdio uses unsigned chars."
+     stdchar="unsigned char"
+ else
+     echo "Your stdio uses signed chars."
+     stdchar="char"
+ fi
+ 
