v13i011: Perl patches 1 to 5, Patch1-Patch5

Rich Salz rsalz at bbn.com
Thu Feb 4 04:57:43 AEST 1988


Submitted-by: Rich $alz <rsalz at bbn.com>
Posting-number: Volume 13, Issue 11
Archive-name: perl/patches1-5

This is the first of two files containing the first 10 official patches
to perl.  They are copies of the articles as I received them on my
machine.

When you unpack this you will get five separate patch files, each of
which will have to be fed through patch.  Make sure to install all
10 patches.
	/r$

#! /bin/sh

PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'patch1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'patch1'\"
else
echo shar: Extracting \"'patch1'\" \(20256 characters\)
sed "s/^X//" >'patch1' <<'END_OF_FILE'
XFrom bbn.com!bbn!uwmcsd1!ig!agate!pasteur!ames!elroy!devvax!lroot Fri Jan 22 10:05:19 EST 1988
XArticle 659 of comp.sources.bugs:
XPath: bbn.com!bbn!uwmcsd1!ig!agate!pasteur!ames!elroy!devvax!lroot
X>From: lroot at devvax.JPL.NASA.GOV (The Superuser)
XNewsgroups: comp.sources.bugs
XSubject: perl 1.0 patch #1
XSummary: This is an official patch for perl 1.0.  Please apply it.
XMessage-ID: <1093 at devvax.JPL.NASA.GOV>
XDate: 22 Jan 88 06:24:35 GMT
XOrganization: Jet Propulsion Laboratory, Pasadena, CA
XLines: 715
X
XSystem: perl version 1.0
XPatch #: 1
XPriority: MEDIUM
XSubject: Portability bugs and one possible SIGSEGV
X>From: Dan Faigin, Doug Landauer
X
XDescription:
X	On some systems the Configure script and C compilations get
X	warning messages that may scare some folks unnecessarily.
X
X	Also, use of the "redo" command if debugging is compiled in
X	overflows a stack on which the trace context is kept.
X
XFix:	From rn, say "| patch -d DIR", where DIR is your perl source
X	directory.  Outside of rn, say "cd DIR; patch <thisarticle".
X	If you don't have the patch program, apply the following by hand,
X	or get patch.
X
X	If patch indicates that patchlevel is the wrong version, the patch
X	may already have been applied.  See the patchlevel.h file to find out
X	what has or has not been applied.
X
X	If you are missing previous patches they can be obtained from me:
X
X	Larry Wall
X	lwall at jpl-devvax.jpl.nasa.gov
X
X	If you send a mail message of the following form it will greatly speed
X	processing:
X
X	Subject: Command
X	@SH mailpatch PATH perl 1.0 LIST
X		   ^ note the c
X
X	where PATH is a return path FROM ME TO YOU in Internet notation, and
X	LIST is the number of one or more patches you need, separated by spaces,
X	commas, and/or hyphens.  Saying 35- says everything from 35 to the end.
X
X	You can also get the patches via anonymous FTP from my site, which is
X	jpl-devvax.jpl.nasa.gov (128.149.8.13).
X
XIndex: patchlevel.h
XPrereq: 0
X1c1
X< #define PATCHLEVEL 0
X---
X> #define PATCHLEVEL 1
X 
XIndex: Configure
XPrereq: 1.0
X*** Configure.old	Thu Jan 21 22:20:21 1988
X*** Configure	Thu Jan 21 22:20:22 1988
X***************
X*** 8,14 ****
X  # and edit it to reflect your system.  Some packages may include samples
X  # of config.h for certain machines, so you might look for one of those.)
X  #
X! # $Header: Configure,v 1.0 87/12/18 15:05:56 root Exp $
X  #
X  # Yes, you may rip this off to use in other distribution packages.
X  # (Note: this Configure script was generated automatically.  Rather than
X--- 8,14 ----
X  # and edit it to reflect your system.  Some packages may include samples
X  # of config.h for certain machines, so you might look for one of those.)
X  #
X! # $Header: Configure,v 1.0.1.1 88/01/21 21:21:47 root Exp $
X  #
X  # Yes, you may rip this off to use in other distribution packages.
X  # (Note: this Configure script was generated automatically.  Rather than
X***************
X*** 67,76 ****
X--- 67,79 ----
X  cc=''
X  contains=''
X  cpp=''
X+ cppminus=''
X  d_charsprf=''
X  d_index=''
X+ d_stdstdio=''
X  d_strctcpy=''
X  d_vfork=''
X+ d_voidsig=''
X  libc=''
X  libnm=''
X  mansrc=''
X***************
X*** 90,95 ****
X--- 93,99 ----
X  shsharp=''
X  sharpbang=''
X  startsh=''
X+ stdchar=''
X  voidflags=''
X  defvoidused=''
X  CONFIG=''
X***************
X*** 110,116 ****
X  trap 'echo " "; rm -f $rmlist; exit 1' 1 2 3
X  attrlist="mc68000 sun gcos unix ibm gimpel interdata tss os mert pyr"
X  attrlist="$attrlist vax pdp11 i8086 z8000 u3b2 u3b5 u3b20 u3b200"
X! attrlist="$attrlist ns32000 ns16000 iAPX286"
X  pth="/usr/ucb /bin /usr/bin /usr/local /usr/local/bin /usr/lbin /etc /usr/lib"
X  defvoidused=7
X  
X--- 114,120 ----
X  trap 'echo " "; rm -f $rmlist; exit 1' 1 2 3
X  attrlist="mc68000 sun gcos unix ibm gimpel interdata tss os mert pyr"
X  attrlist="$attrlist vax pdp11 i8086 z8000 u3b2 u3b5 u3b20 u3b200"
X! attrlist="$attrlist ns32000 ns16000 iAPX286 mc300 mc500 mc700 sparc"
X  pth="/usr/ucb /bin /usr/bin /usr/local /usr/local/bin /usr/lbin /etc /usr/lib"
X  defvoidused=7
X  
X***************
X*** 200,207 ****
X  
X  Much effort has been expended to ensure that this shell script will run
X  on any Unix system.  If despite that it blows up on you, your best bet is
X! to edit Configure and run it again. Also, let me (lwall at sdcrdcf.UUCP) know
X! how I blew it.  If you can't run Configure for some reason, you'll have
X  to generate a config.sh file by hand.
X  
X  This installation script affects things in two ways: 1) it may do direct
X--- 204,211 ----
X  
X  Much effort has been expended to ensure that this shell script will run
X  on any Unix system.  If despite that it blows up on you, your best bet is
X! to edit Configure and run it again. Also, let me (lwall at jpl-devvax.jpl.nasa.gov)
X! know how I blew it.  If you can't run Configure for some reason, you'll have
X  to generate a config.sh file by hand.
X  
X  This installation script affects things in two ways: 1) it may do direct
X***************
X*** 546,551 ****
X--- 550,643 ----
X  fi
X  rm -f try today
X  
X+ : see how we invoke the C preprocessor
X+ echo " "
X+ echo "Now, how can we feed standard input to your C preprocessor..."
X+ cat <<'EOT' >testcpp.c
X+ #define ABC abc
X+ #define XYZ xyz
X+ ABC.XYZ
X+ EOT
X+ echo 'Maybe "/lib/cpp" will work...'
X+ /lib/cpp <testcpp.c >testcpp.out 2>&1
X+ if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
X+     echo "Yup, it does."
X+     cpp='/lib/cpp'
X+     cppminus='';
X+ else
X+     echo 'Nope, maybe "/lib/cpp -" will work...'
X+     /lib/cpp - <testcpp.c >testcpp.out 2>&1
X+     if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
X+ 	echo "Yup, it does."
X+ 	cpp='/lib/cpp'
X+ 	cppminus='-';
X+     else
X+ 	echo 'No such luck...maybe "cc -E" will work...'
X+ 	cc -E <testcpp.c >testcpp.out 2>&1
X+ 	if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
X+ 	    echo "It works!"
X+ 	    cpp='cc -E'
X+ 	    cppminus='';
X+ 	else
X+ 	    echo 'Nixed again...maybe "cc -E -" will work...'
X+ 	    cc -E - <testcpp.c >testcpp.out 2>&1
X+ 	    if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
X+ 		echo "Hooray, it works!  I was beginning to wonder."
X+ 		cpp='cc -E'
X+ 		cppminus='-';
X+ 	    else
X+ 		echo 'Nope...maybe "cc -P" will work...'
X+ 		cc -P <testcpp.c >testcpp.out 2>&1
X+ 		if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
X+ 		    echo "Yup, that does."
X+ 		    cpp='cc -P'
X+ 		    cppminus='';
X+ 		else
X+ 		    echo 'Nope...maybe "cc -P -" will work...'
X+ 		    cc -P - <testcpp.c >testcpp.out 2>&1
X+ 		    if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
X+ 			echo "Yup, that does."
X+ 			cpp='cc -P'
X+ 			cppminus='-';
X+ 		    else
X+ 			echo 'Hmm...perhaps you already told me...'
X+ 			case "$cpp" in
X+ 			'') ;;
X+ 			*) $cpp $cppminus <testcpp.c >testcpp.out 2>&1;;
X+ 			esac
X+ 			if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
X+ 			    echo "Hooray, you did!  I was beginning to wonder."
X+ 			else
X+ 			    echo 'Uh-uh.  Time to get fancy...'
X+ 			    echo 'Trying (cat >/tmp/$$.c; cc -E /tmp/$$.c; rm /tmp/$$.c)'
X+ 			    cpp='(cat >/tmp/$$.c; cc -E /tmp/$$.c; rm /tmp/$$.c)'
X+ 			    cppminus='';
X+ 			    $cpp <testcpp.c >testcpp.out 2>&1
X+ 			    if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
X+ 				echo "Eureka!."
X+ 			    else
X+ 				dflt=blurfl
X+ 				$echo $n "No dice.  I can't find a C preprocessor.  Name one: $c"
X+ 				rp='Name a C preprocessor:'
X+ 				. myread
X+ 				cpp="$ans"
X+ 				$cpp <testcpp.c >testcpp.out 2>&1
X+ 				if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
X+ 				    echo "OK, that will do."
X+ 				else
X+ 				    echo "Sorry, I can't get that to work.  Go find one."
X+ 				    exit 1
X+ 				fi
X+ 			    fi
X+ 			fi
X+ 		    fi
X+ 		fi
X+ 	    fi
X+ 	fi
X+     fi
X+ fi
X+ rm -f testcpp.c testcpp.out
X+ 
X  : see if sprintf is declared as int or pointer to char
X  echo " "
X  if $contains 'char.*sprintf' /usr/include/stdio.h >/dev/null 2>&1 ; then
X***************
X*** 579,584 ****
X--- 671,691 ----
X      esac
X  fi
X  
X+ : see if stdio is really std
X+ echo " "
X+ if $contains 'char.*_ptr;' /usr/include/stdio.h >/dev/null 2>&1 ; then
X+     if $contains '_cnt;' /usr/include/stdio.h >/dev/null 2>&1 ; then
X+ 	echo "Your stdio is pretty std."
X+ 	d_stdstdio="$define"
X+     else
X+ 	echo "Your stdio isn't very std."
X+ 	d_stdstdio="$undef"
X+     fi
X+ else
X+     echo "Your stdio isn't very std."
X+     d_stdstdio="$undef"
X+ fi
X+ 
X  : check for structure copying
X  echo " "
X  echo "Checking to see if your C compiler can copy structs..."
X***************
X*** 611,616 ****
X--- 718,733 ----
X      d_vfork="$define"
X  fi
X  
X+ : see if signal is declared as pointer to function returning int or void
X+ echo " "
X+ if $contains 'void.*signal' /usr/include/signal.h >/dev/null 2>&1 ; then
X+     echo "You have void (*signal())() instead of int."
X+     d_voidsig="$define"
X+ else
X+     echo "You have int (*signal())() instead of void."
X+     d_voidsig="$undef"
X+ fi
X+ 
X  : check for void type
X  echo " "
X  $cat <<EOM
X***************
X*** 681,686 ****
X--- 798,813 ----
X  voidflags="$ans"
X  $rm -f try.* .out
X  
X+ : see what type of char stdio uses.
X+ echo " "
X+ if $contains 'unsigned.*char.*_ptr;' /usr/include/stdio.h >/dev/null 2>&1 ; then
X+     echo "Your stdio uses unsigned chars."
X+     stdchar="unsigned char"
X+ else
X+     echo "Your stdio uses signed chars."
X+     stdchar="char"
X+ fi
X+ 
X  : preserve RCS keywords in files with variable substitution, grrr
X  Log='$Log'
X  Header='$Header'
X***************
X*** 793,853 ****
X      ;;
X  esac
X  
X- : see how we invoke the C preprocessor
X- echo " "
X- echo "Checking to see how your C preprocessor is invoked..."
X- cat <<'EOT' >testcpp.c
X- #define ABC abc
X- #define XYZ xyz
X- ABC.XYZ
X- EOT
X- echo 'Maybe "cc -E" will work...'
X- cc -E testcpp.c >testcpp.out 2>&1
X- if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
X-     echo "Yup, it does."
X-     cpp='cc -E'
X- else
X-     echo 'Nope...maybe "cc -P" will work...'
X-     cc -P testcpp.c >testcpp.out 2>&1
X-     if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
X- 	echo "Yup, that does."
X- 	cpp='cc -P'
X-     else
X- 	echo 'Nixed again...maybe "/lib/cpp" will work...'
X- 	/lib/cpp testcpp.c >testcpp.out 2>&1
X- 	if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
X- 	    echo "Hooray, it works!  I was beginning to wonder."
X- 	    cpp='/lib/cpp'
X- 	else
X- 	    echo 'Hmm...maybe you already told me...'
X- 	    case "$cpp" in
X- 	    '') ;;
X- 	    *) $cpp testcpp.c >testcpp.out 2>&1;;
X- 	    esac
X- 	    if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
X- 		echo "Hooray, you did!  I was beginning to wonder."
X- 	    else
X- 		dflt=blurfl
X- 		$echo $n "Nope. I can't find a C preprocessor.  Name one: $c"
X- 		rp='Name a C preprocessor:'
X- 		. myread
X- 		cpp="$ans"
X- 		$cpp testcpp.c >testcpp.out 2>&1
X- 		if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
X- 		    echo "OK, that will do."
X- 		else
X- 		    echo "Sorry, I can't get that to work.  Go find one."
X- 		    exit 1
X- 		fi
X- 	    fi
X- 	fi
X-     fi
X- fi
X- rm -f testcpp.c testcpp.out
X- 
X  : get C preprocessor symbols handy
X  echo " "
X! echo $attrlist | $tr '[ ]' '[\012]' >Cppsym.know
X  $cat <<EOSS >Cppsym
X  $startsh
X  case "\$1" in
X--- 920,928 ----
X      ;;
X  esac
X  
X  : get C preprocessor symbols handy
X  echo " "
X! echo $attrlist | $tr '[ - ]' '[\012-\012]' >Cppsym.know
X  $cat <<EOSS >Cppsym
X  $startsh
X  case "\$1" in
X***************
X*** 874,886 ****
X  case \$# in
X  0) exit 1;;
X  esac
X! echo \$* | $tr '[ ]' '[\012]' | $sed -e 's/\(.*\)/\\
X  #ifdef \1\\
X  exit 0; _ _ _ _\1\\	 \1\\
X  #endif\\
X  /' >/tmp/Cppsym\$\$
X  echo exit 1 >>/tmp/Cppsym\$\$
X! $cpp /tmp/Cppsym\$\$ >/tmp/Cppsym2\$\$
X  case "\$list" in
X  true) awk '\$6 != "" {print substr(\$6,2,100)}' </tmp/Cppsym2\$\$ ;;
X  *)
X--- 949,961 ----
X  case \$# in
X  0) exit 1;;
X  esac
X! echo \$* | $tr '[ - ]' '[\012-\012]' | $sed -e 's/\(.*\)/\\
X  #ifdef \1\\
X  exit 0; _ _ _ _\1\\	 \1\\
X  #endif\\
X  /' >/tmp/Cppsym\$\$
X  echo exit 1 >>/tmp/Cppsym\$\$
X! $cpp $cppminus </tmp/Cppsym\$\$ >/tmp/Cppsym2\$\$
X  case "\$list" in
X  true) awk '\$6 != "" {print substr(\$6,2,100)}' </tmp/Cppsym2\$\$ ;;
X  *)
X***************
X*** 1123,1129 ****
X      echo "New math library found."
X      libnm='-lnm'
X  else
X!     ans=`loc libtermlib.a x $libpth`
X      case "$ans" in
X      x)
X  	echo "No nm library found--the normal math library will have to do."
X--- 1198,1204 ----
X      echo "New math library found."
X      libnm='-lnm'
X  else
X!     ans=`loc libnm.a x $libpth`
X      case "$ans" in
X      x)
X  	echo "No nm library found--the normal math library will have to do."
X***************
X*** 1184,1193 ****
X--- 1259,1271 ----
X  cc='$cc'
X  contains='$contains'
X  cpp='$cpp'
X+ cppminus='$cppminus'
X  d_charsprf='$d_charsprf'
X  d_index='$d_index'
X+ d_stdstdio='$d_stdstdio'
X  d_strctcpy='$d_strctcpy'
X  d_vfork='$d_vfork'
X+ d_voidsig='$d_voidsig'
X  libc='$libc'
X  libnm='$libnm'
X  mansrc='$mansrc'
X***************
X*** 1207,1212 ****
X--- 1285,1291 ----
X  shsharp='$shsharp'
X  sharpbang='$sharpbang'
X  startsh='$startsh'
X+ stdchar='$stdchar'
X  voidflags='$voidflags'
X  defvoidused='$defvoidused'
X  CONFIG=true
X***************
X*** 1228,1234 ****
X  
X  echo " "
X  echo "Doing variable substitutions on .SH files..."
X! set `$grep '\.SH' <MANIFEST | awk '{print $1}'`
X  for file in $*; do
X      case "$file" in
X      */*)
X--- 1307,1320 ----
X  
X  echo " "
X  echo "Doing variable substitutions on .SH files..."
X! set x `$grep '\.SH' <MANIFEST | awk '{print $1}'`
X! shift
X! case $# in
X! 0) set x *.SH; shift;;
X! esac
X! if test ! -f $1; then
X!     shift
X! fi
X  for file in $*; do
X      case "$file" in
X      */*)
X 
XIndex: arg.c
XPrereq: 1.0
X*** arg.c.old	Thu Jan 21 22:20:55 1988
X*** arg.c	Thu Jan 21 22:20:56 1988
X***************
X*** 1,6 ****
X! /* $Header: arg.c,v 1.0 87/12/18 13:04:33 root Exp $
X   *
X   * $Log:	arg.c,v $
X   * Revision 1.0  87/12/18  13:04:33  root
X   * Initial revision
X   * 
X--- 1,9 ----
X! /* $Header: arg.c,v 1.0.1.1 88/01/21 21:27:10 root Exp $
X   *
X   * $Log:	arg.c,v $
X+  * Revision 1.0.1.1  88/01/21  21:27:10  root
X+  * Now defines signal return values correctly using VOIDSIG.
X+  * 
X   * Revision 1.0  87/12/18  13:04:33  root
X   * Initial revision
X   * 
X***************
X*** 1173,1180 ****
X--- 1176,1188 ----
X      opargs[O_REPEAT] =		A(1,1,0);
X  }
X  
X+ #ifdef VOIDSIG
X+ static void (*ihand)();
X+ static void (*qhand)();
X+ #else
X  static int (*ihand)();
X  static int (*qhand)();
X+ #endif
X  
X  STR *
X  eval(arg,retary)
X 
XIndex: cmd.c
XPrereq: 1.0
X*** cmd.c.old	Thu Jan 21 22:20:30 1988
X*** cmd.c	Thu Jan 21 22:20:31 1988
X***************
X*** 1,6 ****
X! /* $Header: cmd.c,v 1.0 87/12/18 13:04:51 root Exp $
X   *
X   * $Log:	cmd.c,v $
X   * Revision 1.0  87/12/18  13:04:51  root
X   * Initial revision
X   * 
X--- 1,9 ----
X! /* $Header: cmd.c,v 1.0.1.1 88/01/21 21:24:16 root Exp $
X   *
X   * $Log:	cmd.c,v $
X+  * Revision 1.0.1.1  88/01/21  21:24:16  root
X+  * The redo cmd got a segmentation fault because trace context stack overflowed.
X+  * 
X   * Revision 1.0  87/12/18  13:04:51  root
X   * Initial revision
X   * 
X***************
X*** 383,388 ****
X--- 386,394 ----
X  	case O_NEXT:
X  	    goto next_iter;
X  	case O_REDO:
X+ #ifdef DEBUGGING
X+ 	    dlevel = olddlevel;
X+ #endif
X  	    goto doit;
X  	}
X  	oldspat = curspat;
X 
XIndex: config.h.SH
X*** config.h.SH.old	Thu Jan 21 22:20:49 1988
X*** config.h.SH	Thu Jan 21 22:20:49 1988
X***************
X*** 37,42 ****
X--- 37,56 ----
X  #$d_eunice	EUNICE		/**/
X  #$d_eunice	VMS		/**/
X  
X+ /* CPP:
X+  *	This symbol contains the first part of the string which will invoke
X+  *	the C preprocessor on the standard input and produce to standard
X+  *	output.	 Typical value of "cc -E" or "/lib/cpp".
X+  */
X+ /* CPPMINUS:
X+  *	This symbol contains the second part of the string which will invoke
X+  *	the C preprocessor on the standard input and produce to standard
X+  *	output.  This symbol will have the value "-" if CPP needs a minus
X+  *	to specify standard input, otherwise the value is "".
X+  */
X+ #define CPP "$cpp"
X+ #define CPPMINUS "$cppminus"
X+ 
X  /* CHARSPRINTF:
X   *	This symbol is defined if this system declares "char *sprintf()" in
X   *	stdio.h.  The trend seems to be to declare it as "int sprintf()".  It
X***************
X*** 56,61 ****
X--- 70,81 ----
X  #$d_index	index strchr	/* cultural */
X  #$d_index	rindex strrchr	/*  differences? */
X  
X+ /* STDSTDIO:
X+  *	This symbol is defined if this system has a FILE structure declaring
X+  *	_ptr and _cnt in stdio.h.
X+  */
X+ #$d_stdstdio	STDSTDIO 	/**/
X+ 
X  /* STRUCTCOPY:
X   *	This symbol, if defined, indicates that this C compiler knows how
X   *	to copy structures.  If undefined, you'll need to use a block copy
X***************
X*** 68,73 ****
X--- 88,107 ----
X   *	vfork() routine isn't supported here.
X   */
X  #$d_vfork	vfork fork	/**/
X+ 
X+ /* VOIDSIG:
X+  *	This symbol is defined if this system declares "void (*signal())()" in
X+  *	signal.h.  The old way was to declare it as "int (*signal())()".  It
X+  *	is up to the package author to declare things correctly based on the
X+  *	symbol.
X+  */
X+ #$d_voidsig	VOIDSIG 	/**/
X+ 
X+ /* STDCHAR:
X+  *	This symbol is defined to be the type of char used in stdio.h.
X+  *	It has the values "unsigned char" or "char".
X+  */
X+ #define STDCHAR $stdchar	/**/
X  
X  /* VOIDFLAGS:
X   *	This symbol indicates how much support of the void type is given by this
X 
XIndex: perl.h
XPrereq: 1.0
X*** perl.h.old	Thu Jan 21 22:21:11 1988
X*** perl.h	Thu Jan 21 22:21:12 1988
X***************
X*** 1,6 ****
X! /* $Header: perl.h,v 1.0 87/12/18 13:05:38 root Exp $
X   *
X   * $Log:	perl.h,v $
X   * Revision 1.0  87/12/18  13:05:38  root
X   * Initial revision
X   * 
X--- 1,9 ----
X! /* $Header: perl.h,v 1.0.1.1 88/01/21 21:29:23 root Exp $
X   *
X   * $Log:	perl.h,v $
X+  * Revision 1.0.1.1  88/01/21  21:29:23  root
X+  * No longer defines STDSTDIO--gets it from config.h now.
X+  * 
X   * Revision 1.0  87/12/18  13:05:38  root
X   * Initial revision
X   * 
X***************
X*** 7,13 ****
X   */
X  
X  #define DEBUGGING
X- #define STDSTDIO	/* eventually should be in config.h */
X  
X  #define VOIDUSED 1
X  #include "config.h"
X--- 10,15 ----
X 
XIndex: perly.c
XPrereq: 1.0
X*** perly.c.old	Thu Jan 21 22:20:38 1988
X*** perly.c	Thu Jan 21 22:20:40 1988
X***************
X*** 1,6 ****
X! char rcsid[] = "$Header: perly.c,v 1.0 87/12/18 15:53:31 root Exp $";
X  /*
X   * $Log:	perly.c,v $
X   * Revision 1.0  87/12/18  15:53:31  root
X   * Initial revision
X   * 
X--- 1,9 ----
X! char rcsid[] = "$Header: perly.c,v 1.0.1.1 88/01/21 21:25:57 root Exp $";
X  /*
X   * $Log:	perly.c,v $
X+  * Revision 1.0.1.1  88/01/21  21:25:57  root
X+  * Now uses CPP and CPPMINUS symbols from config.h.
X+  * 
X   * Revision 1.0  87/12/18  15:53:31  root
X   * Initial revision
X   * 
X***************
X*** 118,125 ****
X   -e '/^#[ 	]*else/b' \
X   -e '/^#[ 	]*endif/b' \
X   -e 's/^#.*//' \
X!  %s | /lib/cpp -C %s-",
X! 	  argv[0], str_get(str));
X  	rsfp = popen(buf,"r");
X      }
X      else if (!*argv[0])
X--- 121,128 ----
X   -e '/^#[ 	]*else/b' \
X   -e '/^#[ 	]*endif/b' \
X   -e 's/^#.*//' \
X!  %s | %s -C %s%s",
X! 	  argv[0], CPP, str_get(str), CPPMINUS);
X  	rsfp = popen(buf,"r");
X      }
X      else if (!*argv[0])
X 
XIndex: str.c
XPrereq: 1.0
X*** str.c.old	Thu Jan 21 22:21:04 1988
X*** str.c	Thu Jan 21 22:21:04 1988
X***************
X*** 1,6 ****
X! /* $Header: str.c,v 1.0 87/12/18 13:06:22 root Exp $
X   *
X   * $Log:	str.c,v $
X   * Revision 1.0  87/12/18  13:06:22  root
X   * Initial revision
X   * 
X--- 1,9 ----
X! /* $Header: str.c,v 1.0.1.1 88/01/21 21:28:39 root Exp $
X   *
X   * $Log:	str.c,v $
X+  * Revision 1.0.1.1  88/01/21  21:28:39  root
X+  * Suppressed warning messages on signed vs unsigned chars in str_gets().
X+  * 
X   * Revision 1.0  87/12/18  13:06:22  root
X   * Initial revision
X   * 
X***************
X*** 318,325 ****
X  
X      register char *bp;		/* we're going to steal some values */
X      register int cnt;		/*  from the stdio struct and put EVERYTHING */
X!     register char *ptr;		/*   in the innermost loop into registers */
X!     register char newline = record_separator;	/* (assuming >= 6 registers) */
X      int i;
X      int bpx;
X      int obpx;
X--- 321,328 ----
X  
X      register char *bp;		/* we're going to steal some values */
X      register int cnt;		/*  from the stdio struct and put EVERYTHING */
X!     register STDCHAR *ptr;	/*   in the innermost loop into registers */
X!     register char newline = record_separator;/* (assuming >= 6 registers) */
X      int i;
X      int bpx;
X      int obpx;
X
X
END_OF_FILE
if test 20256 -ne `wc -c <'patch1'`; then
    echo shar: \"'patch1'\" unpacked with wrong size!
