This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add a test case for waitpid(): from Rocco Caputo.
[perl5.git] / perly_c.diff
index c15e95b..aab3a86 100644 (file)
@@ -1,5 +1,12 @@
---- perly.c.orig       Sun Jun 10 21:13:50 2001
-+++ perly.c    Sun Jun 10 21:13:51 2001
+--- perly.c.orig       Tue Jun 19 08:39:52 2001
++++ perly.c    Tue Jun 19 08:39:24 2001
+@@ -1,5 +1,5 @@
+ #ifndef lint
+-static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91";
++/* static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; */
+ #endif
+ #define YYBYACC 1
+ #line 16 "perly.y"
 @@ -50,70 +50,9 @@
  #define yylex yylex_r
  #endif
  #define YYERRCODE 256
 -short yylhs[] = {                                        -1,
 +static short yylhs[] = {                                        -1,
-    54,    0,    8,    6,    9,    7,   10,   10,   10,   11,
-    11,   11,   11,   24,   24,   24,   24,   24,   24,   24,
-    14,   14,   14,   13,   13,   42,   42,   12,   12,   12,
+     0,    9,    7,    6,   10,    8,   11,   11,   11,   12,
+    12,   12,   12,   25,   25,   25,   25,   25,   25,   25,
+    15,   15,   15,   14,   14,   43,   43,   13,   13,   13,
 @@ -135,7 +74,7 @@
-    48,   33,   33,   34,   34,   34,   43,   23,   18,   19,
-    20,   21,   22,   35,   35,   35,   35,
+    49,   34,   34,   35,   35,   35,   44,   24,   19,   20,
+    21,   22,   23,   36,   36,   36,   36,
  };
 -short yylen[] = {                                         2,
 +static short yylen[] = {                                         2,
-     0,    2,    4,    0,    4,    0,    0,    2,    2,    2,
+     2,    4,    0,    0,    4,    0,    0,    2,    2,    2,
      1,    2,    3,    1,    1,    3,    3,    3,    3,    3,
      0,    2,    6,    7,    7,    0,    2,    8,    8,   10,
 @@ -157,7 +96,7 @@
      1,    0,    1,    0,    1,    2,    1,    2,    2,    2,
      2,    2,    2,    1,    1,    1,    1,
  };
--short yydefred[] = {                                      1,
-+static short yydefred[] = {                                      1,
+-short yydefred[] = {                                      4,
++static short yydefred[] = {                                      4,
      0,    7,    0,   45,   58,   56,    0,   56,   56,    8,
     46,    9,   11,   48,    0,   47,   49,   50,    0,    0,
-     0,   70,   71,    0,   14,    4,  173,    0,    0,  154,
+     0,   70,   71,    0,   14,    3,  173,    0,    0,  154,
 @@ -199,7 +138,7 @@
      0,   22,    0,    0,    0,   31,    5,    0,   30,    0,
      0,   33,    0,   23,
  };
 -short yydgoto[] = {                                       1,
 +static short yydgoto[] = {                                       1,
-    10,   11,   20,  104,   19,   95,  370,   98,  359,    3,
-    12,   13,   70,  375,  285,   72,   73,   74,   75,   76,
-    77,   78,   79,  291,   81,  292,  281,  283,  286,  294,
+    10,   11,   20,  104,   19,    2,   95,  370,   98,  359,
+     3,   12,   13,   70,  375,  285,   72,   73,   74,   75,
+    76,   77,   78,   79,  291,   81,  292,  281,  283,  286,
 @@ -207,7 +146,7 @@
-   327,  156,  289,  271,  225,   14,   83,  137,   84,   85,
-    86,   87,   15,    2,   16,   17,   18,   93,  278,
+   194,  327,  156,  289,  271,  225,   14,   83,  137,   84,
+    85,   86,   87,   15,   16,   17,   18,   93,  278,
  };
 -short yysindex[] = {                                      0,
 +static short yysindex[] = {                                      0,
  };
 -short yygindex[] = {                                      0,
 +static short yygindex[] = {                                      0,
-     0,    0,  196,  425,    0,   -2,    0,   37,  634,  -94,
-     0,    0,    0, -323,  -15, 2445,    0,  999,  414,  417,
-     0,    0,    0,  463,  -43,    0,    0,  321, -198,  103,
+     0,    0,  196,  425,    0,    0,   -2,    0,   37,  634,
+   -94,    0,    0,    0, -323,  -15, 2445,    0,  999,  414,
+   417,    0,    0,    0,  463,  -43,    0,    0,  321, -198,
 @@ -300,7 +239,7 @@
      0,    0,    0,    0,    0,    0,    0,    0,    0,
  };
 -char *yyrule[] = {
 +static char *yyrule[] = {
  "$accept : prog",
- "$$1 :",
- "prog : $$1 lineseq",
+ "prog : progstart lineseq",
+ "block : '{' remember lineseq '}'",
 @@ -1456,17 +1395,6 @@
  #define YYMAXDEPTH 500
  #endif
 -short yyss[YYSTACKSIZE];
 -YYSTYPE yyvs[YYSTACKSIZE];
 -#define yystacksize YYSTACKSIZE
- #line 789 "perly.y"
+ #line 793 "perly.y"
   /* PROGRAM */
  
 @@ -1477,7 +1405,7 @@
  #define yyparse() Perl_yyparse(pTHX)
  
 -#line 1481 "y.tab.c"
-+#line 1481 "perly.c"
++#line 1409 "perly.c"
  #define YYABORT goto yyabort
  #define YYACCEPT goto yyaccept
  #define YYERROR goto yyerrlab
-@@ -1485,10 +1413,30 @@
+@@ -1485,11 +1413,31 @@
  yyparse()
  {
      register int yym, yyn, yystate;
      register char *yys;
 -    extern char *getenv();
 +#endif
++
 +    struct ysv *ysave;
 +#ifdef USE_ITHREADS
 +    ENTER;                    /* force yydestruct() before we return */
 +    ysave->oldyychar  = yychar;
 +    ysave->oldyyval   = yyval;
 +    ysave->oldyylval  = yylval;
-+  
+-    if (yys = getenv("YYDEBUG"))
 +#if YYDEBUG
-     if (yys = getenv("YYDEBUG"))
++    if ((yys = getenv("YYDEBUG")))
      {
          yyn = *yys;
-@@ -1501,6 +1449,16 @@
+         if (yyn >= '0' && yyn <= '9')
+@@ -1501,12 +1449,22 @@
      yyerrflag = 0;
      yychar = (-1);
  
      yyssp = yyss;
      yyvsp = yyvs;
      *yyssp = yystate = 0;
+ yyloop:
+-    if (yyn = yydefred[yystate]) goto yyreduce;
++    if ((yyn = yydefred[yystate])) goto yyreduce;
+     if (yychar < 0)
+     {
+         if ((yychar = yylex()) < 0) yychar = 0;
 @@ -1516,7 +1474,7 @@
              yys = 0;
              if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
  #endif
          if (yyssp >= yyss + yystacksize - 1)
          {
--            goto yyoverflow;
 +          /*
 +          ** reallocate and recover.  Note that pointers
 +          ** have to be reset, or bad things will happen
 +          ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
 +          ysave->yyss = Renew(yyss, yystacksize, short);
 +          if (!yyvs || !yyss)
-             goto yyoverflow;
+             goto yyoverflow;
 +          yyssp = yyss + yyps_index;
 +          yyvsp = yyvs + yypv_index;
          }
          *++yyssp = yystate = yytable[yyn];
          *++yyvsp = yylval;
-@@ -1549,12 +1519,12 @@
+@@ -1547,14 +1517,14 @@
+     }
+     if (yyerrflag) goto yyinrecovery;
  #ifdef lint
-     goto yynewerror;
+-    goto yynewerror;
++
  #endif
 -yynewerror:
 +
      yyerror("syntax error");
  #ifdef lint
-     goto yyerrlab;
+-    goto yyerrlab;
++
  #endif
 -yyerrlab:
 +
  #endif
                  if (yyssp >= yyss + yystacksize - 1)
                  {
--                    goto yyoverflow;
 +                  /*
 +                  ** reallocate and recover.  Note that pointers
 +                  ** have to be reset, or bad things will happen
 +                  ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
 +                  ysave->yyss = Renew(yyss, yystacksize, short);
 +                  if (!yyvs || !yyss)
-                     goto yyoverflow;
+                     goto yyoverflow;
 +                  yyssp = yyss + yyps_index;
 +                  yyvsp = yyvs + yypv_index;
                  }
  #endif
      yym = yylen[yyn];
 @@ -2473,7 +2455,7 @@
- #line 786 "perly.y"
+ #line 790 "perly.y"
  { yyval.opval = yyvsp[0].opval; }
  break;
 -#line 2477 "y.tab.c"
-+#line 2477 "perly.c"
++#line 2459 "perly.c"
      }
      yyssp -= yym;
      yystate = *yyssp;
                          YYFINAL, yychar, yys);
              }
  #endif
-@@ -2513,20 +2495,54 @@
+@@ -2513,20 +2495,50 @@
          yystate = yydgoto[yym];
  #if YYDEBUG
      if (yydebug)
  #endif
      if (yyssp >= yyss + yystacksize - 1)
      {
--        goto yyoverflow;
 +      /*
 +      ** reallocate and recover.  Note that pointers
 +      ** have to be reset, or bad things will happen
 +      ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
 +      ysave->yyss = Renew(yyss, yystacksize, short);
 +      if (!yyvs || !yyss)
-         goto yyoverflow;
+         goto yyoverflow;
 +      yyssp = yyss + yyps_index;
 +      yyvsp = yyvs + yypv_index;
      }
 +    return retval;
 +}
 +
-+#ifdef PERL_OBJECT
-+#include "XSUB.h"
-+#endif
-+
 +static void
-+yydestruct(pTHXo_ void *ptr)
++yydestruct(pTHX_ void *ptr)
 +{
 +    struct ysv* ysave = (struct ysv*)ptr;
 +    if (ysave->yyss) Safefree(ysave->yyss);