8 #define fix(s) ((s) ? (s) : "") 16 #define new_pv(a) newSVpv(fix(a), xstrlen(a)) 19 ((o) && SvROK(o) && SvRV(o) && (SvTYPE(SvRV(o)) == SVt_PVHV)) 22 (is_hvref(o) ? (HV *)SvRV(o) : NULL) 26 #define PERL_HANDLER_HEADER(x) \ 27 char *fullproc, *error; \ 28 int perl_retcount, ret = 0;\ 31 fullproc = saprintf("Ekg2::Script::%s::%s", scr->name, x);\ 47 #undef PERL_HANDLER_FOOTER 49 #ifdef PERL_RESTORE_ARGS 50 #define RESTORE_ARGS(x)\ 52 for (i=0; i < scr_que->argc; i++) {\ 53 if (scr_que->argv_type[i] & QUERY_ARG_CONST)\ 55 switch ( scr_que->argv_type[i] & QUERY_ARG_TYPES ) {\ 56 case (QUERY_ARG_INT):\ 57 *( (int *) args[i]) = SvIV(SvRV(perlargs[i]));\ 60 case (QUERY_ARG_CHARP):\ 62 char *retarg = xstrdup( SvPV_nolen(SvRV(perlargs[i])) ); \ 63 if ( xstrcmp(retarg, *( (char **) args[i])) ) {\ 64 xfree(*(char **) args[i]); \ 65 *( (char **) args[i]) = retarg;\ 70 case (QUERY_ARG_CHARPP): \ 78 #define RESTORE_ARGS(x) ; 81 #define PERL_HANDLER_FOOTER()\ 84 perl_retcount = perl_call_pv(fullproc, G_EVAL);\ 87 error = SvPV(ERRSV, PL_na);\ 88 print("script_error", error);\ 89 ret = SCRIPT_HANDLE_UNBIND;\ 91 else if (perl_retcount > 0)\ 94 ret = SvIV(perl_ret);\ 103 if (ret < 0) return -1;\ int perl_initialize()
Definition: perl_core.c:229
SV * create_sv_ptr(void *object)
Definition: perl_core.c:273
int perl_finalize()
Definition: perl_core.c:371