perl 1.0 patch 2: Various portability fixes.
Andrew Burt [Sat, 23 Jan 1988 14:57:57 +0000 (14:57 +0000)]
Some things didn't work right on System V and Pyramids.

Configure
Makefile.SH
arg.c
malloc.c
patchlevel.h
perl.h
perly.c
search.c
t/TEST
t/op.time

index 66d8a6e..7327e1c 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -8,7 +8,7 @@
 # and edit it to reflect your system.  Some packages may include samples
 # of config.h for certain machines, so you might look for one of those.)
 #
-# $Header: Configure,v 1.0.1.1 88/01/21 21:21:47 root Exp $
+# $Header: Configure,v 1.0.1.2 88/01/24 03:51:55 root Exp $
 #
 # Yes, you may rip this off to use in other distribution packages.
 # (Note: this Configure script was generated automatically.  Rather than
@@ -68,10 +68,13 @@ cc=''
 contains=''
 cpp=''
 cppminus=''
+d_bcopy=''
 d_charsprf=''
 d_index=''
+d_statblks=''
 d_stdstdio=''
 d_strctcpy=''
+d_tminsys=''
 d_vfork=''
 d_voidsig=''
 libc=''
@@ -638,6 +641,16 @@ else
 fi
 rm -f testcpp.c testcpp.out
 
+: see if bcopy exists
+echo " "
+if $contains bcopy libc.list >/dev/null 2>&1; then
+    echo 'bcopy() found.'
+    d_bcopy="$define"
+else
+    echo 'bcopy() not found.'
+    d_bcopy="$undef"
+fi
+
 : see if sprintf is declared as int or pointer to char
 echo " "
 if $contains 'char.*sprintf' /usr/include/stdio.h >/dev/null 2>&1 ; then
@@ -671,6 +684,21 @@ else
     esac
 fi
 
+: see if stat knows about block sizes
+echo " "
+if $contains 'st_blocks;' /usr/include/sys/stat.h >/dev/null 2>&1 ; then
+    if $contains 'st_blksize;' /usr/include/sys/stat.h >/dev/null 2>&1 ; then
+       echo "Your stat knows about block sizes."
+       d_statblks="$define"
+    else
+       echo "Your stat doesn't know about block sizes."
+       d_statblks="$undef"
+    fi
+else
+    echo "Your stat doesn't know about block sizes."
+    d_statblks="$undef"
+fi
+
 : see if stdio is really std
 echo " "
 if $contains 'char.*_ptr;' /usr/include/stdio.h >/dev/null 2>&1 ; then
@@ -708,6 +736,16 @@ else
 fi
 $rm -f try.*
 
+: see if struct tm is defined in sys/time.h
+echo " "
+if $contains 'struct tm' /usr/include/time.h >/dev/null 2>&1 ; then
+    echo "You have struct tm defined in <time.h> rather than <sys/time.h>."
+    d_tminsys="$undef"
+else
+    echo "You have struct tm defined in <sys/time.h> rather than <time.h>."
+    d_tminsys="$define"
+fi
+
 : see if there is a vfork
 echo " "
 if $contains vfork libc.list >/dev/null 2>&1 ; then
@@ -1260,10 +1298,13 @@ cc='$cc'
 contains='$contains'
 cpp='$cpp'
 cppminus='$cppminus'
+d_bcopy='$d_bcopy'
 d_charsprf='$d_charsprf'
 d_index='$d_index'
+d_statblks='$d_statblks'
 d_stdstdio='$d_stdstdio'
 d_strctcpy='$d_strctcpy'
+d_tminsys='$d_tminsys'
 d_vfork='$d_vfork'
 d_voidsig='$d_voidsig'
 libc='$libc'
index f45bb3f..7814bd9 100644 (file)
@@ -14,16 +14,15 @@ case "$0" in
 esac
 echo "Extracting Makefile (with variable substitutions)"
 cat >Makefile <<!GROK!THIS!
-# $Header: Makefile.SH,v 1.0 87/12/18 16:11:50 root Exp $
+# $Header: Makefile.SH,v 1.0.1.1 88/01/24 03:55:18 root Exp $
 #
 # $Log:        Makefile.SH,v $
-# Revision 1.0  87/12/18  16:11:50  root
-# Initial revision
+# Revision 1.0.1.1  88/01/24  03:55:18  root
+# patch 2: remove extra Log lines.
 # 
-# Revision 1.0  87/12/18  16:01:07  root
+# Revision 1.0  87/12/18  16:11:50  root
 # Initial revision
 # 
-# 
 
 CC = $cc
 bin = $bin
