/* * This file was generated automatically by ExtUtils::ParseXS version 2.21 from the * contents of URI.xs. Do not edit this file, edit URI.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ #line 1 "URI.xs" /* * *********** WARNING ************** * This file generated by ModPerl::WrapXS/0.01 * Any changes made here will be lost * *********************************** * 01: lib/ModPerl/WrapXS.pm:540 * 02: lib/ModPerl/WrapXS.pm:1174 * 03: Makefile.PL:423 * 04: Makefile.PL:325 * 05: Makefile.PL:56 */ #define MP_IN_XS #include "mod_perl.h" #include "modperl_xs_sv_convert.h" #include "modperl_xs_util.h" #include "modperl_xs_typedefs.h" #include "APR/URI/APR__URI.h" #line 38 "URI.c" #ifndef PERL_UNUSED_VAR # define PERL_UNUSED_VAR(var) if (0) var = var #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(pTHX_ const CV *const cv, const char *const params); STATIC void S_croak_xs_usage(pTHX_ 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(aTHX_ "Usage: %s::%s(%s)", hvname, gvname, params); else Perl_croak(aTHX_ "Usage: %s(%s)", gvname, params); } else { /* Pants. I don't think that it should be possible to get here. */ Perl_croak(aTHX_ "Usage: CODE(0x%"UVxf")(%s)", PTR2UV(cv), params); } } #undef PERL_ARGS_ASSERT_CROAK_XS_USAGE #ifdef PERL_IMPLICIT_CONTEXT #define croak_xs_usage(a,b) S_croak_xs_usage(aTHX_ a,b) #else #define croak_xs_usage S_croak_xs_usage #endif #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) */ #line 90 "URI.c" XS(XS_APR__URI_parse); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__URI_parse) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 3) croak_xs_usage(cv, "classname, p_sv, uri"); { SV * classname = ST(0); SV * p_sv = ST(1); const char * uri = (const char *)SvPV_nolen(ST(2)); SV * RETVAL; #line 38 "URI.xs" RETVAL = mpxs_apr_uri_parse(aTHX_ classname, p_sv, uri); #line 110 "URI.c" ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_APR__URI_port_of_scheme); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__URI_port_of_scheme) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) croak_xs_usage(cv, "scheme_str"); { const char * scheme_str = (const char *)SvPV_nolen(ST(0)); apr_port_t RETVAL; dXSTARG; RETVAL = apr_uri_port_of_scheme(scheme_str); XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_APR__URI_unparse); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__URI_unparse) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) croak_xs_usage(cv, "uptr, flags=APR_URI_UNP_OMITPASSWORD"); { APR__URI uptr; unsigned flags; char * RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::URI")) { IV tmp = SvIV((SV*)SvRV(ST(0))); uptr = INT2PTR(APR__URI,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::URI::unparse", "uptr", "APR::URI"); if (items < 2) flags = APR_URI_UNP_OMITPASSWORD; else { flags = (unsigned)SvUV(ST(1)); } #line 59 "URI.xs" RETVAL = mpxs_apr_uri_unparse(aTHX_ uptr, flags); #line 173 "URI.c" sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; } XSRETURN(1); } XS(XS_APR__URI_port); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__URI_port) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) croak_xs_usage(cv, "uri, portsv=Nullsv"); { APR__URI uri; SV * portsv; char * RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::URI")) { IV tmp = SvIV((SV*)SvRV(ST(0))); uri = INT2PTR(APR__URI,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::URI::port", "uri", "APR::URI"); if (items < 2) portsv = Nullsv; else { portsv = ST(1); } #line 73 "URI.xs" RETVAL = mpxs_APR__URI_port(aTHX_ uri, portsv); #line 213 "URI.c" sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; } XSRETURN(1); } XS(XS_APR__URI_rpath); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__URI_rpath) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) croak_xs_usage(cv, "apr_uri"); { APR__URI apr_uri; SV * RETVAL; if (sv_derived_from(ST(0), "APR::URI")) { IV tmp = SvIV((SV*)SvRV(ST(0))); apr_uri = INT2PTR(APR__URI,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::URI::rpath", "apr_uri", "APR::URI"); #line 86 "URI.xs" RETVAL = mpxs_APR__URI_rpath(aTHX_ apr_uri); #line 245 "URI.c" ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_APR__URI_scheme); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__URI_scheme) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) croak_xs_usage(cv, "obj, val_sv=Nullsv"); { APR__URI obj; SV * val_sv; #line 101 "URI.xs" #line 267 "URI.c" char * RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::URI")) { IV tmp = SvIV((SV*)SvRV(ST(0))); obj = INT2PTR(APR__URI,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::URI::scheme", "obj", "APR::URI"); if (items < 2) val_sv = Nullsv; else { val_sv = ST(1); } #line 102 "URI.xs" RETVAL = (char *) obj->scheme; if (val_sv) { if (SvOK(val_sv)) { STRLEN val_len; char *val = (char *)SvPV(val_sv, val_len); obj->scheme = apr_pstrndup(mpxs_APR__URI_pool(obj), val, val_len); } else { obj->scheme = NULL; } } #line 299 "URI.c" sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; } XSRETURN(1); } XS(XS_APR__URI_hostinfo); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__URI_hostinfo) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) croak_xs_usage(cv, "obj, val=NULL"); { APR__URI obj; char_len * val; #line 126 "URI.xs" STRLEN val_len; #line 323 "URI.c" char * RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::URI")) { IV tmp = SvIV((SV*)SvRV(ST(0))); obj = INT2PTR(APR__URI,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::URI::hostinfo", "obj", "APR::URI"); if (items < 2) val = NULL; else { val = (char *)SvPV(ST(1), val_len); } #line 130 "URI.xs" RETVAL = (char *) obj->hostinfo; if (items > 1) { obj->hostinfo = (char *) (SvOK(ST(1)) ? apr_pstrndup(mpxs_APR__URI_pool(obj), val, val_len) : NULL); } #line 350 "URI.c" sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; } XSRETURN(1); } XS(XS_APR__URI_user); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__URI_user) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) croak_xs_usage(cv, "obj, val_sv=Nullsv"); { APR__URI obj; SV * val_sv; #line 151 "URI.xs" #line 371 "URI.c" char * RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::URI")) { IV tmp = SvIV((SV*)SvRV(ST(0))); obj = INT2PTR(APR__URI,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::URI::user", "obj", "APR::URI"); if (items < 2) val_sv = Nullsv; else { val_sv = ST(1); } #line 152 "URI.xs" RETVAL = (char *) obj->user; if (val_sv) { if (SvOK(val_sv)) { STRLEN val_len; char *val = (char *)SvPV(val_sv, val_len); obj->user = apr_pstrndup(mpxs_APR__URI_pool(obj), val, val_len); } else { obj->user = NULL; } } #line 403 "URI.c" sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; } XSRETURN(1); } XS(XS_APR__URI_password); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__URI_password) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) croak_xs_usage(cv, "obj, val_sv=Nullsv"); { APR__URI obj; SV * val_sv; #line 178 "URI.xs" #line 424 "URI.c" char * RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::URI")) { IV tmp = SvIV((SV*)SvRV(ST(0))); obj = INT2PTR(APR__URI,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::URI::password", "obj", "APR::URI"); if (items < 2) val_sv = Nullsv; else { val_sv = ST(1); } #line 179 "URI.xs" RETVAL = (char *) obj->password; if (val_sv) { if (SvOK(val_sv)) { STRLEN val_len; char *val = (char *)SvPV(val_sv, val_len); obj->password = apr_pstrndup(mpxs_APR__URI_pool(obj), val, val_len); } else { obj->password = NULL; } } #line 456 "URI.c" sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; } XSRETURN(1); } XS(XS_APR__URI_hostname); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__URI_hostname) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) croak_xs_usage(cv, "obj, val_sv=Nullsv"); { APR__URI obj; SV * val_sv; #line 205 "URI.xs" #line 477 "URI.c" char * RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::URI")) { IV tmp = SvIV((SV*)SvRV(ST(0))); obj = INT2PTR(APR__URI,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::URI::hostname", "obj", "APR::URI"); if (items < 2) val_sv = Nullsv; else { val_sv = ST(1); } #line 206 "URI.xs" RETVAL = (char *) obj->hostname; if (val_sv) { if (SvOK(val_sv)) { STRLEN val_len; char *val = (char *)SvPV(val_sv, val_len); obj->hostname = apr_pstrndup(mpxs_APR__URI_pool(obj), val, val_len); } else { obj->hostname = NULL; } } #line 509 "URI.c" sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; } XSRETURN(1); } XS(XS_APR__URI_path); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__URI_path) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) croak_xs_usage(cv, "obj, val_sv=Nullsv"); { APR__URI obj; SV * val_sv; #line 232 "URI.xs" #line 530 "URI.c" char * RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::URI")) { IV tmp = SvIV((SV*)SvRV(ST(0))); obj = INT2PTR(APR__URI,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::URI::path", "obj", "APR::URI"); if (items < 2) val_sv = Nullsv; else { val_sv = ST(1); } #line 233 "URI.xs" RETVAL = (char *) obj->path; if (val_sv) { if (SvOK(val_sv)) { STRLEN val_len; char *val = (char *)SvPV(val_sv, val_len); obj->path = apr_pstrndup(mpxs_APR__URI_pool(obj), val, val_len); } else { obj->path = NULL; } } #line 562 "URI.c" sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; } XSRETURN(1); } XS(XS_APR__URI_query); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__URI_query) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) croak_xs_usage(cv, "obj, val_sv=Nullsv"); { APR__URI obj; SV * val_sv; #line 259 "URI.xs" #line 583 "URI.c" char * RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::URI")) { IV tmp = SvIV((SV*)SvRV(ST(0))); obj = INT2PTR(APR__URI,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::URI::query", "obj", "APR::URI"); if (items < 2) val_sv = Nullsv; else { val_sv = ST(1); } #line 260 "URI.xs" RETVAL = (char *) obj->query; if (val_sv) { if (SvOK(val_sv)) { STRLEN val_len; char *val = (char *)SvPV(val_sv, val_len); obj->query = apr_pstrndup(mpxs_APR__URI_pool(obj), val, val_len); } else { obj->query = NULL; } } #line 615 "URI.c" sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; } XSRETURN(1); } XS(XS_APR__URI_fragment); /* prototype to pass -Wmissing-prototypes */ XS(XS_APR__URI_fragment) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) croak_xs_usage(cv, "obj, val_sv=Nullsv"); { APR__URI obj; SV * val_sv; #line 286 "URI.xs" #line 636 "URI.c" char * RETVAL; dXSTARG; if (sv_derived_from(ST(0), "APR::URI")) { IV tmp = SvIV((SV*)SvRV(ST(0))); obj = INT2PTR(APR__URI,tmp); } else Perl_croak(aTHX_ "%s: %s is not of type %s", "APR::URI::fragment", "obj", "APR::URI"); if (items < 2) val_sv = Nullsv; else { val_sv = ST(1); } #line 287 "URI.xs" RETVAL = (char *) obj->fragment; if (val_sv) { if (SvOK(val_sv)) { STRLEN val_len; char *val = (char *)SvPV(val_sv, val_len); obj->fragment = apr_pstrndup(mpxs_APR__URI_pool(obj), val, val_len); } else { obj->fragment = NULL; } } #line 668 "URI.c" sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; } XSRETURN(1); } #ifdef __cplusplus extern "C" #endif XS(boot_APR__URI); /* prototype to pass -Wmissing-prototypes */ XS(boot_APR__URI) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif #if (PERL_REVISION == 5 && PERL_VERSION < 9) char* file = __FILE__; #else const char* file = __FILE__; #endif PERL_UNUSED_VAR(cv); /* -W */ PERL_UNUSED_VAR(items); /* -W */ XS_VERSION_BOOTCHECK ; (void)newXS("APR::URI::parse", XS_APR__URI_parse, file); (void)newXS("APR::URI::port_of_scheme", XS_APR__URI_port_of_scheme, file); (void)newXS("APR::URI::unparse", XS_APR__URI_unparse, file); (void)newXS("APR::URI::port", XS_APR__URI_port, file); (void)newXS("APR::URI::rpath", XS_APR__URI_rpath, file); (void)newXS("APR::URI::scheme", XS_APR__URI_scheme, file); (void)newXS("APR::URI::hostinfo", XS_APR__URI_hostinfo, file); (void)newXS("APR::URI::user", XS_APR__URI_user, file); (void)newXS("APR::URI::password", XS_APR__URI_password, file); (void)newXS("APR::URI::hostname", XS_APR__URI_hostname, file); (void)newXS("APR::URI::path", XS_APR__URI_path, file); (void)newXS("APR::URI::query", XS_APR__URI_query, file); (void)newXS("APR::URI::fragment", XS_APR__URI_fragment, file); /* Initialisation Section */ #line 307 "URI.xs" items = items; /* -Wall */ #line 714 "URI.c" /* End of Initialisation Section */ #if (PERL_REVISION == 5 && PERL_VERSION >= 9) if (PL_unitcheckav) call_list(PL_scopestack_ix, PL_unitcheckav); #endif XSRETURN_YES; }