Algorithm-QuadTree-XS

 view release on metacpan or  search on metacpan

ppport.h  view on Meta::CPAN

    $squeezed_b = $lc_b;
    $squeezed_b =~ s/^_+//g;
    $squeezed_b =~ s/\B_+\B//g;
    $squeezed_b =~ s/[\W]//g;

    return( $squeezed_a cmp $squeezed_b
         or       $lc_a cmp $lc_b
         or    $valid_a cmp $valid_b);
}

sub sort_api_lines  # Sort lines of the form flags|return|name|args...
                    # by 'name'
{
    $a =~ / ^ [^|]* \| [^|]* \| ( [^|]* ) /x; # 3rd field '|' is sep
    my $a_name = $1;
    $b =~ / ^ [^|]* \| [^|]* \| ( [^|]* ) /x;
    my $b_name = $1;
    return dictionary_order($a_name, $b_name);
}

1;

ppport.h  view on Meta::CPAN

cop_hints_exists_sv|5.033008|5.033008|
cop_hints_fetch_pv|5.013007|5.013007|
cop_hints_fetch_pvn|5.013007|5.013007|
cop_hints_fetch_pvs|5.013007|5.013007|
cop_hints_fetch_sv|5.013007|5.013007|
CopHINTS_get|5.009004||Viu
CopHINTS_set|5.009004||Viu
CopLABEL|5.009005|5.009005|
CopLABEL_alloc|5.009005||Viu
CopLABEL_len|5.016000|5.016000|
CopLABEL_len_flags|5.016000|5.016000|
CopLINE|5.006000|5.006000|
CopLINE_dec|5.006000||Viu
CopLINE_inc|5.006000||Viu
CopLINE_set|5.006000||Viu
COP_SEQMAX_INC|5.021006||Viu
COP_SEQ_RANGE_HIGH|5.009005||Viu
COP_SEQ_RANGE_LOW|5.009005||Viu
CopSTASH|5.006000|5.003007|p
CopSTASH_eq|5.006000|5.003007|p
CopSTASH_ne|5.006000||Viu

ppport.h  view on Meta::CPAN

CvANON|5.003007||Viu
CvANONCONST|5.021008||Viu
CvANONCONST_off|5.021008||Viu
CvANONCONST_on|5.021008||Viu
CvANON_off|5.003007||Viu
CvANON_on|5.003007||Viu
CvAUTOLOAD|5.015004||Viu
CvAUTOLOAD_off|5.015004||Viu
CvAUTOLOAD_on|5.015004||Viu
cv_ckproto|5.009004||Viu
cv_ckproto_len_flags|5.015004||xcViu
CvCLONE|5.003007||Viu
cv_clone|5.015001|5.015001|
CvCLONED|5.003007||Viu
CvCLONED_off|5.003007||Viu
CvCLONED_on|5.003007||Viu
cv_clone_into|5.017004||Viu
CvCLONE_off|5.003007||Viu
CvCLONE_on|5.003007||Viu
CvCONST|5.007001||Viu
CvCONST_off|5.007001||Viu

ppport.h  view on Meta::CPAN

CVf_LVALUE|5.006000||Viu
CVf_METHOD|5.005000||Viu
CVf_NAMED|5.017004||Viu
CVf_NODEBUG|5.004000||Viu
cv_forget_slab|5.017002||Vi
CVf_SIGNATURE|5.035009||Viu
CVf_SLABBED|5.017002||Viu
CVf_UNIQUE|5.004000||Viu
CVf_WEAKOUTSIDE|5.008001||Viu
cv_get_call_checker|5.013006|5.013006|
cv_get_call_checker_flags|5.027003|5.027003|
CvGV|5.003007|5.003007|
cvgv_from_hek|||ciu
cvgv_set|5.013003||cViu
CvGV_set|5.013003||Viu
CvHASEVAL|5.017002||Viu
CvHASEVAL_off|5.017002||Viu
CvHASEVAL_on|5.017002||Viu
CvHASGV|5.021004||Viu
CvHSCXT|5.021006||Viu
CvISXSUB|5.009004||Viu

ppport.h  view on Meta::CPAN

CvNODEBUG_off|5.004000||Viu
CvNODEBUG_on|5.004000||Viu
CvOUTSIDE|5.003007||Viu
CvOUTSIDE_SEQ|5.008001||Viu
CvPADLIST|5.008001|5.008001|x
CvPADLIST_set|5.021006||Viu
CvPROTO|5.015004||Viu
CvPROTOLEN|5.015004||Viu
CvROOT|5.003007||Viu
cv_set_call_checker|5.013006|5.013006|
cv_set_call_checker_flags|5.021004|5.021004|
CvSIGNATURE|5.035009||Viu
CvSIGNATURE_off|5.035009||Viu
CvSIGNATURE_on|5.035009||Viu
CvSLABBED|5.017002||Viu
CvSLABBED_off|5.017002||Viu
CvSLABBED_on|5.017002||Viu
CvSPECIAL|5.005003||Viu
CvSPECIAL_off|5.005003||Viu
CvSPECIAL_on|5.005003||Viu
CvSTART|5.003007||Viu
CvSTASH|5.003007|5.003007|
cvstash_set|5.013007||cViu
CvSTASH_set|5.013007||Viu
cv_undef|5.003007|5.003007|
cv_undef_flags|5.021004||Viu
CV_UNDEF_KEEP_NAME|5.021004||Viu
CvUNIQUE|5.004000||Viu
CvUNIQUE_off|5.004000||Viu
CvUNIQUE_on|5.004000||Viu
CvWEAKOUTSIDE|5.008001||Vi
CvWEAKOUTSIDE_off|5.008001||Viu
CvWEAKOUTSIDE_on|5.008001||Viu
CvXSUB|5.003007||Viu
CvXSUBANY|5.003007||Viu
CX_CUR|5.023008||Viu

ppport.h  view on Meta::CPAN

cx_dup|5.006000||cVu
CxEVALBLOCK|5.033007||Viu
CxEVAL_TXT_REFCNTED|5.025007||Viu
CxFOREACH|5.009003||Viu
CxHASARGS|5.010001||Viu
cxinc|5.003007||cVu
CXINC|5.003007||Viu
CxITERVAR|5.006000||Viu
CxLABEL|5.010001||Viu
CxLABEL_len|5.016000||Viu
CxLABEL_len_flags|5.016000||Viu
CX_LEAVE_SCOPE|5.023008||Viu
CxLVAL|5.010001||Viu
CxMULTICALL|5.009003||Viu
CxOLD_IN_EVAL|5.010001||Viu
CxOLD_OP_TYPE|5.010001||Viu
CxONCE|5.010001||Viu
CxPADLOOP|5.006000||Viu
CXp_EVALBLOCK|5.033007||Viu
CXp_FINALLY|5.035008||Viu
CXp_FOR_DEF|5.027008||Viu

ppport.h  view on Meta::CPAN

foldEQ|5.013002|5.013002|n
foldEQ_latin1|5.013008||cVnu
foldEQ_latin1_s2_folded|5.029007||Vniu
foldEQ_locale|5.013002|5.013002|n
FOLDEQ_LOCALE|5.019009||cV
FOLDEQ_S1_ALREADY_FOLDED|5.015004||cV
FOLDEQ_S1_FOLDS_SANE|5.021008||cV
FOLDEQ_S2_ALREADY_FOLDED|5.015004||cV
FOLDEQ_S2_FOLDS_SANE|5.021008||cV
foldEQ_utf8|5.013002|5.007003|p
foldEQ_utf8_flags|5.013010||cVu
FOLDEQ_UTF8_NOMIX_ASCII|5.013010||cV
FOLD_FLAGS_FULL|5.015006||Viu
FOLD_FLAGS_LOCALE|5.015006||Viu
FOLD_FLAGS_NOMIX_ASCII|5.017000||Viu
fopen|5.003007||Viu
forbid_setid|5.005000||Viu
force_ident|5.003007||Viu
force_ident_maybe_lex|5.017004||Viu
force_list|5.003007||Viu
force_next|5.003007||Viu

ppport.h  view on Meta::CPAN

get_ANYOFM_contents|5.027009||Viu
GETATARGET|5.003007||Viu
get_aux_mg|5.011000||Viu
get_av|5.006000|5.003007|p
getc|5.003007||Viu
get_c_backtrace|5.021001||Vi
get_c_backtrace_dump|5.021001||V
get_context|5.006000|5.006000|nu
getc_unlocked|5.003007||Viu
get_cv|5.006000|5.003007|p
get_cvn_flags|5.009005|5.003007|p
get_cvs|5.011000|5.003007|p
getcwd_sv|5.007002|5.007002|
get_db_sub|||iu
get_debug_opts|5.008001||Viu
get_deprecated_property_msg|5.031011||cVniu
getegid|5.005000||Viu
getenv|5.005000||Viu
getenv_len|5.006000||Viu
GETENV_LOCK|5.033005||Viu
GETENV_PRESERVES_OTHER_THREAD|5.033005|5.033005|Vn

ppport.h  view on Meta::CPAN

grok_atoUV|5.021010||cVni
grok_bin|5.007003|5.003007|p
grok_bin_oct_hex|5.031008||cVu
grok_bslash_c|5.013001||cViu
grok_bslash_N|5.017003||Viu
grok_bslash_o|5.013003||cViu
grok_bslash_x|5.017002||cViu
grok_hex|5.007003|5.003007|p
grok_infnan|5.021004|5.021004|
grok_number|5.007002|5.003007|p
grok_number_flags|5.021002|5.021002|
GROK_NUMERIC_RADIX|5.007002|5.003007|p
grok_numeric_radix|5.007002|5.003007|p
grok_oct|5.007003|5.003007|p
group_end|5.007003||Viu
GROUPP|5.005000||Viu
GROUPPN|5.031001||Viu
GROUPPN_t8|5.035004||Viu
GROUPPN_t8_p8|5.033003||Viu
GROUPPN_t8_pb|5.033003||Viu
GROUPPN_tb|5.035004||Viu

ppport.h  view on Meta::CPAN

gv_efullname|5.003007|5.003007|du
GvEGV|5.003007||Viu
GvEGVx|5.013000||Viu
GvENAME|5.003007||Viu
GvENAME_HEK|5.015004||Viu
GvENAMELEN|5.015004||Viu
GvENAMEUTF8|5.015004||Viu
GvESTASH|5.003007||Viu
GVf_ASSUMECV|5.003007||Viu
gv_fetchfile|5.003007|5.003007|
gv_fetchfile_flags|5.009005|5.009005|
gv_fetchmeth|5.003007|5.003007|
gv_fetchmeth_autoload|5.007003|5.007003|
gv_fetchmeth_internal|5.021007||Viu
gv_fetchmethod|5.003007|5.003007|
gv_fetchmethod_autoload|5.004000|5.004000|
gv_fetchmethod_flags|5.015004||Viu
gv_fetchmethod_pv_flags|5.015004|5.015004|xu
gv_fetchmethod_pvn_flags|5.015004|5.015004|xu
gv_fetchmethod_sv_flags|5.015004|5.015004|xu
gv_fetchmeth_pv|5.015004|5.015004|
gv_fetchmeth_pv_autoload|5.015004|5.015004|
gv_fetchmeth_pvn|5.015004|5.015004|
gv_fetchmeth_pvn_autoload|5.015004|5.015004|
gv_fetchmeth_sv|5.015004|5.015004|
gv_fetchmeth_sv_autoload|5.015004|5.015004|
gv_fetchpv|5.003007|5.003007|
gv_fetchpvn|5.013006|5.013006|
gv_fetchpvn_flags|5.009002|5.003007|p
gv_fetchpvs|5.009004|5.003007|p
gv_fetchsv|5.009002|5.003007|p
gv_fetchsv_nomg|5.015003|5.015003|
GvFILE|5.006000||Viu
GvFILEGV|5.003007||Viu
GvFILE_HEK|5.009004||Viu
GvFILEx|5.019006||Viu
GVf_IMPORTED|5.003007||Viu
GVf_IMPORTED_AV|5.003007||Viu
GVf_IMPORTED_CV|5.003007||Viu

ppport.h  view on Meta::CPAN

HVhek_KEYCANONICAL|5.010001||Viu
HVhek_MASK|5.008000||Viu
HVhek_PLACEHOLD|5.008000||Viu
HVhek_UNSHARED|5.009004||Viu
HVhek_UTF8|5.008000||Viu
HVhek_WASUTF8|5.008000||Viu
hv_iterinit|5.003007|5.003007|
hv_iterkey|5.003007|5.003007|
hv_iterkeysv|5.003007|5.003007|
hv_iternext|5.003007|5.003007|
hv_iternext_flags|5.008000|5.008000|x
hv_iternextsv|5.003007|5.003007|
HV_ITERNEXT_WANTPLACEHOLDERS|5.008000|5.008000|
hv_iterval|5.003007|5.003007|
HvKEYS|5.003007||Viu
hv_kill_backrefs|||xiu
hv_ksplit|5.003007|5.003007|u
HvLASTRAND_get|5.017011||Viu
HvLAZYDEL|5.003007||Viu
HvLAZYDEL_off|5.003007||Viu
HvLAZYDEL_on|5.003007||Viu

ppport.h  view on Meta::CPAN

