X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/948f26d830ad7b1a8ea13a8bf29ddc1438fa8d87..4401d04fb5d35210517d0f5c763d2f8495d34b75:/warnings.h diff --git a/warnings.h b/warnings.h index e0c12ed..0677df1 100644 --- a/warnings.h +++ b/warnings.h @@ -18,8 +18,8 @@ #define G_WARN_ALL_MASK (G_WARN_ALL_ON|G_WARN_ALL_OFF) #define pWARN_STD NULL -#define pWARN_ALL (((STRLEN*)0)+1) /* use warnings 'all' */ -#define pWARN_NONE (((STRLEN*)0)+2) /* no warnings 'all' */ +#define pWARN_ALL (STRLEN *) &PL_WARN_ALL /* use warnings 'all' */ +#define pWARN_NONE (STRLEN *) &PL_WARN_NONE /* no warnings 'all' */ #define specialWARN(x) ((x) == pWARN_STD || (x) == pWARN_ALL || \ (x) == pWARN_NONE) @@ -121,9 +121,94 @@ #define WARN_EXPERIMENTAL__SCRIPT_RUN 68 #define WARN_SHADOW 69 -#define WARNsize 18 -#define WARN_ALLstring "\125\125\125\125\125\125\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\0\0\0\0\0\0" +/* Warnings Categories added in Perl 5.029 */ + +#define WARN_EXPERIMENTAL__PRIVATE_USE 70 +#define WARN_EXPERIMENTAL__UNIPROP_WILDCARDS 71 +#define WARN_EXPERIMENTAL__VLB 72 + + +/* +=for apidoc Amnh||WARN_ALL +=for apidoc Amnh||WARN_CLOSURE +=for apidoc Amnh||WARN_DEPRECATED +=for apidoc Amnh||WARN_EXITING +=for apidoc Amnh||WARN_GLOB +=for apidoc Amnh||WARN_IO +=for apidoc Amnh||WARN_CLOSED +=for apidoc Amnh||WARN_EXEC +=for apidoc Amnh||WARN_LAYER +=for apidoc Amnh||WARN_NEWLINE +=for apidoc Amnh||WARN_PIPE +=for apidoc Amnh||WARN_UNOPENED +=for apidoc Amnh||WARN_MISC +=for apidoc Amnh||WARN_NUMERIC +=for apidoc Amnh||WARN_ONCE +=for apidoc Amnh||WARN_OVERFLOW +=for apidoc Amnh||WARN_PACK +=for apidoc Amnh||WARN_PORTABLE +=for apidoc Amnh||WARN_RECURSION +=for apidoc Amnh||WARN_REDEFINE +=for apidoc Amnh||WARN_REGEXP +=for apidoc Amnh||WARN_SEVERE +=for apidoc Amnh||WARN_DEBUGGING +=for apidoc Amnh||WARN_INPLACE +=for apidoc Amnh||WARN_INTERNAL +=for apidoc Amnh||WARN_MALLOC +=for apidoc Amnh||WARN_SIGNAL +=for apidoc Amnh||WARN_SUBSTR +=for apidoc Amnh||WARN_SYNTAX +=for apidoc Amnh||WARN_AMBIGUOUS +=for apidoc Amnh||WARN_BAREWORD +=for apidoc Amnh||WARN_DIGIT +=for apidoc Amnh||WARN_PARENTHESIS +=for apidoc Amnh||WARN_PRECEDENCE +=for apidoc Amnh||WARN_PRINTF +=for apidoc Amnh||WARN_PROTOTYPE +=for apidoc Amnh||WARN_QW +=for apidoc Amnh||WARN_RESERVED +=for apidoc Amnh||WARN_SEMICOLON +=for apidoc Amnh||WARN_TAINT +=for apidoc Amnh||WARN_THREADS +=for apidoc Amnh||WARN_UNINITIALIZED +=for apidoc Amnh||WARN_UNPACK +=for apidoc Amnh||WARN_UNTIE +=for apidoc Amnh||WARN_UTF8 +=for apidoc Amnh||WARN_VOID +=for apidoc Amnh||WARN_IMPRECISION +=for apidoc Amnh||WARN_ILLEGALPROTO +=for apidoc Amnh||WARN_NON_UNICODE +=for apidoc Amnh||WARN_NONCHAR +=for apidoc Amnh||WARN_SURROGATE +=for apidoc Amnh||WARN_EXPERIMENTAL +=for apidoc Amnh||WARN_EXPERIMENTAL__LEXICAL_SUBS +=for apidoc Amnh||WARN_EXPERIMENTAL__REGEX_SETS +=for apidoc Amnh||WARN_EXPERIMENTAL__SMARTMATCH +=for apidoc Amnh||WARN_EXPERIMENTAL__POSTDEREF +=for apidoc Amnh||WARN_EXPERIMENTAL__SIGNATURES +=for apidoc Amnh||WARN_SYSCALLS +=for apidoc Amnh||WARN_EXPERIMENTAL__BITWISE +=for apidoc Amnh||WARN_EXPERIMENTAL__CONST_ATTR +=for apidoc Amnh||WARN_EXPERIMENTAL__RE_STRICT +=for apidoc Amnh||WARN_EXPERIMENTAL__REFALIASING +=for apidoc Amnh||WARN_EXPERIMENTAL__WIN32_PERLIO +=for apidoc Amnh||WARN_LOCALE +=for apidoc Amnh||WARN_MISSING +=for apidoc Amnh||WARN_REDUNDANT +=for apidoc Amnh||WARN_EXPERIMENTAL__DECLARED_REFS +=for apidoc Amnh||WARN_EXPERIMENTAL__ALPHA_ASSERTIONS +=for apidoc Amnh||WARN_EXPERIMENTAL__SCRIPT_RUN +=for apidoc Amnh||WARN_SHADOW +=for apidoc Amnh||WARN_EXPERIMENTAL__PRIVATE_USE +=for apidoc Amnh||WARN_EXPERIMENTAL__UNIPROP_WILDCARDS +=for apidoc Amnh||WARN_EXPERIMENTAL__VLB + +=cut +*/ + +#define WARNsize 19 +#define WARN_ALLstring "\125\125\125\125\125\125\125\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\0\0\0\0\0\0\0" #define isLEXWARN_on \ cBOOL(PL_curcop && PL_curcop->cop_warnings != pWARN_STD) @@ -133,15 +218,19 @@ #define isWARN_on(c,x) (IsSet((U8 *)(c + 1), 2*(x))) #define isWARNf_on(c,x) (IsSet((U8 *)(c + 1), 2*(x)+1)) -#define DUP_WARNINGS(p) \ - (specialWARN(p) ? (STRLEN*)(p) \ - : (STRLEN*)CopyD(p, PerlMemShared_malloc(sizeof(*p)+*p), sizeof(*p)+*p, \ - char)) +#define DUP_WARNINGS(p) Perl_dup_warnings(aTHX_ p) /* =head1 Warning and Dieing +In all these calls, the C> parameters are warning category +constants. You can see the ones currently available in +L, just capitalize all letters in the names +and prefix them by C. So, for example, the category C used in a +perl program becomes C when used in XS code and passed to one of +the calls below. + =for apidoc Am|bool|ckWARN|U32 w Returns a boolean as to whether or not warnings are enabled for the warning