fi
# end of 'patch1'
fi
if test -f 'patch2' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'patch2'\"
else
echo shar: Extracting \"'patch2'\" \(14926 characters\)
sed "s/^X//" >'patch2' <<'END_OF_FILE'
XPath: bbn.com!bbn!husc6!cmcl2!nrl-cmf!ames!elroy!devvax!lroot
XFrom: lroot at devvax.JPL.NASA.GOV (The Superuser)
XNewsgroups: comp.sources.bugs
XSubject: perl 1.0 patch #2
XSummary: This is an official patch for perl 1.0.  Please apply it.
XMessage-ID: <1144 at devvax.JPL.NASA.GOV>
XDate: 24 Jan 88 12:21:57 GMT
XOrganization: Jet Propulsion Laboratory, Pasadena, CA
XLines: 583
X
XSystem: perl version 1.0
XPatch #: 2
XPriority: HIGH
XSubject: Various portability fixes.
XFrom: Keith Waclena <keith at cerberus.uchicago.edu>
XFrom: isis!aburt (Andrew Burt)
X
XDescription:
X	Some things didn't work right on System V and Pyramids.
X
XFix:	From rn, say "| patch -p0 -d DIR", where DIR is your perl source
X			      ^^^
X	directory.  Outside of rn, say "cd DIR; patch -p0 <thisarticle".
X	If you don't have the patch program, apply the following by hand,
X	or get patch.
X
X>>>>>	*** NOTE: YOU MUST USE -p0 WITH PATCH OR IT WON'T WORK RIGHT ***  <<<<<
X
X	If patch indicates that patchlevel is the wrong version, you may need
X	to apply one or more previous patches, or the patch may already
X	have been applied.  See the patchlevel.h file to find out what has or
X	has not been applied.  In any event, don't continue with the patch.
X
X	If you are missing previous patches they can be obtained from me:
X
X	Larry Wall
X	lwall at jpl-devvax.jpl.nasa.gov
X
X	If you send a mail message of the following form it will greatly speed
X	processing:
X
X	Subject: Command
X	@SH mailpatch PATH perl 1.0 LIST
X		   ^ note the c
X
X	where PATH is a return path FROM ME TO YOU in Internet notation, and
X	LIST is the number of one or more patches you need, separated by spaces,
X	commas, and/or hyphens.  Saying 35- says everything from 35 to the end.
X
X	You can also get the patches via anonymous FTP from
X	jpl-devvax.jpl.nasa.gov (128.149.8.43).
X
XIndex: patchlevel.h
XPrereq: 1
X1c1
X< #define PATCHLEVEL 1
X---
X> #define PATCHLEVEL 2
X 
XIndex: Configure
XPrereq: 1.0.1.1
X*** Configure.old	Sun Jan 24 03:57:22 1988
X--- Configure	Sun Jan 24 03:57:24 1988
X***************
X*** 8,14 ****
X  # and edit it to reflect your system.  Some packages may include samples
X  # of config.h for certain machines, so you might look for one of those.)
X  #
X! # $Header: Configure,v 1.0.1.1 88/01/21 21:21:47 root Exp $
X  #
X  # Yes, you may rip this off to use in other distribution packages.
X  # (Note: this Configure script was generated automatically.  Rather than
X--- 8,14 ----
X  # and edit it to reflect your system.  Some packages may include samples
X  # of config.h for certain machines, so you might look for one of those.)
X  #
X! # $Header: Configure,v 1.0.1.2 88/01/24 03:51:55 root Exp $
X  #
X  # Yes, you may rip this off to use in other distribution packages.
X  # (Note: this Configure script was generated automatically.  Rather than
X***************
X*** 68,77 ****
X--- 68,80 ----
X  contains=''
X  cpp=''
X  cppminus=''
X+ d_bcopy=''
X  d_charsprf=''
X  d_index=''
X+ d_statblks=''
X  d_stdstdio=''
X  d_strctcpy=''
X+ d_tminsys=''
X  d_vfork=''
X  d_voidsig=''
X  libc=''
X***************
X*** 638,643 ****
X--- 641,656 ----
X  fi
X  rm -f testcpp.c testcpp.out
X  
X+ : see if bcopy exists
X+ echo " "
X+ if $contains bcopy libc.list >/dev/null 2>&1; then
X+     echo 'bcopy() found.'
X+     d_bcopy="$define"
X+ else
X+     echo 'bcopy() not found.'
X+     d_bcopy="$undef"
X+ fi
X+ 
X  : see if sprintf is declared as int or pointer to char
X  echo " "
X  if $contains 'char.*sprintf' /usr/include/stdio.h >/dev/null 2>&1 ; then
X***************
X*** 671,676 ****
X--- 684,704 ----
X      esac
X  fi
X  
X+ : see if stat knows about block sizes
X+ echo " "
X+ if $contains 'st_blocks;' /usr/include/sys/stat.h >/dev/null 2>&1 ; then
X+     if $contains 'st_blksize;' /usr/include/sys/stat.h >/dev/null 2>&1 ; then
X+ 	echo "Your stat knows about block sizes."
X+ 	d_statblks="$define"
X+     else
X+ 	echo "Your stat doesn't know about block sizes."
X+ 	d_statblks="$undef"
X+     fi
X+ else
X+     echo "Your stat doesn't know about block sizes."
X+     d_statblks="$undef"
X+ fi
X+ 
X  : see if stdio is really std
X  echo " "
X  if $contains 'char.*_ptr;' /usr/include/stdio.h >/dev/null 2>&1 ; then
X***************
X*** 708,713 ****
X--- 736,751 ----
X  fi
X  $rm -f try.*
X  
X+ : see if struct tm is defined in sys/time.h
X+ echo " "
X+ if $contains 'struct tm' /usr/include/time.h >/dev/null 2>&1 ; then
X+     echo "You have struct tm defined in <time.h> rather than <sys/time.h>."
X+     d_tminsys="$undef"
X+ else
X+     echo "You have struct tm defined in <sys/time.h> rather than <time.h>."
X+     d_tminsys="$define"
X+ fi
X+ 
X  : see if there is a vfork
X  echo " "
X  if $contains vfork libc.list >/dev/null 2>&1 ; then
X***************
X*** 1260,1269 ****
X--- 1298,1310 ----
X  contains='$contains'
X  cpp='$cpp'
X  cppminus='$cppminus'
X+ d_bcopy='$d_bcopy'
X  d_charsprf='$d_charsprf'
X  d_index='$d_index'
X+ d_statblks='$d_statblks'
X  d_stdstdio='$d_stdstdio'
X  d_strctcpy='$d_strctcpy'
X+ d_tminsys='$d_tminsys'
X  d_vfork='$d_vfork'
X  d_voidsig='$d_voidsig'
X  libc='$libc'
X 
XIndex: Makefile.SH
XPrereq: 1.0
X*** Makefile.SH.old	Sun Jan 24 03:58:02 1988
X--- Makefile.SH	Sun Jan 24 03:58:03 1988
X***************
X*** 14,28 ****
X  esac
X  echo "Extracting Makefile (with variable substitutions)"
X  cat >Makefile <<!GROK!THIS!
X! # $Header: Makefile.SH,v 1.0 87/12/18 16:11:50 root Exp $
X  #
X  # $Log:	Makefile.SH,v $
X  # Revision 1.0  87/12/18  16:11:50  root
X  # Initial revision
X- # 
X- # Revision 1.0  87/12/18  16:01:07  root
X- # Initial revision
X- # 
X  # 
X  
X  CC = $cc
X--- 14,27 ----
X  esac
X  echo "Extracting Makefile (with variable substitutions)"
X  cat >Makefile <<!GROK!THIS!
X! # $Header: Makefile.SH,v 1.0.1.1 88/01/24 03:55:18 root Exp $
X  #
X  # $Log:	Makefile.SH,v $
X+ # Revision 1.0.1.1  88/01/24  03:55:18  root
X+ # patch 2: remove extra Log lines.
X+ # 
X  # Revision 1.0  87/12/18  16:11:50  root
X  # Initial revision
X  # 
X  
X  CC = $cc
X 
XIf t/TEST isn't found, you probably didn't say -p0 like I told you to above.
XJust say t/TEST now.  Likewise for t/op.time.
X
XIndex: t/TEST
XPrereq: 1.0
X*** t/TEST.old	Sun Jan 24 03:58:07 1988
X--- t/TEST	Sun Jan 24 03:58:08 1988
X***************
X*** 1,6 ****
X  #!./perl
X  
X! # $Header: TEST,v 1.0 87/12/18 13:11:34 root Exp $
X  
X  # This is written in a peculiar style, since we're trying to avoid
X  # most of the constructs we'll be testing for.
X--- 1,6 ----
X  #!./perl
X  
X! # $Header: TEST,v 1.0.1.1 88/01/24 03:55:39 root Exp $
X  
X  # This is written in a peculiar style, since we're trying to avoid
X  # most of the constructs we'll be testing for.
X***************
X*** 14,23 ****
X      @ARGV = split(/[ \n]/,`echo base.* comp.* cmd.* io.* op.*`);
X  }
X  
X  $bad = 0;
X  while ($test = shift) {
X      print "$test...";
X!     open(results,"$test|") || (print "can't run.\n");
X      $ok = 0;
X      while (<results>) {
X  	if ($verbose) {
X--- 14,42 ----
X      @ARGV = split(/[ \n]/,`echo base.* comp.* cmd.* io.* op.*`);
X  }
X  
X+ open(config,"../config.sh");
X+ while (<config>) {
X+     if (/sharpbang='(.*)'/) {
X+ 	$sharpbang = ($1 eq '#!');
X+ 	last;
X+     }
X+ }
X  $bad = 0;
X  while ($test = shift) {
X      print "$test...";
X!     if ($sharpbang) {
X! 	open(results,"$test|") || (print "can't run.\n");
X!     } else {
X! 	open(script,"$test") || die "Can't run $test";
X! 	$_ = <script>;
X! 	close(script);
X! 	if (/#!..perl(.*)/) {
X! 	    $switch = $1;
X! 	} else {
X! 	    $switch = '';
X! 	}
X! 	open(results,"./perl$switch $test|") || (print "can't run.\n");
X!     }
X      $ok = 0;
X      while (<results>) {
X  	if ($verbose) {
X 
XIndex: arg.c
XPrereq: 1.0.1.1
X*** arg.c.old	Sun Jan 24 03:57:33 1988
X--- arg.c	Sun Jan 24 03:57:35 1988
X***************
X*** 1,6 ****
X! /* $Header: arg.c,v 1.0.1.1 88/01/21 21:27:10 root Exp $
X   *
X   * $Log:	arg.c,v $
X   * Revision 1.0.1.1  88/01/21  21:27:10  root
X   * Now defines signal return values correctly using VOIDSIG.
X   * 
X--- 1,9 ----
X! /* $Header: arg.c,v 1.0.1.2 88/01/24 03:52:34 root Exp $
X   *
X   * $Log:	arg.c,v $
X+  * Revision 1.0.1.2  88/01/24  03:52:34  root
X+  * patch 2: added STATBLKS dependencies.
X+  * 
X   * Revision 1.0.1.1  88/01/21  21:27:10  root
X   * Now defines signal return values correctly using VOIDSIG.
X   * 
X***************
X*** 542,549 ****
X--- 545,557 ----
X  	    apush(ary,str_nmake((double)statbuf.st_atime));
X  	    apush(ary,str_nmake((double)statbuf.st_mtime));
X  	    apush(ary,str_nmake((double)statbuf.st_ctime));
X+ #ifdef STATBLOCKS
X  	    apush(ary,str_nmake((double)statbuf.st_blksize));
X  	    apush(ary,str_nmake((double)statbuf.st_blocks));
X+ #else
X+ 	    apush(ary,str_make("");
X+ 	    apush(ary,str_make("");
X+ #endif
X  	}
X  	sarg = (STR**)safemalloc((max+2)*sizeof(STR*));
X  	sarg[0] = Nullstr;
X 
XIndex: malloc.c
XPrereq: 1.0
X*** malloc.c.old	Sun Jan 24 03:57:44 1988
X--- malloc.c	Sun Jan 24 03:57:45 1988
X***************
X*** 1,6 ****
X! /* $Header: malloc.c,v 1.0 87/12/18 13:05:35 root Exp $
X   *
X   * $Log:	malloc.c,v $
X   * Revision 1.0  87/12/18  13:05:35  root
X   * Initial revision
X   * 
X--- 1,9 ----
X! /* $Header: malloc.c,v 1.0.1.1 88/01/24 03:53:23 root Exp $
X   *
X   * $Log:	malloc.c,v $
X+  * Revision 1.0.1.1  88/01/24  03:53:23  root
X+  * patch 2: made depend on perl.h.
X+  * 
X   * Revision 1.0  87/12/18  13:05:35  root
X   * Initial revision
X   * 
X***************
X*** 24,30 ****
X   * but bombs when it runs out. 
X   */
X  
X! #include <sys/types.h>
X  
X  #define	NULL 0
X  
X--- 27,42 ----
X   * but bombs when it runs out. 
X   */
X  
X! #include "EXTERN.h"
X! #include "handy.h"
X! #include "search.h"
X! #include "perl.h"
X! 
X! /* I don't much care whether these are defined in sys/types.h--LAW */
X! 
X! #define u_char unsigned char
X! #define u_int unsigned int
X! #define u_short unsigned short
X  
X  #define	NULL 0
X  
X 
XIndex: t/op.time
XPrereq: 1.0
X*** t/op.time.old	Sun Jan 24 03:58:13 1988
X--- t/op.time	Sun Jan 24 03:58:13 1988
X***************
X*** 1,6 ****
X  #!./perl
X  
X! # $Header: op.time,v 1.0 87/12/18 13:14:33 root Exp $
X  
X  print "1..5\n";
X  
X--- 1,6 ----
X  #!./perl
X  
X! # $Header: op.time,v 1.0.1.1 88/01/24 03:56:09 root Exp $
X  
X  print "1..5\n";
X  
X***************
X*** 24,30 ****
X  ($xsec,$foo) = localtime($now);
X  $localyday = $yday;
X  
X! if ($sec != $xsec && $yday && $wday && $year)
X      {print "ok 3\n";}
X  else
X      {print "not ok 3\n";}
X--- 24,30 ----
X  ($xsec,$foo) = localtime($now);
X  $localyday = $yday;
X  
X! if ($sec != $xsec && $mday && $year)
X      {print "ok 3\n";}
X  else
X      {print "not ok 3\n";}
X***************
X*** 32,38 ****
X  ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($beg);
X  ($xsec,$foo) = localtime($now);
X  
X! if ($sec != $xsec && $yday && $wday && $year)
X      {print "ok 4\n";}
X  else
X      {print "not ok 4\n";}
X--- 32,38 ----
X  ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($beg);
X  ($xsec,$foo) = localtime($now);
X  
X! if ($sec != $xsec && $mday && $year)
X      {print "ok 4\n";}
X  else
X      {print "not ok 4\n";}
X 
XIndex: perl.h
XPrereq: 1.0.1.1
X*** perl.h.old	Sun Jan 24 03:57:51 1988
X--- perl.h	Sun Jan 24 03:57:51 1988
X***************
X*** 1,6 ****
X! /* $Header: perl.h,v 1.0.1.1 88/01/21 21:29:23 root Exp $
X   *
X   * $Log:	perl.h,v $
X   * Revision 1.0.1.1  88/01/21  21:29:23  root
X   * No longer defines STDSTDIO--gets it from config.h now.
X   * 
X--- 1,9 ----
X! /* $Header: perl.h,v 1.0.1.2 88/01/24 03:53:47 root Exp $
X   *
X   * $Log:	perl.h,v $
X+  * Revision 1.0.1.2  88/01/24  03:53:47  root
X+  * patch 2: hid str_peek() in #ifdef DEBUGGING.
X+  * 
X   * Revision 1.0.1.1  88/01/21  21:29:23  root
X   * No longer defines STDSTDIO--gets it from config.h now.
X   * 
X***************
X*** 24,30 ****
X--- 27,39 ----
X  #include <setjmp.h>
X  #include <sys/types.h>
X  #include <sys/stat.h>
X+ 
X+ #ifdef TMINSYS
X+ #include <sys/time.h>
X+ #else
X  #include <time.h>
X+ #endif
X+ 
X  #include <sys/times.h>
X  
X  typedef struct arg ARG;
X***************
X*** 46,51 ****
X--- 55,66 ----
X  #include "array.h"
X  #include "hash.h"
X  
X+ #ifdef CHARSPRINTF
X+     char *sprintf();
X+ #else
X+     int sprintf();
X+ #endif
X+ 
X  /* A string is TRUE if not "" or "0". */
X  #define True(val) (tmps = (val), (*tmps && !(*tmps == '0' && !tmps[1])))
X  EXT char *Yes INIT("1");
X***************
X*** 53,59 ****
X--- 68,77 ----
X  
X  #define str_true(str) (Str = (str), (Str->str_pok ? True(Str->str_ptr) : (Str->str_nok ? (Str->str_nval != 0.0) : 0 )))
X  
X+ #ifdef DEBUGGING
X  #define str_peek(str) (Str = (str), (Str->str_pok ? Str->str_ptr : (Str->str_nok ? (sprintf(buf,"num(%g)",Str->str_nval),buf) : "" )))
X+ #endif
X+ 
X  #define str_get(str) (Str = (str), (Str->str_pok ? Str->str_ptr : str_2ptr(Str)))
X  #define str_gnum(str) (Str = (str), (Str->str_nok ? Str->str_nval : str_2num(Str)))
X  EXT STR *Str;
X***************
X*** 184,195 ****
X  double atof();
X  long time();
X  struct tm *gmtime(), *localtime();
X- 
X- #ifdef CHARSPRINTF
X-     char *sprintf();
X- #else
X-     int sprintf();
X- #endif
X  
X  #ifdef EUNICE
X  #define UNLINK(f) while (unlink(f) >= 0)
X--- 202,207 ----
X 
XIndex: perly.c
XPrereq: 1.0.1.1
X*** perly.c.old	Sun Jan 24 03:57:09 1988
X--- perly.c	Sun Jan 24 03:57:12 1988
X***************
X*** 1,6 ****
X! char rcsid[] = "$Header: perly.c,v 1.0.1.1 88/01/21 21:25:57 root Exp $";
X  /*
X   * $Log:	perly.c,v $
X   * Revision 1.0.1.1  88/01/21  21:25:57  root
X   * Now uses CPP and CPPMINUS symbols from config.h.
X   * 
X--- 1,9 ----
X! char rcsid[] = "$Header: perly.c,v 1.0.1.2 88/01/24 00:06:03 root Exp $";
X  /*
X   * $Log:	perly.c,v $
X+  * Revision 1.0.1.2  88/01/24  00:06:03  root
X+  * patch 2: s/(abc)/\1/ grandfathering didn't work right.
X+  * 
X   * Revision 1.0.1.1  88/01/21  21:25:57  root
X   * Now uses CPP and CPPMINUS symbols from config.h.
X   * 
X***************
X*** 1646,1652 ****
X  			    *d <<= 3;
X  			    *d += *s++ - '0';
X  			}
X! 			else if (!index('`"',term)) {	/* oops, a subpattern */
X  			    s--;
X  			    goto defchar;
X  			}
X--- 1649,1655 ----
X  			    *d <<= 3;
X  			    *d += *s++ - '0';
X  			}
X! 			else if (!index("`\"",term)) {	/* oops, a subpattern */
X  			    s--;
X  			    goto defchar;
X  			}
X 
XIndex: search.c
XPrereq: 1.0
X*** search.c.old	Sun Jan 24 03:57:57 1988
X--- search.c	Sun Jan 24 03:57:57 1988
X***************
X*** 1,6 ****
X! /* $Header: search.c,v 1.0 87/12/18 13:05:59 root Exp $
X   *
X   * $Log:	search.c,v $
X   * Revision 1.0  87/12/18  13:05:59  root
X   * Initial revision
X   * 
X--- 1,9 ----
X! /* $Header: search.c,v 1.0.1.1 88/01/24 03:55:05 root Exp $
X   *
X   * $Log:	search.c,v $
X+  * Revision 1.0.1.1  88/01/24  03:55:05  root
X+  * patch 2: made depend on perl.h.
X+  * 
X   * Revision 1.0  87/12/18  13:05:59  root
X   * Initial revision
X   * 
X***************
X*** 8,21 ****
X  
X  /* string search routines */
X   
X- #include <stdio.h>
X- #include <ctype.h>
X- 
X  #include "EXTERN.h"
X  #include "handy.h"
X  #include "util.h"
X  #include "INTERN.h"
X  #include "search.h"
X  
X  #define VERBOSE
X  #define FLUSH
X--- 11,23 ----
X  
X  /* string search routines */
X   
X  #include "EXTERN.h"
X  #include "handy.h"
X  #include "util.h"
X  #include "INTERN.h"
X  #include "search.h"
X+ #include "EXTERN.h"
X+ #include "perl.h"
X  
X  #define VERBOSE
X  #define FLUSH
END_OF_FILE
if test 14926 -ne `wc -c <'patch2'`; then
    echo shar: \"'patch2'\" unpacked with wrong size!
fi
# end of 'patch2'
fi
if test -f 'patch3' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'patch3'\"
else
echo shar: Extracting \"'patch3'\" \(3286 characters\)
sed "s/^X//" >'patch3' <<'END_OF_FILE'
XPath: bbn.com!bbn!oberon!cit-vax!elroy!devvax!lroot
XFrom: lroot at devvax.JPL.NASA.GOV (The Superuser)
XNewsgroups: comp.sources.bugs
XSubject: perl 1.0 patch #3
XSummary: This is an official patch for perl 1.0.  Please apply it.
XMessage-ID: <1145 at devvax.JPL.NASA.GOV>
XDate: 24 Jan 88 12:28:53 GMT
XOrganization: Jet Propulsion Laboratory, Pasadena, CA
XLines: 98
X
XSystem: perl version 1.0
XPatch #: 3
XPriority: HIGH
XSubject: Patch 2 was incomplete
X
XDescription:
X	I left one file out of patch 2.  This is perhaps forgivable since
X	it is a file that is produced automatically by metaconfig along
X	with Configure.
X
XFix:	From rn, say "| patch -d DIR", where DIR is your perl source
X	directory.  Outside of rn, say "cd DIR; patch <thisarticle".
X	If you don't have the patch program, apply the following by hand,
X	or get patch.
X
X	After applying the patch, rerun Configure.
X
X	If patch indicates that patchlevel is the wrong version, you may need
X	to apply one or more previous patches, or the patch may already
X	have been applied.  See the patchlevel.h file to find out what has or
X	has not been applied.  In any event, don't continue with the patch.
X
X	If you are missing previous patches they can be obtained from me:
X
X	Larry Wall
X	lwall at jpl-devvax.jpl.nasa.gov
X
X	If you send a mail message of the following form it will greatly speed
X	processing:
X
X	Subject: Command
X	@SH mailpatch PATH perl 1.0 LIST
X		   ^ note the c
X
X	where PATH is a return path FROM ME TO YOU in Internet notation, and
X	LIST is the number of one or more patches you need, separated by spaces,
X	commas, and/or hyphens.  Saying 35- says everything from 35 to the end.
X
X	You can also get the patches via anonymous FTP from
X	jpl-devvax.jpl.nasa.gov (128.149.8.43).
X
XIndex: patchlevel.h
XPrereq: 2
X1c1
X< #define PATCHLEVEL 2
X---
X> #define PATCHLEVEL 3
X 
XIndex: config.h.SH
X*** config.h.SH.old	Sun Jan 24 04:23:55 1988
X--- config.h.SH	Sun Jan 24 04:23:56 1988
X***************
X*** 51,56 ****
X--- 51,62 ----
X  #define CPP "$cpp"
X  #define CPPMINUS "$cppminus"
X  
X+ /* BCOPY:
X+  *	This symbol, if defined, indicates that the bcopy routine is available
X+  *	to copy blocks of memory.  Otherwise you should probably use memcpy().
X+  */
X+ #$d_bcopy	BCOPY		/**/
X+ 
X  /* CHARSPRINTF:
X   *	This symbol is defined if this system declares "char *sprintf()" in
X   *	stdio.h.  The trend seems to be to declare it as "int sprintf()".  It
X***************
X*** 70,75 ****
X--- 76,87 ----
X  #$d_index	index strchr	/* cultural */
X  #$d_index	rindex strrchr	/*  differences? */
X  
X+ /* STATBLOCKS:
X+  *	This symbol is defined if this system has a stat structure declaring
X+  *	st_blksize and st_blocks.
X+  */
X+ #$d_statblks	STATBLOCKS 	/**/
X+ 
X  /* STDSTDIO:
X   *	This symbol is defined if this system has a FILE structure declaring
X   *	_ptr and _cnt in stdio.h.
X***************
X*** 82,87 ****
X--- 94,107 ----
X   *	routine of some sort instead.
X   */
X  #$d_strctcpy	STRUCTCOPY	/**/
X+ 
X+ /* TMINSYS:
X+  *	This symbol is defined if this system declares "struct tm" in
X+  *	in <sys/time.h> rather than <time.h>.  We can't just say
X+  *	-I/usr/include/sys because some systems have both time files, and
X+  *	the -I trick gets the wrong one.
X+  */
X+ #$d_tminsys	TMINSYS 	/**/
X  
X  /* vfork:
X   *	This symbol, if defined, remaps the vfork routine to fork if the
END_OF_FILE
if test 3286 -ne `wc -c <'patch3'`; then
    echo shar: \"'patch3'\" unpacked with wrong size!
fi
# end of 'patch3'
fi
if test -f 'patch4' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'patch4'\"
else
echo shar: Extracting \"'patch4'\" \(2978 characters\)
sed "s/^X//" >'patch4' <<'END_OF_FILE'
XPath: bbn.com!bbn!husc6!mit-eddie!ll-xn!ames!elroy!devvax!lroot
XFrom: lroot at devvax.JPL.NASA.GOV (The Superuser)
XNewsgroups: comp.sources.bugs
XSubject: perl 1.0 patch #4
XSummary: This is an official patch for perl 1.0.  Please apply it.
XMessage-ID: <1152 at devvax.JPL.NASA.GOV>
XDate: 26 Jan 88 16:54:21 GMT
XOrganization: Jet Propulsion Laboratory, Pasadena, CA
XLines: 90
X
XSystem: perl version 1.0
XPatch #: 4
XPriority: LOW to MEDIUM, depending
XSubject: make depend doesn't work if . isn't in your PATH
XFrom: eggert at sea.sm.unisys.com (Paul Eggert)
X
XDescription:
X	make depend doesn't work if . isn't in your PATH.
X
XFix:	From rn, say "| patch -d DIR", where DIR is your perl source
X	directory.  Outside of rn, say "cd DIR; patch <thisarticle".
X	If you don't have the patch program, apply the following by hand,
X	or get patch.
X
X	If patch indicates that patchlevel is the wrong version, you may need
X	to apply one or more previous patches, or the patch may already
X	have been applied.  See the patchlevel.h file to find out what has or
X	has not been applied.  In any event, don't continue with the patch.
X
X	If you are missing previous patches they can be obtained from me:
X
X	Larry Wall
X	lwall at jpl-devvax.jpl.nasa.gov
X
X	If you send a mail message of the following form it will greatly speed
X	processing:
X
X	Subject: Command
X	@SH mailpatch PATH perl 1.0 LIST
X		   ^ note the c
X
X	where PATH is a return path FROM ME TO YOU in Internet notation, and
X	LIST is the number of one or more patches you need, separated by spaces,
X	commas, and/or hyphens.  Saying 35- says everything from 35 to the end.
X
X	You can also get the patches via anonymous FTP from
X	jpl-devvax.jpl.nasa.gov (128.149.8.43).
X
XIndex: patchlevel.h
XPrereq: 3
X1c1
X< #define PATCHLEVEL 3
X---
X> #define PATCHLEVEL 4
X 
XIndex: Makefile.SH
XPrereq: 1.0.1.1
X*** Makefile.SH.old	Tue Jan 26 08:48:31 1988
X--- Makefile.SH	Tue Jan 26 08:48:32 1988
X***************
X*** 14,22 ****
X  esac
X  echo "Extracting Makefile (with variable substitutions)"
X  cat >Makefile <<!GROK!THIS!
X! # $Header: Makefile.SH,v 1.0.1.1 88/01/24 03:55:18 root Exp $
X  #
X  # $Log:	Makefile.SH,v $
X  # Revision 1.0.1.1  88/01/24  03:55:18  root
X  # patch 2: remove extra Log lines.
X  # 
X--- 14,25 ----
X  esac
X  echo "Extracting Makefile (with variable substitutions)"
X  cat >Makefile <<!GROK!THIS!
X! # $Header: Makefile.SH,v 1.0.1.2 88/01/26 08:46:04 root Exp $
X  #
X  # $Log:	Makefile.SH,v $
X+ # Revision 1.0.1.2  88/01/26  08:46:04  root
X+ # patch 4: make depend didn't work right if . wasn't in PATH.
X+ # 
X  # Revision 1.0.1.1  88/01/24  03:55:18  root
X  # patch 2: remove extra Log lines.
X  # 
X***************
X*** 137,143 ****
X  	lint $(lintflags) $(defs) $(c) > perl.fuzz
X  
X  depend: makedepend
X! 	makedepend
X  
X  test: perl
X  	chmod 755 t/TEST t/base.* t/comp.* t/cmd.* t/io.* t/op.*
X--- 140,146 ----
X  	lint $(lintflags) $(defs) $(c) > perl.fuzz
X  
X  depend: makedepend
X! 	./makedepend
X  
X  test: perl
X  	chmod 755 t/TEST t/base.* t/comp.* t/cmd.* t/io.* t/op.*
END_OF_FILE
if test 2978 -ne `wc -c <'patch4'`; then
    echo shar: \"'patch4'\" unpacked with wrong size!
fi
# end of 'patch4'
fi
if test -f 'patch5' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'patch5'\"
else
echo shar: Extracting \"'patch5'\" \(2834 characters\)
sed "s/^X//" >'patch5' <<'END_OF_FILE'
XPath: bbn.com!bbn!husc6!think!ames!elroy!devvax!lroot
XFrom: lroot at devvax.JPL.NASA.GOV (The Superuser)
XNewsgroups: comp.sources.bugs
XSubject: perl 1.0 patch #5
XSummary: This is an official patch for perl 1.0.  Please apply it.
XMessage-ID: <1155 at devvax.JPL.NASA.GOV>
XDate: 26 Jan 88 18:00:14 GMT
XOrganization: Jet Propulsion Laboratory, Pasadena, CA
XLines: 88
X
XSystem: perl version 1.0
XPatch #: 5
XPriority: MEDIUM for Sys V, LOW otherwise
XSubject: a2p didn't make use of the config.h generated by Configure
XFrom: "Arnold D. Robbins" <arnold at EMORYU2.ARPA>
X
XDescription:
X	The a2p program used index() and bcopy(), both of do not exist
X	everywhere.  Since Configure was already figuring out about those
X	functions, it is fairly trivial to get a2p to make use of the info.
X
XFix:	From rn, say "| patch -p0 -d DIR", where DIR is your perl source
X			      ^^^
X	directory.  Outside of rn, say "cd DIR; patch -p0 <thisarticle".
X	If you don't have the patch program, apply the following by hand,
X	or get patch.
X
X>>>	*** NOTE: the -p0 is necessary above or patch won't find a2p.h ***
X
X	If patch indicates that patchlevel is the wrong version, you may need
X	to apply one or more previous patches, or the patch may already
X	have been applied.  See the patchlevel.h file to find out what has or
X	has not been applied.  In any event, don't continue with the patch.
X
X	If you are missing previous patches they can be obtained from me:
X
X	Larry Wall
X	lwall at jpl-devvax.jpl.nasa.gov
X
X	If you send a mail message of the following form it will greatly speed
X	processing:
X
X	Subject: Command
X	@SH mailpatch PATH perl 1.0 LIST
X		   ^ note the c
X
X	where PATH is a return path FROM ME TO YOU in Internet notation, and
X	LIST is the number of one or more patches you need, separated by spaces,
X	commas, and/or hyphens.  Saying 35- says everything from 35 to the end.
X
X	You can also get the patches via anonymous FTP from
X	jpl-devvax.jpl.nasa.gov (128.149.8.43).
X
XIndex: patchlevel.h
XPrereq: 4
X1c1
X< #define PATCHLEVEL 4
X---
X> #define PATCHLEVEL 5
X 
XIndex: x2p/a2p.h
XPrereq: 1.0
X*** x2p/a2p.h.old	Tue Jan 26 09:53:22 1988
X--- x2p/a2p.h	Tue Jan 26 09:53:22 1988
X***************
X*** 1,10 ****
X! /* $Header: a2p.h,v 1.0 87/12/18 13:06:58 root Exp $
X   *
X   * $Log:	a2p.h,v $
X   * Revision 1.0  87/12/18  13:06:58  root
X   * Initial revision
X   * 
X   */
X  
X  #include "handy.h"
X  #define Nullop 0
X--- 1,21 ----
X! /* $Header: a2p.h,v 1.0.1.1 88/01/26 09:52:30 root Exp $
X   *
X   * $Log:	a2p.h,v $
X+  * Revision 1.0.1.1  88/01/26  09:52:30  root
X+  * patch 5: a2p didn't use config.h.
X+  * 
X   * Revision 1.0  87/12/18  13:06:58  root
X   * Initial revision
X   * 
X   */
X+ 
X+ #define VOIDUSED 1
X+ #include "../config.h"
X+ 
X+ #ifndef BCOPY
X+ #   define bcopy(s1,s2,l) memcpy(s2,s1,l);
X+ #   define bzero(s,l) memset(s,0,l);
X+ #endif
X  
X  #include "handy.h"
X  #define Nullop 0
END_OF_FILE
if test 2834 -ne `wc -c <'patch5'`; then
    echo shar: \"'patch5'\" unpacked with wrong size!
fi
# end of 'patch5'
fi
echo shar: End of shell archive.
exit 0
-- 
For comp.sources.unix stuff, mail to sources at uunet.uu.net.



More information about the Comp.sources.unix mailing list