HvRITER_get|5.009003||Viu
hv_riter_p|||u
HvRITER_set|5.009003||Viu
hv_riter_set|||u
hv_scalar|5.009001|5.009001|
HvSHAREKEYS|5.003007||Viu
HvSHAREKEYS_off|5.003007||Viu
HvSHAREKEYS_on|5.003007||Viu
hv_store|5.003007|5.003007|
hv_store_ent|5.003007|5.003007|
hv_store_flags|5.008000|5.008000|xu
hv_storehek|5.019006||Viu
hv_stores|5.009004|5.003007|p
HvTOTALKEYS|5.007003||Viu
hv_undef|5.003007|5.003007|
hv_undef_flags|||ciu
HvUSEDKEYS|5.007003||Viu
HYPHEN_UTF8|5.017004||Viu
I16_MAX|5.003007||Viu
I16_MIN|5.003007||Viu
I16SIZE|5.006000|5.006000|Vn
I16TYPE|5.006000|5.006000|Vn
I_32|5.006000|5.003007|
I32_MAX|5.003007||Viu
I32_MAX_P1|5.007002||Viu
I32_MIN|5.003007||Viu

ppport.h  view on Meta::CPAN

isUPPER_LC_utf8_safe|5.025009|5.006000|p
isUPPER_LC_uvchr|5.007001|5.007001|
isUPPER_uni|5.006000||Viu
isUPPER_utf8|5.031005|5.031005|
isUPPER_utf8_safe|5.025009|5.006000|p
isUPPER_uvchr|5.023009|5.006000|p
is_utf8_char|5.006000|5.006000|dn
IS_UTF8_CHAR|5.009003||Viu
isUTF8_CHAR|5.021001|5.006001|pn
is_utf8_char_buf|5.015008|5.015008|n
isUTF8_CHAR_flags|5.025005|5.025005|n
is_utf8_char_helper_|5.035004||cVnu
is_utf8_common|5.009003||Viu
is_utf8_FF_helper_|5.035004||cVnu
is_utf8_fixed_width_buf_flags|5.025006|5.025006|n
is_utf8_fixed_width_buf_loc_flags|5.025006|5.025006|n
is_utf8_fixed_width_buf_loclen_flags|5.025006|5.025006|n
_is_utf8_FOO|5.031006||cVu
is_utf8_invariant_string|5.025005|5.011000|pn
is_utf8_invariant_string_loc|5.027001|5.027001|n
is_utf8_non_invariant_string|5.027007||cVni
is_utf8_overlong|5.035004||Vniu
_is_utf8_perl_idcont|5.031006||cVu
_is_utf8_perl_idstart|5.031006||cVu
isUTF8_POSSIBLY_PROBLEMATIC|5.023003||Viu
is_utf8_string|5.006001|5.006001|n
is_utf8_string_flags|5.025006|5.025006|n
is_utf8_string_loc|5.008001|5.008001|n
is_utf8_string_loc_flags|5.025006|5.025006|n
is_utf8_string_loclen|5.009003|5.009003|n
is_utf8_string_loclen_flags|5.025006|5.025006|n
is_utf8_valid_partial_char|5.025005|5.025005|n
is_utf8_valid_partial_char_flags|5.025005|5.025005|n
is_VERTWS_cp_high|5.017006||Viu
is_VERTWS_high|5.017006||Viu
isVERTWS_uni|5.017006||Viu
isVERTWS_utf8|5.017006||Viu
isVERTWS_utf8_safe|5.025009||Viu
isVERTWS_uvchr|5.023009||Viu
isWARNf_on|5.006001||Viu
isWARN_on|5.006000||Viu
isWARN_ONCE|5.006000||Viu
isWB|5.021009||Viu

ppport.h  view on Meta::CPAN

MAXO|5.003007||Viu
MAXPATHLEN|5.006000||Viu
MAX_PORTABLE_UTF8_TWO_BYTE|5.011002||Viu
MAX_PRINT_A|5.033005||Viu
MAX_RECURSE_EVAL_NOCHANGE_DEPTH|5.009005||Viu
MAXSYSFD|5.003007||Viu
MAX_UNICODE_UTF8|5.027006||Viu
MAX_UNI_KEYWORD_INDEX|5.027011||Viu
MAX_UTF8_TWO_BYTE|5.019004||Viu
MAYBE_DEREF_GV|5.015003||Viu
MAYBE_DEREF_GV_flags|5.015003||Viu
MAYBE_DEREF_GV_nomg|5.015003||Viu
maybe_multimagic_gv|5.019004||Viu
mayberelocate|5.015006||Viu
MBLEN_LOCK|5.033005||Viu
MBLEN_UNLOCK|5.033005||Viu
MBOL|5.003007||Viu
MBOL_t8|5.035004||Viu
MBOL_t8_p8|5.033003||Viu
MBOL_t8_pb|5.033003||Viu
MBOL_tb|5.035004||Viu

ppport.h  view on Meta::CPAN

MY_CXT_INIT_INTERP|5.009003||Viu
my_cxt_init|||u
my_dirfd|5.009005|5.009005|nu
my_exit|5.003007|5.003007|
my_exit_jump|5.005000||Viu
my_failure_exit|5.004000|5.004000|u
my_fflush_all|5.006000|5.006000|u
my_fork|5.007003|5.007003|nu
my_kid|5.006000||Viu
my_lstat|5.013003||Viu
my_lstat_flags|5.013003||cViu
my_memrchr|5.027006||Vniu
my_mkostemp_cloexec|||niu
my_mkostemp|||niu
my_mkstemp_cloexec|||niu
my_mkstemp|||niu
my_nl_langinfo|5.027006||Vniu
my_pclose|5.003007|5.003007|u
my_popen|5.003007|5.003007|u
my_popen_list|5.007001|5.007001|u
my_setenv|5.003007|5.003007|
my_snprintf|5.009004||pvVn
my_socketpair|5.007003|5.007003|nu
my_sprintf|5.009003|5.003007|pdn
my_stat|5.013003||Viu
my_stat_flags|5.013003||cViu
my_strerror|5.021001||Viu
my_strftime|5.007002||V
my_strlcat|5.009004|5.003007|pn
my_strlcpy|5.009004|5.003007|pn
my_strnlen|5.027006|5.003007|pn
my_strtod|5.029010|5.029010|n
my_unexec|5.003007||Viu
my_vsnprintf|5.009004|5.009004|n
N0|5.029001||Viu
N10|5.029001||Viu

ppport.h  view on Meta::CPAN

newAV_alloc_xz|5.035001|5.035001|
newAVREF|5.003007|5.003007|u
newBINOP|5.003007|5.003007|
new_body_allocated|||Viu
new_body_from_arena|||Viu
Newc|5.003007||Viu
new_collate|5.006000||Viu
newCONDOP|5.003007|5.003007|
new_constant|||iu
newCONSTSUB|5.004005|5.003007|p
newCONSTSUB_flags|5.015006|5.015006|
new_ctype|5.006000||Viu
newCVREF|5.003007|5.003007|u
newDEFEROP|5.035004|5.035004|x
newDEFSVOP|5.021006|5.021006|
newFORM|5.003007|5.003007|u
newFOROP|5.013007|5.013007|
newGIVENOP|5.009003|5.009003|
newGIVWHENOP|5.027008||Viu
newGP|||xiu
newGVgen|5.003007|5.003007|u
newGVgen_flags|5.015004|5.015004|u
newGVOP|5.003007|5.003007|
newGVREF|5.003007|5.003007|u
new_he|5.005000||Viu
newHV|5.003007|5.003007|
newHVhv|5.005000|5.005000|u
newHVREF|5.003007|5.003007|u
_new_invlist|5.013010||cViu
_new_invlist_C_array|5.015008||cViu
newIO|5.003007|5.003007|u
newLISTOP|5.003007|5.003007|

ppport.h  view on Meta::CPAN

newSVavdefelem|5.019004||Viu
newSVhek|5.009003|5.009003|
newSViv|5.003007|5.003007|
newSVnv|5.006000|5.003007|
newSVOP|5.003007|5.003007|
newSVpadname|5.017004|5.017004|x
newSVpv|5.003007|5.003007|
newSVpvf|5.004000||vV
newSVpvf_nocontext|5.006000||vVn
newSVpvn|5.004005|5.003007|p
newSVpvn_flags|5.010001|5.003007|p
newSVpvn_share|5.007001|5.003007|p
newSVpvn_utf8|5.010001|5.003007|p
newSVpvs|5.009003|5.003007|p
newSVpvs_flags|5.010001|5.003007|p
newSVpv_share|5.013006|5.013006|
newSVpvs_share|5.009003|5.003007|p
newSVREF|5.003007|5.003007|u
newSVrv|5.003007|5.003007|
newSVsv|5.003007|5.003007|
newSVsv_flags|5.029009|5.003007|p
newSVsv_nomg|5.029009|5.003007|p
newSV_type|5.009005|5.003007|p
newSV_type_mortal|||
newSVuv|5.006000|5.003007|p
new_SV|||Viu
newTRYCATCHOP|5.033007|5.033007|x
newUNOP|5.003007|5.003007|
newUNOP_AUX|5.021007|5.021007|
new_version|5.009000|5.009000|
NEW_VERSION|5.019008||Viu
new_warnings_bitfield|||xciu
newWHENOP|5.027008|5.027008|
newWHILEOP|5.013007|5.013007|
Newx|5.009003|5.003007|p
Newxc|5.009003|5.003007|p
new_XNV|||Viu
new_XPVMG|||Viu
new_XPVNV|||Viu
newXS|5.006000|5.006000|
newXS_deffile|5.021006||cViu
newXS_flags|5.009004|5.009004|xu
newXS_len_flags|5.015006||Vi
newXSproto|5.006000|5.006000|
Newxz|5.009003|5.003007|p
Newz|5.003007||Viu
nextargv|5.003007||Viu
nextchar|5.005000||Viu
NEXT_LINE_CHAR|5.007003||Viu
NEXT_OFF|5.005000||Viu
next_symbol|5.007003||Viu
ninstr|5.003007|5.003007|n
NL_LANGINFO_LOCK|5.033005||Viu

ppport.h  view on Meta::CPAN

OP_IS_DIRHOP|5.015003||Viu
OP_IS_FILETEST|5.006001||Viu
OP_IS_FILETEST_ACCESS|5.008001||Viu
OP_IS_INFIX_BIT|5.021009||Viu
OP_IS_NUMCOMPARE|5.015003||Viu
OP_IS_SOCKET|5.006001||Viu
OP_IS_STAT|5.031001||Viu
OpLASTSIB_set|5.021011|5.003007|p
op_linklist|5.013006|5.013006|
op_lvalue|5.013007|5.013007|x
op_lvalue_flags|||ciu
OP_LVALUE_NO_CROAK|5.015001||Viu
OpMAYBESIB_set|5.021011|5.003007|p
opmethod_stash|5.021007||Viu
OpMORESIB_set|5.021011|5.003007|p
OP_NAME|5.007003|5.007003|
op_null|5.007002|5.007002|
OPpALLOW_FAKE|5.015006||Viu
op_parent|5.025001|5.025001|n
OPpARG1_MASK|5.021004||Viu
OPpARG2_MASK|5.021004||Viu

ppport.h  view on Meta::CPAN

parse_arithexpr|5.013008|5.013008|x
parse_barestmt|5.013007|5.013007|x
parse_block|5.013007|5.013007|x
parse_body|5.006000||Viu
parse_fullexpr|5.013008|5.013008|x
parse_fullstmt|5.013005|5.013005|x
parse_gv_stash_name|5.019004||Viu
parse_ident|5.017010||Viu
parse_label|5.013007|5.013007|x
parse_listexpr|5.013008|5.013008|x
parse_lparen_question_flags|5.017009||Viu
PARSE_OPTIONAL|5.013007|5.013007|
parser_dup|5.009000|5.009000|u
parser_free|5.009005||Viu
parser_free_nexttoke_ops|5.017006||Viu
parse_stmtseq|5.013006|5.013006|x
parse_subsignature|5.031003|5.031003|x
parse_termexpr|5.013008|5.013008|x
parse_unicode_opts|5.008001||Viu
parse_uniprop_string|5.027011||Viu
PATCHLEVEL|5.003007||Viu

ppport.h  view on Meta::CPAN

PL_endav|5.005000||Viu
PL_Env|5.006000||Viu
PL_envgv|5.005000||Viu
PL_errgv|5.004005|5.003007|p
PL_error_count||5.003007|ponu
PL_errors|5.006000||Viu
PL_e_script|5.005000||Viu
PL_eval_root|5.005000||Viu
PL_evalseq|5.005000||Viu
PL_eval_start|5.005000||Viu
PL_exit_flags|5.006000|5.006000|
PL_exitlist|5.005000||Viu
PL_exitlistlen|5.005000||Viu
PL_expect||5.003007|ponu
PL_fdpid|5.005000||Viu
PL_filemode|5.005000||Viu
PL_firstgv|5.005000||Viu
PL_forkprocess|5.005000||Viu
PL_formtarget|5.005000||Viu
PL_GCB_invlist|5.021009||Viu
PL_generation|5.005000||Viu

ppport.h  view on Meta::CPAN

regatom|5.005000||Viu
regbranch|5.005000||Viu
reg_check_named_buff_matched|5.009005||Vniu
regclass|5.005000||Viu
regcppop|5.005000||Viu
regcppush|5.005000||Viu
regcp_restore|5.025006||Viu
regcurly|5.013010||cVniu
REG_CUTGROUP_SEEN|5.019009||Viu
regdump|5.005000|5.005000|u
regdump_extflags|5.009005||Viu
regdump_intflags|5.019002||Viu
regdupe_internal|5.009005||cVu
regexec_flags|5.005000||cVu
REGEX_SET|5.031010||Viu
regex_set_precedence|5.021010||Vniu
REGEX_SET_t8|5.035004||Viu
REGEX_SET_t8_p8|5.033003||Viu
REGEX_SET_t8_pb|5.033003||Viu
REGEX_SET_tb|5.035004||Viu
REGEX_SET_tb_p8|5.033003||Viu
REGEX_SET_tb_pb|5.033003||Viu
REG_EXTFLAGS_NAME_SIZE|5.020000||Viu
regfree_internal|5.009005||cVu

