Algorithm-AM

 view release on metacpan or  search on metacpan

lib/Algorithm/AM/DataSet.pm  view on Meta::CPAN


# return a sub that returns one Item per call from the given FH,
# and returns undef once the file is done being read. Throws errors
# on bad file contents.
# Input is file (Path::Tiny), string representing unknown class,
# string representing null feature, field separator (class,
# features, comment) and feature separator
sub _read_data_sub {
    my ($data_file, $unknown, $null,
        $field_sep, $feature_sep) = @_;
    my $data_fh = $data_file->openr_utf8;
    my $line_num = 0;
    return sub {
        my $line;
        # grab the next non-blank line from the file
        while($line = <$data_fh>){
            $line_num++;
            # skip comments
            next if $line =~ m/^\s*#/;
            # cross-platform chomp
            $line =~ s/\R$//;

ppport.h  view on Meta::CPAN

    PL_parser                 NEED_PL_parser               NEED_PL_parser_GLOBAL
    PL_signals                NEED_PL_signals              NEED_PL_signals_GLOBAL
    pv_display()              NEED_pv_display              NEED_pv_display_GLOBAL
    pv_escape()               NEED_pv_escape               NEED_pv_escape_GLOBAL
    pv_pretty()               NEED_pv_pretty               NEED_pv_pretty_GLOBAL
    sv_catpvf_mg()            NEED_sv_catpvf_mg            NEED_sv_catpvf_mg_GLOBAL
    sv_catpvf_mg_nocontext()  NEED_sv_catpvf_mg_nocontext  NEED_sv_catpvf_mg_nocontext_GLOBAL
    sv_setpvf_mg()            NEED_sv_setpvf_mg            NEED_sv_setpvf_mg_GLOBAL
    sv_setpvf_mg_nocontext()  NEED_sv_setpvf_mg_nocontext  NEED_sv_setpvf_mg_nocontext_GLOBAL
    sv_unmagicext()           NEED_sv_unmagicext           NEED_sv_unmagicext_GLOBAL
    utf8_to_uvchr_buf()       NEED_utf8_to_uvchr_buf       NEED_utf8_to_uvchr_buf_GLOBAL
    vload_module()            NEED_vload_module            NEED_vload_module_GLOBAL
    vmess()                   NEED_vmess                   NEED_vmess_GLOBAL
    warner()                  NEED_warner                  NEED_warner_GLOBAL

To avoid namespace conflicts, you can change the namespace of the
explicitly exported functions / variables using the C<DPPP_NAMESPACE>
macro. Just C<#define> the macro before including C<ppport.h>:

    #define DPPP_NAMESPACE MyOwnNamespace_
    #include "ppport.h"

ppport.h  view on Meta::CPAN

AMT_AMAGIC|5.004000||Viu
AMT_AMAGIC_off|5.004000||Viu
AMT_AMAGIC_on|5.004000||Viu
AMTf_AMAGIC|5.004000||Viu
_aMY_CXT|5.009000|5.009000|p
aMY_CXT_|5.009000|5.009000|p
aMY_CXT|5.009000|5.009000|p
anchored_end_shift|5.009005||Viu
anchored_offset|5.005000||Viu
anchored_substr|5.005000||Viu
anchored_utf8|5.008000||Viu
ANGSTROM_SIGN|5.017003||Viu
anonymise_cv_maybe|5.013003||Viu
any_dup|5.006000||Vu
ANYOF|5.003007||Viu
ANYOF_ALNUM|5.006000||Viu
ANYOF_ALNUML|5.004000||Viu
ANYOF_ALPHA|5.006000||Viu
ANYOF_ALPHANUMERIC|5.017008||Viu
ANYOF_ASCII|5.006000||Viu
ANYOF_BIT|5.004005||Viu

ppport.h  view on Meta::CPAN

ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP|5.023006||Viu
ANYOF_SPACE|5.006000||Viu
ANYOF_SPACEL|5.004000||Viu
ANYOF_UNIPROP|5.017006||Viu
ANYOF_UPPER|5.006000||Viu
ANYOF_VERTWS|5.009005||Viu
ANYOF_WORDCHAR|5.017005||Viu
ANYOF_XDIGIT|5.006000||Viu
ao|5.005000||Viu
_append_range_to_invlist|5.013010||Viu
append_utf8_from_native_byte|5.019004||cVniu
apply|5.003007||Viu
apply_attrs|5.006000||Viu
apply_attrs_my|5.007003||Viu
apply_attrs_string|5.006001|5.006001|xu
ARCHLIB|5.003007|5.003007|Vn
ARCHLIB_EXP|5.003007|5.003007|Vn
ARCHNAME|5.004000|5.004000|Vn
ARG1|5.003007||Viu
ARG1_LOC|5.005000||Viu
ARG1_SET|5.005000||Viu

ppport.h  view on Meta::CPAN

BRANCH|5.003007||Viu
BRANCHJ|5.005000||Viu
BRANCH_next|5.009005||Viu
BRANCH_next_fail|5.009005||Viu
BSD_GETPGRP|5.003007||Viu
BSDish|5.008001||Viu
BSD_SETPGRP|5.003007||Viu
BUFSIZ|5.003007||Viu
_byte_dump_string|5.025006||cViu
BYTEORDER|5.003007|5.003007|Vn
bytes_cmp_utf8|5.013007|5.013007|
bytes_from_utf8|5.007001|5.007001|x
bytes_from_utf8_loc|5.027001|5.027001|xnu
bytes_to_utf8|5.006001|5.006001|x
call_argv|5.006000|5.003007|p
call_atexit|5.006000|5.006000|u
CALL_BLOCK_HOOKS|5.013003||xVi
CALL_CHECKER_REQUIRE_GV|5.021004|5.021004|
caller_cx|5.013005|5.006000|p
CALL_FPTR|5.006000||Viu
call_list|5.004000|5.004000|u
call_method|5.006000|5.003007|p
calloc|5.007002|5.007002|n
call_pv|5.006000|5.003007|p

ppport.h  view on Meta::CPAN

checkcomma|5.003007||Viu
check_end_shift|5.009005||Viu
check_locale_boundary_crossing|5.015006||Viu
CHECK_MALLOC_TAINT|5.008001||Viu
CHECK_MALLOC_TOO_LATE_FOR|5.008001||Viu
check_offset_max|5.005000||Viu
check_offset_min|5.005000||Viu
check_substr|5.005000||Viu
check_type_and_open|5.009003||Viu
check_uni|5.003007||Viu
check_utf8|5.008000||Viu
check_utf8_print|5.013009||Viu
child_offset_bits|5.009003||Viu
chmod|5.005000||Viu
chsize|5.005000||Viu
ckDEAD|5.006000||Viu
ck_entersub_args_core|||iu
ck_entersub_args_list|5.013006|5.013006|
ck_entersub_args_proto|5.013006|5.013006|
ck_entersub_args_proto_or_list|5.013006|5.013006|
ckWARN2|5.006000|5.006000|p
ckWARN2_d|5.006000|5.006000|p

ppport.h  view on Meta::CPAN

do_aexec|5.009003||Viu
do_aexec5|5.006000||Viu
do_aspawn|5.008000||Vu
do_binmode|5.004005|5.004005|du
docatch|5.005000||Vi
do_chomp|5.003007||Viu
do_close|5.003007|5.003007|u
do_delete_local|5.011000||Viu
do_dump_pad|5.008001||Vi
do_eof|5.003007||Viu
does_utf8_overflow|5.025006||Vniu
doeval_compile|5.023008||Viu
do_exec3|5.006000||Viu
do_exec|5.009003||Viu
dofile|5.005003||Viu
dofindlabel|5.003007||Viu
doform|5.005000||Viu
do_gv_dump|5.006000||cVu
do_gvgv_dump|5.006000||cVu
do_hv_dump|5.006000||cVu
doing_taint|5.008001||cVnu

ppport.h  view on Meta::CPAN

FIRST_NON_ASCII_DECIMAL_DIGIT|5.027007||Viu
first_symbol|5.009003||Vniu
FITS_IN_8_BITS|5.013005||Viu
fixup_errno_string|5.019007||Viu
FLAGS|5.013006||Viu
FLEXFILENAMES|5.003007|5.003007|Vn
float_end_shift|5.009005||Viu
float_max_offset|5.005000||Viu
float_min_offset|5.005000||Viu
float_substr|5.005000||Viu
float_utf8|5.008000||Viu
flock|5.005000||Viu
flockfile|5.003007||Viu
F_log_amg|5.004000||Viu
FmLINES|5.003007||Viu
fold_constants|5.003007||Viu
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||Viu
FOLDEQ_S1_ALREADY_FOLDED|5.015004||Viu
FOLDEQ_S1_FOLDS_SANE|5.021008||Viu
FOLDEQ_S2_ALREADY_FOLDED|5.015004||Viu
FOLDEQ_S2_FOLDS_SANE|5.021008||Viu
foldEQ_utf8|5.013002|5.007003|p
foldEQ_utf8_flags|5.013010||cVu
FOLDEQ_UTF8_NOMIX_ASCII|5.013010||Viu
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
_force_out_malformed_utf8_message|5.025009||cVu
force_strict_version|5.011004||Viu
force_version|5.005000||Viu
force_word|5.003007||Viu
forget_pmop|5.017007||Viu
form|5.006000|5.004000|v
form_alien_digit_msg|5.031009||cViu
form_cp_too_large_msg|5.031009||cViu
form_nocontext|5.006000|5.006000|vn
fp_dup|5.007003|5.007003|u
Fpos_t|5.003007|5.003007|Vn

ppport.h  view on Meta::CPAN

I32TYPE|5.006000|5.006000|Vn
I64SIZE|5.006000|5.006000|Vn
I64TYPE|5.006000|5.006000|Vn
I8SIZE|5.006000|5.006000|Vn
I8_TO_NATIVE|5.015006||Viu
I8_TO_NATIVE_UTF8|5.019004||Viu
I8TYPE|5.006000|5.006000|Vn
I_ARPA_INET|5.005000|5.005000|Vn
ibcmp|5.003007|5.003007|
ibcmp_locale|5.004000|5.004000|
ibcmp_utf8|5.007003|5.007003|
I_CRYPT|5.008000|5.008000|Vn
I_DBM|5.031006|5.031006|Vn
I_DIRENT|5.003007|5.003007|Vn
I_DLFCN|5.003007|5.003007|Vn
I_EXECINFO|5.021001|5.021001|Vn
I_FENV|5.021004|5.021004|Vn
IFMATCH|5.003007||Viu
IFMATCH_A|5.009005||Viu
IFMATCH_A_fail|5.009005||Viu
IFTHEN|5.005000||Viu

ppport.h  view on Meta::CPAN

IoTYPE_WRONLY|5.006001||Viu
I_POLL|5.006000|5.006000|Vn
I_PTHREAD|5.005003|5.005003|Vn
I_PWD|5.003007|5.003007|Vn
isALNUM|5.003007|5.003007|p
isALNUM_A|5.031003|5.003007|p
isALNUMC|5.006000|5.003007|p
isALNUMC_A|5.013006|5.003007|p
isALNUMC_L1|5.013006|5.003007|p
isALNUMC_LC|5.006000|5.006000|
isALNUMC_LC_utf8_safe|5.031007||Viu
isALNUMC_LC_uvchr|5.017007|5.017007|
isALNUMC_uni|5.017007||Viu
isALNUMC_utf8|5.017007||Viu
isALNUMC_utf8_safe|5.031007||Viu
isALNUM_lazy_if_safe|5.031007||Viu
isALNUM_LC|5.004000|5.004000|
isALNUM_LC_utf8|5.006000||Viu
isALNUM_LC_utf8_safe|5.031007||Viu
isALNUM_LC_uvchr|5.007001|5.007001|
isALNUMU|5.011005||Viu
isALNUM_uni|5.006000||Viu
isALNUM_utf8|5.006000||Viu
isALNUM_utf8_safe|5.031007||Viu
isa_lookup|5.005000||Viu
isALPHA|5.003007|5.003007|p
isALPHA_A|5.013006|5.003007|p
isALPHA_FOLD_EQ|5.021004||Viu
isALPHA_FOLD_NE|5.021004||Viu
isALPHA_L1|5.013006|5.003007|p
isALPHA_LC|5.004000|5.004000|
isALPHA_LC_utf8|5.006000||Viu
isALPHA_LC_utf8_safe|5.025009|5.006000|p
isALPHA_LC_uvchr|5.007001|5.007001|
isALPHANUMERIC|5.017008|5.003007|p
isALPHANUMERIC_A|5.017008|5.003007|p
isALPHANUMERIC_L1|5.017008|5.003007|p
isALPHANUMERIC_LC|5.017008|5.004000|p
isALPHANUMERIC_LC_utf8|5.017008||Viu
isALPHANUMERIC_LC_utf8_safe|5.025009|5.006000|p
isALPHANUMERIC_LC_uvchr|5.017008|5.017008|
isALPHANUMERIC_uni|5.017008||Viu
isALPHANUMERIC_utf8|5.031005|5.031005|
isALPHANUMERIC_utf8_safe|5.025009|5.006000|p
isALPHANUMERIC_uvchr|5.023009|5.006000|p
isALPHAU|5.011005||Viu
isALPHA_uni|5.006000||Viu
isALPHA_utf8|5.031005|5.031005|
isALPHA_utf8_safe|5.025009|5.006000|p
isALPHA_uvchr|5.023009|5.006000|p
is_an_int|5.005000||Viu
is_ANYOF_SYNTHETIC|5.019009||Viu
IS_ANYOF_TRIE|5.009005||Viu
isASCII|5.006000|5.003007|p
isASCII_A|5.013006|5.003007|p
isASCII_L1|5.015004|5.003007|p
isASCII_LC|5.015008|5.003007|p
isASCII_LC_utf8|5.017007||Viu
isASCII_LC_utf8_safe|5.025009|5.025009|
isASCII_LC_uvchr|5.017007|5.017007|
is_ascii_string|5.011000|5.011000|n
isASCII_uni|5.006000||Viu
isASCII_utf8|5.031005|5.031005|
isASCII_utf8_safe|5.025009|5.003007|p
isASCII_uvchr|5.023009|5.003007|p
isatty|5.005000||Viu
ISA_VERSION_OBJ|5.019008||Viu
isBLANK|5.006001|5.003007|p
isBLANK_A|5.013006|5.003007|p
isBLANK_L1|5.013006|5.003007|p
isBLANK_LC|5.006001|5.003007|p
isBLANK_LC_uni|5.006001||Viu
isBLANK_LC_utf8|5.006001||Viu
isBLANK_LC_utf8_safe|5.025009|5.006000|p
isBLANK_LC_uvchr|5.017007|5.017007|
isBLANK_uni|5.006001||Viu
isBLANK_utf8|5.031005|5.031005|
isBLANK_utf8_safe|5.025009|5.006000|p
isBLANK_uvchr|5.023009|5.006000|p
isC9_STRICT_UTF8_CHAR|5.025005|5.025005|n
is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks|5.025005||Viu
is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks_part0|5.025008||Viu
is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks_part1|5.025008||Viu
is_c9strict_utf8_string|5.025006|5.025006|n
is_c9strict_utf8_string_loc|5.025006|5.025006|n
is_c9strict_utf8_string_loclen|5.025006|5.025006|n
isCHARNAME_CONT|5.011005||Viu
isCNTRL|5.006000|5.003007|p
isCNTRL_A|5.013006|5.003007|p
isCNTRL_L1|5.013006|5.003007|p
isCNTRL_LC|5.006000|5.006000|
isCNTRL_LC_utf8|5.006000||Viu
isCNTRL_LC_utf8_safe|5.025009|5.006000|p
isCNTRL_LC_uvchr|5.007001|5.007001|
isCNTRL_uni|5.006000||Viu
isCNTRL_utf8|5.031005|5.031005|
isCNTRL_utf8_safe|5.025009|5.006000|p
isCNTRL_uvchr|5.023009|5.006000|p
_is_cur_LC_category_utf8|5.021001||cVu
isDEBUG_WILDCARD|5.031010||Viu
isDIGIT|5.003007|5.003007|p
isDIGIT_A|5.013006|5.003007|p
isDIGIT_L1|5.013006|5.003007|p
isDIGIT_LC|5.004000|5.004000|
isDIGIT_LC_utf8|5.006000||Viu
isDIGIT_LC_utf8_safe|5.025009|5.006000|p
isDIGIT_LC_uvchr|5.007001|5.007001|
isDIGIT_uni|5.006000||Viu
isDIGIT_utf8|5.031005|5.031005|
isDIGIT_utf8_safe|5.025009|5.006000|p
isDIGIT_uvchr|5.023009|5.006000|p
isFF_OVERLONG|5.025007||Vniu
is_FOLDS_TO_MULTI_utf8|5.019009||Viu
isFOO_lc|5.017007||cViu
isFOO_utf8_lc|5.017008||Viu
isGCB|5.021009||Viu
isGRAPH|5.006000|5.003007|p
isGRAPH_A|5.013006|5.003007|p
is_grapheme|5.031007||Viu
isGRAPH_L1|5.013006|5.003007|p
isGRAPH_LC|5.006000|5.006000|
isGRAPH_LC_utf8|5.006000||Viu
isGRAPH_LC_utf8_safe|5.025009|5.006000|p
isGRAPH_LC_uvchr|5.007001|5.007001|
isGRAPH_uni|5.006000||Viu
isGRAPH_utf8|5.031005|5.031005|
isGRAPH_utf8_safe|5.025009|5.006000|p
isGRAPH_uvchr|5.023009|5.006000|p
isGV|5.003007||Viu
isGV_or_RVCV|5.027005||Viu
isGV_with_GP|5.009004|5.003007|p
isGV_with_GP_off|5.009005||Viu
isGV_with_GP_on|5.009005||Viu
I_SHADOW|5.006000|5.006000|Vn
is_handle_constructor|5.006000||Vniu
is_HANGUL_ED_utf8_safe|5.029001||Viu
is_HORIZWS_cp_high|5.017006||Viu
is_HORIZWS_high|5.017006||Viu
isIDCONT|5.017008|5.003007|p
isIDCONT_A|5.017008|5.003007|p
isIDCONT_L1|5.017008|5.003007|p
isIDCONT_LC|5.017008|5.004000|p
isIDCONT_LC_utf8|5.017008||Viu
isIDCONT_LC_utf8_safe|5.025009|5.006000|p
isIDCONT_LC_uvchr|5.017008|5.017008|
isIDCONT_uni|5.017008||Viu
isIDCONT_utf8|5.031005|5.031005|
isIDCONT_utf8_safe|5.025009|5.006000|p
isIDCONT_uvchr|5.023009|5.006000|p
isIDFIRST|5.003007|5.003007|p
isIDFIRST_A|5.013006|5.003007|p
isIDFIRST_L1|5.013006|5.003007|p
isIDFIRST_lazy_if_safe|5.025009||Viu
isIDFIRST_LC|5.004000|5.004000|p
isIDFIRST_LC_utf8|5.006000||Viu
isIDFIRST_LC_utf8_safe|5.025009|5.006000|p
isIDFIRST_LC_uvchr|5.007001|5.007001|
isIDFIRST_uni|5.006000||Viu
isIDFIRST_utf8|5.031005|5.031005|
isIDFIRST_utf8_safe|5.025009|5.006000|p
isIDFIRST_uvchr|5.023009|5.006000|p
isinfnan|5.021004|5.021004|n
isinfnansv|5.021005||Vi
_is_in_locale_category|5.021001||cViu
is_invariant_string|5.021007|5.011000|pn
is_invlist|5.029002||Vniu
is_LAX_VERSION|5.011004||Viu
isLB|5.023007||Viu
isLEXWARN_off|5.006000||Viu
isLEXWARN_on|5.006000||Viu
is_LNBREAK_latin1_safe|5.009005||Viu
is_LNBREAK_safe|5.009005||Viu
is_LNBREAK_utf8_safe|5.009005||Viu
isLOWER|5.003007|5.003007|p
isLOWER_A|5.013006|5.003007|p
isLOWER_L1|5.013006|5.003007|p
isLOWER_LC|5.004000|5.004000|
isLOWER_LC_utf8|5.006000||Viu
isLOWER_LC_utf8_safe|5.025009|5.006000|p
isLOWER_LC_uvchr|5.007001|5.007001|
isLOWER_uni|5.006000||Viu
isLOWER_utf8|5.031005|5.031005|
isLOWER_utf8_safe|5.025009|5.006000|p
isLOWER_uvchr|5.023009|5.006000|p
is_lvalue_sub|5.007001|5.007001|u
isMNEMONIC_CNTRL|5.031009||Viu
is_MULTI_CHAR_FOLD_latin1_safe|5.019010||Viu
is_MULTI_CHAR_FOLD_utf8_safe|5.019010||Viu
is_MULTI_CHAR_FOLD_utf8_safe_part0|5.019010||Viu
is_MULTI_CHAR_FOLD_utf8_safe_part1|5.019010||Viu
is_MULTI_CHAR_FOLD_utf8_safe_part2|5.025008||Viu
is_MULTI_CHAR_FOLD_utf8_safe_part3|5.025008||Viu
is_NONCHAR_utf8_safe|5.025005||Viu
isnormal|5.021004||Viu
IS_NUMBER_GREATER_THAN_UV_MAX|5.007002|5.003007|p
IS_NUMBER_INFINITY|5.007002|5.003007|p
IS_NUMBER_IN_UV|5.007002|5.003007|p
IS_NUMBER_NAN|5.007003|5.003007|p
IS_NUMBER_NEG|5.007002|5.003007|p
IS_NUMBER_NOT_INT|5.007002|5.003007|p
IS_NUMBER_TRAILING|5.021002||Viu
IS_NUMERIC_RADIX|5.006000||Viu
isOCTAL|5.013005|5.003007|p

ppport.h  view on Meta::CPAN

isOCTAL_L1|5.013006|5.003007|p
IS_PADCONST|5.006000||Viu
IS_PADGV|5.006000||Viu
is_PATWS_cp|5.017008||Viu
is_PATWS_safe|5.017008||Viu
isPOWER_OF_2|5.029006||Viu
isPRINT|5.004000|5.003007|p
isPRINT_A|5.013006|5.003007|p
isPRINT_L1|5.013006|5.003007|p
isPRINT_LC|5.004000|5.004000|
isPRINT_LC_utf8|5.006000||Viu
isPRINT_LC_utf8_safe|5.025009|5.006000|p
isPRINT_LC_uvchr|5.007001|5.007001|
isPRINT_uni|5.006000||Viu
isPRINT_utf8|5.031005|5.031005|
isPRINT_utf8_safe|5.025009|5.006000|p
isPRINT_uvchr|5.023009|5.006000|p
is_PROBLEMATIC_LOCALE_FOLD_cp|5.019009||Viu
is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp|5.019009||Viu
is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8|5.019009||Viu
is_PROBLEMATIC_LOCALE_FOLD_utf8|5.019009||Viu
isPSXSPC|5.006001|5.003007|p
isPSXSPC_A|5.013006|5.003007|p
isPSXSPC_L1|5.013006|5.003007|p
isPSXSPC_LC|5.006001|5.006001|
isPSXSPC_LC_utf8|5.006001||Viu
isPSXSPC_LC_utf8_safe|5.025009|5.006000|p
isPSXSPC_LC_uvchr|5.017007|5.017007|
isPSXSPC_uni|5.006001||Viu
isPSXSPC_utf8|5.031005|5.031005|
isPSXSPC_utf8_safe|5.025009|5.006000|p
isPSXSPC_uvchr|5.023009|5.006000|p
isPUNCT|5.006000|5.003007|p
isPUNCT_A|5.013006|5.003007|p
isPUNCT_L1|5.013006|5.003007|p
isPUNCT_LC|5.006000|5.006000|
isPUNCT_LC_utf8|5.006000||Viu
isPUNCT_LC_utf8_safe|5.025009|5.006000|p
isPUNCT_LC_uvchr|5.007001|5.007001|
isPUNCT_uni|5.006000||Viu
isPUNCT_utf8|5.031005|5.031005|
isPUNCT_utf8_safe|5.025009|5.006000|p
isPUNCT_uvchr|5.023009|5.006000|p
is_QUOTEMETA_high|5.017004||Viu
is_QUOTEMETA_high_part0|5.021001||Viu
is_QUOTEMETA_high_part1|5.021001||Viu
isREGEXP|5.017006||Viu
IS_SAFE_PATHNAME|5.019004||Viu
IS_SAFE_SYSCALL|5.019004|5.019004|
is_safe_syscall|5.019004|5.019004|
isSB|5.021009||Viu
isSCRIPT_RUN|5.027008||cVi
isSPACE|5.003007|5.003007|p
isSPACE_A|5.013006|5.003007|p
isSPACE_L1|5.013006|5.003007|p
isSPACE_LC|5.004000|5.004000|
isSPACE_LC_utf8|5.006000||Viu
isSPACE_LC_utf8_safe|5.025009|5.006000|p
isSPACE_LC_uvchr|5.007001|5.007001|
isSPACE_uni|5.006000||Viu
isSPACE_utf8|5.031005|5.031005|
isSPACE_utf8_safe|5.025009|5.006000|p
isSPACE_uvchr|5.023009|5.006000|p
is_ssc_worth_it|5.021005||Vniu
isSTRICT_UTF8_CHAR|5.025005|5.025005|n
is_STRICT_UTF8_CHAR_utf8_no_length_checks|5.025005||Viu
is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0|5.025005||Viu
is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1|5.025005||Viu
is_STRICT_UTF8_CHAR_utf8_no_length_checks_part2|5.025008||Viu
is_STRICT_UTF8_CHAR_utf8_no_length_checks_part3|5.025008||Viu
is_strict_utf8_string|5.025006|5.025006|n
is_strict_utf8_string_loc|5.025006|5.025006|n
is_strict_utf8_string_loclen|5.025006|5.025006|n
is_STRICT_VERSION|5.011004||Viu
is_SURROGATE_utf8_safe|5.025005||Viu
I_STDARG|5.003007||Viu
I_STDBOOL|5.015003|5.015003|Vn
I_STDINT|5.021004|5.021004|Vn
is_THREE_CHAR_FOLD_HEAD_latin1_safe|5.031007||Viu
is_THREE_CHAR_FOLD_HEAD_utf8_safe|5.031007||Viu
is_THREE_CHAR_FOLD_latin1_safe|5.031007||Viu
is_THREE_CHAR_FOLD_utf8_safe|5.031007||Viu
IS_TRIE_AC|5.009005||Viu
_is_uni_FOO|5.017008||cVu
_is_uni_perl_idcont|5.017008||cVu
_is_uni_perl_idstart|5.017007||cVu
isUPPER|5.003007|5.003007|p
isUPPER_A|5.013006|5.003007|p
isUPPER_L1|5.013006|5.003007|p
isUPPER_LC|5.004000|5.004000|
isUPPER_LC_utf8|5.006000||Viu
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|
is_utf8_char_helper|5.031004||cVnu
is_UTF8_CHAR_utf8_no_length_checks|5.021001||Viu
is_utf8_common|5.009003||Viu
is_utf8_cp_above_31_bits|5.025005||Vniu
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_given_start_byte_ok|5.025006||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
isWORDCHAR|5.013006|5.003007|p
isWORDCHAR_A|5.013006|5.003007|p
isWORDCHAR_L1|5.013006|5.003007|p
isWORDCHAR_lazy_if_safe|5.025009||Viu
isWORDCHAR_LC|5.017007|5.004000|p
isWORDCHAR_LC_utf8|5.017007||Viu
isWORDCHAR_LC_utf8_safe|5.025009|5.006000|p
isWORDCHAR_LC_uvchr|5.017007|5.017007|
isWORDCHAR_uni|5.017006||Viu
isWORDCHAR_utf8|5.031005|5.031005|
isWORDCHAR_utf8_safe|5.025009|5.006000|p
isWORDCHAR_uvchr|5.023009|5.006000|p
isXDIGIT|5.006000|5.003007|p
isXDIGIT_A|5.013006|5.003007|p
is_XDIGIT_cp_high|5.017006||Viu
is_XDIGIT_high|5.017006||Viu
isXDIGIT_L1|5.013006|5.003007|p
isXDIGIT_LC|5.017007|5.003007|p
isXDIGIT_LC_utf8|5.017007||Viu
isXDIGIT_LC_utf8_safe|5.025009|5.006000|p
isXDIGIT_LC_uvchr|5.017007|5.017007|
isXDIGIT_uni|5.006000||Viu
isXDIGIT_utf8|5.031005|5.031005|
isXDIGIT_utf8_safe|5.025009|5.006000|p
isXDIGIT_uvchr|5.023009|5.006000|p
is_XPERLSPACE_cp_high|5.017006||Viu
is_XPERLSPACE_high|5.017006||Viu
I_SYS_DIR|5.003007|5.003007|Vn
I_SYS_FILE|5.003007|5.003007|Vn
I_SYS_IOCTL|5.003007|5.003007|Vn
I_SYSLOG|5.006000|5.006000|Vn
I_SYS_MOUNT|5.023005|5.023005|Vn
I_SYS_PARAM|5.003007|5.003007|Vn
I_SYS_POLL|5.010001|5.010001|Vn

ppport.h  view on Meta::CPAN

LC_NUMERIC_LOCK|5.027009||pViu
LC_NUMERIC_UNLOCK|5.027009||pViu
LDBL_DIG|5.006000||Viu
LEAVE|5.003007|5.003007|
leave_adjust_stacks|5.023008|5.023008|xu
leave_scope|5.003007|5.003007|u
LEAVE_SCOPE|5.003007||Viu
LEAVE_with_name|5.011002|5.011002|
LEXACT|5.031005||Viu
LEXACT_REQ8|5.031006||Viu
lex_bufutf8|5.011002|5.011002|x
lex_discard_to|5.011002|5.011002|x
LEX_DONT_CLOSE_RSFP|5.015009||Viu
LEX_EVALBYTES|5.015005||Viu
lex_grow_linestr|5.011002|5.011002|x
LEX_IGNORE_UTF8_HINTS|5.015005||Viu
LEX_KEEP_PREVIOUS|5.011002|5.011002|
lex_next_chunk|5.011002|5.011002|x
LEX_NOTPARSING|5.004004||Viu
lex_peek_unichar|5.011002|5.011002|x
lex_read_space|5.011002|5.011002|x

ppport.h  view on Meta::CPAN

magic_setlvref|5.021005||Viu
magic_setmglob|5.003007||Viu
magic_setnkeys|5.003007||Viu
magic_setnonelem|5.027009||Viu
magic_setpack|5.003007||Viu
magic_setpos|5.003007||Viu
magic_setregexp|5.008001||Viu
magic_setsig|5.003007||Viu
magic_setsubstr|5.003007||Viu
magic_settaint|5.003007||Viu
magic_setutf8|5.008001||Viu
magic_setuvar|5.003007||Viu
magic_setvec|5.003007||Viu
magic_sizepack|5.005000||Viu
magic_wipepack|5.003007||Viu
make_exactf_invlist|5.031007||Viu
make_matcher|5.027008||Viu
make_trie|5.009002||Viu
malloc|5.007002|5.007002|n
MALLOC_CHECK_TAINT2|5.008001||Viu
MALLOC_CHECK_TAINT|5.008001||Viu

ppport.h  view on Meta::CPAN

mXPUSHn|5.009002|5.003007|p
mXPUSHp|5.009002|5.003007|p
mXPUSHs|5.010001|5.003007|p
mXPUSHu|5.009002|5.003007|p
my|5.011000||Viu
my_atof2|5.029000||cVu
my_atof3|5.029000||cVu
my_atof|5.006000|5.006000|
my_attrs|5.006000||Viu
my_binmode|5.006000||Viu
my_bytes_to_utf8|5.021009||Vniu
my_chsize|5.003007||Vu
my_clearenv|5.009003||Viu
MY_CXT|5.009000|5.009000|p
MY_CXT_CLONE|5.009002|5.009000|p
MY_CXT_INDEX|5.009005||Viu
MY_CXT_INIT|5.009000|5.009000|p
my_cxt_init|5.010000|5.010000|u
MY_CXT_INIT_ARG|5.013005||Viu
MY_CXT_INIT_INTERP|5.009003||Viu
my_dirfd|5.009005|5.009005|nu

ppport.h  view on Meta::CPAN

nBIT_UMAX|5.033001||Viu
NBOUND|5.003007||Viu
NBOUNDA|5.013009||Viu
NBOUNDL|5.004000||Viu
NBOUNDU|5.013009||Viu
NBSP_NATIVE|5.021001||Viu
NBSP_UTF8|5.021001||Viu
NDBM_H_USES_PROTOTYPES|5.031006|5.031006|Vn
NDEBUG|5.021007||Viu
NEED_PTHREAD_INIT|5.005000||Viu
need_utf8|5.009003||Vniu
NEED_VA_COPY|5.007001|5.007001|Vn
NEGATIVE_INDICES_VAR|5.008001||Viu
Netdb_hlen_t|5.005000|5.005000|Vn
Netdb_host_t|5.005000|5.005000|Vn
Netdb_name_t|5.005000|5.005000|Vn
Netdb_net_t|5.005000|5.005000|Vn
NETDB_R_OBSOLETE|5.008000||Viu
New|5.003007||Viu
newANONATTRSUB|5.006000|5.006000|u
newANONHASH|5.003007|5.003007|u

ppport.h  view on Meta::CPAN

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.006000|5.004000|v
newSVpvf_nocontext|5.006000|5.006000|vn
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|pocVu
newSVsv_nomg|5.029009|5.003007|p
newSV_type|5.009005|5.003007|p

ppport.h  view on Meta::CPAN

NOOP|5.005000|5.003007|p
noperl_die|5.021006||vVniu
NORETURN_FUNCTION_END|5.009003||Viu
NORMAL|5.003007||Viu
NOSTR|5.027010||Viu
NO_TAINT_SUPPORT|5.017006||Viu
not_a_number|5.005000||Viu
NOTE3|5.027001||Viu
NOTHING|5.003007||Viu
nothreadhook|5.008000|5.008000|
notify_parser_that_changed_to_utf8|5.025010||Viu
not_incrementable|5.021002||Viu
NOT_IN_PAD|5.005000||Viu
NOT_REACHED|5.019006||Viu
NPOSIXA|5.017003||Viu
NPOSIXD|5.017003||Viu
NPOSIXL|5.017003||Viu
NPOSIXU|5.017003||Viu
NSIG|5.009003||Viu
ntohi|5.003007||Viu
ntohl|5.003007||Viu

ppport.h  view on Meta::CPAN

PERL_MAGIC_sigelem|5.007002|5.003007|p
PERL_MAGIC_substr|5.007002|5.003007|p
PERL_MAGIC_sv|5.007002|5.003007|p
PERL_MAGIC_symtab|5.009003|5.009003|
PERL_MAGIC_taint|5.007002|5.003007|p
PERL_MAGIC_tied|5.007002|5.003007|p
PERL_MAGIC_tiedelem|5.007002|5.003007|p
PERL_MAGIC_tiedscalar|5.007002|5.003007|p
PERL_MAGIC_TYPE_IS_VALUE_MAGIC|5.015000||Viu
PERL_MAGIC_TYPE_READONLY_ACCEPTABLE|5.015000||Viu
PERL_MAGIC_utf8|5.008001|5.003007|p
PERL_MAGIC_UTF8_CACHESIZE|5.008001||Viu
PERL_MAGIC_uvar|5.007002|5.003007|p
PERL_MAGIC_uvar_elem|5.007003|5.003007|p
PERL_MAGIC_VALUE_MAGIC|5.015000||Viu
PERL_MAGIC_vec|5.007002|5.003007|p
PERL_MAGIC_vstring|5.008001|5.003007|p
PERL_MAGIC_VTABLE_MASK|5.015000||Viu
Perl_malloc|5.006000||Viu
PERL_MALLOC_CTL_H|5.027001||Viu
Perl_malloc_good_size|5.010001||Viu

ppport.h  view on Meta::CPAN

PL_in_clean_all|5.005000||Viu
PL_in_clean_objs|5.005000||Viu
PL_in_eval|5.005000||Viu
PL_initav|5.005000||Viu
PL_in_load_module|5.008001||Viu
PL_in_my||5.003007|ponu
PL_in_my_stash||5.005000|ponu
PL_inplace|5.005000||Viu
PL_in_some_fold|5.029007||Viu
PL_internal_random_state|5.027004||Viu
PL_in_utf8_COLLATE_locale|5.025002||Viu
PL_in_utf8_CTYPE_locale|5.019009||Viu
PL_in_utf8_turkic_locale|5.029008||Viu
PL_isarev|5.009005||Viu
PL_keyword_plugin|5.011002|5.011002|x
PL_known_layers|5.007003||Viu
PL_langinfo_buf|5.027004||Viu
PL_langinfo_bufsize|5.027004||Viu
PL_lastfd|5.005000||Viu
PL_lastgotoprobe|5.005000||Viu
PL_last_in_gv|5.005000||Vi
PL_laststatval|5.005000|5.003007|poVnu
PL_laststype|5.005000||Viu
PL_Latin1|5.015008||Viu
PL_LB_invlist|5.023007||Viu
PL_lc_numeric_mutex_depth|5.027009||Viu
PL_lex_state||5.003007|ponu
PL_lex_stuff||5.003007|ponu
PL_linestr||5.003007|ponu
PL_LIO|5.006000||Viu
PL_locale_utf8ness|5.027009||Viu
PL_localizing|5.005000||Viu
PL_localpatches|5.005000||Viu
PL_lockhook|5.007003||Viu
PL_main_cv|5.005000||Viu
PL_main_root|5.005000||Viu
PL_mainstack|5.005000||Viu
PL_main_start|5.005000||Viu
PL_markstack|5.005000||Viu
PL_markstack_max|5.005000||Viu
PL_markstack_ptr|5.005000||Viu

ppport.h  view on Meta::CPAN

PL_toptarget|5.005000||Viu
PL_TR_SPECIAL_HANDLING_UTF8|5.031007||Viu
PL_underlying_numeric_obj|5.027009||Viu
PL_unicode|5.008001||Viu
PL_unitcheckav|5.009005||Viu
PL_unitcheckav_save|5.009005||Viu
PL_unlockhook|5.007003||Viu
PL_unsafe|5.005000||Viu
PL_UpperLatin1|5.019005||Viu
PLUS|5.003007||Viu
PL_utf8cache|5.009004||Viu
PL_utf8_charname_begin|5.017006||Viu
PL_utf8_charname_continue|5.017006||Viu
PL_utf8_foldclosures|5.013007||Viu
PL_utf8_idcont|5.008000||Viu
PL_utf8_idstart|5.008000||Viu
PL_utf8locale|5.008001||Viu
PL_utf8_mark|5.006000||Viu
PL_utf8_perl_idcont|5.017008||Viu
PL_utf8_perl_idstart|5.015004||Viu
PL_utf8_tofold|5.007003||Viu
PL_utf8_tolower|5.006000||Viu
PL_utf8_tosimplefold|5.027011||Viu
PL_utf8_totitle|5.006000||Viu
PL_utf8_toupper|5.006000||Viu
PL_utf8_xidcont|5.013010||Viu
PL_utf8_xidstart|5.013010||Viu
PL_vtbl_arylen|5.015000||Viu
PL_vtbl_arylen_p|5.015000||Viu
PL_vtbl_backref|5.015000||Viu
PL_vtbl_bm|5.015000||Viu
PL_vtbl_checkcall|5.017000||Viu
PL_vtbl_collxfrm|5.015000||Viu
PL_vtbl_dbline|5.015000||Viu
PL_vtbl_debugvar|5.021005||Viu
PL_vtbl_defelem|5.015000||Viu
PL_vtbl_env|5.015000||Viu

ppport.h  view on Meta::CPAN

PL_vtbl_pack|5.015000||Viu
PL_vtbl_packelem|5.015000||Viu
PL_vtbl_pos|5.015000||Viu
PL_vtbl_regdata|5.015000||Viu
PL_vtbl_regdatum|5.015000||Viu
PL_vtbl_regexp|5.015000||Viu
PL_vtbl_sigelem|5.015000||Viu
PL_vtbl_substr|5.015000||Viu
PL_vtbl_sv|5.015000||Viu
PL_vtbl_taint|5.015000||Viu
PL_vtbl_utf8|5.015000||Viu
PL_vtbl_uvar|5.015000||Viu
PL_vtbl_vec|5.015000||Viu
PL_warnhook|5.005000||Viu
PL_warn_locale|5.021008||Viu
PL_watchaddr|5.006000||Viu
PL_watchok|5.006000||Viu
PL_WB_invlist|5.021009||Viu
PL_wcrtomb_ps|5.031009||Viu
PL_XPosix_ptrs|5.017008||Viu
PL_Xpv|5.005000|5.003007|poVnu

ppport.h  view on Meta::CPAN

sv_2num|5.010000||xVi
sv_2nv|5.013001||Viu
sv_2nv_flags|5.013001|5.013001|
sv_2pv|5.005000||cVu
sv_2pvbyte|5.006000|5.003007|p
sv_2pvbyte_flags|5.031004|5.031004|
sv_2pvbyte_nolen|5.009003|5.003007|pocV
sv_2pv_flags|5.007002|5.003007|pocV
sv_2pv_nolen|5.009003|5.003007|pocV
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|5.003007|pocVu
sv_2uv_flags|5.009001|5.009001|
sv_add_arena|5.003007||Vi
sv_add_backref|||iu
SvAMAGIC|5.003007||Viu
SvAMAGIC_off|5.031004|5.031004|n
SvAMAGIC_on|5.031004|5.031004|n
SvANY|5.003007||Viu
sv_backoff|5.003007|5.003007|n
sv_bless|5.003007|5.003007|

ppport.h  view on Meta::CPAN

sv_catpvf|5.006000|5.004000|v
sv_catpv_flags|5.013006|5.013006|
sv_catpvf_mg|5.006000|5.004000|pv
sv_catpvf_mg_nocontext|5.006000|5.006000|pvn
sv_catpvf_nocontext|5.006000|5.006000|vn
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|

ppport.h  view on Meta::CPAN

SvIV_please|5.007001||Viu
SvIV_please_nomg|5.013002||Viu
SvIV_set|5.003007|5.003007|
SvIVX|5.003007|5.003007|
SvIVx|5.003007|5.003007|
SvIVXx|5.003007||Viu
sv_kill_backrefs|||xiu
sv_len|5.003007|5.003007|
SvLEN|5.003007|5.003007|
SvLEN_set|5.003007|5.003007|
sv_len_utf8|5.006000|5.006000|p
sv_len_utf8_nomg|5.017004|5.006000|poViu
SvLENx|5.003007||Viu
SvLOCK|5.007003|5.007003|
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

ppport.h  view on Meta::CPAN

SvOBJECT_on|5.003007||Viu
SvOK|5.003007|5.003007|
SvOK_off|5.003007||Viu
SvOK_off_exc_UV|5.006000||Viu
SvOKp|5.003007||Viu
sv_only_taint_gmagic|5.021010||Vniu
SvOOK|5.003007|5.003007|
SvOOK_off|5.003007|5.003007|
SvOOK_offset|5.011000|5.011000|
SvOOK_on|5.003007||Viu
sv_or_pv_len_utf8|5.017005||Viu
sv_or_pv_pos_u2b|5.019004||Viu
SvOURSTASH|5.009005||Viu
SvOURSTASH_set|5.009005||Viu
SvPADMY|5.003007||Viu
SvPADMY_on|5.003007||Viu
SVpad_OUR|5.006000||Viu
SvPAD_OUR|5.009004||Viu
SvPAD_OUR_on|5.009004||Viu
SvPADSTALE|5.009000||Viu
SvPADSTALE_off|5.009000||Viu

ppport.h  view on Meta::CPAN

SvPOK_byte_pure_nogthink|5.017003||Viu
SvPOK_nog|5.017002||Viu
SvPOK_nogthink|5.017002||Viu
SvPOK_off|5.003007|5.003007|
SvPOK_on|5.003007|5.003007|
SvPOK_only|5.003007|5.003007|
SvPOK_only_UTF8|5.006000|5.006000|
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
SVprv_PCS_IMPORTED|5.009005||Viu

ppport.h  view on Meta::CPAN

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|
SvPV_shrink_to_cur|5.009003|5.009003|
SvPVutf8|5.006000|5.006000|
sv_pvutf8|5.008000||cV
SvPVutf8_force|5.006000|5.006000|
sv_pvutf8n|5.006000||dcV
sv_pvutf8n_force|5.006000||cV
sv_pvutf8n_force_wrapper|||iu
SvPVutf8_nolen|5.006000|5.006000|
SvPVutf8_nomg|5.031004|5.031004|
SvPVutf8_or_null|5.031004|5.031004|
SvPVutf8_or_null_nomg|5.031004|5.031004|
SvPVutf8x|5.006000|5.006000|
SvPVutf8x_force|5.006000|5.006000|
SvPVX|5.003007|5.003007|
SvPVx|5.003007|5.003007|
SvPVX_const|5.009003|5.003007|p
SvPVx_const|5.009003||Viu
SvPVx_force|5.003007||Viu
SvPVX_mutable|5.009003|5.003007|p
SvPVx_nolen|5.009003||Viu
SvPVx_nolen_const|5.009003||pViu
SvPVXtrue|5.017002||Viu
SvPVXx|5.003007||Viu
SvREADONLY|5.003007|5.003007|
SvREADONLY_off|5.003007|5.003007|
SvREADONLY_on|5.003007|5.003007|
sv_recode_to_utf8|5.007003|5.007003|
sv_ref|5.015004|5.015004|
SvREFCNT|5.003007|5.003007|
SvREFCNT_dec|5.003007|5.003007|
SvREFCNT_dec_NN|5.017007|5.017007|
SvREFCNT_IMMORTAL|5.017008||Viu
SvREFCNT_inc|5.003007|5.003007|pn
SvREFCNT_inc_NN|5.009004|5.003007|pn
SvREFCNT_inc_simple|5.009004|5.003007|p
SvREFCNT_inc_simple_NN|5.009004|5.003007|p
SvREFCNT_inc_simple_void|5.009004|5.003007|p

ppport.h  view on Meta::CPAN

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|5.003007|podcV
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

ppport.h  view on Meta::CPAN

tmpnam|5.005000||Viu
TMPNAM_R_PROTO|5.008000|5.008000|Vn
tmps_grow_p|5.021005||cViu
to_byte_substr|5.008000||Viu
toCTRL|5.004000||Viu
toFOLD|5.019001|5.019001|
toFOLD_A|5.019001||Viu
_to_fold_latin1|5.015005||cVniu
toFOLD_LC|5.019001||Viu
toFOLD_uni|5.007003||Viu
toFOLD_utf8|5.031005|5.031005|
toFOLD_utf8_safe|5.025009|5.006000|p
toFOLD_uvchr|5.023009|5.006000|p
TO_INTERNAL_SIZE|5.023002||Viu
tokenize_use|5.009003||Viu
tokeq|5.005000||Viu
tokereport|5.007001||Viu
toLOWER|5.003007|5.003007|
toLOWER_A|5.019001||Viu
toLOWER_L1|5.019001|5.019001|
toLOWER_LATIN1|5.011002||Viu
to_lower_latin1|5.015005||Vniu
toLOWER_LC|5.004000|5.004000|
toLOWER_uni|5.006000||Viu
toLOWER_utf8|5.031005|5.031005|
toLOWER_utf8_safe|5.025009|5.006000|p
toLOWER_uvchr|5.023009|5.006000|p
too_few_arguments_pv|5.016000||Viu
TOO_LATE_FOR|5.008001||Viu
too_many_arguments_pv|5.016000||Viu
TOPi|5.003007||Viu
TOPl|5.003007||Viu
TOPm1s|5.007001||Viu
TOPMARK|5.003007||cViu
TOPn|5.003007||Viu
TOPp1s|5.007001||Viu
TOPp|5.003007||Viu
TOPpx|5.005003||Viu
TOPs|5.003007||Viu
TOPu|5.004000||Viu
TOPul|5.006000||Viu
toTITLE|5.019001|5.019001|
toTITLE_A|5.019001||Viu
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||Viu
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.031007||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

USE_STDIO|5.003007||Viu
USE_STDIO_BASE|5.006000|5.006000|Vn
USE_STDIO_PTR|5.006000|5.006000|Vn
USE_SYSTEM_GMTIME|5.011000||Viu
USE_SYSTEM_LOCALTIME|5.011000||Viu
USE_THREADS|5.006000|5.006000|Vn
USE_THREAD_SAFE_LOCALE|5.025004||Viu
USE_TM64|5.011000||Viu
USE_UTF8_IN_NAMES|5.007003||Viu
utf16_textfilter|5.011001||Viu
utf16_to_utf8|5.006000||cViu
utf16_to_utf8_reversed|5.006000||cViu
UTF8_ACCUMULATE|5.007001||Viu
UTF8_ALLOW_ANY|5.007001||Viu
UTF8_ALLOW_ANYUV|5.007001||Viu
UTF8_ALLOW_CONTINUATION|5.007001||Viu
UTF8_ALLOW_DEFAULT|5.009004||Viu
UTF8_ALLOW_EMPTY|5.007001||Viu
UTF8_ALLOW_FE_FF|5.027009||Viu
UTF8_ALLOW_FFFF|5.007001||Viu
UTF8_ALLOW_LONG|5.007001||Viu
UTF8_ALLOW_LONG_AND_ITS_VALUE|5.025009||Viu

ppport.h  view on Meta::CPAN

UTF8_CHECK_ONLY|5.007001|5.007001|
UTF8_CHK_SKIP|5.031006|5.006000|p
UTF8_DISALLOW_ABOVE_31_BIT|5.023006||Viu
UTF8_DISALLOW_FE_FF|5.013009||Viu
UTF8_DISALLOW_ILLEGAL_C9_INTERCHANGE|5.025005|5.025005|
UTF8_DISALLOW_ILLEGAL_INTERCHANGE|5.013009|5.013009|
UTF8_DISALLOW_NONCHAR|5.013009|5.013009|
UTF8_DISALLOW_PERL_EXTENDED|5.027002|5.027002|
UTF8_DISALLOW_SUPER|5.013009|5.013009|
UTF8_DISALLOW_SURROGATE|5.013009|5.013009|
utf8_distance|5.006000|5.006000|
UTF8_EIGHT_BIT_HI|5.007001||Viu
UTF8_EIGHT_BIT_LO|5.007001||Viu
UTF8f|5.019001|5.003007|p
UTF8fARG|5.019002|5.003007|p
UTF8_GOT_ABOVE_31_BIT|5.025006||Viu
UTF8_GOT_CONTINUATION|5.025006||Viu
UTF8_GOT_EMPTY|5.025006||Viu
UTF8_GOT_LONG|5.025006||Viu
UTF8_GOT_NONCHAR|5.025006||Viu
UTF8_GOT_NON_CONTINUATION|5.025006||Viu
UTF8_GOT_OVERFLOW|5.025006||Viu
UTF8_GOT_PERL_EXTENDED|5.027002||Viu
UTF8_GOT_SHORT|5.025006||Viu
UTF8_GOT_SUPER|5.025006||Viu
UTF8_GOT_SURROGATE|5.025006||Viu
utf8_hop|5.006000|5.006000|n
utf8_hop_back|5.025007|5.025007|n
utf8_hop_forward|5.025007|5.025007|n
utf8_hop_safe|5.025007|5.025007|n
UTF8_IS_ABOVE_LATIN1|5.017004||Viu
UTF8_IS_ABOVE_LATIN1_START|5.023003||Viu
UTF8_IS_CONTINUATION|5.007001||Viu
UTF8_IS_CONTINUED|5.007001||Viu
UTF8_IS_DOWNGRADEABLE_START|5.007001||Viu
UTF8_IS_INVARIANT|5.007001|5.003007|p
UTF8_IS_NEXT_CHAR_DOWNGRADEABLE|5.017006||Viu
UTF8_IS_NONCHAR|5.023002|5.023002|
UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_PROBLEMATIC|5.013009||Viu
UTF8_IS_REPLACEMENT|5.017000||Viu
UTF8_IS_START|5.007001||Viu
UTF8_IS_START_base|5.031007||Viu
UTF8_IS_SUPER|5.023002|5.023002|
UTF8_IS_SURROGATE|5.023002|5.023002|
utf8_length|5.007001|5.007001|
UTF8_MAXBYTES|5.009002|5.006000|p
UTF8_MAXBYTES_CASE|5.009002|5.003007|p
UTF8_MAX_FOLD_CHAR_EXPAND|5.013009||Viu
UTF8_MAXLEN|5.006000||Viu
utf8_mg_len_cache_update|5.013003||Viu
utf8_mg_pos_cache_update|5.009004||Viu
utf8n_to_uvchr|5.007001|5.007001|n
utf8n_to_uvchr_error|5.025006|5.025006|n
utf8n_to_uvchr_msgs|5.027009|5.027009|n
_utf8n_to_uvchr_msgs_helper|5.029001||cVnu
utf8n_to_uvuni|5.007001||dcV
UTF8_SAFE_SKIP|5.029009|5.006000|p
UTF8SKIP|5.006000|5.006000|
UTF8_SKIP|5.023002|5.006000|p
utf8_to_bytes|5.006001|5.006001|x
utf8_to_uvchr|5.007001|5.006001|pd
utf8_to_uvchr_buf|5.015009|5.006001|p
utf8_to_uvchr_buf_helper|5.031004||cVu
utf8_to_uvuni|5.007001||dcV
utf8_to_uvuni_buf|5.015009||dcV
UTF8_TWO_BYTE_HI|5.011002||Viu
UTF8_TWO_BYTE_HI_nocast|5.011002||Viu
UTF8_TWO_BYTE_LO|5.011002||Viu
UTF8_TWO_BYTE_LO_nocast|5.011002||Viu
UTF8_WARN_ABOVE_31_BIT|5.023006||Viu
UTF8_WARN_FE_FF|5.013009||Viu
UTF8_WARN_ILLEGAL_C9_INTERCHANGE|5.025005|5.025005|
UTF8_WARN_ILLEGAL_INTERCHANGE|5.013009|5.013009|
UTF8_WARN_NONCHAR|5.013009|5.013009|
UTF8_WARN_PERL_EXTENDED|5.027002|5.027002|

ppport.h  view on Meta::CPAN

UTF_MIN_ABOVE_LATIN1_BYTE|5.031006||Viu
UTF_MIN_START_BYTE|5.031006||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.003007||Viu
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.007001||Viu
UV_IS_QUAD|5.006000||Viu
UV_MAX|5.003007|5.003007|oVnu
UV_MAX_P1|5.007002||Viu
UV_MAX_P1_HALF|5.007002||Viu
UV_MIN|5.003007|5.003007|oVnu
UVof|5.006000|5.003007|p
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|p
uvuni_to_utf8|5.019004||cVu
uvuni_to_utf8_flags|5.007003||dcV
UVxf|5.006000|5.003007|p
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
varname|5.009003||Viu
vcmp|5.009000|5.009000|
VCMP|5.019008||Viu
vcroak|5.006000|5.006000|
vdeb|5.007003|5.007003|u
VERB|5.009005||Viu
vform|5.006000|5.006000|
vfprintf|5.003007||Viu
visit|5.005000||Viu
vivify_defelem|5.004000||cViu

ppport.h  view on Meta::CPAN

#endif

#ifndef PERL_MAGIC_vstring
#  define PERL_MAGIC_vstring             'V'
#endif

#ifndef PERL_MAGIC_vec
#  define PERL_MAGIC_vec                 'v'
#endif

#ifndef PERL_MAGIC_utf8
#  define PERL_MAGIC_utf8                'w'
#endif

#ifndef PERL_MAGIC_substr
#  define PERL_MAGIC_substr              'x'
#endif

#ifndef PERL_MAGIC_defelem
#  define PERL_MAGIC_defelem             'y'
#endif

ppport.h  view on Meta::CPAN

#endif

/* The '| 0' part ensures a compiler error if c is not integer (like e.g., a
 * pointer) */
#undef FITS_IN_8_BITS   /* handy.h version uses a core-only constant */
#ifndef FITS_IN_8_BITS
#  define FITS_IN_8_BITS(c)              (   (sizeof(c) == 1)               \
                                    || !(((WIDEST_UTYPE)((c) | 0)) & ~0xFF))
#endif

/* Create the macro for "is'macro'_utf8_safe(s, e)".  For code points below
 * 256, it calls the equivalent _L1 macro by converting the UTF-8 to code
 * point.  That is so that it can automatically get the bug fixes done in this
 * file. */
#define D_PPP_IS_GENERIC_UTF8_SAFE(s, e, macro)                             \
   (((e) - (s)) <= 0                                                        \
     ? 0                                                                    \
     : UTF8_IS_INVARIANT((s)[0])                                            \
       ? is ## macro ## _L1((s)[0])                                         \
       : (((e) - (s)) < UTF8SKIP(s))                                        \
          ? 0                                                               \
          : UTF8_IS_DOWNGRADEABLE_START((s)[0])                             \
              /* The cast in the line below is only to silence warnings */  \
            ? is ## macro ## _L1((WIDEST_UTYPE) LATIN1_TO_NATIVE(           \
                                  UTF8_ACCUMULATE(NATIVE_UTF8_TO_I8((s)[0]) \
                                                     & UTF_START_MASK(2),   \
                                                  (s)[1])))                 \
            : is ## macro ## _utf8(s))

/* Create the macro for "is'macro'_LC_utf8_safe(s, e)".  For code points below
 * 256, it calls the equivalent _L1 macro by converting the UTF-8 to code
 * point.  That is so that it can automatically get the bug fixes done in this
 * file. */
#define D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, macro)                          \
   (((e) - (s)) <= 0                                                        \
     ? 0                                                                    \
     : UTF8_IS_INVARIANT((s)[0])                                            \
       ? is ## macro ## _LC((s)[0])                                         \
       : (((e) - (s)) < UTF8SKIP(s))                                        \
          ? 0                                                               \
          : UTF8_IS_DOWNGRADEABLE_START((s)[0])                             \
              /* The cast in the line below is only to silence warnings */  \
            ? is ## macro ## _LC((WIDEST_UTYPE) LATIN1_TO_NATIVE(           \
                                  UTF8_ACCUMULATE(NATIVE_UTF8_TO_I8((s)[0]) \
                                                     & UTF_START_MASK(2),   \
                                                  (s)[1])))                 \
            : is ## macro ## _utf8(s))

/* A few of the early functions are broken.  For these and the non-LC case,
 * machine generated code is substituted.  But that code doesn't work for
 * locales.  This is just like the above macro, but at the end, we call the
 * macro we've generated for the above 255 case, which is correct since locale
 * isn't involved.  This will generate extra code to handle the 0-255 inputs,
 * but hopefully it will be optimized out by the C compiler.  But just in case
 * it isn't, this macro is only used on the few versions that are broken */

#define D_PPP_IS_GENERIC_LC_UTF8_SAFE_BROKEN(s, e, macro)                   \

ppport.h  view on Meta::CPAN

     : UTF8_IS_INVARIANT((s)[0])                                            \
       ? is ## macro ## _LC((s)[0])                                         \
       : (((e) - (s)) < UTF8SKIP(s))                                        \
          ? 0                                                               \
          : UTF8_IS_DOWNGRADEABLE_START((s)[0])                             \
              /* The cast in the line below is only to silence warnings */  \
            ? is ## macro ## _LC((WIDEST_UTYPE) LATIN1_TO_NATIVE(           \
                                  UTF8_ACCUMULATE(NATIVE_UTF8_TO_I8((s)[0]) \
                                                     & UTF_START_MASK(2),   \
                                                  (s)[1])))                 \
            : is ## macro ## _utf8_safe(s, e))
#ifndef SvRX
#  define SvRX(rv)                       (SvROK((rv)) ? (SvMAGICAL(SvRV((rv))) ? (mg_find(SvRV((rv)), PERL_MAGIC_qr) ? mg_find(SvRV((rv)), PERL_MAGIC_qr)->mg_obj : NULL) : NULL) : NULL)
#endif

#ifndef SvRXOK
#  define SvRXOK(sv)                     (!!SvRX(sv))
#endif

#ifndef PERL_UNUSED_DECL
#  ifdef HASATTRIBUTE

ppport.h  view on Meta::CPAN


/* Warning: LATIN1_TO_NATIVE, NATIVE_TO_LATIN1 NATIVE_TO_UNI UNI_TO_NATIVE
   EBCDIC is not supported on versions earlier than 5.7.1
 */

/* The meaning of this changed; use the modern version */
#undef isPSXSPC
#undef isPSXSPC_A
#undef isPSXSPC_L1

/* Hint: isPSXSPC, isPSXSPC_A, isPSXSPC_L1, isPSXSPC_utf8_safe
    This is equivalent to the corresponding isSPACE-type macro.  On perls
    before 5.18, this matched a vertical tab and SPACE didn't.  But the
    ppport.h SPACE version does match VT in all perl releases.  Since VT's are
    extremely rarely found in real-life files, this difference effectively
    doesn't matter */

/* Hint: isSPACE, isSPACE_A, isSPACE_L1, isSPACE_utf8_safe
    Until Perl 5.18, this did not match the vertical tab (VT).  The ppport.h
    version does match it in all perl releases. Since VT's are extremely rarely
    found in real-life files, this difference effectively doesn't matter */

#ifdef EBCDIC

/* This is the first version where these macros are fully correct on EBCDIC
 * platforms.  Relying on * the C library functions, as earlier releases did,
 * causes problems with * locales */
# if (PERL_BCDVERSION < 0x5022000)

ppport.h  view on Meta::CPAN

#  define isUPPER_A(c)                   isUPPER(c)
#endif

#ifndef isWORDCHAR_A
#  define isWORDCHAR_A(c)                isWORDCHAR(c)
#endif

#ifndef isXDIGIT_A
#  define isXDIGIT_A(c)                  isXDIGIT(c)
#endif
#ifndef isASCII_utf8_safe
#  define isASCII_utf8_safe(s,e)         (((e) - (s)) <= 0 ? 0 : isASCII(*(s)))
#endif

#ifndef isASCII_uvchr
#  define isASCII_uvchr(c)               (FITS_IN_8_BITS(c) ? isASCII_L1(c) : 0)
#endif

#if (PERL_BCDVERSION >= 0x5006000)
#  ifdef isALPHA_uni    /* If one defined, all are; this is just an exemplar */
#    define D_PPP_is_ctype(upper, lower, c)                                 \
        (FITS_IN_8_BITS(c)                                                  \

ppport.h  view on Meta::CPAN

#endif

#ifndef isXDIGIT_uvchr
#  define isXDIGIT_uvchr(c)              D_PPP_is_ctype(XDIGIT, xdigit, c)
#endif

#ifndef isWORDCHAR_uvchr
#  define isWORDCHAR_uvchr(c)            (FITS_IN_8_BITS(c)                        \
                               ? isWORDCHAR_L1(c) : isALPHANUMERIC_uvchr(c))
#endif
#ifndef isALPHA_utf8_safe
#  define isALPHA_utf8_safe(s,e)         D_PPP_IS_GENERIC_UTF8_SAFE(s, e, ALPHA)
#endif

#  ifdef isALPHANUMERIC_utf8
#ifndef isALPHANUMERIC_utf8_safe
#  define isALPHANUMERIC_utf8_safe(s,e)  \
                                D_PPP_IS_GENERIC_UTF8_SAFE(s, e, ALPHANUMERIC)
#endif

#  else
#ifndef isALPHANUMERIC_utf8_safe
#  define isALPHANUMERIC_utf8_safe(s,e)  \
                        (isALPHA_utf8_safe(s,e) || isDIGIT_utf8_safe(s,e))
#endif

#  endif

/* This was broken before 5.18, and just use this instead of worrying about
 * which releases the official works on */
#  if 'A' == 65
#ifndef isBLANK_utf8_safe
#  define isBLANK_utf8_safe(s,e)         \
( ( LIKELY((e) > (s)) ) ?   /* Machine generated */                         \
    ( ( 0x09 == ((const U8*)s)[0] || 0x20 == ((const U8*)s)[0] ) ? 1        \
    : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ?                              \
	    ( ( 0xC2 == ((const U8*)s)[0] ) ?                               \
		( ( 0xA0 == ((const U8*)s)[1] ) ? 2 : 0 )                   \
	    : ( 0xE1 == ((const U8*)s)[0] ) ?                               \
		( ( ( 0x9A == ((const U8*)s)[1] ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
	    : ( 0xE2 == ((const U8*)s)[0] ) ?                               \
		( ( 0x80 == ((const U8*)s)[1] ) ?                           \
		    ( ( inRANGE(((const U8*)s)[2], 0x80, 0x8A ) || 0xAF == ((const U8*)s)[2] ) ? 3 : 0 )\
		: ( ( 0x81 == ((const U8*)s)[1] ) && ( 0x9F == ((const U8*)s)[2] ) ) ? 3 : 0 )\
	    : ( ( ( 0xE3 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
	: 0 )                                                               \
 : 0 )
#endif

#  elif 'A' == 193  && '^' == 95 /* EBCDIC 1047 */
#ifndef isBLANK_utf8_safe
#  define isBLANK_utf8_safe(s,e)         \
( ( LIKELY((e) > (s)) ) ?                                                   \
    ( ( 0x05 == ((const U8*)s)[0] || 0x40 == ((const U8*)s)[0] ) ? 1        \
    : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ?                              \
	    ( ( 0x80 == ((const U8*)s)[0] ) ?                               \
		( ( 0x41 == ((const U8*)s)[1] ) ? 2 : 0 )                   \
	    : ( 0xBC == ((const U8*)s)[0] ) ?                               \
		( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
	    : ( 0xCA == ((const U8*)s)[0] ) ?                               \
		( ( 0x41 == ((const U8*)s)[1] ) ?                           \
		    ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
		: ( 0x42 == ((const U8*)s)[1] ) ?                           \
		    ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )               \
		: ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
	    : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
	: 0 )                                                               \
: 0 )
#endif

#  elif 'A' == 193  && '^' == 176 /* EBCDIC 037 */
#ifndef isBLANK_utf8_safe
#  define isBLANK_utf8_safe(s,e)         \
( ( LIKELY((e) > (s)) ) ?                                                   \
    ( ( 0x05 == ((const U8*)s)[0] || 0x40 == ((const U8*)s)[0] ) ? 1        \
    : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ?                              \
	    ( ( 0x78 == ((const U8*)s)[0] ) ?                               \
		( ( 0x41 == ((const U8*)s)[1] ) ? 2 : 0 )                   \
	    : ( 0xBD == ((const U8*)s)[0] ) ?                               \
		( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
	    : ( 0xCA == ((const U8*)s)[0] ) ?                               \
		( ( 0x41 == ((const U8*)s)[1] ) ?                           \
		    ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\

ppport.h  view on Meta::CPAN

		    ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )               \
		: ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
	    : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
	: 0 )                                                               \
: 0 )
#endif

#  else
#    error Unknown character set
#  endif
#ifndef isCNTRL_utf8_safe
#  define isCNTRL_utf8_safe(s,e)         D_PPP_IS_GENERIC_UTF8_SAFE(s, e, CNTRL)
#endif

#ifndef isDIGIT_utf8_safe
#  define isDIGIT_utf8_safe(s,e)         D_PPP_IS_GENERIC_UTF8_SAFE(s, e, DIGIT)
#endif

#ifndef isGRAPH_utf8_safe
#  define isGRAPH_utf8_safe(s,e)         D_PPP_IS_GENERIC_UTF8_SAFE(s, e, GRAPH)
#endif

#  ifdef isIDCONT_utf8
#ifndef isIDCONT_utf8_safe
#  define isIDCONT_utf8_safe(s,e)        D_PPP_IS_GENERIC_UTF8_SAFE(s, e, IDCONT)
#endif

#  else
#ifndef isIDCONT_utf8_safe
#  define isIDCONT_utf8_safe(s,e)        isWORDCHAR_utf8_safe(s,e)
#endif

#  endif
#ifndef isIDFIRST_utf8_safe
#  define isIDFIRST_utf8_safe(s,e)       D_PPP_IS_GENERIC_UTF8_SAFE(s, e, IDFIRST)
#endif

#ifndef isLOWER_utf8_safe
#  define isLOWER_utf8_safe(s,e)         D_PPP_IS_GENERIC_UTF8_SAFE(s, e, LOWER)
#endif

#ifndef isPRINT_utf8_safe
#  define isPRINT_utf8_safe(s,e)         D_PPP_IS_GENERIC_UTF8_SAFE(s, e, PRINT)
#endif

#  undef isPSXSPC_utf8_safe   /* Use the modern definition */
#ifndef isPSXSPC_utf8_safe
#  define isPSXSPC_utf8_safe(s,e)        isSPACE_utf8_safe(s,e)
#endif
#ifndef isPUNCT_utf8_safe
#  define isPUNCT_utf8_safe(s,e)         D_PPP_IS_GENERIC_UTF8_SAFE(s, e, PUNCT)
#endif

#ifndef isSPACE_utf8_safe
#  define isSPACE_utf8_safe(s,e)         D_PPP_IS_GENERIC_UTF8_SAFE(s, e, SPACE)
#endif

#ifndef isUPPER_utf8_safe
#  define isUPPER_utf8_safe(s,e)         D_PPP_IS_GENERIC_UTF8_SAFE(s, e, UPPER)
#endif

#  ifdef isWORDCHAR_utf8
#ifndef isWORDCHAR_utf8_safe
#  define isWORDCHAR_utf8_safe(s,e)      D_PPP_IS_GENERIC_UTF8_SAFE(s, e, WORDCHAR)
#endif

#  else
#ifndef isWORDCHAR_utf8_safe
#  define isWORDCHAR_utf8_safe(s,e)      \
                               (isALPHANUMERIC_utf8_safe(s,e) || (*(s)) == '_')
#endif

#  endif

/* This was broken before 5.12, and just use this instead of worrying about
 * which releases the official works on */
#  if 'A' == 65
#ifndef isXDIGIT_utf8_safe
#  define isXDIGIT_utf8_safe(s,e)        \
( ( LIKELY((e) > (s)) ) ?                                                   \
    ( ( inRANGE(((const U8*)s)[0], 0x30, 0x39 ) || inRANGE(((const U8*)s)[0], 0x41, 0x46 ) || inRANGE(((const U8*)s)[0], 0x61, 0x66 ) ) ? 1\
    : ( ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xEF == ((const U8*)s)[0] ) ) ? ( ( 0xBC == ((const U8*)s)[1] ) ?\
		    ( ( inRANGE(((const U8*)s)[2], 0x90, 0x99 ) || inRANGE(((const U8*)s)[2], 0xA1, 0xA6 ) ) ? 3 : 0 )\
		: ( ( 0xBD == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x81, 0x86 ) ) ) ? 3 : 0 ) : 0 )\
: 0 )
#endif

#  elif 'A' == 193  && '^' == 95 /* EBCDIC 1047 */
#ifndef isXDIGIT_utf8_safe
#  define isXDIGIT_utf8_safe(s,e)        \
( ( LIKELY((e) > (s)) ) ?                                                   \
    ( ( inRANGE(((const U8*)s)[0], 0x81, 0x86 ) || inRANGE(((const U8*)s)[0], 0xC1, 0xC6 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) ) ? 1\
    : ( ( ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( 0x73 == ((const U8*)s)[1] ) ) ? ( ( 0x67 == ((const U8*)s)[2] ) ?\
			( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x68 ) ) ? 4 : 0 )\
		    : ( ( inRANGE(((const U8*)s)[2], 0x68, 0x69 ) ) && ( inRANGE(((const U8*)s)[3], 0x42, 0x47 ) ) ) ? 4 : 0 ) : 0 )\
: 0 )
#endif

#  elif 'A' == 193  && '^' == 176 /* EBCDIC 037 */
#ifndef isXDIGIT_utf8_safe
#  define isXDIGIT_utf8_safe(s,e)        \
( ( LIKELY((e) > (s)) ) ?                                                   \
    ( ( inRANGE(((const U8*)s)[0], 0x81, 0x86 ) || inRANGE(((const U8*)s)[0], 0xC1, 0xC6 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) ) ? 1\
    : ( ( ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( 0x72 == ((const U8*)s)[1] ) ) ? ( ( 0x66 == ((const U8*)s)[2] ) ?\
			( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x67 ) ) ? 4 : 0 )\
		    : ( ( inRANGE(((const U8*)s)[2], 0x67, 0x68 ) ) && ( inRANGE(((const U8*)s)[3], 0x42, 0x47 ) ) ) ? 4 : 0 ) : 0 )\
: 0 )
#endif

#  else
#    error Unknown character set
#  endif
#ifndef isALPHA_LC_utf8_safe
#  define isALPHA_LC_utf8_safe(s,e)      D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, ALPHA)
#endif

#  ifdef isALPHANUMERIC_utf8
#ifndef isALPHANUMERIC_LC_utf8_safe
#  define isALPHANUMERIC_LC_utf8_safe(s,e) \
                                D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, ALPHANUMERIC)
#endif

#  else
#ifndef isALPHANUMERIC_LC_utf8_safe
#  define isALPHANUMERIC_LC_utf8_safe(s,e) \
                        (isALPHA_LC_utf8_safe(s,e) || isDIGIT_LC_utf8_safe(s,e))
#endif

#  endif
#ifndef isBLANK_LC_utf8_safe
#  define isBLANK_LC_utf8_safe(s,e)      \
                            D_PPP_IS_GENERIC_LC_UTF8_SAFE_BROKEN(s, e, BLANK)
#endif

#ifndef isCNTRL_LC_utf8_safe
#  define isCNTRL_LC_utf8_safe(s,e)      D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, CNTRL)
#endif

#ifndef isDIGIT_LC_utf8_safe
#  define isDIGIT_LC_utf8_safe(s,e)      D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, DIGIT)
#endif

#ifndef isGRAPH_LC_utf8_safe
#  define isGRAPH_LC_utf8_safe(s,e)      D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, GRAPH)
#endif

#  ifdef isIDCONT_utf8
#ifndef isIDCONT_LC_utf8_safe
#  define isIDCONT_LC_utf8_safe(s,e)     D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, IDCONT)
#endif

#  else
#ifndef isIDCONT_LC_utf8_safe
#  define isIDCONT_LC_utf8_safe(s,e)     isWORDCHAR_LC_utf8_safe(s,e)
#endif

#  endif
#ifndef isIDFIRST_LC_utf8_safe
#  define isIDFIRST_LC_utf8_safe(s,e)    D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, IDFIRST)
#endif

#ifndef isLOWER_LC_utf8_safe
#  define isLOWER_LC_utf8_safe(s,e)      D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, LOWER)
#endif

#ifndef isPRINT_LC_utf8_safe
#  define isPRINT_LC_utf8_safe(s,e)      D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, PRINT)
#endif

#  undef isPSXSPC_LC_utf8_safe   /* Use the modern definition */
#ifndef isPSXSPC_LC_utf8_safe
#  define isPSXSPC_LC_utf8_safe(s,e)     isSPACE_LC_utf8_safe(s,e)
#endif
#ifndef isPUNCT_LC_utf8_safe
#  define isPUNCT_LC_utf8_safe(s,e)      D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, PUNCT)
#endif

#ifndef isSPACE_LC_utf8_safe
#  define isSPACE_LC_utf8_safe(s,e)      D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, SPACE)
#endif

#ifndef isUPPER_LC_utf8_safe
#  define isUPPER_LC_utf8_safe(s,e)      D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, UPPER)
#endif

#  ifdef isWORDCHAR_utf8
#ifndef isWORDCHAR_LC_utf8_safe
#  define isWORDCHAR_LC_utf8_safe(s,e)   D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, WORDCHAR)
#endif

#  else
#ifndef isWORDCHAR_LC_utf8_safe
#  define isWORDCHAR_LC_utf8_safe(s,e)   \
                               (isALPHANUMERIC_LC_utf8_safe(s,e) || (*(s)) == '_')
#endif

#  endif
#ifndef isXDIGIT_LC_utf8_safe
#  define isXDIGIT_LC_utf8_safe(s,e)     \
                            D_PPP_IS_GENERIC_LC_UTF8_SAFE_BROKEN(s, e, XDIGIT)
#endif

/* Warning: isALPHANUMERIC_utf8_safe, isALPHA_utf8_safe, isASCII_utf8_safe,
 * isBLANK_utf8_safe, isCNTRL_utf8_safe, isDIGIT_utf8_safe, isGRAPH_utf8_safe,
 * isIDCONT_utf8_safe, isIDFIRST_utf8_safe, isLOWER_utf8_safe,
 * isPRINT_utf8_safe, isPSXSPC_utf8_safe, isPUNCT_utf8_safe, isSPACE_utf8_safe,
 * isUPPER_utf8_safe, isWORDCHAR_utf8_safe, isWORDCHAR_utf8_safe,
 * isXDIGIT_utf8_safe,
 * isALPHANUMERIC_LC_utf8_safe, isALPHA_LC_utf8_safe, isASCII_LC_utf8_safe,
 * isBLANK_LC_utf8_safe, isCNTRL_LC_utf8_safe, isDIGIT_LC_utf8_safe,
 * isGRAPH_LC_utf8_safe, isIDCONT_LC_utf8_safe, isIDFIRST_LC_utf8_safe,
 * isLOWER_LC_utf8_safe, isPRINT_LC_utf8_safe, isPSXSPC_LC_utf8_safe,
 * isPUNCT_LC_utf8_safe, isSPACE_LC_utf8_safe, isUPPER_LC_utf8_safe,
 * isWORDCHAR_LC_utf8_safe, isWORDCHAR_LC_utf8_safe, isXDIGIT_LC_utf8_safe,
 * isALPHANUMERIC_uvchr, isALPHA_uvchr, isASCII_uvchr, isBLANK_uvchr,
 * isCNTRL_uvchr, isDIGIT_uvchr, isGRAPH_uvchr, isIDCONT_uvchr,
 * isIDFIRST_uvchr, isLOWER_uvchr, isPRINT_uvchr, isPSXSPC_uvchr,
 * isPUNCT_uvchr, isSPACE_uvchr, isUPPER_uvchr, isWORDCHAR_uvchr,
 * isWORDCHAR_uvchr, isXDIGIT_uvchr
 *
 * The UTF-8 handling is buggy in early Perls, and this can give inaccurate
 * results for code points above 0xFF, until the implementation started
 * settling down in 5.12 and 5.14 */

ppport.h  view on Meta::CPAN

#  define toTITLE_uvchr(c, s, l)         UNI_TO_NATIVE(to_uni_title(NATIVE_TO_UNI(c), s, l))
#endif

#ifndef toFOLD_uvchr
#  define toFOLD_uvchr(c, s, l)          UNI_TO_NATIVE(to_uni_fold( NATIVE_TO_UNI(c), s, l))
#endif

#  if (PERL_BCDVERSION != 0x5015006)     /* Just this version is broken */

      /* Prefer the macro to the function */
#    if defined toLOWER_utf8
#      define D_PPP_TO_LOWER_CALLEE(s,r,l)    toLOWER_utf8(s,r,l)
#    else
#      define D_PPP_TO_LOWER_CALLEE(s,r,l)    to_utf8_lower(s,r,l)
#    endif
#    if defined toTITLE_utf8
#      define D_PPP_TO_TITLE_CALLEE(s,r,l)    toTITLE_utf8(s,r,l)
#    else
#      define D_PPP_TO_TITLE_CALLEE(s,r,l)    to_utf8_title(s,r,l)
#    endif
#    if defined toUPPER_utf8
#      define D_PPP_TO_UPPER_CALLEE(s,r,l)    toUPPER_utf8(s,r,l)
#    else
#      define D_PPP_TO_UPPER_CALLEE(s,r,l)    to_utf8_upper(s,r,l)
#    endif
#    if defined toFOLD_utf8
#      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))                                          \
        ? (croak(D_PPP_TOO_SHORT_MSG,                                       \
                               s[0], (int) ((e) - (s)), (int) UTF8SKIP(s)), \
           0)                                                               \
        : D_PPP_TO_ ## name ## _CALLEE(s,r,l))
#ifndef toUPPER_utf8_safe
#  define toUPPER_utf8_safe(s,e,r,l)     \
                        D_PPP_GENERIC_MULTI_ARG_TO(UPPER,s,e,r,l)
#endif

#ifndef toLOWER_utf8_safe
#  define toLOWER_utf8_safe(s,e,r,l)     \
                        D_PPP_GENERIC_MULTI_ARG_TO(LOWER,s,e,r,l)
#endif

#ifndef toTITLE_utf8_safe
#  define toTITLE_utf8_safe(s,e,r,l)     \
                        D_PPP_GENERIC_MULTI_ARG_TO(TITLE,s,e,r,l)
#endif

#ifndef toFOLD_utf8_safe
#  define toFOLD_utf8_safe(s,e,r,l)      \
                        D_PPP_GENERIC_MULTI_ARG_TO(FOLD,s,e,r,l)
#endif

#elif (PERL_BCDVERSION >= 0x5006000)

/* Here we have UTF-8 support, but using the original API where the case
 * changing functions merely returned the changed code point; hence they
 * couldn't handle multi-character results. */

#  ifdef uvchr_to_utf8
#    define D_PPP_UV_TO_UTF8 uvchr_to_utf8
#  else
#    define D_PPP_UV_TO_UTF8 uv_to_utf8
#  endif

   /* Get the utf8 of the case changed value, and store its length; then have
    * to re-calculate the changed case value in order to return it */
#  define D_PPP_GENERIC_SINGLE_ARG_TO_UVCHR(name, c, s, l)                  \
        (*(l) = (D_PPP_UV_TO_UTF8(s,                                        \
                 UNI_TO_NATIVE(to_uni_ ## name(NATIVE_TO_UNI(c)))) - (s)),  \
        UNI_TO_NATIVE(to_uni_ ## name(NATIVE_TO_UNI(c))))
#ifndef toLOWER_uvchr
#  define toLOWER_uvchr(c, s, l)         \
                        D_PPP_GENERIC_SINGLE_ARG_TO_UVCHR(lower, c, s, l)
#endif

ppport.h  view on Meta::CPAN


#  define D_PPP_GENERIC_SINGLE_ARG_TO_UTF8(name, s, e, r, l)                \
    (((((e) - (s)) <= 0)                                                    \
      ? (croak("Attempting case change on zero length string"),             \
         0) /* So looks like it returns something, and will compile */      \
      : ((e) - (s)) < UTF8SKIP(s))                                          \
        ? (croak(D_PPP_TOO_SHORT_MSG,                                       \
                               s[0], (int) ((e) - (s)), (int) UTF8SKIP(s)), \
           0)                                                               \
          /* Get the changed code point and store its UTF-8 */              \
        : D_PPP_UV_TO_UTF8(r, to_utf8_ ## name(s)),                         \
            /* Then store its length, and re-get code point for return */   \
            *(l) = UTF8SKIP(r), to_utf8_ ## name(r))

/* Warning: toUPPER_utf8_safe, toLOWER_utf8_safe, toTITLE_utf8_safe,
 * toUPPER_uvchr, toLOWER_uvchr, toTITLE_uvchr
    The UTF-8 case changing operations had bugs before around 5.12 or 5.14;
    this backport does not correct them.

    In perls before 7.3, multi-character case changing is not implemented; this
    backport uses the simple case changes available in those perls. */
#ifndef toUPPER_utf8_safe
#  define toUPPER_utf8_safe(s,e,r,l)     \
                        D_PPP_GENERIC_SINGLE_ARG_TO_UTF8(upper, s, e, r, l)
#endif

#ifndef toLOWER_utf8_safe
#  define toLOWER_utf8_safe(s,e,r,l)     \
                        D_PPP_GENERIC_SINGLE_ARG_TO_UTF8(lower, s, e, r, l)
#endif

#ifndef toTITLE_utf8_safe
#  define toTITLE_utf8_safe(s,e,r,l)     \
                        D_PPP_GENERIC_SINGLE_ARG_TO_UTF8(title, s, e, r, l)
#endif

 /* Warning: toFOLD_utf8_safe, toFOLD_uvchr
    The UTF-8 case changing operations had bugs before around 5.12 or 5.14;
    this backport does not correct them.

    In perls before 7.3, case folding is not implemented; instead, this
    backport substitutes simple (not multi-character, which isn't available)
    lowercasing.  This gives the correct result in most, but not all, instances
    */
#ifndef toFOLD_utf8_safe
#  define toFOLD_utf8_safe(s,e,r,l)      toLOWER_utf8_safe(s,e,r,l)
#endif

#endif

/* Until we figure out how to support this in older perls... */
#if (PERL_BCDVERSION >= 0x5008000)
#ifndef HeUTF8
#  define HeUTF8(he)                     ((HeKLEN(he) == HEf_SVKEY) ?            \
                                 SvUTF8(HeKEY_sv(he)) :                 \
                                 (U32)HeKUTF8(he))

ppport.h  view on Meta::CPAN


#ifdef SvPVbyte

/* Hint: SvPVbyte
 * Does not work in perl-5.6.1, ppport.h implements a version
 * borrowed from perl-5.7.3.
 */

#if (PERL_BCDVERSION < 0x5007000)
#ifndef sv_2pvbyte
#  define sv_2pvbyte(sv, lp)             (sv_utf8_downgrade((sv), 0), SvPV((sv), *(lp)))
#endif

/* Hint: sv_2pvbyte
 * Use the SvPVbyte() macro instead of sv_2pvbyte().
 */

/* Replace sv_2pvbyte with SvPVbyte */

#undef SvPVbyte

ppport.h  view on Meta::CPAN

#if (PERL_BCDVERSION < 0x5006000)
# 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); ((flags) & SVs_TEMP) ? sv_2mortal(_sv) : _sv; })
#else
# define newSVpvn_flags(s, len, flags) ((PL_Sv = newSVpvn(D_PPP_CONSTPV_ARG((s)), (len))), SvFLAGS(PL_Sv) |= ((flags) & SVf_UTF8), (((flags) & SVs_TEMP) ? sv_2mortal(PL_Sv) : PL_Sv))

ppport.h  view on Meta::CPAN

	const MGVTBL* const virt = mg->mg_virtual;
	if (mg->mg_type == type && virt == vtbl) {
	    *mgp = mg->mg_moremagic;
	    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)) {

ppport.h  view on Meta::CPAN

          D_PPP_UVCHR_SKIP_UPPER(c)
#endif

#endif

#ifdef is_ascii_string
#ifndef is_invariant_string
#  define is_invariant_string(s,l)       is_ascii_string(s,l)
#endif

#ifndef is_utf8_invariant_string
#  define is_utf8_invariant_string(s,l)  is_ascii_string(s,l)
#endif

/* Hint: is_ascii_string, is_invariant_string
   is_utf8_invariant_string() does the same thing and is preferred because its
   name is more accurate as to what it does */
#endif

#ifdef ibcmp_utf8
#ifndef foldEQ_utf8
#  define foldEQ_utf8(s1,pe1,l1,u1,s2,pe2,l2,u2) \
                                cBOOL(! ibcmp_utf8(s1,pe1,l1,u1,s2,pe2,l2,u2))
#endif

#endif

#if defined(is_utf8_string) && defined(UTF8SKIP)
#ifndef isUTF8_CHAR
#  define isUTF8_CHAR(s, e)              (                                            \
    (e) <= (s) || ! is_utf8_string(s, UTF8_SAFE_SKIP(s, e))                     \
    ? 0                                                                         \
    : UTF8SKIP(s))
#endif

#endif

#if 'A' == 65
#ifndef BOM_UTF8
#  define BOM_UTF8                       "\xEF\xBB\xBF"
#endif

ppport.h  view on Meta::CPAN

#endif

#else
#  error Unknown character set
#endif

#if (PERL_BCDVERSION < 0x5031004)
        /* Versions prior to this accepted things that are now considered
         * malformations, and didn't return -1 on error with warnings enabled
         * */
#  undef utf8_to_uvchr_buf
#endif

/* This implementation brings modern, generally more restricted standards to
 * utf8_to_uvchr_buf.  Some of these are security related, and clearly must
 * be done.  But its arguable that the others need not, and hence should not.
 * The reason they're here is that a module that intends to play with the
 * latest perls should be able to work the same in all releases.  An example is
 * that perl no longer accepts any UV for a code point, but limits them to
 * IV_MAX or below.  This is for future internal use of the larger code points.
 * If it turns out that some of these changes are breaking code that isn't
 * intended to work with modern perls, the tighter restrictions could be
 * relaxed.  khw thinks this is unlikely, but has been wrong in the past. */

/* 5.6.0 is the first release with UTF-8, and we don't implement this function
 * there due to its likely lack of still being in use, and the underlying
 * implementation is very different from later ones, without the later
 * safeguards, so would require extra work to deal with */
#if (PERL_BCDVERSION >= 0x5006001) && ! defined(utf8_to_uvchr_buf)
   /* 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

#if defined(NEED_utf8_to_uvchr_buf) || defined(NEED_utf8_to_uvchr_buf_GLOBAL)

#ifdef utf8_to_uvchr_buf
#  undef utf8_to_uvchr_buf
#endif
#define utf8_to_uvchr_buf(a,b,c) DPPP_(my_utf8_to_uvchr_buf)(aTHX_ a,b,c)
#define Perl_utf8_to_uvchr_buf DPPP_(my_utf8_to_uvchr_buf)


UV
DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
{
    UV ret;
    STRLEN curlen;
    bool overflows = 0;
    const U8 *cur_s = s;
    const bool do_warnings = ckWARN_d(WARN_UTF8);
#    if (PERL_BCDVERSION < 0x5026000) && ! defined(EBCDIC)
    STRLEN overflow_length = 0;
#    endif

ppport.h  view on Meta::CPAN

    else

#    endif  /* < 5.26 */

        /* Here, we are either in a release that properly detects overflow, or
         * we have checked for overflow and the next statement is executing as
         * part of the above conditional where we know we don't have overflow.
         *
         * The modern versions allow anything that evaluates to a legal UV, but
         * not overlongs nor an empty input */
        ret = D_PPP_utf8_to_uvchr_buf_callee(
              (U8 *) /* Early perls: no const */
                    s, curlen, retlen,   (UTF8_ALLOW_ANYUV
                                      & ~(UTF8_ALLOW_LONG|UTF8_ALLOW_EMPTY)));

#    if (PERL_BCDVERSION >= 0x5026000) && (PERL_BCDVERSION < 0x5028000)

    /* But actually, more modern versions restrict the UV to being no more than
     * what an IV can hold, so it could still have gotten it wrong about
     * overflowing. */
    if (UNLIKELY(ret > IV_MAX)) {

ppport.h  view on Meta::CPAN

                ", byte 0x%02x, after start byte 0x%02x)",
                ret, *cur_s, *s);
            if (retlen) {
                *retlen = (STRLEN) -1;
            }
            return 0;
        }
    }

    /* Here, did not overflow, but if it failed for some other reason, and
     * warnings are off, to emulate the behavior of the real utf8_to_uvchr(),
     * try again, allowing anything.  (Note a return of 0 is ok if the input
     * was '\0') */
    if (UNLIKELY(ret == 0 && (curlen == 0 || *s != '\0'))) {

        /* If curlen is 0, we already handled the case where warnings are
         * disabled, so this 'if' will be true, and so later on, we know that
         * 's' is dereferencible */
        if (do_warnings) {
            *retlen = (STRLEN) -1;
        }
        else {
            ret = D_PPP_utf8_to_uvchr_buf_callee(
                                     (U8 *) /* Early perls: no const */
                                            s, curlen, retlen, UTF8_ALLOW_ANY);
            /* Override with the REPLACEMENT character, as that is what the
             * modern version of this function returns */
            ret = UNICODE_REPLACEMENT;

#    if (PERL_BCDVERSION < 0x5016000)

            /* Versions earlier than this don't necessarily return the proper
             * length.  It should not extend past the end of string, nor past

ppport.h  view on Meta::CPAN


        }
    }

    return ret;
}

#  endif
#endif

#if defined(UTF8SKIP) && defined(utf8_to_uvchr_buf)
#undef utf8_to_uvchr /* Always redefine this unsafe function so that it refuses
                        to read past a NUL, making it much less likely to read
                        off the end of the buffer.  A NUL indicates the start
                        of the next character anyway.  If the input isn't
                        NUL-terminated, the function remains unsafe, as it
                        always has been. */
#ifndef utf8_to_uvchr
#  define utf8_to_uvchr(s, lp)           \
    ((*(s) == '\0')                                                             \
    ? utf8_to_uvchr_buf(s,((s)+1), lp) /* Handle single NUL specially */        \
    : utf8_to_uvchr_buf(s, (s) + UTF8_CHK_SKIP(s), (lp)))
#endif

#endif

/* Hint: utf8_to_uvchr
    Use utf8_to_uvchr_buf() instead.  But ONLY if you KNOW the upper bound
    of the input string (not resorting to using UTF8SKIP, etc., to infer it).
    The backported utf8_to_uvchr() will do a better job to prevent most cases
    of trying to read beyond the end of the buffer */

/* Replace utf8_to_uvchr with utf8_to_uvchr_buf */

#ifdef sv_len_utf8
   /* 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 */
#  if (PERL_BCDVERSION < 0x5017005)
#    undef sv_len_utf8
#    if defined(PERL_USE_GCC_BRACE_GROUPS)
#      define sv_len_utf8_nomg(sv) ({ SV *_sv2 = (sv); (SvUTF8(_sv2) ? Perl_sv_len_utf8(aTHX_ (!SvGMAGICAL(_sv2) ? _sv2 : sv_mortalcopy_flags(_sv2, SV_NOSTEAL))) : ({ STRLEN _len; SvPV_nomg(_sv2, _len); _len; })); })
#      define sv_len_utf8(sv) ({ SV *_sv1 = (sv); SvGETMAGIC(_sv1); sv_len_utf8_nomg(_sv1); })
#    else
#      define sv_len_utf8_nomg(sv) (PL_Sv = (sv), (SvUTF8(PL_Sv) ? Perl_sv_len_utf8(aTHX_ (!SvGMAGICAL(PL_Sv) ? PL_Sv : sv_mortalcopy_flags(PL_Sv, SV_NOSTEAL))) : (SvPV_nomg(PL_Sv, PL_na), PL_na)))
#      define sv_len_utf8(sv) (PL_Sv = (sv), SvGETMAGIC(PL_Sv), sv_len_utf8_nomg(PL_Sv))
#    endif
#  endif
#  if defined(PERL_USE_GCC_BRACE_GROUPS)
#ifndef sv_len_utf8_nomg
#  define sv_len_utf8_nomg(sv)           ({ SV *_sv = (sv); sv_len_utf8(!SvGMAGICAL(_sv) ? _sv : sv_mortalcopy_flags(_sv, SV_NOSTEAL)); })
#endif

#  else
#ifndef sv_len_utf8_nomg
#  define sv_len_utf8_nomg(sv)           ((PL_Sv = (sv)), sv_len_utf8(!SvGMAGICAL(PL_Sv) ? PL_Sv : sv_mortalcopy_flags(PL_Sv, SV_NOSTEAL)))
#endif

#  endif
#endif
#ifndef PERL_PV_ESCAPE_QUOTE
#  define PERL_PV_ESCAPE_QUOTE           0x0001
#endif

#ifndef PERL_PV_PRETTY_QUOTE
#  define PERL_PV_PRETTY_QUOTE           PERL_PV_ESCAPE_QUOTE

ppport.h  view on Meta::CPAN

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,



( run in 0.980 second using v1.01-cache-2.11-cpan-49f99fa48dc )