perl 4.0 patch 34: (combined patch)
authorLarry Wall <lwall@netlabs.com>
Thu, 11 Jun 1992 08:21:11 +0000 (08:21 +0000)
committerLarry Wall <lwall@netlabs.com>
Thu, 11 Jun 1992 08:21:11 +0000 (08:21 +0000)
Here's the typical cleanup patch that follows any large
set of patches.  My testing organization is either too large
or too small, depending on how you look at it, sigh...

12 files changed:
Configure
doarg.c
doio.c
hints/isc_3_2_3.sh [new file with mode: 0644]
installperl
patchlevel.h
perlsh
perly.y
str.c
toke.c
util.c
util.h

index c183c1a..4475378 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.)
 #
-# $RCSfile: Configure,v $$Revision: 4.0.1.7 $$Date: 92/06/08 11:38:16 $
+# $RCSfile: Configure,v $$Revision: 4.0.1.8 $$Date: 92/06/11 21:04:45 $
 #
 # Yes, you may rip this off to use in other distribution packages.
 # (Note: this Configure script was generated automatically.  Rather than
@@ -2080,7 +2080,7 @@ main()
     exit(0);
 }
 EOCP
-       if $cc safebcpy.c -o safebcpy $ccflags >/dev/null 2>&1 ; then
+       if $cc safebcpy.c -o safebcpy $ccflags $libs >/dev/null 2>&1 ; then
            if ./safebcpy; then
                echo "It can."
                d_safebcpy=define
@@ -2465,7 +2465,7 @@ main()
     exit(0);
 }
 EOCP
-       if $cc safemcpy.c -o safemcpy $ccflags >/dev/null 2>&1 ; then
+       if $cc safemcpy.c -o safemcpy $ccflags $libs >/dev/null 2>&1 ; then
            if ./safemcpy; then
                echo "It can."
                d_safemcpy=define