ppport.h  view on Meta::CPAN

SANY|5.003007||Viu
SANY_t8|5.035004||Viu
SANY_t8_p8|5.033003||Viu
SANY_t8_pb|5.033003||Viu
SANY_tb|5.035004||Viu
SANY_tb_p8|5.033003||Viu
SANY_tb_pb|5.033003||Viu
save_adelete|5.011000|5.011000|u
SAVEADELETE|5.011000||Viu
save_aelem|5.004005|5.004005|u
save_aelem_flags|5.011000|5.011000|u
save_alloc|5.006000|5.006000|u
save_aptr|5.003007|5.003007|
save_ary|5.003007|5.003007|
SAVEBOOL|5.008001|5.008001|
save_bool|5.008001||cVu
save_clearsv|5.003007||cVu
SAVECLEARSV|5.003007||Vi
SAVECOMPILEWARNINGS|5.009004||Viu
SAVECOMPPAD|5.006000||Vi
SAVECOPFILE|5.006000||Viu

ppport.h  view on Meta::CPAN

save_freesv|5.010001||cVu
SAVEf_SETMAGIC|5.011000||Viu
SAVEGENERICPV|5.006001||Viu
save_generic_pvref|5.006001|5.006001|u
SAVEGENERICSV|5.005003||Viu
save_generic_svref|5.005003|5.005003|u
save_gp|5.004000|5.004000|
save_hash|5.003007|5.003007|
save_hdelete|5.011000|5.011000|u
SAVEHDELETE|5.011000||Viu
save_hek_flags|5.008000||Vniu
save_helem|5.004005|5.004005|u
save_helem_flags|5.011000|5.011000|u
SAVEHINTS|5.005000||Viu
save_hints|5.013005|5.013005|u
save_hptr|5.003007|5.003007|
SAVEI16|5.004000|5.004000|
save_I16|5.004000||cVu
SAVEI32|5.003007|5.003007|
save_I32|5.003007||cVu
SAVEI8|5.006000|5.006000|
save_I8|5.006000||cVu
SAVEINT|5.003007|5.003007|
save_int|5.003007||cVu
save_item|5.003007|5.003007|
SAVEIV|5.003007|5.003007|
save_iv|5.004000||cVu
save_lines|5.005000||Viu
save_list|5.003007|5.003007|d
SAVELONG|5.003007|5.003007|
save_long|5.003007||dcVu
save_magic_flags|5.019002||Viu
SAVE_MASK|5.013001||Viu
SAVEMORTALIZESV|5.007001|5.007001|
save_mortalizesv|5.010001||cVu
save_nogv|5.003007|5.003007|du
SAVEOP|5.005000||Viu
save_op|5.010001|5.010001|u
save_padsv_and_mortalize|5.010001|5.010001|u
SAVEPADSVANDMORTALIZE|5.010001||Viu
SAVEPADSV|||i
SAVEPARSER|5.009005||Viu

ppport.h  view on Meta::CPAN

save_pushi32ptr|5.013006|5.013006|u
save_pushptr|5.010001|5.010001|u
save_pushptri32ptr|5.010001||Viu
save_pushptrptr|5.013006|5.013006|u
savepv|5.003007|5.003007|
savepvn|5.003007|5.003007|
savepvs|5.009003|5.009003|
save_re_context|5.006000||cVu
save_scalar|5.003007|5.003007|
save_scalar_at|5.005000||Viu
save_set_svflags|5.009000|5.009000|u
SAVESETSVFLAGS|5.009000||Viu
savesharedpv|5.007003|5.007003|
SAVESHAREDPV|5.007003||Viu
savesharedpvn|5.009005|5.009005|
save_shared_pvref|5.007003|5.007003|u
savesharedpvs|5.013006|5.013006|
savesharedsvpv|5.013006|5.013006|
SAVESPTR|5.003007|5.003007|
save_sptr|5.003007||cVu
savestack_grow|5.003007|5.003007|u

ppport.h  view on Meta::CPAN

SBOX32_SKIP_MASK|5.027001||Viu
SBOX32_STATE_BITS|5.027001||Viu
SBOX32_STATE_BYTES|5.027001||Viu
SBOX32_STATE_WORDS|5.027001||Viu
SBOX32_STATIC_INLINE|5.027001||Viu
SBOX32_WARN2|5.027001||Viu
SBOX32_WARN3|5.027001||Viu
SBOX32_WARN4|5.027001||Viu
SBOX32_WARN5|5.027001||Viu
SBOX32_WARN6|5.027001||Viu
sb_rflags|5.006000||Viu
sb_rx|5.003007||Viu
sb_rxres|5.004000||Viu
sb_rxtainted|5.004000||Viu
sb_s|5.003007||Viu
sb_strend|5.003007||Viu
sb_targ|5.003007||Viu
scalar|5.003007||Viu
scalarboolean|5.005000||Viu
scalarkids|5.003007||Viu
scalar_mod_type|5.006000||Vniu

ppport.h  view on Meta::CPAN

SET_SVANY_FOR_BODYLESS_IV|5.023008||Viu
SET_SVANY_FOR_BODYLESS_NV|5.023008||Viu
SETTARG|5.003007||Viu
SET_THR|5.005000||Viu
SET_THREAD_SELF|5.005003||Viu
SETu|5.004000||Viu
setuid|5.005000||Viu
_setup_canned_invlist|5.019008||cViu
setvbuf|5.003007||Viu
share_hek|5.009003|5.009003|u
share_hek_flags|5.008000||Viu
share_hek_hek|5.009003||Viu
sharepvn|5.005000||Viu
SHARP_S_SKIP|5.007003||Viu
Shmat_t|5.003007|5.003007|Vn
SHORTSIZE|5.004000|5.004000|Vn
should_warn_nl|5.021001||Vniu
should_we_output_Debug_r|5.031011||Viu
SH_PATH|5.003007|5.003007|Vn
shutdown|5.005000||Viu
si_dup|5.007003|5.007003|u

ppport.h  view on Meta::CPAN

SKIP_next_fail_t8_pb|5.033003||Viu
SKIP_next_fail_tb|5.035004||Viu
SKIP_next_fail_tb_p8|5.033003||Viu
SKIP_next_fail_tb_pb|5.033003||Viu
SKIP_next_t8|5.035004||Viu
SKIP_next_t8_p8|5.033003||Viu
SKIP_next_t8_pb|5.033003||Viu
SKIP_next_tb|5.035004||Viu
SKIP_next_tb_p8|5.033003||Viu
SKIP_next_tb_pb|5.033003||Viu
skipspace_flags|5.019002||xcViu
SKIP_t8|5.035004||Viu
SKIP_t8_p8|5.033003||Viu
SKIP_t8_pb|5.033003||Viu
SKIP_tb|5.035004||Viu
SKIP_tb_p8|5.033003||Viu
SKIP_tb_pb|5.033003||Viu
skip_to_be_ignored_text|5.023004||Viu
Slab_Alloc|5.006000||cViu
Slab_Free|5.007003||cViu
Slab_to_ro|5.017002||Viu

ppport.h  view on Meta::CPAN

SLOPPYDIVIDE|5.003007||Viu
socket|5.005000||Viu
SOCKET_OPEN_MODE|5.008002||Viu
socketpair|5.005000||Viu
Sock_size_t|5.006000|5.006000|Vn
softref2xv|||iu
sortcv|5.009003||Viu
sortcv_stacked|5.009003||Viu
sortcv_xsub|5.009003||Viu
sortsv|5.007003|5.007003|
sortsv_flags|5.009003|5.009003|
sortsv_flags_impl|5.031011||Viu
SP|5.003007|5.003007|
space_join_names_mortal|5.009004||Viu
SPAGAIN|5.003007|5.003007|
S_PAT_MODS|5.009005||Viu
specialWARN|5.006000||Viu
SRAND48_R_PROTO|5.008000|5.008000|Vn
SRANDOM_R_PROTO|5.008000|5.008000|Vn
SRCLOSE|5.027008||Viu
SRCLOSE_t8|5.035004||Viu
SRCLOSE_t8_p8|5.033003||Viu

ppport.h  view on Meta::CPAN

SUCCEED_tb_p8|5.033003||Viu
SUCCEED_tb_pb|5.033003||Viu
SUSPEND|5.005000||Viu
SUSPEND_t8|5.035004||Viu
SUSPEND_t8_p8|5.033003||Viu
SUSPEND_t8_pb|5.033003||Viu
SUSPEND_tb|5.035004||Viu
SUSPEND_tb_p8|5.033003||Viu
SUSPEND_tb_pb|5.033003||Viu
sv_2bool|5.013006||cV
sv_2bool_flags|5.013006||cV
sv_2bool_nomg|5.017002||Viu
sv_2cv|5.003007|5.003007|
sv_2io|5.003007|5.003007|
sv_2iuv_common|5.009004||Viu
sv_2iuv_non_preserve|5.007001||Viu
sv_2iv|5.009001||cVu
sv_2iv_flags|5.009001|5.009001|
sv_2mortal|5.003007|5.003007|
sv_2num|5.010000||xVi
sv_2nv|5.013001||Viu
sv_2nv_flags|5.013001|5.013001|
sv_2pv|5.005000||pcVu
sv_2pvbyte|5.006000|5.003007|p
sv_2pvbyte_flags|5.031004|5.031004|u
sv_2pvbyte_nolen|5.009003||pcV
sv_2pv_flags|5.007002||pcV
sv_2pv_nolen|5.009003||pcV
sv_2pv_nomg|5.007002||Viu
sv_2pvutf8|5.006000|5.006000|
sv_2pvutf8_flags|5.031004|5.031004|u
sv_2pvutf8_nolen|5.009003||cV
sv_2uv|5.009001||pcVu
sv_2uv_flags|5.009001|5.009001|
sv_add_arena|5.003007||Vi
sv_add_backref|||iu
SvAMAGIC|5.003007||Viu
SvAMAGIC_off|5.003007|5.003007|nu
SvAMAGIC_on|5.003007|5.003007|nu
SvANY|5.003007||Viu
SvARENA_CHAIN_SET|||Viu
SvARENA_CHAIN|||Viu
sv_backoff|5.003007|5.003007|n
sv_bless|5.003007|5.003007|
sv_buf_to_ro|5.019008||Viu
sv_buf_to_rw|5.019008||Viu
SvCANCOW|5.017007||Viu
SvCANEXISTDELETE|5.011000||Viu
SV_CATBYTES|5.021005|5.021005|
sv_cat_decode|5.008001|5.008001|
sv_cathek|5.021004||Viu
sv_catpv|5.003007|5.003007|
sv_catpvf|5.004000||vV
sv_catpv_flags|5.013006|5.013006|
sv_catpvf_mg|5.004005||pvV
sv_catpvf_mg_nocontext|5.006000||pvVn
sv_catpvf_nocontext|5.006000||vVn
sv_catpv_mg|5.004005|5.003007|p
sv_catpvn|5.003007|5.003007|
sv_catpvn_flags|5.007002|5.007002|
sv_catpvn_mg|5.004005|5.003007|p
sv_catpvn_nomg|5.007002|5.003007|p
sv_catpvn_nomg_maybeutf8|5.017005||Viu
sv_catpvn_nomg_utf8_upgrade|5.017002||Viu
sv_catpv_nomg|5.013006|5.013006|
sv_catpvs|5.009003|5.003007|p
sv_catpvs_flags|5.013006|5.013006|
sv_catpvs_mg|5.013006|5.013006|
sv_catpvs_nomg|5.013006|5.013006|
sv_catsv|5.003007|5.003007|
sv_catsv_flags|5.007002|5.007002|
sv_catsv_mg|5.004005|5.003007|p
sv_catsv_nomg|5.007002|5.003007|p
SV_CATUTF8|5.021005|5.021005|
sv_catxmlpvs|5.013006||Viu
SV_CHECK_THINKFIRST|5.008001||Viu
SV_CHECK_THINKFIRST_COW_DROP|5.009000||Viu
sv_chop|5.003007|5.003007|
sv_clean_all|5.003007||Vi
sv_clean_objs|5.003007||Vi
sv_clear|5.003007|5.003007|
sv_cmp|5.003007|5.003007|
sv_cmp_flags|5.013006|5.013006|
sv_cmp_locale|5.004000|5.004000|
sv_cmp_locale_flags|5.013006|5.013006|
sv_collxfrm|5.013006||V
sv_collxfrm_flags|5.013006|5.013006|
SvCOMPILED|5.003007||Viu
SvCOMPILED_off|5.003007||Viu
SvCOMPILED_on|5.003007||Viu
SV_CONST|5.019002||Viu
SV_CONST_BINMODE|5.019002||Viu
SV_CONST_CLEAR|5.019002||Viu
SV_CONST_CLOSE|5.019002||Viu
SV_CONST_DELETE|5.019002||Viu
SV_CONST_DESTROY|5.019002||Viu
SV_CONST_EOF|5.019002||Viu

ppport.h  view on Meta::CPAN

SV_CONST_STORESIZE|5.019002||Viu
SV_CONST_TELL|5.019002||Viu
SV_CONST_TIEARRAY|5.019002||Viu
SV_CONST_TIEHANDLE|5.019002||Viu
SV_CONST_TIEHASH|5.019002||Viu
SV_CONST_TIESCALAR|5.019002||Viu
SV_CONST_UNSHIFT|5.019002||Viu
SV_CONST_UNTIE|5.019002||Viu
SV_CONST_WRITE|5.019002||Viu
sv_copypv|5.007003|5.007003|
sv_copypv_flags|5.017002|5.017002|
sv_copypv_nomg|5.017002|5.017002|
SV_COW_DROP_PV|5.008001|5.003007|p
SV_COW_OTHER_PVS|5.009005||Viu
SV_COW_REFCNT_MAX|5.017007||Viu
SV_COW_SHARED_HASH_KEYS|5.009005|5.003007|poVnu
SvCUR|5.003007|5.003007|
SvCUR_set|5.003007|5.003007|
sv_dec|5.003007|5.003007|
sv_dec_nomg|5.013002|5.013002|
sv_del_backref|5.006000||cViu

ppport.h  view on Meta::CPAN

sv_does_sv|5.015004|5.015004|
sv_dump|5.003007|5.003007|
sv_dup|5.007003|5.007003|u
sv_dup_common|5.013002||Viu
sv_dup_inc|5.013002|5.013002|u
sv_dup_inc_multiple|5.011000||Viu
SvEND|5.003007|5.003007|
SvEND_set|5.003007||Viu
SvENDx|5.003007||Viu
sv_eq|5.003007|5.003007|
sv_eq_flags|5.013006|5.013006|
sv_exp_grow|5.009003||Viu
SVf256|5.008001||Viu
SVf32|5.009002||Viu
SVf|5.006000|5.003007|p
SvFAKE|5.003007||Viu
SvFAKE_off|5.003007||Viu
SvFAKE_on|5.003007||Viu
SVf_AMAGIC|5.003007||Viu
SVfARG|5.009005|5.003007|p
SVf_BREAK|5.003007||Viu
SVf_FAKE|5.003007||Viu
SVf_IOK|5.003007||Viu
SVf_IsCOW|5.017006||Viu
SVf_IVisUV|5.006000||Viu
SvFLAGS|5.003007||Viu
SVf_NOK|5.003007||Viu
SVf_OK|5.003007||Viu
SVf_OOK|5.003007||Viu
sv_force_normal|5.006000|5.006000|
sv_force_normal_flags|5.007001|5.007001|
SV_FORCE_UTF8_UPGRADE|5.011000|5.011000|
SVf_POK|5.003007||Viu
SVf_PROTECT|5.021005||Viu
SVf_READONLY|5.003007||Viu
sv_free2|||xciu
sv_free|5.003007|5.003007|
sv_free_arenas|5.003007||Vi
SVf_ROK|5.003007||Viu
SVf_THINKFIRST|5.003007||Viu
SVf_UTF8|5.006000|5.003007|p

ppport.h  view on Meta::CPAN

SV_HAS_TRAILING_NUL|5.009004|5.003007|p
SV_IMMEDIATE_UNREF|5.007001|5.003007|p
SvIMMORTAL|5.004000||Viu
SvIMMORTAL_INTERP|5.027003||Viu
SvIMMORTAL_TRUE|5.027003||Viu
sv_inc|5.003007|5.003007|
sv_i_ncmp|5.009003||Viu
sv_i_ncmp_desc|5.031011||Viu
sv_inc_nomg|5.013002|5.013002|
sv_insert|5.003007|5.003007|
sv_insert_flags|5.010001|5.010001|
SvIOK|5.003007|5.003007|
SvIOK_nog|5.017002||Viu
SvIOK_nogthink|5.017002||Viu
SvIOK_notUV|5.006000|5.006000|
SvIOK_off|5.003007|5.003007|
SvIOK_on|5.003007|5.003007|
SvIOK_only|5.003007|5.003007|
SvIOK_only_UV|5.006000|5.006000|
SvIOKp|5.003007|5.003007|
SvIOKp_on|5.003007||Viu

ppport.h  view on Meta::CPAN

sv_magic|5.003007|5.003007|
SvMAGIC|5.003007||Viu
SvMAGICAL|5.003007||Viu
SvMAGICAL_off|5.003007||Viu
SvMAGICAL_on|5.003007||Viu
sv_magicext|5.007003|5.007003|
sv_magicext_mglob|5.019002||cViu
sv_magic_portable||5.004000|pou
SvMAGIC_set|5.009003|5.003007|p
sv_mortalcopy|5.003007|5.003007|
sv_mortalcopy_flags|5.031001|5.003007|p
SV_MUTABLE_RETURN|5.009003|5.003007|poVnu
sv_ncmp|5.009003||Viu
sv_ncmp_desc|5.031011||Viu
sv_newmortal|5.003007|5.003007|
sv_newref|5.003007||cV
SvNIOK|5.003007|5.003007|
SvNIOK_nog|5.017002||Viu
SvNIOK_nogthink|5.017002||Viu
SvNIOK_off|5.003007|5.003007|
SvNIOKp|5.003007|5.003007|

ppport.h  view on Meta::CPAN

SvNOK_off|5.003007|5.003007|
SvNOK_on|5.003007|5.003007|
SvNOK_only|5.003007|5.003007|
SvNOKp|5.003007|5.003007|
SvNOKp_on|5.003007||Viu
sv_nolocking|5.031004|5.031004|d
sv_nosharing|5.007003|5.007003|
SV_NOSTEAL|5.009002|5.003007|p
sv_nounlocking|5.009004|5.009004|d
sv_numeq|5.035009|5.035009|
sv_numeq_flags|5.035009|5.035009|
sv_nv|5.005000||dcV
SvNV|5.006000|5.003007|
SvNV_nomg|5.013002|5.003007|p
SvNV_set|5.006000|5.003007|
SvNVX|5.006000|5.003007|
SvNVx|5.006000|5.003007|
SvNVXx|5.003007||Viu
SvOBJECT|5.003007||Viu
SvOBJECT_off|5.003007||Viu
SvOBJECT_on|5.003007||Viu

ppport.h  view on Meta::CPAN

SvPOK_only|5.003007|5.003007|
SvPOK_only_UTF8|5.006000|5.006000|
SvPOK_or_cached_IV|||Viu
SvPOKp|5.003007|5.003007|
SvPOKp_on|5.003007||Viu
SvPOK_pure_nogthink|5.017003||Viu
SvPOK_utf8_nog|5.017002||Viu
SvPOK_utf8_nogthink|5.017002||Viu
SvPOK_utf8_pure_nogthink|5.017003||Viu
sv_pos_b2u|5.006000|5.006000|
sv_pos_b2u_flags|5.019003|5.019003|
sv_pos_b2u_midway|5.009004||Viu
sv_pos_u2b|5.006000|5.006000|
sv_pos_u2b_cached|5.009004||Viu
sv_pos_u2b_flags|5.011005|5.011005|
sv_pos_u2b_forwards|5.009004||Vniu
sv_pos_u2b_midway|5.009004||Vniu
SVp_POK|5.003007||Viu
SVppv_STATIC|5.035004||Viu
SVprv_PCS_IMPORTED|5.009005||Viu
SVprv_WEAKREF|5.006000||Viu
SVp_SCREAM|5.003007||Viu
SvPV|5.003007|5.003007|
sv_pv|5.008000||cV
SvPVbyte|5.006000|5.003007|p

ppport.h  view on Meta::CPAN

sv_pvbyten_force|5.006000||cV
SvPVbyte_nolen|5.006000|5.006000|
SvPVbyte_nomg|5.031004|5.031004|
SvPVbyte_or_null|5.031004|5.031004|
SvPVbyte_or_null_nomg|5.031004|5.031004|
SvPVbytex|5.006000|5.006000|
SvPVbytex_force|5.006000|5.006000|
SvPVbytex_nolen|5.009003|5.009003|
SvPVCLEAR|5.025006|5.025006|p
SvPV_const|5.009003|5.003007|p
SvPV_flags|5.007002|5.003007|p
SvPV_flags_const|5.009003|5.003007|p
SvPV_flags_const_nolen|5.009003||pVu
SvPV_flags_mutable|5.009003|5.003007|p
SvPV_force|5.003007|5.003007|p
SvPV_force_flags|5.007002|5.003007|p
SvPV_force_flags_mutable|5.009003|5.003007|p
SvPV_force_flags_nolen|5.009003|5.003007|p
SvPV_force_mutable|5.009003|5.003007|p
SvPV_force_nolen|5.009003|5.003007|p
SvPV_force_nomg|5.007002|5.003007|p
SvPV_force_nomg_nolen|5.009003|5.003007|p
SvPV_free|5.009003|5.009003|
SvPV_mutable|5.009003|5.003007|p
sv_pvn|5.004000||dcV
sv_pvn_force|5.005000||cV
sv_pvn_force_flags|5.007002|5.003007|p
sv_pvn_force_nomg|5.007002||Viu
sv_pvn_nomg|5.007003|5.005000|pdu
SvPV_nolen|5.006000|5.003007|p
SvPV_nolen_const|5.009003|5.003007|p
SvPV_nomg|5.007002|5.003007|p
SvPV_nomg_const|5.009003|5.003007|p
SvPV_nomg_const_nolen|5.009003|5.003007|p
SvPV_nomg_nolen|5.013007|5.003007|p
SvPV_renew|5.009003|5.003007|p
SvPV_set|5.003007|5.003007|

ppport.h  view on Meta::CPAN

sv_setref_pvn|5.003007|5.003007|
sv_setref_pvs|5.013006|5.013006|
sv_setref_uv|5.007001|5.007001|
sv_setrv_inc|5.035004|5.035004|
sv_setrv_inc_mg|5.035004|5.035004|
sv_setrv_noinc|5.035004|5.035004|
sv_setrv_noinc_mg|5.035004|5.035004|
sv_setsv|5.003007|5.003007|
SvSetSV|5.003007|5.003007|
sv_setsv_cow|5.009000||xcViu
sv_setsv_flags|5.007002|5.003007|p
sv_setsv_mg|5.004005|5.003007|p
sv_setsv_nomg|5.007002|5.003007|p
SvSetSV_nosteal|5.004000|5.004000|
sv_setuid|5.019001||Viu
sv_set_undef|5.025008|5.025008|
sv_setuv|5.004000|5.003007|p
sv_setuv_mg|5.004005|5.003007|p
SVs_GMG|5.003007||Viu
SvSHARE|5.007003|5.007003|
SvSHARED_HASH|5.009003|5.003007|p

ppport.h  view on Meta::CPAN

SVs_OBJECT|5.003007||Viu
SVs_PADMY|5.003007||Viu
SVs_PADSTALE|5.009000|5.009000|
SVs_PADTMP|5.003007||Viu
SVs_RMG|5.003007||Viu
SVs_SMG|5.003007||Viu
SvSTASH|5.003007|5.003007|
SvSTASH_set|5.009003|5.003007|p
SVs_TEMP|5.003007|5.003007|
sv_streq|5.035009|5.035009|
sv_streq_flags|5.035009|5.035009|
sv_string_from_errnum|5.027003|5.027003|
SvTAIL|5.003007||Viu
SvTAINT|5.003007|5.003007|
sv_taint|5.009003||cV
SvTAINTED|5.004000|5.004000|
sv_tainted|5.004000||cV
SvTAINTED_off|5.004000|5.004000|
SvTAINTED_on|5.004000|5.004000|
SvTEMP|5.003007||Viu
SvTEMP_off|5.003007||Viu

ppport.h  view on Meta::CPAN

SvTYPE|5.003007|5.003007|
SVTYPEMASK|5.003007||Viu
SvUID|5.019001||Viu
SV_UNDEF_RETURNS_NULL|5.011000||Viu
sv_unglob|5.005000||Viu
sv_uni_display|5.007003|5.007003|
SvUNLOCK|5.007003|5.007003|
sv_unmagic|5.003007|5.003007|
sv_unmagicext|5.013008|5.003007|p
sv_unref|5.003007|5.003007|
sv_unref_flags|5.007001|5.007001|
sv_untaint|5.004000||cV
SvUOK|5.007001|5.006000|p
SvUOK_nog|5.017002||Viu
SvUOK_nogthink|5.017002||Viu
sv_upgrade|5.003007|5.003007|
SvUPGRADE|5.003007|5.003007|
sv_usepvn|5.003007|5.003007|
sv_usepvn_flags|5.009004|5.009004|
sv_usepvn_mg|5.004005|5.003007|p
SvUTF8|5.006000|5.003007|p
sv_utf8_decode|5.006000|5.006000|
sv_utf8_downgrade|5.006000|5.006000|
sv_utf8_downgrade_flags|5.031004|5.031004|
sv_utf8_downgrade_nomg|5.031004|5.031004|
sv_utf8_encode|5.006000|5.006000|
SV_UTF8_NO_ENCODING|5.008001|5.003007|pd
SvUTF8_off|5.006000|5.006000|
SvUTF8_on|5.006000|5.006000|
sv_utf8_upgrade|5.007001|5.007001|
sv_utf8_upgrade_flags|5.007002|5.007002|
sv_utf8_upgrade_flags_grow|5.011000|5.011000|
sv_utf8_upgrade_nomg|5.007002|5.007002|
SvUV|5.004000|5.003007|p
sv_uv|5.005000||pdcV
SvUV_nomg|5.009001|5.003007|p
SvUV_set|5.009003|5.003007|p
SvUVX|5.004000|5.003007|p
SvUVx|5.004000|5.003007|p
SvUVXx|5.004000|5.003007|pd
SvVALID|5.003007||Viu
sv_vcatpvf|5.006000|5.004000|p
sv_vcatpvf_mg|5.006000|5.004000|p
sv_vcatpvfn|5.004000|5.004000|
sv_vcatpvfn_flags|5.017002|5.017002|
SvVOK|5.008001|5.008001|
sv_vsetpvf|5.006000|5.004000|p
sv_vsetpvf_mg|5.006000|5.004000|p
sv_vsetpvfn|5.004000|5.004000|
SvVSTRING_mg|5.009004|5.003007|p
SvWEAKREF|5.006000||Viu
SvWEAKREF_off|5.006000||Viu
SvWEAKREF_on|5.006000||Viu
swallow_bom|5.006001||Viu
switch_category_locale_to_template|5.027009||Viu

ppport.h  view on Meta::CPAN

TOPs|5.003007||Viu
TOPu|5.004000||Viu
TOPul|5.006000||Viu
toTITLE|5.019001|5.019001|
toTITLE_A|5.019001|5.019001|
toTITLE_uni|5.006000||Viu
toTITLE_utf8|5.031005|5.031005|
toTITLE_utf8_safe|5.025009|5.006000|p
toTITLE_uvchr|5.023009|5.006000|p
to_uni_fold|5.014000||cVu
_to_uni_fold_flags|5.014000||cVu
to_uni_lower|5.006000||cVu
to_uni_title|5.006000||cVu
to_uni_upper|5.006000||cVu
toUPPER|5.003007|5.003007|
toUPPER_A|5.019001|5.019001|
toUPPER_LATIN1_MOD|5.011002||Viu
toUPPER_LC|5.004000||Viu
_to_upper_title_latin1|5.015005||Viu
toUPPER_uni|5.006000||Viu
toUPPER_utf8|5.031005|5.031005|
toUPPER_utf8_safe|5.025009|5.006000|p
toUPPER_uvchr|5.023009|5.006000|p
_to_utf8_case|5.023006||Viu
_to_utf8_fold_flags|5.014000||cVu
_to_utf8_lower_flags|5.015006||cVu
to_utf8_substr|5.008000||Viu
_to_utf8_title_flags|5.015006||cVu
_to_utf8_upper_flags|5.015006||cVu
translate_substr_offsets|5.015006||Vniu
traverse_op_tree|5.029008||Vi
TR_DELETE|5.031006||Viu
TRIE|5.009002||Viu
TRIE_BITMAP|5.009004||Viu
TRIE_BITMAP_BYTE|5.009004||Viu
TRIE_BITMAP_CLEAR|5.009004||Viu
TRIE_BITMAP_SET|5.009004||Viu
TRIE_BITMAP_TEST|5.009004||Viu
TRIEC|5.009004||Viu

ppport.h  view on Meta::CPAN

UTF_START_BYTE|5.035004||Viu
UTF_START_MARK|5.007001||Viu
UTF_START_MASK|5.007001||Viu
UTF_TO_NATIVE|5.007001||Viu
utilize|5.003007||Viu
utime|5.005000||Viu
U_V|5.006000|5.003007|
UVCHR_IS_INVARIANT|5.019004|5.003007|p
UVCHR_SKIP|5.022000|5.003007|p
uvchr_to_utf8|5.007001|5.007001|
uvchr_to_utf8_flags|5.007003|5.007003|
uvchr_to_utf8_flags_msgs|5.027009|5.027009|
UV_DIG|5.006000||Viu
UVf|5.010000|5.010000|d
UV_IS_QUAD|5.006000||Viu
UV_MAX|5.003007|5.003007|
UV_MAX_P1|5.007002||Viu
UV_MAX_P1_HALF|5.007002||Viu
UV_MIN|5.003007|5.003007|
UVof|5.006000|5.003007|poVn
uvoffuni_to_utf8_flags|5.027009||cV
uvoffuni_to_utf8_flags_msgs|5.027009||cVu
UVSIZE|5.006000|5.003007|poVn
UVTYPE|5.006000|5.003007|poVn
UVuf|5.006000|5.003007|poVn
uvuni_to_utf8|5.019004||cVu
uvuni_to_utf8_flags|5.007003||dcV
UVxf|5.006000|5.003007|poVn
UVXf|5.007001|5.007001|poVn
VAL_EAGAIN|5.003007|5.003007|Vn
validate_proto|5.019002||xcVi
validate_suid|||iu
valid_utf8_to_uvchr|5.015009||cVn
valid_utf8_to_uvuni|5.015009||dcVu
VAL_O_NONBLOCK|5.003007|5.003007|Vn
variant_byte_number|5.031004||cVnu
variant_under_utf8_count|5.027007||Vni

ppport.h  view on Meta::CPAN


  $count or print "\nFound no API matching '$opt{'api-info'}'.";
  print "\n";
  exit 0;
}

if (exists $opt{'list-provided'}) {
  my $f;
  for $f (sort dictionary_order keys %API) {
    next unless $API{$f}{provided};
    my @flags;
    push @flags, 'explicit' if exists $need{$f};
    push @flags, 'depend'   if exists $depends{$f};
    push @flags, 'hint'     if exists $hints{$f};
    push @flags, 'warning'  if exists $warnings{$f};
    my $flags = @flags ? '  ['.join(', ', @flags).']' : '';
    print "$f$flags\n";
  }
  exit 0;
}

my @files;
my @srcext = qw( .xs .c .h .cc .cpp -c.inc -xs.inc );
my $srcext = join '|', map { quotemeta $_ } @srcext;

if (@ARGV) {
  my %seen;

ppport.h  view on Meta::CPAN

#      define D_PPP_TO_FOLD_CALLEE(s,r,l)     toFOLD_utf8(s,r,l)
#    else
#      define D_PPP_TO_FOLD_CALLEE(s,r,l)     to_utf8_fold(s,r,l)
#    endif
#  else     /* Below is 5.15.6, which failed to make the macros available
#              outside of core, so we have to use the 'Perl_' form.  khw
#              decided it was easier to just handle this case than have to
#              document the exception, and make an exception in the tests below
#              */
#    define D_PPP_TO_LOWER_CALLEE(s,r,l)                                    \
                        Perl__to_utf8_lower_flags(aTHX_ s, r, l, 0, NULL)
#    define D_PPP_TO_TITLE_CALLEE(s,r,l)                                    \
                        Perl__to_utf8_title_flags(aTHX_ s, r, l, 0, NULL)
#    define D_PPP_TO_UPPER_CALLEE(s,r,l)                                    \
                        Perl__to_utf8_upper_flags(aTHX_ s, r, l, 0, NULL)
#    define D_PPP_TO_FOLD_CALLEE(s,r,l)                                     \
            Perl__to_utf8_fold_flags(aTHX_ s, r, l, FOLD_FLAGS_FULL, NULL)
#  endif

/* The actual implementation of the backported macros.  If too short, croak,
 * otherwise call the original that doesn't have an upper limit parameter */
#  define D_PPP_GENERIC_MULTI_ARG_TO(name, s, e,r,l)                        \
    (((((e) - (s)) <= 0)                                                    \
         /* We could just do nothing, but modern perls croak */             \
      ? (croak("Attempting case change on zero length string"),             \
         0) /* So looks like it returns something, and will compile */      \
      : ((e) - (s)) < UTF8SKIP(s))                                          \

ppport.h  view on Meta::CPAN

#ifndef sv_2pv
#  define sv_2pv(sv, lp)                 (SvPOKp(sv) ? ((*((lp) ? (lp) : &PL_na) = SvCUR(sv)), SvPVX(sv)) : Perl_sv_2pv(aTHX_ (sv), (lp)))
#endif

# endif

#endif

#if (PERL_BCDVERSION < 0x5007002)

/* Define sv_2pv_flags for Perl < 5.7.2 which does not have it at all */

#if defined(PERL_USE_GCC_BRACE_GROUPS)
#ifndef sv_2pv_flags
#  define sv_2pv_flags(sv, lp, flags)    ({ SV *_sv = (sv); STRLEN sv_2pv_dummy_; const I32 _flags = (flags); STRLEN *_lp = lp; _lp = _lp ? : &sv_2pv_dummy_; (!(_flags & SV_GMAGIC) && SvGMAGICAL(_sv)) ? ({ char *_pv; SvGMAGICAL_off(_sv); _pv = sv_2pv...
#endif

#ifndef sv_pvn_force_flags
#  define sv_pvn_force_flags(sv, lp, flags) ({ SV *_sv = (sv); STRLEN sv_2pv_dummy_; const I32 _flags = (flags); STRLEN *_lp = lp; _lp = _lp ? : &sv_2pv_dummy_; (!(_flags & SV_GMAGIC) && SvGMAGICAL(_sv)) ? ({ char *_pv; SvGMAGICAL_off(_sv); _pv = sv_...
#endif

#else
#ifndef sv_2pv_flags
#  define sv_2pv_flags(sv, lp, flags)    ((PL_Sv = (sv)), (!((flags) & SV_GMAGIC) && SvGMAGICAL(PL_Sv)) ? (SvGMAGICAL_off(PL_Sv), (PL_Xpv = (XPV *)sv_2pv(PL_Sv, (lp) ? (lp) : &PL_na)), SvGMAGICAL_on(PL_Sv), (char *)PL_Xpv) : sv_2pv(PL_Sv, (lp) ? (lp)...
#endif

#ifndef sv_pvn_force_flags
#  define sv_pvn_force_flags(sv, lp, flags) ((PL_Sv = (sv)), (!((flags) & SV_GMAGIC) && SvGMAGICAL(PL_Sv)) ? (SvGMAGICAL_off(PL_Sv), (PL_Xpv = (XPV *)sv_pvn_force(PL_Sv, (lp) ? (lp) : &PL_na)), SvGMAGICAL_on(PL_Sv), (char *)PL_Xpv) : sv_pvn_force(PL_...
#endif

#endif

#elif (PERL_BCDVERSION < 0x5017002)

/* Fix sv_2pv_flags for Perl < 5.17.2 */

# ifdef sv_2pv_flags
#  undef sv_2pv_flags
# endif

# if defined(PERL_USE_GCC_BRACE_GROUPS)
#ifndef sv_2pv_flags
#  define sv_2pv_flags(sv, lp, flags)    ({ SV *_sv_2pv = (sv); STRLEN sv_2pv_dummy_; const I32 _flags_2pv = (flags); STRLEN *_lp_2pv = (lp); _lp_2pv = _lp_2pv ? : &sv_2pv_dummy_; ((!(_flags_2pv & SV_GMAGIC) || !SvGMAGICAL(_sv_2pv)) && SvPOKp(_sv_2pv...
#endif

# else
#ifndef sv_2pv_flags
#  define sv_2pv_flags(sv, lp, flags)    (((!((flags) & SV_GMAGIC) || !SvGMAGICAL(sv)) && SvPOKp(sv)) ? ((*((lp) ? (lp) : &PL_na) = SvCUR(sv)), SvPVX(sv)) : Perl_sv_2pv_flags(aTHX_ (sv), (lp), (flags)))
#endif

# endif

#endif

#if (PERL_BCDVERSION < 0x5008008) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5009003) )
# define D_PPP_SVPV_NOLEN_LP_ARG &PL_na
#else
# define D_PPP_SVPV_NOLEN_LP_ARG 0
#endif
#ifndef SvPV_const
#  define SvPV_const(sv, lp)             SvPV_flags_const(sv, lp, SV_GMAGIC)
#endif

#ifndef SvPV_mutable
#  define SvPV_mutable(sv, lp)           SvPV_flags_mutable(sv, lp, SV_GMAGIC)
#endif
#ifndef SvPV_flags
#  define SvPV_flags(sv, lp, flags)      \
                 ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
                  ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
#endif
#ifndef SvPV_flags_const
#  define SvPV_flags_const(sv, lp, flags) \
                 ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
                  ? ((lp = SvCUR(sv)), SvPVX_const(sv)) : \
                  (const char*) sv_2pv_flags(sv, &lp, flags|SV_CONST_RETURN))
#endif
#ifndef SvPV_flags_const_nolen
#  define SvPV_flags_const_nolen(sv, flags) \
                 ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
                  ? SvPVX_const(sv) : \
                  (const char*) sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, flags|SV_CONST_RETURN))
#endif
#ifndef SvPV_flags_mutable
#  define SvPV_flags_mutable(sv, lp, flags) \
                 ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
                  ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) : \
                  sv_2pv_flags(sv, &lp, flags|SV_MUTABLE_RETURN))
#endif
#ifndef SvPV_force
#  define SvPV_force(sv, lp)             SvPV_force_flags(sv, lp, SV_GMAGIC)
#endif

#ifndef SvPV_force_nolen
#  define SvPV_force_nolen(sv)           SvPV_force_flags_nolen(sv, SV_GMAGIC)
#endif

#ifndef SvPV_force_mutable
#  define SvPV_force_mutable(sv, lp)     SvPV_force_flags_mutable(sv, lp, SV_GMAGIC)
#endif

#ifndef SvPV_force_nomg
#  define SvPV_force_nomg(sv, lp)        SvPV_force_flags(sv, lp, 0)
#endif

#ifndef SvPV_force_nomg_nolen
#  define SvPV_force_nomg_nolen(sv)      SvPV_force_flags_nolen(sv, 0)
#endif
#ifndef SvPV_force_flags
#  define SvPV_force_flags(sv, lp, flags) \
                 ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \
                 ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_pvn_force_flags(sv, &lp, flags))
#endif
#ifndef SvPV_force_flags_nolen
#  define SvPV_force_flags_nolen(sv, flags) \
                 ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \
                 ? SvPVX(sv) : sv_pvn_force_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, flags))
#endif
#ifndef SvPV_force_flags_mutable
#  define SvPV_force_flags_mutable(sv, lp, flags) \
                 ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \
                 ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) \
                  : sv_pvn_force_flags(sv, &lp, flags|SV_MUTABLE_RETURN))
#endif
#ifndef SvPV_nolen
#  define SvPV_nolen(sv)                 \
                 ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
                  ? SvPVX(sv) : sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC))
#endif
#ifndef SvPV_nolen_const
#  define SvPV_nolen_const(sv)           \
                 ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
                  ? SvPVX_const(sv) : sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC|SV_CONST_RETURN))
#endif

#  if defined(PERL_USE_GCC_BRACE_GROUPS)
#ifndef SvPVx_nolen_const
#  define SvPVx_nolen_const(sv)          ({SV *sV_ = (sv); SvPV_nolen_const(sV_); })
#endif

#  else
#ifndef SvPVx_nolen_const
#  define SvPVx_nolen_const(sv)          (PL_Sv = sv, SvPV_nolen_const(PL_Sv))
#endif

#  endif
#ifndef SvPV_nomg
#  define SvPV_nomg(sv, lp)              SvPV_flags(sv, lp, 0)
#endif

#ifndef SvPV_nomg_const
#  define SvPV_nomg_const(sv, lp)        SvPV_flags_const(sv, lp, 0)
#endif

#ifndef SvPV_nomg_const_nolen
#  define SvPV_nomg_const_nolen(sv)      SvPV_flags_const_nolen(sv, 0)
#endif

#ifndef SvPV_nomg_nolen
#  define SvPV_nomg_nolen(sv)            ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
                                    ? SvPVX(sv) : sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, 0))
#endif
#ifndef SvPV_renew
#  define SvPV_renew(sv,n)               STMT_START { SvLEN_set(sv, n); \
                 SvPV_set((sv), (char *) saferealloc(          \
                       (Malloc_t)SvPVX(sv), (MEM_SIZE)((n)))); \
               } STMT_END
#endif
#ifndef SvPVCLEAR
#  define SvPVCLEAR(sv)                  sv_setpvs((sv), "")
#endif

ppport.h  view on Meta::CPAN

  }
# define D_PPP_CROAK_IF_ERROR(cond) D_PPP_CROAK_IF_ERROR(cond)
#endif

#ifndef G_METHOD
# define G_METHOD               64
# ifdef call_sv
#  undef call_sv
# endif
# if (PERL_BCDVERSION < 0x5006000)
#  define call_sv(sv, flags)  ((flags) & G_METHOD ? perl_call_method((char *) SvPV_nolen_const(sv), \
                                (flags) & ~G_METHOD) : perl_call_sv(sv, flags))
# else
#  define call_sv(sv, flags)  ((flags) & G_METHOD ? Perl_call_method(aTHX_ (char *) SvPV_nolen_const(sv), \
                                (flags) & ~G_METHOD) : Perl_call_sv(aTHX_ sv, flags))
# endif
#endif

#ifndef G_RETHROW
# define G_RETHROW 8192
# ifdef eval_sv
#  undef eval_sv
# endif
# if defined(PERL_USE_GCC_BRACE_GROUPS)
#  define eval_sv(sv, flags) ({ I32 _flags = (flags); I32 _ret = Perl_eval_sv(aTHX_ sv, (_flags & ~G_RETHROW)); D_PPP_CROAK_IF_ERROR(_flags & G_RETHROW); _ret; })
# else
#  define eval_sv(sv, flags) ((PL_na = Perl_eval_sv(aTHX_ sv, ((flags) & ~G_RETHROW))), D_PPP_CROAK_IF_ERROR((flags) & G_RETHROW), (I32)PL_na)
# endif
#endif

/* Older Perl versions have broken croak_on_error=1 */
#if (PERL_BCDVERSION < 0x5031002)
# ifdef eval_pv
#  undef eval_pv
#  if defined(PERL_USE_GCC_BRACE_GROUPS)
#   define eval_pv(p, croak_on_error) ({ SV *_sv = Perl_eval_pv(aTHX_ p, 0); D_PPP_CROAK_IF_ERROR(croak_on_error); _sv; })
#  else

ppport.h  view on Meta::CPAN

    D_PPP_CROAK_IF_ERROR(croak_on_error);

    return sv;
}

#endif
#endif

#if ! defined(vload_module) && defined(start_subparse)
#if defined(NEED_vload_module)
static void DPPP_(my_vload_module)(U32 flags, SV * name, SV * ver, va_list * args);
static
#else
extern void DPPP_(my_vload_module)(U32 flags, SV * name, SV * ver, va_list * args);
#endif

#if defined(NEED_vload_module) || defined(NEED_vload_module_GLOBAL)

#ifdef vload_module
#  undef vload_module
#endif
#define vload_module(a,b,c,d) DPPP_(my_vload_module)(aTHX_ a,b,c,d)
#define Perl_vload_module DPPP_(my_vload_module)


void
DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args)
{
    dTHR;
    dVAR;
    OP *veop, *imop;

    OP * const modname = newSVOP(OP_CONST, 0, name);
    /* 5.005 has a somewhat hacky force_normal that doesn't croak on
       SvREADONLY() if PL_compiling is true. Current perls take care in
       ck_require() to correctly turn off SvREADONLY before calling
       force_normal_flags(). This seems a better fix than fudging PL_compiling
     */
    SvREADONLY_off(((SVOP*)modname)->op_sv);
    modname->op_private |= OPpCONST_BARE;
    if (ver) {
        veop = newSVOP(OP_CONST, 0, ver);
    }
    else
        veop = NULL;
    if (flags & PERL_LOADMOD_NOIMPORT) {
        imop = sawparens(newNULLLIST());
    }
    else if (flags & PERL_LOADMOD_IMPORT_OPS) {
        imop = va_arg(*args, OP*);
    }
    else {
        SV *sv;
        imop = NULL;
        sv = va_arg(*args, SV*);
        while (sv) {
            imop = append_elem(OP_LIST, imop, newSVOP(OP_CONST, 0, sv));
            sv = va_arg(*args, SV*);
        }
    }
    {
        const line_t ocopline = PL_copline;
        COP * const ocurcop = PL_curcop;
        const int oexpect = PL_expect;

        utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0),
#if (PERL_BCDVERSION > 0x5003000)
                veop,
#endif
                modname, imop);
        PL_expect = oexpect;
        PL_copline = ocopline;
        PL_curcop = ocurcop;
    }
}

#endif
#endif

#ifndef load_module
#if defined(NEED_load_module)
static void DPPP_(my_load_module)(U32 flags, SV * name, SV * ver, ...);
static
#else
extern void DPPP_(my_load_module)(U32 flags, SV * name, SV * ver, ...);
#endif

#if defined(NEED_load_module) || defined(NEED_load_module_GLOBAL)

#ifdef load_module
#  undef load_module
#endif
#define load_module DPPP_(my_load_module)
#define Perl_load_module DPPP_(my_load_module)


void
DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...)
{
    va_list args;
    va_start(args, ver);
    vload_module(flags, name, ver, &args);
    va_end(args);
}

#endif
#endif
#ifndef newRV_inc
#  define newRV_inc(sv)                  newRV(sv)   /* Replace */
#endif

#ifndef newRV_noinc

ppport.h  view on Meta::CPAN

# define D_PPP_CONSTPV_ARG(x)  ((char *) (x))
#else
# define D_PPP_CONSTPV_ARG(x)  (x)
#endif
#ifndef newSVpvn
#  define newSVpvn(data,len)             ((data)                                              \
                                    ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \
                                    : newSV(0))
#endif
#ifndef newSVpvn_utf8
#  define newSVpvn_utf8(s, len, u)       newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0)
#endif
#ifndef SVf_UTF8
#  define SVf_UTF8                       0
#endif

#ifndef newSVpvn_flags
#  if defined(PERL_USE_GCC_BRACE_GROUPS)
#    define newSVpvn_flags(s, len, flags)                       \
        ({                                                      \
            SV * sv = newSVpvn(D_PPP_CONSTPV_ARG(s), (len));    \
            SvFLAGS(sv) |= ((flags) & SVf_UTF8);                \
            if ((flags) & SVs_TEMP) sv = sv_2mortal(sv);        \
            sv;                                                 \
        })
#  else
     PERL_STATIC_INLINE SV* D_PPP_newSVpvn_flags(const char *const s, const STRLEN len, const U32 flags)
     {
        dTHX;
        SV * sv = newSVpvn(s, len);
        SvFLAGS(sv) |= (flags & SVf_UTF8);
        if (flags & SVs_TEMP) return sv_2mortal(sv);
        return sv;
     }
#    define newSVpvn_flags(s, len, flags) D_PPP_newSVpvn_flags((s), (len), (flags))
#  endif
#endif
#ifndef SV_NOSTEAL
#  define SV_NOSTEAL                     16
#endif

#if ( (PERL_BCDVERSION >= 0x5007003) && (PERL_BCDVERSION < 0x5008007) ) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5009002) )
#undef sv_setsv_flags
#if defined(PERL_USE_GCC_BRACE_GROUPS)
#define sv_setsv_flags(dstr, sstr, flags)                                          \
  STMT_START {                                                                     \
    if (((flags) & SV_NOSTEAL) && (sstr) && (SvFLAGS((SV *)(sstr)) & SVs_TEMP)) {  \
      SvTEMP_off((SV *)(sstr));                                                    \
      Perl_sv_setsv_flags(aTHX_ (dstr), (sstr), (flags) & ~SV_NOSTEAL);            \
      SvTEMP_on((SV *)(sstr));                                                     \
    } else {                                                                       \
      Perl_sv_setsv_flags(aTHX_ (dstr), (sstr), (flags) & ~SV_NOSTEAL);            \
    }                                                                              \
  } STMT_END
#else
#define sv_setsv_flags(dstr, sstr, flags)                                          \
  (                                                                                \
    (((flags) & SV_NOSTEAL) && (sstr) && (SvFLAGS((SV *)(sstr)) & SVs_TEMP)) ? (   \
      SvTEMP_off((SV *)(sstr)),                                                    \
      Perl_sv_setsv_flags(aTHX_ (dstr), (sstr), (flags) & ~SV_NOSTEAL),            \
      SvTEMP_on((SV *)(sstr)),                                                     \
      1                                                                            \
    ) : (                                                                          \
      Perl_sv_setsv_flags(aTHX_ (dstr), (sstr), (flags) & ~SV_NOSTEAL),            \
      1                                                                            \
    )                                                                              \
  )
#endif
#endif

#if defined(PERL_USE_GCC_BRACE_GROUPS)
#ifndef sv_setsv_flags
#  define sv_setsv_flags(dstr, sstr, flags) \
  STMT_START {                                                                     \
    if (((flags) & SV_NOSTEAL) && (sstr) && (SvFLAGS((SV *)(sstr)) & SVs_TEMP)) {  \
      SvTEMP_off((SV *)(sstr));                                                    \
      if (!((flags) & SV_GMAGIC) && (sstr) && SvGMAGICAL((SV *)(sstr))) {          \
        SvGMAGICAL_off((SV *)(sstr));                                              \
        sv_setsv((dstr), (sstr));                                                  \
        SvGMAGICAL_on((SV *)(sstr));                                               \
      } else {                                                                     \
        sv_setsv((dstr), (sstr));                                                  \
      }                                                                            \
      SvTEMP_on((SV *)(sstr));                                                     \
    } else {                                                                       \
      if (!((flags) & SV_GMAGIC) && (sstr) && SvGMAGICAL((SV *)(sstr))) {          \
        SvGMAGICAL_off((SV *)(sstr));                                              \
        sv_setsv((dstr), (sstr));                                                  \
        SvGMAGICAL_on((SV *)(sstr));                                               \
      } else {                                                                     \
        sv_setsv((dstr), (sstr));                                                  \
      }                                                                            \
    }                                                                              \
  } STMT_END
#endif

#else
#ifndef sv_setsv_flags
#  define sv_setsv_flags(dstr, sstr, flags) \
  (                                                                                \
    (((flags) & SV_NOSTEAL) && (sstr) && (SvFLAGS((SV *)(sstr)) & SVs_TEMP)) ? (   \
      SvTEMP_off((SV *)(sstr)),                                                    \
      (!((flags) & SV_GMAGIC) && (sstr) && SvGMAGICAL((SV *)(sstr))) ? (           \
        SvGMAGICAL_off((SV *)(sstr)),                                              \
        sv_setsv((dstr), (sstr)),                                                  \
        SvGMAGICAL_on((SV *)(sstr)),                                               \
        1                                                                          \
      ) : (                                                                        \
        sv_setsv((dstr), (sstr)),                                                  \
        1                                                                          \
      ),                                                                           \
      SvTEMP_on((SV *)(sstr)),                                                     \
      1                                                                            \
    ) : (                                                                          \
      (!((flags) & SV_GMAGIC) && (sstr) && SvGMAGICAL((SV *)(sstr))) ? (           \
        SvGMAGICAL_off((SV *)(sstr)),                                              \
        sv_setsv((dstr), (sstr)),                                                  \
        SvGMAGICAL_on((SV *)(sstr)),                                               \
        1                                                                          \
      ) : (                                                                        \
        sv_setsv((dstr), (sstr)),                                                  \
        1                                                                          \
      )                                                                            \
    )                                                                              \
  )
#endif

#endif

#ifndef newSVsv_flags
#  if defined(PERL_USE_GCC_BRACE_GROUPS)
#    define  newSVsv_flags(sv, flags)                       \
        ({                                                  \
            SV *n= newSV(0);                             \
            sv_setsv_flags(n, (sv), (flags));             \
            n;                                            \
        })
#  else
    PERL_STATIC_INLINE SV* D_PPP_newSVsv_flags(SV *const old, I32 flags)
        {
            dTHX;
            SV *n= newSV(0);
            sv_setsv_flags(n, old, flags);
            return n;
        }
#    define  newSVsv_flags(sv, flags) D_PPP_newSVsv_flags(sv, flags)
#  endif
#endif
#ifndef newSVsv_nomg
#  define newSVsv_nomg(sv)               newSVsv_flags((sv), SV_NOSTEAL)
#endif

#if (PERL_BCDVERSION >= 0x5017005)
#ifndef sv_mortalcopy_flags
#  define sv_mortalcopy_flags(sv, flags) Perl_sv_mortalcopy_flags(aTHX_ (sv), (flags))
#endif

#else
#ifndef sv_mortalcopy_flags
#  define sv_mortalcopy_flags(sv, flags) sv_2mortal(newSVsv_flags((sv), (flags)))
#endif

#endif
#ifndef SvMAGIC_set
#  define SvMAGIC_set(sv, val)           \
                STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \
                (((XPVMG*) SvANY(sv))->xmg_magic = (val)); } STMT_END
#endif

#if (PERL_BCDVERSION < 0x5009003)

ppport.h  view on Meta::CPAN

#  define SvSHARED_HASH(sv)              (0 + SvUVX(sv))
#endif
#ifndef HvNAME_get
#  define HvNAME_get(hv)                 HvNAME(hv)
#endif
#ifndef HvNAMELEN_get
#  define HvNAMELEN_get(hv)              (HvNAME_get(hv) ? (I32)strlen(HvNAME_get(hv)) : 0)
#endif

#if (PERL_BCDVERSION >= 0x5009002) && (PERL_BCDVERSION <= 0x5009003) /* 5.9.2 and 5.9.3 ignore the length param */
#undef gv_fetchpvn_flags
#endif

#ifdef GV_NOADD_MASK
#  define D_PPP_GV_NOADD_MASK  GV_NOADD_MASK
#else
#  define D_PPP_GV_NOADD_MASK  0xE0
#endif
#ifndef gv_fetchpvn_flags
#  define gv_fetchpvn_flags(name, len, flags, sv_type) gv_fetchpv(SvPVX(sv_2mortal(newSVpvn((name), (len)))), ((flags) & D_PPP_GV_NOADD_MASK) ? FALSE : TRUE, (I32)(sv_type))
#endif
#ifndef GvSVn
#  define GvSVn(gv)                      GvSV(gv)
#endif

#ifndef isGV_with_GP
#  define isGV_with_GP(gv)               isGV(gv)
#endif

#ifndef gv_fetchsv
#  define gv_fetchsv(name, flags, svt)   gv_fetchpv(SvPV_nolen_const(name), flags, svt)
#endif
#ifndef get_cvn_flags
#  define get_cvn_flags(name, namelen, flags) get_cv(name, flags)
#endif

#ifndef gv_init_pvn
#  define gv_init_pvn(gv, stash, ptr, len, flags) gv_init(gv, stash, ptr, len, flags & GV_ADDMULTI ? TRUE : FALSE)
#endif

/* concatenating with "" ensures that only literal strings are accepted as argument
 * note that STR_WITH_LEN() can't be used as argument to macros or functions that
 * under some configurations might be macros
 */
#ifndef STR_WITH_LEN
#  define STR_WITH_LEN(s)                (s ""), (sizeof(s)-1)
#endif
#ifndef newSVpvs
#  define newSVpvs(str)                  newSVpvn(str "", sizeof(str) - 1)
#endif

#ifndef newSVpvs_flags
#  define newSVpvs_flags(str, flags)     newSVpvn_flags(str "", sizeof(str) - 1, flags)
#endif

#ifndef newSVpvs_share
#  define newSVpvs_share(str)            newSVpvn_share(str "", sizeof(str) - 1, 0)
#endif

#ifndef sv_catpvs
#  define sv_catpvs(sv, str)             sv_catpvn(sv, str "", sizeof(str) - 1)
#endif

ppport.h  view on Meta::CPAN

#endif

#ifndef hv_fetchs
#  define hv_fetchs(hv, key, lval)       hv_fetch(hv, key "", sizeof(key) - 1, lval)
#endif

#ifndef hv_stores
#  define hv_stores(hv, key, val)        hv_store(hv, key "", sizeof(key) - 1, val, 0)
#endif
#ifndef gv_fetchpvs
#  define gv_fetchpvs(name, flags, svt)  gv_fetchpvn_flags(name "", sizeof(name) - 1, flags, svt)
#endif

#ifndef gv_stashpvs
#  define gv_stashpvs(name, flags)       gv_stashpvn(name "", sizeof(name) - 1, flags)
#endif
#ifndef get_cvs
#  define get_cvs(name, flags)           get_cvn_flags(name "", sizeof(name)-1, flags)
#endif

#undef  SvGETMAGIC
#ifndef SvGETMAGIC
#  define SvGETMAGIC(x)                  ((void)(UNLIKELY(SvGMAGICAL(x)) && mg_get(x)))
#endif

/* That's the best we can do... */
#ifndef sv_catpvn_nomg
#  define sv_catpvn_nomg                 sv_catpvn

ppport.h  view on Meta::CPAN

#  define sv_setsv_nomg                  sv_setsv
#endif

#ifndef sv_pvn_nomg
#  define sv_pvn_nomg                    sv_pvn
#endif

#ifdef SVf_IVisUV
#if defined(PERL_USE_GCC_BRACE_GROUPS)
#ifndef SvIV_nomg
#  define SvIV_nomg(sv)                  (!SvGMAGICAL((sv)) ? SvIV((sv)) : ({ SV *_sviv = sv_mortalcopy_flags((sv), SV_NOSTEAL); IV _iv = SvIV(_sviv); SvFLAGS((sv)) = (SvFLAGS((sv)) & ~SVf_IVisUV) | (SvFLAGS(_sviv) & SVf_IVisUV); _iv; }))
#endif

#ifndef SvUV_nomg
#  define SvUV_nomg(sv)                  (!SvGMAGICAL((sv)) ? SvUV((sv)) : ({ SV *_svuv = sv_mortalcopy_flags((sv), SV_NOSTEAL); UV _uv = SvUV(_svuv); SvFLAGS((sv)) = (SvFLAGS((sv)) & ~SVf_IVisUV) | (SvFLAGS(_svuv) & SVf_IVisUV); _uv; }))
#endif

#else
#ifndef SvIV_nomg
#  define SvIV_nomg(sv)                  (!SvGMAGICAL((sv)) ? SvIV((sv)) : ((PL_Sv = sv_mortalcopy_flags((sv), SV_NOSTEAL)), sv_upgrade(PL_Sv, SVt_PVIV), (SvIVX(PL_Sv) = SvIV(PL_Sv)), (SvFLAGS((sv)) = (SvFLAGS((sv)) & ~SVf_IVisUV) | (SvFLAGS(PL_Sv) &...
#endif

#ifndef SvUV_nomg
#  define SvUV_nomg(sv)                  (!SvGMAGICAL((sv)) ? SvIV((sv)) : ((PL_Sv = sv_mortalcopy_flags((sv), SV_NOSTEAL)), sv_upgrade(PL_Sv, SVt_PVIV), (SvUVX(PL_Sv) = SvUV(PL_Sv)), (SvFLAGS((sv)) = (SvFLAGS((sv)) & ~SVf_IVisUV) | (SvFLAGS(PL_Sv) &...
#endif

#endif
#else
#ifndef SvIV_nomg
#  define SvIV_nomg(sv)                  (!SvGMAGICAL((sv)) ? SvIV((sv)) : SvIVx(sv_mortalcopy_flags((sv), SV_NOSTEAL)))
#endif

#ifndef SvUV_nomg
#  define SvUV_nomg(sv)                  (!SvGMAGICAL((sv)) ? SvUV((sv)) : SvUVx(sv_mortalcopy_flags((sv), SV_NOSTEAL)))
#endif

#endif
#ifndef SvNV_nomg
#  define SvNV_nomg(sv)                  (!SvGMAGICAL((sv)) ? SvNV((sv)) : SvNVx(sv_mortalcopy_flags((sv), SV_NOSTEAL)))
#endif

#ifndef SvTRUE_nomg
#  define SvTRUE_nomg(sv)                (!SvGMAGICAL((sv)) ? SvTRUE((sv)) : SvTRUEx(sv_mortalcopy_flags((sv), SV_NOSTEAL)))
#endif

#ifndef sv_catpv_mg
#  define sv_catpv_mg(sv, ptr)          \
   STMT_START {                         \
     SV *TeMpSv = sv;                   \
     sv_catpv(TeMpSv,ptr);              \
     SvSETMAGIC(TeMpSv);                \
   } STMT_END
#endif

ppport.h  view on Meta::CPAN

	    if (virt && virt->svt_free)
		virt->svt_free(aTHX_ sv, mg);
	    if (mg->mg_ptr && mg->mg_type != PERL_MAGIC_regex_global) {
		if (mg->mg_len > 0)
		    Safefree(mg->mg_ptr);
		else if (mg->mg_len == HEf_SVKEY) /* Questionable on older perls... */
		    SvREFCNT_dec(MUTABLE_SV(mg->mg_ptr));
		else if (mg->mg_type == PERL_MAGIC_utf8)
		    Safefree(mg->mg_ptr);
            }
	    if (mg->mg_flags & MGf_REFCOUNTED)
		SvREFCNT_dec(mg->mg_obj);
	    Safefree(mg);
	}
	else
	    mgp = &mg->mg_moremagic;
    }
    if (SvMAGIC(sv)) {
	if (SvMAGICAL(sv))	/* if we're under save_magic, wait for restore_magic; */
	    mg_magical(sv);	/*    else fix the flags now */
    }
    else {
	SvMAGICAL_off(sv);
	SvFLAGS(sv) |= (SvFLAGS(sv) & (SVp_IOK|SVp_NOK|SVp_POK)) >> PRIVSHIFT;
    }
    return 0;
}

#endif
#endif

ppport.h  view on Meta::CPAN


  if (sawinf) {
    numtype &= IS_NUMBER_NEG; /* Keep track of sign  */
    numtype |= IS_NUMBER_INFINITY | IS_NUMBER_NOT_INT;
  } else if (sawnan) {
    numtype &= IS_NUMBER_NEG; /* Keep track of sign  */
    numtype |= IS_NUMBER_NAN | IS_NUMBER_NOT_INT;
  } else if (s < send) {
    /* we can have an optional exponent part */
    if (*s == 'e' || *s == 'E') {
      /* The only flag we keep is sign.  Blow away any "it's UV"  */
      numtype &= IS_NUMBER_NEG;
      numtype |= IS_NUMBER_NOT_INT;
      s++;
      if (s < send && (*s == '-' || *s == '+'))
        s++;
      if (s < send && isDIGIT(*s)) {
        do {
          s++;
        } while (s < send && isDIGIT(*s));
      }

ppport.h  view on Meta::CPAN

#endif

/*
 * The grok_* routines have been modified to use warn() instead of
 * Perl_warner(). Also, 'hexdigit' was the former name of PL_hexdigit,
 * which is why the stack variable has been renamed to 'xdigit'.
 */

#ifndef grok_bin
#if defined(NEED_grok_bin)
static UV DPPP_(my_grok_bin)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
static
#else
extern UV DPPP_(my_grok_bin)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
#endif

#if defined(NEED_grok_bin) || defined(NEED_grok_bin_GLOBAL)

#ifdef grok_bin
#  undef grok_bin
#endif
#define grok_bin(a,b,c,d) DPPP_(my_grok_bin)(aTHX_ a,b,c,d)
#define Perl_grok_bin DPPP_(my_grok_bin)

UV
DPPP_(my_grok_bin)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
{
    const char *s = start;
    STRLEN len = *len_p;
    UV value = 0;
    NV value_nv = 0;

    const UV max_div_2 = UV_MAX / 2;
    bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES;
    bool overflowed = FALSE;

    if (!(*flags & PERL_SCAN_DISALLOW_PREFIX)) {
        /* strip off leading b or 0b.
           for compatibility silently suffer "b" and "0b" as valid binary
           numbers. */
        if (len >= 1) {
            if (s[0] == 'b') {
                s++;
                len--;
            }
            else if (len >= 2 && s[0] == '0' && s[1] == 'b') {
                s+=2;

ppport.h  view on Meta::CPAN

            value_nv += (NV)(bit - '0');
            continue;
        }
        if (bit == '_' && len && allow_underscores && (bit = s[1])
            && (bit == '0' || bit == '1'))
            {
                --len;
                ++s;
                goto redo;
            }
        if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT))
            warn("Illegal binary digit '%c' ignored", *s);
        break;
    }

    if (   ( overflowed && value_nv > 4294967295.0)
#if UVSIZE > 4
        || (!overflowed && value > 0xffffffff  )
#endif
        ) {
        warn("Binary number > 0b11111111111111111111111111111111 non-portable");
    }
    *len_p = s - start;
    if (!overflowed) {
        *flags = 0;
        return value;
    }
    *flags = PERL_SCAN_GREATER_THAN_UV_MAX;
    if (result)
        *result = value_nv;
    return UV_MAX;
}
#endif
#endif

#ifndef grok_hex
#if defined(NEED_grok_hex)
static UV DPPP_(my_grok_hex)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
static
#else
extern UV DPPP_(my_grok_hex)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
#endif

#if defined(NEED_grok_hex) || defined(NEED_grok_hex_GLOBAL)

#ifdef grok_hex
#  undef grok_hex
#endif
#define grok_hex(a,b,c,d) DPPP_(my_grok_hex)(aTHX_ a,b,c,d)
#define Perl_grok_hex DPPP_(my_grok_hex)

UV
DPPP_(my_grok_hex)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
{
    const char *s = start;
    STRLEN len = *len_p;
    UV value = 0;
    NV value_nv = 0;

    const UV max_div_16 = UV_MAX / 16;
    bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES;
    bool overflowed = FALSE;
    const char *xdigit;

    if (!(*flags & PERL_SCAN_DISALLOW_PREFIX)) {
        /* strip off leading x or 0x.
           for compatibility silently suffer "x" and "0x" as valid hex numbers.
        */
        if (len >= 1) {
            if (s[0] == 'x') {
                s++;
                len--;
            }
            else if (len >= 2 && s[0] == '0' && s[1] == 'x') {
                s+=2;

ppport.h  view on Meta::CPAN

            value_nv += (NV)((xdigit - PL_hexdigit) & 15);
            continue;
        }
        if (*s == '_' && len && allow_underscores && s[1]
                && (xdigit = strchr((char *) PL_hexdigit, s[1])))
            {
                --len;
                ++s;
                goto redo;
            }
        if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT))
            warn("Illegal hexadecimal digit '%c' ignored", *s);
        break;
    }

    if (   ( overflowed && value_nv > 4294967295.0)
#if UVSIZE > 4
        || (!overflowed && value > 0xffffffff  )
#endif
        ) {
        warn("Hexadecimal number > 0xffffffff non-portable");
    }
    *len_p = s - start;
    if (!overflowed) {
        *flags = 0;
        return value;
    }
    *flags = PERL_SCAN_GREATER_THAN_UV_MAX;
    if (result)
        *result = value_nv;
    return UV_MAX;
}
#endif
#endif