diff --git a/arg.c b/arg.c
index 8aceb66..1423d91 100644 (file)
--- a/arg.c
+++ b/arg.c
@@ -1,6 +1,9 @@
-/* $Header: arg.c,v 1.0.1.1 88/01/21 21:27:10 root Exp $
+/* $Header: arg.c,v 1.0.1.2 88/01/24 03:52:34 root Exp $
  *
  * $Log:       arg.c,v $
+ * Revision 1.0.1.2  88/01/24  03:52:34  root
+ * patch 2: added STATBLKS dependencies.
+ * 
  * Revision 1.0.1.1  88/01/21  21:27:10  root
  * Now defines signal return values correctly using VOIDSIG.
  * 
@@ -542,8 +545,13 @@ STR ***retary;
            apush(ary,str_nmake((double)statbuf.st_atime));
            apush(ary,str_nmake((double)statbuf.st_mtime));
            apush(ary,str_nmake((double)statbuf.st_ctime));
+#ifdef STATBLOCKS
            apush(ary,str_nmake((double)statbuf.st_blksize));
            apush(ary,str_nmake((double)statbuf.st_blocks));
+#else
+           apush(ary,str_make("");
+           apush(ary,str_make("");
+#endif
        }
        sarg = (STR**)safemalloc((max+2)*sizeof(STR*));
        sarg[0] = Nullstr;
index 17c3b27..6a6ceea 100644 (file)
--- a/malloc.c
+++ b/malloc.c
@@ -1,6 +1,9 @@
-/* $Header: malloc.c,v 1.0 87/12/18 13:05:35 root Exp $
+/* $Header: malloc.c,v 1.0.1.1 88/01/24 03:53:23 root Exp $
  *
  * $Log:       malloc.c,v $
+ * Revision 1.0.1.1  88/01/24  03:53:23  root
+ * patch 2: made depend on perl.h.
+ * 
  * Revision 1.0  87/12/18  13:05:35  root
  * Initial revision
  * 
@@ -24,7 +27,16 @@ static char sccsid[] = "@(#)malloc.c 4.3 (Berkeley) 9/16/83";
  * but bombs when it runs out. 
  */
 
-#include <sys/types.h>
+#include "EXTERN.h"
+#include "handy.h"
+#include "search.h"
+#include "perl.h"
+
+/* I don't much care whether these are defined in sys/types.h--LAW */
+
+#define u_char unsigned char
+#define u_int unsigned int
+#define u_short unsigned short
 
 #define        NULL 0
 
index 110c86f..e3d7670 100644 (file)
@@ -1 +1 @@
-#define PATCHLEVEL 1
+#define PATCHLEVEL 2
diff --git a/perl.h b/perl.h
index ce2d2ab..751b8cd 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1,6 +1,9 @@
-/* $Header: perl.h,v 1.0.1.1 88/01/21 21:29:23 root Exp $
+/* $Header: perl.h,v 1.0.1.2 88/01/24 03:53:47 root Exp $
  *
  * $Log:       perl.h,v $
+ * Revision 1.0.1.2  88/01/24  03:53:47  root
+ * patch 2: hid str_peek() in #ifdef DEBUGGING.
+ * 
  * Revision 1.0.1.1  88/01/21  21:29:23  root
  * No longer defines STDSTDIO--gets it from config.h now.
  * 
 #include <setjmp.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+
+#ifdef TMINSYS
+#include <sys/time.h>
+#else
 #include <time.h>
+#endif
+
 #include <sys/times.h>
 
 typedef struct arg ARG;
@@ -46,6 +55,12 @@ typedef struct htbl HASH;
 #include "array.h"
 #include "hash.h"
 
+#ifdef CHARSPRINTF
+    char *sprintf();
+#else
+    int sprintf();
+#endif
+
 /* A string is TRUE if not "" or "0". */
 #define True(val) (tmps = (val), (*tmps && !(*tmps == '0' && !tmps[1])))
 EXT char *Yes INIT("1");
@@ -53,7 +68,10 @@ EXT char *No INIT("");
 
 #define str_true(str) (Str = (str), (Str->str_pok ? True(Str->str_ptr) : (Str->str_nok ? (Str->str_nval != 0.0) : 0 )))
 
+#ifdef DEBUGGING
 #define str_peek(str) (Str = (str), (Str->str_pok ? Str->str_ptr : (Str->str_nok ? (sprintf(buf,"num(%g)",Str->str_nval),buf) : "" )))
+#endif
+
 #define str_get(str) (Str = (str), (Str->str_pok ? Str->str_ptr : str_2ptr(Str)))
 #define str_gnum(str) (Str = (str), (Str->str_nok ? Str->str_nval : str_2num(Str)))
 EXT STR *Str;
@@ -185,12 +203,6 @@ double atof();
 long time();
 struct tm *gmtime(), *localtime();
 
