This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade to Getopt::Long 2.24_01, from Johan Vromans.
[perl5.git] / cop.h
diff --git a/cop.h b/cop.h
index e0a8127..5c3bafa 100644 (file)
--- a/cop.h
+++ b/cop.h
@@ -1,6 +1,6 @@
 /*    cop.h
  *
- *    Copyright (c) 1991-2000, Larry Wall
+ *    Copyright (c) 1991-2001, Larry Wall
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
@@ -21,6 +21,7 @@ struct cop {
     I32                cop_arybase;    /* array base this line was compiled with */
     line_t      cop_line;       /* line # of this command */
     SV *       cop_warnings;   /* lexical warnings bitmask */
+    SV *       cop_io;         /* lexical IO defaults */
 };
 
 #define Nullcop Null(COP*)
@@ -35,10 +36,10 @@ struct cop {
 #  define CopFILEAV(c)         (CopFILE(c) \
                                 ? GvAV(gv_fetchfile(CopFILE(c))) : Nullav)
 #  define CopSTASHPV(c)                ((c)->cop_stashpv)
-#  define CopSTASHPV_set(c,pv) ((c)->cop_stashpv = savepv(pv))
+#  define CopSTASHPV_set(c,pv) ((c)->cop_stashpv = ((pv) ? savepv(pv) : Nullch))
 #  define CopSTASH(c)          (CopSTASHPV(c) \
                                 ? gv_stashpv(CopSTASHPV(c),GV_ADD) : Nullhv)
-#  define CopSTASH_set(c,hv)   CopSTASHPV_set(c, HvNAME(hv))
+#  define CopSTASH_set(c,hv)   CopSTASHPV_set(c, (hv) ? HvNAME(hv) : Nullch)
 #  define CopSTASH_eq(c,hv)    ((hv)                                   \
                                 && (CopSTASHPV(c) == HvNAME(hv)        \
                                     || (CopSTASHPV(c) && HvNAME(hv)    \
@@ -80,6 +81,7 @@ struct block_sub {
     U16                olddepth;
     U8         hasargs;
     U8         lval;           /* XXX merge lval and hasargs? */
+    SV **      oldcurpad;
 };
 
 #define PUSHSUB(cx)                                                    \
@@ -126,7 +128,7 @@ struct block_sub {
                cx->blk_sub.argarray = newAV();                         \
                av_extend(cx->blk_sub.argarray, fill);                  \
                AvFLAGS(cx->blk_sub.argarray) = AVf_REIFY;              \
-               PL_curpad[0] = (SV*)cx->blk_sub.argarray;               \
+               cx->blk_sub.oldcurpad[0] = (SV*)cx->blk_sub.argarray;   \
            }                                                           \
            else {                                                      \
                CLEAR_ARGARRAY(cx->blk_sub.argarray);                   \
@@ -392,7 +394,7 @@ Used to indicate scalar context.  See C<GIMME_V>, C<GIMME>, and
 L<perlcall>.
 
 =for apidoc AmU||G_ARRAY
-Used to indicate array context.  See C<GIMME_V>, C<GIMME> and
+Used to indicate list context.  See C<GIMME_V>, C<GIMME> and
 L<perlcall>.
 
 =for apidoc AmU||G_VOID
@@ -432,6 +434,7 @@ L<perlcall>.
 #define EVAL_INEVAL    1       /* some enclosing scope is an eval */
 #define EVAL_WARNONLY  2       /* used by yywarn() when calling yyerror() */
 #define EVAL_KEEPERR   4       /* set by Perl_call_sv if G_KEEPERR */
+#define EVAL_INREQUIRE 8       /* The code is being required. */
 
 /* Support for switching (stack and block) contexts.
  * This ensures magic doesn't invalidate local stack and cx pointers.