#ifndef grok_oct
#if defined(NEED_grok_oct)
static UV DPPP_(my_grok_oct)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
static
#else
extern UV DPPP_(my_grok_oct)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
#endif

#if defined(NEED_grok_oct) || defined(NEED_grok_oct_GLOBAL)

#ifdef grok_oct
#  undef grok_oct
#endif
#define grok_oct(a,b,c,d) DPPP_(my_grok_oct)(aTHX_ a,b,c,d)
#define Perl_grok_oct DPPP_(my_grok_oct)

UV
DPPP_(my_grok_oct)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
{
    const char *s = start;
    STRLEN len = *len_p;
    UV value = 0;
    NV value_nv = 0;

    const UV max_div_8 = UV_MAX / 8;
    bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES;
    bool overflowed = FALSE;

    for (; len-- && *s; s++) {
         /* gcc 2.95 optimiser not smart enough to figure that this subtraction
            out front allows slicker code.  */
        int digit = *s - '0';
        if (digit >= 0 && digit <= 7) {
            /* Write it in this wonky order with a goto to attempt to get the
               compiler to make the common case integer-only loop pretty tight.
            */

ppport.h  view on Meta::CPAN

            && (digit = s[1] - '0') && (digit >= 0 && digit <= 7))
            {
                --len;
                ++s;
                goto redo;
            }
        /* Allow \octal to work the DWIM way (that is, stop scanning
         * as soon as non-octal characters are seen, complain only iff
         * someone seems to want to use the digits eight and nine). */
        if (digit == 8 || digit == 9) {
            if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT))
                warn("Illegal octal digit '%c' ignored", *s);
        }
        break;
    }

    if (   ( overflowed && value_nv > 4294967295.0)
#if UVSIZE > 4
        || (!overflowed && value > 0xffffffff  )
#endif
        ) {
        warn("Octal number > 037777777777 non-portable");
    }
    *len_p = s - start;
    if (!overflowed) {
        *flags = 0;
        return value;
    }
    *flags = PERL_SCAN_GREATER_THAN_UV_MAX;
    if (result)
        *result = value_nv;
    return UV_MAX;
}
#endif
#endif

#if !defined(my_snprintf)
#if defined(NEED_my_snprintf)
static int DPPP_(my_my_snprintf)(char * buffer, const Size_t len, const char * format, ...);

ppport.h  view on Meta::CPAN

#if (PERL_BCDVERSION == 0x5019001) /* 5.19.1 does not have UTF8fARG, only broken UTF8f */
#undef UTF8f
#endif

#ifdef SVf_UTF8
#ifndef UTF8f
#  define UTF8f                          SVf
#endif

#ifndef UTF8fARG
#  define UTF8fARG(u,l,p)                newSVpvn_flags((p), (l), ((u) ? SVf_UTF8 : 0) | SVs_TEMP)
#endif

#endif

#define D_PPP_MIN(a,b) (((a) <= (b)) ? (a) : (b))
#ifndef UNICODE_REPLACEMENT
#  define UNICODE_REPLACEMENT            0xFFFD
#endif

#ifdef UTF8_MAXLEN

ppport.h  view on Meta::CPAN

   /* Choose which underlying implementation to use.  At least one must be
    * present or the perl is too early to handle this function */
#  if defined(utf8n_to_uvchr) || defined(utf8_to_uvchr) || defined(utf8_to_uv)
#    if defined(utf8n_to_uvchr)   /* This is the preferred implementation */
#      define D_PPP_utf8_to_uvchr_buf_callee utf8n_to_uvchr
#    elif /* Must be at least 5.6.1 from #if above;                             \
             If have both regular and _simple, regular has all args */          \
          defined(utf8_to_uv) && defined(utf8_to_uv_simple)
#      define D_PPP_utf8_to_uvchr_buf_callee utf8_to_uv
#    elif defined(utf8_to_uvchr)  /* The below won't work well on error input */
#      define D_PPP_utf8_to_uvchr_buf_callee(s, curlen, retlen, flags)          \
                                            utf8_to_uvchr((U8 *)(s), (retlen))
#    else
#      define D_PPP_utf8_to_uvchr_buf_callee(s, curlen, retlen, flags)          \
                                            utf8_to_uv((U8 *)(s), (retlen))
#    endif
#  endif

#  if defined(NEED_utf8_to_uvchr_buf)
static UV DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 * s, const U8 * send, STRLEN * retlen);
static
#else
extern UV DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 * s, const U8 * send, STRLEN * retlen);
#endif

ppport.h  view on Meta::CPAN


#ifdef sv_len_utf8
#  if (PERL_BCDVERSION >= 0x5017005)
#    ifndef  sv_len_utf8_nomg
#      if defined(PERL_USE_GCC_BRACE_GROUPS)
#        define sv_len_utf8_nomg(sv)                                    \
            ({                                                          \
                SV *sv_ = (sv);                                         \
                sv_len_utf8(!SvGMAGICAL(sv_)                            \
                            ? sv_                                       \
                            : sv_mortalcopy_flags(sv_, SV_NOSTEAL));    \
            })
#      else
         PERL_STATIC_INLINE STRLEN D_PPP_sv_len_utf8_nomg(SV * sv)
         {
             dTHX;
             if (SvGMAGICAL(sv))
                 return sv_len_utf8(sv_mortalcopy_flags(sv,
                                                        SV_NOSTEAL));
             else return sv_len_utf8(sv);
         }
#        define  sv_len_utf8_nomg(sv) D_PPP_sv_len_utf8_nomg(sv)
#      endif
#    endif
#  else /* < 5.17.5 */
    /* Older Perl versions have broken sv_len_utf8() when passed sv does not
     * have SVf_UTF8 flag set */
    /* Also note that SvGETMAGIC() may change presence of SVf_UTF8 flag */
#    undef sv_len_utf8
#    if defined(PERL_USE_GCC_BRACE_GROUPS)
#      define sv_len_utf8_nomg(sv)                                          \
        ({                                                                  \
            SV *sv2 = (sv);                                                 \
            STRLEN len;                                                     \
            if (SvUTF8(sv2)) {                                              \
                if (SvGMAGICAL(sv2))                                        \
                    len = Perl_sv_len_utf8(aTHX_                            \
                                           sv_mortalcopy_flags(sv2,         \
                                                               SV_NOSTEAL));\
                else                                                        \
                    len = Perl_sv_len_utf8(aTHX_ sv2);                      \
             }                                                              \
             else SvPV_nomg(sv2, len);                                      \
             len;                                                           \
       })
#      define sv_len_utf8(sv) ({ SV *_sv1 = (sv);                           \
                                 SvGETMAGIC(_sv1);                          \
                                 sv_len_utf8_nomg(_sv1);                    \
                              })
#    else   /* Below is no brace groups */
       PERL_STATIC_INLINE STRLEN D_PPP_sv_len_utf8_nomg(SV * sv)
       {
          dTHX;
          STRLEN len;
          if (SvUTF8(sv)) {
              if (SvGMAGICAL(sv))
                  len = Perl_sv_len_utf8(aTHX_
                                         sv_mortalcopy_flags(sv,
                                                             SV_NOSTEAL));
              else
                  len = Perl_sv_len_utf8(aTHX_ sv);
          }
          else SvPV_nomg(sv, len);
          return len;
       }
#      define sv_len_utf8_nomg(sv) D_PPP_sv_len_utf8_nomg(sv)

       PERL_STATIC_INLINE STRLEN D_PPP_sv_len_utf8(SV * sv)

ppport.h  view on Meta::CPAN

#endif

/* Hint: pv_escape
 * Note that unicode functionality is only backported to
 * those perl versions that support it. For older perl
 * versions, the implementation will fall back to bytes.
 */

#ifndef pv_escape
#if defined(NEED_pv_escape)
static char * DPPP_(my_pv_escape)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags);
static
#else
extern char * DPPP_(my_pv_escape)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags);
#endif

#if defined(NEED_pv_escape) || defined(NEED_pv_escape_GLOBAL)

#ifdef pv_escape
#  undef pv_escape
#endif
#define pv_escape(a,b,c,d,e,f) DPPP_(my_pv_escape)(aTHX_ a,b,c,d,e,f)
#define Perl_pv_escape DPPP_(my_pv_escape)


char *
DPPP_(my_pv_escape)(pTHX_ SV *dsv, char const * const str,
  const STRLEN count, const STRLEN max,
  STRLEN * const escaped, const U32 flags)
{
    const char esc = flags & PERL_PV_ESCAPE_RE ? '%' : '\\';
    const char dq = flags & PERL_PV_ESCAPE_QUOTE ? '"' : esc;
    char octbuf[32] = "%123456789ABCDF";
    STRLEN wrote = 0;
    STRLEN chsize = 0;
    STRLEN readsize = 1;
#if defined(is_utf8_string) && defined(utf8_to_uvchr_buf)
    bool isuni = flags & PERL_PV_ESCAPE_UNI ? 1 : 0;
#endif
    const char *pv  = str;
    const char * const end = pv + count;
    octbuf[0] = esc;

    if (!(flags & PERL_PV_ESCAPE_NOCLEAR))
        sv_setpvs(dsv, "");

#if defined(is_utf8_string) && defined(utf8_to_uvchr_buf)
    if ((flags & PERL_PV_ESCAPE_UNI_DETECT) && is_utf8_string((U8*)pv, count))
        isuni = 1;
#endif

    for (; pv < end && (!max || wrote < max) ; pv += readsize) {
        const UV u =
#if defined(is_utf8_string) && defined(utf8_to_uvchr_buf)
                     isuni ? utf8_to_uvchr_buf((U8*)pv, end, &readsize) :
#endif
                             (U8)*pv;
        const U8 c = (U8)u & 0xFF;

        if (u > 255 || (flags & PERL_PV_ESCAPE_ALL)) {
            if (flags & PERL_PV_ESCAPE_FIRSTCHAR)
                chsize = my_snprintf(octbuf, sizeof octbuf,
                                      "%" UVxf, u);
            else
                chsize = my_snprintf(octbuf, sizeof octbuf,
                                      "%cx{%" UVxf "}", esc, u);
        } else if (flags & PERL_PV_ESCAPE_NOBACKSLASH) {
            chsize = 1;
        } else {
            if (c == dq || c == esc || !isPRINT(c)) {
                chsize = 2;
                switch (c) {
                case '\\' : /* fallthrough */
                case '%'  : if (c == esc)
                                octbuf[1] = esc;
                            else
                                chsize = 1;

ppport.h  view on Meta::CPAN

            break;
        } else if (chsize > 1) {
            sv_catpvn(dsv, octbuf, chsize);
            wrote += chsize;
        } else {
            char tmp[2];
            my_snprintf(tmp, sizeof tmp, "%c", c);
            sv_catpvn(dsv, tmp, 1);
            wrote++;
        }
        if (flags & PERL_PV_ESCAPE_FIRSTCHAR)
            break;
    }
    if (escaped != NULL)
        *escaped= pv - str;
    return SvPVX(dsv);
}

#endif
#endif

#ifndef pv_pretty
#if defined(NEED_pv_pretty)
static char * DPPP_(my_pv_pretty)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags);
static
#else
extern char * DPPP_(my_pv_pretty)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags);
#endif

#if defined(NEED_pv_pretty) || defined(NEED_pv_pretty_GLOBAL)

#ifdef pv_pretty
#  undef pv_pretty
#endif
#define pv_pretty(a,b,c,d,e,f,g) DPPP_(my_pv_pretty)(aTHX_ a,b,c,d,e,f,g)
#define Perl_pv_pretty DPPP_(my_pv_pretty)


char *
DPPP_(my_pv_pretty)(pTHX_ SV *dsv, char const * const str, const STRLEN count,
  const STRLEN max, char const * const start_color, char const * const end_color,
  const U32 flags)
{
    const U8 dq = (flags & PERL_PV_PRETTY_QUOTE) ? '"' : '%';
    STRLEN escaped;

    if (!(flags & PERL_PV_PRETTY_NOCLEAR))
        sv_setpvs(dsv, "");

    if (dq == '"')
        sv_catpvs(dsv, "\"");
    else if (flags & PERL_PV_PRETTY_LTGT)
        sv_catpvs(dsv, "<");

    if (start_color != NULL)
        sv_catpv(dsv, D_PPP_CONSTPV_ARG(start_color));

    pv_escape(dsv, str, count, max, &escaped, flags | PERL_PV_ESCAPE_NOCLEAR);

    if (end_color != NULL)
        sv_catpv(dsv, D_PPP_CONSTPV_ARG(end_color));

    if (dq == '"')
        sv_catpvs(dsv, "\"");
    else if (flags & PERL_PV_PRETTY_LTGT)
        sv_catpvs(dsv, ">");

    if ((flags & PERL_PV_PRETTY_ELLIPSES) && escaped < count)
        sv_catpvs(dsv, "...");

    return SvPVX(dsv);
}

#endif
#endif

#ifndef pv_display
#if defined(NEED_pv_display)



( run in 5.902 seconds using v1.01-cache-2.11-cpan-94b05bcf43c )