X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl.h;h=f14f897bdf841c7a459a01f4bc350040bb5a1688;hb=14befaf4eaa6e79d87aacb106e0b701e925483ee;hp=9f135b109c41b4add56e04bfbdd07c4e18c2a7dc;hpb=9f982a77c40f95867331948afd3f9e868947b9bc;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perl.h b/perl.h index 9f135b1..f14f897 100644 --- a/perl.h +++ b/perl.h @@ -2300,6 +2300,52 @@ Gid_t getegid (void); #endif /* DEBUGGING */ +/* These constants should be used in preference to to raw characters + * when using magic. Note that some perl guts still assume + * certain character properties of these constants, namely that + * isUPPER() and toLOWER() may do useful mappings. + * + * Update the magic_names table in dump.c when adding/amending these + */ + +#define PERL_MAGIC_sv '\0' /* Special scalar variable */ +#define PERL_MAGIC_overload 'A' /* %OVERLOAD hash */ +#define PERL_MAGIC_overload_elem 'a' /* %OVERLOAD hash element */ +#define PERL_MAGIC_overload_table 'c' /* Holds overload table (AMT) on stash */ +#define PERL_MAGIC_bm 'B' /* Boyer-Moore (fast string search) */ +#define PERL_MAGIC_regdata 'D' /* Regex match position data + (@+ and @- vars) */ +#define PERL_MAGIC_regdatum 'd' /* Regex match position data element */ +#define PERL_MAGIC_env 'E' /* %ENV hash */ +#define PERL_MAGIC_envelem 'e' /* %ENV hash element */ +#define PERL_MAGIC_fm 'f' /* Formline ('compiled' format) */ +#define PERL_MAGIC_regex_global 'g' /* m//g target / study()ed string */ +#define PERL_MAGIC_isa 'I' /* @ISA array */ +#define PERL_MAGIC_isaelem 'i' /* @ISA array element */ +#define PERL_MAGIC_nkeys 'k' /* scalar(keys()) lvalue */ +#define PERL_MAGIC_dbfile 'L' /* Debugger %_ might have been included somehow */ @@ -2317,7 +2363,7 @@ struct ufuncs { IV uf_index; }; -/* In pre-5.7-Perls the 'U' magic didn't get the thread context. +/* In pre-5.7-Perls the PERL_MAGIC_uvar magic didn't get the thread context. * XS code wanting to be backward compatible can do something * like the following: