/* * This file was generated automatically by ExtUtils::ParseXS version 3.40 from the * contents of APItest.xs. Do not edit this file, edit APItest.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ #line 1 "APItest.xs" #define PERL_IN_XS_APITEST /* We want to be able to test things that aren't API yet. */ #define PERL_EXT /* Do *not* define PERL_NO_GET_CONTEXT. This is the one place where we get to test implicit Perl_get_context(). */ #include "EXTERN.h" #include "perl.h" #include "XSUB.h" typedef FILE NativeFile; #include "fakesdio.h" /* Causes us to use PerlIO below */ typedef SV *SVREF; typedef PTR_TBL_t *XS__APItest__PtrTable; typedef PerlIO * InputStream; typedef PerlIO * OutputStream; #define croak_fail() croak("fail at " __FILE__ " line %d", __LINE__) #define croak_fail_nep(h, w) croak("fail %p!=%p at " __FILE__ " line %d", (h), (w), __LINE__) #define croak_fail_nei(h, w) croak("fail %d!=%d at " __FILE__ " line %d", (int)(h), (int)(w), __LINE__) #ifdef EBCDIC void cat_utf8a2n(SV* sv, const char * const ascii_utf8, STRLEN len) { /* Converts variant UTF-8 text pointed to by 'ascii_utf8' of length 'len', * to UTF-EBCDIC, appending that text to the text already in 'sv'. * Currently doesn't work on invariants, as that is unneeded here, and we * could get double translations if we did. * * It has the algorithm for strict UTF-8 hard-coded in to find the code * point it represents, then calls uvchr_to_utf8() to convert to * UTF-EBCDIC). * * Note that this uses code points, not characters. Thus if the input is * the UTF-8 for the code point 0xFF, the output will be the UTF-EBCDIC for * 0xFF, even though that code point represents different characters on * ASCII vs EBCDIC platforms. */ dTHX; char * p = (char *) ascii_utf8; const char * const e = p + len; while (p < e) { UV code_point; U8 native_utf8[UTF8_MAXBYTES + 1]; U8 * char_end; U8 start = (U8) *p; /* Start bytes are the same in both UTF-8 and I8, therefore we can * treat this ASCII UTF-8 byte as an I8 byte. But PL_utf8skip[] is * indexed by NATIVE_UTF8 bytes, so transform to that */ STRLEN char_bytes_len = PL_utf8skip[I8_TO_NATIVE_UTF8(start)]; if (start < 0xc2) { croak("fail: Expecting start byte, instead got 0x%X at %s line %d", (U8) *p, __FILE__, __LINE__); } code_point = (start & (((char_bytes_len) >= 7) ? 0x00 : (0x1F >> ((char_bytes_len)-2)))); p++; while (p < e && ((( (U8) *p) & 0xC0) == 0x80)) { code_point = (code_point << 6) | (( (U8) *p) & 0x3F); p++; } char_end = uvchr_to_utf8(native_utf8, code_point); sv_catpvn(sv, (char *) native_utf8, char_end - native_utf8); } } #endif /* for my_cxt tests */ #define MY_CXT_KEY "XS::APItest::_guts" XS_VERSION typedef struct { int i; SV *sv; GV *cscgv; AV *cscav; AV *bhkav; bool bhk_record; peep_t orig_peep; peep_t orig_rpeep; int peep_recording; AV *peep_recorder; AV *rpeep_recorder; AV *xop_record; } my_cxt_t; START_MY_CXT int S_myset_set(pTHX_ SV* sv, MAGIC* mg) { SV *isv = (SV*)mg->mg_ptr; PERL_UNUSED_ARG(sv); SvIVX(isv)++; return 0; } MGVTBL vtbl_foo, vtbl_bar; MGVTBL vtbl_myset = { 0, S_myset_set, 0, 0, 0, 0, 0, 0 }; /* indirect functions to test the [pa]MY_CXT macros */ int my_cxt_getint_p(pMY_CXT) { return MY_CXT.i; } void my_cxt_setint_p(pMY_CXT_ int i) { MY_CXT.i = i; } SV* my_cxt_getsv_interp_context(void) { dTHX; dMY_CXT_INTERP(my_perl); return MY_CXT.sv; } SV* my_cxt_getsv_interp(void) { dMY_CXT; return MY_CXT.sv; } void my_cxt_setsv_p(SV* sv _pMY_CXT) { MY_CXT.sv = sv; } /* from exception.c */ int apitest_exception(int); /* from core_or_not.inc */ bool sv_setsv_cow_hashkey_core(void); bool sv_setsv_cow_hashkey_notcore(void); /* A routine to test hv_delayfree_ent (which itself is tested by testing on hv_free_ent */ typedef void (freeent_function)(pTHX_ HV *, HE *); void test_freeent(freeent_function *f) { dSP; HV *test_hash = newHV(); HE *victim; SV *test_scalar; U32 results[4]; int i; #ifdef PURIFY victim = (HE*)safemalloc(sizeof(HE)); #else /* Storing then deleting something should ensure that a hash entry is available. */ (void) hv_stores(test_hash, "", &PL_sv_yes); (void) hv_deletes(test_hash, "", 0); /* We need to "inline" new_he here as it's static, and the functions we test expect to be able to call del_HE on the HE */ if (!PL_body_roots[HE_SVSLOT]) croak("PL_he_root is 0"); victim = (HE*) PL_body_roots[HE_SVSLOT]; PL_body_roots[HE_SVSLOT] = HeNEXT(victim); #endif victim->hent_hek = Perl_share_hek(aTHX_ "", 0, 0); test_scalar = newSV(0); SvREFCNT_inc(test_scalar); HeVAL(victim) = test_scalar; /* Need this little game else we free the temps on the return stack. */ results[0] = SvREFCNT(test_scalar); SAVETMPS; results[1] = SvREFCNT(test_scalar); f(aTHX_ test_hash, victim); results[2] = SvREFCNT(test_scalar); FREETMPS; results[3] = SvREFCNT(test_scalar); i = 0; do { mXPUSHu(results[i]); } while (++i < (int)(sizeof(results)/sizeof(results[0]))); /* Goodbye to our extra reference. */ SvREFCNT_dec(test_scalar); } /* Not that it matters much, but it's handy for the flipped character to just * be the opposite case (at least for ASCII-range and most Latin1 as well). */ #define FLIP_BIT ('A' ^ 'a') static I32 bitflip_key(pTHX_ IV action, SV *field) { MAGIC *mg = mg_find(field, PERL_MAGIC_uvar); SV *keysv; PERL_UNUSED_ARG(action); if (mg && (keysv = mg->mg_obj)) { STRLEN len; const char *p = SvPV(keysv, len); if (len) { /* Allow for the flipped val to be longer than the original. This * is just for testing, so can afford to have some slop */ const STRLEN newlen = len * 2; SV *newkey = newSV(newlen); const char * const new_p_orig = SvPVX(newkey); char *new_p = (char *) new_p_orig; if (SvUTF8(keysv)) { const char *const end = p + len; while (p < end) { STRLEN curlen; UV chr = utf8_to_uvchr_buf((U8 *)p, (U8 *) end, &curlen); /* Make sure don't exceed bounds */ assert(new_p - new_p_orig + curlen < newlen); new_p = (char *)uvchr_to_utf8((U8 *)new_p, chr ^ FLIP_BIT); p += curlen; } SvUTF8_on(newkey); } else { while (len--) *new_p++ = *p++ ^ FLIP_BIT; } *new_p = '\0'; SvCUR_set(newkey, new_p - new_p_orig); SvPOK_on(newkey); mg->mg_obj = newkey; } } return 0; } static I32 rot13_key(pTHX_ IV action, SV *field) { MAGIC *mg = mg_find(field, PERL_MAGIC_uvar); SV *keysv; PERL_UNUSED_ARG(action); if (mg && (keysv = mg->mg_obj)) { STRLEN len; const char *p = SvPV(keysv, len); if (len) { SV *newkey = newSV(len); char *new_p = SvPVX(newkey); /* There's a deliberate fencepost error here to loop len + 1 times to copy the trailing \0 */ do { char new_c = *p++; /* Try doing this cleanly and clearly in EBCDIC another way: */ switch (new_c) { case 'A': new_c = 'N'; break; case 'B': new_c = 'O'; break; case 'C': new_c = 'P'; break; case 'D': new_c = 'Q'; break; case 'E': new_c = 'R'; break; case 'F': new_c = 'S'; break; case 'G': new_c = 'T'; break; case 'H': new_c = 'U'; break; case 'I': new_c = 'V'; break; case 'J': new_c = 'W'; break; case 'K': new_c = 'X'; break; case 'L': new_c = 'Y'; break; case 'M': new_c = 'Z'; break; case 'N': new_c = 'A'; break; case 'O': new_c = 'B'; break; case 'P': new_c = 'C'; break; case 'Q': new_c = 'D'; break; case 'R': new_c = 'E'; break; case 'S': new_c = 'F'; break; case 'T': new_c = 'G'; break; case 'U': new_c = 'H'; break; case 'V': new_c = 'I'; break; case 'W': new_c = 'J'; break; case 'X': new_c = 'K'; break; case 'Y': new_c = 'L'; break; case 'Z': new_c = 'M'; break; case 'a': new_c = 'n'; break; case 'b': new_c = 'o'; break; case 'c': new_c = 'p'; break; case 'd': new_c = 'q'; break; case 'e': new_c = 'r'; break; case 'f': new_c = 's'; break; case 'g': new_c = 't'; break; case 'h': new_c = 'u'; break; case 'i': new_c = 'v'; break; case 'j': new_c = 'w'; break; case 'k': new_c = 'x'; break; case 'l': new_c = 'y'; break; case 'm': new_c = 'z'; break; case 'n': new_c = 'a'; break; case 'o': new_c = 'b'; break; case 'p': new_c = 'c'; break; case 'q': new_c = 'd'; break; case 'r': new_c = 'e'; break; case 's': new_c = 'f'; break; case 't': new_c = 'g'; break; case 'u': new_c = 'h'; break; case 'v': new_c = 'i'; break; case 'w': new_c = 'j'; break; case 'x': new_c = 'k'; break; case 'y': new_c = 'l'; break; case 'z': new_c = 'm'; break; } *new_p++ = new_c; } while (len--); SvCUR_set(newkey, SvCUR(keysv)); SvPOK_on(newkey); if (SvUTF8(keysv)) SvUTF8_on(newkey); mg->mg_obj = newkey; } } return 0; } STATIC I32 rmagical_a_dummy(pTHX_ IV idx, SV *sv) { PERL_UNUSED_ARG(idx); PERL_UNUSED_ARG(sv); return 0; } /* We could do "= { 0 };" but some versions of gcc do warn * (with -Wextra) about missing initializer, this is probably gcc * being a bit too paranoid. But since this is file-static, we can * just have it without initializer, since it should get * zero-initialized. */ STATIC MGVTBL rmagical_b; STATIC void blockhook_csc_start(pTHX_ int full) { dMY_CXT; AV *const cur = GvAV(MY_CXT.cscgv); PERL_UNUSED_ARG(full); SAVEGENERICSV(GvAV(MY_CXT.cscgv)); if (cur) { I32 i; AV *const new_av = newAV(); for (i = 0; i <= av_tindex(cur); i++) { av_store(new_av, i, newSVsv(*av_fetch(cur, i, 0))); } GvAV(MY_CXT.cscgv) = new_av; } } STATIC void blockhook_csc_pre_end(pTHX_ OP **o) { dMY_CXT; PERL_UNUSED_ARG(o); /* if we hit the end of a scope we missed the start of, we need to * unconditionally clear @CSC */ if (GvAV(MY_CXT.cscgv) == MY_CXT.cscav && MY_CXT.cscav) { av_clear(MY_CXT.cscav); } } STATIC void blockhook_test_start(pTHX_ int full) { dMY_CXT; AV *av; if (MY_CXT.bhk_record) { av = newAV(); av_push(av, newSVpvs("start")); av_push(av, newSViv(full)); av_push(MY_CXT.bhkav, newRV_noinc(MUTABLE_SV(av))); } } STATIC void blockhook_test_pre_end(pTHX_ OP **o) { dMY_CXT; PERL_UNUSED_ARG(o); if (MY_CXT.bhk_record) av_push(MY_CXT.bhkav, newSVpvs("pre_end")); } STATIC void blockhook_test_post_end(pTHX_ OP **o) { dMY_CXT; PERL_UNUSED_ARG(o); if (MY_CXT.bhk_record) av_push(MY_CXT.bhkav, newSVpvs("post_end")); } STATIC void blockhook_test_eval(pTHX_ OP *const o) { dMY_CXT; AV *av; if (MY_CXT.bhk_record) { av = newAV(); av_push(av, newSVpvs("eval")); av_push(av, newSVpv(OP_NAME(o), 0)); av_push(MY_CXT.bhkav, newRV_noinc(MUTABLE_SV(av))); } } STATIC BHK bhk_csc, bhk_test; STATIC void my_peep (pTHX_ OP *o) { dMY_CXT; if (!o) return; MY_CXT.orig_peep(aTHX_ o); if (!MY_CXT.peep_recording) return; for (; o; o = o->op_next) { if (o->op_type == OP_CONST && cSVOPx_sv(o) && SvPOK(cSVOPx_sv(o))) { av_push(MY_CXT.peep_recorder, newSVsv(cSVOPx_sv(o))); } } } STATIC void my_rpeep (pTHX_ OP *o) { dMY_CXT; if (!o) return; MY_CXT.orig_rpeep(aTHX_ o); if (!MY_CXT.peep_recording) return; for (; o; o = o->op_next) { if (o->op_type == OP_CONST && cSVOPx_sv(o) && SvPOK(cSVOPx_sv(o))) { av_push(MY_CXT.rpeep_recorder, newSVsv(cSVOPx_sv(o))); } } } STATIC OP * THX_ck_entersub_args_lists(pTHX_ OP *entersubop, GV *namegv, SV *ckobj) { PERL_UNUSED_ARG(namegv); PERL_UNUSED_ARG(ckobj); return ck_entersub_args_list(entersubop); } STATIC OP * THX_ck_entersub_args_scalars(pTHX_ OP *entersubop, GV *namegv, SV *ckobj) { OP *aop = cUNOPx(entersubop)->op_first; PERL_UNUSED_ARG(namegv); PERL_UNUSED_ARG(ckobj); if (!OpHAS_SIBLING(aop)) aop = cUNOPx(aop)->op_first; for (aop = OpSIBLING(aop); OpHAS_SIBLING(aop); aop = OpSIBLING(aop)) { op_contextualize(aop, G_SCALAR); } return entersubop; } STATIC OP * THX_ck_entersub_multi_sum(pTHX_ OP *entersubop, GV *namegv, SV *ckobj) { OP *sumop = NULL; OP *parent = entersubop; OP *pushop = cUNOPx(entersubop)->op_first; PERL_UNUSED_ARG(namegv); PERL_UNUSED_ARG(ckobj); if (!OpHAS_SIBLING(pushop)) { parent = pushop; pushop = cUNOPx(pushop)->op_first; } while (1) { OP *aop = OpSIBLING(pushop); if (!OpHAS_SIBLING(aop)) break; /* cut out first arg */ op_sibling_splice(parent, pushop, 1, NULL); op_contextualize(aop, G_SCALAR); if (sumop) { sumop = newBINOP(OP_ADD, 0, sumop, aop); } else { sumop = aop; } } if (!sumop) sumop = newSVOP(OP_CONST, 0, newSViv(0)); op_free(entersubop); return sumop; } STATIC void test_op_list_describe_part(SV *res, OP *o); STATIC void test_op_list_describe_part(SV *res, OP *o) { sv_catpv(res, PL_op_name[o->op_type]); switch (o->op_type) { case OP_CONST: { sv_catpvf(res, "(%d)", (int)SvIV(cSVOPx(o)->op_sv)); } break; } if (o->op_flags & OPf_KIDS) { OP *k; sv_catpvs(res, "["); for (k = cUNOPx(o)->op_first; k; k = OpSIBLING(k)) test_op_list_describe_part(res, k); sv_catpvs(res, "]"); } else { sv_catpvs(res, "."); } } STATIC char * test_op_list_describe(OP *o) { SV *res = sv_2mortal(newSVpvs("")); if (o) test_op_list_describe_part(res, o); return SvPVX(res); } /* the real new*OP functions have a tendency to call fold_constants, and * other such unhelpful things, so we need our own versions for testing */ #define mkUNOP(t, f) THX_mkUNOP(aTHX_ (t), (f)) static OP * THX_mkUNOP(pTHX_ U32 type, OP *first) { UNOP *unop; NewOp(1103, unop, 1, UNOP); unop->op_type = (OPCODE)type; op_sibling_splice((OP*)unop, NULL, 0, first); return (OP *)unop; } #define mkBINOP(t, f, l) THX_mkBINOP(aTHX_ (t), (f), (l)) static OP * THX_mkBINOP(pTHX_ U32 type, OP *first, OP *last) { BINOP *binop; NewOp(1103, binop, 1, BINOP); binop->op_type = (OPCODE)type; op_sibling_splice((OP*)binop, NULL, 0, last); op_sibling_splice((OP*)binop, NULL, 0, first); return (OP *)binop; } #define mkLISTOP(t, f, s, l) THX_mkLISTOP(aTHX_ (t), (f), (s), (l)) static OP * THX_mkLISTOP(pTHX_ U32 type, OP *first, OP *sib, OP *last) { LISTOP *listop; NewOp(1103, listop, 1, LISTOP); listop->op_type = (OPCODE)type; op_sibling_splice((OP*)listop, NULL, 0, last); op_sibling_splice((OP*)listop, NULL, 0, sib); op_sibling_splice((OP*)listop, NULL, 0, first); return (OP *)listop; } static char * test_op_linklist_describe(OP *start) { SV *rv = sv_2mortal(newSVpvs("")); OP *o; o = start = LINKLIST(start); do { sv_catpvs(rv, "."); sv_catpv(rv, OP_NAME(o)); if (o->op_type == OP_CONST) sv_catsv(rv, cSVOPo->op_sv); o = o->op_next; } while (o && o != start); return SvPVX(rv); } /** establish_cleanup operator, ripped off from Scope::Cleanup **/ STATIC void THX_run_cleanup(pTHX_ void *cleanup_code_ref) { dSP; PUSHSTACK; ENTER; SAVETMPS; PUSHMARK(SP); call_sv((SV*)cleanup_code_ref, G_VOID|G_DISCARD); FREETMPS; LEAVE; POPSTACK; } STATIC OP * THX_pp_establish_cleanup(pTHX) { dSP; SV *cleanup_code_ref; cleanup_code_ref = newSVsv(POPs); SAVEFREESV(cleanup_code_ref); SAVEDESTRUCTOR_X(THX_run_cleanup, cleanup_code_ref); if(GIMME_V != G_VOID) PUSHs(&PL_sv_undef); RETURN; } STATIC OP * THX_ck_entersub_establish_cleanup(pTHX_ OP *entersubop, GV *namegv, SV *ckobj) { OP *parent, *pushop, *argop, *estop; ck_entersub_args_proto(entersubop, namegv, ckobj); parent = entersubop; pushop = cUNOPx(entersubop)->op_first; if(!OpHAS_SIBLING(pushop)) { parent = pushop; pushop = cUNOPx(pushop)->op_first; } /* extract out first arg, then delete the rest of the tree */ argop = OpSIBLING(pushop); op_sibling_splice(parent, pushop, 1, NULL); op_free(entersubop); estop = mkUNOP(OP_RAND, argop); estop->op_ppaddr = THX_pp_establish_cleanup; PL_hints |= HINT_BLOCK_SCOPE; return estop; } STATIC OP * THX_ck_entersub_postinc(pTHX_ OP *entersubop, GV *namegv, SV *ckobj) { OP *parent, *pushop, *argop; ck_entersub_args_proto(entersubop, namegv, ckobj); parent = entersubop; pushop = cUNOPx(entersubop)->op_first; if(!OpHAS_SIBLING(pushop)) { parent = pushop; pushop = cUNOPx(pushop)->op_first; } argop = OpSIBLING(pushop); op_sibling_splice(parent, pushop, 1, NULL); op_free(entersubop); return newUNOP(OP_POSTINC, 0, op_lvalue(op_contextualize(argop, G_SCALAR), OP_POSTINC)); } STATIC OP * THX_ck_entersub_pad_scalar(pTHX_ OP *entersubop, GV *namegv, SV *ckobj) { OP *pushop, *argop; PADOFFSET padoff = NOT_IN_PAD; SV *a0, *a1; ck_entersub_args_proto(entersubop, namegv, ckobj); pushop = cUNOPx(entersubop)->op_first; if(!OpHAS_SIBLING(pushop)) pushop = cUNOPx(pushop)->op_first; argop = OpSIBLING(pushop); if(argop->op_type != OP_CONST || OpSIBLING(argop)->op_type != OP_CONST) croak("bad argument expression type for pad_scalar()"); a0 = cSVOPx_sv(argop); a1 = cSVOPx_sv(OpSIBLING(argop)); switch(SvIV(a0)) { case 1: { SV *namesv = sv_2mortal(newSVpvs("$")); sv_catsv(namesv, a1); padoff = pad_findmy_sv(namesv, 0); } break; case 2: { char *namepv; STRLEN namelen; SV *namesv = sv_2mortal(newSVpvs("$")); sv_catsv(namesv, a1); namepv = SvPV(namesv, namelen); padoff = pad_findmy_pvn(namepv, namelen, SvUTF8(namesv)); } break; case 3: { char *namepv; SV *namesv = sv_2mortal(newSVpvs("$")); sv_catsv(namesv, a1); namepv = SvPV_nolen(namesv); padoff = pad_findmy_pv(namepv, SvUTF8(namesv)); } break; case 4: { padoff = pad_findmy_pvs("$foo", 0); } break; default: croak("bad type value for pad_scalar()"); } op_free(entersubop); if(padoff == NOT_IN_PAD) { return newSVOP(OP_CONST, 0, newSVpvs("NOT_IN_PAD")); } else if(PAD_COMPNAME_FLAGS_isOUR(padoff)) { return newSVOP(OP_CONST, 0, newSVpvs("NOT_MY")); } else { OP *padop = newOP(OP_PADSV, 0); padop->op_targ = padoff; return padop; } } /** RPN keyword parser **/ #define sv_is_glob(sv) (SvTYPE(sv) == SVt_PVGV) #define sv_is_regexp(sv) (SvTYPE(sv) == SVt_REGEXP) #define sv_is_string(sv) \ (!sv_is_glob(sv) && !sv_is_regexp(sv) && \ (SvFLAGS(sv) & (SVf_IOK|SVf_NOK|SVf_POK|SVp_IOK|SVp_NOK|SVp_POK))) static SV *hintkey_rpn_sv, *hintkey_calcrpn_sv, *hintkey_stufftest_sv; static SV *hintkey_swaptwostmts_sv, *hintkey_looprest_sv; static SV *hintkey_scopelessblock_sv; static SV *hintkey_stmtasexpr_sv, *hintkey_stmtsasexpr_sv; static SV *hintkey_loopblock_sv, *hintkey_blockasexpr_sv; static SV *hintkey_swaplabel_sv, *hintkey_labelconst_sv; static SV *hintkey_arrayfullexpr_sv, *hintkey_arraylistexpr_sv; static SV *hintkey_arraytermexpr_sv, *hintkey_arrayarithexpr_sv; static SV *hintkey_arrayexprflags_sv; static SV *hintkey_DEFSV_sv; static SV *hintkey_with_vars_sv; static SV *hintkey_join_with_space_sv; static int (*next_keyword_plugin)(pTHX_ char *, STRLEN, OP **); /* low-level parser helpers */ #define PL_bufptr (PL_parser->bufptr) #define PL_bufend (PL_parser->bufend) /* RPN parser */ #define parse_var() THX_parse_var(aTHX) static OP *THX_parse_var(pTHX) { char *s = PL_bufptr; char *start = s; PADOFFSET varpos; OP *padop; if(*s != '$') croak("RPN syntax error"); while(1) { char c = *++s; if(!isALNUM(c)) break; } if(s-start < 2) croak("RPN syntax error"); lex_read_to(s); varpos = pad_findmy_pvn(start, s-start, 0); if(varpos == NOT_IN_PAD || PAD_COMPNAME_FLAGS_isOUR(varpos)) croak("RPN only supports \"my\" variables"); padop = newOP(OP_PADSV, 0); padop->op_targ = varpos; return padop; } #define push_rpn_item(o) \ op_sibling_splice(parent, NULL, 0, o); #define pop_rpn_item() ( \ (tmpop = op_sibling_splice(parent, NULL, 1, NULL)) \ ? tmpop : (croak("RPN stack underflow"), (OP*)NULL)) #define parse_rpn_expr() THX_parse_rpn_expr(aTHX) static OP *THX_parse_rpn_expr(pTHX) { OP *tmpop; /* fake parent for splice to mess with */ OP *parent = mkBINOP(OP_NULL, NULL, NULL); while(1) { I32 c; lex_read_space(0); c = lex_peek_unichar(0); switch(c) { case /*(*/')': case /*{*/'}': { OP *result = pop_rpn_item(); if(cLISTOPx(parent)->op_first) croak("RPN expression must return a single value"); op_free(parent); return result; } break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { UV val = 0; do { lex_read_unichar(0); val = 10*val + (c - '0'); c = lex_peek_unichar(0); } while(c >= '0' && c <= '9'); push_rpn_item(newSVOP(OP_CONST, 0, newSVuv(val))); } break; case '$': { push_rpn_item(parse_var()); } break; case '+': { OP *b = pop_rpn_item(); OP *a = pop_rpn_item(); lex_read_unichar(0); push_rpn_item(newBINOP(OP_I_ADD, 0, a, b)); } break; case '-': { OP *b = pop_rpn_item(); OP *a = pop_rpn_item(); lex_read_unichar(0); push_rpn_item(newBINOP(OP_I_SUBTRACT, 0, a, b)); } break; case '*': { OP *b = pop_rpn_item(); OP *a = pop_rpn_item(); lex_read_unichar(0); push_rpn_item(newBINOP(OP_I_MULTIPLY, 0, a, b)); } break; case '/': { OP *b = pop_rpn_item(); OP *a = pop_rpn_item(); lex_read_unichar(0); push_rpn_item(newBINOP(OP_I_DIVIDE, 0, a, b)); } break; case '%': { OP *b = pop_rpn_item(); OP *a = pop_rpn_item(); lex_read_unichar(0); push_rpn_item(newBINOP(OP_I_MODULO, 0, a, b)); } break; default: { croak("RPN syntax error"); } break; } } } #define parse_keyword_rpn() THX_parse_keyword_rpn(aTHX) static OP *THX_parse_keyword_rpn(pTHX) { OP *op; lex_read_space(0); if(lex_peek_unichar(0) != '('/*)*/) croak("RPN expression must be parenthesised"); lex_read_unichar(0); op = parse_rpn_expr(); if(lex_peek_unichar(0) != /*(*/')') croak("RPN expression must be parenthesised"); lex_read_unichar(0); return op; } #define parse_keyword_calcrpn() THX_parse_keyword_calcrpn(aTHX) static OP *THX_parse_keyword_calcrpn(pTHX) { OP *varop, *exprop; lex_read_space(0); varop = parse_var(); lex_read_space(0); if(lex_peek_unichar(0) != '{'/*}*/) croak("RPN expression must be braced"); lex_read_unichar(0); exprop = parse_rpn_expr(); if(lex_peek_unichar(0) != /*{*/'}') croak("RPN expression must be braced"); lex_read_unichar(0); return newASSIGNOP(OPf_STACKED, varop, 0, exprop); } #define parse_keyword_stufftest() THX_parse_keyword_stufftest(aTHX) static OP *THX_parse_keyword_stufftest(pTHX) { I32 c; bool do_stuff; lex_read_space(0); do_stuff = lex_peek_unichar(0) == '+'; if(do_stuff) { lex_read_unichar(0); lex_read_space(0); } c = lex_peek_unichar(0); if(c == ';') { lex_read_unichar(0); } else if(c != /*{*/'}') { croak("syntax error"); } if(do_stuff) lex_stuff_pvs(" ", 0); return newOP(OP_NULL, 0); } #define parse_keyword_swaptwostmts() THX_parse_keyword_swaptwostmts(aTHX) static OP *THX_parse_keyword_swaptwostmts(pTHX) { OP *a, *b; a = parse_fullstmt(0); b = parse_fullstmt(0); if(a && b) PL_hints |= HINT_BLOCK_SCOPE; return op_append_list(OP_LINESEQ, b, a); } #define parse_keyword_looprest() THX_parse_keyword_looprest(aTHX) static OP *THX_parse_keyword_looprest(pTHX) { return newWHILEOP(0, 1, NULL, newSVOP(OP_CONST, 0, &PL_sv_yes), parse_stmtseq(0), NULL, 1); } #define parse_keyword_scopelessblock() THX_parse_keyword_scopelessblock(aTHX) static OP *THX_parse_keyword_scopelessblock(pTHX) { I32 c; OP *body; lex_read_space(0); if(lex_peek_unichar(0) != '{'/*}*/) croak("syntax error"); lex_read_unichar(0); body = parse_stmtseq(0); c = lex_peek_unichar(0); if(c != /*{*/'}' && c != /*[*/']' && c != /*(*/')') croak("syntax error"); lex_read_unichar(0); return body; } #define parse_keyword_stmtasexpr() THX_parse_keyword_stmtasexpr(aTHX) static OP *THX_parse_keyword_stmtasexpr(pTHX) { OP *o = parse_barestmt(0); if (!o) o = newOP(OP_STUB, 0); if (PL_hints & HINT_BLOCK_SCOPE) o->op_flags |= OPf_PARENS; return op_scope(o); } #define parse_keyword_stmtsasexpr() THX_parse_keyword_stmtsasexpr(aTHX) static OP *THX_parse_keyword_stmtsasexpr(pTHX) { OP *o; lex_read_space(0); if(lex_peek_unichar(0) != '{'/*}*/) croak("syntax error"); lex_read_unichar(0); o = parse_stmtseq(0); lex_read_space(0); if(lex_peek_unichar(0) != /*{*/'}') croak("syntax error"); lex_read_unichar(0); if (!o) o = newOP(OP_STUB, 0); if (PL_hints & HINT_BLOCK_SCOPE) o->op_flags |= OPf_PARENS; return op_scope(o); } #define parse_keyword_loopblock() THX_parse_keyword_loopblock(aTHX) static OP *THX_parse_keyword_loopblock(pTHX) { return newWHILEOP(0, 1, NULL, newSVOP(OP_CONST, 0, &PL_sv_yes), parse_block(0), NULL, 1); } #define parse_keyword_blockasexpr() THX_parse_keyword_blockasexpr(aTHX) static OP *THX_parse_keyword_blockasexpr(pTHX) { OP *o = parse_block(0); if (!o) o = newOP(OP_STUB, 0); if (PL_hints & HINT_BLOCK_SCOPE) o->op_flags |= OPf_PARENS; return op_scope(o); } #define parse_keyword_swaplabel() THX_parse_keyword_swaplabel(aTHX) static OP *THX_parse_keyword_swaplabel(pTHX) { OP *sop = parse_barestmt(0); SV *label = parse_label(PARSE_OPTIONAL); if (label) sv_2mortal(label); return newSTATEOP(label ? SvUTF8(label) : 0, label ? savepv(SvPVX(label)) : NULL, sop); } #define parse_keyword_labelconst() THX_parse_keyword_labelconst(aTHX) static OP *THX_parse_keyword_labelconst(pTHX) { return newSVOP(OP_CONST, 0, parse_label(0)); } #define parse_keyword_arrayfullexpr() THX_parse_keyword_arrayfullexpr(aTHX) static OP *THX_parse_keyword_arrayfullexpr(pTHX) { return newANONLIST(parse_fullexpr(0)); } #define parse_keyword_arraylistexpr() THX_parse_keyword_arraylistexpr(aTHX) static OP *THX_parse_keyword_arraylistexpr(pTHX) { return newANONLIST(parse_listexpr(0)); } #define parse_keyword_arraytermexpr() THX_parse_keyword_arraytermexpr(aTHX) static OP *THX_parse_keyword_arraytermexpr(pTHX) { return newANONLIST(parse_termexpr(0)); } #define parse_keyword_arrayarithexpr() THX_parse_keyword_arrayarithexpr(aTHX) static OP *THX_parse_keyword_arrayarithexpr(pTHX) { return newANONLIST(parse_arithexpr(0)); } #define parse_keyword_arrayexprflags() THX_parse_keyword_arrayexprflags(aTHX) static OP *THX_parse_keyword_arrayexprflags(pTHX) { U32 flags = 0; I32 c; OP *o; lex_read_space(0); c = lex_peek_unichar(0); if (c != '!' && c != '?') croak("syntax error"); lex_read_unichar(0); if (c == '?') flags |= PARSE_OPTIONAL; o = parse_listexpr(flags); return o ? newANONLIST(o) : newANONHASH(newOP(OP_STUB, 0)); } #define parse_keyword_DEFSV() THX_parse_keyword_DEFSV(aTHX) static OP *THX_parse_keyword_DEFSV(pTHX) { return newDEFSVOP(); } #define sv_cat_c(a,b) THX_sv_cat_c(aTHX_ a, b) static void THX_sv_cat_c(pTHX_ SV *sv, U32 c) { char ds[UTF8_MAXBYTES + 1], *d; d = (char *)uvchr_to_utf8((U8 *)ds, c); if (d - ds > 1) { sv_utf8_upgrade(sv); } sv_catpvn(sv, ds, d - ds); } #define parse_keyword_with_vars() THX_parse_keyword_with_vars(aTHX) static OP *THX_parse_keyword_with_vars(pTHX) { I32 c; IV count; int save_ix; OP *vardeclseq, *body; save_ix = block_start(TRUE); vardeclseq = NULL; count = 0; lex_read_space(0); c = lex_peek_unichar(0); while (c != '{') { SV *varname; PADOFFSET padoff; if (c == -1) { croak("unexpected EOF; expecting '{'"); } if (!isIDFIRST_uni(c)) { croak("unexpected '%c'; expecting an identifier", (int)c); } varname = newSVpvs("$"); if (lex_bufutf8()) { SvUTF8_on(varname); } sv_cat_c(varname, c); lex_read_unichar(0); while (c = lex_peek_unichar(0), c != -1 && isIDCONT_uni(c)) { sv_cat_c(varname, c); lex_read_unichar(0); } padoff = pad_add_name_sv(varname, padadd_NO_DUP_CHECK, NULL, NULL); { OP *my_var = newOP(OP_PADSV, OPf_MOD | (OPpLVAL_INTRO << 8)); my_var->op_targ = padoff; vardeclseq = op_append_list( OP_LINESEQ, vardeclseq, newSTATEOP( 0, NULL, newASSIGNOP( OPf_STACKED, my_var, 0, newSVOP( OP_CONST, 0, newSViv(++count) ) ) ) ); } lex_read_space(0); c = lex_peek_unichar(0); } intro_my(); body = parse_block(0); return block_end(save_ix, op_append_list(OP_LINESEQ, vardeclseq, body)); } #define parse_join_with_space() THX_parse_join_with_space(aTHX) static OP *THX_parse_join_with_space(pTHX) { OP *delim, *args; args = parse_listexpr(0); delim = newSVOP(OP_CONST, 0, newSVpvs(" ")); return op_convert_list(OP_JOIN, 0, op_prepend_elem(OP_LIST, delim, args)); } /* plugin glue */ #define keyword_active(hintkey_sv) THX_keyword_active(aTHX_ hintkey_sv) static int THX_keyword_active(pTHX_ SV *hintkey_sv) { HE *he; if(!GvHV(PL_hintgv)) return 0; he = hv_fetch_ent(GvHV(PL_hintgv), hintkey_sv, 0, SvSHARED_HASH(hintkey_sv)); return he && SvTRUE(HeVAL(he)); } static int my_keyword_plugin(pTHX_ char *keyword_ptr, STRLEN keyword_len, OP **op_ptr) { if (memEQs(keyword_ptr, keyword_len, "rpn") && keyword_active(hintkey_rpn_sv)) { *op_ptr = parse_keyword_rpn(); return KEYWORD_PLUGIN_EXPR; } else if (memEQs(keyword_ptr, keyword_len, "calcrpn") && keyword_active(hintkey_calcrpn_sv)) { *op_ptr = parse_keyword_calcrpn(); return KEYWORD_PLUGIN_STMT; } else if (memEQs(keyword_ptr, keyword_len, "stufftest") && keyword_active(hintkey_stufftest_sv)) { *op_ptr = parse_keyword_stufftest(); return KEYWORD_PLUGIN_STMT; } else if (memEQs(keyword_ptr, keyword_len, "swaptwostmts") && keyword_active(hintkey_swaptwostmts_sv)) { *op_ptr = parse_keyword_swaptwostmts(); return KEYWORD_PLUGIN_STMT; } else if (memEQs(keyword_ptr, keyword_len, "looprest") && keyword_active(hintkey_looprest_sv)) { *op_ptr = parse_keyword_looprest(); return KEYWORD_PLUGIN_STMT; } else if (memEQs(keyword_ptr, keyword_len, "scopelessblock") && keyword_active(hintkey_scopelessblock_sv)) { *op_ptr = parse_keyword_scopelessblock(); return KEYWORD_PLUGIN_STMT; } else if (memEQs(keyword_ptr, keyword_len, "stmtasexpr") && keyword_active(hintkey_stmtasexpr_sv)) { *op_ptr = parse_keyword_stmtasexpr(); return KEYWORD_PLUGIN_EXPR; } else if (memEQs(keyword_ptr, keyword_len, "stmtsasexpr") && keyword_active(hintkey_stmtsasexpr_sv)) { *op_ptr = parse_keyword_stmtsasexpr(); return KEYWORD_PLUGIN_EXPR; } else if (memEQs(keyword_ptr, keyword_len, "loopblock") && keyword_active(hintkey_loopblock_sv)) { *op_ptr = parse_keyword_loopblock(); return KEYWORD_PLUGIN_STMT; } else if (memEQs(keyword_ptr, keyword_len, "blockasexpr") && keyword_active(hintkey_blockasexpr_sv)) { *op_ptr = parse_keyword_blockasexpr(); return KEYWORD_PLUGIN_EXPR; } else if (memEQs(keyword_ptr, keyword_len, "swaplabel") && keyword_active(hintkey_swaplabel_sv)) { *op_ptr = parse_keyword_swaplabel(); return KEYWORD_PLUGIN_STMT; } else if (memEQs(keyword_ptr, keyword_len, "labelconst") && keyword_active(hintkey_labelconst_sv)) { *op_ptr = parse_keyword_labelconst(); return KEYWORD_PLUGIN_EXPR; } else if (memEQs(keyword_ptr, keyword_len, "arrayfullexpr") && keyword_active(hintkey_arrayfullexpr_sv)) { *op_ptr = parse_keyword_arrayfullexpr(); return KEYWORD_PLUGIN_EXPR; } else if (memEQs(keyword_ptr, keyword_len, "arraylistexpr") && keyword_active(hintkey_arraylistexpr_sv)) { *op_ptr = parse_keyword_arraylistexpr(); return KEYWORD_PLUGIN_EXPR; } else if (memEQs(keyword_ptr, keyword_len, "arraytermexpr") && keyword_active(hintkey_arraytermexpr_sv)) { *op_ptr = parse_keyword_arraytermexpr(); return KEYWORD_PLUGIN_EXPR; } else if (memEQs(keyword_ptr, keyword_len, "arrayarithexpr") && keyword_active(hintkey_arrayarithexpr_sv)) { *op_ptr = parse_keyword_arrayarithexpr(); return KEYWORD_PLUGIN_EXPR; } else if (memEQs(keyword_ptr, keyword_len, "arrayexprflags") && keyword_active(hintkey_arrayexprflags_sv)) { *op_ptr = parse_keyword_arrayexprflags(); return KEYWORD_PLUGIN_EXPR; } else if (memEQs(keyword_ptr, keyword_len, "DEFSV") && keyword_active(hintkey_DEFSV_sv)) { *op_ptr = parse_keyword_DEFSV(); return KEYWORD_PLUGIN_EXPR; } else if (memEQs(keyword_ptr, keyword_len, "with_vars") && keyword_active(hintkey_with_vars_sv)) { *op_ptr = parse_keyword_with_vars(); return KEYWORD_PLUGIN_STMT; } else if (memEQs(keyword_ptr, keyword_len, "join_with_space") && keyword_active(hintkey_join_with_space_sv)) { *op_ptr = parse_join_with_space(); return KEYWORD_PLUGIN_EXPR; } else { assert(next_keyword_plugin != my_keyword_plugin); return next_keyword_plugin(aTHX_ keyword_ptr, keyword_len, op_ptr); } } static XOP my_xop; static OP * pp_xop(pTHX) { return PL_op->op_next; } static void peep_xop(pTHX_ OP *o, OP *oldop) { dMY_CXT; av_push(MY_CXT.xop_record, newSVpvf("peep:%" UVxf, PTR2UV(o))); av_push(MY_CXT.xop_record, newSVpvf("oldop:%" UVxf, PTR2UV(oldop))); } static I32 filter_call(pTHX_ int idx, SV *buf_sv, int maxlen) { char *p; char *end; int n = FILTER_READ(idx + 1, buf_sv, maxlen); if (n<=0) return n; p = SvPV_force_nolen(buf_sv); end = p + SvCUR(buf_sv); while (p < end) { if (*p == 'o') *p = 'e'; p++; } return SvCUR(buf_sv); } static AV * myget_linear_isa(pTHX_ HV *stash, U32 level) { GV **gvp = (GV **)hv_fetchs(stash, "ISA", 0); PERL_UNUSED_ARG(level); return gvp && *gvp && GvAV(*gvp) ? GvAV(*gvp) : (AV *)sv_2mortal((SV *)newAV()); } XS_EXTERNAL(XS_XS__APItest__XSUB_XS_VERSION_undef); XS_EXTERNAL(XS_XS__APItest__XSUB_XS_VERSION_empty); XS_EXTERNAL(XS_XS__APItest__XSUB_XS_APIVERSION_invalid); static struct mro_alg mymro; static Perl_check_t addissub_nxck_add; static OP * addissub_myck_add(pTHX_ OP *op) { SV **flag_svp = hv_fetchs(GvHV(PL_hintgv), "XS::APItest/addissub", 0); OP *aop, *bop; U8 flags; if (!(flag_svp && SvTRUE(*flag_svp) && (op->op_flags & OPf_KIDS) && (aop = cBINOPx(op)->op_first) && (bop = OpSIBLING(aop)) && !OpHAS_SIBLING(bop))) return addissub_nxck_add(aTHX_ op); flags = op->op_flags; op_sibling_splice(op, NULL, 1, NULL); /* excise aop */ op_sibling_splice(op, NULL, 1, NULL); /* excise bop */ op_free(op); /* free the empty husk */ flags &= ~OPf_KIDS; return newBINOP(OP_SUBTRACT, flags, aop, bop); } static Perl_check_t old_ck_rv2cv; static OP * my_ck_rv2cv(pTHX_ OP *o) { SV *ref; SV **flag_svp = hv_fetchs(GvHV(PL_hintgv), "XS::APItest/addunder", 0); OP *aop; if (flag_svp && SvTRUE(*flag_svp) && (o->op_flags & OPf_KIDS) && (aop = cUNOPx(o)->op_first) && aop->op_type == OP_CONST && aop->op_private & (OPpCONST_ENTERED|OPpCONST_BARE) && (ref = cSVOPx(aop)->op_sv) && SvPOK(ref) && SvCUR(ref) && *(SvEND(ref)-1) == 'o') { SvGROW(ref, SvCUR(ref)+2); *SvEND(ref) = '_'; SvCUR(ref)++; *SvEND(ref) = '\0'; } return old_ck_rv2cv(aTHX_ o); } #include "const-c.inc" #line 1360 "APItest.c" #ifndef PERL_UNUSED_VAR # define PERL_UNUSED_VAR(var) if (0) var = var #endif #ifndef dVAR # define dVAR dNOOP #endif /* This stuff is not part of the API! You have been warned. */ #ifndef PERL_VERSION_DECIMAL # define PERL_VERSION_DECIMAL(r,v,s) (r*1000000 + v*1000 + s) #endif #ifndef PERL_DECIMAL_VERSION # define PERL_DECIMAL_VERSION \ PERL_VERSION_DECIMAL(PERL_REVISION,PERL_VERSION,PERL_SUBVERSION) #endif #ifndef PERL_VERSION_GE # define PERL_VERSION_GE(r,v,s) \ (PERL_DECIMAL_VERSION >= PERL_VERSION_DECIMAL(r,v,s)) #endif #ifndef PERL_VERSION_LE # define PERL_VERSION_LE(r,v,s) \ (PERL_DECIMAL_VERSION <= PERL_VERSION_DECIMAL(r,v,s)) #endif /* XS_INTERNAL is the explicit static-linkage variant of the default * XS macro. * * XS_EXTERNAL is the same as XS_INTERNAL except it does not include * "STATIC", ie. it exports XSUB symbols. You probably don't want that * for anything but the BOOT XSUB. * * See XSUB.h in core! */ /* TODO: This might be compatible further back than 5.10.0. */ #if PERL_VERSION_GE(5, 10, 0) && PERL_VERSION_LE(5, 15, 1) # undef XS_EXTERNAL # undef XS_INTERNAL # if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING) # define XS_EXTERNAL(name) __declspec(dllexport) XSPROTO(name) # define XS_INTERNAL(name) STATIC XSPROTO(name) # endif # if defined(__SYMBIAN32__) # define XS_EXTERNAL(name) EXPORT_C XSPROTO(name) # define XS_INTERNAL(name) EXPORT_C STATIC XSPROTO(name) # endif # ifndef XS_EXTERNAL # if defined(HASATTRIBUTE_UNUSED) && !defined(__cplusplus) # define XS_EXTERNAL(name) void name(pTHX_ CV* cv __attribute__unused__) # define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__) # else # ifdef __cplusplus # define XS_EXTERNAL(name) extern "C" XSPROTO(name) # define XS_INTERNAL(name) static XSPROTO(name) # else # define XS_EXTERNAL(name) XSPROTO(name) # define XS_INTERNAL(name) STATIC XSPROTO(name) # endif # endif # endif #endif /* perl >= 5.10.0 && perl <= 5.15.1 */ /* The XS_EXTERNAL macro is used for functions that must not be static * like the boot XSUB of a module. If perl didn't have an XS_EXTERNAL * macro defined, the best we can do is assume XS is the same. * Dito for XS_INTERNAL. */ #ifndef XS_EXTERNAL # define XS_EXTERNAL(name) XS(name) #endif #ifndef XS_INTERNAL # define XS_INTERNAL(name) XS(name) #endif /* Now, finally, after all this mess, we want an ExtUtils::ParseXS * internal macro that we're free to redefine for varying linkage due * to the EXPORT_XSUB_SYMBOLS XS keyword. This is internal, use * XS_EXTERNAL(name) or XS_INTERNAL(name) in your code if you need to! */ #undef XS_EUPXS #if defined(PERL_EUPXS_ALWAYS_EXPORT) # define XS_EUPXS(name) XS_EXTERNAL(name) #else /* default to internal */ # define XS_EUPXS(name) XS_INTERNAL(name) #endif #ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE #define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params) /* prototype to pass -Wmissing-prototypes */ STATIC void S_croak_xs_usage(const CV *const cv, const char *const params); STATIC void S_croak_xs_usage(const CV *const cv, const char *const params) { const GV *const gv = CvGV(cv); PERL_ARGS_ASSERT_CROAK_XS_USAGE; if (gv) { const char *const gvname = GvNAME(gv); const HV *const stash = GvSTASH(gv); const char *const hvname = stash ? HvNAME(stash) : NULL; if (hvname) Perl_croak_nocontext("Usage: %s::%s(%s)", hvname, gvname, params); else Perl_croak_nocontext("Usage: %s(%s)", gvname, params); } else { /* Pants. I don't think that it should be possible to get here. */ Perl_croak_nocontext("Usage: CODE(0x%" UVxf ")(%s)", PTR2UV(cv), params); } } #undef PERL_ARGS_ASSERT_CROAK_XS_USAGE #define croak_xs_usage S_croak_xs_usage #endif /* NOTE: the prototype of newXSproto() is different in versions of perls, * so we define a portable version of newXSproto() */ #ifdef newXS_flags #define newXSproto_portable(name, c_impl, file, proto) newXS_flags(name, c_impl, file, proto, 0) #else #define newXSproto_portable(name, c_impl, file, proto) (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv) #endif /* !defined(newXS_flags) */ #if PERL_VERSION_LE(5, 21, 5) # define newXS_deffile(a,b) Perl_newXS(aTHX_ a,b,file) #else # define newXS_deffile(a,b) Perl_newXS_deffile(aTHX_ a,b) #endif #line 1504 "APItest.c" /* INCLUDE: Including 'const-xs.inc' from 'APItest.xs' */ XS_EUPXS(XS_XS__APItest_constant); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_constant) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { SV * sv = ST(0) ; #line 244 "./const-xs.inc" #ifndef SYMBIAN /* It's not obvious how to calculate this at C pre-processor time. However, any compiler optimiser worth its salt should be able to remove the dead code, and hopefully the now-obviously-unused static function too. */ HV *constant_missing = (C_ARRAY_LENGTH(values_for_notfound) > 1) ? get_missing_hash(aTHX) : NULL; if ((C_ARRAY_LENGTH(values_for_notfound) > 1) ? hv_exists_ent(constant_missing, sv, 0) : 0) { sv = newSVpvf("Your vendor has not defined XS::APItest macro %" SVf ", used", sv); } else #endif { sv = newSVpvf("%" SVf " is not a valid XS::APItest macro", sv); } PUSHs(sv_2mortal(sv)); #line 1539 "APItest.c" PUTBACK; return; } } /* INCLUDE: Returning to 'APItest.xs' from 'const-xs.inc' */ /* INCLUDE: Including 'numeric.xs' from 'APItest.xs' */ XS_EUPXS(XS_XS__APItest__numeric_grok_number); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__numeric_grok_number) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "number"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { SV * number = ST(0) ; #line 7 "./numeric.xs" STRLEN len; const char *pv = SvPV(number, len); UV value; int result; #line 1568 "APItest.c" #line 12 "./numeric.xs" EXTEND(SP,2); result = grok_number(pv, len, &value); PUSHs(sv_2mortal(newSViv(result))); if (result & IS_NUMBER_IN_UV) PUSHs(sv_2mortal(newSVuv(value))); #line 1575 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__numeric_grok_number_flags); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__numeric_grok_number_flags) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "number, flags"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { SV * number = ST(0) ; U32 flags = (unsigned long)SvUV(ST(1)) ; #line 23 "./numeric.xs" STRLEN len; const char *pv = SvPV(number, len); UV value; int result; #line 1600 "APItest.c" #line 28 "./numeric.xs" EXTEND(SP,2); result = grok_number_flags(pv, len, &value, flags); PUSHs(sv_2mortal(newSViv(result))); if (result & IS_NUMBER_IN_UV) PUSHs(sv_2mortal(newSVuv(value))); #line 1607 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__numeric_grok_atoUV); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__numeric_grok_atoUV) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "number, endsv"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { SV * number = ST(0) ; SV * endsv = ST(1) ; #line 39 "./numeric.xs" STRLEN len; const char *pv = SvPV(number, len); UV value = 0xdeadbeef; bool result; const char* endptr = pv + len; #line 1633 "APItest.c" #line 45 "./numeric.xs" EXTEND(SP,2); if (endsv == &PL_sv_undef) { result = grok_atoUV(pv, &value, NULL); } else { result = grok_atoUV(pv, &value, &endptr); } PUSHs(result ? &PL_sv_yes : &PL_sv_no); PUSHs(sv_2mortal(newSVuv(value))); if (endsv == &PL_sv_undef) { PUSHs(sv_2mortal(newSVpvn(NULL, 0))); } else { if (endptr) { PUSHs(sv_2mortal(newSViv(endptr - pv))); } else { PUSHs(sv_2mortal(newSViv(0))); } } #line 1652 "APItest.c" PUTBACK; return; } } /* INCLUDE: Returning to 'APItest.xs' from 'numeric.xs' */ XS_EUPXS(XS_XS__APItest__numeric_assertx); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__numeric_assertx) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "x"); { int x = (int)SvIV(ST(0)) ; #line 1359 "APItest.xs" /* this only needs to compile and checks that assert() can be used this way syntactically */ (void)(assert(x), 1); (void)(x); #line 1676 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest__utf8_bytes_cmp_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__utf8_bytes_cmp_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "bytes, utf8"); { SV * bytes = ST(0) ; SV * utf8 = ST(1) ; #line 1371 "APItest.xs" const U8 *b; STRLEN blen; const U8 *u; STRLEN ulen; #line 1698 "APItest.c" int RETVAL; dXSTARG; #line 1376 "APItest.xs" b = (const U8 *)SvPVbyte(bytes, blen); u = (const U8 *)SvPVbyte(utf8, ulen); RETVAL = bytes_cmp_utf8(b, blen, u, ulen); #line 1705 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__utf8_test_utf8_to_bytes); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__utf8_test_utf8_to_bytes) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "bytes, len"); { U8 * bytes = (U8 *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; #line 1387 "APItest.xs" char * ret; #line 1725 "APItest.c" AV * RETVAL; #line 1389 "APItest.xs" RETVAL = newAV(); sv_2mortal((SV*)RETVAL); ret = (char *) utf8_to_bytes(bytes, &len); av_push(RETVAL, newSVpv(ret, 0)); /* utf8_to_bytes uses (STRLEN)-1 to signal errors, and we want to * return that as -1 to perl, so cast to SSize_t in case * sizeof(IV) > sizeof(STRLEN) */ av_push(RETVAL, newSViv((SSize_t)len)); av_push(RETVAL, newSVpv((const char *) bytes, 0)); #line 1740 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__utf8_test_utf8n_to_uvchr_msgs); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__utf8_test_utf8n_to_uvchr_msgs) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "s, len, flags"); { char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; U32 flags = (unsigned long)SvUV(ST(2)) ; #line 1410 "APItest.xs" STRLEN retlen; UV ret; U32 errors; AV *msgs = NULL; #line 1771 "APItest.c" AV * RETVAL; #line 1416 "APItest.xs" RETVAL = newAV(); sv_2mortal((SV*)RETVAL); ret = utf8n_to_uvchr_msgs((U8*) s, len, &retlen, flags, &errors, &msgs); /* Returns the return value in [0]; <retlen> in [1], <errors> in [2] */ av_push(RETVAL, newSVuv(ret)); if (retlen == (STRLEN) -1) { av_push(RETVAL, newSViv(-1)); } else { av_push(RETVAL, newSVuv(retlen)); } av_push(RETVAL, newSVuv(errors)); /* And any messages in [3] */ if (msgs) { av_push(RETVAL, newRV_noinc((SV*)msgs)); } #line 1799 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__utf8_test_utf8n_to_uvchr_error); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__utf8_test_utf8n_to_uvchr_error) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "s, len, flags"); { char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; U32 flags = (unsigned long)SvUV(ST(2)) ; #line 1451 "APItest.xs" STRLEN retlen; UV ret; U32 errors; #line 1829 "APItest.c" AV * RETVAL; #line 1456 "APItest.xs" /* Now that utf8n_to_uvchr() is a trivial wrapper for * utf8n_to_uvchr_error(), call the latter with the inputs. It always * asks for the actual length to be returned and errors to be returned * * Length to assume <s> is; not checked, so could have buffer overflow */ RETVAL = newAV(); sv_2mortal((SV*)RETVAL); ret = utf8n_to_uvchr_error((U8*) s, len, &retlen, flags, &errors); /* Returns the return value in [0]; <retlen> in [1], <errors> in [2] */ av_push(RETVAL, newSVuv(ret)); if (retlen == (STRLEN) -1) { av_push(RETVAL, newSViv(-1)); } else { av_push(RETVAL, newSVuv(retlen)); } av_push(RETVAL, newSVuv(errors)); #line 1857 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__utf8_test_valid_utf8_to_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__utf8_test_valid_utf8_to_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "s"); { SV * s = ST(0) ; #line 1489 "APItest.xs" STRLEN retlen; UV ret; #line 1882 "APItest.c" AV * RETVAL; #line 1493 "APItest.xs" /* Call utf8n_to_uvchr() with the inputs. It always asks for the * actual length to be returned * * Length to assume <s> is; not checked, so could have buffer overflow */ RETVAL = newAV(); sv_2mortal((SV*)RETVAL); ret = valid_utf8_to_uvchr((U8*) SvPV_nolen(s), &retlen); /* Returns the return value in [0]; <retlen> in [1] */ av_push(RETVAL, newSVuv(ret)); av_push(RETVAL, newSVuv(retlen)); #line 1899 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__utf8_test_uvchr_to_utf8_flags); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__utf8_test_uvchr_to_utf8_flags) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "uv, flags"); { SV * uv = ST(0) ; SV * flags = ST(1) ; #line 1516 "APItest.xs" U8 dest[UTF8_MAXBYTES + 1]; U8 *ret; #line 1926 "APItest.c" SV * RETVAL; #line 1520 "APItest.xs" /* Call uvchr_to_utf8_flags() with the inputs. */ ret = uvchr_to_utf8_flags(dest, SvUV(uv), SvUV(flags)); if (! ret) { XSRETURN_UNDEF; } RETVAL = newSVpvn((char *) dest, ret - dest); #line 1936 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__utf8_test_uvchr_to_utf8_flags_msgs); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__utf8_test_uvchr_to_utf8_flags_msgs) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "uv, flags"); { SV * uv = ST(0) ; SV * flags = ST(1) ; #line 1536 "APItest.xs" U8 dest[UTF8_MAXBYTES + 1]; U8 *ret; #line 1959 "APItest.c" AV * RETVAL; #line 1540 "APItest.xs" HV *msgs = NULL; RETVAL = newAV(); sv_2mortal((SV*)RETVAL); ret = uvchr_to_utf8_flags_msgs(dest, SvUV(uv), SvUV(flags), &msgs); if (ret) { av_push(RETVAL, newSVpvn((char *) dest, ret - dest)); } else { av_push(RETVAL, &PL_sv_undef); } if (msgs) { av_push(RETVAL, newRV_noinc((SV*)msgs)); } #line 1979 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Overload_amagic_deref_call); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Overload_amagic_deref_call) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "sv, what"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { SV * sv = ST(0) ; int what = (int)SvIV(ST(1)) ; #line 1567 "APItest.xs" /* The reference is owned by something else. */ PUSHs(amagic_deref_call(sv, what)); #line 2007 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__Overload_tryAMAGICunDEREF_var); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Overload_tryAMAGICunDEREF_var) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "sv, what"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { SV * sv = ST(0) ; int what = (int)SvIV(ST(1)) ; #line 1578 "APItest.xs" { SV **sp = &sv; switch(what) { case to_av_amg: tryAMAGICunDEREF(to_av); break; case to_cv_amg: tryAMAGICunDEREF(to_cv); break; case to_gv_amg: tryAMAGICunDEREF(to_gv); break; case to_hv_amg: tryAMAGICunDEREF(to_hv); break; case to_sv_amg: tryAMAGICunDEREF(to_sv); break; default: croak("Invalid value %d passed to tryAMAGICunDEREF_var", what); } } /* The reference is owned by something else. */ PUSHs(sv); #line 2052 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__XSUB_XS_VERSION_defined); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__XSUB_XS_VERSION_defined) { dVAR; dXSARGS; PERL_UNUSED_VAR(cv); /* -W */ PERL_UNUSED_VAR(items); /* -W */ PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 1613 "APItest.xs" XS_VERSION_BOOTCHECK; XSRETURN_EMPTY; #line 2071 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__XSUB_XS_APIVERSION_valid); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__XSUB_XS_APIVERSION_valid) { dVAR; dXSARGS; PERL_UNUSED_VAR(cv); /* -W */ PERL_UNUSED_VAR(items); /* -W */ PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 1619 "APItest.xs" XS_APIVERSION_BOOTCHECK; XSRETURN_EMPTY; #line 2090 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__XSUB_xsreturn); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__XSUB_xsreturn) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "len"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { int len = (int)SvIV(ST(0)) ; #line 1625 "APItest.xs" int i = 0; EXTEND( SP, len ); for ( ; i < len; i++ ) { ST(i) = sv_2mortal( newSViv(i) ); } XSRETURN( len ); #line 2115 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_iv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_iv) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 1635 "APItest.xs" XSRETURN_IV(I32_MIN + 1); #line 2133 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_uv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_uv) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 1640 "APItest.xs" XSRETURN_UV( (U32)((1U<<31) + 1) ); #line 2151 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_nv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_nv) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 1645 "APItest.xs" XSRETURN_NV(0.25); #line 2169 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_pv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_pv) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 1650 "APItest.xs" XSRETURN_PV("returned"); #line 2187 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_pvn); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_pvn) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 1655 "APItest.xs" XSRETURN_PVN("returned too much",8); #line 2205 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_no); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_no) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 1660 "APItest.xs" XSRETURN_NO; #line 2223 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_yes); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_yes) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 1665 "APItest.xs" XSRETURN_YES; #line 2241 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_undef); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_undef) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 1670 "APItest.xs" XSRETURN_UNDEF; #line 2259 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_empty); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__XSUB_xsreturn_empty) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 1675 "APItest.xs" XSRETURN_EMPTY; #line 2277 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__Hash_rot13_hash); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_rot13_hash) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "hash"); { HV * hash; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ hash = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::Hash::rot13_hash", "hash"); } } STMT_END ; #line 1683 "APItest.xs" { struct ufuncs uf; uf.uf_val = rot13_key; uf.uf_set = 0; uf.uf_index = 0; sv_magic((SV*)hash, NULL, PERL_MAGIC_uvar, (char*)&uf, sizeof(uf)); } #line 2315 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest__Hash_bitflip_hash); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_bitflip_hash) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "hash"); { HV * hash; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ hash = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::Hash::bitflip_hash", "hash"); } } STMT_END ; #line 1696 "APItest.xs" { struct ufuncs uf; uf.uf_val = bitflip_key; uf.uf_set = 0; uf.uf_index = 0; sv_magic((SV*)hash, NULL, PERL_MAGIC_uvar, (char*)&uf, sizeof(uf)); } #line 2352 "APItest.c" } XSRETURN_EMPTY; } #define UTF8KLEN(sv, len) (SvUTF8(sv) ? -(I32)len : (I32)len) XS_EUPXS(XS_XS__APItest__Hash_exists); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_exists) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "hash, key_sv"); { #line 1710 "APItest.xs" STRLEN len; const char *key; #line 2369 "APItest.c" HV * hash; SV * key_sv = ST(1) ; bool RETVAL; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ hash = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::Hash::exists", "hash"); } } STMT_END ; #line 1716 "APItest.xs" key = SvPV(key_sv, len); RETVAL = hv_exists(hash, key, UTF8KLEN(key_sv, len)); #line 2391 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Hash_exists_ent); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_exists_ent) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "hash, key_sv"); { #line 1724 "APItest.xs" #line 2406 "APItest.c" HV * hash; SV * key_sv = ST(1) ; bool RETVAL; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ hash = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::Hash::exists_ent", "hash"); } } STMT_END ; #line 1728 "APItest.xs" RETVAL = hv_exists_ent(hash, key_sv, 0); #line 2427 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Hash_delete); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_delete) { dVAR; dXSARGS; if (items < 2 || items > 3) croak_xs_usage(cv, "hash, key_sv, flags = 0"); { #line 1735 "APItest.xs" STRLEN len; const char *key; #line 2444 "APItest.c" HV * hash; SV * key_sv = ST(1) ; I32 flags; SV * RETVAL; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ hash = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::Hash::delete", "hash"); } } STMT_END ; if (items < 3) flags = 0; else { flags = (I32)SvIV(ST(2)) ; } #line 1742 "APItest.xs" key = SvPV(key_sv, len); /* It's already mortal, so need to increase reference count. */ RETVAL = SvREFCNT_inc(hv_delete(hash, key, UTF8KLEN(key_sv, len), flags)); #line 2476 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Hash_delete_ent); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_delete_ent) { dVAR; dXSARGS; if (items < 2 || items > 3) croak_xs_usage(cv, "hash, key_sv, flags = 0"); { HV * hash; SV * key_sv = ST(1) ; I32 flags; SV * RETVAL; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ hash = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::Hash::delete_ent", "hash"); } } STMT_END ; if (items < 3) flags = 0; else { flags = (I32)SvIV(ST(2)) ; } #line 1756 "APItest.xs" /* It's already mortal, so need to increase reference count. */ RETVAL = SvREFCNT_inc(hv_delete_ent(hash, key_sv, flags, 0)); #line 2520 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Hash_store_ent); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_store_ent) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "hash, key, value"); { #line 1764 "APItest.xs" SV *copy; HE *result; #line 2538 "APItest.c" HV * hash; SV * key = ST(1) ; SV * value = ST(2) ; SV * RETVAL; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ hash = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::Hash::store_ent", "hash"); } } STMT_END ; #line 1771 "APItest.xs" copy = newSV(0); result = hv_store_ent(hash, key, copy, 0); SvSetMagicSV(copy, value); if (!result) { SvREFCNT_dec(copy); XSRETURN_EMPTY; } /* It's about to become mortal, so need to increase reference count. */ RETVAL = SvREFCNT_inc(HeVAL(result)); #line 2570 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Hash_store); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_store) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "hash, key_sv, value"); { #line 1787 "APItest.xs" STRLEN len; const char *key; SV *copy; SV **result; #line 2590 "APItest.c" HV * hash; SV * key_sv = ST(1) ; SV * value = ST(2) ; SV * RETVAL; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ hash = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::Hash::store", "hash"); } } STMT_END ; #line 1796 "APItest.xs" key = SvPV(key_sv, len); copy = newSV(0); result = hv_store(hash, key, UTF8KLEN(key_sv, len), copy, 0); SvSetMagicSV(copy, value); if (!result) { SvREFCNT_dec(copy); XSRETURN_EMPTY; } /* It's about to become mortal, so need to increase reference count. */ RETVAL = SvREFCNT_inc(*result); #line 2623 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Hash_fetch_ent); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_fetch_ent) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "hash, key_sv"); { #line 1813 "APItest.xs" HE *result; #line 2640 "APItest.c" HV * hash; SV * key_sv = ST(1) ; SV * RETVAL; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ hash = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::Hash::fetch_ent", "hash"); } } STMT_END ; #line 1818 "APItest.xs" result = hv_fetch_ent(hash, key_sv, 0, 0); if (!result) { XSRETURN_EMPTY; } /* Force mg_get */ RETVAL = newSVsv(HeVAL(result)); #line 2666 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Hash_fetch); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_fetch) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "hash, key_sv"); { #line 1830 "APItest.xs" STRLEN len; const char *key; SV **result; #line 2685 "APItest.c" HV * hash; SV * key_sv = ST(1) ; SV * RETVAL; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ hash = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::Hash::fetch", "hash"); } } STMT_END ; #line 1837 "APItest.xs" key = SvPV(key_sv, len); result = hv_fetch(hash, key, UTF8KLEN(key_sv, len), 0); if (!result) { XSRETURN_EMPTY; } /* Force mg_get */ RETVAL = newSVsv(*result); #line 2712 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } #if defined (hv_common) #define XSubPPtmpAAAA 1 XS_EUPXS(XS_XS__APItest__Hash_common); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_common) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "params"); { HV * params; #line 1854 "APItest.xs" HE *result; HV *hv = NULL; SV *keysv = NULL; const char *key = NULL; STRLEN klen = 0; int flags = 0; int action = 0; SV *val = NULL; U32 hash = 0; SV **svp; #line 2742 "APItest.c" SV * RETVAL; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ params = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::Hash::common", "params"); } } STMT_END ; #line 1865 "APItest.xs" if ((svp = hv_fetchs(params, "hv", 0))) { SV *const rv = *svp; if (!SvROK(rv)) croak("common passed a non-reference for parameter hv"); hv = (HV *)SvRV(rv); } if ((svp = hv_fetchs(params, "keysv", 0))) keysv = *svp; if ((svp = hv_fetchs(params, "keypv", 0))) { key = SvPV_const(*svp, klen); if (SvUTF8(*svp)) flags = HVhek_UTF8; } if ((svp = hv_fetchs(params, "action", 0))) action = SvIV(*svp); if ((svp = hv_fetchs(params, "val", 0))) val = newSVsv(*svp); if ((svp = hv_fetchs(params, "hash", 0))) hash = SvUV(*svp); if (hv_fetchs(params, "hash_pv", 0)) { assert(key); PERL_HASH(hash, key, klen); } if (hv_fetchs(params, "hash_sv", 0)) { assert(keysv); { STRLEN len; const char *const p = SvPV(keysv, len); PERL_HASH(hash, p, len); } } result = (HE *)hv_common(hv, keysv, key, klen, flags, action, val, hash); if (!result) { XSRETURN_EMPTY; } /* Force mg_get */ RETVAL = newSVsv(HeVAL(result)); #line 2798 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } #endif XS_EUPXS(XS_XS__APItest__Hash_test_hv_free_ent); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_test_hv_free_ent) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 1912 "APItest.xs" test_freeent(&Perl_hv_free_ent); XSRETURN(4); #line 2819 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__Hash_test_hv_delayfree_ent); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_test_hv_delayfree_ent) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 1918 "APItest.xs" test_freeent(&Perl_hv_delayfree_ent); XSRETURN(4); #line 2838 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__Hash_test_share_unshare_pvn); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_test_share_unshare_pvn) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "input"); { #line 1924 "APItest.xs" STRLEN len; U32 hash; char *pvx; char *p; #line 2857 "APItest.c" SV * input = ST(0) ; SV * RETVAL; #line 1931 "APItest.xs" pvx = SvPV(input, len); PERL_HASH(hash, pvx, len); p = sharepvn(pvx, len, hash); RETVAL = newSVpvn(p, len); unsharepvn(p, len, hash); #line 2867 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } #if PERL_VERSION >= 9 #define XSubPPtmpAAAB 1 XS_EUPXS(XS_XS__APItest__Hash_refcounted_he_exists); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_refcounted_he_exists) { dVAR; dXSARGS; if (items < 1 || items > 2) croak_xs_usage(cv, "key, level=0"); { SV * key = ST(0) ; IV level; bool RETVAL; if (items < 2) level = 0; else { level = (IV)SvIV(ST(1)) ; } #line 1946 "APItest.xs" if (level) { croak("level must be zero, not %" IVdf, level); } RETVAL = (cop_hints_fetch_sv(PL_curcop, key, 0, 0) != &PL_sv_placeholder); #line 2901 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Hash_refcounted_he_fetch); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_refcounted_he_fetch) { dVAR; dXSARGS; if (items < 1 || items > 2) croak_xs_usage(cv, "key, level=0"); { SV * key = ST(0) ; IV level; SV * RETVAL; if (items < 2) level = 0; else { level = (IV)SvIV(ST(1)) ; } #line 1958 "APItest.xs" if (level) { croak("level must be zero, not %" IVdf, level); } RETVAL = cop_hints_fetch_sv(PL_curcop, key, 0, 0); SvREFCNT_inc(RETVAL); #line 2932 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } #endif XS_EUPXS(XS_XS__APItest__Hash_test_force_keys); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Hash_test_force_keys) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "hv"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 1971 "APItest.xs" HE *he; SSize_t count = 0; #line 2953 "APItest.c" HV * hv; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ hv = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::Hash::test_force_keys", "hv"); } } STMT_END ; #line 1974 "APItest.xs" hv_iterinit(hv); he = hv_iternext(hv); while (he) { SV *sv = HeSVKEY_force(he); ++count; EXTEND(SP, count); PUSHs(sv_mortalcopy(sv)); he = hv_iternext(hv); } #line 2979 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__TempLv_make_temp_mg_lv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__TempLv_make_temp_mg_lv) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { SV* sv = ST(0) ; #line 2003 "APItest.xs" SV * const lv = newSV_type(SVt_PVLV); STRLEN len; #line 3000 "APItest.c" #line 2006 "APItest.xs" SvPV(sv, len); sv_magic(lv, NULL, PERL_MAGIC_substr, NULL, 0); LvTYPE(lv) = 'x'; LvTARG(lv) = SvREFCNT_inc_simple(sv); LvTARGOFF(lv) = len == 0 ? 0 : 1; LvTARGLEN(lv) = len < 2 ? 0 : len-2; EXTEND(SP, 1); ST(0) = sv_2mortal(lv); XSRETURN(1); #line 3013 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__PtrTable_new); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__PtrTable_new) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "classname"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { const char * classname = (const char *)SvPV_nolen(ST(0)) ; #line 2025 "APItest.xs" PUSHs(sv_setref_pv(sv_newmortal(), classname, (void*)ptr_table_new())); #line 3033 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest__PtrTable_DESTROY); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__PtrTable_DESTROY) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "table"); { XS__APItest__PtrTable table; if (SvROK(ST(0))) { IV tmp = SvIV((SV*)SvRV(ST(0))); table = INT2PTR(XS__APItest__PtrTable,tmp); } else Perl_croak_nocontext("%s: %s is not a reference", "XS::APItest::PtrTable::DESTROY", "table") ; #line 2031 "APItest.xs" ptr_table_free(table); #line 3060 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest__PtrTable_store); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__PtrTable_store) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "table, from, to"); { XS__APItest__PtrTable table; SVREF from; SVREF to; if (SvROK(ST(0)) && sv_derived_from(ST(0), "XS::APItest::PtrTable")) { IV tmp = SvIV((SV*)SvRV(ST(0))); table = INT2PTR(XS__APItest__PtrTable,tmp); } else Perl_croak_nocontext("%s: %s is not of type %s", "XS::APItest::PtrTable::store", "table", "XS::APItest::PtrTable") ; STMT_START { SV* const xsub_tmp_sv = ST(1); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv)){ from = SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a reference", "XS::APItest::PtrTable::store", "from"); } } STMT_END ; STMT_START { SV* const xsub_tmp_sv = ST(2); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv)){ to = SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a reference", "XS::APItest::PtrTable::store", "to"); } } STMT_END ; #line 2039 "APItest.xs" ptr_table_store(table, from, to); #line 3116 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest__PtrTable_fetch); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__PtrTable_fetch) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "table, from"); { XS__APItest__PtrTable table; SVREF from; UV RETVAL; dXSTARG; if (SvROK(ST(0)) && sv_derived_from(ST(0), "XS::APItest::PtrTable")) { IV tmp = SvIV((SV*)SvRV(ST(0))); table = INT2PTR(XS__APItest__PtrTable,tmp); } else Perl_croak_nocontext("%s: %s is not of type %s", "XS::APItest::PtrTable::fetch", "table", "XS::APItest::PtrTable") ; STMT_START { SV* const xsub_tmp_sv = ST(1); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv)){ from = SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a reference", "XS::APItest::PtrTable::fetch", "from"); } } STMT_END ; #line 2046 "APItest.xs" RETVAL = PTR2UV(ptr_table_fetch(table, from)); #line 3159 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__PtrTable_split); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__PtrTable_split) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "table"); { XS__APItest__PtrTable table; if (SvROK(ST(0)) && sv_derived_from(ST(0), "XS::APItest::PtrTable")) { IV tmp = SvIV((SV*)SvRV(ST(0))); table = INT2PTR(XS__APItest__PtrTable,tmp); } else Perl_croak_nocontext("%s: %s is not of type %s", "XS::APItest::PtrTable::split", "table", "XS::APItest::PtrTable") ; ptr_table_split(table); } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest__PtrTable_clear); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__PtrTable_clear) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "table"); { XS__APItest__PtrTable table; if (SvROK(ST(0)) && sv_derived_from(ST(0), "XS::APItest::PtrTable")) { IV tmp = SvIV((SV*)SvRV(ST(0))); table = INT2PTR(XS__APItest__PtrTable,tmp); } else Perl_croak_nocontext("%s: %s is not of type %s", "XS::APItest::PtrTable::clear", "table", "XS::APItest::PtrTable") ; ptr_table_clear(table); } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest__AutoLoader_AUTOLOAD); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__AutoLoader_AUTOLOAD) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { SV * RETVAL; #line 2063 "APItest.xs" RETVAL = newSVpvn_flags(SvPVX(cv), SvCUR(cv), SvUTF8(cv)); #line 3226 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__AutoLoader_AUTOLOADp); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__AutoLoader_AUTOLOADp) { dVAR; dXSARGS; PERL_UNUSED_VAR(cv); /* -W */ PERL_UNUSED_VAR(items); /* -W */ { SV * RETVAL; #line 2071 "APItest.xs" PERL_UNUSED_ARG(items); RETVAL = newSVpvn_flags(SvPVX(cv), SvCUR(cv), SvUTF8(cv)); #line 3245 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_xop_custom_ops); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_xop_custom_ops) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { HV * RETVAL; #line 2092 "APItest.xs" RETVAL = PL_custom_ops; #line 3263 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_xop_custom_op_names); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_xop_custom_op_names) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { HV * RETVAL; #line 2099 "APItest.xs" PL_custom_op_names = newHV(); RETVAL = PL_custom_op_names; #line 3286 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_xop_custom_op_descs); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_xop_custom_op_descs) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { HV * RETVAL; #line 2107 "APItest.xs" PL_custom_op_descs = newHV(); RETVAL = PL_custom_op_descs; #line 3309 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_xop_register); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_xop_register) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 2115 "APItest.xs" XopENTRY_set(&my_xop, xop_name, "my_xop"); XopENTRY_set(&my_xop, xop_desc, "XOP for testing"); XopENTRY_set(&my_xop, xop_class, OA_UNOP); XopENTRY_set(&my_xop, xop_peep, peep_xop); Perl_custom_op_register(aTHX_ pp_xop, &my_xop); #line 3334 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_xop_clear); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_xop_clear) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 2124 "APItest.xs" XopDISABLE(&my_xop, xop_name); XopDISABLE(&my_xop, xop_desc); XopDISABLE(&my_xop, xop_class); XopDISABLE(&my_xop, xop_peep); #line 3352 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_xop_my_xop); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_xop_my_xop) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { IV RETVAL; dXSTARG; #line 2132 "APItest.xs" RETVAL = PTR2IV(&my_xop); #line 3369 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_xop_ppaddr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_xop_ppaddr) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { IV RETVAL; dXSTARG; #line 2139 "APItest.xs" RETVAL = PTR2IV(pp_xop); #line 3387 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_xop_OA_UNOP); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_xop_OA_UNOP) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { IV RETVAL; dXSTARG; #line 2146 "APItest.xs" RETVAL = OA_UNOP; #line 3405 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_xop_build_optree); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_xop_build_optree) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { AV * RETVAL; #line 2153 "APItest.xs" dMY_CXT; UNOP *unop; OP *kid; MY_CXT.xop_record = newAV(); kid = newSVOP(OP_CONST, 0, newSViv(42)); unop = (UNOP*)mkUNOP(OP_CUSTOM, kid); unop->op_ppaddr = pp_xop; unop->op_private = 0; unop->op_next = NULL; kid->op_next = (OP*)unop; av_push(MY_CXT.xop_record, newSVpvf("unop:%" UVxf, PTR2UV(unop))); av_push(MY_CXT.xop_record, newSVpvf("kid:%" UVxf, PTR2UV(kid))); av_push(MY_CXT.xop_record, newSVpvf("NAME:%s", OP_NAME((OP*)unop))); av_push(MY_CXT.xop_record, newSVpvf("DESC:%s", OP_DESC((OP*)unop))); av_push(MY_CXT.xop_record, newSVpvf("CLASS:%d", (int)OP_CLASS((OP*)unop))); PL_rpeepp(aTHX_ kid); FreeOp(kid); FreeOp(unop); RETVAL = MY_CXT.xop_record; MY_CXT.xop_record = NULL; #line 3449 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_xop_from_custom_op); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_xop_from_custom_op) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { IV RETVAL; dXSTARG; #line 2187 "APItest.xs" /* author note: this test doesn't imply Perl_custom_op_xop is or isn't public API or that Perl_custom_op_xop is known to be used outside the core */ UNOP *unop; XOP *xop; unop = (UNOP*)mkUNOP(OP_CUSTOM, NULL); unop->op_ppaddr = pp_xop; unop->op_private = 0; unop->op_next = NULL; xop = Perl_custom_op_xop(aTHX_ (OP *)unop); FreeOp(unop); RETVAL = PTR2IV(xop); #line 3484 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_CLONE); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_CLONE) { dVAR; dXSARGS; PERL_UNUSED_VAR(cv); /* -W */ PERL_UNUSED_VAR(items); /* -W */ { #line 2239 "APItest.xs" MY_CXT_CLONE; PERL_UNUSED_VAR(items); MY_CXT.sv = newSVpv("initial_clone",0); MY_CXT.cscgv = gv_fetchpvs("XS::APItest::COMPILE_SCOPE_CONTAINER", GV_ADDMULTI, SVt_PVAV); MY_CXT.cscav = NULL; MY_CXT.bhkav = get_av("XS::APItest::bhkav", GV_ADDMULTI); MY_CXT.bhk_record = 0; MY_CXT.peep_recorder = newAV(); MY_CXT.rpeep_recorder = newAV(); #line 3509 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_print_double); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_print_double) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "val"); { double val = (double)SvNV(ST(0)) ; #line 2254 "APItest.xs" printf("%5.3f\n",val); #line 3526 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_have_long_double); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_have_long_double) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { int RETVAL; dXSTARG; #line 2259 "APItest.xs" #ifdef HAS_LONG_DOUBLE RETVAL = 1; #else RETVAL = 0; #endif #line 3547 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_print_long_double); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_print_long_double) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 2270 "APItest.xs" #ifdef HAS_LONG_DOUBLE # if defined(PERL_PRIfldbl) && (LONG_DOUBLESIZE > DOUBLESIZE) long double val = 7.0; printf("%5.3" PERL_PRIfldbl "\n",val); # else double val = 7.0; printf("%5.3f\n",val); # endif #endif #line 3571 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_print_int); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_print_int) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "val"); { int val = (int)SvIV(ST(0)) ; #line 2284 "APItest.xs" printf("%d\n",val); #line 3588 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_print_long); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_print_long) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "val"); { long val = (long)SvIV(ST(0)) ; #line 2290 "APItest.xs" printf("%ld\n",val); #line 3605 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_print_float); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_print_float) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "val"); { float val = (float)SvNV(ST(0)) ; #line 2296 "APItest.xs" printf("%5.3f\n",val); #line 3622 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_print_flush); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_print_flush) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 2301 "APItest.xs" fflush(stdout); #line 3637 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_mpushp); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_mpushp) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 2306 "APItest.xs" EXTEND(SP, 3); mPUSHp("one", 3); mPUSHp("two", 3); mPUSHp("three", 5); XSRETURN(3); #line 3658 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_mpushn); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_mpushn) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 2315 "APItest.xs" EXTEND(SP, 3); mPUSHn(0.5); mPUSHn(-0.25); mPUSHn(0.125); XSRETURN(3); #line 3680 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_mpushi); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_mpushi) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 2324 "APItest.xs" EXTEND(SP, 3); mPUSHi(-1); mPUSHi(2); mPUSHi(-3); XSRETURN(3); #line 3702 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_mpushu); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_mpushu) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 2333 "APItest.xs" EXTEND(SP, 3); mPUSHu(1); mPUSHu(2); mPUSHu(3); XSRETURN(3); #line 3724 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_mxpushp); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_mxpushp) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 2342 "APItest.xs" mXPUSHp("one", 3); mXPUSHp("two", 3); mXPUSHp("three", 5); XSRETURN(3); #line 3745 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_mxpushn); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_mxpushn) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 2350 "APItest.xs" mXPUSHn(0.5); mXPUSHn(-0.25); mXPUSHn(0.125); XSRETURN(3); #line 3766 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_mxpushi); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_mxpushi) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 2358 "APItest.xs" mXPUSHi(-1); mXPUSHi(2); mXPUSHi(-3); XSRETURN(3); #line 3787 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_mxpushu); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_mxpushu) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 2366 "APItest.xs" mXPUSHu(1); mXPUSHu(2); mXPUSHu(3); XSRETURN(3); #line 3808 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_test_EXTEND); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_test_EXTEND) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "max_offset, nsv, use_ss"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { IV max_offset = (IV)SvIV(ST(0)) ; SV * nsv = ST(1) ; bool use_ss = (bool)SvTRUE(ST(2)) ; #line 2389 "APItest.xs" SV **sp = PL_stack_max + max_offset; #line 3832 "APItest.c" #line 2391 "APItest.xs" if (use_ss) { SSize_t n = (SSize_t)SvIV(nsv); EXTEND(sp, n); *(sp + n) = NULL; } else { IV n = SvIV(nsv); EXTEND(sp, n); *(sp + n) = NULL; } *PL_stack_max = NULL; #line 3845 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_call_sv_C); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_call_sv_C) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 2407 "APItest.xs" CV * i_sub; GV * i_gv; I32 retcnt; SV * errsv; char * errstr; STRLEN errlen; SV * miscsv = sv_newmortal(); HV * hv = (HV*)sv_2mortal((SV*)newHV()); #line 3868 "APItest.c" #line 2416 "APItest.xs" i_sub = get_cv("i", 0); PUSHMARK(SP); /* PUTBACK not needed since this sub was called with 0 args, and is calling 0 args, so global SP doesn't need to be moved before a call_* */ retcnt = call_sv((SV*)i_sub, 0); /* try a CV* */ SPAGAIN; SP -= retcnt; /* dont care about return count, wipe everything off */ sv_setpvs(miscsv, "i"); PUSHMARK(SP); retcnt = call_sv(miscsv, 0); /* try a PV */ SPAGAIN; SP -= retcnt; /* no add and SVt_NULL are intentional, sub i should be defined already */ i_gv = gv_fetchpvn_flags("i", sizeof("i")-1, 0, SVt_NULL); PUSHMARK(SP); retcnt = call_sv((SV*)i_gv, 0); /* try a GV* */ SPAGAIN; SP -= retcnt; /* the tests below are not declaring this being public API behavior, only current internal behavior, these tests can be changed in the future if necessery */ PUSHMARK(SP); retcnt = call_sv(&PL_sv_yes, G_EVAL); SPAGAIN; SP -= retcnt; errsv = ERRSV; errstr = SvPV(errsv, errlen); if(memBEGINs(errstr, errlen, "Undefined subroutine &main::1 called at")) { PUSHMARK(SP); retcnt = call_sv((SV*)i_sub, 0); /* call again to increase counter */ SPAGAIN; SP -= retcnt; } PUSHMARK(SP); retcnt = call_sv(&PL_sv_no, G_EVAL); SPAGAIN; SP -= retcnt; errsv = ERRSV; errstr = SvPV(errsv, errlen); if(memBEGINs(errstr, errlen, "Undefined subroutine &main:: called at")) { PUSHMARK(SP); retcnt = call_sv((SV*)i_sub, 0); /* call again to increase counter */ SPAGAIN; SP -= retcnt; } PUSHMARK(SP); retcnt = call_sv(&PL_sv_undef, G_EVAL); SPAGAIN; SP -= retcnt; errsv = ERRSV; errstr = SvPV(errsv, errlen); if(memBEGINs(errstr, errlen, "Can't use an undefined value as a subroutine reference at")) { PUSHMARK(SP); retcnt = call_sv((SV*)i_sub, 0); /* call again to increase counter */ SPAGAIN; SP -= retcnt; } PUSHMARK(SP); retcnt = call_sv((SV*)hv, G_EVAL); SPAGAIN; SP -= retcnt; errsv = ERRSV; errstr = SvPV(errsv, errlen); if(memBEGINs(errstr, errlen, "Not a CODE reference at")) { PUSHMARK(SP); retcnt = call_sv((SV*)i_sub, 0); /* call again to increase counter */ SPAGAIN; SP -= retcnt; } #line 3939 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_call_sv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_call_sv) { dVAR; dXSARGS; if (items < 2) croak_xs_usage(cv, "sv, flags, ..."); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { SV* sv = ST(0) ; I32 flags = (I32)SvIV(ST(1)) ; #line 2491 "APItest.xs" I32 i; #line 3960 "APItest.c" #line 2493 "APItest.xs" for (i=0; i<items-2; i++) ST(i) = ST(i+2); /* pop first two args */ PUSHMARK(SP); SP += items - 2; PUTBACK; i = call_sv(sv, flags); SPAGAIN; EXTEND(SP, 1); PUSHs(sv_2mortal(newSViv(i))); #line 3971 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_call_pv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_call_pv) { dVAR; dXSARGS; if (items < 2) croak_xs_usage(cv, "subname, flags, ..."); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { char* subname = (char *)SvPV_nolen(ST(0)) ; I32 flags = (I32)SvIV(ST(1)) ; #line 2508 "APItest.xs" I32 i; #line 3993 "APItest.c" #line 2510 "APItest.xs" for (i=0; i<items-2; i++) ST(i) = ST(i+2); /* pop first two args */ PUSHMARK(SP); SP += items - 2; PUTBACK; i = call_pv(subname, flags); SPAGAIN; EXTEND(SP, 1); PUSHs(sv_2mortal(newSViv(i))); #line 4004 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_call_argv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_call_argv) { dVAR; dXSARGS; if (items < 2) croak_xs_usage(cv, "subname, flags, ..."); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { char* subname = (char *)SvPV_nolen(ST(0)) ; I32 flags = (I32)SvIV(ST(1)) ; #line 2525 "APItest.xs" I32 i; char *tmpary[4]; #line 4027 "APItest.c" #line 2528 "APItest.xs" for (i=0; i<items-2; i++) tmpary[i] = SvPV_nolen(ST(i+2)); /* ignore first two args */ tmpary[i] = NULL; PUTBACK; i = call_argv(subname, flags, tmpary); SPAGAIN; EXTEND(SP, 1); PUSHs(sv_2mortal(newSViv(i))); #line 4037 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_call_method); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_call_method) { dVAR; dXSARGS; if (items < 2) croak_xs_usage(cv, "methname, flags, ..."); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { char* methname = (char *)SvPV_nolen(ST(0)) ; I32 flags = (I32)SvIV(ST(1)) ; #line 2542 "APItest.xs" I32 i; #line 4059 "APItest.c" #line 2544 "APItest.xs" for (i=0; i<items-2; i++) ST(i) = ST(i+2); /* pop first two args */ PUSHMARK(SP); SP += items - 2; PUTBACK; i = call_method(methname, flags); SPAGAIN; EXTEND(SP, 1); PUSHs(sv_2mortal(newSViv(i))); #line 4070 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_newCONSTSUB); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_newCONSTSUB) { dVAR; dXSARGS; dXSI32; if (items != 4) croak_xs_usage(cv, "stash, name, flags, sv"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { HV* stash; SV* name = ST(1) ; I32 flags = (I32)SvIV(ST(2)) ; SV* sv = ST(3) ; #line 2563 "APItest.xs" CV* mycv = NULL; STRLEN len; const char *pv = SvPV(name, len); #line 4098 "APItest.c" STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ stash = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", GvNAME(CvGV(cv)), "stash"); } } STMT_END ; #line 2567 "APItest.xs" switch (ix) { case 0: mycv = newCONSTSUB(stash, pv, SvOK(sv) ? SvREFCNT_inc(sv) : NULL); break; case 1: mycv = newCONSTSUB_flags( stash, pv, len, flags | SvUTF8(name), SvOK(sv) ? SvREFCNT_inc(sv) : NULL ); break; } EXTEND(SP, 2); assert(mycv); PUSHs( CvCONST(mycv) ? &PL_sv_yes : &PL_sv_no ); PUSHs((SV*)CvGV(mycv)); #line 4128 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_gv_init_type); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_gv_init_type) { dVAR; dXSARGS; if (items != 4) croak_xs_usage(cv, "namesv, multi, flags, type"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { SV* namesv = ST(0) ; int multi = (int)SvIV(ST(1)) ; I32 flags = (I32)SvIV(ST(2)) ; int type = (int)SvIV(ST(3)) ; #line 2589 "APItest.xs" STRLEN len; const char * const name = SvPV_const(namesv, len); GV *gv = *(GV**)hv_fetch(PL_defstash, name, len, TRUE); #line 4156 "APItest.c" #line 2593 "APItest.xs" if (SvTYPE(gv) == SVt_PVGV) Perl_croak(aTHX_ "GV is already a PVGV"); if (multi) flags |= GV_ADDMULTI; switch (type) { case 0: gv_init(gv, PL_defstash, name, len, multi); break; case 1: gv_init_sv(gv, PL_defstash, namesv, flags); break; case 2: gv_init_pv(gv, PL_defstash, name, flags | SvUTF8(namesv)); break; case 3: gv_init_pvn(gv, PL_defstash, name, len, flags | SvUTF8(namesv)); break; } XPUSHs( gv ? (SV*)gv : &PL_sv_undef); #line 4176 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_gv_fetchmeth_type); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_gv_fetchmeth_type) { dVAR; dXSARGS; if (items != 5) croak_xs_usage(cv, "stash, methname, type, level, flags"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { HV* stash; SV* methname = ST(1) ; int type = (int)SvIV(ST(2)) ; I32 level = (I32)SvIV(ST(3)) ; I32 flags = (I32)SvIV(ST(4)) ; #line 2620 "APItest.xs" STRLEN len; const char * const name = SvPV_const(methname, len); GV* gv = NULL; #line 4205 "APItest.c" STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ stash = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::gv_fetchmeth_type", "stash"); } } STMT_END ; #line 2624 "APItest.xs" switch (type) { case 0: gv = gv_fetchmeth(stash, name, len, level); break; case 1: gv = gv_fetchmeth_sv(stash, methname, level, flags); break; case 2: gv = gv_fetchmeth_pv(stash, name, level, flags | SvUTF8(methname)); break; case 3: gv = gv_fetchmeth_pvn(stash, name, len, level, flags | SvUTF8(methname)); break; } XPUSHs( gv ? MUTABLE_SV(gv) : &PL_sv_undef ); #line 4236 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_gv_fetchmeth_autoload_type); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_gv_fetchmeth_autoload_type) { dVAR; dXSARGS; if (items != 5) croak_xs_usage(cv, "stash, methname, type, level, flags"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { HV* stash; SV* methname = ST(1) ; int type = (int)SvIV(ST(2)) ; I32 level = (I32)SvIV(ST(3)) ; I32 flags = (I32)SvIV(ST(4)) ; #line 2648 "APItest.xs" STRLEN len; const char * const name = SvPV_const(methname, len); GV* gv = NULL; #line 4265 "APItest.c" STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ stash = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::gv_fetchmeth_autoload_type", "stash"); } } STMT_END ; #line 2652 "APItest.xs" switch (type) { case 0: gv = gv_fetchmeth_autoload(stash, name, len, level); break; case 1: gv = gv_fetchmeth_sv_autoload(stash, methname, level, flags); break; case 2: gv = gv_fetchmeth_pv_autoload(stash, name, level, flags | SvUTF8(methname)); break; case 3: gv = gv_fetchmeth_pvn_autoload(stash, name, len, level, flags | SvUTF8(methname)); break; } XPUSHs( gv ? MUTABLE_SV(gv) : &PL_sv_undef ); #line 4296 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_gv_fetchmethod_flags_type); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_gv_fetchmethod_flags_type) { dVAR; dXSARGS; if (items != 4) croak_xs_usage(cv, "stash, methname, type, flags"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { HV* stash; SV* methname = ST(1) ; int type = (int)SvIV(ST(2)) ; I32 flags = (I32)SvIV(ST(3)) ; #line 2675 "APItest.xs" GV* gv = NULL; #line 4321 "APItest.c" STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ stash = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::gv_fetchmethod_flags_type", "stash"); } } STMT_END ; #line 2677 "APItest.xs" switch (type) { case 0: gv = gv_fetchmethod_flags(stash, SvPVX_const(methname), flags); break; case 1: gv = gv_fetchmethod_sv_flags(stash, methname, flags); break; case 2: gv = gv_fetchmethod_pv_flags(stash, SvPV_nolen(methname), flags | SvUTF8(methname)); break; case 3: { STRLEN len; const char * const name = SvPV_const(methname, len); gv = gv_fetchmethod_pvn_flags(stash, name, len, flags | SvUTF8(methname)); break; } case 4: gv = gv_fetchmethod_pvn_flags(stash, SvPV_nolen(methname), flags, SvUTF8(methname)); } XPUSHs( gv ? (SV*)gv : &PL_sv_undef); #line 4358 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_gv_autoload_type); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_gv_autoload_type) { dVAR; dXSARGS; if (items != 4) croak_xs_usage(cv, "stash, methname, type, method"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { HV* stash; SV* methname = ST(1) ; int type = (int)SvIV(ST(2)) ; I32 method = (I32)SvIV(ST(3)) ; #line 2706 "APItest.xs" STRLEN len; const char * const name = SvPV_const(methname, len); GV* gv = NULL; I32 flags = method ? GV_AUTOLOAD_ISMETHOD : 0; #line 4386 "APItest.c" STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ stash = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::gv_autoload_type", "stash"); } } STMT_END ; #line 2711 "APItest.xs" switch (type) { case 0: gv = gv_autoload4(stash, name, len, method); break; case 1: gv = gv_autoload_sv(stash, methname, flags); break; case 2: gv = gv_autoload_pv(stash, name, flags | SvUTF8(methname)); break; case 3: gv = gv_autoload_pvn(stash, name, len, flags | SvUTF8(methname)); break; } XPUSHs( gv ? (SV*)gv : &PL_sv_undef); #line 4417 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_gv_const_sv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_gv_const_sv) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "name"); { #line 2730 "APItest.xs" GV *gv; #line 4433 "APItest.c" SV * RETVAL; SV * name = ST(0) ; #line 2732 "APItest.xs" if (SvPOK(name)) { HV *stash = gv_stashpv("main",0); HE *he = hv_fetch_ent(stash, name, 0, 0); gv = (GV *)HeVAL(he); } else { gv = (GV *)name; } RETVAL = gv_const_sv(gv); if (!RETVAL) XSRETURN_EMPTY; RETVAL = newSVsv(RETVAL); #line 4450 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_whichsig_type); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_whichsig_type) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "namesv, type"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { SV* namesv = ST(0) ; int type = (int)SvIV(ST(1)) ; #line 2752 "APItest.xs" STRLEN len; const char * const name = SvPV_const(namesv, len); I32 i = 0; #line 4475 "APItest.c" #line 2756 "APItest.xs" switch (type) { case 0: i = whichsig(name); break; case 1: i = whichsig_sv(namesv); break; case 2: i = whichsig_pv(name); break; case 3: i = whichsig_pvn(name, len); break; } XPUSHs(sv_2mortal(newSViv(i))); #line 4492 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_eval_sv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_eval_sv) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "sv, flags"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { SV* sv = ST(0) ; I32 flags = (I32)SvIV(ST(1)) ; #line 2777 "APItest.xs" I32 i; #line 4514 "APItest.c" #line 2779 "APItest.xs" PUTBACK; i = eval_sv(sv, flags); SPAGAIN; EXTEND(SP, 1); PUSHs(sv_2mortal(newSViv(i))); #line 4521 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_eval_pv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_eval_pv) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, croak_on_error"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { const char* p = (const char *)SvPV_nolen(ST(0)) ; I32 croak_on_error = (I32)SvIV(ST(1)) ; #line 2790 "APItest.xs" PUTBACK; EXTEND(SP, 1); PUSHs(eval_pv(p, croak_on_error)); #line 4545 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_require_pv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_require_pv) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "pv"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { const char* pv = (const char *)SvPV_nolen(ST(0)) ; #line 2798 "APItest.xs" PUTBACK; require_pv(pv); #line 4566 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_apitest_exception); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_apitest_exception) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "throw_e"); { int throw_e = (int)SvIV(ST(0)) ; int RETVAL; dXSTARG; RETVAL = apitest_exception(throw_e); XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_mycroak); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_mycroak) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); { SV* sv = ST(0) ; #line 2811 "APItest.xs" if (SvOK(sv)) { Perl_croak(aTHX_ "%s", SvPV_nolen(sv)); } else { Perl_croak(aTHX_ NULL); } #line 4608 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_strtab); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_strtab) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { SV * RETVAL; #line 2821 "APItest.xs" RETVAL = newRV_inc((SV*)PL_strtab); #line 4624 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_my_cxt_getint); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_my_cxt_getint) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { int RETVAL; dXSTARG; #line 2828 "APItest.xs" dMY_CXT; RETVAL = my_cxt_getint_p(aMY_CXT); #line 4644 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_my_cxt_setint); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_my_cxt_setint) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "i"); { int i = (int)SvIV(ST(0)) ; #line 2837 "APItest.xs" dMY_CXT; my_cxt_setint_p(aMY_CXT_ i); #line 4663 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_my_cxt_getsv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_my_cxt_getsv) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "how"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { bool how = (bool)SvTRUE(ST(0)) ; #line 2844 "APItest.xs" EXTEND(SP, 1); ST(0) = how ? my_cxt_getsv_interp_context() : my_cxt_getsv_interp(); XSRETURN(1); #line 4684 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_my_cxt_setsv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_my_cxt_setsv) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); { SV * sv = ST(0) ; #line 2852 "APItest.xs" dMY_CXT; SvREFCNT_dec(MY_CXT.sv); my_cxt_setsv_p(sv _aMY_CXT); SvREFCNT_inc(sv); #line 4705 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_sv_setsv_cow_hashkey_core); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_sv_setsv_cow_hashkey_core) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { bool RETVAL; RETVAL = sv_setsv_cow_hashkey_core(); ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_sv_setsv_cow_hashkey_notcore); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_sv_setsv_cow_hashkey_notcore) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { bool RETVAL; RETVAL = sv_setsv_cow_hashkey_notcore(); ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_sv_set_deref); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_sv_set_deref) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "sv, sv2, which"); { SV * sv = ST(0) ; SV * sv2 = ST(1) ; int which = (int)SvIV(ST(2)) ; #line 2866 "APItest.xs" { STRLEN len; const char *pv = SvPV(sv2,len); if (!SvROK(sv)) croak("Not a ref"); sv = SvRV(sv); switch (which) { case 0: sv_setsv(sv,sv2); break; case 1: sv_setpv(sv,pv); break; case 2: sv_setpvn(sv,pv,len); break; } } #line 4768 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_rmagical_cast); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_rmagical_cast) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "sv, type"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { SV * sv = ST(0) ; SV * type = ST(1) ; #line 2883 "APItest.xs" struct ufuncs uf; #line 4789 "APItest.c" #line 2885 "APItest.xs" if (!SvOK(sv) || !SvROK(sv) || !SvOK(type)) { XSRETURN_UNDEF; } sv = SvRV(sv); if (SvTYPE(sv) != SVt_PVHV) { XSRETURN_UNDEF; } uf.uf_val = rmagical_a_dummy; uf.uf_set = NULL; uf.uf_index = 0; if (SvTRUE(type)) { /* b */ sv_magicext(sv, NULL, PERL_MAGIC_ext, &rmagical_b, NULL, 0); } else { /* a */ sv_magic(sv, NULL, PERL_MAGIC_uvar, (char *) &uf, sizeof(uf)); } XSRETURN_YES; #line 4803 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_rmagical_flags); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_rmagical_flags) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { SV * sv = ST(0) ; #line 2902 "APItest.xs" if (!SvOK(sv) || !SvROK(sv)) { XSRETURN_UNDEF; } sv = SvRV(sv); EXTEND(SP, 3); mXPUSHu(SvFLAGS(sv) & SVs_GMG); mXPUSHu(SvFLAGS(sv) & SVs_SMG); mXPUSHu(SvFLAGS(sv) & SVs_RMG); XSRETURN(3); #line 4829 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_my_caller); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_my_caller) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "level"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { I32 level = (I32)SvIV(ST(0)) ; #line 2914 "APItest.xs" const PERL_CONTEXT *cx, *dbcx; const char *pv; const GV *gv; HV *hv; #line 4852 "APItest.c" #line 2919 "APItest.xs" cx = caller_cx(level, &dbcx); EXTEND(SP, 8); pv = CopSTASHPV(cx->blk_oldcop); ST(0) = pv ? sv_2mortal(newSVpv(pv, 0)) : &PL_sv_undef; gv = CvGV(cx->blk_sub.cv); ST(1) = isGV(gv) ? sv_2mortal(newSVpv(GvNAME(gv), 0)) : &PL_sv_undef; pv = CopSTASHPV(dbcx->blk_oldcop); ST(2) = pv ? sv_2mortal(newSVpv(pv, 0)) : &PL_sv_undef; gv = CvGV(dbcx->blk_sub.cv); ST(3) = isGV(gv) ? sv_2mortal(newSVpv(GvNAME(gv), 0)) : &PL_sv_undef; ST(4) = cop_hints_fetch_pvs(cx->blk_oldcop, "foo", 0); ST(5) = cop_hints_fetch_pvn(cx->blk_oldcop, "foo", 3, 0, 0); ST(6) = cop_hints_fetch_sv(cx->blk_oldcop, sv_2mortal(newSVpvs("foo")), 0, 0); hv = cop_hints_2hv(cx->blk_oldcop, 0); ST(7) = hv ? sv_2mortal(newRV_noinc((SV *)hv)) : &PL_sv_undef; XSRETURN(8); #line 4876 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_DPeek); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_DPeek) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { SV * sv = ST(0) ; #line 2947 "APItest.xs" ST (0) = newSVpv (Perl_sv_peek (aTHX_ sv), 0); XSRETURN (1); #line 4897 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_BEGIN); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_BEGIN) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 2953 "APItest.xs" sv_inc(get_sv("XS::APItest::BEGIN_called", GV_ADD|GV_ADDMULTI)); #line 4913 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_CHECK); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_CHECK) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 2958 "APItest.xs" sv_inc(get_sv("XS::APItest::CHECK_called", GV_ADD|GV_ADDMULTI)); #line 4928 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_UNITCHECK); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_UNITCHECK) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 2963 "APItest.xs" sv_inc(get_sv("XS::APItest::UNITCHECK_called", GV_ADD|GV_ADDMULTI)); #line 4943 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_INIT); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_INIT) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 2968 "APItest.xs" sv_inc(get_sv("XS::APItest::INIT_called", GV_ADD|GV_ADDMULTI)); #line 4958 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_END); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_END) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 2973 "APItest.xs" sv_inc(get_sv("XS::APItest::END_called", GV_ADD|GV_ADDMULTI)); #line 4973 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_utf16_to_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_utf16_to_utf8) { dVAR; dXSARGS; dXSI32; if (items < 1) croak_xs_usage(cv, "sv, ..."); { SV* sv = ST(0) ; #line 2981 "APItest.xs" STRLEN len; U8 *source; SV *dest; I32 got; /* Gah, badly thought out APIs */ #line 4994 "APItest.c" #line 2986 "APItest.xs" if (ix) (void)SvPV_force_nolen(sv); source = (U8 *)SvPVbyte(sv, len); /* Optionally only convert part of the buffer. */ if (items > 1) { len = SvUV(ST(1)); } /* Mortalise this right now, as we'll be testing croak()s */ dest = sv_2mortal(newSV(len * 2 + 1)); if (ix) { utf16_to_utf8_reversed(source, (U8 *)SvPVX(dest), len, &got); } else { utf16_to_utf8(source, (U8 *)SvPVX(dest), len, &got); } SvCUR_set(dest, got); SvPVX(dest)[got] = '\0'; SvPOK_on(dest); ST(0) = dest; XSRETURN(1); #line 5014 "APItest.c" } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_my_exit); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_my_exit) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "exitcode"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { int exitcode = (int)SvIV(ST(0)) ; #line 3008 "APItest.xs" my_exit(exitcode); #line 5033 "APItest.c" PUTBACK; return; } } XS_EUPXS(XS_XS__APItest_first_byte); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_first_byte) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); { SV * sv = ST(0) ; U8 RETVAL; dXSTARG; #line 3014 "APItest.xs" char *s; STRLEN len; s = SvPVbyte(sv, len); RETVAL = s[0]; #line 5056 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_sv_count); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_sv_count) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { I32 RETVAL; dXSTARG; #line 3024 "APItest.xs" RETVAL = PL_sv_count; #line 5074 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_bhk_record); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_bhk_record) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "on"); { bool on = (bool)SvTRUE(ST(0)) ; #line 3031 "APItest.xs" dMY_CXT; MY_CXT.bhk_record = on; if (on) av_clear(MY_CXT.bhkav); #line 5095 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_test_magic_chain); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_test_magic_chain) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 3039 "APItest.xs" SV *sv; MAGIC *callmg, *uvarmg; #line 5111 "APItest.c" #line 3042 "APItest.xs" sv = sv_2mortal(newSV(0)); if (SvTYPE(sv) >= SVt_PVMG) croak_fail(); if (SvMAGICAL(sv)) croak_fail(); sv_magic(sv, &PL_sv_yes, PERL_MAGIC_checkcall, (char*)&callmg, 0); if (SvTYPE(sv) < SVt_PVMG) croak_fail(); if (!SvMAGICAL(sv)) croak_fail(); if (mg_find(sv, PERL_MAGIC_uvar)) croak_fail(); callmg = mg_find(sv, PERL_MAGIC_checkcall); if (!callmg) croak_fail(); if (callmg->mg_obj != &PL_sv_yes || callmg->mg_ptr != (char*)&callmg) croak_fail(); sv_magic(sv, &PL_sv_no, PERL_MAGIC_uvar, (char*)&uvarmg, 0); if (SvTYPE(sv) < SVt_PVMG) croak_fail(); if (!SvMAGICAL(sv)) croak_fail(); if (mg_find(sv, PERL_MAGIC_checkcall) != callmg) croak_fail(); uvarmg = mg_find(sv, PERL_MAGIC_uvar); if (!uvarmg) croak_fail(); if (callmg->mg_obj != &PL_sv_yes || callmg->mg_ptr != (char*)&callmg) croak_fail(); if (uvarmg->mg_obj != &PL_sv_no || uvarmg->mg_ptr != (char*)&uvarmg) croak_fail(); mg_free_type(sv, PERL_MAGIC_vec); if (SvTYPE(sv) < SVt_PVMG) croak_fail(); if (!SvMAGICAL(sv)) croak_fail(); if (mg_find(sv, PERL_MAGIC_checkcall) != callmg) croak_fail(); if (mg_find(sv, PERL_MAGIC_uvar) != uvarmg) croak_fail(); if (callmg->mg_obj != &PL_sv_yes || callmg->mg_ptr != (char*)&callmg) croak_fail(); if (uvarmg->mg_obj != &PL_sv_no || uvarmg->mg_ptr != (char*)&uvarmg) croak_fail(); mg_free_type(sv, PERL_MAGIC_uvar); if (SvTYPE(sv) < SVt_PVMG) croak_fail(); if (!SvMAGICAL(sv)) croak_fail(); if (mg_find(sv, PERL_MAGIC_checkcall) != callmg) croak_fail(); if (mg_find(sv, PERL_MAGIC_uvar)) croak_fail(); if (callmg->mg_obj != &PL_sv_yes || callmg->mg_ptr != (char*)&callmg) croak_fail(); sv_magic(sv, &PL_sv_no, PERL_MAGIC_uvar, (char*)&uvarmg, 0); if (SvTYPE(sv) < SVt_PVMG) croak_fail(); if (!SvMAGICAL(sv)) croak_fail(); if (mg_find(sv, PERL_MAGIC_checkcall) != callmg) croak_fail(); uvarmg = mg_find(sv, PERL_MAGIC_uvar); if (!uvarmg) croak_fail(); if (callmg->mg_obj != &PL_sv_yes || callmg->mg_ptr != (char*)&callmg) croak_fail(); if (uvarmg->mg_obj != &PL_sv_no || uvarmg->mg_ptr != (char*)&uvarmg) croak_fail(); mg_free_type(sv, PERL_MAGIC_checkcall); if (SvTYPE(sv) < SVt_PVMG) croak_fail(); if (!SvMAGICAL(sv)) croak_fail(); if (mg_find(sv, PERL_MAGIC_uvar) != uvarmg) croak_fail(); if (mg_find(sv, PERL_MAGIC_checkcall)) croak_fail(); if (uvarmg->mg_obj != &PL_sv_no || uvarmg->mg_ptr != (char*)&uvarmg) croak_fail(); mg_free_type(sv, PERL_MAGIC_uvar); if (SvMAGICAL(sv)) croak_fail(); if (mg_find(sv, PERL_MAGIC_checkcall)) croak_fail(); if (mg_find(sv, PERL_MAGIC_uvar)) croak_fail(); #line 5171 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_test_op_contextualize); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_test_op_contextualize) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 3104 "APItest.xs" OP *o; #line 5186 "APItest.c" #line 3106 "APItest.xs" o = newSVOP(OP_CONST, 0, newSViv(0)); o->op_flags &= ~OPf_WANT; o = op_contextualize(o, G_SCALAR); if (o->op_type != OP_CONST || (o->op_flags & OPf_WANT) != OPf_WANT_SCALAR) croak_fail(); op_free(o); o = newSVOP(OP_CONST, 0, newSViv(0)); o->op_flags &= ~OPf_WANT; o = op_contextualize(o, G_ARRAY); if (o->op_type != OP_CONST || (o->op_flags & OPf_WANT) != OPf_WANT_LIST) croak_fail(); op_free(o); o = newSVOP(OP_CONST, 0, newSViv(0)); o->op_flags &= ~OPf_WANT; o = op_contextualize(o, G_VOID); if (o->op_type != OP_NULL) croak_fail(); op_free(o); #line 5207 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_test_rv2cv_op_cv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_test_rv2cv_op_cv) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 3130 "APItest.xs" GV *troc_gv; CV *troc_cv; OP *o; #line 5224 "APItest.c" #line 3134 "APItest.xs" troc_gv = gv_fetchpv("XS::APItest::test_rv2cv_op_cv", 0, SVt_PVGV); troc_cv = get_cv("XS::APItest::test_rv2cv_op_cv", 0); o = newCVREF(0, newGVOP(OP_GV, 0, troc_gv)); if (rv2cv_op_cv(o, 0) != troc_cv) croak_fail(); if (rv2cv_op_cv(o, RV2CVOPCV_RETURN_NAME_GV) != (CV*)troc_gv) croak_fail(); o->op_private |= OPpENTERSUB_AMPER; if (rv2cv_op_cv(o, 0)) croak_fail(); if (rv2cv_op_cv(o, RV2CVOPCV_RETURN_NAME_GV)) croak_fail(); o->op_private &= ~OPpENTERSUB_AMPER; if (cUNOPx(o)->op_first->op_private & OPpEARLY_CV) croak_fail(); if (rv2cv_op_cv(o, RV2CVOPCV_MARK_EARLY) != troc_cv) croak_fail(); if (cUNOPx(o)->op_first->op_private & OPpEARLY_CV) croak_fail(); op_free(o); o = newSVOP(OP_CONST, 0, newSVpv("XS::APItest::test_rv2cv_op_cv", 0)); o->op_private = OPpCONST_BARE; o = newCVREF(0, o); if (rv2cv_op_cv(o, 0) != troc_cv) croak_fail(); if (rv2cv_op_cv(o, RV2CVOPCV_RETURN_NAME_GV) != (CV*)troc_gv) croak_fail(); o->op_private |= OPpENTERSUB_AMPER; if (rv2cv_op_cv(o, 0)) croak_fail(); if (rv2cv_op_cv(o, RV2CVOPCV_RETURN_NAME_GV)) croak_fail(); op_free(o); o = newCVREF(0, newSVOP(OP_CONST, 0, newRV_inc((SV*)troc_cv))); if (rv2cv_op_cv(o, 0) != troc_cv) croak_fail(); if (rv2cv_op_cv(o, RV2CVOPCV_RETURN_NAME_GV) != (CV*)troc_gv) croak_fail(); o->op_private |= OPpENTERSUB_AMPER; if (rv2cv_op_cv(o, 0)) croak_fail(); if (rv2cv_op_cv(o, RV2CVOPCV_RETURN_NAME_GV)) croak_fail(); o->op_private &= ~OPpENTERSUB_AMPER; if (cUNOPx(o)->op_first->op_private & OPpEARLY_CV) croak_fail(); if (rv2cv_op_cv(o, RV2CVOPCV_MARK_EARLY) != troc_cv) croak_fail(); if (cUNOPx(o)->op_first->op_private & OPpEARLY_CV) croak_fail(); op_free(o); o = newCVREF(0, newUNOP(OP_RAND, 0, newSVOP(OP_CONST, 0, newSViv(0)))); if (rv2cv_op_cv(o, 0)) croak_fail(); if (rv2cv_op_cv(o, RV2CVOPCV_RETURN_NAME_GV)) croak_fail(); o->op_private |= OPpENTERSUB_AMPER; if (rv2cv_op_cv(o, 0)) croak_fail(); if (rv2cv_op_cv(o, RV2CVOPCV_RETURN_NAME_GV)) croak_fail(); o->op_private &= ~OPpENTERSUB_AMPER; if (cUNOPx(o)->op_first->op_private & OPpEARLY_CV) croak_fail(); if (rv2cv_op_cv(o, RV2CVOPCV_MARK_EARLY)) croak_fail(); if (cUNOPx(o)->op_first->op_private & OPpEARLY_CV) croak_fail(); op_free(o); o = newUNOP(OP_RAND, 0, newSVOP(OP_CONST, 0, newSViv(0))); if (rv2cv_op_cv(o, 0)) croak_fail(); if (rv2cv_op_cv(o, RV2CVOPCV_RETURN_NAME_GV)) croak_fail(); op_free(o); #line 5277 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_test_cv_getset_call_checker); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_test_cv_getset_call_checker) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 3189 "APItest.xs" CV *troc_cv, *tsh_cv; Perl_call_checker ckfun; SV *ckobj; U32 ckflags; #line 5295 "APItest.c" #line 3194 "APItest.xs" #define check_cc(cv, xckfun, xckobj, xckflags) \ do { \ cv_get_call_checker((cv), &ckfun, &ckobj); \ if (ckfun != (xckfun)) croak_fail_nep(FPTR2DPTR(void *, ckfun), xckfun); \ if (ckobj != (xckobj)) croak_fail_nep(FPTR2DPTR(void *, ckobj), xckobj); \ cv_get_call_checker_flags((cv), CALL_CHECKER_REQUIRE_GV, &ckfun, &ckobj, &ckflags); \ if (ckfun != (xckfun)) croak_fail_nep(FPTR2DPTR(void *, ckfun), xckfun); \ if (ckobj != (xckobj)) croak_fail_nep(FPTR2DPTR(void *, ckobj), xckobj); \ if (ckflags != CALL_CHECKER_REQUIRE_GV) croak_fail_nei(ckflags, CALL_CHECKER_REQUIRE_GV); \ cv_get_call_checker_flags((cv), 0, &ckfun, &ckobj, &ckflags); \ if (ckfun != (xckfun)) croak_fail_nep(FPTR2DPTR(void *, ckfun), xckfun); \ if (ckobj != (xckobj)) croak_fail_nep(FPTR2DPTR(void *, ckobj), xckobj); \ if (ckflags != (xckflags)) croak_fail_nei(ckflags, (xckflags)); \ } while(0) troc_cv = get_cv("XS::APItest::test_rv2cv_op_cv", 0); tsh_cv = get_cv("XS::APItest::test_savehints", 0); check_cc(troc_cv, Perl_ck_entersub_args_proto_or_list, (SV*)troc_cv, 0); check_cc(tsh_cv, Perl_ck_entersub_args_proto_or_list, (SV*)tsh_cv, 0); cv_set_call_checker(tsh_cv, Perl_ck_entersub_args_proto_or_list, &PL_sv_yes); check_cc(troc_cv, Perl_ck_entersub_args_proto_or_list, (SV*)troc_cv, 0); check_cc(tsh_cv, Perl_ck_entersub_args_proto_or_list, &PL_sv_yes, CALL_CHECKER_REQUIRE_GV); cv_set_call_checker(troc_cv, THX_ck_entersub_args_scalars, &PL_sv_no); check_cc(troc_cv, THX_ck_entersub_args_scalars, &PL_sv_no, CALL_CHECKER_REQUIRE_GV); check_cc(tsh_cv, Perl_ck_entersub_args_proto_or_list, &PL_sv_yes, CALL_CHECKER_REQUIRE_GV); cv_set_call_checker(tsh_cv, Perl_ck_entersub_args_proto_or_list, (SV*)tsh_cv); check_cc(troc_cv, THX_ck_entersub_args_scalars, &PL_sv_no, CALL_CHECKER_REQUIRE_GV); check_cc(tsh_cv, Perl_ck_entersub_args_proto_or_list, (SV*)tsh_cv, 0); cv_set_call_checker(troc_cv, Perl_ck_entersub_args_proto_or_list, (SV*)troc_cv); check_cc(troc_cv, Perl_ck_entersub_args_proto_or_list, (SV*)troc_cv, 0); check_cc(tsh_cv, Perl_ck_entersub_args_proto_or_list, (SV*)tsh_cv, 0); if (SvMAGICAL((SV*)troc_cv) || SvMAGIC((SV*)troc_cv)) croak_fail(); if (SvMAGICAL((SV*)tsh_cv) || SvMAGIC((SV*)tsh_cv)) croak_fail(); cv_set_call_checker_flags(tsh_cv, Perl_ck_entersub_args_proto_or_list, &PL_sv_yes, 0); check_cc(tsh_cv, Perl_ck_entersub_args_proto_or_list, &PL_sv_yes, 0); cv_set_call_checker_flags(tsh_cv, Perl_ck_entersub_args_proto_or_list, &PL_sv_yes, CALL_CHECKER_REQUIRE_GV); check_cc(tsh_cv, Perl_ck_entersub_args_proto_or_list, &PL_sv_yes, CALL_CHECKER_REQUIRE_GV); cv_set_call_checker_flags(tsh_cv, Perl_ck_entersub_args_proto_or_list, (SV*)tsh_cv, 0); check_cc(tsh_cv, Perl_ck_entersub_args_proto_or_list, (SV*)tsh_cv, 0); if (SvMAGICAL((SV*)tsh_cv) || SvMAGIC((SV*)tsh_cv)) croak_fail(); cv_set_call_checker_flags(tsh_cv, Perl_ck_entersub_args_proto_or_list, &PL_sv_yes, CALL_CHECKER_REQUIRE_GV); check_cc(tsh_cv, Perl_ck_entersub_args_proto_or_list, &PL_sv_yes, CALL_CHECKER_REQUIRE_GV); cv_set_call_checker_flags(tsh_cv, Perl_ck_entersub_args_proto_or_list, (SV*)tsh_cv, CALL_CHECKER_REQUIRE_GV); check_cc(tsh_cv, Perl_ck_entersub_args_proto_or_list, (SV*)tsh_cv, 0); if (SvMAGICAL((SV*)tsh_cv) || SvMAGIC((SV*)tsh_cv)) croak_fail(); #undef check_cc #line 5350 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_cv_set_call_checker_lists); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_cv_set_call_checker_lists) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "cv"); { CV * cv; STMT_START { HV *st; GV *gvp; SV * const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); cv = sv_2cv(xsub_tmp_sv, &st, &gvp, 0); if (!cv) { Perl_croak_nocontext("%s: %s is not a CODE reference", "XS::APItest::cv_set_call_checker_lists", "cv"); } } STMT_END ; #line 3251 "APItest.xs" cv_set_call_checker(cv, THX_ck_entersub_args_lists, &PL_sv_undef); #line 5380 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_cv_set_call_checker_scalars); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_cv_set_call_checker_scalars) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "cv"); { CV * cv; STMT_START { HV *st; GV *gvp; SV * const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); cv = sv_2cv(xsub_tmp_sv, &st, &gvp, 0); if (!cv) { Perl_croak_nocontext("%s: %s is not a CODE reference", "XS::APItest::cv_set_call_checker_scalars", "cv"); } } STMT_END ; #line 3256 "APItest.xs" cv_set_call_checker(cv, THX_ck_entersub_args_scalars, &PL_sv_undef); #line 5410 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_cv_set_call_checker_proto); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_cv_set_call_checker_proto) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "cv, proto"); { CV * cv; SV * proto = ST(1) ; STMT_START { HV *st; GV *gvp; SV * const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); cv = sv_2cv(xsub_tmp_sv, &st, &gvp, 0); if (!cv) { Perl_croak_nocontext("%s: %s is not a CODE reference", "XS::APItest::cv_set_call_checker_proto", "cv"); } } STMT_END ; #line 3261 "APItest.xs" if (SvROK(proto)) proto = SvRV(proto); cv_set_call_checker(cv, Perl_ck_entersub_args_proto, proto); #line 5444 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_cv_set_call_checker_proto_or_list); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_cv_set_call_checker_proto_or_list) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "cv, proto"); { CV * cv; SV * proto = ST(1) ; STMT_START { HV *st; GV *gvp; SV * const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); cv = sv_2cv(xsub_tmp_sv, &st, &gvp, 0); if (!cv) { Perl_croak_nocontext("%s: %s is not a CODE reference", "XS::APItest::cv_set_call_checker_proto_or_list", "cv"); } } STMT_END ; #line 3268 "APItest.xs" if (SvROK(proto)) proto = SvRV(proto); cv_set_call_checker(cv, Perl_ck_entersub_args_proto_or_list, proto); #line 5478 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_cv_set_call_checker_multi_sum); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_cv_set_call_checker_multi_sum) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "cv"); { CV * cv; STMT_START { HV *st; GV *gvp; SV * const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); cv = sv_2cv(xsub_tmp_sv, &st, &gvp, 0); if (!cv) { Perl_croak_nocontext("%s: %s is not a CODE reference", "XS::APItest::cv_set_call_checker_multi_sum", "cv"); } } STMT_END ; #line 3275 "APItest.xs" cv_set_call_checker(cv, THX_ck_entersub_multi_sum, &PL_sv_undef); #line 5508 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_test_cophh); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_test_cophh) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 3280 "APItest.xs" COPHH *a, *b; #ifdef EBCDIC SV* key_sv; char * key_name; STRLEN key_len; #endif #line 5528 "APItest.c" #line 3287 "APItest.xs" #define check_ph(EXPR) \ do { if((EXPR) != &PL_sv_placeholder) croak("fail"); } while(0) #define check_iv(EXPR, EXPECT) \ do { if(SvIV(EXPR) != (EXPECT)) croak("fail"); } while(0) #define msvpvs(STR) sv_2mortal(newSVpvs(STR)) #define msviv(VALUE) sv_2mortal(newSViv(VALUE)) a = cophh_new_empty(); check_ph(cophh_fetch_pvn(a, "foo_1", 5, 0, 0)); check_ph(cophh_fetch_pvs(a, "foo_1", 0)); check_ph(cophh_fetch_pv(a, "foo_1", 0, 0)); check_ph(cophh_fetch_sv(a, msvpvs("foo_1"), 0, 0)); a = cophh_store_pvn(a, "foo_1abc", 5, 0, msviv(111), 0); a = cophh_store_pvs(a, "foo_2", msviv(222), 0); a = cophh_store_pv(a, "foo_3", 0, msviv(333), 0); a = cophh_store_sv(a, msvpvs("foo_4"), 0, msviv(444), 0); check_iv(cophh_fetch_pvn(a, "foo_1xyz", 5, 0, 0), 111); check_iv(cophh_fetch_pvs(a, "foo_1", 0), 111); check_iv(cophh_fetch_pv(a, "foo_1", 0, 0), 111); check_iv(cophh_fetch_sv(a, msvpvs("foo_1"), 0, 0), 111); check_iv(cophh_fetch_pvs(a, "foo_2", 0), 222); check_iv(cophh_fetch_pvs(a, "foo_3", 0), 333); check_iv(cophh_fetch_pvs(a, "foo_4", 0), 444); check_ph(cophh_fetch_pvs(a, "foo_5", 0)); b = cophh_copy(a); b = cophh_store_pvs(b, "foo_1", msviv(1111), 0); check_iv(cophh_fetch_pvs(a, "foo_1", 0), 111); check_iv(cophh_fetch_pvs(a, "foo_2", 0), 222); check_iv(cophh_fetch_pvs(a, "foo_3", 0), 333); check_iv(cophh_fetch_pvs(a, "foo_4", 0), 444); check_ph(cophh_fetch_pvs(a, "foo_5", 0)); check_iv(cophh_fetch_pvs(b, "foo_1", 0), 1111); check_iv(cophh_fetch_pvs(b, "foo_2", 0), 222); check_iv(cophh_fetch_pvs(b, "foo_3", 0), 333); check_iv(cophh_fetch_pvs(b, "foo_4", 0), 444); check_ph(cophh_fetch_pvs(b, "foo_5", 0)); a = cophh_delete_pvn(a, "foo_1abc", 5, 0, 0); a = cophh_delete_pvs(a, "foo_2", 0); b = cophh_delete_pv(b, "foo_3", 0, 0); b = cophh_delete_sv(b, msvpvs("foo_4"), 0, 0); check_ph(cophh_fetch_pvs(a, "foo_1", 0)); check_ph(cophh_fetch_pvs(a, "foo_2", 0)); check_iv(cophh_fetch_pvs(a, "foo_3", 0), 333); check_iv(cophh_fetch_pvs(a, "foo_4", 0), 444); check_ph(cophh_fetch_pvs(a, "foo_5", 0)); check_iv(cophh_fetch_pvs(b, "foo_1", 0), 1111); check_iv(cophh_fetch_pvs(b, "foo_2", 0), 222); check_ph(cophh_fetch_pvs(b, "foo_3", 0)); check_ph(cophh_fetch_pvs(b, "foo_4", 0)); check_ph(cophh_fetch_pvs(b, "foo_5", 0)); b = cophh_delete_pvs(b, "foo_3", 0); b = cophh_delete_pvs(b, "foo_5", 0); check_iv(cophh_fetch_pvs(b, "foo_1", 0), 1111); check_iv(cophh_fetch_pvs(b, "foo_2", 0), 222); check_ph(cophh_fetch_pvs(b, "foo_3", 0)); check_ph(cophh_fetch_pvs(b, "foo_4", 0)); check_ph(cophh_fetch_pvs(b, "foo_5", 0)); cophh_free(b); check_ph(cophh_fetch_pvs(a, "foo_1", 0)); check_ph(cophh_fetch_pvs(a, "foo_2", 0)); check_iv(cophh_fetch_pvs(a, "foo_3", 0), 333); check_iv(cophh_fetch_pvs(a, "foo_4", 0), 444); check_ph(cophh_fetch_pvs(a, "foo_5", 0)); a = cophh_store_pvs(a, "foo_1", msviv(11111), COPHH_KEY_UTF8); a = cophh_store_pvs(a, "foo_\xaa", msviv(123), 0); #ifndef EBCDIC a = cophh_store_pvs(a, "foo_\xc2\xbb", msviv(456), COPHH_KEY_UTF8); #else /* On EBCDIC, we need to translate the UTF-8 in the ASCII test to the * equivalent UTF-EBCDIC for the code page. This is done at runtime * (with the helper function in this file). Therefore we can't use * cophhh_store_pvs(), as we don't have literal string */ key_sv = sv_2mortal(newSVpvs("foo_")); cat_utf8a2n(key_sv, STR_WITH_LEN("\xc2\xbb")); key_name = SvPV(key_sv, key_len); a = cophh_store_pvn(a, key_name, key_len, 0, msviv(456), COPHH_KEY_UTF8); #endif #ifndef EBCDIC a = cophh_store_pvs(a, "foo_\xc3\x8c", msviv(789), COPHH_KEY_UTF8); #else sv_setpvs(key_sv, "foo_"); cat_utf8a2n(key_sv, STR_WITH_LEN("\xc3\x8c")); key_name = SvPV(key_sv, key_len); a = cophh_store_pvn(a, key_name, key_len, 0, msviv(789), COPHH_KEY_UTF8); #endif #ifndef EBCDIC a = cophh_store_pvs(a, "foo_\xd9\xa6", msviv(666), COPHH_KEY_UTF8); #else sv_setpvs(key_sv, "foo_"); cat_utf8a2n(key_sv, STR_WITH_LEN("\xd9\xa6")); key_name = SvPV(key_sv, key_len); a = cophh_store_pvn(a, key_name, key_len, 0, msviv(666), COPHH_KEY_UTF8); #endif check_iv(cophh_fetch_pvs(a, "foo_1", 0), 11111); check_iv(cophh_fetch_pvs(a, "foo_1", COPHH_KEY_UTF8), 11111); check_iv(cophh_fetch_pvs(a, "foo_\xaa", 0), 123); #ifndef EBCDIC check_iv(cophh_fetch_pvs(a, "foo_\xc2\xaa", COPHH_KEY_UTF8), 123); check_ph(cophh_fetch_pvs(a, "foo_\xc2\xaa", 0)); #else sv_setpvs(key_sv, "foo_"); cat_utf8a2n(key_sv, STR_WITH_LEN("\xc2\xaa")); key_name = SvPV(key_sv, key_len); check_iv(cophh_fetch_pvn(a, key_name, key_len, 0, COPHH_KEY_UTF8), 123); check_ph(cophh_fetch_pvn(a, key_name, key_len, 0, 0)); #endif check_iv(cophh_fetch_pvs(a, "foo_\xbb", 0), 456); #ifndef EBCDIC check_iv(cophh_fetch_pvs(a, "foo_\xc2\xbb", COPHH_KEY_UTF8), 456); check_ph(cophh_fetch_pvs(a, "foo_\xc2\xbb", 0)); #else sv_setpvs(key_sv, "foo_"); cat_utf8a2n(key_sv, STR_WITH_LEN("\xc2\xbb")); key_name = SvPV(key_sv, key_len); check_iv(cophh_fetch_pvn(a, key_name, key_len, 0, COPHH_KEY_UTF8), 456); check_ph(cophh_fetch_pvn(a, key_name, key_len, 0, 0)); #endif check_iv(cophh_fetch_pvs(a, "foo_\xcc", 0), 789); #ifndef EBCDIC check_iv(cophh_fetch_pvs(a, "foo_\xc3\x8c", COPHH_KEY_UTF8), 789); check_ph(cophh_fetch_pvs(a, "foo_\xc2\x8c", 0)); #else sv_setpvs(key_sv, "foo_"); cat_utf8a2n(key_sv, STR_WITH_LEN("\xc3\x8c")); key_name = SvPV(key_sv, key_len); check_iv(cophh_fetch_pvn(a, key_name, key_len, 0, COPHH_KEY_UTF8), 789); check_ph(cophh_fetch_pvn(a, key_name, key_len, 0, 0)); #endif #ifndef EBCDIC check_iv(cophh_fetch_pvs(a, "foo_\xd9\xa6", COPHH_KEY_UTF8), 666); check_ph(cophh_fetch_pvs(a, "foo_\xd9\xa6", 0)); #else sv_setpvs(key_sv, "foo_"); cat_utf8a2n(key_sv, STR_WITH_LEN("\xd9\xa6")); key_name = SvPV(key_sv, key_len); check_iv(cophh_fetch_pvn(a, key_name, key_len, 0, COPHH_KEY_UTF8), 666); check_ph(cophh_fetch_pvn(a, key_name, key_len, 0, 0)); #endif ENTER; SAVEFREECOPHH(a); LEAVE; #undef check_ph #undef check_iv #undef msvpvs #undef msviv #line 5674 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_test_coplabel); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_test_coplabel) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 3435 "APItest.xs" COP *cop; const char *label; STRLEN len; U32 utf8; #line 5692 "APItest.c" #line 3440 "APItest.xs" cop = &PL_compiling; Perl_cop_store_label(aTHX_ cop, "foo", 3, 0); label = Perl_cop_fetch_label(aTHX_ cop, &len, &utf8); if (strNE(label,"foo")) croak("fail # cop_fetch_label label"); if (len != 3) croak("fail # cop_fetch_label len"); if (utf8) croak("fail # cop_fetch_label utf8"); /* SMALL GERMAN UMLAUT A */ Perl_cop_store_label(aTHX_ cop, "fo\xc3\xa4", 4, SVf_UTF8); label = Perl_cop_fetch_label(aTHX_ cop, &len, &utf8); if (strNE(label,"fo\xc3\xa4")) croak("fail # cop_fetch_label label"); if (len != 4) croak("fail # cop_fetch_label len"); if (!utf8) croak("fail # cop_fetch_label utf8"); #line 5706 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_example_cophh_2hv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_example_cophh_2hv) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 3457 "APItest.xs" COPHH *a; #ifdef EBCDIC SV* key_sv; char * key_name; STRLEN key_len; #endif #line 5726 "APItest.c" HV * RETVAL; #line 3464 "APItest.xs" #define msviv(VALUE) sv_2mortal(newSViv(VALUE)) a = cophh_new_empty(); a = cophh_store_pvs(a, "foo_0", msviv(999), 0); a = cophh_store_pvs(a, "foo_1", msviv(111), 0); a = cophh_store_pvs(a, "foo_\xaa", msviv(123), 0); #ifndef EBCDIC a = cophh_store_pvs(a, "foo_\xc2\xbb", msviv(456), COPHH_KEY_UTF8); #else key_sv = sv_2mortal(newSVpvs("foo_")); cat_utf8a2n(key_sv, STR_WITH_LEN("\xc2\xbb")); key_name = SvPV(key_sv, key_len); a = cophh_store_pvn(a, key_name, key_len, 0, msviv(456), COPHH_KEY_UTF8); #endif #ifndef EBCDIC a = cophh_store_pvs(a, "foo_\xc3\x8c", msviv(789), COPHH_KEY_UTF8); #else sv_setpvs(key_sv, "foo_"); cat_utf8a2n(key_sv, STR_WITH_LEN("\xc3\x8c")); key_name = SvPV(key_sv, key_len); a = cophh_store_pvn(a, key_name, key_len, 0, msviv(789), COPHH_KEY_UTF8); #endif #ifndef EBCDIC a = cophh_store_pvs(a, "foo_\xd9\xa6", msviv(666), COPHH_KEY_UTF8); #else sv_setpvs(key_sv, "foo_"); cat_utf8a2n(key_sv, STR_WITH_LEN("\xd9\xa6")); key_name = SvPV(key_sv, key_len); a = cophh_store_pvn(a, key_name, key_len, 0, msviv(666), COPHH_KEY_UTF8); #endif a = cophh_delete_pvs(a, "foo_0", 0); a = cophh_delete_pvs(a, "foo_2", 0); RETVAL = cophh_2hv(a, 0); cophh_free(a); #undef msviv #line 5763 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_test_savehints); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_test_savehints) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 3504 "APItest.xs" SV **svp, *sv; #line 5784 "APItest.c" #line 3506 "APItest.xs" #define store_hint(KEY, VALUE) \ sv_setiv_mg(*hv_fetchs(GvHV(PL_hintgv), KEY, 1), (VALUE)) #define hint_ok(KEY, EXPECT) \ ((svp = hv_fetchs(GvHV(PL_hintgv), KEY, 0)) && \ (sv = *svp) && SvIV(sv) == (EXPECT) && \ (sv = cop_hints_fetch_pvs(&PL_compiling, KEY, 0)) && \ SvIV(sv) == (EXPECT)) #define check_hint(KEY, EXPECT) \ do { if (!hint_ok(KEY, EXPECT)) croak_fail(); } while(0) PL_hints |= HINT_LOCALIZE_HH; ENTER; SAVEHINTS(); PL_hints &= HINT_INTEGER; store_hint("t0", 123); store_hint("t1", 456); if (PL_hints & HINT_INTEGER) croak_fail(); check_hint("t0", 123); check_hint("t1", 456); ENTER; SAVEHINTS(); if (PL_hints & HINT_INTEGER) croak_fail(); check_hint("t0", 123); check_hint("t1", 456); PL_hints |= HINT_INTEGER; store_hint("t0", 321); if (!(PL_hints & HINT_INTEGER)) croak_fail(); check_hint("t0", 321); check_hint("t1", 456); LEAVE; if (PL_hints & HINT_INTEGER) croak_fail(); check_hint("t0", 123); check_hint("t1", 456); ENTER; SAVEHINTS(); if (PL_hints & HINT_INTEGER) croak_fail(); check_hint("t0", 123); check_hint("t1", 456); store_hint("t1", 654); if (PL_hints & HINT_INTEGER) croak_fail(); check_hint("t0", 123); check_hint("t1", 654); LEAVE; if (PL_hints & HINT_INTEGER) croak_fail(); check_hint("t0", 123); check_hint("t1", 456); LEAVE; #undef store_hint #undef hint_ok #undef check_hint #line 5828 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_test_copyhints); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_test_copyhints) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 3552 "APItest.xs" HV *a, *b; #line 5843 "APItest.c" #line 3554 "APItest.xs" PL_hints |= HINT_LOCALIZE_HH; ENTER; SAVEHINTS(); sv_setiv_mg(*hv_fetchs(GvHV(PL_hintgv), "t0", 1), 123); if (SvIV(cop_hints_fetch_pvs(&PL_compiling, "t0", 0)) != 123) croak_fail(); a = newHVhv(GvHV(PL_hintgv)); sv_2mortal((SV*)a); sv_setiv_mg(*hv_fetchs(a, "t0", 1), 456); if (SvIV(cop_hints_fetch_pvs(&PL_compiling, "t0", 0)) != 123) croak_fail(); b = hv_copy_hints_hv(a); sv_2mortal((SV*)b); sv_setiv_mg(*hv_fetchs(b, "t0", 1), 789); if (SvIV(cop_hints_fetch_pvs(&PL_compiling, "t0", 0)) != 789) croak_fail(); LEAVE; #line 5862 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_test_op_list); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_test_op_list) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 3575 "APItest.xs" OP *a; #line 5877 "APItest.c" #line 3577 "APItest.xs" #define iv_op(iv) newSVOP(OP_CONST, 0, newSViv(iv)) #define check_op(o, expect) \ do { \ if (strNE(test_op_list_describe(o), (expect))) \ croak("fail %s %s", test_op_list_describe(o), (expect)); \ } while(0) a = op_append_elem(OP_LIST, NULL, NULL); check_op(a, ""); a = op_append_elem(OP_LIST, iv_op(1), a); check_op(a, "const(1)."); a = op_append_elem(OP_LIST, NULL, a); check_op(a, "const(1)."); a = op_append_elem(OP_LIST, a, iv_op(2)); check_op(a, "list[pushmark.const(1).const(2).]"); a = op_append_elem(OP_LIST, a, iv_op(3)); check_op(a, "list[pushmark.const(1).const(2).const(3).]"); a = op_append_elem(OP_LIST, a, NULL); check_op(a, "list[pushmark.const(1).const(2).const(3).]"); a = op_append_elem(OP_LIST, NULL, a); check_op(a, "list[pushmark.const(1).const(2).const(3).]"); a = op_append_elem(OP_LIST, iv_op(4), a); check_op(a, "list[pushmark.const(4)." "list[pushmark.const(1).const(2).const(3).]]"); a = op_append_elem(OP_LIST, a, iv_op(5)); check_op(a, "list[pushmark.const(4)." "list[pushmark.const(1).const(2).const(3).]const(5).]"); a = op_append_elem(OP_LIST, a, op_append_elem(OP_LIST, iv_op(7), iv_op(6))); check_op(a, "list[pushmark.const(4)." "list[pushmark.const(1).const(2).const(3).]const(5)." "list[pushmark.const(7).const(6).]]"); op_free(a); a = op_append_elem(OP_LINESEQ, iv_op(1), iv_op(2)); check_op(a, "lineseq[const(1).const(2).]"); a = op_append_elem(OP_LINESEQ, a, iv_op(3)); check_op(a, "lineseq[const(1).const(2).const(3).]"); op_free(a); a = op_append_elem(OP_LINESEQ, op_append_elem(OP_LIST, iv_op(1), iv_op(2)), iv_op(3)); check_op(a, "lineseq[list[pushmark.const(1).const(2).]const(3).]"); op_free(a); a = op_prepend_elem(OP_LIST, NULL, NULL); check_op(a, ""); a = op_prepend_elem(OP_LIST, a, iv_op(1)); check_op(a, "const(1)."); a = op_prepend_elem(OP_LIST, a, NULL); check_op(a, "const(1)."); a = op_prepend_elem(OP_LIST, iv_op(2), a); check_op(a, "list[pushmark.const(2).const(1).]"); a = op_prepend_elem(OP_LIST, iv_op(3), a); check_op(a, "list[pushmark.const(3).const(2).const(1).]"); a = op_prepend_elem(OP_LIST, NULL, a); check_op(a, "list[pushmark.const(3).const(2).const(1).]"); a = op_prepend_elem(OP_LIST, a, NULL); check_op(a, "list[pushmark.const(3).const(2).const(1).]"); a = op_prepend_elem(OP_LIST, a, iv_op(4)); check_op(a, "list[pushmark." "list[pushmark.const(3).const(2).const(1).]const(4).]"); a = op_prepend_elem(OP_LIST, iv_op(5), a); check_op(a, "list[pushmark.const(5)." "list[pushmark.const(3).const(2).const(1).]const(4).]"); a = op_prepend_elem(OP_LIST, op_prepend_elem(OP_LIST, iv_op(6), iv_op(7)), a); check_op(a, "list[pushmark.list[pushmark.const(6).const(7).]const(5)." "list[pushmark.const(3).const(2).const(1).]const(4).]"); op_free(a); a = op_prepend_elem(OP_LINESEQ, iv_op(2), iv_op(1)); check_op(a, "lineseq[const(2).const(1).]"); a = op_prepend_elem(OP_LINESEQ, iv_op(3), a); check_op(a, "lineseq[const(3).const(2).const(1).]"); op_free(a); a = op_prepend_elem(OP_LINESEQ, iv_op(3), op_prepend_elem(OP_LIST, iv_op(2), iv_op(1))); check_op(a, "lineseq[const(3).list[pushmark.const(2).const(1).]]"); op_free(a); a = op_append_list(OP_LINESEQ, NULL, NULL); check_op(a, ""); a = op_append_list(OP_LINESEQ, iv_op(1), a); check_op(a, "const(1)."); a = op_append_list(OP_LINESEQ, NULL, a); check_op(a, "const(1)."); a = op_append_list(OP_LINESEQ, a, iv_op(2)); check_op(a, "lineseq[const(1).const(2).]"); a = op_append_list(OP_LINESEQ, a, iv_op(3)); check_op(a, "lineseq[const(1).const(2).const(3).]"); a = op_append_list(OP_LINESEQ, iv_op(4), a); check_op(a, "lineseq[const(4).const(1).const(2).const(3).]"); a = op_append_list(OP_LINESEQ, a, NULL); check_op(a, "lineseq[const(4).const(1).const(2).const(3).]"); a = op_append_list(OP_LINESEQ, NULL, a); check_op(a, "lineseq[const(4).const(1).const(2).const(3).]"); a = op_append_list(OP_LINESEQ, a, op_append_list(OP_LINESEQ, iv_op(5), iv_op(6))); check_op(a, "lineseq[const(4).const(1).const(2).const(3)." "const(5).const(6).]"); op_free(a); a = op_append_list(OP_LINESEQ, op_append_list(OP_LINESEQ, iv_op(1), iv_op(2)), op_append_list(OP_LIST, iv_op(3), iv_op(4))); check_op(a, "lineseq[const(1).const(2)." "list[pushmark.const(3).const(4).]]"); op_free(a); a = op_append_list(OP_LINESEQ, op_append_list(OP_LIST, iv_op(1), iv_op(2)), op_append_list(OP_LINESEQ, iv_op(3), iv_op(4))); check_op(a, "lineseq[list[pushmark.const(1).const(2).]" "const(3).const(4).]"); op_free(a); #undef check_op #line 5989 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_test_op_linklist); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_test_op_linklist) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 3691 "APItest.xs" OP *o; #line 6004 "APItest.c" #line 3693 "APItest.xs" #define check_ll(o, expect) \ STMT_START { \ if (strNE(test_op_linklist_describe(o), (expect))) \ croak("fail %s %s", test_op_linklist_describe(o), (expect)); \ } STMT_END o = iv_op(1); check_ll(o, ".const1"); op_free(o); o = mkUNOP(OP_NOT, iv_op(1)); check_ll(o, ".const1.not"); op_free(o); o = mkUNOP(OP_NOT, mkUNOP(OP_NEGATE, iv_op(1))); check_ll(o, ".const1.negate.not"); op_free(o); o = mkBINOP(OP_ADD, iv_op(1), iv_op(2)); check_ll(o, ".const1.const2.add"); op_free(o); o = mkBINOP(OP_ADD, mkUNOP(OP_NOT, iv_op(1)), iv_op(2)); check_ll(o, ".const1.not.const2.add"); op_free(o); o = mkUNOP(OP_NOT, mkBINOP(OP_ADD, iv_op(1), iv_op(2))); check_ll(o, ".const1.const2.add.not"); op_free(o); o = mkLISTOP(OP_LINESEQ, iv_op(1), iv_op(2), iv_op(3)); check_ll(o, ".const1.const2.const3.lineseq"); op_free(o); o = mkLISTOP(OP_LINESEQ, mkBINOP(OP_ADD, iv_op(1), iv_op(2)), mkUNOP(OP_NOT, iv_op(3)), mkLISTOP(OP_SUBSTR, iv_op(4), iv_op(5), iv_op(6))); check_ll(o, ".const1.const2.add.const3.not" ".const4.const5.const6.substr.lineseq"); op_free(o); o = mkBINOP(OP_ADD, iv_op(1), iv_op(2)); LINKLIST(o); o = mkBINOP(OP_SUBTRACT, o, iv_op(3)); check_ll(o, ".const1.const2.add.const3.subtract"); op_free(o); #undef check_ll #undef iv_op #line 6054 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_peep_enable); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_peep_enable) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 3745 "APItest.xs" dMY_CXT; #line 6069 "APItest.c" #line 3747 "APItest.xs" av_clear(MY_CXT.peep_recorder); av_clear(MY_CXT.rpeep_recorder); MY_CXT.peep_recording = 1; #line 6074 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_peep_disable); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_peep_disable) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 3754 "APItest.xs" dMY_CXT; #line 6089 "APItest.c" #line 3756 "APItest.xs" MY_CXT.peep_recording = 0; #line 6092 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_peep_record); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_peep_record) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 3761 "APItest.xs" dMY_CXT; #line 6107 "APItest.c" SV * RETVAL; #line 3763 "APItest.xs" RETVAL = newRV_inc((SV *)MY_CXT.peep_recorder); #line 6111 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_rpeep_record); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_rpeep_record) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 3770 "APItest.xs" dMY_CXT; #line 6128 "APItest.c" SV * RETVAL; #line 3772 "APItest.xs" RETVAL = newRV_inc((SV *)MY_CXT.rpeep_recorder); #line 6132 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_multicall_each); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_multicall_each) { dVAR; dXSARGS; if (items < 1) croak_xs_usage(cv, "block, ..."); { SV * block = ST(0) ; #line 3787 "APItest.xs" { dMULTICALL; int index; GV *gv; HV *stash; I32 gimme = G_SCALAR; SV **args = &PL_stack_base[ax]; CV *cv; if(items <= 1) { XSRETURN_UNDEF; } cv = sv_2cv(block, &stash, &gv, 0); if (cv == Nullcv) { croak("multicall_each: not a subroutine reference"); } PUSH_MULTICALL(cv); SAVESPTR(GvSV(PL_defgv)); for(index = 1 ; index < items ; index++) { GvSV(PL_defgv) = args[index]; MULTICALL; } POP_MULTICALL; XSRETURN_UNDEF; } #line 6176 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_multicall_return); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_multicall_return) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "block, context"); { SV * block = ST(0) ; I32 context = (I32)SvIV(ST(1)) ; #line 3827 "APItest.xs" { dSP; dMULTICALL; GV *gv; HV *stash; I32 gimme = context; CV *cv; AV *av; SV **p; SSize_t i, size; cv = sv_2cv(block, &stash, &gv, 0); if (cv == Nullcv) { croak("multicall_return not a subroutine reference"); } PUSH_MULTICALL(cv); MULTICALL; /* copy returned values into an array so they're not freed during * POP_MULTICALL */ av = newAV(); SPAGAIN; switch (context) { case G_VOID: break; case G_SCALAR: av_push(av, SvREFCNT_inc(TOPs)); break; case G_ARRAY: for (p = PL_stack_base + 1; p <= SP; p++) av_push(av, SvREFCNT_inc(*p)); break; } POP_MULTICALL; size = AvFILLp(av) + 1; EXTEND(SP, size); for (i = 0; i < size; i++) ST(i) = *av_fetch(av, i, FALSE); sv_2mortal((SV*)av); XSRETURN(size); } #line 6242 "APItest.c" } XSRETURN(1); } #ifdef USE_ITHREADS #define XSubPPtmpAAAC 1 XS_EUPXS(XS_XS__APItest_clone_with_stack); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_clone_with_stack) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 3882 "APItest.xs" { PerlInterpreter *interp = aTHX; /* The original interpreter */ PerlInterpreter *interp_dup; /* The duplicate interpreter */ int oldscope = 1; /* We are responsible for all scopes */ interp_dup = perl_clone(interp, CLONEf_COPY_STACKS | CLONEf_CLONE_HOST ); /* destroy old perl */ PERL_SET_CONTEXT(interp); POPSTACK_TO(PL_mainstack); if (cxstack_ix >= 0) { dounwind(-1); cx_popblock(cxstack); } LEAVE_SCOPE(0); PL_scopestack_ix = oldscope; FREETMPS; perl_destruct(interp); perl_free(interp); /* switch to new perl */ PERL_SET_CONTEXT(interp_dup); /* continue after 'clone_with_stack' */ if (interp_dup->Iop) interp_dup->Iop = interp_dup->Iop->op_next; /* run with new perl */ Perl_runops_standard(interp_dup); /* We may have additional unclosed scopes if fork() was called * from within a BEGIN block. See perlfork.pod for more details. * We cannot clean up these other scopes because they belong to a * different interpreter, but we also cannot leave PL_scopestack_ix * dangling because that can trigger an assertion in perl_destruct(). */ if (PL_scopestack_ix > oldscope) { PL_scopestack[oldscope-1] = PL_scopestack[PL_scopestack_ix-1]; PL_scopestack_ix = oldscope; } perl_destruct(interp_dup); perl_free(interp_dup); /* call the real 'exit' not PerlProc_exit */ #undef exit exit(0); } #line 6309 "APItest.c" } XSRETURN_EMPTY; } #endif /* USE_ITHREDS */ XS_EUPXS(XS_XS__APItest_take_svref); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_take_svref) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); { SV * RETVAL; SVREF sv; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv)){ sv = SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a reference", "XS::APItest::take_svref", "sv"); } } STMT_END ; #line 3938 "APItest.xs" RETVAL = newRV_inc(sv); #line 6341 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_take_avref); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_take_avref) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "av"); { SV * RETVAL; AV* av; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVAV){ av = (AV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not an ARRAY reference", "XS::APItest::take_avref", "av"); } } STMT_END ; #line 3945 "APItest.xs" RETVAL = newRV_inc((SV*)av); #line 6374 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_take_hvref); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_take_hvref) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "hv"); { SV * RETVAL; HV* hv; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ hv = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::take_hvref", "hv"); } } STMT_END ; #line 3952 "APItest.xs" RETVAL = newRV_inc((SV*)hv); #line 6407 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_take_cvref); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_take_cvref) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "cv"); { SV * RETVAL; CV* cv; STMT_START { HV *st; GV *gvp; SV * const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); cv = sv_2cv(xsub_tmp_sv, &st, &gvp, 0); if (!cv) { Perl_croak_nocontext("%s: %s is not a CODE reference", "XS::APItest::take_cvref", "cv"); } } STMT_END ; #line 3960 "APItest.xs" RETVAL = newRV_inc((SV*)cv); #line 6440 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_establish_cleanup); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_establish_cleanup) { dVAR; dXSARGS; PERL_UNUSED_VAR(cv); /* -W */ PERL_UNUSED_VAR(items); /* -W */ { #line 4008 "APItest.xs" PERL_UNUSED_VAR(items); croak("establish_cleanup called as a function"); #line 6458 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_postinc); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_postinc) { dVAR; dXSARGS; PERL_UNUSED_VAR(cv); /* -W */ PERL_UNUSED_VAR(items); /* -W */ { #line 4021 "APItest.xs" PERL_UNUSED_VAR(items); croak("postinc called as a function"); #line 6474 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_filter); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_filter) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 4027 "APItest.xs" filter_add(filter_call, NULL); #line 6489 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_lv_temp_object); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_lv_temp_object) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { SV * RETVAL; #line 4038 "APItest.xs" RETVAL = sv_bless( newRV_noinc(newSV(0)), gv_stashpvs("XS::APItest::TempObj",GV_ADD) ); /* Package defined in test script */ #line 6509 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_fill_hash_with_nulls); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_fill_hash_with_nulls) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "hv"); { #line 4049 "APItest.xs" UV i = 0; #line 6526 "APItest.c" HV * hv; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ hv = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::fill_hash_with_nulls", "hv"); } } STMT_END ; #line 4051 "APItest.xs" for(; i < 1000; ++i) { HE *entry = hv_fetch_ent(hv, sv_2mortal(newSVuv(i)), 1, 0); SvREFCNT_dec(HeVAL(entry)); HeVAL(entry) = NULL; } #line 6548 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_newHVhv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_newHVhv) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "hv"); { HV * RETVAL; HV * hv; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ hv = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::newHVhv", "hv"); } } STMT_END ; #line 4060 "APItest.xs" RETVAL = newHVhv(hv); #line 6579 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_SvIsCOW); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_SvIsCOW) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); { U32 RETVAL; dXSTARG; SV * sv = ST(0) ; #line 4067 "APItest.xs" RETVAL = SvIsCOW(sv); #line 6604 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_pad_scalar); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_pad_scalar) { dVAR; dXSARGS; PERL_UNUSED_VAR(cv); /* -W */ PERL_UNUSED_VAR(items); /* -W */ { #line 4075 "APItest.xs" PERL_UNUSED_VAR(items); croak("pad_scalar called as a function"); #line 6621 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_fetch_pad_names); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_fetch_pad_names) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "cv"); { CV* cv; #line 4088 "APItest.xs" I32 i; PADNAMELIST *pad_namelist; AV *retav = newAV(); #line 6639 "APItest.c" SV * RETVAL; STMT_START { HV *st; GV *gvp; SV * const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); cv = sv_2cv(xsub_tmp_sv, &st, &gvp, 0); if (!cv) { Perl_croak_nocontext("%s: %s is not a CODE reference", "XS::APItest::fetch_pad_names", "cv"); } } STMT_END ; #line 4092 "APItest.xs" pad_namelist = PadlistNAMES(CvPADLIST(cv)); for ( i = PadnamelistMAX(pad_namelist); i >= 0; i-- ) { PADNAME* name = PadnamelistARRAY(pad_namelist)[i]; if (PadnameLEN(name)) { av_push(retav, newSVpadname(name)); } } RETVAL = newRV_noinc((SV*)retav); #line 6666 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_underscore_length); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_underscore_length) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 4109 "APItest.xs" SV *u; U8 *pv; STRLEN bytelen; #line 6685 "APItest.c" STRLEN RETVAL; dXSTARG; #line 4113 "APItest.xs" u = find_rundefsv(); pv = (U8*)SvPV(u, bytelen); RETVAL = SvUTF8(u) ? utf8_length(pv, pv+bytelen) : bytelen; #line 6692 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_stringify); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_stringify) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); { SV * sv = ST(0) ; #line 4122 "APItest.xs" (void)SvPV_nolen(sv); #line 6710 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_HvENAME); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_HvENAME) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "hv"); { SV * RETVAL; HV * hv; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ hv = (HV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a HASH reference", "XS::APItest::HvENAME", "hv"); } } STMT_END ; #line 4127 "APItest.xs" RETVAL = hv && HvENAME(hv) ? newSVpvn_flags( HvENAME(hv),HvENAMELEN(hv), (HvENAMEUTF8(hv) ? SVf_UTF8 : 0) ) : NULL; #line 6746 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_xs_cmp); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_xs_cmp) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "a, b"); { int RETVAL; dXSTARG; int a = (int)SvIV(ST(0)) ; int b = (int)SvIV(ST(1)) ; #line 4139 "APItest.xs" /* Odd sorting (odd numbers first), to make sure we are actually being called */ RETVAL = a % 2 != b % 2 ? a % 2 ? -1 : 1 : a < b ? -1 : a == b ? 0 : 1; #line 6773 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_xs_cmp_undef); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_xs_cmp_undef) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "a, b"); { SV * RETVAL; SV * a = ST(0) ; SV * b = ST(1) ; #line 4150 "APItest.xs" PERL_UNUSED_ARG(a); PERL_UNUSED_ARG(b); RETVAL = &PL_sv_undef; #line 6796 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_SvPVbyte); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_SvPVbyte) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); { char * RETVAL; dXSTARG; SV * sv = ST(0) ; #line 4159 "APItest.xs" RETVAL = SvPVbyte_nolen(sv); #line 6817 "APItest.c" sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_SvPVutf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_SvPVutf8) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); { char * RETVAL; dXSTARG; SV * sv = ST(0) ; #line 4166 "APItest.xs" RETVAL = SvPVutf8_nolen(sv); #line 6837 "APItest.c" sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_setup_addissub); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_setup_addissub) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 4173 "APItest.xs" wrap_op_checker(OP_ADD, addissub_myck_add, &addissub_nxck_add); #line 6853 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_setup_rv2cv_addunderbar); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_setup_rv2cv_addunderbar) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 4178 "APItest.xs" wrap_op_checker(OP_RV2CV, my_ck_rv2cv, &old_ck_rv2cv); #line 6868 "APItest.c" } XSRETURN_EMPTY; } #ifdef USE_ITHREADS #define XSubPPtmpAAAD 1 XS_EUPXS(XS_XS__APItest_test_alloccopstash); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_test_alloccopstash) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { bool RETVAL; #line 4185 "APItest.xs" RETVAL = PL_stashpad[alloccopstash(PL_defstash)] == PL_defstash; #line 6887 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } #endif XS_EUPXS(XS_XS__APItest_test_newFOROP_without_slab); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_test_newFOROP_without_slab) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { bool RETVAL; #line 4194 "APItest.xs" { const I32 floor = start_subparse(0,0); OP *o; /* The slab allocator does not like CvROOT being set. */ CvROOT(PL_compcv) = (OP *)1; o = newFOROP(0, 0, newOP(OP_PUSHMARK, 0), 0, 0); if (cLOOPx(cUNOPo->op_first)->op_last->op_sibparent != cUNOPo->op_first) { Perl_warn(aTHX_ "Op parent pointer is stale"); RETVAL = FALSE; } else /* If we do not crash before returning, the test passes. */ RETVAL = TRUE; op_free(o); CvROOT(PL_compcv) = NULL; SvREFCNT_dec(PL_compcv); LEAVE_SCOPE(floor); } #line 6924 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_callregexec); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_callregexec) { dVAR; dXSARGS; if (items != 6) croak_xs_usage(cv, "prog, stringarg, strend, minend, sv, nosave"); { I32 RETVAL; dXSTARG; SV * prog = ST(0) ; STRLEN stringarg = (STRLEN)SvUV(ST(1)) ; STRLEN strend = (STRLEN)SvUV(ST(2)) ; I32 minend = (I32)SvIV(ST(3)) ; SV * sv = ST(4) ; U32 nosave = (unsigned long)SvUV(ST(5)) ; #line 4223 "APItest.xs" { STRLEN len; char *strbeg; if (SvROK(prog)) prog = SvRV(prog); strbeg = SvPV_force(sv, len); RETVAL = CALLREGEXEC((REGEXP *)prog, strbeg + stringarg, strbeg + strend, strbeg, minend, sv, NULL, /* data */ nosave); } #line 6968 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_lexical_import); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_lexical_import) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "name, cv"); { SV * name = ST(0) ; CV * cv; STMT_START { HV *st; GV *gvp; SV * const xsub_tmp_sv = ST(1); SvGETMAGIC(xsub_tmp_sv); cv = sv_2cv(xsub_tmp_sv, &st, &gvp, 0); if (!cv) { Perl_croak_nocontext("%s: %s is not a CODE reference", "XS::APItest::lexical_import", "cv"); } } STMT_END ; #line 4244 "APItest.xs" { PADLIST *pl; PADOFFSET off; if (!PL_compcv) Perl_croak(aTHX_ "lexical_import can only be called at compile time"); pl = CvPADLIST(PL_compcv); ENTER; SAVESPTR(PL_comppad_name); PL_comppad_name = PadlistNAMES(pl); SAVESPTR(PL_comppad); PL_comppad = PadlistARRAY(pl)[1]; SAVESPTR(PL_curpad); PL_curpad = PadARRAY(PL_comppad); off = pad_add_name_sv(sv_2mortal(newSVpvf("&%" SVf,name)), padadd_STATE, 0, 0); SvREFCNT_dec(PL_curpad[off]); PL_curpad[off] = SvREFCNT_inc(cv); intro_my(); LEAVE; } #line 7018 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_sv_mortalcopy); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_sv_mortalcopy) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); { SV * RETVAL; SV * sv = ST(0) ; #line 4266 "APItest.xs" RETVAL = SvREFCNT_inc(sv_mortalcopy(sv)); #line 7036 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_newRV); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_newRV) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); { SV * RETVAL; SV * sv = ST(0) ; RETVAL = newRV(sv); RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_alias_av); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_alias_av) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "av, ix, sv"); { AV * av; IV ix = (IV)SvIV(ST(1)) ; SV * sv = ST(2) ; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVAV){ av = (AV*)SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not an ARRAY reference", "XS::APItest::alias_av", "av"); } } STMT_END ; #line 4276 "APItest.xs" av_store(av, ix, SvREFCNT_inc(sv)); #line 7091 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_cv_name); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_cv_name) { dVAR; dXSARGS; if (items < 1) croak_xs_usage(cv, "ref, ..."); { SV * RETVAL; SVREF ref; STMT_START { SV* const xsub_tmp_sv = ST(0); SvGETMAGIC(xsub_tmp_sv); if (SvROK(xsub_tmp_sv)){ ref = SvRV(xsub_tmp_sv); } else{ Perl_croak_nocontext("%s: %s is not a reference", "XS::APItest::cv_name", "ref"); } } STMT_END ; #line 4281 "APItest.xs" RETVAL = SvREFCNT_inc(cv_name((CV *)ref, items>1 && ST(1) != &PL_sv_undef ? ST(1) : NULL, items>2 ? SvUV(ST(2)) : 0)); #line 7126 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_sv_catpvn); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_sv_catpvn) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "sv, sv2"); { SV * sv = ST(0) ; SV * sv2 = ST(1) ; #line 4292 "APItest.xs" { STRLEN len; const char *s = SvPV(sv2,len); sv_catpvn_flags(sv,s,len, SvUTF8(sv2) ? SV_CATUTF8 : SV_CATBYTES); } #line 7151 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_test_newOP_CUSTOM); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_test_newOP_CUSTOM) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { bool RETVAL; #line 4301 "APItest.xs" { OP *o = newLISTOP(OP_CUSTOM, 0, NULL, NULL); op_free(o); o = newOP(OP_CUSTOM, 0); op_free(o); o = newUNOP(OP_CUSTOM, 0, NULL); op_free(o); o = newUNOP_AUX(OP_CUSTOM, 0, NULL, NULL); op_free(o); o = newMETHOP(OP_CUSTOM, 0, newOP(OP_NULL,0)); op_free(o); o = newMETHOP_named(OP_CUSTOM, 0, newSV(0)); op_free(o); o = newBINOP(OP_CUSTOM, 0, NULL, NULL); op_free(o); o = newPMOP(OP_CUSTOM, 0); op_free(o); o = newSVOP(OP_CUSTOM, 0, newSV(0)); op_free(o); #ifdef USE_ITHREADS ENTER; lex_start(NULL, NULL, 0); { I32 ix = start_subparse(FALSE,0); o = newPADOP(OP_CUSTOM, 0, newSV(0)); op_free(o); LEAVE_SCOPE(ix); } LEAVE; #endif o = newPVOP(OP_CUSTOM, 0, NULL); op_free(o); o = newLOGOP(OP_CUSTOM, 0, newOP(OP_NULL,0), newOP(OP_NULL,0)); op_free(o); o = newLOOPEX(OP_CUSTOM, newOP(OP_NULL,0)); op_free(o); RETVAL = TRUE; } #line 7204 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_test_sv_catpvf); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_test_sv_catpvf) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "fmtsv"); { #line 4345 "APItest.xs" SV *sv; char *fmt; #line 7221 "APItest.c" SV * fmtsv = ST(0) ; #line 4348 "APItest.xs" fmt = SvPV_nolen(fmtsv); sv = sv_2mortal(newSVpvn("", 0)); sv_catpvf(sv, fmt, 5, 6, 7, 8); #line 7228 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_load_module); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_load_module) { dVAR; dXSARGS; if (items < 2) croak_xs_usage(cv, "flags, name, ..."); { U32 flags = (unsigned long)SvUV(ST(0)) ; SV * name = ST(1) ; #line 4357 "APItest.xs" if (items == 2) { Perl_load_module(aTHX_ flags, SvREFCNT_inc(name), NULL); } else if (items == 3) { Perl_load_module(aTHX_ flags, SvREFCNT_inc(name), SvREFCNT_inc(ST(2))); } else Perl_croak(aTHX_ "load_module can't yet support %" IVdf " items", (IV)items); #line 7253 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_string_without_null); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_string_without_null) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); { SV * RETVAL; SV * sv = ST(0) ; #line 4368 "APItest.xs" { STRLEN len; const char *s = SvPV(sv, len); RETVAL = newSVpvn_flags(s, len, SvUTF8(sv)); *SvEND(RETVAL) = 0xff; } #line 7276 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_get_cv); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_get_cv) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); { CV * RETVAL; SV * sv = ST(0) ; #line 4380 "APItest.xs" { STRLEN len; const char *s = SvPV(sv, len); RETVAL = get_cvn_flags(s, len, 0); } #line 7300 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_get_cv_flags); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_get_cv_flags) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "sv, flags"); { CV * RETVAL; SV * sv = ST(0) ; UV flags = (UV)SvUV(ST(1)) ; #line 4391 "APItest.xs" { STRLEN len; const char *s = SvPV(sv, len); RETVAL = get_cvn_flags(s, len, flags); } #line 7330 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_unshift_and_set_defav); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_unshift_and_set_defav) { dVAR; dXSARGS; if (items < 1) croak_xs_usage(cv, "sv, ..."); { SV * sv = ST(0) ; #line 4402 "APItest.xs" av_unshift(GvAVn(PL_defgv), 1); av_store(GvAV(PL_defgv), 0, newSVuv(42)); sv_setuv(sv, 43); #line 7355 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest_PerlIO_stderr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_PerlIO_stderr) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { PerlIO * RETVAL; RETVAL = PerlIO_stderr(); { SV * RETVALSV; RETVALSV = sv_newmortal(); { GV *gv = (GV *)sv_newmortal(); gv_init_pvn(gv, gv_stashpvs("XS::APItest",1),"__ANONIO__",10,0); if ( do_open(gv, "+<&", 3, FALSE, 0, 0, RETVAL) ) { SV *rv = newRV_inc((SV*)gv); rv = sv_bless(rv, GvSTASH(gv)); RETVALSV = sv_2mortal(rv); } } ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_PerlIO_stdout); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_PerlIO_stdout) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { OutputStream RETVAL; RETVAL = PerlIO_stdout(); { SV * RETVALSV; RETVALSV = sv_newmortal(); { GV *gv = (GV *)sv_newmortal(); gv_init_pvn(gv, gv_stashpvs("XS::APItest",1),"__ANONIO__",10,0); if ( do_open(gv, "+>&", 3, FALSE, 0, 0, RETVAL) ) { SV *rv = newRV_inc((SV*)gv); rv = sv_bless(rv, GvSTASH(gv)); RETVALSV = sv_2mortal(rv); } } ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest_PerlIO_stdin); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_PerlIO_stdin) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { InputStream RETVAL; RETVAL = PerlIO_stdin(); { SV * RETVALSV; RETVALSV = sv_newmortal(); { GV *gv = (GV *)sv_newmortal(); gv_init_pvn(gv, gv_stashpvs("XS::APItest",1),"__ANONIO__",10,0); if ( do_open(gv, "<&", 2, FALSE, 0, 0, RETVAL) ) { SV *rv = newRV_inc((SV*)gv); rv = sv_bless(rv, GvSTASH(gv)); RETVALSV = sv_2mortal(rv); } } ST(0) = RETVALSV; } } XSRETURN(1); } #undef FILE #define FILE NativeFile XS_EUPXS(XS_XS__APItest_PerlIO_exportFILE); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest_PerlIO_exportFILE) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "f, mode"); { FILE * RETVAL; PerlIO * f = IoIFP(sv_2io(ST(0))) ; const char * mode = (const char *)SvPV_nolen(ST(1)) ; RETVAL = PerlIO_exportFILE(f, mode); { SV * RETVALSV; RETVALSV = sv_newmortal(); { GV *gv = (GV *)sv_newmortal(); PerlIO *fp = PerlIO_importFILE(RETVAL,0); gv_init_pvn(gv, gv_stashpvs("XS::APItest",1),"__ANONIO__",10,0); if ( fp && do_open(gv, "+<&", 3, FALSE, 0, 0, fp) ) { SV *rv = newRV_inc((SV*)gv); rv = sv_bless(rv, GvSTASH(gv)); RETVALSV = sv_2mortal(rv); } } ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__AUTOLOADtest_AUTOLOAD); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__AUTOLOADtest_AUTOLOAD) { dVAR; dXSARGS; PERL_UNUSED_VAR(cv); /* -W */ PERL_UNUSED_VAR(items); /* -W */ { int RETVAL; dXSTARG; #line 4426 "APItest.xs" SV* comms; SV* class_and_method; #line 7496 "APItest.c" #line 4429 "APItest.xs" PERL_UNUSED_ARG(items); class_and_method = GvSV(CvGV(cv)); comms = get_sv("main::the_method", 1); if (class_and_method == NULL) { RETVAL = 1; } else if (!SvOK(class_and_method)) { RETVAL = 2; } else if (!SvPOK(class_and_method)) { RETVAL = 3; } else { sv_setsv(comms, class_and_method); RETVAL = 0; } #line 7511 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_sv_magic_foo); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_sv_magic_foo) { dVAR; dXSARGS; dXSI32; if (items != 2) croak_xs_usage(cv, "sv, thingy"); { SV * sv = ST(0) ; SV * thingy = ST(1) ; #line 4454 "APItest.xs" sv_magicext(SvRV(sv), NULL, PERL_MAGIC_ext, ix ? &vtbl_bar : &vtbl_foo, (const char *)thingy, 0); #line 7532 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest__Magic_mg_find_foo); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_mg_find_foo) { dVAR; dXSARGS; dXSI32; if (items != 1) croak_xs_usage(cv, "sv"); { SV * RETVAL; SV * sv = ST(0) ; #line 4461 "APItest.xs" MAGIC *mg = mg_findext(SvRV(sv), PERL_MAGIC_ext, ix ? &vtbl_bar : &vtbl_foo); RETVAL = mg ? SvREFCNT_inc((SV *)mg->mg_ptr) : &PL_sv_undef; #line 7552 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_sv_unmagic_foo); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_sv_unmagic_foo) { dVAR; dXSARGS; dXSI32; if (items != 1) croak_xs_usage(cv, "sv"); { SV * sv = ST(0) ; #line 4471 "APItest.xs" sv_unmagicext(SvRV(sv), PERL_MAGIC_ext, ix ? &vtbl_bar : &vtbl_foo); #line 7572 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest__Magic_sv_magic); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_sv_magic) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "sv, thingy"); { SV * sv = ST(0) ; SV * thingy = ST(1) ; #line 4476 "APItest.xs" sv_magic(SvRV(sv), NULL, PERL_MAGIC_ext, (const char *)thingy, 0); #line 7591 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest__Magic_test_get_vtbl); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_get_vtbl) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); { #line 4481 "APItest.xs" MGVTBL *have; MGVTBL *want; #line 7607 "APItest.c" UV RETVAL; dXSTARG; #line 4484 "APItest.xs" #define test_get_this_vtable(name) \ want = (MGVTBL*)CAT2(&PL_vtbl_, name); \ have = get_vtbl(CAT2(want_vtbl_, name)); \ if (have != want) \ croak("fail %p!=%p for get_vtbl(want_vtbl_" STRINGIFY(name) ") at " __FILE__ " line %d", have, want, __LINE__) test_get_this_vtable(sv); test_get_this_vtable(env); test_get_this_vtable(envelem); test_get_this_vtable(sigelem); test_get_this_vtable(pack); test_get_this_vtable(packelem); test_get_this_vtable(dbline); test_get_this_vtable(isa); test_get_this_vtable(isaelem); test_get_this_vtable(arylen); test_get_this_vtable(mglob); test_get_this_vtable(nkeys); test_get_this_vtable(taint); test_get_this_vtable(substr); test_get_this_vtable(vec); test_get_this_vtable(pos); test_get_this_vtable(bm); test_get_this_vtable(fm); test_get_this_vtable(uvar); test_get_this_vtable(defelem); test_get_this_vtable(regexp); test_get_this_vtable(regdata); test_get_this_vtable(regdatum); #ifdef USE_LOCALE_COLLATE test_get_this_vtable(collxfrm); #endif test_get_this_vtable(backref); test_get_this_vtable(utf8); RETVAL = PTR2UV(get_vtbl(-1)); #line 7647 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_sv_magic_myset); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_sv_magic_myset) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "rsv, thingy"); { SV * rsv = ST(0) ; SV * thingy = ST(1) ; #line 4530 "APItest.xs" sv_magicext(SvRV(rsv), NULL, PERL_MAGIC_ext, &vtbl_myset, (const char *)thingy, 0); #line 7668 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4538 "APItest.xs" RETVAL = isBLANK_uni(ord); #line 7686 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4545 "APItest.xs" RETVAL = isBLANK_uvchr(ord); #line 7705 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4552 "APItest.xs" RETVAL = isBLANK_LC_uvchr(ord); #line 7724 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4559 "APItest.xs" RETVAL = isBLANK(ord); #line 7743 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4566 "APItest.xs" RETVAL = isBLANK_A(ord); #line 7762 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4573 "APItest.xs" RETVAL = isBLANK_L1(ord); #line 7781 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4580 "APItest.xs" RETVAL = isBLANK_LC(ord); #line 7800 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 4587 "APItest.xs" const U8 * e; #line 7816 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 4590 "APItest.xs" /* In this function and those that follow, the boolean 'type' * indicates if to pass a malformed UTF-8 string to the tested macro * (malformed by making it too short) */ if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isBLANK_utf8_safe(p, e); } else { RETVAL = isBLANK_utf8(p); } #line 7833 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isBLANK_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 4606 "APItest.xs" const U8 * e; #line 7849 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 4608 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isBLANK_LC_utf8_safe(p, e); } else { RETVAL = isBLANK_LC_utf8(p); } #line 7863 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isVERTWS_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isVERTWS_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4621 "APItest.xs" RETVAL = isVERTWS_uni(ord); #line 7882 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isVERTWS_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isVERTWS_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4628 "APItest.xs" RETVAL = isVERTWS_uvchr(ord); #line 7901 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isVERTWS_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isVERTWS_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 4635 "APItest.xs" const U8 * e; #line 7917 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 4637 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isVERTWS_utf8_safe(p, e); } else { RETVAL = isVERTWS_utf8(p); } #line 7931 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4650 "APItest.xs" RETVAL = isUPPER_uni(ord); #line 7950 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4657 "APItest.xs" RETVAL = isUPPER_uvchr(ord); #line 7969 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4664 "APItest.xs" RETVAL = isUPPER_LC_uvchr(ord); #line 7988 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4671 "APItest.xs" RETVAL = isUPPER(ord); #line 8007 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4678 "APItest.xs" RETVAL = isUPPER_A(ord); #line 8026 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4685 "APItest.xs" RETVAL = isUPPER_L1(ord); #line 8045 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4692 "APItest.xs" RETVAL = isUPPER_LC(ord); #line 8064 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 4699 "APItest.xs" const U8 * e; #line 8080 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 4701 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isUPPER_utf8_safe(p, e); } else { RETVAL = isUPPER_utf8(p); } #line 8094 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isUPPER_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 4714 "APItest.xs" const U8 * e; #line 8110 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 4716 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isUPPER_LC_utf8_safe(p, e); } else { RETVAL = isUPPER_LC_utf8(p); } #line 8124 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4729 "APItest.xs" RETVAL = isLOWER_uni(ord); #line 8143 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4736 "APItest.xs" RETVAL = isLOWER_uvchr(ord); #line 8162 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4743 "APItest.xs" RETVAL = isLOWER_LC_uvchr(ord); #line 8181 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4750 "APItest.xs" RETVAL = isLOWER(ord); #line 8200 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4757 "APItest.xs" RETVAL = isLOWER_A(ord); #line 8219 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4764 "APItest.xs" RETVAL = isLOWER_L1(ord); #line 8238 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4771 "APItest.xs" RETVAL = isLOWER_LC(ord); #line 8257 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 4778 "APItest.xs" const U8 * e; #line 8273 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 4780 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isLOWER_utf8_safe(p, e); } else { RETVAL = isLOWER_utf8(p); } #line 8287 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isLOWER_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 4793 "APItest.xs" const U8 * e; #line 8303 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 4795 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isLOWER_LC_utf8_safe(p, e); } else { RETVAL = isLOWER_LC_utf8(p); } #line 8317 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4808 "APItest.xs" RETVAL = isALPHA_uni(ord); #line 8336 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4815 "APItest.xs" RETVAL = isALPHA_uvchr(ord); #line 8355 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4822 "APItest.xs" RETVAL = isALPHA_LC_uvchr(ord); #line 8374 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4829 "APItest.xs" RETVAL = isALPHA(ord); #line 8393 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4836 "APItest.xs" RETVAL = isALPHA_A(ord); #line 8412 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4843 "APItest.xs" RETVAL = isALPHA_L1(ord); #line 8431 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4850 "APItest.xs" RETVAL = isALPHA_LC(ord); #line 8450 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 4857 "APItest.xs" const U8 * e; #line 8466 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 4859 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isALPHA_utf8_safe(p, e); } else { RETVAL = isALPHA_utf8(p); } #line 8480 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHA_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 4872 "APItest.xs" const U8 * e; #line 8496 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 4874 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isALPHA_LC_utf8_safe(p, e); } else { RETVAL = isALPHA_LC_utf8(p); } #line 8510 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4887 "APItest.xs" RETVAL = isWORDCHAR_uni(ord); #line 8529 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4894 "APItest.xs" RETVAL = isWORDCHAR_uvchr(ord); #line 8548 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4901 "APItest.xs" RETVAL = isWORDCHAR_LC_uvchr(ord); #line 8567 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4908 "APItest.xs" RETVAL = isWORDCHAR(ord); #line 8586 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4915 "APItest.xs" RETVAL = isWORDCHAR_A(ord); #line 8605 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4922 "APItest.xs" RETVAL = isWORDCHAR_L1(ord); #line 8624 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4929 "APItest.xs" RETVAL = isWORDCHAR_LC(ord); #line 8643 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 4936 "APItest.xs" const U8 * e; #line 8659 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 4938 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isWORDCHAR_utf8_safe(p, e); } else { RETVAL = isWORDCHAR_utf8(p); } #line 8673 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isWORDCHAR_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 4951 "APItest.xs" const U8 * e; #line 8689 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 4953 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isWORDCHAR_LC_utf8_safe(p, e); } else { RETVAL = isWORDCHAR_LC_utf8(p); } #line 8703 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4966 "APItest.xs" RETVAL = isALPHANUMERIC_uni(ord); #line 8722 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4973 "APItest.xs" RETVAL = isALPHANUMERIC_uvchr(ord); #line 8741 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4980 "APItest.xs" RETVAL = isALPHANUMERIC_LC_uvchr(ord); #line 8760 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4987 "APItest.xs" RETVAL = isALPHANUMERIC(ord); #line 8779 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 4994 "APItest.xs" RETVAL = isALPHANUMERIC_A(ord); #line 8798 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5001 "APItest.xs" RETVAL = isALPHANUMERIC_L1(ord); #line 8817 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5008 "APItest.xs" RETVAL = isALPHANUMERIC_LC(ord); #line 8836 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5015 "APItest.xs" const U8 * e; #line 8852 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5017 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isALPHANUMERIC_utf8_safe(p, e); } else { RETVAL = isALPHANUMERIC_utf8(p); } #line 8866 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALPHANUMERIC_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5030 "APItest.xs" const U8 * e; #line 8882 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5032 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isALPHANUMERIC_LC_utf8_safe(p, e); } else { RETVAL = isALPHANUMERIC_LC_utf8(p); } #line 8896 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALNUM); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALNUM) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5045 "APItest.xs" RETVAL = isALNUM(ord); #line 8915 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALNUM_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALNUM_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5052 "APItest.xs" RETVAL = isALNUM_uni(ord); #line 8934 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALNUM_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALNUM_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5059 "APItest.xs" RETVAL = isALNUM_LC_uvchr(ord); #line 8953 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALNUM_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALNUM_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5066 "APItest.xs" RETVAL = isALNUM_LC(ord); #line 8972 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALNUM_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALNUM_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5073 "APItest.xs" const U8 * e; #line 8988 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5075 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isWORDCHAR_utf8_safe(p, e); } else { RETVAL = isWORDCHAR_utf8(p); } #line 9002 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isALNUM_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isALNUM_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5088 "APItest.xs" const U8 * e; #line 9018 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5090 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isWORDCHAR_LC_utf8_safe(p, e); } else { RETVAL = isWORDCHAR_LC_utf8(p); } #line 9032 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5103 "APItest.xs" RETVAL = isDIGIT_uni(ord); #line 9051 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5110 "APItest.xs" RETVAL = isDIGIT_uvchr(ord); #line 9070 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5117 "APItest.xs" RETVAL = isDIGIT_LC_uvchr(ord); #line 9089 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5124 "APItest.xs" const U8 * e; #line 9105 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5126 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isDIGIT_utf8_safe(p, e); } else { RETVAL = isDIGIT_utf8(p); } #line 9119 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5139 "APItest.xs" const U8 * e; #line 9135 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5141 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isDIGIT_LC_utf8_safe(p, e); } else { RETVAL = isDIGIT_LC_utf8(p); } #line 9149 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5154 "APItest.xs" RETVAL = isDIGIT(ord); #line 9168 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5161 "APItest.xs" RETVAL = isDIGIT_A(ord); #line 9187 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5168 "APItest.xs" RETVAL = isDIGIT_L1(ord); #line 9206 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isDIGIT_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5175 "APItest.xs" RETVAL = isDIGIT_LC(ord); #line 9225 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isOCTAL); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isOCTAL) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5182 "APItest.xs" RETVAL = isOCTAL(ord); #line 9244 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isOCTAL_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isOCTAL_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5189 "APItest.xs" RETVAL = isOCTAL_A(ord); #line 9263 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isOCTAL_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isOCTAL_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5196 "APItest.xs" RETVAL = isOCTAL_L1(ord); #line 9282 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5203 "APItest.xs" RETVAL = isIDFIRST_uni(ord); #line 9301 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5210 "APItest.xs" RETVAL = isIDFIRST_uvchr(ord); #line 9320 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5217 "APItest.xs" RETVAL = isIDFIRST_LC_uvchr(ord); #line 9339 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5224 "APItest.xs" RETVAL = isIDFIRST(ord); #line 9358 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5231 "APItest.xs" RETVAL = isIDFIRST_A(ord); #line 9377 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5238 "APItest.xs" RETVAL = isIDFIRST_L1(ord); #line 9396 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5245 "APItest.xs" RETVAL = isIDFIRST_LC(ord); #line 9415 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5252 "APItest.xs" const U8 * e; #line 9431 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5254 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isIDFIRST_utf8_safe(p, e); } else { RETVAL = isIDFIRST_utf8(p); } #line 9445 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDFIRST_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5267 "APItest.xs" const U8 * e; #line 9461 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5269 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isIDFIRST_LC_utf8_safe(p, e); } else { RETVAL = isIDFIRST_LC_utf8(p); } #line 9475 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5282 "APItest.xs" RETVAL = isIDCONT_uni(ord); #line 9494 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5289 "APItest.xs" RETVAL = isIDCONT_uvchr(ord); #line 9513 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5296 "APItest.xs" RETVAL = isIDCONT_LC_uvchr(ord); #line 9532 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5303 "APItest.xs" RETVAL = isIDCONT(ord); #line 9551 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5310 "APItest.xs" RETVAL = isIDCONT_A(ord); #line 9570 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5317 "APItest.xs" RETVAL = isIDCONT_L1(ord); #line 9589 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5324 "APItest.xs" RETVAL = isIDCONT_LC(ord); #line 9608 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5331 "APItest.xs" const U8 * e; #line 9624 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5333 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isIDCONT_utf8_safe(p, e); } else { RETVAL = isIDCONT_utf8(p); } #line 9638 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isIDCONT_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5346 "APItest.xs" const U8 * e; #line 9654 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5348 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isIDCONT_LC_utf8_safe(p, e); } else { RETVAL = isIDCONT_LC_utf8(p); } #line 9668 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5361 "APItest.xs" RETVAL = isSPACE_uni(ord); #line 9687 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5368 "APItest.xs" RETVAL = isSPACE_uvchr(ord); #line 9706 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5375 "APItest.xs" RETVAL = isSPACE_LC_uvchr(ord); #line 9725 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5382 "APItest.xs" RETVAL = isSPACE(ord); #line 9744 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5389 "APItest.xs" RETVAL = isSPACE_A(ord); #line 9763 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5396 "APItest.xs" RETVAL = isSPACE_L1(ord); #line 9782 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5403 "APItest.xs" RETVAL = isSPACE_LC(ord); #line 9801 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5410 "APItest.xs" const U8 * e; #line 9817 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5412 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isSPACE_utf8_safe(p, e); } else { RETVAL = isSPACE_utf8(p); } #line 9831 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isSPACE_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5425 "APItest.xs" const U8 * e; #line 9847 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5427 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isSPACE_LC_utf8_safe(p, e); } else { RETVAL = isSPACE_LC_utf8(p); } #line 9861 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isASCII_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isASCII_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5440 "APItest.xs" RETVAL = isASCII_uni(ord); #line 9880 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isASCII_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isASCII_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5447 "APItest.xs" RETVAL = isASCII_uvchr(ord); #line 9899 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isASCII_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isASCII_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5454 "APItest.xs" RETVAL = isASCII_LC_uvchr(ord); #line 9918 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isASCII); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isASCII) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5461 "APItest.xs" RETVAL = isASCII(ord); #line 9937 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isASCII_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isASCII_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5468 "APItest.xs" RETVAL = isASCII_A(ord); #line 9956 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isASCII_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isASCII_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5475 "APItest.xs" RETVAL = isASCII_L1(ord); #line 9975 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isASCII_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isASCII_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5482 "APItest.xs" RETVAL = isASCII_LC(ord); #line 9994 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isASCII_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isASCII_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5489 "APItest.xs" const U8 * e; #line 10010 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5491 "APItest.xs" #ifndef DEBUGGING PERL_UNUSED_VAR(e); #endif if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isASCII_utf8_safe(p, e); } else { RETVAL = isASCII_utf8(p); } #line 10027 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isASCII_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isASCII_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5507 "APItest.xs" const U8 * e; #line 10043 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5509 "APItest.xs" #ifndef DEBUGGING PERL_UNUSED_VAR(e); #endif if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isASCII_LC_utf8_safe(p, e); } else { RETVAL = isASCII_LC_utf8(p); } #line 10060 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5525 "APItest.xs" RETVAL = isCNTRL_uni(ord); #line 10079 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5532 "APItest.xs" RETVAL = isCNTRL_uvchr(ord); #line 10098 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5539 "APItest.xs" RETVAL = isCNTRL_LC_uvchr(ord); #line 10117 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5546 "APItest.xs" RETVAL = isCNTRL(ord); #line 10136 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5553 "APItest.xs" RETVAL = isCNTRL_A(ord); #line 10155 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5560 "APItest.xs" RETVAL = isCNTRL_L1(ord); #line 10174 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5567 "APItest.xs" RETVAL = isCNTRL_LC(ord); #line 10193 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5574 "APItest.xs" const U8 * e; #line 10209 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5576 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isCNTRL_utf8_safe(p, e); } else { RETVAL = isCNTRL_utf8(p); } #line 10223 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isCNTRL_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5589 "APItest.xs" const U8 * e; #line 10239 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5591 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isCNTRL_LC_utf8_safe(p, e); } else { RETVAL = isCNTRL_LC_utf8(p); } #line 10253 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5604 "APItest.xs" RETVAL = isPRINT_uni(ord); #line 10272 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5611 "APItest.xs" RETVAL = isPRINT_uvchr(ord); #line 10291 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5618 "APItest.xs" RETVAL = isPRINT_LC_uvchr(ord); #line 10310 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5625 "APItest.xs" RETVAL = isPRINT(ord); #line 10329 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5632 "APItest.xs" RETVAL = isPRINT_A(ord); #line 10348 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5639 "APItest.xs" RETVAL = isPRINT_L1(ord); #line 10367 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5646 "APItest.xs" RETVAL = isPRINT_LC(ord); #line 10386 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5653 "APItest.xs" const U8 * e; #line 10402 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5655 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isPRINT_utf8_safe(p, e); } else { RETVAL = isPRINT_utf8(p); } #line 10416 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPRINT_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5668 "APItest.xs" const U8 * e; #line 10432 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5670 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isPRINT_LC_utf8_safe(p, e); } else { RETVAL = isPRINT_LC_utf8(p); } #line 10446 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5683 "APItest.xs" RETVAL = isGRAPH_uni(ord); #line 10465 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5690 "APItest.xs" RETVAL = isGRAPH_uvchr(ord); #line 10484 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5697 "APItest.xs" RETVAL = isGRAPH_LC_uvchr(ord); #line 10503 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5704 "APItest.xs" RETVAL = isGRAPH(ord); #line 10522 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5711 "APItest.xs" RETVAL = isGRAPH_A(ord); #line 10541 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5718 "APItest.xs" RETVAL = isGRAPH_L1(ord); #line 10560 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5725 "APItest.xs" RETVAL = isGRAPH_LC(ord); #line 10579 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5732 "APItest.xs" const U8 * e; #line 10595 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5734 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isGRAPH_utf8_safe(p, e); } else { RETVAL = isGRAPH_utf8(p); } #line 10609 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isGRAPH_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5747 "APItest.xs" const U8 * e; #line 10625 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5749 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isGRAPH_LC_utf8_safe(p, e); } else { RETVAL = isGRAPH_LC_utf8(p); } #line 10639 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5762 "APItest.xs" RETVAL = isPUNCT_uni(ord); #line 10658 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5769 "APItest.xs" RETVAL = isPUNCT_uvchr(ord); #line 10677 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5776 "APItest.xs" RETVAL = isPUNCT_LC_uvchr(ord); #line 10696 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5783 "APItest.xs" RETVAL = isPUNCT(ord); #line 10715 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5790 "APItest.xs" RETVAL = isPUNCT_A(ord); #line 10734 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5797 "APItest.xs" RETVAL = isPUNCT_L1(ord); #line 10753 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5804 "APItest.xs" RETVAL = isPUNCT_LC(ord); #line 10772 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5811 "APItest.xs" const U8 * e; #line 10788 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5813 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isPUNCT_utf8_safe(p, e); } else { RETVAL = isPUNCT_utf8(p); } #line 10802 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPUNCT_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5826 "APItest.xs" const U8 * e; #line 10818 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5828 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isPUNCT_LC_utf8_safe(p, e); } else { RETVAL = isPUNCT_LC_utf8(p); } #line 10832 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5841 "APItest.xs" RETVAL = isXDIGIT_uni(ord); #line 10851 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5848 "APItest.xs" RETVAL = isXDIGIT_uvchr(ord); #line 10870 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5855 "APItest.xs" RETVAL = isXDIGIT_LC_uvchr(ord); #line 10889 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5862 "APItest.xs" RETVAL = isXDIGIT(ord); #line 10908 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5869 "APItest.xs" RETVAL = isXDIGIT_A(ord); #line 10927 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5876 "APItest.xs" RETVAL = isXDIGIT_L1(ord); #line 10946 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5883 "APItest.xs" RETVAL = isXDIGIT_LC(ord); #line 10965 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5890 "APItest.xs" const U8 * e; #line 10981 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5892 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isXDIGIT_utf8_safe(p, e); } else { RETVAL = isXDIGIT_utf8(p); } #line 10995 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isXDIGIT_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5905 "APItest.xs" const U8 * e; #line 11011 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5907 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isXDIGIT_LC_utf8_safe(p, e); } else { RETVAL = isXDIGIT_LC_utf8(p); } #line 11025 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5920 "APItest.xs" RETVAL = isPSXSPC_uni(ord); #line 11044 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5927 "APItest.xs" RETVAL = isPSXSPC_uvchr(ord); #line 11063 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC_LC_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC_LC_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5934 "APItest.xs" RETVAL = isPSXSPC_LC_uvchr(ord); #line 11082 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5941 "APItest.xs" RETVAL = isPSXSPC(ord); #line 11101 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC_A); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC_A) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5948 "APItest.xs" RETVAL = isPSXSPC_A(ord); #line 11120 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5955 "APItest.xs" RETVAL = isPSXSPC_L1(ord); #line 11139 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5962 "APItest.xs" RETVAL = isPSXSPC_LC(ord); #line 11158 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5969 "APItest.xs" const U8 * e; #line 11174 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5971 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isPSXSPC_utf8_safe(p, e); } else { RETVAL = isPSXSPC_utf8(p); } #line 11188 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC_LC_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isPSXSPC_LC_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 5984 "APItest.xs" const U8 * e; #line 11204 "APItest.c" bool RETVAL; U8 * p = (U8 *)SvPV_nolen(ST(0)) ; int type = (int)SvIV(ST(1)) ; #line 5986 "APItest.xs" if (type >= 0) { e = p + UTF8SKIP(p) - type; RETVAL = isPSXSPC_LC_utf8_safe(p, e); } else { RETVAL = isPSXSPC_LC_utf8(p); } #line 11218 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isQUOTEMETA); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isQUOTEMETA) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 5999 "APItest.xs" RETVAL = _isQUOTEMETA(ord); #line 11237 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_OFFUNISKIP); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_OFFUNISKIP) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { UV RETVAL; dXSTARG; UV ord = (UV)SvUV(ST(0)) ; #line 6006 "APItest.xs" RETVAL = OFFUNISKIP(ord); #line 11257 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_OFFUNI_IS_INVARIANT); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_OFFUNI_IS_INVARIANT) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 6013 "APItest.xs" RETVAL = OFFUNI_IS_INVARIANT(ord); #line 11276 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_UVCHR_IS_INVARIANT); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_UVCHR_IS_INVARIANT) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { bool RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 6020 "APItest.xs" RETVAL = UVCHR_IS_INVARIANT(ord); #line 11295 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_UTF8_IS_INVARIANT); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_UTF8_IS_INVARIANT) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ch"); { bool RETVAL; char ch = (char)*SvPV_nolen(ST(0)) ; #line 6027 "APItest.xs" RETVAL = UTF8_IS_INVARIANT(ch); #line 11314 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_UVCHR_SKIP); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_UVCHR_SKIP) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { UV RETVAL; dXSTARG; UV ord = (UV)SvUV(ST(0)) ; #line 6034 "APItest.xs" RETVAL = UVCHR_SKIP(ord); #line 11334 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_UTF8_SKIP); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_UTF8_SKIP) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ch"); { UV RETVAL; dXSTARG; char * ch = (char *)SvPV_nolen(ST(0)) ; #line 6041 "APItest.xs" RETVAL = UTF8_SKIP(ch); #line 11354 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_UTF8_IS_START); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_UTF8_IS_START) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ch"); { bool RETVAL; char ch = (char)*SvPV_nolen(ST(0)) ; #line 6048 "APItest.xs" RETVAL = UTF8_IS_START(ch); #line 11373 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_UTF8_IS_CONTINUATION); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_UTF8_IS_CONTINUATION) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ch"); { bool RETVAL; char ch = (char)*SvPV_nolen(ST(0)) ; #line 6055 "APItest.xs" RETVAL = UTF8_IS_CONTINUATION(ch); #line 11392 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_UTF8_IS_CONTINUED); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_UTF8_IS_CONTINUED) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ch"); { bool RETVAL; char ch = (char)*SvPV_nolen(ST(0)) ; #line 6062 "APItest.xs" RETVAL = UTF8_IS_CONTINUED(ch); #line 11411 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_UTF8_IS_DOWNGRADEABLE_START); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_UTF8_IS_DOWNGRADEABLE_START) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ch"); { bool RETVAL; char ch = (char)*SvPV_nolen(ST(0)) ; #line 6069 "APItest.xs" RETVAL = UTF8_IS_DOWNGRADEABLE_START(ch); #line 11430 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_UTF8_IS_ABOVE_LATIN1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_UTF8_IS_ABOVE_LATIN1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ch"); { bool RETVAL; char ch = (char)*SvPV_nolen(ST(0)) ; #line 6076 "APItest.xs" RETVAL = UTF8_IS_ABOVE_LATIN1(ch); #line 11449 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isUTF8_POSSIBLY_PROBLEMATIC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isUTF8_POSSIBLY_PROBLEMATIC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ch"); { bool RETVAL; char ch = (char)*SvPV_nolen(ST(0)) ; #line 6083 "APItest.xs" RETVAL = isUTF8_POSSIBLY_PROBLEMATIC(ch); #line 11468 "APItest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isUTF8_CHAR); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isUTF8_CHAR) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "s, len"); { STRLEN RETVAL; dXSTARG; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; #line 6090 "APItest.xs" RETVAL = isUTF8_CHAR((U8 *) s, (U8 *) s + len); #line 11490 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isUTF8_CHAR_flags); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isUTF8_CHAR_flags) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "s, len, flags"); { STRLEN RETVAL; dXSTARG; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; U32 flags = (unsigned long)SvUV(ST(2)) ; #line 6097 "APItest.xs" RETVAL = isUTF8_CHAR_flags((U8 *) s, (U8 *) s + len, flags); #line 11514 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isSTRICT_UTF8_CHAR); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isSTRICT_UTF8_CHAR) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "s, len"); { STRLEN RETVAL; dXSTARG; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; #line 6104 "APItest.xs" RETVAL = isSTRICT_UTF8_CHAR((U8 *) s, (U8 *) s + len); #line 11536 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_isC9_STRICT_UTF8_CHAR); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_isC9_STRICT_UTF8_CHAR) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "s, len"); { STRLEN RETVAL; dXSTARG; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; #line 6111 "APItest.xs" RETVAL = isC9_STRICT_UTF8_CHAR((U8 *) s, (U8 *) s + len); #line 11558 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_valid_partial_char_flags); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_valid_partial_char_flags) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "s, len, flags"); { IV RETVAL; dXSTARG; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; U32 flags = (unsigned long)SvUV(ST(2)) ; #line 6118 "APItest.xs" /* RETVAL should be bool (here and in tests below), but making it IV * allows us to test it returning 0 or 1 */ RETVAL = is_utf8_valid_partial_char_flags((U8 *) s, (U8 *) s + len, flags); #line 11584 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_string); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_string) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "s, len"); { IV RETVAL; dXSTARG; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; #line 6127 "APItest.xs" RETVAL = is_utf8_string((U8 *) s, len); #line 11606 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } #define WORDSIZE sizeof(PERL_UINTMAX_T) XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_invariant_string_loc); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_invariant_string_loc) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "s, offset, len"); { #line 6136 "APItest.xs" AV *av; const U8 * ep = NULL; PERL_UINTMAX_T* copy; #line 11625 "APItest.c" AV * RETVAL; U8 * s = (U8 *)SvPV_nolen(ST(0)) ; STRLEN offset = (STRLEN)SvUV(ST(1)) ; STRLEN len = (STRLEN)SvUV(ST(2)) ; #line 6140 "APItest.xs" /* 'offset' is number of bytes past a word boundary the testing of 's' * is to start at. Allocate space that does start at the word * boundary, and copy 's' to the correct offset past it. Then call the * tested function with that position */ Newx(copy, 1 + ((len + WORDSIZE - 1) / WORDSIZE), PERL_UINTMAX_T); Copy(s, (U8 *) copy + offset, len, U8); av = newAV(); av_push(av, newSViv(is_utf8_invariant_string_loc((U8 *) copy + offset, len, &ep))); av_push(av, newSViv(ep - ((U8 *) copy + offset))); RETVAL = av; Safefree(copy); #line 11645 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_variant_under_utf8_count); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_variant_under_utf8_count) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "s, offset, len"); { #line 6157 "APItest.xs" PERL_UINTMAX_T * copy; #line 11666 "APItest.c" STRLEN RETVAL; dXSTARG; U8 * s = (U8 *)SvPV_nolen(ST(0)) ; STRLEN offset = (STRLEN)SvUV(ST(1)) ; STRLEN len = (STRLEN)SvUV(ST(2)) ; #line 6159 "APItest.xs" Newx(copy, 1 + ((len + WORDSIZE - 1) / WORDSIZE), PERL_UINTMAX_T); Copy(s, (U8 *) copy + offset, len, U8); RETVAL = variant_under_utf8_count((U8 *) copy + offset, (U8 *) copy + offset + len); Safefree(copy); #line 11680 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_utf8_length); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_utf8_length) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "s, offset, len"); { STRLEN RETVAL; dXSTARG; U8 * s = (U8 *)SvPV_nolen(ST(0)) ; STRLEN offset = (STRLEN)SvUV(ST(1)) ; STRLEN len = (STRLEN)SvUV(ST(2)) ; #line 6169 "APItest.xs" RETVAL = utf8_length(s + offset, s + len); #line 11704 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_string_loc); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_string_loc) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "s, len"); { #line 6176 "APItest.xs" AV *av; const U8 * ep; #line 11721 "APItest.c" AV * RETVAL; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; #line 6179 "APItest.xs" av = newAV(); av_push(av, newSViv(is_utf8_string_loc((U8 *) s, len, &ep))); av_push(av, newSViv(ep - (U8 *) s)); RETVAL = av; #line 11732 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_string_loclen); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_string_loclen) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "s, len"); { #line 6189 "APItest.xs" AV *av; STRLEN ret_len; const U8 * ep; #line 11755 "APItest.c" AV * RETVAL; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; #line 6193 "APItest.xs" av = newAV(); av_push(av, newSViv(is_utf8_string_loclen((U8 *) s, len, &ep, &ret_len))); av_push(av, newSViv(ep - (U8 *) s)); av_push(av, newSVuv(ret_len)); RETVAL = av; #line 11767 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_string_flags); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_string_flags) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "s, len, flags"); { IV RETVAL; dXSTARG; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; U32 flags = (unsigned long)SvUV(ST(2)) ; #line 6204 "APItest.xs" RETVAL = is_utf8_string_flags((U8 *) s, len, flags); #line 11796 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_string_loc_flags); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_string_loc_flags) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "s, len, flags"); { #line 6211 "APItest.xs" AV *av; const U8 * ep; #line 11813 "APItest.c" AV * RETVAL; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; U32 flags = (unsigned long)SvUV(ST(2)) ; #line 6214 "APItest.xs" av = newAV(); av_push(av, newSViv(is_utf8_string_loc_flags((U8 *) s, len, &ep, flags))); av_push(av, newSViv(ep - (U8 *) s)); RETVAL = av; #line 11826 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_string_loclen_flags); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_string_loclen_flags) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "s, len, flags"); { #line 6224 "APItest.xs" AV *av; STRLEN ret_len; const U8 * ep; #line 11849 "APItest.c" AV * RETVAL; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; U32 flags = (unsigned long)SvUV(ST(2)) ; #line 6228 "APItest.xs" av = newAV(); av_push(av, newSViv(is_utf8_string_loclen_flags((U8 *) s, len, &ep, &ret_len, flags))); av_push(av, newSViv(ep - (U8 *) s)); av_push(av, newSVuv(ret_len)); RETVAL = av; #line 11863 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_is_strict_utf8_string); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_strict_utf8_string) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "s, len"); { IV RETVAL; dXSTARG; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; #line 6239 "APItest.xs" RETVAL = is_strict_utf8_string((U8 *) s, len); #line 11890 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_is_strict_utf8_string_loc); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_strict_utf8_string_loc) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "s, len"); { #line 6246 "APItest.xs" AV *av; const U8 * ep; #line 11907 "APItest.c" AV * RETVAL; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; #line 6249 "APItest.xs" av = newAV(); av_push(av, newSViv(is_strict_utf8_string_loc((U8 *) s, len, &ep))); av_push(av, newSViv(ep - (U8 *) s)); RETVAL = av; #line 11918 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_is_strict_utf8_string_loclen); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_strict_utf8_string_loclen) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "s, len"); { #line 6259 "APItest.xs" AV *av; STRLEN ret_len; const U8 * ep; #line 11941 "APItest.c" AV * RETVAL; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; #line 6263 "APItest.xs" av = newAV(); av_push(av, newSViv(is_strict_utf8_string_loclen((U8 *) s, len, &ep, &ret_len))); av_push(av, newSViv(ep - (U8 *) s)); av_push(av, newSVuv(ret_len)); RETVAL = av; #line 11953 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_is_c9strict_utf8_string); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_c9strict_utf8_string) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "s, len"); { IV RETVAL; dXSTARG; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; #line 6274 "APItest.xs" RETVAL = is_c9strict_utf8_string((U8 *) s, len); #line 11980 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_is_c9strict_utf8_string_loc); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_c9strict_utf8_string_loc) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "s, len"); { #line 6281 "APItest.xs" AV *av; const U8 * ep; #line 11997 "APItest.c" AV * RETVAL; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; #line 6284 "APItest.xs" av = newAV(); av_push(av, newSViv(is_c9strict_utf8_string_loc((U8 *) s, len, &ep))); av_push(av, newSViv(ep - (U8 *) s)); RETVAL = av; #line 12008 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_is_c9strict_utf8_string_loclen); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_c9strict_utf8_string_loclen) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "s, len"); { #line 6294 "APItest.xs" AV *av; STRLEN ret_len; const U8 * ep; #line 12031 "APItest.c" AV * RETVAL; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; #line 6298 "APItest.xs" av = newAV(); av_push(av, newSViv(is_c9strict_utf8_string_loclen((U8 *) s, len, &ep, &ret_len))); av_push(av, newSViv(ep - (U8 *) s)); av_push(av, newSVuv(ret_len)); RETVAL = av; #line 12043 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_fixed_width_buf_flags); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_fixed_width_buf_flags) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "s, len, flags"); { IV RETVAL; dXSTARG; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; U32 flags = (unsigned long)SvUV(ST(2)) ; #line 6309 "APItest.xs" RETVAL = is_utf8_fixed_width_buf_flags((U8 *) s, len, flags); #line 12072 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_fixed_width_buf_loc_flags); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_fixed_width_buf_loc_flags) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "s, len, flags"); { #line 6316 "APItest.xs" AV *av; const U8 * ep; #line 12089 "APItest.c" AV * RETVAL; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; U32 flags = (unsigned long)SvUV(ST(2)) ; #line 6319 "APItest.xs" av = newAV(); av_push(av, newSViv(is_utf8_fixed_width_buf_loc_flags((U8 *) s, len, &ep, flags))); av_push(av, newSViv(ep - (U8 *) s)); RETVAL = av; #line 12102 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_fixed_width_buf_loclen_flags); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_is_utf8_fixed_width_buf_loclen_flags) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "s, len, flags"); { #line 6329 "APItest.xs" AV *av; STRLEN ret_len; const U8 * ep; #line 12125 "APItest.c" AV * RETVAL; char * s = (char *)SvPV_nolen(ST(0)) ; STRLEN len = (STRLEN)SvUV(ST(1)) ; U32 flags = (unsigned long)SvUV(ST(2)) ; #line 6333 "APItest.xs" av = newAV(); av_push(av, newSViv(is_utf8_fixed_width_buf_loclen_flags((U8 *) s, len, &ep, &ret_len, flags))); av_push(av, newSViv(ep - (U8 *) s)); av_push(av, newSVuv(ret_len)); RETVAL = av; #line 12139 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_utf8_hop_safe); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_utf8_hop_safe) { dVAR; dXSARGS; if (items != 3) croak_xs_usage(cv, "s_sv, s_off, off"); { #line 6344 "APItest.xs" STRLEN len; U8 *p; U8 *r; #line 12162 "APItest.c" IV RETVAL; dXSTARG; SV * s_sv = ST(0) ; STRLEN s_off = (STRLEN)SvUV(ST(1)) ; IV off = (IV)SvIV(ST(2)) ; #line 6348 "APItest.xs" p = (U8 *)SvPV(s_sv, len); r = utf8_hop_safe(p + s_off, off, p, p + len); RETVAL = r - p; #line 12175 "APItest.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toLOWER); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toLOWER) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { UV RETVAL; dXSTARG; UV ord = (UV)SvUV(ST(0)) ; #line 6357 "APItest.xs" RETVAL = toLOWER(ord); #line 12195 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toLOWER_L1); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toLOWER_L1) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { UV RETVAL; dXSTARG; UV ord = (UV)SvUV(ST(0)) ; #line 6364 "APItest.xs" RETVAL = toLOWER_L1(ord); #line 12215 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toLOWER_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toLOWER_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { UV RETVAL; dXSTARG; UV ord = (UV)SvUV(ST(0)) ; #line 6371 "APItest.xs" RETVAL = toLOWER_LC(ord); #line 12235 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toLOWER_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toLOWER_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { #line 6378 "APItest.xs" U8 s[UTF8_MAXBYTES_CASE + 1]; STRLEN len; AV *av; SV *utf8; #line 12254 "APItest.c" AV * RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 6383 "APItest.xs" av = newAV(); av_push(av, newSVuv(toLOWER_uni(ord, s, &len))); utf8 = newSVpvn((char *) s, len); SvUTF8_on(utf8); av_push(av, utf8); av_push(av, newSVuv(len)); RETVAL = av; #line 12268 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toLOWER_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toLOWER_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { #line 6398 "APItest.xs" U8 s[UTF8_MAXBYTES_CASE + 1]; STRLEN len; AV *av; SV *utf8; #line 12292 "APItest.c" AV * RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 6403 "APItest.xs" av = newAV(); av_push(av, newSVuv(toLOWER_uvchr(ord, s, &len))); utf8 = newSVpvn((char *) s, len); SvUTF8_on(utf8); av_push(av, utf8); av_push(av, newSVuv(len)); RETVAL = av; #line 12306 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toLOWER_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toLOWER_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 6418 "APItest.xs" U8 *input; U8 s[UTF8_MAXBYTES_CASE + 1]; STRLEN len; AV *av; SV *utf8; const U8 * e; UV resultant_cp = UV_MAX; /* Initialized because of dumb compilers */ #line 12333 "APItest.c" AV * RETVAL; SV * p = ST(0) ; int type = (int)SvIV(ST(1)) ; #line 6426 "APItest.xs" input = (U8 *) SvPV(p, len); av = newAV(); if (type >= 0) { e = input + UTF8SKIP(input) - type; resultant_cp = toLOWER_utf8_safe(input, e, s, &len); } else if (type == -1) { resultant_cp = toLOWER_utf8(input, s, &len); } #ifndef NO_MATHOMS else { resultant_cp = Perl_to_utf8_lower(aTHX_ input, s, &len); } #endif av_push(av, newSVuv(resultant_cp)); utf8 = newSVpvn((char *) s, len); SvUTF8_on(utf8); av_push(av, utf8); av_push(av, newSVuv(len)); RETVAL = av; #line 12362 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toFOLD); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toFOLD) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { UV RETVAL; dXSTARG; UV ord = (UV)SvUV(ST(0)) ; #line 6454 "APItest.xs" RETVAL = toFOLD(ord); #line 12387 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toFOLD_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toFOLD_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { UV RETVAL; dXSTARG; UV ord = (UV)SvUV(ST(0)) ; #line 6461 "APItest.xs" RETVAL = toFOLD_LC(ord); #line 12407 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toFOLD_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toFOLD_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { #line 6468 "APItest.xs" U8 s[UTF8_MAXBYTES_CASE + 1]; STRLEN len; AV *av; SV *utf8; #line 12426 "APItest.c" AV * RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 6473 "APItest.xs" av = newAV(); av_push(av, newSVuv(toFOLD_uni(ord, s, &len))); utf8 = newSVpvn((char *) s, len); SvUTF8_on(utf8); av_push(av, utf8); av_push(av, newSVuv(len)); RETVAL = av; #line 12440 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toFOLD_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toFOLD_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { #line 6488 "APItest.xs" U8 s[UTF8_MAXBYTES_CASE + 1]; STRLEN len; AV *av; SV *utf8; #line 12464 "APItest.c" AV * RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 6493 "APItest.xs" av = newAV(); av_push(av, newSVuv(toFOLD_uvchr(ord, s, &len))); utf8 = newSVpvn((char *) s, len); SvUTF8_on(utf8); av_push(av, utf8); av_push(av, newSVuv(len)); RETVAL = av; #line 12478 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toFOLD_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toFOLD_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 6508 "APItest.xs" U8 *input; U8 s[UTF8_MAXBYTES_CASE + 1]; STRLEN len; AV *av; SV *utf8; const U8 * e; UV resultant_cp = UV_MAX; #line 12505 "APItest.c" AV * RETVAL; SV * p = ST(0) ; int type = (int)SvIV(ST(1)) ; #line 6516 "APItest.xs" input = (U8 *) SvPV(p, len); av = newAV(); if (type >= 0) { e = input + UTF8SKIP(input) - type; resultant_cp = toFOLD_utf8_safe(input, e, s, &len); } else if (type == -1) { resultant_cp = toFOLD_utf8(input, s, &len); } #ifndef NO_MATHOMS else { resultant_cp = Perl_to_utf8_fold(aTHX_ input, s, &len); } #endif av_push(av, newSVuv(resultant_cp)); utf8 = newSVpvn((char *) s, len); SvUTF8_on(utf8); av_push(av, utf8); av_push(av, newSVuv(len)); RETVAL = av; #line 12534 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toUPPER); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toUPPER) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { UV RETVAL; dXSTARG; UV ord = (UV)SvUV(ST(0)) ; #line 6544 "APItest.xs" RETVAL = toUPPER(ord); #line 12559 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toUPPER_LC); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toUPPER_LC) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { UV RETVAL; dXSTARG; UV ord = (UV)SvUV(ST(0)) ; #line 6551 "APItest.xs" RETVAL = toUPPER_LC(ord); #line 12579 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toUPPER_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toUPPER_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { #line 6558 "APItest.xs" U8 s[UTF8_MAXBYTES_CASE + 1]; STRLEN len; AV *av; SV *utf8; #line 12598 "APItest.c" AV * RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 6563 "APItest.xs" av = newAV(); av_push(av, newSVuv(toUPPER_uni(ord, s, &len))); utf8 = newSVpvn((char *) s, len); SvUTF8_on(utf8); av_push(av, utf8); av_push(av, newSVuv(len)); RETVAL = av; #line 12612 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toUPPER_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toUPPER_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { #line 6578 "APItest.xs" U8 s[UTF8_MAXBYTES_CASE + 1]; STRLEN len; AV *av; SV *utf8; #line 12636 "APItest.c" AV * RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 6583 "APItest.xs" av = newAV(); av_push(av, newSVuv(toUPPER_uvchr(ord, s, &len))); utf8 = newSVpvn((char *) s, len); SvUTF8_on(utf8); av_push(av, utf8); av_push(av, newSVuv(len)); RETVAL = av; #line 12650 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toUPPER_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toUPPER_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 6598 "APItest.xs" U8 *input; U8 s[UTF8_MAXBYTES_CASE + 1]; STRLEN len; AV *av; SV *utf8; const U8 * e; UV resultant_cp = UV_MAX; #line 12677 "APItest.c" AV * RETVAL; SV * p = ST(0) ; int type = (int)SvIV(ST(1)) ; #line 6606 "APItest.xs" input = (U8 *) SvPV(p, len); av = newAV(); if (type >= 0) { e = input + UTF8SKIP(input) - type; resultant_cp = toUPPER_utf8_safe(input, e, s, &len); } else if (type == -1) { resultant_cp = toUPPER_utf8(input, s, &len); } #ifndef NO_MATHOMS else { resultant_cp = Perl_to_utf8_upper(aTHX_ input, s, &len); } #endif av_push(av, newSVuv(resultant_cp)); utf8 = newSVpvn((char *) s, len); SvUTF8_on(utf8); av_push(av, utf8); av_push(av, newSVuv(len)); RETVAL = av; #line 12706 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toTITLE); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toTITLE) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { UV RETVAL; dXSTARG; UV ord = (UV)SvUV(ST(0)) ; #line 6634 "APItest.xs" RETVAL = toTITLE(ord); #line 12731 "APItest.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toTITLE_uni); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toTITLE_uni) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { #line 6641 "APItest.xs" U8 s[UTF8_MAXBYTES_CASE + 1]; STRLEN len; AV *av; SV *utf8; #line 12750 "APItest.c" AV * RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 6646 "APItest.xs" av = newAV(); av_push(av, newSVuv(toTITLE_uni(ord, s, &len))); utf8 = newSVpvn((char *) s, len); SvUTF8_on(utf8); av_push(av, utf8); av_push(av, newSVuv(len)); RETVAL = av; #line 12764 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toTITLE_uvchr); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toTITLE_uvchr) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ord"); { #line 6661 "APItest.xs" U8 s[UTF8_MAXBYTES_CASE + 1]; STRLEN len; AV *av; SV *utf8; #line 12788 "APItest.c" AV * RETVAL; UV ord = (UV)SvUV(ST(0)) ; #line 6666 "APItest.xs" av = newAV(); av_push(av, newSVuv(toTITLE_uvchr(ord, s, &len))); utf8 = newSVpvn((char *) s, len); SvUTF8_on(utf8); av_push(av, utf8); av_push(av, newSVuv(len)); RETVAL = av; #line 12802 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_toTITLE_utf8); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_toTITLE_utf8) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "p, type"); { #line 6681 "APItest.xs" U8 *input; U8 s[UTF8_MAXBYTES_CASE + 1]; STRLEN len; AV *av; SV *utf8; const U8 * e; UV resultant_cp = UV_MAX; #line 12829 "APItest.c" AV * RETVAL; SV * p = ST(0) ; int type = (int)SvIV(ST(1)) ; #line 6689 "APItest.xs" input = (U8 *) SvPV(p, len); av = newAV(); if (type >= 0) { e = input + UTF8SKIP(input) - type; resultant_cp = toTITLE_utf8_safe(input, e, s, &len); } else if (type == -1) { resultant_cp = toTITLE_utf8(input, s, &len); } #ifndef NO_MATHOMS else { resultant_cp = Perl_to_utf8_title(aTHX_ input, s, &len); } #endif av_push(av, newSVuv(resultant_cp)); utf8 = newSVpvn((char *) s, len); SvUTF8_on(utf8); av_push(av, utf8); av_push(av, newSVuv(len)); RETVAL = av; #line 12858 "APItest.c" { SV * RETVALSV; RETVALSV = newRV((SV*)RETVAL); RETVALSV = sv_2mortal(RETVALSV); ST(0) = RETVALSV; } } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_Gconvert); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_Gconvert) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "number, num_digits"); { #line 6717 "APItest.xs" char buffer[100]; int len; #line 12880 "APItest.c" SV * RETVAL; SV * number = ST(0) ; SV * num_digits = ST(1) ; #line 6720 "APItest.xs" len = (int) SvIV(num_digits); if (len > 99) croak("Too long a number for test_Gconvert"); if (len < 0) croak("Too short a number for test_Gconvert"); PERL_UNUSED_RESULT(Gconvert(SvNV(number), len, 0, /* No trailing zeroes */ buffer)); RETVAL = newSVpv(buffer, 0); #line 12894 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Magic_test_Perl_langinfo); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Magic_test_Perl_langinfo) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "item"); { SV * RETVAL; SV * item = ST(0) ; #line 6733 "APItest.xs" RETVAL = newSVpv(Perl_langinfo(SvIV(item)), 0); #line 12914 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Backrefs_apitest_weaken); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Backrefs_apitest_weaken) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); { SV * sv = ST(0) ; #line 6743 "APItest.xs" sv_rvweaken(sv); #line 12933 "APItest.c" } XSRETURN_EMPTY; } XS_EUPXS(XS_XS__APItest__Backrefs_has_backrefs); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Backrefs_has_backrefs) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "sv"); { SV * RETVAL; SV * sv = ST(0) ; #line 6748 "APItest.xs" if (SvROK(sv) && sv_get_backrefs(SvRV(sv))) RETVAL = &PL_sv_yes; else RETVAL = &PL_sv_no; #line 12954 "APItest.c" RETVAL = sv_2mortal(RETVAL); ST(0) = RETVAL; } XSRETURN(1); } #ifdef WIN32 #ifdef PERL_IMPLICIT_SYS #define XSubPPtmpAAAE 1 XS_EUPXS(XS_XS__APItest__Backrefs_PerlDir_mapA); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Backrefs_PerlDir_mapA) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "path"); { const char * RETVAL; dXSTARG; const char * path = (const char *)SvPV_nolen(ST(0)) ; RETVAL = PerlDir_mapA(path); sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; } XSRETURN(1); } XS_EUPXS(XS_XS__APItest__Backrefs_PerlDir_mapW); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Backrefs_PerlDir_mapW) { dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "wpath"); { const WCHAR * RETVAL; dXSTARG; const WCHAR * wpath = (const WCHAR *)SvPV_nolen(ST(0)) ; RETVAL = PerlDir_mapW(wpath); XSprePUSH; PUSHp((const char *)(RETVAL), sizeof(WCHAR) * (1+wcslen(RETVAL))); } XSRETURN(1); } #endif #define XSubPPtmpAAAF 1 XS_EUPXS(XS_XS__APItest__Backrefs_Comctl32Version); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_XS__APItest__Backrefs_Comctl32Version) { dVAR; dXSARGS; if (items != 0) croak_xs_usage(cv, ""); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { #line 6769 "APItest.xs" HMODULE dll; VS_FIXEDFILEINFO *info; UINT len; HRSRC hrsc; HGLOBAL ver; void * vercopy; #line 13023 "APItest.c" #line 6776 "APItest.xs" dll = GetModuleHandle("comctl32.dll"); /* must already be in proc */ if(!dll) croak("Comctl32Version: comctl32.dll not in process???"); hrsc = FindResource(dll, MAKEINTRESOURCE(VS_VERSION_INFO), MAKEINTRESOURCE((Size_t)VS_FILE_INFO)); if(!hrsc) croak("Comctl32Version: comctl32.dll no version???"); ver = LoadResource(dll, hrsc); len = SizeofResource(dll, hrsc); vercopy = (void *)sv_grow(sv_newmortal(),len); memcpy(vercopy, ver, len); if (VerQueryValue(vercopy, "\\", (void**)&info, &len)) { int dwValueMS1 = (info->dwFileVersionMS>>16); int dwValueMS2 = (info->dwFileVersionMS&0xffff); int dwValueLS1 = (info->dwFileVersionLS>>16); int dwValueLS2 = (info->dwFileVersionLS&0xffff); EXTEND(SP, 4); mPUSHi(dwValueMS1); mPUSHi(dwValueMS2); mPUSHi(dwValueLS1); mPUSHi(dwValueLS2); } #line 13047 "APItest.c" PUTBACK; return; } } #endif #ifdef __cplusplus extern "C" #endif XS_EXTERNAL(boot_XS__APItest); /* prototype to pass -Wmissing-prototypes */ XS_EXTERNAL(boot_XS__APItest) { #if PERL_VERSION_LE(5, 21, 5) dVAR; dXSARGS; #else dVAR; dXSBOOTARGSXSAPIVERCHK; #endif #if (PERL_REVISION == 5 && PERL_VERSION < 9) char* file = __FILE__; #else const char* file = __FILE__; #endif PERL_UNUSED_VAR(file); PERL_UNUSED_VAR(cv); /* -W */ PERL_UNUSED_VAR(items); /* -W */ #if PERL_VERSION_LE(5, 21, 5) XS_VERSION_BOOTCHECK; # ifdef XS_APIVERSION_BOOTCHECK XS_APIVERSION_BOOTCHECK; # endif #endif newXS_deffile("XS::APItest::constant", XS_XS__APItest_constant); newXS_deffile("XS::APItest::numeric::grok_number", XS_XS__APItest__numeric_grok_number); newXS_deffile("XS::APItest::numeric::grok_number_flags", XS_XS__APItest__numeric_grok_number_flags); newXS_deffile("XS::APItest::numeric::grok_atoUV", XS_XS__APItest__numeric_grok_atoUV); newXS_deffile("XS::APItest::numeric::assertx", XS_XS__APItest__numeric_assertx); newXS_deffile("XS::APItest::utf8::bytes_cmp_utf8", XS_XS__APItest__utf8_bytes_cmp_utf8); newXS_deffile("XS::APItest::utf8::test_utf8_to_bytes", XS_XS__APItest__utf8_test_utf8_to_bytes); newXS_deffile("XS::APItest::utf8::test_utf8n_to_uvchr_msgs", XS_XS__APItest__utf8_test_utf8n_to_uvchr_msgs); newXS_deffile("XS::APItest::utf8::test_utf8n_to_uvchr_error", XS_XS__APItest__utf8_test_utf8n_to_uvchr_error); newXS_deffile("XS::APItest::utf8::test_valid_utf8_to_uvchr", XS_XS__APItest__utf8_test_valid_utf8_to_uvchr); newXS_deffile("XS::APItest::utf8::test_uvchr_to_utf8_flags", XS_XS__APItest__utf8_test_uvchr_to_utf8_flags); newXS_deffile("XS::APItest::utf8::test_uvchr_to_utf8_flags_msgs", XS_XS__APItest__utf8_test_uvchr_to_utf8_flags_msgs); newXS_deffile("XS::APItest::Overload::amagic_deref_call", XS_XS__APItest__Overload_amagic_deref_call); newXS_deffile("XS::APItest::Overload::tryAMAGICunDEREF_var", XS_XS__APItest__Overload_tryAMAGICunDEREF_var); newXS_deffile("XS::APItest::XSUB::XS_VERSION_defined", XS_XS__APItest__XSUB_XS_VERSION_defined); newXS_deffile("XS::APItest::XSUB::XS_APIVERSION_valid", XS_XS__APItest__XSUB_XS_APIVERSION_valid); newXS_deffile("XS::APItest::XSUB::xsreturn", XS_XS__APItest__XSUB_xsreturn); newXS_deffile("XS::APItest::XSUB::xsreturn_iv", XS_XS__APItest__XSUB_xsreturn_iv); newXS_deffile("XS::APItest::XSUB::xsreturn_uv", XS_XS__APItest__XSUB_xsreturn_uv); newXS_deffile("XS::APItest::XSUB::xsreturn_nv", XS_XS__APItest__XSUB_xsreturn_nv); newXS_deffile("XS::APItest::XSUB::xsreturn_pv", XS_XS__APItest__XSUB_xsreturn_pv); newXS_deffile("XS::APItest::XSUB::xsreturn_pvn", XS_XS__APItest__XSUB_xsreturn_pvn); newXS_deffile("XS::APItest::XSUB::xsreturn_no", XS_XS__APItest__XSUB_xsreturn_no); newXS_deffile("XS::APItest::XSUB::xsreturn_yes", XS_XS__APItest__XSUB_xsreturn_yes); newXS_deffile("XS::APItest::XSUB::xsreturn_undef", XS_XS__APItest__XSUB_xsreturn_undef); newXS_deffile("XS::APItest::XSUB::xsreturn_empty", XS_XS__APItest__XSUB_xsreturn_empty); newXS_deffile("XS::APItest::Hash::rot13_hash", XS_XS__APItest__Hash_rot13_hash); newXS_deffile("XS::APItest::Hash::bitflip_hash", XS_XS__APItest__Hash_bitflip_hash); newXS_deffile("XS::APItest::Hash::exists", XS_XS__APItest__Hash_exists); newXS_deffile("XS::APItest::Hash::exists_ent", XS_XS__APItest__Hash_exists_ent); newXS_deffile("XS::APItest::Hash::delete", XS_XS__APItest__Hash_delete); newXS_deffile("XS::APItest::Hash::delete_ent", XS_XS__APItest__Hash_delete_ent); newXS_deffile("XS::APItest::Hash::store_ent", XS_XS__APItest__Hash_store_ent); newXS_deffile("XS::APItest::Hash::store", XS_XS__APItest__Hash_store); newXS_deffile("XS::APItest::Hash::fetch_ent", XS_XS__APItest__Hash_fetch_ent); newXS_deffile("XS::APItest::Hash::fetch", XS_XS__APItest__Hash_fetch); #if XSubPPtmpAAAA newXS_deffile("XS::APItest::Hash::common", XS_XS__APItest__Hash_common); #endif newXS_deffile("XS::APItest::Hash::test_hv_free_ent", XS_XS__APItest__Hash_test_hv_free_ent); newXS_deffile("XS::APItest::Hash::test_hv_delayfree_ent", XS_XS__APItest__Hash_test_hv_delayfree_ent); newXS_deffile("XS::APItest::Hash::test_share_unshare_pvn", XS_XS__APItest__Hash_test_share_unshare_pvn); #if XSubPPtmpAAAB newXS_deffile("XS::APItest::Hash::refcounted_he_exists", XS_XS__APItest__Hash_refcounted_he_exists); newXS_deffile("XS::APItest::Hash::refcounted_he_fetch", XS_XS__APItest__Hash_refcounted_he_fetch); #endif newXS_deffile("XS::APItest::Hash::test_force_keys", XS_XS__APItest__Hash_test_force_keys); newXS_deffile("XS::APItest::TempLv::make_temp_mg_lv", XS_XS__APItest__TempLv_make_temp_mg_lv); newXS_deffile("XS::APItest::PtrTable::new", XS_XS__APItest__PtrTable_new); newXS_deffile("XS::APItest::PtrTable::DESTROY", XS_XS__APItest__PtrTable_DESTROY); newXS_deffile("XS::APItest::PtrTable::store", XS_XS__APItest__PtrTable_store); newXS_deffile("XS::APItest::PtrTable::fetch", XS_XS__APItest__PtrTable_fetch); newXS_deffile("XS::APItest::PtrTable::split", XS_XS__APItest__PtrTable_split); newXS_deffile("XS::APItest::PtrTable::clear", XS_XS__APItest__PtrTable_clear); newXS_deffile("XS::APItest::AutoLoader::AUTOLOAD", XS_XS__APItest__AutoLoader_AUTOLOAD); (void)newXSproto_portable("XS::APItest::AutoLoader::AUTOLOADp", XS_XS__APItest__AutoLoader_AUTOLOADp, file, "*$"); newXS_deffile("XS::APItest::xop_custom_ops", XS_XS__APItest_xop_custom_ops); newXS_deffile("XS::APItest::xop_custom_op_names", XS_XS__APItest_xop_custom_op_names); newXS_deffile("XS::APItest::xop_custom_op_descs", XS_XS__APItest_xop_custom_op_descs); newXS_deffile("XS::APItest::xop_register", XS_XS__APItest_xop_register); newXS_deffile("XS::APItest::xop_clear", XS_XS__APItest_xop_clear); newXS_deffile("XS::APItest::xop_my_xop", XS_XS__APItest_xop_my_xop); newXS_deffile("XS::APItest::xop_ppaddr", XS_XS__APItest_xop_ppaddr); newXS_deffile("XS::APItest::xop_OA_UNOP", XS_XS__APItest_xop_OA_UNOP); newXS_deffile("XS::APItest::xop_build_optree", XS_XS__APItest_xop_build_optree); newXS_deffile("XS::APItest::xop_from_custom_op", XS_XS__APItest_xop_from_custom_op); newXS_deffile("XS::APItest::CLONE", XS_XS__APItest_CLONE); newXS_deffile("XS::APItest::print_double", XS_XS__APItest_print_double); newXS_deffile("XS::APItest::have_long_double", XS_XS__APItest_have_long_double); newXS_deffile("XS::APItest::print_long_double", XS_XS__APItest_print_long_double); newXS_deffile("XS::APItest::print_int", XS_XS__APItest_print_int); newXS_deffile("XS::APItest::print_long", XS_XS__APItest_print_long); newXS_deffile("XS::APItest::print_float", XS_XS__APItest_print_float); newXS_deffile("XS::APItest::print_flush", XS_XS__APItest_print_flush); newXS_deffile("XS::APItest::mpushp", XS_XS__APItest_mpushp); newXS_deffile("XS::APItest::mpushn", XS_XS__APItest_mpushn); newXS_deffile("XS::APItest::mpushi", XS_XS__APItest_mpushi); newXS_deffile("XS::APItest::mpushu", XS_XS__APItest_mpushu); newXS_deffile("XS::APItest::mxpushp", XS_XS__APItest_mxpushp); newXS_deffile("XS::APItest::mxpushn", XS_XS__APItest_mxpushn); newXS_deffile("XS::APItest::mxpushi", XS_XS__APItest_mxpushi); newXS_deffile("XS::APItest::mxpushu", XS_XS__APItest_mxpushu); newXS_deffile("XS::APItest::test_EXTEND", XS_XS__APItest_test_EXTEND); newXS_deffile("XS::APItest::call_sv_C", XS_XS__APItest_call_sv_C); newXS_deffile("XS::APItest::call_sv", XS_XS__APItest_call_sv); newXS_deffile("XS::APItest::call_pv", XS_XS__APItest_call_pv); newXS_deffile("XS::APItest::call_argv", XS_XS__APItest_call_argv); newXS_deffile("XS::APItest::call_method", XS_XS__APItest_call_method); cv = newXS_deffile("XS::APItest::newCONSTSUB", XS_XS__APItest_newCONSTSUB); XSANY.any_i32 = 0; cv = newXS_deffile("XS::APItest::newCONSTSUB_flags", XS_XS__APItest_newCONSTSUB); XSANY.any_i32 = 1; newXS_deffile("XS::APItest::gv_init_type", XS_XS__APItest_gv_init_type); newXS_deffile("XS::APItest::gv_fetchmeth_type", XS_XS__APItest_gv_fetchmeth_type); newXS_deffile("XS::APItest::gv_fetchmeth_autoload_type", XS_XS__APItest_gv_fetchmeth_autoload_type); newXS_deffile("XS::APItest::gv_fetchmethod_flags_type", XS_XS__APItest_gv_fetchmethod_flags_type); newXS_deffile("XS::APItest::gv_autoload_type", XS_XS__APItest_gv_autoload_type); newXS_deffile("XS::APItest::gv_const_sv", XS_XS__APItest_gv_const_sv); newXS_deffile("XS::APItest::whichsig_type", XS_XS__APItest_whichsig_type); newXS_deffile("XS::APItest::eval_sv", XS_XS__APItest_eval_sv); newXS_deffile("XS::APItest::eval_pv", XS_XS__APItest_eval_pv); newXS_deffile("XS::APItest::require_pv", XS_XS__APItest_require_pv); newXS_deffile("XS::APItest::apitest_exception", XS_XS__APItest_apitest_exception); newXS_deffile("XS::APItest::mycroak", XS_XS__APItest_mycroak); newXS_deffile("XS::APItest::strtab", XS_XS__APItest_strtab); newXS_deffile("XS::APItest::my_cxt_getint", XS_XS__APItest_my_cxt_getint); newXS_deffile("XS::APItest::my_cxt_setint", XS_XS__APItest_my_cxt_setint); newXS_deffile("XS::APItest::my_cxt_getsv", XS_XS__APItest_my_cxt_getsv); newXS_deffile("XS::APItest::my_cxt_setsv", XS_XS__APItest_my_cxt_setsv); newXS_deffile("XS::APItest::sv_setsv_cow_hashkey_core", XS_XS__APItest_sv_setsv_cow_hashkey_core); newXS_deffile("XS::APItest::sv_setsv_cow_hashkey_notcore", XS_XS__APItest_sv_setsv_cow_hashkey_notcore); newXS_deffile("XS::APItest::sv_set_deref", XS_XS__APItest_sv_set_deref); newXS_deffile("XS::APItest::rmagical_cast", XS_XS__APItest_rmagical_cast); newXS_deffile("XS::APItest::rmagical_flags", XS_XS__APItest_rmagical_flags); newXS_deffile("XS::APItest::my_caller", XS_XS__APItest_my_caller); newXS_deffile("XS::APItest::DPeek", XS_XS__APItest_DPeek); newXS_deffile("XS::APItest::BEGIN", XS_XS__APItest_BEGIN); newXS_deffile("XS::APItest::CHECK", XS_XS__APItest_CHECK); newXS_deffile("XS::APItest::UNITCHECK", XS_XS__APItest_UNITCHECK); newXS_deffile("XS::APItest::INIT", XS_XS__APItest_INIT); newXS_deffile("XS::APItest::END", XS_XS__APItest_END); cv = newXS_deffile("XS::APItest::utf16_to_utf8", XS_XS__APItest_utf16_to_utf8); XSANY.any_i32 = 0; cv = newXS_deffile("XS::APItest::utf16_to_utf8_reversed", XS_XS__APItest_utf16_to_utf8); XSANY.any_i32 = 1; newXS_deffile("XS::APItest::my_exit", XS_XS__APItest_my_exit); newXS_deffile("XS::APItest::first_byte", XS_XS__APItest_first_byte); newXS_deffile("XS::APItest::sv_count", XS_XS__APItest_sv_count); newXS_deffile("XS::APItest::bhk_record", XS_XS__APItest_bhk_record); newXS_deffile("XS::APItest::test_magic_chain", XS_XS__APItest_test_magic_chain); newXS_deffile("XS::APItest::test_op_contextualize", XS_XS__APItest_test_op_contextualize); (void)newXSproto_portable("XS::APItest::test_rv2cv_op_cv", XS_XS__APItest_test_rv2cv_op_cv, file, ""); newXS_deffile("XS::APItest::test_cv_getset_call_checker", XS_XS__APItest_test_cv_getset_call_checker); newXS_deffile("XS::APItest::cv_set_call_checker_lists", XS_XS__APItest_cv_set_call_checker_lists); newXS_deffile("XS::APItest::cv_set_call_checker_scalars", XS_XS__APItest_cv_set_call_checker_scalars); newXS_deffile("XS::APItest::cv_set_call_checker_proto", XS_XS__APItest_cv_set_call_checker_proto); newXS_deffile("XS::APItest::cv_set_call_checker_proto_or_list", XS_XS__APItest_cv_set_call_checker_proto_or_list); newXS_deffile("XS::APItest::cv_set_call_checker_multi_sum", XS_XS__APItest_cv_set_call_checker_multi_sum); newXS_deffile("XS::APItest::test_cophh", XS_XS__APItest_test_cophh); newXS_deffile("XS::APItest::test_coplabel", XS_XS__APItest_test_coplabel); newXS_deffile("XS::APItest::example_cophh_2hv", XS_XS__APItest_example_cophh_2hv); newXS_deffile("XS::APItest::test_savehints", XS_XS__APItest_test_savehints); newXS_deffile("XS::APItest::test_copyhints", XS_XS__APItest_test_copyhints); newXS_deffile("XS::APItest::test_op_list", XS_XS__APItest_test_op_list); newXS_deffile("XS::APItest::test_op_linklist", XS_XS__APItest_test_op_linklist); newXS_deffile("XS::APItest::peep_enable", XS_XS__APItest_peep_enable); newXS_deffile("XS::APItest::peep_disable", XS_XS__APItest_peep_disable); newXS_deffile("XS::APItest::peep_record", XS_XS__APItest_peep_record); newXS_deffile("XS::APItest::rpeep_record", XS_XS__APItest_rpeep_record); (void)newXSproto_portable("XS::APItest::multicall_each", XS_XS__APItest_multicall_each, file, "&@"); (void)newXSproto_portable("XS::APItest::multicall_return", XS_XS__APItest_multicall_return, file, "&$"); #if XSubPPtmpAAAC newXS_deffile("XS::APItest::clone_with_stack", XS_XS__APItest_clone_with_stack); #endif newXS_deffile("XS::APItest::take_svref", XS_XS__APItest_take_svref); newXS_deffile("XS::APItest::take_avref", XS_XS__APItest_take_avref); newXS_deffile("XS::APItest::take_hvref", XS_XS__APItest_take_hvref); newXS_deffile("XS::APItest::take_cvref", XS_XS__APItest_take_cvref); (void)newXSproto_portable("XS::APItest::establish_cleanup", XS_XS__APItest_establish_cleanup, file, "$"); (void)newXSproto_portable("XS::APItest::postinc", XS_XS__APItest_postinc, file, "$"); newXS_deffile("XS::APItest::filter", XS_XS__APItest_filter); newXS_deffile("XS::APItest::lv_temp_object", XS_XS__APItest_lv_temp_object); newXS_deffile("XS::APItest::fill_hash_with_nulls", XS_XS__APItest_fill_hash_with_nulls); newXS_deffile("XS::APItest::newHVhv", XS_XS__APItest_newHVhv); newXS_deffile("XS::APItest::SvIsCOW", XS_XS__APItest_SvIsCOW); (void)newXSproto_portable("XS::APItest::pad_scalar", XS_XS__APItest_pad_scalar, file, "$$"); newXS_deffile("XS::APItest::fetch_pad_names", XS_XS__APItest_fetch_pad_names); (void)newXSproto_portable("XS::APItest::underscore_length", XS_XS__APItest_underscore_length, file, ""); newXS_deffile("XS::APItest::stringify", XS_XS__APItest_stringify); newXS_deffile("XS::APItest::HvENAME", XS_XS__APItest_HvENAME); newXS_deffile("XS::APItest::xs_cmp", XS_XS__APItest_xs_cmp); newXS_deffile("XS::APItest::xs_cmp_undef", XS_XS__APItest_xs_cmp_undef); newXS_deffile("XS::APItest::SvPVbyte", XS_XS__APItest_SvPVbyte); newXS_deffile("XS::APItest::SvPVutf8", XS_XS__APItest_SvPVutf8); newXS_deffile("XS::APItest::setup_addissub", XS_XS__APItest_setup_addissub); newXS_deffile("XS::APItest::setup_rv2cv_addunderbar", XS_XS__APItest_setup_rv2cv_addunderbar); #if XSubPPtmpAAAD newXS_deffile("XS::APItest::test_alloccopstash", XS_XS__APItest_test_alloccopstash); #endif newXS_deffile("XS::APItest::test_newFOROP_without_slab", XS_XS__APItest_test_newFOROP_without_slab); newXS_deffile("XS::APItest::callregexec", XS_XS__APItest_callregexec); newXS_deffile("XS::APItest::lexical_import", XS_XS__APItest_lexical_import); newXS_deffile("XS::APItest::sv_mortalcopy", XS_XS__APItest_sv_mortalcopy); newXS_deffile("XS::APItest::newRV", XS_XS__APItest_newRV); newXS_deffile("XS::APItest::alias_av", XS_XS__APItest_alias_av); newXS_deffile("XS::APItest::cv_name", XS_XS__APItest_cv_name); newXS_deffile("XS::APItest::sv_catpvn", XS_XS__APItest_sv_catpvn); newXS_deffile("XS::APItest::test_newOP_CUSTOM", XS_XS__APItest_test_newOP_CUSTOM); newXS_deffile("XS::APItest::test_sv_catpvf", XS_XS__APItest_test_sv_catpvf); newXS_deffile("XS::APItest::load_module", XS_XS__APItest_load_module); newXS_deffile("XS::APItest::string_without_null", XS_XS__APItest_string_without_null); newXS_deffile("XS::APItest::get_cv", XS_XS__APItest_get_cv); newXS_deffile("XS::APItest::get_cv_flags", XS_XS__APItest_get_cv_flags); newXS_deffile("XS::APItest::unshift_and_set_defav", XS_XS__APItest_unshift_and_set_defav); newXS_deffile("XS::APItest::PerlIO_stderr", XS_XS__APItest_PerlIO_stderr); newXS_deffile("XS::APItest::PerlIO_stdout", XS_XS__APItest_PerlIO_stdout); newXS_deffile("XS::APItest::PerlIO_stdin", XS_XS__APItest_PerlIO_stdin); newXS_deffile("XS::APItest::PerlIO_exportFILE", XS_XS__APItest_PerlIO_exportFILE); newXS_deffile("XS::APItest::AUTOLOADtest::AUTOLOAD", XS_XS__APItest__AUTOLOADtest_AUTOLOAD); cv = newXS_deffile("XS::APItest::Magic::sv_magic_bar", XS_XS__APItest__Magic_sv_magic_foo); XSANY.any_i32 = 1; cv = newXS_deffile("XS::APItest::Magic::sv_magic_foo", XS_XS__APItest__Magic_sv_magic_foo); XSANY.any_i32 = 0; cv = newXS_deffile("XS::APItest::Magic::mg_find_bar", XS_XS__APItest__Magic_mg_find_foo); XSANY.any_i32 = 1; cv = newXS_deffile("XS::APItest::Magic::mg_find_foo", XS_XS__APItest__Magic_mg_find_foo); XSANY.any_i32 = 0; cv = newXS_deffile("XS::APItest::Magic::sv_unmagic_bar", XS_XS__APItest__Magic_sv_unmagic_foo); XSANY.any_i32 = 1; cv = newXS_deffile("XS::APItest::Magic::sv_unmagic_foo", XS_XS__APItest__Magic_sv_unmagic_foo); XSANY.any_i32 = 0; newXS_deffile("XS::APItest::Magic::sv_magic", XS_XS__APItest__Magic_sv_magic); newXS_deffile("XS::APItest::Magic::test_get_vtbl", XS_XS__APItest__Magic_test_get_vtbl); newXS_deffile("XS::APItest::Magic::sv_magic_myset", XS_XS__APItest__Magic_sv_magic_myset); newXS_deffile("XS::APItest::Magic::test_isBLANK_uni", XS_XS__APItest__Magic_test_isBLANK_uni); newXS_deffile("XS::APItest::Magic::test_isBLANK_uvchr", XS_XS__APItest__Magic_test_isBLANK_uvchr); newXS_deffile("XS::APItest::Magic::test_isBLANK_LC_uvchr", XS_XS__APItest__Magic_test_isBLANK_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isBLANK", XS_XS__APItest__Magic_test_isBLANK); newXS_deffile("XS::APItest::Magic::test_isBLANK_A", XS_XS__APItest__Magic_test_isBLANK_A); newXS_deffile("XS::APItest::Magic::test_isBLANK_L1", XS_XS__APItest__Magic_test_isBLANK_L1); newXS_deffile("XS::APItest::Magic::test_isBLANK_LC", XS_XS__APItest__Magic_test_isBLANK_LC); newXS_deffile("XS::APItest::Magic::test_isBLANK_utf8", XS_XS__APItest__Magic_test_isBLANK_utf8); newXS_deffile("XS::APItest::Magic::test_isBLANK_LC_utf8", XS_XS__APItest__Magic_test_isBLANK_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isVERTWS_uni", XS_XS__APItest__Magic_test_isVERTWS_uni); newXS_deffile("XS::APItest::Magic::test_isVERTWS_uvchr", XS_XS__APItest__Magic_test_isVERTWS_uvchr); newXS_deffile("XS::APItest::Magic::test_isVERTWS_utf8", XS_XS__APItest__Magic_test_isVERTWS_utf8); newXS_deffile("XS::APItest::Magic::test_isUPPER_uni", XS_XS__APItest__Magic_test_isUPPER_uni); newXS_deffile("XS::APItest::Magic::test_isUPPER_uvchr", XS_XS__APItest__Magic_test_isUPPER_uvchr); newXS_deffile("XS::APItest::Magic::test_isUPPER_LC_uvchr", XS_XS__APItest__Magic_test_isUPPER_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isUPPER", XS_XS__APItest__Magic_test_isUPPER); newXS_deffile("XS::APItest::Magic::test_isUPPER_A", XS_XS__APItest__Magic_test_isUPPER_A); newXS_deffile("XS::APItest::Magic::test_isUPPER_L1", XS_XS__APItest__Magic_test_isUPPER_L1); newXS_deffile("XS::APItest::Magic::test_isUPPER_LC", XS_XS__APItest__Magic_test_isUPPER_LC); newXS_deffile("XS::APItest::Magic::test_isUPPER_utf8", XS_XS__APItest__Magic_test_isUPPER_utf8); newXS_deffile("XS::APItest::Magic::test_isUPPER_LC_utf8", XS_XS__APItest__Magic_test_isUPPER_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isLOWER_uni", XS_XS__APItest__Magic_test_isLOWER_uni); newXS_deffile("XS::APItest::Magic::test_isLOWER_uvchr", XS_XS__APItest__Magic_test_isLOWER_uvchr); newXS_deffile("XS::APItest::Magic::test_isLOWER_LC_uvchr", XS_XS__APItest__Magic_test_isLOWER_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isLOWER", XS_XS__APItest__Magic_test_isLOWER); newXS_deffile("XS::APItest::Magic::test_isLOWER_A", XS_XS__APItest__Magic_test_isLOWER_A); newXS_deffile("XS::APItest::Magic::test_isLOWER_L1", XS_XS__APItest__Magic_test_isLOWER_L1); newXS_deffile("XS::APItest::Magic::test_isLOWER_LC", XS_XS__APItest__Magic_test_isLOWER_LC); newXS_deffile("XS::APItest::Magic::test_isLOWER_utf8", XS_XS__APItest__Magic_test_isLOWER_utf8); newXS_deffile("XS::APItest::Magic::test_isLOWER_LC_utf8", XS_XS__APItest__Magic_test_isLOWER_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isALPHA_uni", XS_XS__APItest__Magic_test_isALPHA_uni); newXS_deffile("XS::APItest::Magic::test_isALPHA_uvchr", XS_XS__APItest__Magic_test_isALPHA_uvchr); newXS_deffile("XS::APItest::Magic::test_isALPHA_LC_uvchr", XS_XS__APItest__Magic_test_isALPHA_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isALPHA", XS_XS__APItest__Magic_test_isALPHA); newXS_deffile("XS::APItest::Magic::test_isALPHA_A", XS_XS__APItest__Magic_test_isALPHA_A); newXS_deffile("XS::APItest::Magic::test_isALPHA_L1", XS_XS__APItest__Magic_test_isALPHA_L1); newXS_deffile("XS::APItest::Magic::test_isALPHA_LC", XS_XS__APItest__Magic_test_isALPHA_LC); newXS_deffile("XS::APItest::Magic::test_isALPHA_utf8", XS_XS__APItest__Magic_test_isALPHA_utf8); newXS_deffile("XS::APItest::Magic::test_isALPHA_LC_utf8", XS_XS__APItest__Magic_test_isALPHA_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isWORDCHAR_uni", XS_XS__APItest__Magic_test_isWORDCHAR_uni); newXS_deffile("XS::APItest::Magic::test_isWORDCHAR_uvchr", XS_XS__APItest__Magic_test_isWORDCHAR_uvchr); newXS_deffile("XS::APItest::Magic::test_isWORDCHAR_LC_uvchr", XS_XS__APItest__Magic_test_isWORDCHAR_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isWORDCHAR", XS_XS__APItest__Magic_test_isWORDCHAR); newXS_deffile("XS::APItest::Magic::test_isWORDCHAR_A", XS_XS__APItest__Magic_test_isWORDCHAR_A); newXS_deffile("XS::APItest::Magic::test_isWORDCHAR_L1", XS_XS__APItest__Magic_test_isWORDCHAR_L1); newXS_deffile("XS::APItest::Magic::test_isWORDCHAR_LC", XS_XS__APItest__Magic_test_isWORDCHAR_LC); newXS_deffile("XS::APItest::Magic::test_isWORDCHAR_utf8", XS_XS__APItest__Magic_test_isWORDCHAR_utf8); newXS_deffile("XS::APItest::Magic::test_isWORDCHAR_LC_utf8", XS_XS__APItest__Magic_test_isWORDCHAR_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isALPHANUMERIC_uni", XS_XS__APItest__Magic_test_isALPHANUMERIC_uni); newXS_deffile("XS::APItest::Magic::test_isALPHANUMERIC_uvchr", XS_XS__APItest__Magic_test_isALPHANUMERIC_uvchr); newXS_deffile("XS::APItest::Magic::test_isALPHANUMERIC_LC_uvchr", XS_XS__APItest__Magic_test_isALPHANUMERIC_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isALPHANUMERIC", XS_XS__APItest__Magic_test_isALPHANUMERIC); newXS_deffile("XS::APItest::Magic::test_isALPHANUMERIC_A", XS_XS__APItest__Magic_test_isALPHANUMERIC_A); newXS_deffile("XS::APItest::Magic::test_isALPHANUMERIC_L1", XS_XS__APItest__Magic_test_isALPHANUMERIC_L1); newXS_deffile("XS::APItest::Magic::test_isALPHANUMERIC_LC", XS_XS__APItest__Magic_test_isALPHANUMERIC_LC); newXS_deffile("XS::APItest::Magic::test_isALPHANUMERIC_utf8", XS_XS__APItest__Magic_test_isALPHANUMERIC_utf8); newXS_deffile("XS::APItest::Magic::test_isALPHANUMERIC_LC_utf8", XS_XS__APItest__Magic_test_isALPHANUMERIC_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isALNUM", XS_XS__APItest__Magic_test_isALNUM); newXS_deffile("XS::APItest::Magic::test_isALNUM_uni", XS_XS__APItest__Magic_test_isALNUM_uni); newXS_deffile("XS::APItest::Magic::test_isALNUM_LC_uvchr", XS_XS__APItest__Magic_test_isALNUM_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isALNUM_LC", XS_XS__APItest__Magic_test_isALNUM_LC); newXS_deffile("XS::APItest::Magic::test_isALNUM_utf8", XS_XS__APItest__Magic_test_isALNUM_utf8); newXS_deffile("XS::APItest::Magic::test_isALNUM_LC_utf8", XS_XS__APItest__Magic_test_isALNUM_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isDIGIT_uni", XS_XS__APItest__Magic_test_isDIGIT_uni); newXS_deffile("XS::APItest::Magic::test_isDIGIT_uvchr", XS_XS__APItest__Magic_test_isDIGIT_uvchr); newXS_deffile("XS::APItest::Magic::test_isDIGIT_LC_uvchr", XS_XS__APItest__Magic_test_isDIGIT_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isDIGIT_utf8", XS_XS__APItest__Magic_test_isDIGIT_utf8); newXS_deffile("XS::APItest::Magic::test_isDIGIT_LC_utf8", XS_XS__APItest__Magic_test_isDIGIT_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isDIGIT", XS_XS__APItest__Magic_test_isDIGIT); newXS_deffile("XS::APItest::Magic::test_isDIGIT_A", XS_XS__APItest__Magic_test_isDIGIT_A); newXS_deffile("XS::APItest::Magic::test_isDIGIT_L1", XS_XS__APItest__Magic_test_isDIGIT_L1); newXS_deffile("XS::APItest::Magic::test_isDIGIT_LC", XS_XS__APItest__Magic_test_isDIGIT_LC); newXS_deffile("XS::APItest::Magic::test_isOCTAL", XS_XS__APItest__Magic_test_isOCTAL); newXS_deffile("XS::APItest::Magic::test_isOCTAL_A", XS_XS__APItest__Magic_test_isOCTAL_A); newXS_deffile("XS::APItest::Magic::test_isOCTAL_L1", XS_XS__APItest__Magic_test_isOCTAL_L1); newXS_deffile("XS::APItest::Magic::test_isIDFIRST_uni", XS_XS__APItest__Magic_test_isIDFIRST_uni); newXS_deffile("XS::APItest::Magic::test_isIDFIRST_uvchr", XS_XS__APItest__Magic_test_isIDFIRST_uvchr); newXS_deffile("XS::APItest::Magic::test_isIDFIRST_LC_uvchr", XS_XS__APItest__Magic_test_isIDFIRST_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isIDFIRST", XS_XS__APItest__Magic_test_isIDFIRST); newXS_deffile("XS::APItest::Magic::test_isIDFIRST_A", XS_XS__APItest__Magic_test_isIDFIRST_A); newXS_deffile("XS::APItest::Magic::test_isIDFIRST_L1", XS_XS__APItest__Magic_test_isIDFIRST_L1); newXS_deffile("XS::APItest::Magic::test_isIDFIRST_LC", XS_XS__APItest__Magic_test_isIDFIRST_LC); newXS_deffile("XS::APItest::Magic::test_isIDFIRST_utf8", XS_XS__APItest__Magic_test_isIDFIRST_utf8); newXS_deffile("XS::APItest::Magic::test_isIDFIRST_LC_utf8", XS_XS__APItest__Magic_test_isIDFIRST_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isIDCONT_uni", XS_XS__APItest__Magic_test_isIDCONT_uni); newXS_deffile("XS::APItest::Magic::test_isIDCONT_uvchr", XS_XS__APItest__Magic_test_isIDCONT_uvchr); newXS_deffile("XS::APItest::Magic::test_isIDCONT_LC_uvchr", XS_XS__APItest__Magic_test_isIDCONT_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isIDCONT", XS_XS__APItest__Magic_test_isIDCONT); newXS_deffile("XS::APItest::Magic::test_isIDCONT_A", XS_XS__APItest__Magic_test_isIDCONT_A); newXS_deffile("XS::APItest::Magic::test_isIDCONT_L1", XS_XS__APItest__Magic_test_isIDCONT_L1); newXS_deffile("XS::APItest::Magic::test_isIDCONT_LC", XS_XS__APItest__Magic_test_isIDCONT_LC); newXS_deffile("XS::APItest::Magic::test_isIDCONT_utf8", XS_XS__APItest__Magic_test_isIDCONT_utf8); newXS_deffile("XS::APItest::Magic::test_isIDCONT_LC_utf8", XS_XS__APItest__Magic_test_isIDCONT_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isSPACE_uni", XS_XS__APItest__Magic_test_isSPACE_uni); newXS_deffile("XS::APItest::Magic::test_isSPACE_uvchr", XS_XS__APItest__Magic_test_isSPACE_uvchr); newXS_deffile("XS::APItest::Magic::test_isSPACE_LC_uvchr", XS_XS__APItest__Magic_test_isSPACE_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isSPACE", XS_XS__APItest__Magic_test_isSPACE); newXS_deffile("XS::APItest::Magic::test_isSPACE_A", XS_XS__APItest__Magic_test_isSPACE_A); newXS_deffile("XS::APItest::Magic::test_isSPACE_L1", XS_XS__APItest__Magic_test_isSPACE_L1); newXS_deffile("XS::APItest::Magic::test_isSPACE_LC", XS_XS__APItest__Magic_test_isSPACE_LC); newXS_deffile("XS::APItest::Magic::test_isSPACE_utf8", XS_XS__APItest__Magic_test_isSPACE_utf8); newXS_deffile("XS::APItest::Magic::test_isSPACE_LC_utf8", XS_XS__APItest__Magic_test_isSPACE_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isASCII_uni", XS_XS__APItest__Magic_test_isASCII_uni); newXS_deffile("XS::APItest::Magic::test_isASCII_uvchr", XS_XS__APItest__Magic_test_isASCII_uvchr); newXS_deffile("XS::APItest::Magic::test_isASCII_LC_uvchr", XS_XS__APItest__Magic_test_isASCII_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isASCII", XS_XS__APItest__Magic_test_isASCII); newXS_deffile("XS::APItest::Magic::test_isASCII_A", XS_XS__APItest__Magic_test_isASCII_A); newXS_deffile("XS::APItest::Magic::test_isASCII_L1", XS_XS__APItest__Magic_test_isASCII_L1); newXS_deffile("XS::APItest::Magic::test_isASCII_LC", XS_XS__APItest__Magic_test_isASCII_LC); newXS_deffile("XS::APItest::Magic::test_isASCII_utf8", XS_XS__APItest__Magic_test_isASCII_utf8); newXS_deffile("XS::APItest::Magic::test_isASCII_LC_utf8", XS_XS__APItest__Magic_test_isASCII_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isCNTRL_uni", XS_XS__APItest__Magic_test_isCNTRL_uni); newXS_deffile("XS::APItest::Magic::test_isCNTRL_uvchr", XS_XS__APItest__Magic_test_isCNTRL_uvchr); newXS_deffile("XS::APItest::Magic::test_isCNTRL_LC_uvchr", XS_XS__APItest__Magic_test_isCNTRL_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isCNTRL", XS_XS__APItest__Magic_test_isCNTRL); newXS_deffile("XS::APItest::Magic::test_isCNTRL_A", XS_XS__APItest__Magic_test_isCNTRL_A); newXS_deffile("XS::APItest::Magic::test_isCNTRL_L1", XS_XS__APItest__Magic_test_isCNTRL_L1); newXS_deffile("XS::APItest::Magic::test_isCNTRL_LC", XS_XS__APItest__Magic_test_isCNTRL_LC); newXS_deffile("XS::APItest::Magic::test_isCNTRL_utf8", XS_XS__APItest__Magic_test_isCNTRL_utf8); newXS_deffile("XS::APItest::Magic::test_isCNTRL_LC_utf8", XS_XS__APItest__Magic_test_isCNTRL_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isPRINT_uni", XS_XS__APItest__Magic_test_isPRINT_uni); newXS_deffile("XS::APItest::Magic::test_isPRINT_uvchr", XS_XS__APItest__Magic_test_isPRINT_uvchr); newXS_deffile("XS::APItest::Magic::test_isPRINT_LC_uvchr", XS_XS__APItest__Magic_test_isPRINT_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isPRINT", XS_XS__APItest__Magic_test_isPRINT); newXS_deffile("XS::APItest::Magic::test_isPRINT_A", XS_XS__APItest__Magic_test_isPRINT_A); newXS_deffile("XS::APItest::Magic::test_isPRINT_L1", XS_XS__APItest__Magic_test_isPRINT_L1); newXS_deffile("XS::APItest::Magic::test_isPRINT_LC", XS_XS__APItest__Magic_test_isPRINT_LC); newXS_deffile("XS::APItest::Magic::test_isPRINT_utf8", XS_XS__APItest__Magic_test_isPRINT_utf8); newXS_deffile("XS::APItest::Magic::test_isPRINT_LC_utf8", XS_XS__APItest__Magic_test_isPRINT_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isGRAPH_uni", XS_XS__APItest__Magic_test_isGRAPH_uni); newXS_deffile("XS::APItest::Magic::test_isGRAPH_uvchr", XS_XS__APItest__Magic_test_isGRAPH_uvchr); newXS_deffile("XS::APItest::Magic::test_isGRAPH_LC_uvchr", XS_XS__APItest__Magic_test_isGRAPH_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isGRAPH", XS_XS__APItest__Magic_test_isGRAPH); newXS_deffile("XS::APItest::Magic::test_isGRAPH_A", XS_XS__APItest__Magic_test_isGRAPH_A); newXS_deffile("XS::APItest::Magic::test_isGRAPH_L1", XS_XS__APItest__Magic_test_isGRAPH_L1); newXS_deffile("XS::APItest::Magic::test_isGRAPH_LC", XS_XS__APItest__Magic_test_isGRAPH_LC); newXS_deffile("XS::APItest::Magic::test_isGRAPH_utf8", XS_XS__APItest__Magic_test_isGRAPH_utf8); newXS_deffile("XS::APItest::Magic::test_isGRAPH_LC_utf8", XS_XS__APItest__Magic_test_isGRAPH_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isPUNCT_uni", XS_XS__APItest__Magic_test_isPUNCT_uni); newXS_deffile("XS::APItest::Magic::test_isPUNCT_uvchr", XS_XS__APItest__Magic_test_isPUNCT_uvchr); newXS_deffile("XS::APItest::Magic::test_isPUNCT_LC_uvchr", XS_XS__APItest__Magic_test_isPUNCT_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isPUNCT", XS_XS__APItest__Magic_test_isPUNCT); newXS_deffile("XS::APItest::Magic::test_isPUNCT_A", XS_XS__APItest__Magic_test_isPUNCT_A); newXS_deffile("XS::APItest::Magic::test_isPUNCT_L1", XS_XS__APItest__Magic_test_isPUNCT_L1); newXS_deffile("XS::APItest::Magic::test_isPUNCT_LC", XS_XS__APItest__Magic_test_isPUNCT_LC); newXS_deffile("XS::APItest::Magic::test_isPUNCT_utf8", XS_XS__APItest__Magic_test_isPUNCT_utf8); newXS_deffile("XS::APItest::Magic::test_isPUNCT_LC_utf8", XS_XS__APItest__Magic_test_isPUNCT_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isXDIGIT_uni", XS_XS__APItest__Magic_test_isXDIGIT_uni); newXS_deffile("XS::APItest::Magic::test_isXDIGIT_uvchr", XS_XS__APItest__Magic_test_isXDIGIT_uvchr); newXS_deffile("XS::APItest::Magic::test_isXDIGIT_LC_uvchr", XS_XS__APItest__Magic_test_isXDIGIT_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isXDIGIT", XS_XS__APItest__Magic_test_isXDIGIT); newXS_deffile("XS::APItest::Magic::test_isXDIGIT_A", XS_XS__APItest__Magic_test_isXDIGIT_A); newXS_deffile("XS::APItest::Magic::test_isXDIGIT_L1", XS_XS__APItest__Magic_test_isXDIGIT_L1); newXS_deffile("XS::APItest::Magic::test_isXDIGIT_LC", XS_XS__APItest__Magic_test_isXDIGIT_LC); newXS_deffile("XS::APItest::Magic::test_isXDIGIT_utf8", XS_XS__APItest__Magic_test_isXDIGIT_utf8); newXS_deffile("XS::APItest::Magic::test_isXDIGIT_LC_utf8", XS_XS__APItest__Magic_test_isXDIGIT_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isPSXSPC_uni", XS_XS__APItest__Magic_test_isPSXSPC_uni); newXS_deffile("XS::APItest::Magic::test_isPSXSPC_uvchr", XS_XS__APItest__Magic_test_isPSXSPC_uvchr); newXS_deffile("XS::APItest::Magic::test_isPSXSPC_LC_uvchr", XS_XS__APItest__Magic_test_isPSXSPC_LC_uvchr); newXS_deffile("XS::APItest::Magic::test_isPSXSPC", XS_XS__APItest__Magic_test_isPSXSPC); newXS_deffile("XS::APItest::Magic::test_isPSXSPC_A", XS_XS__APItest__Magic_test_isPSXSPC_A); newXS_deffile("XS::APItest::Magic::test_isPSXSPC_L1", XS_XS__APItest__Magic_test_isPSXSPC_L1); newXS_deffile("XS::APItest::Magic::test_isPSXSPC_LC", XS_XS__APItest__Magic_test_isPSXSPC_LC); newXS_deffile("XS::APItest::Magic::test_isPSXSPC_utf8", XS_XS__APItest__Magic_test_isPSXSPC_utf8); newXS_deffile("XS::APItest::Magic::test_isPSXSPC_LC_utf8", XS_XS__APItest__Magic_test_isPSXSPC_LC_utf8); newXS_deffile("XS::APItest::Magic::test_isQUOTEMETA", XS_XS__APItest__Magic_test_isQUOTEMETA); newXS_deffile("XS::APItest::Magic::test_OFFUNISKIP", XS_XS__APItest__Magic_test_OFFUNISKIP); newXS_deffile("XS::APItest::Magic::test_OFFUNI_IS_INVARIANT", XS_XS__APItest__Magic_test_OFFUNI_IS_INVARIANT); newXS_deffile("XS::APItest::Magic::test_UVCHR_IS_INVARIANT", XS_XS__APItest__Magic_test_UVCHR_IS_INVARIANT); newXS_deffile("XS::APItest::Magic::test_UTF8_IS_INVARIANT", XS_XS__APItest__Magic_test_UTF8_IS_INVARIANT); newXS_deffile("XS::APItest::Magic::test_UVCHR_SKIP", XS_XS__APItest__Magic_test_UVCHR_SKIP); newXS_deffile("XS::APItest::Magic::test_UTF8_SKIP", XS_XS__APItest__Magic_test_UTF8_SKIP); newXS_deffile("XS::APItest::Magic::test_UTF8_IS_START", XS_XS__APItest__Magic_test_UTF8_IS_START); newXS_deffile("XS::APItest::Magic::test_UTF8_IS_CONTINUATION", XS_XS__APItest__Magic_test_UTF8_IS_CONTINUATION); newXS_deffile("XS::APItest::Magic::test_UTF8_IS_CONTINUED", XS_XS__APItest__Magic_test_UTF8_IS_CONTINUED); newXS_deffile("XS::APItest::Magic::test_UTF8_IS_DOWNGRADEABLE_START", XS_XS__APItest__Magic_test_UTF8_IS_DOWNGRADEABLE_START); newXS_deffile("XS::APItest::Magic::test_UTF8_IS_ABOVE_LATIN1", XS_XS__APItest__Magic_test_UTF8_IS_ABOVE_LATIN1); newXS_deffile("XS::APItest::Magic::test_isUTF8_POSSIBLY_PROBLEMATIC", XS_XS__APItest__Magic_test_isUTF8_POSSIBLY_PROBLEMATIC); newXS_deffile("XS::APItest::Magic::test_isUTF8_CHAR", XS_XS__APItest__Magic_test_isUTF8_CHAR); newXS_deffile("XS::APItest::Magic::test_isUTF8_CHAR_flags", XS_XS__APItest__Magic_test_isUTF8_CHAR_flags); newXS_deffile("XS::APItest::Magic::test_isSTRICT_UTF8_CHAR", XS_XS__APItest__Magic_test_isSTRICT_UTF8_CHAR); newXS_deffile("XS::APItest::Magic::test_isC9_STRICT_UTF8_CHAR", XS_XS__APItest__Magic_test_isC9_STRICT_UTF8_CHAR); newXS_deffile("XS::APItest::Magic::test_is_utf8_valid_partial_char_flags", XS_XS__APItest__Magic_test_is_utf8_valid_partial_char_flags); newXS_deffile("XS::APItest::Magic::test_is_utf8_string", XS_XS__APItest__Magic_test_is_utf8_string); newXS_deffile("XS::APItest::Magic::test_is_utf8_invariant_string_loc", XS_XS__APItest__Magic_test_is_utf8_invariant_string_loc); newXS_deffile("XS::APItest::Magic::test_variant_under_utf8_count", XS_XS__APItest__Magic_test_variant_under_utf8_count); newXS_deffile("XS::APItest::Magic::test_utf8_length", XS_XS__APItest__Magic_test_utf8_length); newXS_deffile("XS::APItest::Magic::test_is_utf8_string_loc", XS_XS__APItest__Magic_test_is_utf8_string_loc); newXS_deffile("XS::APItest::Magic::test_is_utf8_string_loclen", XS_XS__APItest__Magic_test_is_utf8_string_loclen); newXS_deffile("XS::APItest::Magic::test_is_utf8_string_flags", XS_XS__APItest__Magic_test_is_utf8_string_flags); newXS_deffile("XS::APItest::Magic::test_is_utf8_string_loc_flags", XS_XS__APItest__Magic_test_is_utf8_string_loc_flags); newXS_deffile("XS::APItest::Magic::test_is_utf8_string_loclen_flags", XS_XS__APItest__Magic_test_is_utf8_string_loclen_flags); newXS_deffile("XS::APItest::Magic::test_is_strict_utf8_string", XS_XS__APItest__Magic_test_is_strict_utf8_string); newXS_deffile("XS::APItest::Magic::test_is_strict_utf8_string_loc", XS_XS__APItest__Magic_test_is_strict_utf8_string_loc); newXS_deffile("XS::APItest::Magic::test_is_strict_utf8_string_loclen", XS_XS__APItest__Magic_test_is_strict_utf8_string_loclen); newXS_deffile("XS::APItest::Magic::test_is_c9strict_utf8_string", XS_XS__APItest__Magic_test_is_c9strict_utf8_string); newXS_deffile("XS::APItest::Magic::test_is_c9strict_utf8_string_loc", XS_XS__APItest__Magic_test_is_c9strict_utf8_string_loc); newXS_deffile("XS::APItest::Magic::test_is_c9strict_utf8_string_loclen", XS_XS__APItest__Magic_test_is_c9strict_utf8_string_loclen); newXS_deffile("XS::APItest::Magic::test_is_utf8_fixed_width_buf_flags", XS_XS__APItest__Magic_test_is_utf8_fixed_width_buf_flags); newXS_deffile("XS::APItest::Magic::test_is_utf8_fixed_width_buf_loc_flags", XS_XS__APItest__Magic_test_is_utf8_fixed_width_buf_loc_flags); newXS_deffile("XS::APItest::Magic::test_is_utf8_fixed_width_buf_loclen_flags", XS_XS__APItest__Magic_test_is_utf8_fixed_width_buf_loclen_flags); newXS_deffile("XS::APItest::Magic::test_utf8_hop_safe", XS_XS__APItest__Magic_test_utf8_hop_safe); newXS_deffile("XS::APItest::Magic::test_toLOWER", XS_XS__APItest__Magic_test_toLOWER); newXS_deffile("XS::APItest::Magic::test_toLOWER_L1", XS_XS__APItest__Magic_test_toLOWER_L1); newXS_deffile("XS::APItest::Magic::test_toLOWER_LC", XS_XS__APItest__Magic_test_toLOWER_LC); newXS_deffile("XS::APItest::Magic::test_toLOWER_uni", XS_XS__APItest__Magic_test_toLOWER_uni); newXS_deffile("XS::APItest::Magic::test_toLOWER_uvchr", XS_XS__APItest__Magic_test_toLOWER_uvchr); newXS_deffile("XS::APItest::Magic::test_toLOWER_utf8", XS_XS__APItest__Magic_test_toLOWER_utf8); newXS_deffile("XS::APItest::Magic::test_toFOLD", XS_XS__APItest__Magic_test_toFOLD); newXS_deffile("XS::APItest::Magic::test_toFOLD_LC", XS_XS__APItest__Magic_test_toFOLD_LC); newXS_deffile("XS::APItest::Magic::test_toFOLD_uni", XS_XS__APItest__Magic_test_toFOLD_uni); newXS_deffile("XS::APItest::Magic::test_toFOLD_uvchr", XS_XS__APItest__Magic_test_toFOLD_uvchr); newXS_deffile("XS::APItest::Magic::test_toFOLD_utf8", XS_XS__APItest__Magic_test_toFOLD_utf8); newXS_deffile("XS::APItest::Magic::test_toUPPER", XS_XS__APItest__Magic_test_toUPPER); newXS_deffile("XS::APItest::Magic::test_toUPPER_LC", XS_XS__APItest__Magic_test_toUPPER_LC); newXS_deffile("XS::APItest::Magic::test_toUPPER_uni", XS_XS__APItest__Magic_test_toUPPER_uni); newXS_deffile("XS::APItest::Magic::test_toUPPER_uvchr", XS_XS__APItest__Magic_test_toUPPER_uvchr); newXS_deffile("XS::APItest::Magic::test_toUPPER_utf8", XS_XS__APItest__Magic_test_toUPPER_utf8); newXS_deffile("XS::APItest::Magic::test_toTITLE", XS_XS__APItest__Magic_test_toTITLE); newXS_deffile("XS::APItest::Magic::test_toTITLE_uni", XS_XS__APItest__Magic_test_toTITLE_uni); newXS_deffile("XS::APItest::Magic::test_toTITLE_uvchr", XS_XS__APItest__Magic_test_toTITLE_uvchr); newXS_deffile("XS::APItest::Magic::test_toTITLE_utf8", XS_XS__APItest__Magic_test_toTITLE_utf8); newXS_deffile("XS::APItest::Magic::test_Gconvert", XS_XS__APItest__Magic_test_Gconvert); newXS_deffile("XS::APItest::Magic::test_Perl_langinfo", XS_XS__APItest__Magic_test_Perl_langinfo); (void)newXSproto_portable("XS::APItest::Backrefs::apitest_weaken", XS_XS__APItest__Backrefs_apitest_weaken, file, "$"); newXS_deffile("XS::APItest::Backrefs::has_backrefs", XS_XS__APItest__Backrefs_has_backrefs); #if XSubPPtmpAAAE newXS_deffile("XS::APItest::Backrefs::PerlDir_mapA", XS_XS__APItest__Backrefs_PerlDir_mapA); newXS_deffile("XS::APItest::Backrefs::PerlDir_mapW", XS_XS__APItest__Backrefs_PerlDir_mapW); #endif #if XSubPPtmpAAAF newXS_deffile("XS::APItest::Backrefs::Comctl32Version", XS_XS__APItest__Backrefs_Comctl32Version); #endif /* Initialisation Section */ #line 2 "./const-xs.inc" { #if defined(dTHX) && !defined(PERL_NO_GET_CONTEXT) dTHX; #endif HV *symbol_table = get_hv("XS::APItest::", GV_ADD); static const struct iv_s values_for_iv[] = { #ifdef HV_DELETE { "HV_DELETE", 9, HV_DELETE }, #endif #ifdef HV_DISABLE_UVAR_XKEY { "HV_DISABLE_UVAR_XKEY", 20, HV_DISABLE_UVAR_XKEY }, #endif #ifdef HV_FETCH_ISSTORE { "HV_FETCH_ISSTORE", 16, HV_FETCH_ISSTORE }, #endif #ifdef HV_FETCH_ISEXISTS { "HV_FETCH_ISEXISTS", 17, HV_FETCH_ISEXISTS }, #endif #ifdef HV_FETCH_LVALUE { "HV_FETCH_LVALUE", 15, HV_FETCH_LVALUE }, #endif #ifdef HV_FETCH_JUST_SV { "HV_FETCH_JUST_SV", 16, HV_FETCH_JUST_SV }, #endif #ifdef G_SCALAR { "G_SCALAR", 8, G_SCALAR }, #endif #ifdef G_ARRAY { "G_ARRAY", 7, G_ARRAY }, #endif #ifdef G_VOID { "G_VOID", 6, G_VOID }, #endif #ifdef G_DISCARD { "G_DISCARD", 9, G_DISCARD }, #endif #ifdef G_EVAL { "G_EVAL", 6, G_EVAL }, #endif #ifdef G_NOARGS { "G_NOARGS", 8, G_NOARGS }, #endif #ifdef G_KEEPERR { "G_KEEPERR", 9, G_KEEPERR }, #endif #ifdef G_NODEBUG { "G_NODEBUG", 9, G_NODEBUG }, #endif #ifdef G_METHOD { "G_METHOD", 8, G_METHOD }, #endif #ifdef G_FAKINGEVAL { "G_FAKINGEVAL", 12, G_FAKINGEVAL }, #endif #ifdef GV_NOADD_NOINIT { "GV_NOADD_NOINIT", 15, GV_NOADD_NOINIT }, #endif #ifdef IS_NUMBER_IN_UV { "IS_NUMBER_IN_UV", 15, IS_NUMBER_IN_UV }, #endif #ifdef IS_NUMBER_GREATER_THAN_UV_MAX { "IS_NUMBER_GREATER_THAN_UV_MAX", 29, IS_NUMBER_GREATER_THAN_UV_MAX }, #endif #ifdef IS_NUMBER_NOT_INT { "IS_NUMBER_NOT_INT", 17, IS_NUMBER_NOT_INT }, #endif #ifdef IS_NUMBER_NEG { "IS_NUMBER_NEG", 13, IS_NUMBER_NEG }, #endif #ifdef IS_NUMBER_INFINITY { "IS_NUMBER_INFINITY", 18, IS_NUMBER_INFINITY }, #endif #ifdef IS_NUMBER_NAN { "IS_NUMBER_NAN", 13, IS_NUMBER_NAN }, #endif #ifdef IS_NUMBER_TRAILING { "IS_NUMBER_TRAILING", 18, IS_NUMBER_TRAILING }, #endif #ifdef PERL_SCAN_TRAILING { "PERL_SCAN_TRAILING", 18, PERL_SCAN_TRAILING }, #endif #ifdef PERL_LOADMOD_DENY { "PERL_LOADMOD_DENY", 17, PERL_LOADMOD_DENY }, #endif #ifdef PERL_LOADMOD_NOIMPORT { "PERL_LOADMOD_NOIMPORT", 21, PERL_LOADMOD_NOIMPORT }, #endif #ifdef PERL_LOADMOD_IMPORT_OPS { "PERL_LOADMOD_IMPORT_OPS", 23, PERL_LOADMOD_IMPORT_OPS }, #endif #ifdef G_WANT { "G_WANT", 6, G_WANT }, #endif { "fallback_amg", 12, fallback_amg }, { "to_sv_amg", 9, to_sv_amg }, { "to_av_amg", 9, to_av_amg }, { "to_hv_amg", 9, to_hv_amg }, { "to_gv_amg", 9, to_gv_amg }, { "to_cv_amg", 9, to_cv_amg }, { "inc_amg", 7, inc_amg }, { "dec_amg", 7, dec_amg }, { "bool__amg", 9, bool__amg }, { "numer_amg", 9, numer_amg }, { "string_amg", 10, string_amg }, { "not_amg", 7, not_amg }, { "copy_amg", 8, copy_amg }, { "abs_amg", 7, abs_amg }, { "neg_amg", 7, neg_amg }, { "iter_amg", 8, iter_amg }, { "int_amg", 7, int_amg }, { "lt_amg", 6, lt_amg }, { "le_amg", 6, le_amg }, { "gt_amg", 6, gt_amg }, { "ge_amg", 6, ge_amg }, { "eq_amg", 6, eq_amg }, { "ne_amg", 6, ne_amg }, { "slt_amg", 7, slt_amg }, { "sle_amg", 7, sle_amg }, { "sgt_amg", 7, sgt_amg }, { "sge_amg", 7, sge_amg }, { "seq_amg", 7, seq_amg }, { "sne_amg", 7, sne_amg }, { "nomethod_amg", 12, nomethod_amg }, { "add_amg", 7, add_amg }, { "add_ass_amg", 11, add_ass_amg }, { "subtr_amg", 9, subtr_amg }, { "subtr_ass_amg", 13, subtr_ass_amg }, { "mult_amg", 8, mult_amg }, { "mult_ass_amg", 12, mult_ass_amg }, { "div_amg", 7, div_amg }, { "div_ass_amg", 11, div_ass_amg }, { "modulo_amg", 10, modulo_amg }, { "modulo_ass_amg", 14, modulo_ass_amg }, { "pow_amg", 7, pow_amg }, { "pow_ass_amg", 11, pow_ass_amg }, { "lshift_amg", 10, lshift_amg }, { "lshift_ass_amg", 14, lshift_ass_amg }, { "rshift_amg", 10, rshift_amg }, { "rshift_ass_amg", 14, rshift_ass_amg }, { "band_amg", 8, band_amg }, { "band_ass_amg", 12, band_ass_amg }, { "sband_amg", 9, sband_amg }, { "sband_ass_amg", 13, sband_ass_amg }, { "bor_amg", 7, bor_amg }, { "bor_ass_amg", 11, bor_ass_amg }, { "sbor_amg", 8, sbor_amg }, { "sbor_ass_amg", 12, sbor_ass_amg }, { "bxor_amg", 8, bxor_amg }, { "bxor_ass_amg", 12, bxor_ass_amg }, { "sbxor_amg", 9, sbxor_amg }, { "sbxor_ass_amg", 13, sbxor_ass_amg }, { "ncmp_amg", 8, ncmp_amg }, { "scmp_amg", 8, scmp_amg }, { "compl_amg", 9, compl_amg }, { "scompl_amg", 10, scompl_amg }, { "atan2_amg", 9, atan2_amg }, { "cos_amg", 7, cos_amg }, { "sin_amg", 7, sin_amg }, { "exp_amg", 7, exp_amg }, { "log_amg", 7, log_amg }, { "sqrt_amg", 8, sqrt_amg }, { "repeat_amg", 10, repeat_amg }, { "repeat_ass_amg", 14, repeat_ass_amg }, { "concat_amg", 10, concat_amg }, { "concat_ass_amg", 14, concat_ass_amg }, { "smart_amg", 9, smart_amg }, { "ftest_amg", 9, ftest_amg }, { "regexp_amg", 10, regexp_amg }, #ifndef G_WANT /* This is the default value: */ { "G_WANT", 6, G_ARRAY|G_VOID }, #endif { NULL, 0, 0 } }; const struct iv_s *value_for_iv = values_for_iv; while (value_for_iv->name) { constant_add_symbol(aTHX_ symbol_table, value_for_iv->name, value_for_iv->namelen, newSViv(value_for_iv->value)); ++value_for_iv; } if (C_ARRAY_LENGTH(values_for_notfound) > 1) { #ifndef SYMBIAN HV *const constant_missing = get_missing_hash(aTHX); #endif const struct notfound_s *value_for_notfound = values_for_notfound; do { /* Need to add prototypes, else parsing will vary by platform. */ HE *he = (HE*) hv_common_key_len(symbol_table, value_for_notfound->name, value_for_notfound->namelen, HV_FETCH_LVALUE, NULL, 0); SV *sv; #ifndef SYMBIAN HEK *hek; #endif if (!he) { croak("Couldn't add key '%s' to %%XS::APItest::", value_for_notfound->name); } sv = HeVAL(he); if (!SvOK(sv) && SvTYPE(sv) != SVt_PVGV) { /* Nothing was here before, so mark a prototype of "" */ sv_setpvn(sv, "", 0); } else if (SvPOK(sv) && SvCUR(sv) == 0) { /* There is already a prototype of "" - do nothing */ } else { /* Someone has been here before us - have to make a real typeglob. */ /* It turns out to be incredibly hard to deal with all the corner cases of sub foo (); and reporting errors correctly, so lets cheat a bit. Start with a constant subroutine */ CV *cv = newCONSTSUB(symbol_table, value_for_notfound->name, &PL_sv_yes); /* and then turn it into a non constant declaration only. */ SvREFCNT_dec(CvXSUBANY(cv).any_ptr); CvCONST_off(cv); CvXSUB(cv) = NULL; CvXSUBANY(cv).any_ptr = NULL; } #ifndef SYMBIAN hek = HeKEY_hek(he); if (!hv_common(constant_missing, NULL, HEK_KEY(hek), HEK_LEN(hek), HEK_FLAGS(hek), HV_FETCH_ISSTORE, &PL_sv_yes, HEK_HASH(hek))) croak("Couldn't add key '%s' to missing_hash", value_for_notfound->name); #endif } while ((++value_for_notfound)->name); } /* As we've been creating subroutines, we better invalidate any cached methods */ mro_method_changed_in(symbol_table); } #line 1606 "APItest.xs" newXS("XS::APItest::XSUB::XS_VERSION_undef", XS_XS__APItest__XSUB_XS_VERSION_undef, __FILE__); newXS("XS::APItest::XSUB::XS_VERSION_empty", XS_XS__APItest__XSUB_XS_VERSION_empty, __FILE__); newXS("XS::APItest::XSUB::XS_APIVERSION_invalid", XS_XS__APItest__XSUB_XS_APIVERSION_invalid, __FILE__); #if XSubPPtmpAAAA #endif #if XSubPPtmpAAAB #endif #line 2082 "APItest.xs" mymro.resolve = myget_linear_isa; mymro.name = "justisa"; mymro.length = 7; mymro.kflags = 0; mymro.hash = 0; Perl_mro_register(aTHX_ &mymro); #line 2204 "APItest.xs" { MY_CXT_INIT; MY_CXT.i = 99; MY_CXT.sv = newSVpv("initial",0); MY_CXT.bhkav = get_av("XS::APItest::bhkav", GV_ADDMULTI); MY_CXT.bhk_record = 0; BhkENTRY_set(&bhk_test, bhk_start, blockhook_test_start); BhkENTRY_set(&bhk_test, bhk_pre_end, blockhook_test_pre_end); BhkENTRY_set(&bhk_test, bhk_post_end, blockhook_test_post_end); BhkENTRY_set(&bhk_test, bhk_eval, blockhook_test_eval); Perl_blockhook_register(aTHX_ &bhk_test); MY_CXT.cscgv = gv_fetchpvs("XS::APItest::COMPILE_SCOPE_CONTAINER", GV_ADDMULTI, SVt_PVAV); MY_CXT.cscav = GvAV(MY_CXT.cscgv); BhkENTRY_set(&bhk_csc, bhk_start, blockhook_csc_start); BhkENTRY_set(&bhk_csc, bhk_pre_end, blockhook_csc_pre_end); Perl_blockhook_register(aTHX_ &bhk_csc); MY_CXT.peep_recorder = newAV(); MY_CXT.rpeep_recorder = newAV(); MY_CXT.orig_peep = PL_peepp; MY_CXT.orig_rpeep = PL_rpeepp; PL_peepp = my_peep; PL_rpeepp = my_rpeep; } #if XSubPPtmpAAAC #endif #line 3966 "APItest.xs" { HV* stash; SV** meth = NULL; CV* cv; stash = gv_stashpv("XS::APItest::TempLv", 0); if (stash) meth = hv_fetchs(stash, "make_temp_mg_lv", 0); if (!meth) croak("lost method 'make_temp_mg_lv'"); cv = GvCV(*meth); CvLVALUE_on(cv); } #line 3980 "APItest.xs" { hintkey_rpn_sv = newSVpvs_share("XS::APItest/rpn"); hintkey_calcrpn_sv = newSVpvs_share("XS::APItest/calcrpn"); hintkey_stufftest_sv = newSVpvs_share("XS::APItest/stufftest"); hintkey_swaptwostmts_sv = newSVpvs_share("XS::APItest/swaptwostmts"); hintkey_looprest_sv = newSVpvs_share("XS::APItest/looprest"); hintkey_scopelessblock_sv = newSVpvs_share("XS::APItest/scopelessblock"); hintkey_stmtasexpr_sv = newSVpvs_share("XS::APItest/stmtasexpr"); hintkey_stmtsasexpr_sv = newSVpvs_share("XS::APItest/stmtsasexpr"); hintkey_loopblock_sv = newSVpvs_share("XS::APItest/loopblock"); hintkey_blockasexpr_sv = newSVpvs_share("XS::APItest/blockasexpr"); hintkey_swaplabel_sv = newSVpvs_share("XS::APItest/swaplabel"); hintkey_labelconst_sv = newSVpvs_share("XS::APItest/labelconst"); hintkey_arrayfullexpr_sv = newSVpvs_share("XS::APItest/arrayfullexpr"); hintkey_arraylistexpr_sv = newSVpvs_share("XS::APItest/arraylistexpr"); hintkey_arraytermexpr_sv = newSVpvs_share("XS::APItest/arraytermexpr"); hintkey_arrayarithexpr_sv = newSVpvs_share("XS::APItest/arrayarithexpr"); hintkey_arrayexprflags_sv = newSVpvs_share("XS::APItest/arrayexprflags"); hintkey_DEFSV_sv = newSVpvs_share("XS::APItest/DEFSV"); hintkey_with_vars_sv = newSVpvs_share("XS::APItest/with_vars"); hintkey_join_with_space_sv = newSVpvs_share("XS::APItest/join_with_space"); wrap_keyword_plugin(my_keyword_plugin, &next_keyword_plugin); } #line 4012 "APItest.xs" { CV *estcv = get_cv("XS::APItest::establish_cleanup", 0); cv_set_call_checker(estcv, THX_ck_entersub_establish_cleanup, (SV*)estcv); } #line 4030 "APItest.xs" { CV *asscv = get_cv("XS::APItest::postinc", 0); cv_set_call_checker(asscv, THX_ck_entersub_postinc, (SV*)asscv); } #line 4079 "APItest.xs" { CV *pscv = get_cv("XS::APItest::pad_scalar", 0); cv_set_call_checker(pscv, THX_ck_entersub_pad_scalar, (SV*)pscv); } #if XSubPPtmpAAAD #endif #if XSubPPtmpAAAE #endif #if XSubPPtmpAAAF #endif #line 13885 "APItest.c" /* End of Initialisation Section */ #if PERL_VERSION_LE(5, 21, 5) # if PERL_VERSION_GE(5, 9, 0) if (PL_unitcheckav) call_list(PL_scopestack_ix, PL_unitcheckav); # endif XSRETURN_YES; #else Perl_xs_boot_epilog(aTHX_ ax); #endif }