HTML-EmbeddedPerl
view release on metacpan or search on metacpan
EmbeddedPerl.xs view on Meta::CPAN
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include "ppport.h"
#define __EMBEDDED_MODULE__
#include "twepl_xcore.c"
#undef __EMBEDDED_MODULE__
MODULE = HTML::EmbeddedPerl PACKAGE = HTML::EmbeddedPerl
BOOT:
/* Register Section */
twepl_register(aTHX_ file);
SV* ep(...)
INIT:
mod_twepl/twepl_xcore.c view on Meta::CPAN
/* OPTION FLAGS(twepl) */
twepl_register_constsub(EPL_XS_NAME "\0", "OPT_TAG_NON", OPT_TAG_NON);
twepl_register_constsub(EPL_XS_NAME "\0", "OPT_TAG_ALL", OPT_TAG_ALL);
twepl_register_constsub(EPL_XS_NAME "\0", "OPT_TAG_EPL", OPT_TAG_EPL);
twepl_register_constsub(EPL_XS_NAME "\0", "OPT_TAG_DOL", OPT_TAG_DOL);
twepl_register_constsub(EPL_XS_NAME "\0", "OPT_TAG_PHP", OPT_TAG_PHP);
twepl_register_constsub(EPL_XS_NAME "\0", "OPT_TAG_ASP", OPT_TAG_PHP);
/* OPTION FLAGS(main) */
#ifndef __EMBEDDED_MODULE__
twepl_register_constsub("main", "OPT_TAG_NON", OPT_TAG_NON);
twepl_register_constsub("main", "OPT_TAG_ALL", OPT_TAG_ALL);
twepl_register_constsub("main", "OPT_TAG_EPL", OPT_TAG_EPL);
twepl_register_constsub("main", "OPT_TAG_DOL", OPT_TAG_DOL);
twepl_register_constsub("main", "OPT_TAG_PHP", OPT_TAG_PHP);
twepl_register_constsub("main", "OPT_TAG_ASP", OPT_TAG_PHP);
#endif
/* X-Powered-By */
#ifndef __MOD_TWEPL__
mod_twepl/twepl_xcore.c view on Meta::CPAN
}
EXTERN_C int twepl_check_caller(pTHX_ SV *sv, int argc, int argl, const char *name, const char *desc){
char *pkg;
if(sv_isobject(sv)){
pkg = HvNAME(SvSTASH(SvRV(sv)));
if(strcmp(pkg, EPL_XS_NAME "\0") == 0 || strcmp(pkg, EPL_PM_NAME "\0") == 0){
if(argc <= argl){
#ifdef __EMBEDDED_MODULE__
Perl_warn(aTHX_ "Usage: %s::%s(%s)", EPL_PM_NAME "\0", name, desc);
#else
Perl_warn(aTHX_ "Usage: %s::%s(%s)", EPL_XS_NAME "\0", name, desc);
#endif
return -1;
}
return TRUE;
} else{
#ifdef __EMBEDDED_MODULE__
Perl_warn(aTHX_ "%s: bad caller object found in xsub.", EPL_PM_NAME "\0");
#else
Perl_warn(aTHX_ "%s: bad caller object found in xsub.", EPL_XS_NAME "\0");
#endif
return -1;
}
} else if(argc < argl){
#ifdef __EMBEDDED_MODULE__
Perl_warn(aTHX_ "Usage: %s::%s(%s)", EPL_PM_NAME "\0", name, desc);
#else
Perl_warn(aTHX_ "Usage: %s::%s(%s)", EPL_XS_NAME "\0", name, desc);
#endif
return -1;
}
return FALSE;
}
#ifndef __EMBEDDED_MODULE__
EXTERN_C void twepl_xs_init (pTHX);
EXTERN_C void boot_DynaLoader (pTHX_ CV* cv);
EXTERN_C void twepl_xs_init (pTHX){
AV *isa;
AV *exp;
SV *ver;
/* DynaLoader is a special case */
newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, EPL_XS_NAME "\0");
mod_twepl/twepl_xcore.c view on Meta::CPAN
static void twepl_destroy (PerlInterpreter *twepl, char *buf){
perl_destruct(twepl);
perl_free(twepl);
PERL_SYS_TERM();
if(buf != NULL) free(buf);
}
#ifndef __EMBEDDED_MODULE__
#ifdef __MOD_TWEPL__
static int twepl_script_handler(request_rec *obj, char *ifp, int argc, char **argv, char **envp, TWEPL_CONFIG *twepl_conf){
#else
static int twepl_script_handler(FILE *obj, char *ifp, int argc, char **argv, char **envp, TWEPL_CONFIG *twepl_conf){
#endif
PerlInterpreter *twepl;
char *eps;
char *epb;
( run in 2.439 seconds using v1.01-cache-2.11-cpan-71847e10f99 )