-#ifdef CHARSPRINTF
-    char *sprintf();
-#else
-    int sprintf();
-#endif
-
 #ifdef EUNICE
 #define UNLINK(f) while (unlink(f) >= 0)
 #else
diff --git a/perly.c b/perly.c
index 641971b..dfd83d9 100644 (file)
--- a/perly.c
+++ b/perly.c
@@ -1,6 +1,9 @@
-char rcsid[] = "$Header: perly.c,v 1.0.1.1 88/01/21 21:25:57 root Exp $";
+char rcsid[] = "$Header: perly.c,v 1.0.1.2 88/01/24 00:06:03 root Exp $";
 /*
  * $Log:       perly.c,v $
+ * Revision 1.0.1.2  88/01/24  00:06:03  root
+ * patch 2: s/(abc)/\1/ grandfathering didn't work right.
+ * 
  * Revision 1.0.1.1  88/01/21  21:25:57  root
  * Now uses CPP and CPPMINUS symbols from config.h.
  * 
@@ -1646,7 +1649,7 @@ register char *s;
                            *d <<= 3;
                            *d += *s++ - '0';
                        }
-                       else if (!index('`"',term)) {   /* oops, a subpattern */
+                       else if (!index("`\"",term)) {  /* oops, a subpattern */
                            s--;
                            goto defchar;
                        }
index 79712a1..b812ee1 100644 (file)
--- a/search.c
+++ b/search.c
@@ -1,6 +1,9 @@
-/* $Header: search.c,v 1.0 87/12/18 13:05:59 root Exp $
+/* $Header: search.c,v 1.0.1.1 88/01/24 03:55:05 root Exp $
  *
  * $Log:       search.c,v $
+ * Revision 1.0.1.1  88/01/24  03:55:05  root
+ * patch 2: made depend on perl.h.
+ * 
  * Revision 1.0  87/12/18  13:05:59  root
  * Initial revision
  * 
 
 /* string search routines */
  
-#include <stdio.h>
-#include <ctype.h>
-
 #include "EXTERN.h"
 #include "handy.h"
 #include "util.h"
 #include "INTERN.h"
 #include "search.h"
+#include "EXTERN.h"
+#include "perl.h"
 
 #define VERBOSE
 #define FLUSH
diff --git a/t/TEST b/t/TEST
index 11c48e2..451bbe6 100644 (file)
--- a/t/TEST
+++ b/t/TEST
@@ -1,6 +1,6 @@
 #!./perl
 
-# $Header: TEST,v 1.0 87/12/18 13:11:34 root Exp $
+# $Header: TEST,v 1.0.1.1 88/01/24 03:55:39 root Exp $
 
 # This is written in a peculiar style, since we're trying to avoid
 # most of the constructs we'll be testing for.
@@ -14,10 +14,29 @@ if ($ARGV[0] eq '') {
     @ARGV = split(/[ \n]/,`echo base.* comp.* cmd.* io.* op.*`);
 }
 
+open(config,"../config.sh");
+while (<config>) {
+    if (/sharpbang='(.*)'/) {
+       $sharpbang = ($1 eq '#!');
+       last;
+    }
+}
 $bad = 0;
 while ($test = shift) {
     print "$test...";
-    open(results,"$test|") || (print "can't run.\n");
+    if ($sharpbang) {
+       open(results,"$test|") || (print "can't run.\n");
+    } else {
+       open(script,"$test") || die "Can't run $test";
+       $_ = <script>;
+       close(script);
+       if (/#!..perl(.*)/) {
+           $switch = $1;
+       } else {
+           $switch = '';
+       }
+       open(results,"./perl$switch $test|") || (print "can't run.\n");
+    }
     $ok = 0;
     while (<results>) {
        if ($verbose) {
index 1d92bac..87ef260 100644 (file)
--- a/t/op.time
+++ b/t/op.time
@@ -1,6 +1,6 @@
 #!./perl
 
-# $Header: op.time,v 1.0 87/12/18 13:14:33 root Exp $
+# $Header: op.time,v 1.0.1.1 88/01/24 03:56:09 root Exp $
 
 print "1..5\n";
 
@@ -24,7 +24,7 @@ if ($i >= 200000) {print "ok 2\n";} else {print "not ok 2\n";}
 ($xsec,$foo) = localtime($now);
 $localyday = $yday;
 
-if ($sec != $xsec && $yday && $wday && $year)
+if ($sec != $xsec && $mday && $year)
     {print "ok 3\n";}
 else
     {print "not ok 3\n";}
@@ -32,7 +32,7 @@ else
 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($beg);
 ($xsec,$foo) = localtime($now);
 
-if ($sec != $xsec && $yday && $wday && $year)
+if ($sec != $xsec && $mday && $year)
     {print "ok 4\n";}
 else
     {print "not ok 4\n";}