diff --git a/doarg.c b/doarg.c
index 01a9631..ca1014c 100644 (file)
--- a/doarg.c
+++ b/doarg.c
@@ -1,4 +1,4 @@
-/* $RCSfile: doarg.c,v $$Revision: 4.0.1.6 $$Date: 92/06/08 12:34:30 $
+/* $RCSfile: doarg.c,v $$Revision: 4.0.1.7 $$Date: 92/06/11 21:07:11 $
  *
  *    Copyright (c) 1991, Larry Wall
  *
@@ -6,6 +6,10 @@
  *    License or the Artistic License, as specified in the README file.
  *
  * $Log:       doarg.c,v $
+ * Revision 4.0.1.7  92/06/11  21:07:11  lwall
+ * patch34: join with null list attempted negative allocation
+ * patch34: sprintf("%6.4s", "abcdefg") didn't print "abcd  "
+ * 
  * Revision 4.0.1.6  92/06/08  12:34:30  lwall
  * patch20: removed implicit int declarations on funcions
  * patch20: pattern modifiers i and o didn't interact right
@@ -406,7 +410,7 @@ int *arglast;
 
     st += sp + 1;
 
-    len = delimlen * (items - 1);
+    len = (items > 0 ? (delimlen * (items - 1) ) : 0);
     if (str->str_len < len + items) {  /* current length is way too short */
        while (items-- > 0) {
            if (*st)
@@ -982,28 +986,28 @@ register STR **sarg;
                    char *mp = index(f, '.');
                    int min = atoi(f+2);
 
-                   if (xlen < min)
-                       post = min - xlen;
-                   else if (mp) {
+                   if (mp) {
                        int max = atoi(mp+1);
 
                        if (xlen > max)
                            xlen = max;
                    }
+                   if (xlen < min)
+                       post = min - xlen;
                    break;
                }
                else if (isDIGIT(f[1])) {
                    char *mp = index(f, '.');
                    int min = atoi(f+1);
 
-                   if (xlen < min)
-                       pre = min - xlen;
-                   else if (mp) {
+                   if (mp) {
                        int max = atoi(mp+1);
 
                        if (xlen > max)
                            xlen = max;
                    }
+                   if (xlen < min)
+                       pre = min - xlen;
                    break;
                }
                strcpy(tokenbuf+64,f);  /* sprintf($s,...$s...) */
diff --git a/doio.c b/doio.c
index aa85abe..dd3b616 100644 (file)
--- a/doio.c
+++ b/doio.c
@@ -1,4 +1,4 @@
-/* $RCSfile: doio.c,v $$Revision: 4.0.1.5 $$Date: 92/06/08 13:00:21 $
+/* $RCSfile: doio.c,v $$Revision: 4.0.1.6 $$Date: 92/06/11 21:08:16 $
  *
  *    Copyright (c) 1991, Larry Wall
  *
@@ -6,6 +6,9 @@
  *    License or the Artistic License, as specified in the README file.
  *
  * $Log:       doio.c,v $
+ * Revision 4.0.1.6  92/06/11  21:08:16  lwall
+ * patch34: some systems don't declare h_errno extern in header files
+ * 
  * Revision 4.0.1.5  92/06/08  13:00:21  lwall
  * patch20: some machines don't define ENOTSOCK in errno.h
  * patch20: new warnings for failed use of stat operators on filenames with \n
 #endif
 #endif
 
+#ifdef HOST_NOT_FOUND
+extern int h_errno;
+#endif
+
 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
 #include <sys/ipc.h>
 #ifdef HAS_MSG
diff --git a/hints/isc_3_2_3.sh b/hints/isc_3_2_3.sh
new file mode 100644 (file)
index 0000000..ca1b549
--- /dev/null
@@ -0,0 +1,2 @@
+set `echo $libswanted | sed -e 's/ socket / inet /'`
+libswanted="$*"
index 7f9d36e..b5ef496 100644 (file)
@@ -150,6 +150,7 @@ if (chdir "lib") {
            if ($?) {
                &unlink("$installprivlib/$file");
                &cmd("cp $file $installprivlib");
+               &chmod(0644, "$installprivlib/$file");
            }
        }
     }
index 1d5b76f..3b47b47 100644 (file)
@@ -1 +1 @@
-#define PATCHLEVEL 33
+#define PATCHLEVEL 34
diff --git a/perlsh b/perlsh
index 4f9b5dd..2b2cccd 100644 (file)
--- a/perlsh
+++ b/perlsh
@@ -6,7 +6,7 @@
 # Note that it must be a complete perl statement--don't type double
 #  carriage return in the middle of a loop.
 
-$/ = '';       # set paragraph mode
+$/ = "\n\n";   # set paragraph mode
 $SHlinesep = "\n";
 while ($SHcmd = <>) {
     $/ = $SHlinesep;
diff --git a/perly.y b/perly.y
index abcac23..a52f18a 100644 (file)
--- a/perly.y
+++ b/perly.y
@@ -1,4 +1,4 @@
-/* $RCSfile: perly.y,v $$Revision: 4.0.1.4 $$Date: 92/06/08 17:33:25 $
+/* $RCSfile: perly.y,v $$Revision: 4.0.1.5 $$Date: 92/06/11 21:12:50 $
  *
  *    Copyright (c) 1991, Larry Wall
  *
@@ -6,6 +6,9 @@
  *    License or the Artistic License, as specified in the README file.
  *
  * $Log:       perly.y,v $
+ * Revision 4.0.1.5  92/06/11  21:12:50  lwall
+ * patch34: expectterm incorrectly set to indicate start of program or block
+ * 
  * Revision 4.0.1.4  92/06/08  17:33:25  lwall
  * patch20: one of the backdoors to expectterm was on the wrong reduction
  * 
@@ -106,8 +109,8 @@ prog        :       /* NULL */
                {
 #if defined(YYDEBUG) && defined(DEBUGGING)
                    yydebug = (debug & 1);
-                   expectterm = 2;
 #endif
+                   expectterm = 2;
                }
        /*CONTINUED*/   lineseq
                        { if (in_eval)
diff --git a/str.c b/str.c
index 1c0c00e..4b597cc 100644 (file)
--- a/str.c
+++ b/str.c
@@ -1,4 +1,4 @@
-/* $RCSfile: str.c,v $$Revision: 4.0.1.5 $$Date: 92/06/08 15:40:43 $
+/* $RCSfile: str.c,v $$Revision: 4.0.1.6 $$Date: 92/06/11 21:14:21 $
  *
  *    Copyright (c) 1991, Larry Wall
  *
@@ -6,6 +6,9 @@
  *    License or the Artistic License, as specified in the README file.
  *
  * $Log:       str.c,v $
+ * Revision 4.0.1.6  92/06/11  21:14:21  lwall
+ * patch34: quotes containing subscripts containing variables didn't parse right
+ * 
  * Revision 4.0.1.5  92/06/08  15:40:43  lwall
  * patch20: removed implicit int declarations on functions
  * patch20: Perl now distinguishes overlapped copies from non-overlapped
@@ -1048,7 +1051,7 @@ STR *src;
                    case '&':
                    case '*':
                        s = scanident(s,send,tokenbuf);
-                       break;
+                       continue;
                    case '\'':
                    case '"':
                        /*SUPPRESS 68*/
diff --git a/toke.c b/toke.c
index b3afce6..0452765 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -1,4 +1,4 @@
-/* $RCSfile: toke.c,v $$Revision: 4.0.1.6 $$Date: 92/06/08 16:03:49 $
+/* $RCSfile: toke.c,v $$Revision: 4.0.1.7 $$Date: 92/06/11 21:16:30 $
  *
  *    Copyright (c) 1991, Larry Wall
  *
@@ -6,6 +6,9 @@
  *    License or the Artistic License, as specified in the README file.
  *
  * $Log:       toke.c,v $
+ * Revision 4.0.1.7  92/06/11  21:16:30  lwall
+ * patch34: expectterm incorrectly set to indicate start of program or block
+ * 
  * Revision 4.0.1.6  92/06/08  16:03:49  lwall
  * patch20: an EXPR may now start with a bareword
  * patch20: print $fh EXPR can now expect term rather than operator in EXPR
@@ -532,7 +535,8 @@ yylex()
        yylval.ival = curcmd->c_line;
        if (isSPACE(*s) || *s == '#')
            cmdline = NOLINE;   /* invalidate current command line number */
-       OPERATOR(tmp);
+       expectterm = 2;
+       RETURN(tmp);
     case ';':
        if (curcmd->c_line < cmdline)
            cmdline = curcmd->c_line;
diff --git a/util.c b/util.c
index 56dd7f8..b4e3263 100644 (file)
--- a/util.c
+++ b/util.c
@@ -1,4 +1,4 @@
-/* $RCSfile: util.c,v $$Revision: 4.0.1.5 $$Date: 92/06/08 16:08:37 $
+/* $RCSfile: util.c,v $$Revision: 4.0.1.6 $$Date: 92/06/11 21:18:47 $
  *
  *    Copyright (c) 1991, Larry Wall
  *
@@ -6,6 +6,9 @@
  *    License or the Artistic License, as specified in the README file.
  *
  * $Log:       util.c,v $
+ * Revision 4.0.1.6  92/06/11  21:18:47  lwall
+ * patch34: boneheaded typo in my_bcopy()
+ * 
  * Revision 4.0.1.5  92/06/08  16:08:37  lwall
  * patch20: removed implicit int declarations on functions
  * patch20: Perl now distinguishes overlapped copies from non-overlapped
@@ -1185,7 +1188,7 @@ register int len;
        to += len;
        from += len;
        while (len--)
-           --*to = --*from;
+           *(--to) = *(--from);
     }
     return retval;
 }
diff --git a/util.h b/util.h
index a0cc3fa..eb4a0a4 100644 (file)
--- a/util.h
+++ b/util.h
@@ -1,4 +1,4 @@
-/* $RCSfile: util.h,v $$Revision: 4.0.1.3 $$Date: 92/06/08 16:09:20 $
+/* $RCSfile: util.h,v $$Revision: 4.0.1.4 $$Date: 92/06/11 21:19:36 $
  *
  *    Copyright (c) 1991, Larry Wall
  *
@@ -6,6 +6,9 @@
  *    License or the Artistic License, as specified in the README file.
  *
  * $Log:       util.h,v $
+ * Revision 4.0.1.4  92/06/11  21:19:36  lwall
+ * patch34: pidgone() wasn't declared right
+ * 
  * Revision 4.0.1.3  92/06/08  16:09:20  lwall
  * patch20: bcopy() and memcpy() now tested for overlap safety
  * 
@@ -52,3 +55,4 @@ int   my_memcmp();
 #endif
 unsigned long scanoct();
 unsigned long scanhex();
+void pidgone();