X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=warnings.h;h=de9355ddfa2bb64f8ee877a5f7c12137be15a22d;hb=7207e29d564e32c8ec2cb43eabae72ff68c02442;hp=a2bcaeb43edc039d31311854d3f8fd31f5f88584;hpb=d3a7d8c7d7e4d69d7d81e4e3e900ec57f07ca07c;p=p5sagit%2Fp5-mst-13.2.git diff --git a/warnings.h b/warnings.h index a2bcaeb..de9355d 100644 --- a/warnings.h +++ b/warnings.h @@ -22,96 +22,90 @@ #define specialWARN(x) ((x) == pWARN_STD || (x) == pWARN_ALL || \ (x) == pWARN_NONE) +#define WARN_ALL 0 +#define WARN_CLOSURE 1 +#define WARN_EXITING 2 +#define WARN_GLOB 3 +#define WARN_IO 4 +#define WARN_CLOSED 5 +#define WARN_EXEC 6 +#define WARN_NEWLINE 7 +#define WARN_PIPE 8 +#define WARN_UNOPENED 9 +#define WARN_MISC 10 +#define WARN_NUMERIC 11 +#define WARN_ONCE 12 +#define WARN_OVERFLOW 13 +#define WARN_PACK 14 +#define WARN_PORTABLE 15 +#define WARN_RECURSION 16 +#define WARN_REDEFINE 17 +#define WARN_REGEXP 18 +#define WARN_SEVERE 19 +#define WARN_DEBUGGING 20 +#define WARN_INPLACE 21 +#define WARN_INTERNAL 22 +#define WARN_MALLOC 23 +#define WARN_SIGNAL 24 +#define WARN_SUBSTR 25 +#define WARN_SYNTAX 26 +#define WARN_AMBIGUOUS 27 +#define WARN_BAREWORD 28 +#define WARN_DEPRECATED 29 +#define WARN_DIGIT 30 +#define WARN_PARENTHESIS 31 +#define WARN_PRECEDENCE 32 +#define WARN_PRINTF 33 +#define WARN_PROTOTYPE 34 +#define WARN_QW 35 +#define WARN_RESERVED 36 +#define WARN_SEMICOLON 37 +#define WARN_TAINT 38 +#define WARN_UNINITIALIZED 39 +#define WARN_UNPACK 40 +#define WARN_UNTIE 41 +#define WARN_UTF8 42 +#define WARN_VOID 43 +#define WARN_Y2K 44 + +#define WARNsize 12 +#define WARN_ALLstring "\125\125\125\125\125\125\125\125\125\125\125\125" +#define WARN_NONEstring "\0\0\0\0\0\0\0\0\0\0\0\0" + +#define isLEXWARN_on (PL_curcop->cop_warnings != pWARN_STD) +#define isLEXWARN_off (PL_curcop->cop_warnings == pWARN_STD) +#define isWARN_ONCE (PL_dowarn & (G_WARN_ON|G_WARN_ONCE)) +#define isWARN_on(c,x) (IsSet(SvPVX(c), 2*(x))) +#define isWARNf_on(c,x) (IsSet(SvPVX(c), 2*(x)+1)) #define ckDEAD(x) \ ( ! specialWARN(PL_curcop->cop_warnings) && \ - IsSet(SvPVX(PL_curcop->cop_warnings), 2*x+1)) + ( isWARNf_on(PL_curcop->cop_warnings, WARN_ALL) || \ + isWARNf_on(PL_curcop->cop_warnings, x))) #define ckWARN(x) \ - ( (PL_curcop->cop_warnings != pWARN_STD && \ - PL_curcop->cop_warnings != pWARN_NONE && \ + ( (isLEXWARN_on && PL_curcop->cop_warnings != pWARN_NONE && \ (PL_curcop->cop_warnings == pWARN_ALL || \ - IsSet(SvPVX(PL_curcop->cop_warnings), 2*x) ) ) \ - || (PL_curcop->cop_warnings == pWARN_STD && PL_dowarn & G_WARN_ON) ) + isWARN_on(PL_curcop->cop_warnings, x) ) ) \ + || (isLEXWARN_off && PL_dowarn & G_WARN_ON) ) #define ckWARN2(x,y) \ - ( (PL_curcop->cop_warnings != pWARN_STD && \ - PL_curcop->cop_warnings != pWARN_NONE && \ + ( (isLEXWARN_on && PL_curcop->cop_warnings != pWARN_NONE && \ (PL_curcop->cop_warnings == pWARN_ALL || \ - IsSet(SvPVX(PL_curcop->cop_warnings), 2*x) || \ - IsSet(SvPVX(PL_curcop->cop_warnings), 2*y) ) ) \ - || (PL_curcop->cop_warnings == pWARN_STD && PL_dowarn & G_WARN_ON) ) + isWARN_on(PL_curcop->cop_warnings, x) || \ + isWARN_on(PL_curcop->cop_warnings, y) ) ) \ + || (isLEXWARN_off && PL_dowarn & G_WARN_ON) ) #define ckWARN_d(x) \ - (PL_curcop->cop_warnings == pWARN_STD || \ - PL_curcop->cop_warnings == pWARN_ALL || \ + (isLEXWARN_off || PL_curcop->cop_warnings == pWARN_ALL || \ (PL_curcop->cop_warnings != pWARN_NONE && \ - IsSet(SvPVX(PL_curcop->cop_warnings), 2*x) ) ) + isWARN_on(PL_curcop->cop_warnings, x) ) ) #define ckWARN2_d(x,y) \ - (PL_curcop->cop_warnings == pWARN_STD || \ - PL_curcop->cop_warnings == pWARN_ALL || \ + (isLEXWARN_off || PL_curcop->cop_warnings == pWARN_ALL || \ (PL_curcop->cop_warnings != pWARN_NONE && \ - (IsSet(SvPVX(PL_curcop->cop_warnings), 2*x) || \ - IsSet(SvPVX(PL_curcop->cop_warnings), 2*y) ) ) ) - - -#define isLEXWARN_on (PL_curcop->cop_warnings != pWARN_STD) -#define isLEXWARN_off (PL_curcop->cop_warnings == pWARN_STD) -#define isWARN_ONCE (PL_dowarn & (G_WARN_ON|G_WARN_ONCE)) -#define isWARN_on(c,x) (IsSet(SvPVX(c), 2*(x))) - -#define WARN_ALL 0 -#define WARN_CHMOD 1 -#define WARN_CLOSURE 2 -#define WARN_EXITING 3 -#define WARN_GLOB 4 -#define WARN_IO 5 -#define WARN_CLOSED 6 -#define WARN_EXEC 7 -#define WARN_NEWLINE 8 -#define WARN_PIPE 9 -#define WARN_UNOPENED 10 -#define WARN_MISC 11 -#define WARN_NUMERIC 12 -#define WARN_ONCE 13 -#define WARN_OVERFLOW 14 -#define WARN_PACK 15 -#define WARN_PORTABLE 16 -#define WARN_RECURSION 17 -#define WARN_REDEFINE 18 -#define WARN_REGEXP 19 -#define WARN_SEVERE 20 -#define WARN_DEBUGGING 21 -#define WARN_INPLACE 22 -#define WARN_INTERNAL 23 -#define WARN_MALLOC 24 -#define WARN_SIGNAL 25 -#define WARN_SUBSTR 26 -#define WARN_SYNTAX 27 -#define WARN_AMBIGUOUS 28 -#define WARN_BAREWORD 29 -#define WARN_DEPRECATED 30 -#define WARN_DIGIT 31 -#define WARN_PARENTHESIS 32 -#define WARN_PRECEDENCE 33 -#define WARN_PRINTF 34 -#define WARN_PROTOTYPE 35 -#define WARN_QW 36 -#define WARN_RESERVED 37 -#define WARN_SEMICOLON 38 -#define WARN_TAINT 39 -#define WARN_UMASK 40 -#define WARN_UNINITIALIZED 41 -#define WARN_UNPACK 42 -#define WARN_UNTIE 43 -#define WARN_UTF8 44 -#define WARN_VOID 45 -#define WARN_Y2K 46 - -#define WARNsize 12 -#define WARN_ALLstring "\125\125\125\125\125\125\125\125\125\125\125\125" -#define WARN_NONEstring "\0\0\0\0\0\0\0\0\0\0\0\0" + (isWARN_on(PL_curcop->cop_warnings, x) || \ + isWARN_on(PL_curcop->cop_warnings, y) ) ) ) /* end of file warnings.h */