From: Gurusamy Sarathy Date: Mon, 12 Jul 1999 01:55:15 +0000 (+0000) Subject: yet more cleanups of the PERL_OBJECT, MULTIPLICITY and USE_THREADS X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=c5be433b5c5658093bc9cae4434721a0b63e7a85;p=p5sagit%2Fp5-mst-13.2.git yet more cleanups of the PERL_OBJECT, MULTIPLICITY and USE_THREADS builds; passing the implicit context is unified among the three flavors; PERL_IMPLICIT_CONTEXT is auto-enabled under all three flavors (see the top of perl.h) for testing; all varargs functions foo() have a va_list-taking variant vfoo() for generating the context-free versions; the PERL_OBJECT build should now be hyper-compatible with CPAN extensions (C++ is totally out of the picture) result has only been tested on Windows TODO: write docs on the THX rationale and idiomatic usage of the Perl API p4raw-id: //depot/perl@3667 --- diff --git a/MANIFEST b/MANIFEST index 1888c0d..023b51f 100644 --- a/MANIFEST +++ b/MANIFEST @@ -54,7 +54,6 @@ README.vos Notes about Stratus VOS port README.win32 Notes about Win32 port Todo The Wishlist Todo-5.005 What needs doing before 5.005 release -XSlock.h Include file for extensions built with PERL_OBJECT defined XSUB.h Include file for extension subroutines apollo/netinet/in.h Apollo DomainOS port: C header file frontend av.c Array value code @@ -1401,10 +1400,7 @@ vos/vos_dummies.c Wrappers to soak up undefined functions vos/vosish.h VOS-specific header file warning.h The warning numbers warning.pl Program to write warning.h and lib/warning.pm -win32/GenCAPI.pl Win32 port for C API with PERL_OBJECT win32/Makefile Win32 makefile for NMAKE (Visual C++ build) -win32/TEST Win32 port -win32/autosplit.pl Win32 port win32/bin/perlglob.pl Win32 globbing win32/bin/pl2bat.pl wrap perl scripts into batch files win32/bin/runperl.pl run perl script via batch file namesake @@ -1419,15 +1415,12 @@ win32/config_h.PL Perl code to convert Win32 config.sh to config.h win32/config_sh.PL Perl code to update Win32 config.sh from Makefile win32/des_fcrypt.patch Win32 port win32/dl_win32.xs Win32 port -win32/genxsdef.pl Win32 port win32/include/arpa/inet.h Win32 port win32/include/dirent.h Win32 port win32/include/netdb.h Win32 port win32/include/sys/socket.h Win32 port -win32/makedef.pl Win32 port +win32/makedef.pl Win32 exports definition file writer win32/makefile.mk Win32 makefile for DMAKE (BC++, VC++ builds) -win32/makemain.pl Win32 port -win32/makeperldef.pl Win32 port win32/perlglob.c Win32 port win32/perllib.c Win32 port win32/pod.mak Win32 port diff --git a/XSUB.h b/XSUB.h index c43b7f9..15f2b41 100644 --- a/XSUB.h +++ b/XSUB.h @@ -110,23 +110,22 @@ # define VTBL_amagicelem &PL_vtbl_amagicelem #endif -#ifdef PERL_OBJECT - +#if defined(PERL_OBJECT) || defined(PERL_CAPI) # include "perlapi.h" # include "objXSUB.h" +#endif /* PERL_OBJECT || PERL_CAPI */ -# undef aTHXo -# define aTHXo pPerl -# undef aTHXo_ -# define aTHXo_ aTHXo, -# undef _aTHXo -# define _aTHXo ,aTHXo - -# ifdef WIN32 -# undef fprintf -# define fprintf pPerl->fprintf -# endif /* WIN32 */ - +#if defined(PERL_CAPI) +# undef aTHX +# undef aTHX_ +# undef _aTHX +# if defined(PERL_NO_GET_CONTEXT) +# define aTHX my_perl +# else +# define aTHX PERL_GET_INTERP +# endif /* PERL_NO_GET_CONTEXT */ +# define aTHX_ aTHX, +# define _aTHX ,aTHX # ifndef NO_XSLOCKS # undef closedir # undef opendir @@ -278,9 +277,5 @@ # define shutdown PerlSock_shutdown # define socket PerlSock_socket # define socketpair PerlSock_socketpair -# ifdef WIN32 -# include "XSlock.h" -# endif # endif /* NO_XSLOCKS */ - -#endif /* PERL_OBJECT */ +#endif /* PERL_CAPI */ diff --git a/XSlock.h b/XSlock.h deleted file mode 100644 index 8fb0ce4..0000000 --- a/XSlock.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __XSlock_h__ -#define __XSlock_h__ - -class XSLockManager -{ -public: - XSLockManager() { InitializeCriticalSection(&cs); }; - ~XSLockManager() { DeleteCriticalSection(&cs); }; - void Enter(void) { EnterCriticalSection(&cs); }; - void Leave(void) { LeaveCriticalSection(&cs); }; -protected: - CRITICAL_SECTION cs; -}; - -XSLockManager g_XSLock; - -class XSLock -{ -public: - XSLock() { g_XSLock.Enter(); }; - ~XSLock() { g_XSLock.Leave(); }; -}; - -CPerlObj* pPerl; - -#undef dXSARGS -#define dXSARGS \ - dSP; dMARK; \ - I32 ax = mark - PL_stack_base + 1; \ - I32 items = sp - mark; \ - XSLock localLock; \ - ::pPerl = pPerl - - -#endif diff --git a/bytecode.pl b/bytecode.pl index dfd16aa..32f2000 100644 --- a/bytecode.pl +++ b/bytecode.pl @@ -65,6 +65,7 @@ EOT open(BYTERUN_C, ">ext/ByteLoader/byterun.c") or die "ext/ByteLoader/byterun.c: $!"; print BYTERUN_C $c_header, <<'EOT'; +#define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #define NO_XSLOCKS diff --git a/deb.c b/deb.c index 252bb0b..b6456e6 100644 --- a/deb.c +++ b/deb.c @@ -16,12 +16,36 @@ #define PERL_IN_DEB_C #include "perl.h" +#if defined(PERL_IMPLICIT_CONTEXT) +void +Perl_deb_nocontext(const char *pat, ...) +{ +#ifdef DEBUGGING + dTHX; + va_list args; + va_start(args, pat); + vdeb(pat, &args); + va_end(args); +#endif /* DEBUGGING */ +} +#endif + void Perl_deb(pTHX_ const char *pat, ...) { #ifdef DEBUGGING - dTHR; va_list args; + va_start(args, pat); + vdeb(pat, &args); + va_end(args); +#endif /* DEBUGGING */ +} + +void +Perl_vdeb(pTHX_ const char *pat, va_list *args) +{ +#ifdef DEBUGGING + dTHR; register I32 i; GV* gv = PL_curcop->cop_filegv; @@ -37,10 +61,7 @@ Perl_deb(pTHX_ const char *pat, ...) #endif /* USE_THREADS */ for (i=0; i'); + print EM multon($sym,'T','PERL_GET_INTERP->'); } print EM <<'END'; @@ -539,7 +544,7 @@ print EM <<'END'; END for $sym (sort keys %intrp) { - print EM multon($sym,'I','PL_curinterp->'); + print EM multon($sym,'I','PERL_GET_INTERP->'); } print EM <<'END'; @@ -686,6 +691,10 @@ print OBX <<'EOT'; /* Functions */ +#if defined(PERL_OBJECT) + +/* XXX soon to be eliminated, only a few things in PERLCORE need these now */ + EOT walk_table { @@ -717,6 +726,7 @@ for $sym (sort keys %ppsym) { print OBX <<'EOT'; +#endif /* PERL_OBJECT */ #endif /* __objXSUB_h__ */ EOT @@ -733,21 +743,30 @@ print CAPIH <<'EOT'; perlvars.h and thrdvar.h. Any changes made here will be lost! */ -#if defined(PERL_OBJECT) - /* declare accessor functions for Perl variables */ +#if defined(PERL_OBJECT) || defined (PERL_CAPI) + +#if defined(PERL_OBJECT) +# undef aTHXo +# define aTHXo pPerl +# undef aTHXo_ +# define aTHXo_ aTHXo, +# undef _aTHXo +# define _aTHXo ,aTHXo +#endif /* PERL_OBJECT */ + START_EXTERN_C #undef PERLVAR #undef PERLVARA #undef PERLVARI #undef PERLVARIC -#define PERLVAR(v,t) EXTERN_C t* Perl_##v##_ptr(void *p); +#define PERLVAR(v,t) EXTERN_C t* Perl_##v##_ptr(pTHXo); #define PERLVARA(v,n,t) typedef t PL_##v##_t[n]; \ - EXTERN_C PL_##v##_t* Perl_##v##_ptr(void *p); + EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHXo); #define PERLVARI(v,t,i) PERLVAR(v,t) -#define PERLVARIC(v,t,i) PERLVAR(v,t) +#define PERLVARIC(v,t,i) PERLVAR(v, const t) #include "thrdvar.h" #include "intrpvar.h" @@ -760,7 +779,7 @@ START_EXTERN_C END_EXTERN_C -#endif /* PERL_OBJECT */ +#endif /* PERL_OBJECT || PERL_CAPI */ EOT @@ -784,15 +803,22 @@ START_EXTERN_C #undef PERLVARA #undef PERLVARI #undef PERLVARIC -#define PERLVAR(v,t) t* Perl_##v##_ptr(void *p) \ - { return &(((CPerlObj*)p)->PL_##v); } -#define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(void *p) \ - { return &(((CPerlObj*)p)->PL_##v); } +#define PERLVAR(v,t) t* Perl_##v##_ptr(pTHXo) \ + { return &(aTHXo->PL_##v); } +#define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHXo) \ + { return &(aTHXo->PL_##v); } #define PERLVARI(v,t,i) PERLVAR(v,t) -#define PERLVARIC(v,t,i) PERLVAR(v,t) +#define PERLVARIC(v,t,i) PERLVAR(v, const t) #include "thrdvar.h" #include "intrpvar.h" + +#undef PERLVAR +#undef PERLVARA +#define PERLVAR(v,t) t* Perl_##v##_ptr(pTHXo) \ + { return &(PL_##v); } +#define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHXo) \ + { return &(PL_##v); } #include "perlvars.h" #undef PERLVAR @@ -802,21 +828,73 @@ START_EXTERN_C EOT +# functions that take va_list* for implementing vararg functions +my %vfuncs = qw( + Perl_croak Perl_vcroak + Perl_warn Perl_vwarn + Perl_warner Perl_vwarner + Perl_die Perl_vdie + Perl_form Perl_vform + Perl_deb Perl_vdeb + Perl_newSVpvf Perl_vnewSVpvf + Perl_sv_setpvf Perl_sv_vsetpvf + Perl_sv_setpvf_mg Perl_sv_vsetpvf_mg + Perl_sv_catpvf Perl_sv_vcatpvf + Perl_sv_catpvf_mg Perl_sv_vcatpvf_mg + Perl_dump_indent Perl_dump_vindent + Perl_default_protect Perl_vdefault_protect +); + sub emit_func { - my ($retval,$func,@args) = @_; + my ($addcontext, $rettype,$func,@args) = @_; my @aargs = @args; for my $a (@aargs) { $a =~ s/^.*\b(\w+)$/$1/ } - unshift @args, 'void *pPerl'; + my $ctxarg = ''; + if (not $addcontext) { + $ctxarg = 'pTHXo'; + $ctxarg .= '_ ' if @args; + } + my $decl = ''; + if ($addcontext) { + $decl .= " dTHXo;\n"; + } local $" = ', '; - my $return = ($retval =~ /^\s*(void|Free_t|Signal_t)\s*$/ ? '' : 'return '); - return <$func(@aargs); +$decl va_list args; + va_start(args, $aargs[$#aargs]); + $retarg((CPerlObj*)pPerl)->$vfuncs{$ctxfunc}(@aargs, &args); + va_end(args);$return } EOT - + } + else { + $emitval .= <$func(@aargs); +} +EOT + } + $emitval; } # XXXX temporary hack @@ -840,17 +918,16 @@ walk_table { else { my ($flags,$retval,$func,@args) = @_; return $ret if exists $skipapi_funcs{$func}; - unless (@args and $args[$#args] =~ /\.\.\./) { - unless ($flags =~ /s/) { - $ret .= "\n"; - if ($flags =~ /p/) { - $ret .= undefine("Perl_$func"); - $ret .= emit_func($retval,"Perl_$func",@args); - } - else { - $ret .= undefine($func); - $ret .= emit_func($retval,$func,@args); - } + unless ($flags =~ /s/) { + $ret .= "\n"; + my $addctx = 1 if $flags =~ /n/; + if ($flags =~ /p/) { + $ret .= undefine("Perl_$func"); + $ret .= emit_func($addctx,$retval,"Perl_$func",@args); + } + else { + $ret .= undefine($func); + $ret .= emit_func($addctx,$retval,$func,@args); } } } @@ -862,15 +939,25 @@ for $sym (sort keys %ppsym) { print CAPI "\n"; print CAPI undefine("Perl_$sym"); if ($sym =~ /^ck_/) { - print CAPI emit_func('OP *',"Perl_$sym",'OP *o'); + print CAPI emit_func(0, 'OP *',"Perl_$sym",'OP *o'); } else { # pp_foo - print CAPI emit_func('OP *',"Perl_$sym"); + print CAPI emit_func(0, 'OP *',"Perl_$sym"); } } print CAPI <<'EOT'; +#undef Perl_fprintf_nocontext +int +Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...) +{ + dTHXo; + va_list(arglist); + va_start(arglist, format); + return (*pPerl->PL_StdIO->pVprintf)(pPerl->PL_StdIO, stream, format, arglist); +} + END_EXTERN_C #endif /* PERL_OBJECT */ @@ -949,16 +1036,20 @@ p |MAGIC* |condpair_magic |SV *sv #endif p |OP* |convert |I32 optype|I32 flags|OP* o pr |void |croak |const char* pat|... +pr |void |vcroak |const char* pat|va_list* args #if defined(PERL_IMPLICIT_CONTEXT) npr |void |croak_nocontext|const char* pat|... np |OP* |die_nocontext |const char* pat|... +np |void |deb_nocontext |const char* pat|... np |char* |form_nocontext |const char* pat|... np |void |warn_nocontext |const char* pat|... +np |void |warner_nocontext|U32 err|const char* pat|... np |SV* |newSVpvf_nocontext|const char* pat|... np |void |sv_catpvf_nocontext|SV* sv|const char* pat|... np |void |sv_setpvf_nocontext|SV* sv|const char* pat|... np |void |sv_catpvf_mg_nocontext|SV* sv|const char* pat|... np |void |sv_setpvf_mg_nocontext|SV* sv|const char* pat|... +np |int |fprintf_nocontext|PerlIO* stream|const char* fmt|... #endif p |void |cv_ckproto |CV* cv|GV* gv|char* p p |CV* |cv_clone |CV* proto @@ -976,6 +1067,7 @@ p |U32* |get_opargs p |PPADDR_t*|get_ppaddr p |I32 |cxinc p |void |deb |const char* pat|... +p |void |vdeb |const char* pat|va_list* args p |void |deb_growlevel p |void |debprofdump p |I32 |debop |OP* o @@ -985,6 +1077,7 @@ p |char* |delimcpy |char* to|char* toend|char* from \ |char* fromend|int delim|I32* retlen p |void |deprecate |char* s p |OP* |die |const char* pat|... +p |OP* |vdie |const char* pat|va_list* args p |OP* |die_where |char* message|STRLEN msglen p |void |dounwind |I32 cxix p |bool |do_aexec |SV* really|SV** mark|SV** sp @@ -1044,6 +1137,7 @@ p |PADOFFSET|find_threadsv|const char *name p |OP* |force_list |OP* arg p |OP* |fold_constants |OP* arg p |char* |form |const char* pat|... +p |char* |vform |const char* pat|va_list* args p |void |free_tmps p |OP* |gen_constant_list|OP* o #if !defined(HAS_GETENV_LEN) @@ -1305,14 +1399,13 @@ p |SV* |newSVnv |NV n p |SV* |newSVpv |const char* s|STRLEN len p |SV* |newSVpvn |const char* s|STRLEN len p |SV* |newSVpvf |const char* pat|... +p |SV* |vnewSVpvf |const char* pat|va_list* args p |SV* |newSVrv |SV* rv|const char* classname p |SV* |newSVsv |SV* old p |OP* |newUNOP |I32 type|I32 flags|OP* first p |OP* |newWHILEOP |I32 flags|I32 debuggable|LOOP* loop \ |I32 whileline|OP* expr|OP* block|OP* cont -#if defined(USE_THREADS) -p |struct perl_thread*|new_struct_thread|struct perl_thread *t -#endif + p |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems p |PerlIO*|nextargv |GV* gv p |char* |ninstr |const char* big|const char* bigend \ @@ -1346,6 +1439,9 @@ no |void |perl_free |PerlInterpreter* sv_interp no |int |perl_run |PerlInterpreter* sv_interp no |int |perl_parse |PerlInterpreter* sv_interp|XSINIT_t xsinit \ |int argc|char** argv|char** env +#if defined(USE_THREADS) +p |struct perl_thread* |new_struct_thread|struct perl_thread *t +#endif #endif p |void |call_atexit |ATEXIT_t fn|void *ptr p |I32 |call_argv |const char* sub_name|I32 flags|char** argv @@ -1479,6 +1575,7 @@ p |void |sv_add_arena |char* ptr|U32 size|U32 flags p |int |sv_backoff |SV* sv p |SV* |sv_bless |SV* sv|HV* stash p |void |sv_catpvf |SV* sv|const char* pat|... +p |void |sv_vcatpvf |SV* sv|const char* pat|va_list* args p |void |sv_catpv |SV* sv|const char* ptr p |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len p |void |sv_catsv |SV* dsv|SV* ssv @@ -1521,6 +1618,7 @@ p |void |sv_replace |SV* sv|SV* nsv p |void |sv_report_used p |void |sv_reset |char* s|HV* stash p |void |sv_setpvf |SV* sv|const char* pat|... +p |void |sv_vsetpvf |SV* sv|const char* pat|va_list* args p |void |sv_setiv |SV* sv|IV num p |void |sv_setpviv |SV* sv|IV num p |void |sv_setuv |SV* sv|UV num @@ -1573,7 +1671,9 @@ p |void |vivify_defelem |SV* sv p |void |vivify_ref |SV* sv|U32 to_what p |I32 |wait4pid |int pid|int* statusp|int flags p |void |warn |const char* pat|... +p |void |vwarn |const char* pat|va_list* args p |void |warner |U32 err|const char* pat|... +p |void |vwarner |U32 err|const char* pat|va_list* args p |void |watch |char** addr p |I32 |whichsig |char* sig p |int |yyerror |char* s @@ -1607,10 +1707,12 @@ p |struct perl_vars *|GetVars p |int |runops_standard p |int |runops_debug p |void |sv_catpvf_mg |SV *sv|const char* pat|... +p |void |sv_vcatpvf_mg |SV* sv|const char* pat|va_list* args p |void |sv_catpv_mg |SV *sv|const char *ptr p |void |sv_catpvn_mg |SV *sv|const char *ptr|STRLEN len p |void |sv_catsv_mg |SV *dstr|SV *sstr p |void |sv_setpvf_mg |SV *sv|const char* pat|... +p |void |sv_vsetpvf_mg |SV* sv|const char* pat|va_list* args p |void |sv_setiv_mg |SV *sv|IV i p |void |sv_setpviv_mg |SV *sv|IV iv p |void |sv_setuv_mg |SV *sv|UV u @@ -1623,6 +1725,8 @@ p |MGVTBL*|get_vtbl |int vtbl_id p |char* |pv_display |SV *sv|char *pv|STRLEN cur|STRLEN len \ |STRLEN pvlim p |void |dump_indent |I32 level|PerlIO *file|const char* pat|... +p |void |dump_vindent |I32 level|PerlIO *file|const char* pat \ + |va_list *args p |void |do_gv_dump |I32 level|PerlIO *file|char *name|GV *sv p |void |do_gvgv_dump |I32 level|PerlIO *file|char *name|GV *sv p |void |do_hv_dump |I32 level|PerlIO *file|char *name|HV *sv @@ -1634,6 +1738,7 @@ p |void |do_sv_dump |I32 level|PerlIO *file|SV *sv|I32 nest \ |I32 maxnest|bool dumpops|STRLEN pvlim p |void |magic_dump |MAGIC *mg p |void* |default_protect|int *excpt|protect_body_t body|... +p |void* |vdefault_protect|int *excpt|protect_body_t body|va_list *args p |void |reginitcolors p |char* |sv_2pv_nolen |SV* sv p |char* |sv_pv |SV *sv @@ -1913,9 +2018,6 @@ s |SV*|isa_lookup |HV *stash|const char *name|int len|int level #if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT) s |SV* |mess_alloc -rs |void |do_croak |const char *pat|va_list *args -s |void |do_warn |const char *pat|va_list *args -s |OP* |do_die |const char *pat|va_list *args # if defined(LEAKTEST) s |void |xstat |int # endif diff --git a/embedvar.h b/embedvar.h index 6933cec..42d96de 100644 --- a/embedvar.h +++ b/embedvar.h @@ -146,404 +146,404 @@ /* traditional MULTIPLICITY (intepreter is in a global) */ -#define PL_Sv (PL_curinterp->TSv) -#define PL_Xpv (PL_curinterp->TXpv) -#define PL_av_fetch_sv (PL_curinterp->Tav_fetch_sv) -#define PL_bodytarget (PL_curinterp->Tbodytarget) -#define PL_bostr (PL_curinterp->Tbostr) -#define PL_chopset (PL_curinterp->Tchopset) -#define PL_colors (PL_curinterp->Tcolors) -#define PL_colorset (PL_curinterp->Tcolorset) -#define PL_curcop (PL_curinterp->Tcurcop) -#define PL_curpad (PL_curinterp->Tcurpad) -#define PL_curpm (PL_curinterp->Tcurpm) -#define PL_curstack (PL_curinterp->Tcurstack) -#define PL_curstackinfo (PL_curinterp->Tcurstackinfo) -#define PL_curstash (PL_curinterp->Tcurstash) -#define PL_defoutgv (PL_curinterp->Tdefoutgv) -#define PL_defstash (PL_curinterp->Tdefstash) -#define PL_delaymagic (PL_curinterp->Tdelaymagic) -#define PL_dirty (PL_curinterp->Tdirty) -#define PL_dumpindent (PL_curinterp->Tdumpindent) -#define PL_extralen (PL_curinterp->Textralen) -#define PL_firstgv (PL_curinterp->Tfirstgv) -#define PL_formtarget (PL_curinterp->Tformtarget) -#define PL_hv_fetch_ent_mh (PL_curinterp->Thv_fetch_ent_mh) -#define PL_hv_fetch_sv (PL_curinterp->Thv_fetch_sv) -#define PL_in_eval (PL_curinterp->Tin_eval) -#define PL_last_in_gv (PL_curinterp->Tlast_in_gv) -#define PL_lastgotoprobe (PL_curinterp->Tlastgotoprobe) -#define PL_lastscream (PL_curinterp->Tlastscream) -#define PL_localizing (PL_curinterp->Tlocalizing) -#define PL_mainstack (PL_curinterp->Tmainstack) -#define PL_markstack (PL_curinterp->Tmarkstack) -#define PL_markstack_max (PL_curinterp->Tmarkstack_max) -#define PL_markstack_ptr (PL_curinterp->Tmarkstack_ptr) -#define PL_maxscream (PL_curinterp->Tmaxscream) -#define PL_modcount (PL_curinterp->Tmodcount) -#define PL_na (PL_curinterp->Tna) -#define PL_nrs (PL_curinterp->Tnrs) -#define PL_ofs (PL_curinterp->Tofs) -#define PL_ofslen (PL_curinterp->Tofslen) -#define PL_op (PL_curinterp->Top) -#define PL_opsave (PL_curinterp->Topsave) -#define PL_protect (PL_curinterp->Tprotect) -#define PL_reg_call_cc (PL_curinterp->Treg_call_cc) -#define PL_reg_curpm (PL_curinterp->Treg_curpm) -#define PL_reg_eval_set (PL_curinterp->Treg_eval_set) -#define PL_reg_flags (PL_curinterp->Treg_flags) -#define PL_reg_ganch (PL_curinterp->Treg_ganch) -#define PL_reg_magic (PL_curinterp->Treg_magic) -#define PL_reg_oldcurpm (PL_curinterp->Treg_oldcurpm) -#define PL_reg_oldpos (PL_curinterp->Treg_oldpos) -#define PL_reg_oldsaved (PL_curinterp->Treg_oldsaved) -#define PL_reg_oldsavedlen (PL_curinterp->Treg_oldsavedlen) -#define PL_reg_re (PL_curinterp->Treg_re) -#define PL_reg_start_tmp (PL_curinterp->Treg_start_tmp) -#define PL_reg_start_tmpl (PL_curinterp->Treg_start_tmpl) -#define PL_reg_starttry (PL_curinterp->Treg_starttry) -#define PL_reg_sv (PL_curinterp->Treg_sv) -#define PL_regbol (PL_curinterp->Tregbol) -#define PL_regcc (PL_curinterp->Tregcc) -#define PL_regcode (PL_curinterp->Tregcode) -#define PL_regcomp_parse (PL_curinterp->Tregcomp_parse) -#define PL_regcomp_rx (PL_curinterp->Tregcomp_rx) -#define PL_regcompp (PL_curinterp->Tregcompp) -#define PL_regdata (PL_curinterp->Tregdata) -#define PL_regdummy (PL_curinterp->Tregdummy) -#define PL_regendp (PL_curinterp->Tregendp) -#define PL_regeol (PL_curinterp->Tregeol) -#define PL_regexecp (PL_curinterp->Tregexecp) -#define PL_regflags (PL_curinterp->Tregflags) -#define PL_regfree (PL_curinterp->Tregfree) -#define PL_regindent (PL_curinterp->Tregindent) -#define PL_reginput (PL_curinterp->Treginput) -#define PL_regint_start (PL_curinterp->Tregint_start) -#define PL_regint_string (PL_curinterp->Tregint_string) -#define PL_reginterp_cnt (PL_curinterp->Treginterp_cnt) -#define PL_reglastparen (PL_curinterp->Treglastparen) -#define PL_regnarrate (PL_curinterp->Tregnarrate) -#define PL_regnaughty (PL_curinterp->Tregnaughty) -#define PL_regnpar (PL_curinterp->Tregnpar) -#define PL_regprecomp (PL_curinterp->Tregprecomp) -#define PL_regprev (PL_curinterp->Tregprev) -#define PL_regprogram (PL_curinterp->Tregprogram) -#define PL_regsawback (PL_curinterp->Tregsawback) -#define PL_regseen (PL_curinterp->Tregseen) -#define PL_regsize (PL_curinterp->Tregsize) -#define PL_regstartp (PL_curinterp->Tregstartp) -#define PL_regtill (PL_curinterp->Tregtill) -#define PL_regxend (PL_curinterp->Tregxend) -#define PL_restartop (PL_curinterp->Trestartop) -#define PL_retstack (PL_curinterp->Tretstack) -#define PL_retstack_ix (PL_curinterp->Tretstack_ix) -#define PL_retstack_max (PL_curinterp->Tretstack_max) -#define PL_rs (PL_curinterp->Trs) -#define PL_savestack (PL_curinterp->Tsavestack) -#define PL_savestack_ix (PL_curinterp->Tsavestack_ix) -#define PL_savestack_max (PL_curinterp->Tsavestack_max) -#define PL_scopestack (PL_curinterp->Tscopestack) -#define PL_scopestack_ix (PL_curinterp->Tscopestack_ix) -#define PL_scopestack_max (PL_curinterp->Tscopestack_max) -#define PL_screamfirst (PL_curinterp->Tscreamfirst) -#define PL_screamnext (PL_curinterp->Tscreamnext) -#define PL_secondgv (PL_curinterp->Tsecondgv) -#define PL_seen_evals (PL_curinterp->Tseen_evals) -#define PL_seen_zerolen (PL_curinterp->Tseen_zerolen) -#define PL_sortcop (PL_curinterp->Tsortcop) -#define PL_sortcxix (PL_curinterp->Tsortcxix) -#define PL_sortstash (PL_curinterp->Tsortstash) -#define PL_stack_base (PL_curinterp->Tstack_base) -#define PL_stack_max (PL_curinterp->Tstack_max) -#define PL_stack_sp (PL_curinterp->Tstack_sp) -#define PL_start_env (PL_curinterp->Tstart_env) -#define PL_statbuf (PL_curinterp->Tstatbuf) -#define PL_statcache (PL_curinterp->Tstatcache) -#define PL_statgv (PL_curinterp->Tstatgv) -#define PL_statname (PL_curinterp->Tstatname) -#define PL_tainted (PL_curinterp->Ttainted) -#define PL_timesbuf (PL_curinterp->Ttimesbuf) -#define PL_tmps_floor (PL_curinterp->Ttmps_floor) -#define PL_tmps_ix (PL_curinterp->Ttmps_ix) -#define PL_tmps_max (PL_curinterp->Ttmps_max) -#define PL_tmps_stack (PL_curinterp->Ttmps_stack) -#define PL_top_env (PL_curinterp->Ttop_env) -#define PL_toptarget (PL_curinterp->Ttoptarget) -#define PL_watchaddr (PL_curinterp->Twatchaddr) -#define PL_watchok (PL_curinterp->Twatchok) +#define PL_Sv (PERL_GET_INTERP->TSv) +#define PL_Xpv (PERL_GET_INTERP->TXpv) +#define PL_av_fetch_sv (PERL_GET_INTERP->Tav_fetch_sv) +#define PL_bodytarget (PERL_GET_INTERP->Tbodytarget) +#define PL_bostr (PERL_GET_INTERP->Tbostr) +#define PL_chopset (PERL_GET_INTERP->Tchopset) +#define PL_colors (PERL_GET_INTERP->Tcolors) +#define PL_colorset (PERL_GET_INTERP->Tcolorset) +#define PL_curcop (PERL_GET_INTERP->Tcurcop) +#define PL_curpad (PERL_GET_INTERP->Tcurpad) +#define PL_curpm (PERL_GET_INTERP->Tcurpm) +#define PL_curstack (PERL_GET_INTERP->Tcurstack) +#define PL_curstackinfo (PERL_GET_INTERP->Tcurstackinfo) +#define PL_curstash (PERL_GET_INTERP->Tcurstash) +#define PL_defoutgv (PERL_GET_INTERP->Tdefoutgv) +#define PL_defstash (PERL_GET_INTERP->Tdefstash) +#define PL_delaymagic (PERL_GET_INTERP->Tdelaymagic) +#define PL_dirty (PERL_GET_INTERP->Tdirty) +#define PL_dumpindent (PERL_GET_INTERP->Tdumpindent) +#define PL_extralen (PERL_GET_INTERP->Textralen) +#define PL_firstgv (PERL_GET_INTERP->Tfirstgv) +#define PL_formtarget (PERL_GET_INTERP->Tformtarget) +#define PL_hv_fetch_ent_mh (PERL_GET_INTERP->Thv_fetch_ent_mh) +#define PL_hv_fetch_sv (PERL_GET_INTERP->Thv_fetch_sv) +#define PL_in_eval (PERL_GET_INTERP->Tin_eval) +#define PL_last_in_gv (PERL_GET_INTERP->Tlast_in_gv) +#define PL_lastgotoprobe (PERL_GET_INTERP->Tlastgotoprobe) +#define PL_lastscream (PERL_GET_INTERP->Tlastscream) +#define PL_localizing (PERL_GET_INTERP->Tlocalizing) +#define PL_mainstack (PERL_GET_INTERP->Tmainstack) +#define PL_markstack (PERL_GET_INTERP->Tmarkstack) +#define PL_markstack_max (PERL_GET_INTERP->Tmarkstack_max) +#define PL_markstack_ptr (PERL_GET_INTERP->Tmarkstack_ptr) +#define PL_maxscream (PERL_GET_INTERP->Tmaxscream) +#define PL_modcount (PERL_GET_INTERP->Tmodcount) +#define PL_na (PERL_GET_INTERP->Tna) +#define PL_nrs (PERL_GET_INTERP->Tnrs) +#define PL_ofs (PERL_GET_INTERP->Tofs) +#define PL_ofslen (PERL_GET_INTERP->Tofslen) +#define PL_op (PERL_GET_INTERP->Top) +#define PL_opsave (PERL_GET_INTERP->Topsave) +#define PL_protect (PERL_GET_INTERP->Tprotect) +#define PL_reg_call_cc (PERL_GET_INTERP->Treg_call_cc) +#define PL_reg_curpm (PERL_GET_INTERP->Treg_curpm) +#define PL_reg_eval_set (PERL_GET_INTERP->Treg_eval_set) +#define PL_reg_flags (PERL_GET_INTERP->Treg_flags) +#define PL_reg_ganch (PERL_GET_INTERP->Treg_ganch) +#define PL_reg_magic (PERL_GET_INTERP->Treg_magic) +#define PL_reg_oldcurpm (PERL_GET_INTERP->Treg_oldcurpm) +#define PL_reg_oldpos (PERL_GET_INTERP->Treg_oldpos) +#define PL_reg_oldsaved (PERL_GET_INTERP->Treg_oldsaved) +#define PL_reg_oldsavedlen (PERL_GET_INTERP->Treg_oldsavedlen) +#define PL_reg_re (PERL_GET_INTERP->Treg_re) +#define PL_reg_start_tmp (PERL_GET_INTERP->Treg_start_tmp) +#define PL_reg_start_tmpl (PERL_GET_INTERP->Treg_start_tmpl) +#define PL_reg_starttry (PERL_GET_INTERP->Treg_starttry) +#define PL_reg_sv (PERL_GET_INTERP->Treg_sv) +#define PL_regbol (PERL_GET_INTERP->Tregbol) +#define PL_regcc (PERL_GET_INTERP->Tregcc) +#define PL_regcode (PERL_GET_INTERP->Tregcode) +#define PL_regcomp_parse (PERL_GET_INTERP->Tregcomp_parse) +#define PL_regcomp_rx (PERL_GET_INTERP->Tregcomp_rx) +#define PL_regcompp (PERL_GET_INTERP->Tregcompp) +#define PL_regdata (PERL_GET_INTERP->Tregdata) +#define PL_regdummy (PERL_GET_INTERP->Tregdummy) +#define PL_regendp (PERL_GET_INTERP->Tregendp) +#define PL_regeol (PERL_GET_INTERP->Tregeol) +#define PL_regexecp (PERL_GET_INTERP->Tregexecp) +#define PL_regflags (PERL_GET_INTERP->Tregflags) +#define PL_regfree (PERL_GET_INTERP->Tregfree) +#define PL_regindent (PERL_GET_INTERP->Tregindent) +#define PL_reginput (PERL_GET_INTERP->Treginput) +#define PL_regint_start (PERL_GET_INTERP->Tregint_start) +#define PL_regint_string (PERL_GET_INTERP->Tregint_string) +#define PL_reginterp_cnt (PERL_GET_INTERP->Treginterp_cnt) +#define PL_reglastparen (PERL_GET_INTERP->Treglastparen) +#define PL_regnarrate (PERL_GET_INTERP->Tregnarrate) +#define PL_regnaughty (PERL_GET_INTERP->Tregnaughty) +#define PL_regnpar (PERL_GET_INTERP->Tregnpar) +#define PL_regprecomp (PERL_GET_INTERP->Tregprecomp) +#define PL_regprev (PERL_GET_INTERP->Tregprev) +#define PL_regprogram (PERL_GET_INTERP->Tregprogram) +#define PL_regsawback (PERL_GET_INTERP->Tregsawback) +#define PL_regseen (PERL_GET_INTERP->Tregseen) +#define PL_regsize (PERL_GET_INTERP->Tregsize) +#define PL_regstartp (PERL_GET_INTERP->Tregstartp) +#define PL_regtill (PERL_GET_INTERP->Tregtill) +#define PL_regxend (PERL_GET_INTERP->Tregxend) +#define PL_restartop (PERL_GET_INTERP->Trestartop) +#define PL_retstack (PERL_GET_INTERP->Tretstack) +#define PL_retstack_ix (PERL_GET_INTERP->Tretstack_ix) +#define PL_retstack_max (PERL_GET_INTERP->Tretstack_max) +#define PL_rs (PERL_GET_INTERP->Trs) +#define PL_savestack (PERL_GET_INTERP->Tsavestack) +#define PL_savestack_ix (PERL_GET_INTERP->Tsavestack_ix) +#define PL_savestack_max (PERL_GET_INTERP->Tsavestack_max) +#define PL_scopestack (PERL_GET_INTERP->Tscopestack) +#define PL_scopestack_ix (PERL_GET_INTERP->Tscopestack_ix) +#define PL_scopestack_max (PERL_GET_INTERP->Tscopestack_max) +#define PL_screamfirst (PERL_GET_INTERP->Tscreamfirst) +#define PL_screamnext (PERL_GET_INTERP->Tscreamnext) +#define PL_secondgv (PERL_GET_INTERP->Tsecondgv) +#define PL_seen_evals (PERL_GET_INTERP->Tseen_evals) +#define PL_seen_zerolen (PERL_GET_INTERP->Tseen_zerolen) +#define PL_sortcop (PERL_GET_INTERP->Tsortcop) +#define PL_sortcxix (PERL_GET_INTERP->Tsortcxix) +#define PL_sortstash (PERL_GET_INTERP->Tsortstash) +#define PL_stack_base (PERL_GET_INTERP->Tstack_base) +#define PL_stack_max (PERL_GET_INTERP->Tstack_max) +#define PL_stack_sp (PERL_GET_INTERP->Tstack_sp) +#define PL_start_env (PERL_GET_INTERP->Tstart_env) +#define PL_statbuf (PERL_GET_INTERP->Tstatbuf) +#define PL_statcache (PERL_GET_INTERP->Tstatcache) +#define PL_statgv (PERL_GET_INTERP->Tstatgv) +#define PL_statname (PERL_GET_INTERP->Tstatname) +#define PL_tainted (PERL_GET_INTERP->Ttainted) +#define PL_timesbuf (PERL_GET_INTERP->Ttimesbuf) +#define PL_tmps_floor (PERL_GET_INTERP->Ttmps_floor) +#define PL_tmps_ix (PERL_GET_INTERP->Ttmps_ix) +#define PL_tmps_max (PERL_GET_INTERP->Ttmps_max) +#define PL_tmps_stack (PERL_GET_INTERP->Ttmps_stack) +#define PL_top_env (PERL_GET_INTERP->Ttop_env) +#define PL_toptarget (PERL_GET_INTERP->Ttoptarget) +#define PL_watchaddr (PERL_GET_INTERP->Twatchaddr) +#define PL_watchok (PERL_GET_INTERP->Twatchok) #endif /* !PERL_IMPLICIT_CONTEXT */ #endif /* !USE_THREADS */ /* These are always per-interpreter if there is more than one */ -#define PL_Argv (PL_curinterp->IArgv) -#define PL_Cmd (PL_curinterp->ICmd) -#define PL_DBcv (PL_curinterp->IDBcv) -#define PL_DBgv (PL_curinterp->IDBgv) -#define PL_DBline (PL_curinterp->IDBline) -#define PL_DBsignal (PL_curinterp->IDBsignal) -#define PL_DBsingle (PL_curinterp->IDBsingle) -#define PL_DBsub (PL_curinterp->IDBsub) -#define PL_DBtrace (PL_curinterp->IDBtrace) -#define PL_Dir (PL_curinterp->IDir) -#define PL_Env (PL_curinterp->IEnv) -#define PL_LIO (PL_curinterp->ILIO) -#define PL_Mem (PL_curinterp->IMem) -#define PL_Proc (PL_curinterp->IProc) -#define PL_Sock (PL_curinterp->ISock) -#define PL_StdIO (PL_curinterp->IStdIO) -#define PL_amagic_generation (PL_curinterp->Iamagic_generation) -#define PL_ampergv (PL_curinterp->Iampergv) -#define PL_an (PL_curinterp->Ian) -#define PL_archpat_auto (PL_curinterp->Iarchpat_auto) -#define PL_argvgv (PL_curinterp->Iargvgv) -#define PL_argvoutgv (PL_curinterp->Iargvoutgv) -#define PL_basetime (PL_curinterp->Ibasetime) -#define PL_beginav (PL_curinterp->Ibeginav) -#define PL_bitcount (PL_curinterp->Ibitcount) -#define PL_bufend (PL_curinterp->Ibufend) -#define PL_bufptr (PL_curinterp->Ibufptr) -#define PL_cddir (PL_curinterp->Icddir) -#define PL_collation_ix (PL_curinterp->Icollation_ix) -#define PL_collation_name (PL_curinterp->Icollation_name) -#define PL_collation_standard (PL_curinterp->Icollation_standard) -#define PL_collxfrm_base (PL_curinterp->Icollxfrm_base) -#define PL_collxfrm_mult (PL_curinterp->Icollxfrm_mult) -#define PL_compcv (PL_curinterp->Icompcv) -#define PL_compiling (PL_curinterp->Icompiling) -#define PL_comppad (PL_curinterp->Icomppad) -#define PL_comppad_name (PL_curinterp->Icomppad_name) -#define PL_comppad_name_fill (PL_curinterp->Icomppad_name_fill) -#define PL_comppad_name_floor (PL_curinterp->Icomppad_name_floor) -#define PL_cop_seqmax (PL_curinterp->Icop_seqmax) -#define PL_copline (PL_curinterp->Icopline) -#define PL_cred_mutex (PL_curinterp->Icred_mutex) -#define PL_cryptseen (PL_curinterp->Icryptseen) -#define PL_cshlen (PL_curinterp->Icshlen) -#define PL_cshname (PL_curinterp->Icshname) -#define PL_curcopdb (PL_curinterp->Icurcopdb) -#define PL_curstname (PL_curinterp->Icurstname) -#define PL_curthr (PL_curinterp->Icurthr) -#define PL_dbargs (PL_curinterp->Idbargs) -#define PL_debdelim (PL_curinterp->Idebdelim) -#define PL_debname (PL_curinterp->Idebname) -#define PL_debstash (PL_curinterp->Idebstash) -#define PL_debug (PL_curinterp->Idebug) -#define PL_defgv (PL_curinterp->Idefgv) -#define PL_diehook (PL_curinterp->Idiehook) -#define PL_dlevel (PL_curinterp->Idlevel) -#define PL_dlmax (PL_curinterp->Idlmax) -#define PL_doextract (PL_curinterp->Idoextract) -#define PL_doswitches (PL_curinterp->Idoswitches) -#define PL_dowarn (PL_curinterp->Idowarn) -#define PL_e_script (PL_curinterp->Ie_script) -#define PL_efloatbuf (PL_curinterp->Iefloatbuf) -#define PL_efloatsize (PL_curinterp->Iefloatsize) -#define PL_egid (PL_curinterp->Iegid) -#define PL_endav (PL_curinterp->Iendav) -#define PL_envgv (PL_curinterp->Ienvgv) -#define PL_errgv (PL_curinterp->Ierrgv) -#define PL_error_count (PL_curinterp->Ierror_count) -#define PL_euid (PL_curinterp->Ieuid) -#define PL_eval_cond (PL_curinterp->Ieval_cond) -#define PL_eval_mutex (PL_curinterp->Ieval_mutex) -#define PL_eval_owner (PL_curinterp->Ieval_owner) -#define PL_eval_root (PL_curinterp->Ieval_root) -#define PL_eval_start (PL_curinterp->Ieval_start) -#define PL_evalseq (PL_curinterp->Ievalseq) -#define PL_exitlist (PL_curinterp->Iexitlist) -#define PL_exitlistlen (PL_curinterp->Iexitlistlen) -#define PL_expect (PL_curinterp->Iexpect) -#define PL_fdpid (PL_curinterp->Ifdpid) -#define PL_filemode (PL_curinterp->Ifilemode) -#define PL_filter_debug (PL_curinterp->Ifilter_debug) -#define PL_forkprocess (PL_curinterp->Iforkprocess) -#define PL_formfeed (PL_curinterp->Iformfeed) -#define PL_generation (PL_curinterp->Igeneration) -#define PL_gensym (PL_curinterp->Igensym) -#define PL_gid (PL_curinterp->Igid) -#define PL_glob_index (PL_curinterp->Iglob_index) -#define PL_globalstash (PL_curinterp->Iglobalstash) -#define PL_he_root (PL_curinterp->Ihe_root) -#define PL_hintgv (PL_curinterp->Ihintgv) -#define PL_hints (PL_curinterp->Ihints) -#define PL_in_clean_all (PL_curinterp->Iin_clean_all) -#define PL_in_clean_objs (PL_curinterp->Iin_clean_objs) -#define PL_in_my (PL_curinterp->Iin_my) -#define PL_in_my_stash (PL_curinterp->Iin_my_stash) -#define PL_incgv (PL_curinterp->Iincgv) -#define PL_initav (PL_curinterp->Iinitav) -#define PL_inplace (PL_curinterp->Iinplace) -#define PL_last_lop (PL_curinterp->Ilast_lop) -#define PL_last_lop_op (PL_curinterp->Ilast_lop_op) -#define PL_last_swash_hv (PL_curinterp->Ilast_swash_hv) -#define PL_last_swash_key (PL_curinterp->Ilast_swash_key) -#define PL_last_swash_klen (PL_curinterp->Ilast_swash_klen) -#define PL_last_swash_slen (PL_curinterp->Ilast_swash_slen) -#define PL_last_swash_tmps (PL_curinterp->Ilast_swash_tmps) -#define PL_last_uni (PL_curinterp->Ilast_uni) -#define PL_lastfd (PL_curinterp->Ilastfd) -#define PL_lastsize (PL_curinterp->Ilastsize) -#define PL_lastspbase (PL_curinterp->Ilastspbase) -#define PL_laststatval (PL_curinterp->Ilaststatval) -#define PL_laststype (PL_curinterp->Ilaststype) -#define PL_leftgv (PL_curinterp->Ileftgv) -#define PL_lex_brackets (PL_curinterp->Ilex_brackets) -#define PL_lex_brackstack (PL_curinterp->Ilex_brackstack) -#define PL_lex_casemods (PL_curinterp->Ilex_casemods) -#define PL_lex_casestack (PL_curinterp->Ilex_casestack) -#define PL_lex_defer (PL_curinterp->Ilex_defer) -#define PL_lex_dojoin (PL_curinterp->Ilex_dojoin) -#define PL_lex_expect (PL_curinterp->Ilex_expect) -#define PL_lex_fakebrack (PL_curinterp->Ilex_fakebrack) -#define PL_lex_formbrack (PL_curinterp->Ilex_formbrack) -#define PL_lex_inpat (PL_curinterp->Ilex_inpat) -#define PL_lex_inwhat (PL_curinterp->Ilex_inwhat) -#define PL_lex_op (PL_curinterp->Ilex_op) -#define PL_lex_repl (PL_curinterp->Ilex_repl) -#define PL_lex_starts (PL_curinterp->Ilex_starts) -#define PL_lex_state (PL_curinterp->Ilex_state) -#define PL_lex_stuff (PL_curinterp->Ilex_stuff) -#define PL_lineary (PL_curinterp->Ilineary) -#define PL_linestart (PL_curinterp->Ilinestart) -#define PL_linestr (PL_curinterp->Ilinestr) -#define PL_localpatches (PL_curinterp->Ilocalpatches) -#define PL_main_cv (PL_curinterp->Imain_cv) -#define PL_main_root (PL_curinterp->Imain_root) -#define PL_main_start (PL_curinterp->Imain_start) -#define PL_malloc_mutex (PL_curinterp->Imalloc_mutex) -#define PL_max_intro_pending (PL_curinterp->Imax_intro_pending) -#define PL_maxo (PL_curinterp->Imaxo) -#define PL_maxsysfd (PL_curinterp->Imaxsysfd) -#define PL_mess_sv (PL_curinterp->Imess_sv) -#define PL_min_intro_pending (PL_curinterp->Imin_intro_pending) -#define PL_minus_F (PL_curinterp->Iminus_F) -#define PL_minus_a (PL_curinterp->Iminus_a) -#define PL_minus_c (PL_curinterp->Iminus_c) -#define PL_minus_l (PL_curinterp->Iminus_l) -#define PL_minus_n (PL_curinterp->Iminus_n) -#define PL_minus_p (PL_curinterp->Iminus_p) -#define PL_modglobal (PL_curinterp->Imodglobal) -#define PL_multi_close (PL_curinterp->Imulti_close) -#define PL_multi_end (PL_curinterp->Imulti_end) -#define PL_multi_open (PL_curinterp->Imulti_open) -#define PL_multi_start (PL_curinterp->Imulti_start) -#define PL_multiline (PL_curinterp->Imultiline) -#define PL_mystrk (PL_curinterp->Imystrk) -#define PL_nexttoke (PL_curinterp->Inexttoke) -#define PL_nexttype (PL_curinterp->Inexttype) -#define PL_nextval (PL_curinterp->Inextval) -#define PL_nice_chunk (PL_curinterp->Inice_chunk) -#define PL_nice_chunk_size (PL_curinterp->Inice_chunk_size) -#define PL_nomemok (PL_curinterp->Inomemok) -#define PL_nthreads (PL_curinterp->Inthreads) -#define PL_nthreads_cond (PL_curinterp->Inthreads_cond) -#define PL_numeric_local (PL_curinterp->Inumeric_local) -#define PL_numeric_name (PL_curinterp->Inumeric_name) -#define PL_numeric_radix (PL_curinterp->Inumeric_radix) -#define PL_numeric_standard (PL_curinterp->Inumeric_standard) -#define PL_ofmt (PL_curinterp->Iofmt) -#define PL_oldbufptr (PL_curinterp->Ioldbufptr) -#define PL_oldlastpm (PL_curinterp->Ioldlastpm) -#define PL_oldname (PL_curinterp->Ioldname) -#define PL_oldoldbufptr (PL_curinterp->Ioldoldbufptr) -#define PL_op_mask (PL_curinterp->Iop_mask) -#define PL_op_seqmax (PL_curinterp->Iop_seqmax) -#define PL_origalen (PL_curinterp->Iorigalen) -#define PL_origargc (PL_curinterp->Iorigargc) -#define PL_origargv (PL_curinterp->Iorigargv) -#define PL_origenviron (PL_curinterp->Iorigenviron) -#define PL_origfilename (PL_curinterp->Iorigfilename) -#define PL_ors (PL_curinterp->Iors) -#define PL_orslen (PL_curinterp->Iorslen) -#define PL_osname (PL_curinterp->Iosname) -#define PL_pad_reset_pending (PL_curinterp->Ipad_reset_pending) -#define PL_padix (PL_curinterp->Ipadix) -#define PL_padix_floor (PL_curinterp->Ipadix_floor) -#define PL_parsehook (PL_curinterp->Iparsehook) -#define PL_patchlevel (PL_curinterp->Ipatchlevel) -#define PL_pending_ident (PL_curinterp->Ipending_ident) -#define PL_perl_destruct_level (PL_curinterp->Iperl_destruct_level) -#define PL_perldb (PL_curinterp->Iperldb) -#define PL_pidstatus (PL_curinterp->Ipidstatus) -#define PL_preambleav (PL_curinterp->Ipreambleav) -#define PL_preambled (PL_curinterp->Ipreambled) -#define PL_preprocess (PL_curinterp->Ipreprocess) -#define PL_profiledata (PL_curinterp->Iprofiledata) -#define PL_replgv (PL_curinterp->Ireplgv) -#define PL_rightgv (PL_curinterp->Irightgv) -#define PL_rsfp (PL_curinterp->Irsfp) -#define PL_rsfp_filters (PL_curinterp->Irsfp_filters) -#define PL_runops (PL_curinterp->Irunops) -#define PL_sawampersand (PL_curinterp->Isawampersand) -#define PL_sawstudy (PL_curinterp->Isawstudy) -#define PL_sawvec (PL_curinterp->Isawvec) -#define PL_sh_path (PL_curinterp->Ish_path) -#define PL_siggv (PL_curinterp->Isiggv) -#define PL_sighandlerp (PL_curinterp->Isighandlerp) -#define PL_splitstr (PL_curinterp->Isplitstr) -#define PL_srand_called (PL_curinterp->Isrand_called) -#define PL_statusvalue (PL_curinterp->Istatusvalue) -#define PL_statusvalue_vms (PL_curinterp->Istatusvalue_vms) -#define PL_stdingv (PL_curinterp->Istdingv) -#define PL_strchop (PL_curinterp->Istrchop) -#define PL_strtab (PL_curinterp->Istrtab) -#define PL_strtab_mutex (PL_curinterp->Istrtab_mutex) -#define PL_sub_generation (PL_curinterp->Isub_generation) -#define PL_sublex_info (PL_curinterp->Isublex_info) -#define PL_subline (PL_curinterp->Isubline) -#define PL_subname (PL_curinterp->Isubname) -#define PL_sv_arenaroot (PL_curinterp->Isv_arenaroot) -#define PL_sv_count (PL_curinterp->Isv_count) -#define PL_sv_mutex (PL_curinterp->Isv_mutex) -#define PL_sv_no (PL_curinterp->Isv_no) -#define PL_sv_objcount (PL_curinterp->Isv_objcount) -#define PL_sv_root (PL_curinterp->Isv_root) -#define PL_sv_undef (PL_curinterp->Isv_undef) -#define PL_sv_yes (PL_curinterp->Isv_yes) -#define PL_svref_mutex (PL_curinterp->Isvref_mutex) -#define PL_sys_intern (PL_curinterp->Isys_intern) -#define PL_tainting (PL_curinterp->Itainting) -#define PL_thisexpr (PL_curinterp->Ithisexpr) -#define PL_thr_key (PL_curinterp->Ithr_key) -#define PL_threadnum (PL_curinterp->Ithreadnum) -#define PL_threads_mutex (PL_curinterp->Ithreads_mutex) -#define PL_threadsv_names (PL_curinterp->Ithreadsv_names) -#define PL_thrsv (PL_curinterp->Ithrsv) -#define PL_tokenbuf (PL_curinterp->Itokenbuf) -#define PL_uid (PL_curinterp->Iuid) -#define PL_unsafe (PL_curinterp->Iunsafe) -#define PL_utf8_alnum (PL_curinterp->Iutf8_alnum) -#define PL_utf8_alnumc (PL_curinterp->Iutf8_alnumc) -#define PL_utf8_alpha (PL_curinterp->Iutf8_alpha) -#define PL_utf8_ascii (PL_curinterp->Iutf8_ascii) -#define PL_utf8_cntrl (PL_curinterp->Iutf8_cntrl) -#define PL_utf8_digit (PL_curinterp->Iutf8_digit) -#define PL_utf8_graph (PL_curinterp->Iutf8_graph) -#define PL_utf8_lower (PL_curinterp->Iutf8_lower) -#define PL_utf8_mark (PL_curinterp->Iutf8_mark) -#define PL_utf8_print (PL_curinterp->Iutf8_print) -#define PL_utf8_punct (PL_curinterp->Iutf8_punct) -#define PL_utf8_space (PL_curinterp->Iutf8_space) -#define PL_utf8_tolower (PL_curinterp->Iutf8_tolower) -#define PL_utf8_totitle (PL_curinterp->Iutf8_totitle) -#define PL_utf8_toupper (PL_curinterp->Iutf8_toupper) -#define PL_utf8_upper (PL_curinterp->Iutf8_upper) -#define PL_utf8_xdigit (PL_curinterp->Iutf8_xdigit) -#define PL_uudmap (PL_curinterp->Iuudmap) -#define PL_warnhook (PL_curinterp->Iwarnhook) -#define PL_xiv_arenaroot (PL_curinterp->Ixiv_arenaroot) -#define PL_xiv_root (PL_curinterp->Ixiv_root) -#define PL_xnv_root (PL_curinterp->Ixnv_root) -#define PL_xpv_root (PL_curinterp->Ixpv_root) -#define PL_xrv_root (PL_curinterp->Ixrv_root) -#define PL_yychar (PL_curinterp->Iyychar) -#define PL_yydebug (PL_curinterp->Iyydebug) -#define PL_yyerrflag (PL_curinterp->Iyyerrflag) -#define PL_yylval (PL_curinterp->Iyylval) -#define PL_yynerrs (PL_curinterp->Iyynerrs) -#define PL_yyval (PL_curinterp->Iyyval) +#define PL_Argv (PERL_GET_INTERP->IArgv) +#define PL_Cmd (PERL_GET_INTERP->ICmd) +#define PL_DBcv (PERL_GET_INTERP->IDBcv) +#define PL_DBgv (PERL_GET_INTERP->IDBgv) +#define PL_DBline (PERL_GET_INTERP->IDBline) +#define PL_DBsignal (PERL_GET_INTERP->IDBsignal) +#define PL_DBsingle (PERL_GET_INTERP->IDBsingle) +#define PL_DBsub (PERL_GET_INTERP->IDBsub) +#define PL_DBtrace (PERL_GET_INTERP->IDBtrace) +#define PL_Dir (PERL_GET_INTERP->IDir) +#define PL_Env (PERL_GET_INTERP->IEnv) +#define PL_LIO (PERL_GET_INTERP->ILIO) +#define PL_Mem (PERL_GET_INTERP->IMem) +#define PL_Proc (PERL_GET_INTERP->IProc) +#define PL_Sock (PERL_GET_INTERP->ISock) +#define PL_StdIO (PERL_GET_INTERP->IStdIO) +#define PL_amagic_generation (PERL_GET_INTERP->Iamagic_generation) +#define PL_ampergv (PERL_GET_INTERP->Iampergv) +#define PL_an (PERL_GET_INTERP->Ian) +#define PL_archpat_auto (PERL_GET_INTERP->Iarchpat_auto) +#define PL_argvgv (PERL_GET_INTERP->Iargvgv) +#define PL_argvoutgv (PERL_GET_INTERP->Iargvoutgv) +#define PL_basetime (PERL_GET_INTERP->Ibasetime) +#define PL_beginav (PERL_GET_INTERP->Ibeginav) +#define PL_bitcount (PERL_GET_INTERP->Ibitcount) +#define PL_bufend (PERL_GET_INTERP->Ibufend) +#define PL_bufptr (PERL_GET_INTERP->Ibufptr) +#define PL_cddir (PERL_GET_INTERP->Icddir) +#define PL_collation_ix (PERL_GET_INTERP->Icollation_ix) +#define PL_collation_name (PERL_GET_INTERP->Icollation_name) +#define PL_collation_standard (PERL_GET_INTERP->Icollation_standard) +#define PL_collxfrm_base (PERL_GET_INTERP->Icollxfrm_base) +#define PL_collxfrm_mult (PERL_GET_INTERP->Icollxfrm_mult) +#define PL_compcv (PERL_GET_INTERP->Icompcv) +#define PL_compiling (PERL_GET_INTERP->Icompiling) +#define PL_comppad (PERL_GET_INTERP->Icomppad) +#define PL_comppad_name (PERL_GET_INTERP->Icomppad_name) +#define PL_comppad_name_fill (PERL_GET_INTERP->Icomppad_name_fill) +#define PL_comppad_name_floor (PERL_GET_INTERP->Icomppad_name_floor) +#define PL_cop_seqmax (PERL_GET_INTERP->Icop_seqmax) +#define PL_copline (PERL_GET_INTERP->Icopline) +#define PL_cred_mutex (PERL_GET_INTERP->Icred_mutex) +#define PL_cryptseen (PERL_GET_INTERP->Icryptseen) +#define PL_cshlen (PERL_GET_INTERP->Icshlen) +#define PL_cshname (PERL_GET_INTERP->Icshname) +#define PL_curcopdb (PERL_GET_INTERP->Icurcopdb) +#define PL_curstname (PERL_GET_INTERP->Icurstname) +#define PL_curthr (PERL_GET_INTERP->Icurthr) +#define PL_dbargs (PERL_GET_INTERP->Idbargs) +#define PL_debdelim (PERL_GET_INTERP->Idebdelim) +#define PL_debname (PERL_GET_INTERP->Idebname) +#define PL_debstash (PERL_GET_INTERP->Idebstash) +#define PL_debug (PERL_GET_INTERP->Idebug) +#define PL_defgv (PERL_GET_INTERP->Idefgv) +#define PL_diehook (PERL_GET_INTERP->Idiehook) +#define PL_dlevel (PERL_GET_INTERP->Idlevel) +#define PL_dlmax (PERL_GET_INTERP->Idlmax) +#define PL_doextract (PERL_GET_INTERP->Idoextract) +#define PL_doswitches (PERL_GET_INTERP->Idoswitches) +#define PL_dowarn (PERL_GET_INTERP->Idowarn) +#define PL_e_script (PERL_GET_INTERP->Ie_script) +#define PL_efloatbuf (PERL_GET_INTERP->Iefloatbuf) +#define PL_efloatsize (PERL_GET_INTERP->Iefloatsize) +#define PL_egid (PERL_GET_INTERP->Iegid) +#define PL_endav (PERL_GET_INTERP->Iendav) +#define PL_envgv (PERL_GET_INTERP->Ienvgv) +#define PL_errgv (PERL_GET_INTERP->Ierrgv) +#define PL_error_count (PERL_GET_INTERP->Ierror_count) +#define PL_euid (PERL_GET_INTERP->Ieuid) +#define PL_eval_cond (PERL_GET_INTERP->Ieval_cond) +#define PL_eval_mutex (PERL_GET_INTERP->Ieval_mutex) +#define PL_eval_owner (PERL_GET_INTERP->Ieval_owner) +#define PL_eval_root (PERL_GET_INTERP->Ieval_root) +#define PL_eval_start (PERL_GET_INTERP->Ieval_start) +#define PL_evalseq (PERL_GET_INTERP->Ievalseq) +#define PL_exitlist (PERL_GET_INTERP->Iexitlist) +#define PL_exitlistlen (PERL_GET_INTERP->Iexitlistlen) +#define PL_expect (PERL_GET_INTERP->Iexpect) +#define PL_fdpid (PERL_GET_INTERP->Ifdpid) +#define PL_filemode (PERL_GET_INTERP->Ifilemode) +#define PL_filter_debug (PERL_GET_INTERP->Ifilter_debug) +#define PL_forkprocess (PERL_GET_INTERP->Iforkprocess) +#define PL_formfeed (PERL_GET_INTERP->Iformfeed) +#define PL_generation (PERL_GET_INTERP->Igeneration) +#define PL_gensym (PERL_GET_INTERP->Igensym) +#define PL_gid (PERL_GET_INTERP->Igid) +#define PL_glob_index (PERL_GET_INTERP->Iglob_index) +#define PL_globalstash (PERL_GET_INTERP->Iglobalstash) +#define PL_he_root (PERL_GET_INTERP->Ihe_root) +#define PL_hintgv (PERL_GET_INTERP->Ihintgv) +#define PL_hints (PERL_GET_INTERP->Ihints) +#define PL_in_clean_all (PERL_GET_INTERP->Iin_clean_all) +#define PL_in_clean_objs (PERL_GET_INTERP->Iin_clean_objs) +#define PL_in_my (PERL_GET_INTERP->Iin_my) +#define PL_in_my_stash (PERL_GET_INTERP->Iin_my_stash) +#define PL_incgv (PERL_GET_INTERP->Iincgv) +#define PL_initav (PERL_GET_INTERP->Iinitav) +#define PL_inplace (PERL_GET_INTERP->Iinplace) +#define PL_last_lop (PERL_GET_INTERP->Ilast_lop) +#define PL_last_lop_op (PERL_GET_INTERP->Ilast_lop_op) +#define PL_last_swash_hv (PERL_GET_INTERP->Ilast_swash_hv) +#define PL_last_swash_key (PERL_GET_INTERP->Ilast_swash_key) +#define PL_last_swash_klen (PERL_GET_INTERP->Ilast_swash_klen) +#define PL_last_swash_slen (PERL_GET_INTERP->Ilast_swash_slen) +#define PL_last_swash_tmps (PERL_GET_INTERP->Ilast_swash_tmps) +#define PL_last_uni (PERL_GET_INTERP->Ilast_uni) +#define PL_lastfd (PERL_GET_INTERP->Ilastfd) +#define PL_lastsize (PERL_GET_INTERP->Ilastsize) +#define PL_lastspbase (PERL_GET_INTERP->Ilastspbase) +#define PL_laststatval (PERL_GET_INTERP->Ilaststatval) +#define PL_laststype (PERL_GET_INTERP->Ilaststype) +#define PL_leftgv (PERL_GET_INTERP->Ileftgv) +#define PL_lex_brackets (PERL_GET_INTERP->Ilex_brackets) +#define PL_lex_brackstack (PERL_GET_INTERP->Ilex_brackstack) +#define PL_lex_casemods (PERL_GET_INTERP->Ilex_casemods) +#define PL_lex_casestack (PERL_GET_INTERP->Ilex_casestack) +#define PL_lex_defer (PERL_GET_INTERP->Ilex_defer) +#define PL_lex_dojoin (PERL_GET_INTERP->Ilex_dojoin) +#define PL_lex_expect (PERL_GET_INTERP->Ilex_expect) +#define PL_lex_fakebrack (PERL_GET_INTERP->Ilex_fakebrack) +#define PL_lex_formbrack (PERL_GET_INTERP->Ilex_formbrack) +#define PL_lex_inpat (PERL_GET_INTERP->Ilex_inpat) +#define PL_lex_inwhat (PERL_GET_INTERP->Ilex_inwhat) +#define PL_lex_op (PERL_GET_INTERP->Ilex_op) +#define PL_lex_repl (PERL_GET_INTERP->Ilex_repl) +#define PL_lex_starts (PERL_GET_INTERP->Ilex_starts) +#define PL_lex_state (PERL_GET_INTERP->Ilex_state) +#define PL_lex_stuff (PERL_GET_INTERP->Ilex_stuff) +#define PL_lineary (PERL_GET_INTERP->Ilineary) +#define PL_linestart (PERL_GET_INTERP->Ilinestart) +#define PL_linestr (PERL_GET_INTERP->Ilinestr) +#define PL_localpatches (PERL_GET_INTERP->Ilocalpatches) +#define PL_main_cv (PERL_GET_INTERP->Imain_cv) +#define PL_main_root (PERL_GET_INTERP->Imain_root) +#define PL_main_start (PERL_GET_INTERP->Imain_start) +#define PL_malloc_mutex (PERL_GET_INTERP->Imalloc_mutex) +#define PL_max_intro_pending (PERL_GET_INTERP->Imax_intro_pending) +#define PL_maxo (PERL_GET_INTERP->Imaxo) +#define PL_maxsysfd (PERL_GET_INTERP->Imaxsysfd) +#define PL_mess_sv (PERL_GET_INTERP->Imess_sv) +#define PL_min_intro_pending (PERL_GET_INTERP->Imin_intro_pending) +#define PL_minus_F (PERL_GET_INTERP->Iminus_F) +#define PL_minus_a (PERL_GET_INTERP->Iminus_a) +#define PL_minus_c (PERL_GET_INTERP->Iminus_c) +#define PL_minus_l (PERL_GET_INTERP->Iminus_l) +#define PL_minus_n (PERL_GET_INTERP->Iminus_n) +#define PL_minus_p (PERL_GET_INTERP->Iminus_p) +#define PL_modglobal (PERL_GET_INTERP->Imodglobal) +#define PL_multi_close (PERL_GET_INTERP->Imulti_close) +#define PL_multi_end (PERL_GET_INTERP->Imulti_end) +#define PL_multi_open (PERL_GET_INTERP->Imulti_open) +#define PL_multi_start (PERL_GET_INTERP->Imulti_start) +#define PL_multiline (PERL_GET_INTERP->Imultiline) +#define PL_mystrk (PERL_GET_INTERP->Imystrk) +#define PL_nexttoke (PERL_GET_INTERP->Inexttoke) +#define PL_nexttype (PERL_GET_INTERP->Inexttype) +#define PL_nextval (PERL_GET_INTERP->Inextval) +#define PL_nice_chunk (PERL_GET_INTERP->Inice_chunk) +#define PL_nice_chunk_size (PERL_GET_INTERP->Inice_chunk_size) +#define PL_nomemok (PERL_GET_INTERP->Inomemok) +#define PL_nthreads (PERL_GET_INTERP->Inthreads) +#define PL_nthreads_cond (PERL_GET_INTERP->Inthreads_cond) +#define PL_numeric_local (PERL_GET_INTERP->Inumeric_local) +#define PL_numeric_name (PERL_GET_INTERP->Inumeric_name) +#define PL_numeric_radix (PERL_GET_INTERP->Inumeric_radix) +#define PL_numeric_standard (PERL_GET_INTERP->Inumeric_standard) +#define PL_ofmt (PERL_GET_INTERP->Iofmt) +#define PL_oldbufptr (PERL_GET_INTERP->Ioldbufptr) +#define PL_oldlastpm (PERL_GET_INTERP->Ioldlastpm) +#define PL_oldname (PERL_GET_INTERP->Ioldname) +#define PL_oldoldbufptr (PERL_GET_INTERP->Ioldoldbufptr) +#define PL_op_mask (PERL_GET_INTERP->Iop_mask) +#define PL_op_seqmax (PERL_GET_INTERP->Iop_seqmax) +#define PL_origalen (PERL_GET_INTERP->Iorigalen) +#define PL_origargc (PERL_GET_INTERP->Iorigargc) +#define PL_origargv (PERL_GET_INTERP->Iorigargv) +#define PL_origenviron (PERL_GET_INTERP->Iorigenviron) +#define PL_origfilename (PERL_GET_INTERP->Iorigfilename) +#define PL_ors (PERL_GET_INTERP->Iors) +#define PL_orslen (PERL_GET_INTERP->Iorslen) +#define PL_osname (PERL_GET_INTERP->Iosname) +#define PL_pad_reset_pending (PERL_GET_INTERP->Ipad_reset_pending) +#define PL_padix (PERL_GET_INTERP->Ipadix) +#define PL_padix_floor (PERL_GET_INTERP->Ipadix_floor) +#define PL_parsehook (PERL_GET_INTERP->Iparsehook) +#define PL_patchlevel (PERL_GET_INTERP->Ipatchlevel) +#define PL_pending_ident (PERL_GET_INTERP->Ipending_ident) +#define PL_perl_destruct_level (PERL_GET_INTERP->Iperl_destruct_level) +#define PL_perldb (PERL_GET_INTERP->Iperldb) +#define PL_pidstatus (PERL_GET_INTERP->Ipidstatus) +#define PL_preambleav (PERL_GET_INTERP->Ipreambleav) +#define PL_preambled (PERL_GET_INTERP->Ipreambled) +#define PL_preprocess (PERL_GET_INTERP->Ipreprocess) +#define PL_profiledata (PERL_GET_INTERP->Iprofiledata) +#define PL_replgv (PERL_GET_INTERP->Ireplgv) +#define PL_rightgv (PERL_GET_INTERP->Irightgv) +#define PL_rsfp (PERL_GET_INTERP->Irsfp) +#define PL_rsfp_filters (PERL_GET_INTERP->Irsfp_filters) +#define PL_runops (PERL_GET_INTERP->Irunops) +#define PL_sawampersand (PERL_GET_INTERP->Isawampersand) +#define PL_sawstudy (PERL_GET_INTERP->Isawstudy) +#define PL_sawvec (PERL_GET_INTERP->Isawvec) +#define PL_sh_path (PERL_GET_INTERP->Ish_path) +#define PL_siggv (PERL_GET_INTERP->Isiggv) +#define PL_sighandlerp (PERL_GET_INTERP->Isighandlerp) +#define PL_splitstr (PERL_GET_INTERP->Isplitstr) +#define PL_srand_called (PERL_GET_INTERP->Isrand_called) +#define PL_statusvalue (PERL_GET_INTERP->Istatusvalue) +#define PL_statusvalue_vms (PERL_GET_INTERP->Istatusvalue_vms) +#define PL_stdingv (PERL_GET_INTERP->Istdingv) +#define PL_strchop (PERL_GET_INTERP->Istrchop) +#define PL_strtab (PERL_GET_INTERP->Istrtab) +#define PL_strtab_mutex (PERL_GET_INTERP->Istrtab_mutex) +#define PL_sub_generation (PERL_GET_INTERP->Isub_generation) +#define PL_sublex_info (PERL_GET_INTERP->Isublex_info) +#define PL_subline (PERL_GET_INTERP->Isubline) +#define PL_subname (PERL_GET_INTERP->Isubname) +#define PL_sv_arenaroot (PERL_GET_INTERP->Isv_arenaroot) +#define PL_sv_count (PERL_GET_INTERP->Isv_count) +#define PL_sv_mutex (PERL_GET_INTERP->Isv_mutex) +#define PL_sv_no (PERL_GET_INTERP->Isv_no) +#define PL_sv_objcount (PERL_GET_INTERP->Isv_objcount) +#define PL_sv_root (PERL_GET_INTERP->Isv_root) +#define PL_sv_undef (PERL_GET_INTERP->Isv_undef) +#define PL_sv_yes (PERL_GET_INTERP->Isv_yes) +#define PL_svref_mutex (PERL_GET_INTERP->Isvref_mutex) +#define PL_sys_intern (PERL_GET_INTERP->Isys_intern) +#define PL_tainting (PERL_GET_INTERP->Itainting) +#define PL_thisexpr (PERL_GET_INTERP->Ithisexpr) +#define PL_thr_key (PERL_GET_INTERP->Ithr_key) +#define PL_threadnum (PERL_GET_INTERP->Ithreadnum) +#define PL_threads_mutex (PERL_GET_INTERP->Ithreads_mutex) +#define PL_threadsv_names (PERL_GET_INTERP->Ithreadsv_names) +#define PL_thrsv (PERL_GET_INTERP->Ithrsv) +#define PL_tokenbuf (PERL_GET_INTERP->Itokenbuf) +#define PL_uid (PERL_GET_INTERP->Iuid) +#define PL_unsafe (PERL_GET_INTERP->Iunsafe) +#define PL_utf8_alnum (PERL_GET_INTERP->Iutf8_alnum) +#define PL_utf8_alnumc (PERL_GET_INTERP->Iutf8_alnumc) +#define PL_utf8_alpha (PERL_GET_INTERP->Iutf8_alpha) +#define PL_utf8_ascii (PERL_GET_INTERP->Iutf8_ascii) +#define PL_utf8_cntrl (PERL_GET_INTERP->Iutf8_cntrl) +#define PL_utf8_digit (PERL_GET_INTERP->Iutf8_digit) +#define PL_utf8_graph (PERL_GET_INTERP->Iutf8_graph) +#define PL_utf8_lower (PERL_GET_INTERP->Iutf8_lower) +#define PL_utf8_mark (PERL_GET_INTERP->Iutf8_mark) +#define PL_utf8_print (PERL_GET_INTERP->Iutf8_print) +#define PL_utf8_punct (PERL_GET_INTERP->Iutf8_punct) +#define PL_utf8_space (PERL_GET_INTERP->Iutf8_space) +#define PL_utf8_tolower (PERL_GET_INTERP->Iutf8_tolower) +#define PL_utf8_totitle (PERL_GET_INTERP->Iutf8_totitle) +#define PL_utf8_toupper (PERL_GET_INTERP->Iutf8_toupper) +#define PL_utf8_upper (PERL_GET_INTERP->Iutf8_upper) +#define PL_utf8_xdigit (PERL_GET_INTERP->Iutf8_xdigit) +#define PL_uudmap (PERL_GET_INTERP->Iuudmap) +#define PL_warnhook (PERL_GET_INTERP->Iwarnhook) +#define PL_xiv_arenaroot (PERL_GET_INTERP->Ixiv_arenaroot) +#define PL_xiv_root (PERL_GET_INTERP->Ixiv_root) +#define PL_xnv_root (PERL_GET_INTERP->Ixnv_root) +#define PL_xpv_root (PERL_GET_INTERP->Ixpv_root) +#define PL_xrv_root (PERL_GET_INTERP->Ixrv_root) +#define PL_yychar (PERL_GET_INTERP->Iyychar) +#define PL_yydebug (PERL_GET_INTERP->Iyydebug) +#define PL_yyerrflag (PERL_GET_INTERP->Iyyerrflag) +#define PL_yylval (PERL_GET_INTERP->Iyylval) +#define PL_yynerrs (PERL_GET_INTERP->Iyynerrs) +#define PL_yyval (PERL_GET_INTERP->Iyyval) #else /* !MULTIPLICITY */ diff --git a/ext/B/B.xs b/ext/B/B.xs index 39e381d..2c9a888 100644 --- a/ext/B/B.xs +++ b/ext/B/B.xs @@ -7,6 +7,7 @@ * */ +#define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" diff --git a/ext/ByteLoader/ByteLoader.xs b/ext/ByteLoader/ByteLoader.xs index 07f0838..a3d53f6 100644 --- a/ext/ByteLoader/ByteLoader.xs +++ b/ext/ByteLoader/ByteLoader.xs @@ -1,3 +1,4 @@ +#define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" @@ -6,6 +7,7 @@ static void freadpv(U32 len, void *data, XPV *pv) { + dTHX; New(666, pv->xpv_pv, len, char); PerlIO_read((PerlIO*)data, (void*)pv->xpv_pv, len); pv->xpv_len = len; diff --git a/ext/ByteLoader/byterun.c b/ext/ByteLoader/byterun.c index 18fa4a1..60dc98d 100644 --- a/ext/ByteLoader/byterun.c +++ b/ext/ByteLoader/byterun.c @@ -9,6 +9,7 @@ * This file is autogenerated from bytecode.pl. Changes made here will be lost. */ +#define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #define NO_XSLOCKS diff --git a/ext/Data/Dumper/Dumper.xs b/ext/Data/Dumper/Dumper.xs index 27d128b..3cbc7c5 100644 --- a/ext/Data/Dumper/Dumper.xs +++ b/ext/Data/Dumper/Dumper.xs @@ -1,3 +1,4 @@ +#define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" diff --git a/ext/Devel/Peek/Peek.xs b/ext/Devel/Peek/Peek.xs index 016a6eb..df91476 100644 --- a/ext/Devel/Peek/Peek.xs +++ b/ext/Devel/Peek/Peek.xs @@ -1,3 +1,4 @@ +#define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" diff --git a/ext/Fcntl/Fcntl.xs b/ext/Fcntl/Fcntl.xs index 2446ab7..bc16cc9 100644 --- a/ext/Fcntl/Fcntl.xs +++ b/ext/Fcntl/Fcntl.xs @@ -1,3 +1,4 @@ +#define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" diff --git a/ext/IO/IO.xs b/ext/IO/IO.xs index eb18f0c..e614cff 100644 --- a/ext/IO/IO.xs +++ b/ext/IO/IO.xs @@ -4,6 +4,7 @@ * modify it under the same terms as Perl itself. */ +#define PERL_NO_GET_CONTEXT #include "EXTERN.h" #define PERLIO_NOT_STDIO 1 #include "perl.h" diff --git a/ext/Opcode/Opcode.xs b/ext/Opcode/Opcode.xs index c7d5f3e..9b6e016 100644 --- a/ext/Opcode/Opcode.xs +++ b/ext/Opcode/Opcode.xs @@ -1,3 +1,4 @@ +#define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs index bbf9a7a..e4433e0 100644 --- a/ext/POSIX/POSIX.xs +++ b/ext/POSIX/POSIX.xs @@ -1,11 +1,14 @@ #ifdef WIN32 #define _POSIX_ #endif + +#define PERL_NO_GET_CONTEXT + #include "EXTERN.h" #define PERLIO_NOT_STDIO 1 #include "perl.h" #include "XSUB.h" -#ifdef PERL_OBJECT /* XXX _very_ temporary hacks */ +#if defined(PERL_OBJECT) || defined(PERL_CAPI) # undef signal # undef open # undef setmode diff --git a/ext/SDBM_File/SDBM_File.xs b/ext/SDBM_File/SDBM_File.xs index c2e940b..ee672ca 100644 --- a/ext/SDBM_File/SDBM_File.xs +++ b/ext/SDBM_File/SDBM_File.xs @@ -1,3 +1,4 @@ +#define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" diff --git a/ext/Socket/Socket.xs b/ext/Socket/Socket.xs index c09c313..6abc647 100644 --- a/ext/Socket/Socket.xs +++ b/ext/Socket/Socket.xs @@ -1,3 +1,4 @@ +#define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" @@ -68,6 +69,7 @@ static int my_inet_aton(register const char *cp, struct in_addr *addr) { + dTHX; register U32 val; register int base; register char c; diff --git a/ext/Thread/Thread.xs b/ext/Thread/Thread.xs index 5d61941..4043a02 100644 --- a/ext/Thread/Thread.xs +++ b/ext/Thread/Thread.xs @@ -1,3 +1,4 @@ +#define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" @@ -324,6 +325,7 @@ static Signal_t handle_thread_signal (int sig); static Signal_t handle_thread_signal(int sig) { + dTHXo; unsigned char c = (unsigned char) sig; /* * We're not really allowed to call fprintf in a signal handler diff --git a/ext/attrs/attrs.xs b/ext/attrs/attrs.xs index 4e0afb0..53ba535 100644 --- a/ext/attrs/attrs.xs +++ b/ext/attrs/attrs.xs @@ -1,3 +1,4 @@ +#define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" diff --git a/ext/re/re.xs b/ext/re/re.xs index 10e44f7..98ffd74 100644 --- a/ext/re/re.xs +++ b/ext/re/re.xs @@ -3,6 +3,7 @@ # define DEBUGGING #endif +#define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" diff --git a/global.sym b/global.sym index 36e2e75..06c71da 100644 --- a/global.sym +++ b/global.sym @@ -44,15 +44,19 @@ Perl_my_chsize Perl_condpair_magic Perl_convert Perl_croak +Perl_vcroak Perl_croak_nocontext Perl_die_nocontext +Perl_deb_nocontext Perl_form_nocontext Perl_warn_nocontext +Perl_warner_nocontext Perl_newSVpvf_nocontext Perl_sv_catpvf_nocontext Perl_sv_setpvf_nocontext Perl_sv_catpvf_mg_nocontext Perl_sv_setpvf_mg_nocontext +Perl_fprintf_nocontext Perl_cv_ckproto Perl_cv_clone Perl_cv_const_sv @@ -69,6 +73,7 @@ Perl_get_opargs Perl_get_ppaddr Perl_cxinc Perl_deb +Perl_vdeb Perl_deb_growlevel Perl_debprofdump Perl_debop @@ -77,6 +82,7 @@ Perl_debstackptrs Perl_delimcpy Perl_deprecate Perl_die +Perl_vdie Perl_die_where Perl_dounwind Perl_do_aexec @@ -125,6 +131,7 @@ Perl_find_threadsv Perl_force_list Perl_fold_constants Perl_form +Perl_vform Perl_free_tmps Perl_gen_constant_list Perl_getenv_len @@ -358,11 +365,11 @@ Perl_newSVnv Perl_newSVpv Perl_newSVpvn Perl_newSVpvf +Perl_vnewSVpvf Perl_newSVrv Perl_newSVsv Perl_newUNOP Perl_newWHILEOP -Perl_new_struct_thread Perl_new_stackinfo Perl_nextargv Perl_ninstr @@ -391,6 +398,7 @@ perl_destruct perl_free perl_run perl_parse +Perl_new_struct_thread Perl_call_atexit Perl_call_argv Perl_call_method @@ -511,6 +519,7 @@ Perl_sv_add_arena Perl_sv_backoff Perl_sv_bless Perl_sv_catpvf +Perl_sv_vcatpvf Perl_sv_catpv Perl_sv_catpvn Perl_sv_catsv @@ -549,6 +558,7 @@ Perl_sv_replace Perl_sv_report_used Perl_sv_reset Perl_sv_setpvf +Perl_sv_vsetpvf Perl_sv_setiv Perl_sv_setpviv Perl_sv_setuv @@ -591,7 +601,9 @@ Perl_vivify_defelem Perl_vivify_ref Perl_wait4pid Perl_warn +Perl_vwarn Perl_warner +Perl_vwarner Perl_watch Perl_whichsig Perl_yyerror @@ -616,10 +628,12 @@ Perl_GetVars Perl_runops_standard Perl_runops_debug Perl_sv_catpvf_mg +Perl_sv_vcatpvf_mg Perl_sv_catpv_mg Perl_sv_catpvn_mg Perl_sv_catsv_mg Perl_sv_setpvf_mg +Perl_sv_vsetpvf_mg Perl_sv_setiv_mg Perl_sv_setpviv_mg Perl_sv_setuv_mg @@ -631,6 +645,7 @@ Perl_sv_usepvn_mg Perl_get_vtbl Perl_pv_display Perl_dump_indent +Perl_dump_vindent Perl_do_gv_dump Perl_do_gvgv_dump Perl_do_hv_dump @@ -640,6 +655,7 @@ Perl_do_pmop_dump Perl_do_sv_dump Perl_magic_dump Perl_default_protect +Perl_vdefault_protect Perl_reginitcolors Perl_sv_2pv_nolen Perl_sv_pv diff --git a/globals.c b/globals.c index 216139d..fc88f31 100644 --- a/globals.c +++ b/globals.c @@ -46,14 +46,6 @@ CPerlObj::Init(void) { } -int -CPerlObj::fprintf(PerlIO *stream, const char *format, ...) -{ - va_list(arglist); - va_start(arglist, format); - return PerlIO_vprintf(stream, format, arglist); -} - #ifdef WIN32 /* XXX why are these needed? */ bool Perl_do_exec(char *cmd) @@ -69,3 +61,12 @@ CPerlObj::do_aspawn(void *vreally, void **vmark, void **vsp) #endif /* WIN32 */ #endif /* PERL_OBJECT */ + +int +Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...) +{ + dTHX; + va_list(arglist); + va_start(arglist, format); + return PerlIO_vprintf(stream, format, arglist); +} diff --git a/intrpvar.h b/intrpvar.h index 6bff0dd..0b9dfa6 100644 --- a/intrpvar.h +++ b/intrpvar.h @@ -382,12 +382,12 @@ PERLVAR(Icred_mutex, perl_mutex) /* altered credentials in effect */ #endif /* USE_THREADS */ -#ifdef PERL_OBJECT -PERLVARI(IMem, IPerlMem*, NULL) -PERLVARI(IEnv, IPerlEnv*, NULL) -PERLVARI(IStdIO, IPerlStdIO*, NULL) -PERLVARI(ILIO, IPerlLIO*, NULL) -PERLVARI(IDir, IPerlDir*, NULL) -PERLVARI(ISock, IPerlSock*, NULL) -PERLVARI(IProc, IPerlProc*, NULL) +#if defined(PERL_IMPLICIT_SYS) +PERLVARI(IMem, struct IPerlMem*, NULL) +PERLVARI(IEnv, struct IPerlEnv*, NULL) +PERLVARI(IStdIO, struct IPerlStdIO*, NULL) +PERLVARI(ILIO, struct IPerlLIO*, NULL) +PERLVARI(IDir, struct IPerlDir*, NULL) +PERLVARI(ISock, struct IPerlSock*, NULL) +PERLVARI(IProc, struct IPerlProc*, NULL) #endif diff --git a/iperlsys.h b/iperlsys.h index 8d05812..00bcf97 100644 --- a/iperlsys.h +++ b/iperlsys.h @@ -74,7 +74,7 @@ extern void PerlIO_init (void); #endif -#ifdef PERL_OBJECT +#if defined(PERL_IMPLICIT_SYS) #ifndef PerlIO typedef struct _PerlIO PerlIO; @@ -258,7 +258,7 @@ struct IPerlStdIOInfo (*PL_StdIO->pSetPtrCnt)(PL_StdIO, (f), (p), (c)) #define PerlIO_setlinebuf(f) \ (*PL_StdIO->pSetlinebuf)(PL_StdIO, (f)) -#define PerlIO_printf fprintf +#define PerlIO_printf Perl_fprintf_nocontext #define PerlIO_stdoutf *PL_StdIO->pPrintf #define PerlIO_vprintf(f,fmt,a) \ (*PL_StdIO->pVprintf)(PL_StdIO, (f),(fmt),a) @@ -277,14 +277,14 @@ struct IPerlStdIOInfo #define PerlIO_init() \ (*PL_StdIO->pInit)(PL_StdIO) #undef init_os_extras -#define init_os_extras(x) \ +#define init_os_extras() \ (*PL_StdIO->pInitOSExtras)(PL_StdIO) -#else /* PERL_OBJECT */ +#else /* PERL_IMPLICIT_SYS */ #include "perlsdio.h" -#endif /* PERL_OBJECT */ +#endif /* PERL_IMPLICIT_SYS */ #ifndef PERLIO_IS_STDIO #ifdef USE_SFIO @@ -466,7 +466,7 @@ extern int PerlIO_setpos (PerlIO *,const Fpos_t *); * Interface for directory functions */ -#ifdef PERL_OBJECT +#if defined(PERL_IMPLICIT_SYS) /* IPerlDir */ struct IPerlDir; @@ -518,7 +518,7 @@ struct IPerlDirInfo #define PerlDir_tell(dir) \ (*PL_Dir->pTell)(PL_Dir, (dir)) -#else /* PERL_OBJECT */ +#else /* PERL_IMPLICIT_SYS */ #define PerlDir_mkdir(name, mode) Mkdir((name), (mode)) #ifdef VMS @@ -534,13 +534,13 @@ struct IPerlDirInfo #define PerlDir_seek(dir, loc) seekdir((dir), (loc)) #define PerlDir_tell(dir) telldir((dir)) -#endif /* PERL_OBJECT */ +#endif /* PERL_IMPLICIT_SYS */ /* Interface for perl environment functions */ -#ifdef PERL_OBJECT +#if defined(PERL_IMPLICIT_SYS) /* IPerlEnv */ struct IPerlEnv; @@ -617,7 +617,7 @@ struct IPerlEnvInfo (*PL_Env->pSiteLibPath)(PL_Env,(str)) #endif -#else /* PERL_OBJECT */ +#else /* PERL_IMPLICIT_SYS */ #define PerlEnv_putenv(str) putenv((str)) #define PerlEnv_getenv(str) getenv((str)) @@ -635,13 +635,13 @@ struct IPerlEnvInfo #define PerlEnv_os_id() win32_os_id() #endif -#endif /* PERL_OBJECT */ +#endif /* PERL_IMPLICIT_SYS */ /* Interface for perl low-level IO functions */ -#ifdef PERL_OBJECT +#if defined(PERL_IMPLICIT_SYS) /* IPerlLIO */ struct IPerlLIO; @@ -763,7 +763,7 @@ struct IPerlLIOInfo #define PerlLIO_write(fd, buf, count) \ (*PL_LIO->pWrite)(PL_LIO, (fd), (buf), (count)) -#else /* PERL_OBJECT */ +#else /* PERL_IMPLICIT_SYS */ #define PerlLIO_access(file, mode) access((file), (mode)) #define PerlLIO_chmod(file, mode) chmod((file), (mode)) @@ -796,13 +796,13 @@ struct IPerlLIOInfo #define PerlLIO_utime(file, time) utime((file), (time)) #define PerlLIO_write(fd, buf, count) write((fd), (buf), (count)) -#endif /* PERL_OBJECT */ +#endif /* PERL_IMPLICIT_SYS */ /* Interface for perl memory allocation */ -#ifdef PERL_OBJECT +#if defined(PERL_IMPLICIT_SYS) /* IPerlMem */ struct IPerlMem; @@ -830,20 +830,20 @@ struct IPerlMemInfo #define PerlMem_free(buf) \ (*PL_Mem->pFree)(PL_Mem, (buf)) -#else /* PERL_OBJECT */ +#else /* PERL_IMPLICIT_SYS */ #define PerlMem_malloc(size) malloc((size)) #define PerlMem_realloc(buf, size) realloc((buf), (size)) #define PerlMem_free(buf) free((buf)) -#endif /* PERL_OBJECT */ +#endif /* PERL_IMPLICIT_SYS */ /* Interface for perl process functions */ -#ifdef PERL_OBJECT +#if defined(PERL_IMPLICIT_SYS) #ifndef Sighandler_t typedef Signal_t (*Sighandler_t) (int); @@ -1008,7 +1008,7 @@ struct IPerlProcInfo (*PL_Proc->pASpawn)(PL_Proc, (m), (c), (a)) #endif -#else /* PERL_OBJECT */ +#else /* PERL_IMPLICIT_SYS */ #define PerlProc_abort() abort() #define PerlProc_crypt(c,s) crypt((c), (s)) @@ -1041,17 +1041,17 @@ struct IPerlProcInfo #ifdef WIN32 #define PerlProc_DynaLoad(f) \ - win32_dynaload(aTHX_ (f)) + win32_dynaload((f)) #define PerlProc_GetOSError(s,e) \ - win32_str_os_error(aTHX_ (s), (e)) + win32_str_os_error((s), (e)) #endif -#endif /* PERL_OBJECT */ +#endif /* PERL_IMPLICIT_SYS */ /* Interface for perl socket functions */ -#ifdef PERL_OBJECT +#if defined(PERL_IMPLICIT_SYS) /* PerlSock */ struct IPerlSock; @@ -1265,7 +1265,7 @@ struct IPerlSockInfo (*PL_Sock->pClosesocket)(PL_Sock, s) #endif -#else /* PERL_OBJECT */ +#else /* PERL_IMPLICIT_SYS */ #define PerlSock_htonl(x) htonl(x) #define PerlSock_htons(x) htons(x) @@ -1323,7 +1323,7 @@ struct IPerlSockInfo #define PerlSock_closesocket(s) closesocket(s) #endif -#endif /* PERL_OBJECT */ +#endif /* PERL_IMPLICIT_SYS */ /* Mention diff --git a/lib/ExtUtils/MM_Unix.pm b/lib/ExtUtils/MM_Unix.pm index 03bb435..0e4712c 100644 --- a/lib/ExtUtils/MM_Unix.pm +++ b/lib/ExtUtils/MM_Unix.pm @@ -376,9 +376,8 @@ sub cflags { $self->{uc $_} ||= $cflags{$_} } - if ($self->{CAPI} && $Is_PERL_OBJECT) { - $self->{CCFLAGS} =~ s/-DPERL_OBJECT(\s|$)//; - $self->{CCFLAGS} .= ' -DPERL_CAPI '; + if ($Is_PERL_OBJECT) { + $self->{CCFLAGS} =~ s/-DPERL_OBJECT(\b|$)/-DPERL_CAPI/g; if ($Is_Win32 && $Config{'cc'} =~ /^cl.exe/i) { # Turn off C++ mode of the MSC compiler $self->{CCFLAGS} =~ s/-TP(\s|$)//; @@ -3415,7 +3414,7 @@ sub tool_xsubpp { } } - my $xsubpp = $self->{CAPI} ? "xsubpp -object_capi" : "xsubpp"; + my $xsubpp = "xsubpp"; return qq{ XSUBPPDIR = $xsdir diff --git a/lib/ExtUtils/MM_Win32.pm b/lib/ExtUtils/MM_Win32.pm index 5191bc8..f6d19a2 100644 --- a/lib/ExtUtils/MM_Win32.pm +++ b/lib/ExtUtils/MM_Win32.pm @@ -479,11 +479,6 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)\.exists sub perl_archive { my ($self) = @_; - if($OBJ) { - if ($self->{CAPI}) { - return '$(PERL_INC)\perlCAPI$(LIB_EXT)'; - } - } return '$(PERL_INC)\\'.$Config{'libperl'}; } diff --git a/lib/ExtUtils/MakeMaker.pm b/lib/ExtUtils/MakeMaker.pm index 42bf416..6fe9339 100644 --- a/lib/ExtUtils/MakeMaker.pm +++ b/lib/ExtUtils/MakeMaker.pm @@ -1226,6 +1226,9 @@ currently used by MakeMaker but may be handy in Makefile.PLs. =item CAPI +[This attribute is obsolete in Perl 5.6. PERL_OBJECT builds are C-compatible +by default.] + Switch to force usage of the Perl C API even when compiling for PERL_OBJECT. Note that this attribute is passed through to any recursive build, diff --git a/lib/ExtUtils/xsubpp b/lib/ExtUtils/xsubpp index ac9ea74..e5c7e09 100755 --- a/lib/ExtUtils/xsubpp +++ b/lib/ExtUtils/xsubpp @@ -6,7 +6,7 @@ xsubpp - compiler to convert Perl XS code into C code =head1 SYNOPSIS -B [B<-v>] [B<-C++>] [B<-except>] [B<-s pattern>] [B<-prototypes>] [B<-noversioncheck>] [B<-nolinenumbers>] [B<-typemap typemap>] [B<-object_capi>]... file.xs +B [B<-v>] [B<-C++>] [B<-except>] [B<-s pattern>] [B<-prototypes>] [B<-noversioncheck>] [B<-nolinenumbers>] [B<-typemap typemap>] ... file.xs =head1 DESCRIPTION @@ -59,11 +59,7 @@ number. Prevents the inclusion of `#line' directives in the output. -=item B<-object_capi> - -Compile code as C in a PERL_OBJECT environment. - -back +=back =head1 ENVIRONMENT @@ -127,6 +123,7 @@ SWITCH: while (@ARGV and $ARGV[0] =~ /^-./) { $WantPrototypes = 1, next SWITCH if $flag eq 'prototypes'; $WantVersionChk = 0, next SWITCH if $flag eq 'noversioncheck'; $WantVersionChk = 1, next SWITCH if $flag eq 'versioncheck'; + # XXX left this in for compat $WantCAPI = 1, next SWITCH if $flag eq 'object_capi'; $except = " TRY", next SWITCH if $flag eq 'except'; push(@tm,shift), next SWITCH if $flag eq 'typemap'; @@ -1261,24 +1258,10 @@ print Q<<"EOF"; ##endif EOF -if ($WantCAPI) { -print Q<<"EOF"; -##ifdef PERL_CAPI -#XS(boot__CAPI_entry) -##else -EOF -} - print Q<<"EOF"; #XS(boot_$Module_cname) EOF -if ($WantCAPI) { -print Q<<"EOF"; -##endif /* PERL_CAPI */ -EOF -} - print Q<<"EOF"; #[[ # dXSARGS; @@ -1317,22 +1300,6 @@ print Q<<"EOF";; # EOF -if ($WantCAPI) { -print Q<<"EOF"; -##ifdef PERL_CAPI -##define XSCAPI(name) void name(void *pPerl, CV* cv) -# -##ifdef __cplusplus -#extern "C" -##endif -#XSCAPI(boot_$Module_cname) -#[[ -# boot_CAPI_handler(cv, boot__CAPI_entry, pPerl); -#]] -##endif /* PERL_CAPI */ -EOF -} - warn("Please specify prototyping behavior for $filename (see perlxs manual)\n") unless $ProtoUsed ; &Exit; diff --git a/lib/base.pm b/lib/base.pm index 9a733ea..7fb3d2b 100644 --- a/lib/base.pm +++ b/lib/base.pm @@ -56,7 +56,7 @@ sub import { # Only ignore "Can't locate" errors from our eval require. # Other fatal errors (syntax etc) must be reported. die if $@ && $@ !~ /^Can't locate .*? at \(eval /; - unless (defined %{"$base\::"}) { + unless (%{"$base\::"}) { require Carp; Carp::croak("Base class package \"$base\" is empty.\n", "\t(Perhaps you need to 'use' the module ", diff --git a/malloc.c b/malloc.c index 8a6a8bc..dc5a69f 100644 --- a/malloc.c +++ b/malloc.c @@ -284,6 +284,9 @@ # define dTHX extern int Perl___notused # define WITH_THX(s) s # endif +# ifndef PERL_GET_INTERP +# define PERL_GET_INTERP PL_curinterp +# endif #endif #ifndef MUTEX_LOCK @@ -308,7 +311,7 @@ #ifdef DEBUGGING # undef DEBUG_m -# define DEBUG_m(a) if (PL_curinterp && PL_debug & 128) a +# define DEBUG_m(a) if (PERL_GET_INTERP && PL_debug & 128) a #endif /* diff --git a/objXSUB.h b/objXSUB.h index e741aa4..43e29f4 100644 --- a/objXSUB.h +++ b/objXSUB.h @@ -9,805 +9,809 @@ /* Variables */ #undef PL_Argv -#define PL_Argv (*Perl_IArgv_ptr(pPerl)) +#define PL_Argv (*Perl_IArgv_ptr(aTHXo)) #undef PL_Cmd -#define PL_Cmd (*Perl_ICmd_ptr(pPerl)) +#define PL_Cmd (*Perl_ICmd_ptr(aTHXo)) #undef PL_DBcv -#define PL_DBcv (*Perl_IDBcv_ptr(pPerl)) +#define PL_DBcv (*Perl_IDBcv_ptr(aTHXo)) #undef PL_DBgv -#define PL_DBgv (*Perl_IDBgv_ptr(pPerl)) +#define PL_DBgv (*Perl_IDBgv_ptr(aTHXo)) #undef PL_DBline -#define PL_DBline (*Perl_IDBline_ptr(pPerl)) +#define PL_DBline (*Perl_IDBline_ptr(aTHXo)) #undef PL_DBsignal -#define PL_DBsignal (*Perl_IDBsignal_ptr(pPerl)) +#define PL_DBsignal (*Perl_IDBsignal_ptr(aTHXo)) #undef PL_DBsingle -#define PL_DBsingle (*Perl_IDBsingle_ptr(pPerl)) +#define PL_DBsingle (*Perl_IDBsingle_ptr(aTHXo)) #undef PL_DBsub -#define PL_DBsub (*Perl_IDBsub_ptr(pPerl)) +#define PL_DBsub (*Perl_IDBsub_ptr(aTHXo)) #undef PL_DBtrace -#define PL_DBtrace (*Perl_IDBtrace_ptr(pPerl)) +#define PL_DBtrace (*Perl_IDBtrace_ptr(aTHXo)) #undef PL_Dir -#define PL_Dir (*Perl_IDir_ptr(pPerl)) +#define PL_Dir (*Perl_IDir_ptr(aTHXo)) #undef PL_Env -#define PL_Env (*Perl_IEnv_ptr(pPerl)) +#define PL_Env (*Perl_IEnv_ptr(aTHXo)) #undef PL_LIO -#define PL_LIO (*Perl_ILIO_ptr(pPerl)) +#define PL_LIO (*Perl_ILIO_ptr(aTHXo)) #undef PL_Mem -#define PL_Mem (*Perl_IMem_ptr(pPerl)) +#define PL_Mem (*Perl_IMem_ptr(aTHXo)) #undef PL_Proc -#define PL_Proc (*Perl_IProc_ptr(pPerl)) +#define PL_Proc (*Perl_IProc_ptr(aTHXo)) #undef PL_Sock -#define PL_Sock (*Perl_ISock_ptr(pPerl)) +#define PL_Sock (*Perl_ISock_ptr(aTHXo)) #undef PL_StdIO -#define PL_StdIO (*Perl_IStdIO_ptr(pPerl)) +#define PL_StdIO (*Perl_IStdIO_ptr(aTHXo)) #undef PL_amagic_generation -#define PL_amagic_generation (*Perl_Iamagic_generation_ptr(pPerl)) +#define PL_amagic_generation (*Perl_Iamagic_generation_ptr(aTHXo)) #undef PL_ampergv -#define PL_ampergv (*Perl_Iampergv_ptr(pPerl)) +#define PL_ampergv (*Perl_Iampergv_ptr(aTHXo)) #undef PL_an -#define PL_an (*Perl_Ian_ptr(pPerl)) +#define PL_an (*Perl_Ian_ptr(aTHXo)) #undef PL_archpat_auto -#define PL_archpat_auto (*Perl_Iarchpat_auto_ptr(pPerl)) +#define PL_archpat_auto (*Perl_Iarchpat_auto_ptr(aTHXo)) #undef PL_argvgv -#define PL_argvgv (*Perl_Iargvgv_ptr(pPerl)) +#define PL_argvgv (*Perl_Iargvgv_ptr(aTHXo)) #undef PL_argvoutgv -#define PL_argvoutgv (*Perl_Iargvoutgv_ptr(pPerl)) +#define PL_argvoutgv (*Perl_Iargvoutgv_ptr(aTHXo)) #undef PL_basetime -#define PL_basetime (*Perl_Ibasetime_ptr(pPerl)) +#define PL_basetime (*Perl_Ibasetime_ptr(aTHXo)) #undef PL_beginav -#define PL_beginav (*Perl_Ibeginav_ptr(pPerl)) +#define PL_beginav (*Perl_Ibeginav_ptr(aTHXo)) #undef PL_bitcount -#define PL_bitcount (*Perl_Ibitcount_ptr(pPerl)) +#define PL_bitcount (*Perl_Ibitcount_ptr(aTHXo)) #undef PL_bufend -#define PL_bufend (*Perl_Ibufend_ptr(pPerl)) +#define PL_bufend (*Perl_Ibufend_ptr(aTHXo)) #undef PL_bufptr -#define PL_bufptr (*Perl_Ibufptr_ptr(pPerl)) +#define PL_bufptr (*Perl_Ibufptr_ptr(aTHXo)) #undef PL_cddir -#define PL_cddir (*Perl_Icddir_ptr(pPerl)) +#define PL_cddir (*Perl_Icddir_ptr(aTHXo)) #undef PL_collation_ix -#define PL_collation_ix (*Perl_Icollation_ix_ptr(pPerl)) +#define PL_collation_ix (*Perl_Icollation_ix_ptr(aTHXo)) #undef PL_collation_name -#define PL_collation_name (*Perl_Icollation_name_ptr(pPerl)) +#define PL_collation_name (*Perl_Icollation_name_ptr(aTHXo)) #undef PL_collation_standard -#define PL_collation_standard (*Perl_Icollation_standard_ptr(pPerl)) +#define PL_collation_standard (*Perl_Icollation_standard_ptr(aTHXo)) #undef PL_collxfrm_base -#define PL_collxfrm_base (*Perl_Icollxfrm_base_ptr(pPerl)) +#define PL_collxfrm_base (*Perl_Icollxfrm_base_ptr(aTHXo)) #undef PL_collxfrm_mult -#define PL_collxfrm_mult (*Perl_Icollxfrm_mult_ptr(pPerl)) +#define PL_collxfrm_mult (*Perl_Icollxfrm_mult_ptr(aTHXo)) #undef PL_compcv -#define PL_compcv (*Perl_Icompcv_ptr(pPerl)) +#define PL_compcv (*Perl_Icompcv_ptr(aTHXo)) #undef PL_compiling -#define PL_compiling (*Perl_Icompiling_ptr(pPerl)) +#define PL_compiling (*Perl_Icompiling_ptr(aTHXo)) #undef PL_comppad -#define PL_comppad (*Perl_Icomppad_ptr(pPerl)) +#define PL_comppad (*Perl_Icomppad_ptr(aTHXo)) #undef PL_comppad_name -#define PL_comppad_name (*Perl_Icomppad_name_ptr(pPerl)) +#define PL_comppad_name (*Perl_Icomppad_name_ptr(aTHXo)) #undef PL_comppad_name_fill -#define PL_comppad_name_fill (*Perl_Icomppad_name_fill_ptr(pPerl)) +#define PL_comppad_name_fill (*Perl_Icomppad_name_fill_ptr(aTHXo)) #undef PL_comppad_name_floor -#define PL_comppad_name_floor (*Perl_Icomppad_name_floor_ptr(pPerl)) +#define PL_comppad_name_floor (*Perl_Icomppad_name_floor_ptr(aTHXo)) #undef PL_cop_seqmax -#define PL_cop_seqmax (*Perl_Icop_seqmax_ptr(pPerl)) +#define PL_cop_seqmax (*Perl_Icop_seqmax_ptr(aTHXo)) #undef PL_copline -#define PL_copline (*Perl_Icopline_ptr(pPerl)) +#define PL_copline (*Perl_Icopline_ptr(aTHXo)) #undef PL_cred_mutex -#define PL_cred_mutex (*Perl_Icred_mutex_ptr(pPerl)) +#define PL_cred_mutex (*Perl_Icred_mutex_ptr(aTHXo)) #undef PL_cryptseen -#define PL_cryptseen (*Perl_Icryptseen_ptr(pPerl)) +#define PL_cryptseen (*Perl_Icryptseen_ptr(aTHXo)) #undef PL_cshlen -#define PL_cshlen (*Perl_Icshlen_ptr(pPerl)) +#define PL_cshlen (*Perl_Icshlen_ptr(aTHXo)) #undef PL_cshname -#define PL_cshname (*Perl_Icshname_ptr(pPerl)) +#define PL_cshname (*Perl_Icshname_ptr(aTHXo)) #undef PL_curcopdb -#define PL_curcopdb (*Perl_Icurcopdb_ptr(pPerl)) +#define PL_curcopdb (*Perl_Icurcopdb_ptr(aTHXo)) #undef PL_curstname -#define PL_curstname (*Perl_Icurstname_ptr(pPerl)) +#define PL_curstname (*Perl_Icurstname_ptr(aTHXo)) #undef PL_curthr -#define PL_curthr (*Perl_Icurthr_ptr(pPerl)) +#define PL_curthr (*Perl_Icurthr_ptr(aTHXo)) #undef PL_dbargs -#define PL_dbargs (*Perl_Idbargs_ptr(pPerl)) +#define PL_dbargs (*Perl_Idbargs_ptr(aTHXo)) #undef PL_debdelim -#define PL_debdelim (*Perl_Idebdelim_ptr(pPerl)) +#define PL_debdelim (*Perl_Idebdelim_ptr(aTHXo)) #undef PL_debname -#define PL_debname (*Perl_Idebname_ptr(pPerl)) +#define PL_debname (*Perl_Idebname_ptr(aTHXo)) #undef PL_debstash -#define PL_debstash (*Perl_Idebstash_ptr(pPerl)) +#define PL_debstash (*Perl_Idebstash_ptr(aTHXo)) #undef PL_debug -#define PL_debug (*Perl_Idebug_ptr(pPerl)) +#define PL_debug (*Perl_Idebug_ptr(aTHXo)) #undef PL_defgv -#define PL_defgv (*Perl_Idefgv_ptr(pPerl)) +#define PL_defgv (*Perl_Idefgv_ptr(aTHXo)) #undef PL_diehook -#define PL_diehook (*Perl_Idiehook_ptr(pPerl)) +#define PL_diehook (*Perl_Idiehook_ptr(aTHXo)) #undef PL_dlevel -#define PL_dlevel (*Perl_Idlevel_ptr(pPerl)) +#define PL_dlevel (*Perl_Idlevel_ptr(aTHXo)) #undef PL_dlmax -#define PL_dlmax (*Perl_Idlmax_ptr(pPerl)) +#define PL_dlmax (*Perl_Idlmax_ptr(aTHXo)) #undef PL_doextract -#define PL_doextract (*Perl_Idoextract_ptr(pPerl)) +#define PL_doextract (*Perl_Idoextract_ptr(aTHXo)) #undef PL_doswitches -#define PL_doswitches (*Perl_Idoswitches_ptr(pPerl)) +#define PL_doswitches (*Perl_Idoswitches_ptr(aTHXo)) #undef PL_dowarn -#define PL_dowarn (*Perl_Idowarn_ptr(pPerl)) +#define PL_dowarn (*Perl_Idowarn_ptr(aTHXo)) #undef PL_e_script -#define PL_e_script (*Perl_Ie_script_ptr(pPerl)) +#define PL_e_script (*Perl_Ie_script_ptr(aTHXo)) #undef PL_efloatbuf -#define PL_efloatbuf (*Perl_Iefloatbuf_ptr(pPerl)) +#define PL_efloatbuf (*Perl_Iefloatbuf_ptr(aTHXo)) #undef PL_efloatsize -#define PL_efloatsize (*Perl_Iefloatsize_ptr(pPerl)) +#define PL_efloatsize (*Perl_Iefloatsize_ptr(aTHXo)) #undef PL_egid -#define PL_egid (*Perl_Iegid_ptr(pPerl)) +#define PL_egid (*Perl_Iegid_ptr(aTHXo)) #undef PL_endav -#define PL_endav (*Perl_Iendav_ptr(pPerl)) +#define PL_endav (*Perl_Iendav_ptr(aTHXo)) #undef PL_envgv -#define PL_envgv (*Perl_Ienvgv_ptr(pPerl)) +#define PL_envgv (*Perl_Ienvgv_ptr(aTHXo)) #undef PL_errgv -#define PL_errgv (*Perl_Ierrgv_ptr(pPerl)) +#define PL_errgv (*Perl_Ierrgv_ptr(aTHXo)) #undef PL_error_count -#define PL_error_count (*Perl_Ierror_count_ptr(pPerl)) +#define PL_error_count (*Perl_Ierror_count_ptr(aTHXo)) #undef PL_euid -#define PL_euid (*Perl_Ieuid_ptr(pPerl)) +#define PL_euid (*Perl_Ieuid_ptr(aTHXo)) #undef PL_eval_cond -#define PL_eval_cond (*Perl_Ieval_cond_ptr(pPerl)) +#define PL_eval_cond (*Perl_Ieval_cond_ptr(aTHXo)) #undef PL_eval_mutex -#define PL_eval_mutex (*Perl_Ieval_mutex_ptr(pPerl)) +#define PL_eval_mutex (*Perl_Ieval_mutex_ptr(aTHXo)) #undef PL_eval_owner -#define PL_eval_owner (*Perl_Ieval_owner_ptr(pPerl)) +#define PL_eval_owner (*Perl_Ieval_owner_ptr(aTHXo)) #undef PL_eval_root -#define PL_eval_root (*Perl_Ieval_root_ptr(pPerl)) +#define PL_eval_root (*Perl_Ieval_root_ptr(aTHXo)) #undef PL_eval_start -#define PL_eval_start (*Perl_Ieval_start_ptr(pPerl)) +#define PL_eval_start (*Perl_Ieval_start_ptr(aTHXo)) #undef PL_evalseq -#define PL_evalseq (*Perl_Ievalseq_ptr(pPerl)) +#define PL_evalseq (*Perl_Ievalseq_ptr(aTHXo)) #undef PL_exitlist -#define PL_exitlist (*Perl_Iexitlist_ptr(pPerl)) +#define PL_exitlist (*Perl_Iexitlist_ptr(aTHXo)) #undef PL_exitlistlen -#define PL_exitlistlen (*Perl_Iexitlistlen_ptr(pPerl)) +#define PL_exitlistlen (*Perl_Iexitlistlen_ptr(aTHXo)) #undef PL_expect -#define PL_expect (*Perl_Iexpect_ptr(pPerl)) +#define PL_expect (*Perl_Iexpect_ptr(aTHXo)) #undef PL_fdpid -#define PL_fdpid (*Perl_Ifdpid_ptr(pPerl)) +#define PL_fdpid (*Perl_Ifdpid_ptr(aTHXo)) #undef PL_filemode -#define PL_filemode (*Perl_Ifilemode_ptr(pPerl)) +#define PL_filemode (*Perl_Ifilemode_ptr(aTHXo)) #undef PL_filter_debug -#define PL_filter_debug (*Perl_Ifilter_debug_ptr(pPerl)) +#define PL_filter_debug (*Perl_Ifilter_debug_ptr(aTHXo)) #undef PL_forkprocess -#define PL_forkprocess (*Perl_Iforkprocess_ptr(pPerl)) +#define PL_forkprocess (*Perl_Iforkprocess_ptr(aTHXo)) #undef PL_formfeed -#define PL_formfeed (*Perl_Iformfeed_ptr(pPerl)) +#define PL_formfeed (*Perl_Iformfeed_ptr(aTHXo)) #undef PL_generation -#define PL_generation (*Perl_Igeneration_ptr(pPerl)) +#define PL_generation (*Perl_Igeneration_ptr(aTHXo)) #undef PL_gensym -#define PL_gensym (*Perl_Igensym_ptr(pPerl)) +#define PL_gensym (*Perl_Igensym_ptr(aTHXo)) #undef PL_gid -#define PL_gid (*Perl_Igid_ptr(pPerl)) +#define PL_gid (*Perl_Igid_ptr(aTHXo)) #undef PL_glob_index -#define PL_glob_index (*Perl_Iglob_index_ptr(pPerl)) +#define PL_glob_index (*Perl_Iglob_index_ptr(aTHXo)) #undef PL_globalstash -#define PL_globalstash (*Perl_Iglobalstash_ptr(pPerl)) +#define PL_globalstash (*Perl_Iglobalstash_ptr(aTHXo)) #undef PL_he_root -#define PL_he_root (*Perl_Ihe_root_ptr(pPerl)) +#define PL_he_root (*Perl_Ihe_root_ptr(aTHXo)) #undef PL_hintgv -#define PL_hintgv (*Perl_Ihintgv_ptr(pPerl)) +#define PL_hintgv (*Perl_Ihintgv_ptr(aTHXo)) #undef PL_hints -#define PL_hints (*Perl_Ihints_ptr(pPerl)) +#define PL_hints (*Perl_Ihints_ptr(aTHXo)) #undef PL_in_clean_all -#define PL_in_clean_all (*Perl_Iin_clean_all_ptr(pPerl)) +#define PL_in_clean_all (*Perl_Iin_clean_all_ptr(aTHXo)) #undef PL_in_clean_objs -#define PL_in_clean_objs (*Perl_Iin_clean_objs_ptr(pPerl)) +#define PL_in_clean_objs (*Perl_Iin_clean_objs_ptr(aTHXo)) #undef PL_in_my -#define PL_in_my (*Perl_Iin_my_ptr(pPerl)) +#define PL_in_my (*Perl_Iin_my_ptr(aTHXo)) #undef PL_in_my_stash -#define PL_in_my_stash (*Perl_Iin_my_stash_ptr(pPerl)) +#define PL_in_my_stash (*Perl_Iin_my_stash_ptr(aTHXo)) #undef PL_incgv -#define PL_incgv (*Perl_Iincgv_ptr(pPerl)) +#define PL_incgv (*Perl_Iincgv_ptr(aTHXo)) #undef PL_initav -#define PL_initav (*Perl_Iinitav_ptr(pPerl)) +#define PL_initav (*Perl_Iinitav_ptr(aTHXo)) #undef PL_inplace -#define PL_inplace (*Perl_Iinplace_ptr(pPerl)) +#define PL_inplace (*Perl_Iinplace_ptr(aTHXo)) #undef PL_last_lop -#define PL_last_lop (*Perl_Ilast_lop_ptr(pPerl)) +#define PL_last_lop (*Perl_Ilast_lop_ptr(aTHXo)) #undef PL_last_lop_op -#define PL_last_lop_op (*Perl_Ilast_lop_op_ptr(pPerl)) +#define PL_last_lop_op (*Perl_Ilast_lop_op_ptr(aTHXo)) #undef PL_last_swash_hv -#define PL_last_swash_hv (*Perl_Ilast_swash_hv_ptr(pPerl)) +#define PL_last_swash_hv (*Perl_Ilast_swash_hv_ptr(aTHXo)) #undef PL_last_swash_key -#define PL_last_swash_key (*Perl_Ilast_swash_key_ptr(pPerl)) +#define PL_last_swash_key (*Perl_Ilast_swash_key_ptr(aTHXo)) #undef PL_last_swash_klen -#define PL_last_swash_klen (*Perl_Ilast_swash_klen_ptr(pPerl)) +#define PL_last_swash_klen (*Perl_Ilast_swash_klen_ptr(aTHXo)) #undef PL_last_swash_slen -#define PL_last_swash_slen (*Perl_Ilast_swash_slen_ptr(pPerl)) +#define PL_last_swash_slen (*Perl_Ilast_swash_slen_ptr(aTHXo)) #undef PL_last_swash_tmps -#define PL_last_swash_tmps (*Perl_Ilast_swash_tmps_ptr(pPerl)) +#define PL_last_swash_tmps (*Perl_Ilast_swash_tmps_ptr(aTHXo)) #undef PL_last_uni -#define PL_last_uni (*Perl_Ilast_uni_ptr(pPerl)) +#define PL_last_uni (*Perl_Ilast_uni_ptr(aTHXo)) #undef PL_lastfd -#define PL_lastfd (*Perl_Ilastfd_ptr(pPerl)) +#define PL_lastfd (*Perl_Ilastfd_ptr(aTHXo)) #undef PL_lastsize -#define PL_lastsize (*Perl_Ilastsize_ptr(pPerl)) +#define PL_lastsize (*Perl_Ilastsize_ptr(aTHXo)) #undef PL_lastspbase -#define PL_lastspbase (*Perl_Ilastspbase_ptr(pPerl)) +#define PL_lastspbase (*Perl_Ilastspbase_ptr(aTHXo)) #undef PL_laststatval -#define PL_laststatval (*Perl_Ilaststatval_ptr(pPerl)) +#define PL_laststatval (*Perl_Ilaststatval_ptr(aTHXo)) #undef PL_laststype -#define PL_laststype (*Perl_Ilaststype_ptr(pPerl)) +#define PL_laststype (*Perl_Ilaststype_ptr(aTHXo)) #undef PL_leftgv -#define PL_leftgv (*Perl_Ileftgv_ptr(pPerl)) +#define PL_leftgv (*Perl_Ileftgv_ptr(aTHXo)) #undef PL_lex_brackets -#define PL_lex_brackets (*Perl_Ilex_brackets_ptr(pPerl)) +#define PL_lex_brackets (*Perl_Ilex_brackets_ptr(aTHXo)) #undef PL_lex_brackstack -#define PL_lex_brackstack (*Perl_Ilex_brackstack_ptr(pPerl)) +#define PL_lex_brackstack (*Perl_Ilex_brackstack_ptr(aTHXo)) #undef PL_lex_casemods -#define PL_lex_casemods (*Perl_Ilex_casemods_ptr(pPerl)) +#define PL_lex_casemods (*Perl_Ilex_casemods_ptr(aTHXo)) #undef PL_lex_casestack -#define PL_lex_casestack (*Perl_Ilex_casestack_ptr(pPerl)) +#define PL_lex_casestack (*Perl_Ilex_casestack_ptr(aTHXo)) #undef PL_lex_defer -#define PL_lex_defer (*Perl_Ilex_defer_ptr(pPerl)) +#define PL_lex_defer (*Perl_Ilex_defer_ptr(aTHXo)) #undef PL_lex_dojoin -#define PL_lex_dojoin (*Perl_Ilex_dojoin_ptr(pPerl)) +#define PL_lex_dojoin (*Perl_Ilex_dojoin_ptr(aTHXo)) #undef PL_lex_expect -#define PL_lex_expect (*Perl_Ilex_expect_ptr(pPerl)) +#define PL_lex_expect (*Perl_Ilex_expect_ptr(aTHXo)) #undef PL_lex_fakebrack -#define PL_lex_fakebrack (*Perl_Ilex_fakebrack_ptr(pPerl)) +#define PL_lex_fakebrack (*Perl_Ilex_fakebrack_ptr(aTHXo)) #undef PL_lex_formbrack -#define PL_lex_formbrack (*Perl_Ilex_formbrack_ptr(pPerl)) +#define PL_lex_formbrack (*Perl_Ilex_formbrack_ptr(aTHXo)) #undef PL_lex_inpat -#define PL_lex_inpat (*Perl_Ilex_inpat_ptr(pPerl)) +#define PL_lex_inpat (*Perl_Ilex_inpat_ptr(aTHXo)) #undef PL_lex_inwhat -#define PL_lex_inwhat (*Perl_Ilex_inwhat_ptr(pPerl)) +#define PL_lex_inwhat (*Perl_Ilex_inwhat_ptr(aTHXo)) #undef PL_lex_op -#define PL_lex_op (*Perl_Ilex_op_ptr(pPerl)) +#define PL_lex_op (*Perl_Ilex_op_ptr(aTHXo)) #undef PL_lex_repl -#define PL_lex_repl (*Perl_Ilex_repl_ptr(pPerl)) +#define PL_lex_repl (*Perl_Ilex_repl_ptr(aTHXo)) #undef PL_lex_starts -#define PL_lex_starts (*Perl_Ilex_starts_ptr(pPerl)) +#define PL_lex_starts (*Perl_Ilex_starts_ptr(aTHXo)) #undef PL_lex_state -#define PL_lex_state (*Perl_Ilex_state_ptr(pPerl)) +#define PL_lex_state (*Perl_Ilex_state_ptr(aTHXo)) #undef PL_lex_stuff -#define PL_lex_stuff (*Perl_Ilex_stuff_ptr(pPerl)) +#define PL_lex_stuff (*Perl_Ilex_stuff_ptr(aTHXo)) #undef PL_lineary -#define PL_lineary (*Perl_Ilineary_ptr(pPerl)) +#define PL_lineary (*Perl_Ilineary_ptr(aTHXo)) #undef PL_linestart -#define PL_linestart (*Perl_Ilinestart_ptr(pPerl)) +#define PL_linestart (*Perl_Ilinestart_ptr(aTHXo)) #undef PL_linestr -#define PL_linestr (*Perl_Ilinestr_ptr(pPerl)) +#define PL_linestr (*Perl_Ilinestr_ptr(aTHXo)) #undef PL_localpatches -#define PL_localpatches (*Perl_Ilocalpatches_ptr(pPerl)) +#define PL_localpatches (*Perl_Ilocalpatches_ptr(aTHXo)) #undef PL_main_cv -#define PL_main_cv (*Perl_Imain_cv_ptr(pPerl)) +#define PL_main_cv (*Perl_Imain_cv_ptr(aTHXo)) #undef PL_main_root -#define PL_main_root (*Perl_Imain_root_ptr(pPerl)) +#define PL_main_root (*Perl_Imain_root_ptr(aTHXo)) #undef PL_main_start -#define PL_main_start (*Perl_Imain_start_ptr(pPerl)) +#define PL_main_start (*Perl_Imain_start_ptr(aTHXo)) #undef PL_malloc_mutex -#define PL_malloc_mutex (*Perl_Imalloc_mutex_ptr(pPerl)) +#define PL_malloc_mutex (*Perl_Imalloc_mutex_ptr(aTHXo)) #undef PL_max_intro_pending -#define PL_max_intro_pending (*Perl_Imax_intro_pending_ptr(pPerl)) +#define PL_max_intro_pending (*Perl_Imax_intro_pending_ptr(aTHXo)) #undef PL_maxo -#define PL_maxo (*Perl_Imaxo_ptr(pPerl)) +#define PL_maxo (*Perl_Imaxo_ptr(aTHXo)) #undef PL_maxsysfd -#define PL_maxsysfd (*Perl_Imaxsysfd_ptr(pPerl)) +#define PL_maxsysfd (*Perl_Imaxsysfd_ptr(aTHXo)) #undef PL_mess_sv -#define PL_mess_sv (*Perl_Imess_sv_ptr(pPerl)) +#define PL_mess_sv (*Perl_Imess_sv_ptr(aTHXo)) #undef PL_min_intro_pending -#define PL_min_intro_pending (*Perl_Imin_intro_pending_ptr(pPerl)) +#define PL_min_intro_pending (*Perl_Imin_intro_pending_ptr(aTHXo)) #undef PL_minus_F -#define PL_minus_F (*Perl_Iminus_F_ptr(pPerl)) +#define PL_minus_F (*Perl_Iminus_F_ptr(aTHXo)) #undef PL_minus_a -#define PL_minus_a (*Perl_Iminus_a_ptr(pPerl)) +#define PL_minus_a (*Perl_Iminus_a_ptr(aTHXo)) #undef PL_minus_c -#define PL_minus_c (*Perl_Iminus_c_ptr(pPerl)) +#define PL_minus_c (*Perl_Iminus_c_ptr(aTHXo)) #undef PL_minus_l -#define PL_minus_l (*Perl_Iminus_l_ptr(pPerl)) +#define PL_minus_l (*Perl_Iminus_l_ptr(aTHXo)) #undef PL_minus_n -#define PL_minus_n (*Perl_Iminus_n_ptr(pPerl)) +#define PL_minus_n (*Perl_Iminus_n_ptr(aTHXo)) #undef PL_minus_p -#define PL_minus_p (*Perl_Iminus_p_ptr(pPerl)) +#define PL_minus_p (*Perl_Iminus_p_ptr(aTHXo)) #undef PL_modglobal -#define PL_modglobal (*Perl_Imodglobal_ptr(pPerl)) +#define PL_modglobal (*Perl_Imodglobal_ptr(aTHXo)) #undef PL_multi_close -#define PL_multi_close (*Perl_Imulti_close_ptr(pPerl)) +#define PL_multi_close (*Perl_Imulti_close_ptr(aTHXo)) #undef PL_multi_end -#define PL_multi_end (*Perl_Imulti_end_ptr(pPerl)) +#define PL_multi_end (*Perl_Imulti_end_ptr(aTHXo)) #undef PL_multi_open -#define PL_multi_open (*Perl_Imulti_open_ptr(pPerl)) +#define PL_multi_open (*Perl_Imulti_open_ptr(aTHXo)) #undef PL_multi_start -#define PL_multi_start (*Perl_Imulti_start_ptr(pPerl)) +#define PL_multi_start (*Perl_Imulti_start_ptr(aTHXo)) #undef PL_multiline -#define PL_multiline (*Perl_Imultiline_ptr(pPerl)) +#define PL_multiline (*Perl_Imultiline_ptr(aTHXo)) #undef PL_mystrk -#define PL_mystrk (*Perl_Imystrk_ptr(pPerl)) +#define PL_mystrk (*Perl_Imystrk_ptr(aTHXo)) #undef PL_nexttoke -#define PL_nexttoke (*Perl_Inexttoke_ptr(pPerl)) +#define PL_nexttoke (*Perl_Inexttoke_ptr(aTHXo)) #undef PL_nexttype -#define PL_nexttype (*Perl_Inexttype_ptr(pPerl)) +#define PL_nexttype (*Perl_Inexttype_ptr(aTHXo)) #undef PL_nextval -#define PL_nextval (*Perl_Inextval_ptr(pPerl)) +#define PL_nextval (*Perl_Inextval_ptr(aTHXo)) #undef PL_nice_chunk -#define PL_nice_chunk (*Perl_Inice_chunk_ptr(pPerl)) +#define PL_nice_chunk (*Perl_Inice_chunk_ptr(aTHXo)) #undef PL_nice_chunk_size -#define PL_nice_chunk_size (*Perl_Inice_chunk_size_ptr(pPerl)) +#define PL_nice_chunk_size (*Perl_Inice_chunk_size_ptr(aTHXo)) #undef PL_nomemok -#define PL_nomemok (*Perl_Inomemok_ptr(pPerl)) +#define PL_nomemok (*Perl_Inomemok_ptr(aTHXo)) #undef PL_nthreads -#define PL_nthreads (*Perl_Inthreads_ptr(pPerl)) +#define PL_nthreads (*Perl_Inthreads_ptr(aTHXo)) #undef PL_nthreads_cond -#define PL_nthreads_cond (*Perl_Inthreads_cond_ptr(pPerl)) +#define PL_nthreads_cond (*Perl_Inthreads_cond_ptr(aTHXo)) #undef PL_numeric_local -#define PL_numeric_local (*Perl_Inumeric_local_ptr(pPerl)) +#define PL_numeric_local (*Perl_Inumeric_local_ptr(aTHXo)) #undef PL_numeric_name -#define PL_numeric_name (*Perl_Inumeric_name_ptr(pPerl)) +#define PL_numeric_name (*Perl_Inumeric_name_ptr(aTHXo)) #undef PL_numeric_radix -#define PL_numeric_radix (*Perl_Inumeric_radix_ptr(pPerl)) +#define PL_numeric_radix (*Perl_Inumeric_radix_ptr(aTHXo)) #undef PL_numeric_standard -#define PL_numeric_standard (*Perl_Inumeric_standard_ptr(pPerl)) +#define PL_numeric_standard (*Perl_Inumeric_standard_ptr(aTHXo)) #undef PL_ofmt -#define PL_ofmt (*Perl_Iofmt_ptr(pPerl)) +#define PL_ofmt (*Perl_Iofmt_ptr(aTHXo)) #undef PL_oldbufptr -#define PL_oldbufptr (*Perl_Ioldbufptr_ptr(pPerl)) +#define PL_oldbufptr (*Perl_Ioldbufptr_ptr(aTHXo)) #undef PL_oldlastpm -#define PL_oldlastpm (*Perl_Ioldlastpm_ptr(pPerl)) +#define PL_oldlastpm (*Perl_Ioldlastpm_ptr(aTHXo)) #undef PL_oldname -#define PL_oldname (*Perl_Ioldname_ptr(pPerl)) +#define PL_oldname (*Perl_Ioldname_ptr(aTHXo)) #undef PL_oldoldbufptr -#define PL_oldoldbufptr (*Perl_Ioldoldbufptr_ptr(pPerl)) +#define PL_oldoldbufptr (*Perl_Ioldoldbufptr_ptr(aTHXo)) #undef PL_op_mask -#define PL_op_mask (*Perl_Iop_mask_ptr(pPerl)) +#define PL_op_mask (*Perl_Iop_mask_ptr(aTHXo)) #undef PL_op_seqmax -#define PL_op_seqmax (*Perl_Iop_seqmax_ptr(pPerl)) +#define PL_op_seqmax (*Perl_Iop_seqmax_ptr(aTHXo)) #undef PL_origalen -#define PL_origalen (*Perl_Iorigalen_ptr(pPerl)) +#define PL_origalen (*Perl_Iorigalen_ptr(aTHXo)) #undef PL_origargc -#define PL_origargc (*Perl_Iorigargc_ptr(pPerl)) +#define PL_origargc (*Perl_Iorigargc_ptr(aTHXo)) #undef PL_origargv -#define PL_origargv (*Perl_Iorigargv_ptr(pPerl)) +#define PL_origargv (*Perl_Iorigargv_ptr(aTHXo)) #undef PL_origenviron -#define PL_origenviron (*Perl_Iorigenviron_ptr(pPerl)) +#define PL_origenviron (*Perl_Iorigenviron_ptr(aTHXo)) #undef PL_origfilename -#define PL_origfilename (*Perl_Iorigfilename_ptr(pPerl)) +#define PL_origfilename (*Perl_Iorigfilename_ptr(aTHXo)) #undef PL_ors -#define PL_ors (*Perl_Iors_ptr(pPerl)) +#define PL_ors (*Perl_Iors_ptr(aTHXo)) #undef PL_orslen -#define PL_orslen (*Perl_Iorslen_ptr(pPerl)) +#define PL_orslen (*Perl_Iorslen_ptr(aTHXo)) #undef PL_osname -#define PL_osname (*Perl_Iosname_ptr(pPerl)) +#define PL_osname (*Perl_Iosname_ptr(aTHXo)) #undef PL_pad_reset_pending -#define PL_pad_reset_pending (*Perl_Ipad_reset_pending_ptr(pPerl)) +#define PL_pad_reset_pending (*Perl_Ipad_reset_pending_ptr(aTHXo)) #undef PL_padix -#define PL_padix (*Perl_Ipadix_ptr(pPerl)) +#define PL_padix (*Perl_Ipadix_ptr(aTHXo)) #undef PL_padix_floor -#define PL_padix_floor (*Perl_Ipadix_floor_ptr(pPerl)) +#define PL_padix_floor (*Perl_Ipadix_floor_ptr(aTHXo)) #undef PL_parsehook -#define PL_parsehook (*Perl_Iparsehook_ptr(pPerl)) +#define PL_parsehook (*Perl_Iparsehook_ptr(aTHXo)) #undef PL_patchlevel -#define PL_patchlevel (*Perl_Ipatchlevel_ptr(pPerl)) +#define PL_patchlevel (*Perl_Ipatchlevel_ptr(aTHXo)) #undef PL_pending_ident -#define PL_pending_ident (*Perl_Ipending_ident_ptr(pPerl)) +#define PL_pending_ident (*Perl_Ipending_ident_ptr(aTHXo)) #undef PL_perl_destruct_level -#define PL_perl_destruct_level (*Perl_Iperl_destruct_level_ptr(pPerl)) +#define PL_perl_destruct_level (*Perl_Iperl_destruct_level_ptr(aTHXo)) #undef PL_perldb -#define PL_perldb (*Perl_Iperldb_ptr(pPerl)) +#define PL_perldb (*Perl_Iperldb_ptr(aTHXo)) #undef PL_pidstatus -#define PL_pidstatus (*Perl_Ipidstatus_ptr(pPerl)) +#define PL_pidstatus (*Perl_Ipidstatus_ptr(aTHXo)) #undef PL_preambleav -#define PL_preambleav (*Perl_Ipreambleav_ptr(pPerl)) +#define PL_preambleav (*Perl_Ipreambleav_ptr(aTHXo)) #undef PL_preambled -#define PL_preambled (*Perl_Ipreambled_ptr(pPerl)) +#define PL_preambled (*Perl_Ipreambled_ptr(aTHXo)) #undef PL_preprocess -#define PL_preprocess (*Perl_Ipreprocess_ptr(pPerl)) +#define PL_preprocess (*Perl_Ipreprocess_ptr(aTHXo)) #undef PL_profiledata -#define PL_profiledata (*Perl_Iprofiledata_ptr(pPerl)) +#define PL_profiledata (*Perl_Iprofiledata_ptr(aTHXo)) #undef PL_replgv -#define PL_replgv (*Perl_Ireplgv_ptr(pPerl)) +#define PL_replgv (*Perl_Ireplgv_ptr(aTHXo)) #undef PL_rightgv -#define PL_rightgv (*Perl_Irightgv_ptr(pPerl)) +#define PL_rightgv (*Perl_Irightgv_ptr(aTHXo)) #undef PL_rsfp -#define PL_rsfp (*Perl_Irsfp_ptr(pPerl)) +#define PL_rsfp (*Perl_Irsfp_ptr(aTHXo)) #undef PL_rsfp_filters -#define PL_rsfp_filters (*Perl_Irsfp_filters_ptr(pPerl)) +#define PL_rsfp_filters (*Perl_Irsfp_filters_ptr(aTHXo)) #undef PL_runops -#define PL_runops (*Perl_Irunops_ptr(pPerl)) +#define PL_runops (*Perl_Irunops_ptr(aTHXo)) #undef PL_sawampersand -#define PL_sawampersand (*Perl_Isawampersand_ptr(pPerl)) +#define PL_sawampersand (*Perl_Isawampersand_ptr(aTHXo)) #undef PL_sawstudy -#define PL_sawstudy (*Perl_Isawstudy_ptr(pPerl)) +#define PL_sawstudy (*Perl_Isawstudy_ptr(aTHXo)) #undef PL_sawvec -#define PL_sawvec (*Perl_Isawvec_ptr(pPerl)) +#define PL_sawvec (*Perl_Isawvec_ptr(aTHXo)) #undef PL_sh_path -#define PL_sh_path (*Perl_Ish_path_ptr(pPerl)) +#define PL_sh_path (*Perl_Ish_path_ptr(aTHXo)) #undef PL_siggv -#define PL_siggv (*Perl_Isiggv_ptr(pPerl)) +#define PL_siggv (*Perl_Isiggv_ptr(aTHXo)) #undef PL_sighandlerp -#define PL_sighandlerp (*Perl_Isighandlerp_ptr(pPerl)) +#define PL_sighandlerp (*Perl_Isighandlerp_ptr(aTHXo)) #undef PL_splitstr -#define PL_splitstr (*Perl_Isplitstr_ptr(pPerl)) +#define PL_splitstr (*Perl_Isplitstr_ptr(aTHXo)) #undef PL_srand_called -#define PL_srand_called (*Perl_Isrand_called_ptr(pPerl)) +#define PL_srand_called (*Perl_Isrand_called_ptr(aTHXo)) #undef PL_statusvalue -#define PL_statusvalue (*Perl_Istatusvalue_ptr(pPerl)) +#define PL_statusvalue (*Perl_Istatusvalue_ptr(aTHXo)) #undef PL_statusvalue_vms -#define PL_statusvalue_vms (*Perl_Istatusvalue_vms_ptr(pPerl)) +#define PL_statusvalue_vms (*Perl_Istatusvalue_vms_ptr(aTHXo)) #undef PL_stdingv -#define PL_stdingv (*Perl_Istdingv_ptr(pPerl)) +#define PL_stdingv (*Perl_Istdingv_ptr(aTHXo)) #undef PL_strchop -#define PL_strchop (*Perl_Istrchop_ptr(pPerl)) +#define PL_strchop (*Perl_Istrchop_ptr(aTHXo)) #undef PL_strtab -#define PL_strtab (*Perl_Istrtab_ptr(pPerl)) +#define PL_strtab (*Perl_Istrtab_ptr(aTHXo)) #undef PL_strtab_mutex -#define PL_strtab_mutex (*Perl_Istrtab_mutex_ptr(pPerl)) +#define PL_strtab_mutex (*Perl_Istrtab_mutex_ptr(aTHXo)) #undef PL_sub_generation -#define PL_sub_generation (*Perl_Isub_generation_ptr(pPerl)) +#define PL_sub_generation (*Perl_Isub_generation_ptr(aTHXo)) #undef PL_sublex_info -#define PL_sublex_info (*Perl_Isublex_info_ptr(pPerl)) +#define PL_sublex_info (*Perl_Isublex_info_ptr(aTHXo)) #undef PL_subline -#define PL_subline (*Perl_Isubline_ptr(pPerl)) +#define PL_subline (*Perl_Isubline_ptr(aTHXo)) #undef PL_subname -#define PL_subname (*Perl_Isubname_ptr(pPerl)) +#define PL_subname (*Perl_Isubname_ptr(aTHXo)) #undef PL_sv_arenaroot -#define PL_sv_arenaroot (*Perl_Isv_arenaroot_ptr(pPerl)) +#define PL_sv_arenaroot (*Perl_Isv_arenaroot_ptr(aTHXo)) #undef PL_sv_count -#define PL_sv_count (*Perl_Isv_count_ptr(pPerl)) +#define PL_sv_count (*Perl_Isv_count_ptr(aTHXo)) #undef PL_sv_mutex -#define PL_sv_mutex (*Perl_Isv_mutex_ptr(pPerl)) +#define PL_sv_mutex (*Perl_Isv_mutex_ptr(aTHXo)) #undef PL_sv_no -#define PL_sv_no (*Perl_Isv_no_ptr(pPerl)) +#define PL_sv_no (*Perl_Isv_no_ptr(aTHXo)) #undef PL_sv_objcount -#define PL_sv_objcount (*Perl_Isv_objcount_ptr(pPerl)) +#define PL_sv_objcount (*Perl_Isv_objcount_ptr(aTHXo)) #undef PL_sv_root -#define PL_sv_root (*Perl_Isv_root_ptr(pPerl)) +#define PL_sv_root (*Perl_Isv_root_ptr(aTHXo)) #undef PL_sv_undef -#define PL_sv_undef (*Perl_Isv_undef_ptr(pPerl)) +#define PL_sv_undef (*Perl_Isv_undef_ptr(aTHXo)) #undef PL_sv_yes -#define PL_sv_yes (*Perl_Isv_yes_ptr(pPerl)) +#define PL_sv_yes (*Perl_Isv_yes_ptr(aTHXo)) #undef PL_svref_mutex -#define PL_svref_mutex (*Perl_Isvref_mutex_ptr(pPerl)) +#define PL_svref_mutex (*Perl_Isvref_mutex_ptr(aTHXo)) #undef PL_sys_intern -#define PL_sys_intern (*Perl_Isys_intern_ptr(pPerl)) +#define PL_sys_intern (*Perl_Isys_intern_ptr(aTHXo)) #undef PL_tainting -#define PL_tainting (*Perl_Itainting_ptr(pPerl)) +#define PL_tainting (*Perl_Itainting_ptr(aTHXo)) #undef PL_thisexpr -#define PL_thisexpr (*Perl_Ithisexpr_ptr(pPerl)) +#define PL_thisexpr (*Perl_Ithisexpr_ptr(aTHXo)) #undef PL_thr_key -#define PL_thr_key (*Perl_Ithr_key_ptr(pPerl)) +#define PL_thr_key (*Perl_Ithr_key_ptr(aTHXo)) #undef PL_threadnum -#define PL_threadnum (*Perl_Ithreadnum_ptr(pPerl)) +#define PL_threadnum (*Perl_Ithreadnum_ptr(aTHXo)) #undef PL_threads_mutex -#define PL_threads_mutex (*Perl_Ithreads_mutex_ptr(pPerl)) +#define PL_threads_mutex (*Perl_Ithreads_mutex_ptr(aTHXo)) #undef PL_threadsv_names -#define PL_threadsv_names (*Perl_Ithreadsv_names_ptr(pPerl)) +#define PL_threadsv_names (*Perl_Ithreadsv_names_ptr(aTHXo)) #undef PL_thrsv -#define PL_thrsv (*Perl_Ithrsv_ptr(pPerl)) +#define PL_thrsv (*Perl_Ithrsv_ptr(aTHXo)) #undef PL_tokenbuf -#define PL_tokenbuf (*Perl_Itokenbuf_ptr(pPerl)) +#define PL_tokenbuf (*Perl_Itokenbuf_ptr(aTHXo)) #undef PL_uid -#define PL_uid (*Perl_Iuid_ptr(pPerl)) +#define PL_uid (*Perl_Iuid_ptr(aTHXo)) #undef PL_unsafe -#define PL_unsafe (*Perl_Iunsafe_ptr(pPerl)) +#define PL_unsafe (*Perl_Iunsafe_ptr(aTHXo)) #undef PL_utf8_alnum -#define PL_utf8_alnum (*Perl_Iutf8_alnum_ptr(pPerl)) +#define PL_utf8_alnum (*Perl_Iutf8_alnum_ptr(aTHXo)) #undef PL_utf8_alnumc -#define PL_utf8_alnumc (*Perl_Iutf8_alnumc_ptr(pPerl)) +#define PL_utf8_alnumc (*Perl_Iutf8_alnumc_ptr(aTHXo)) #undef PL_utf8_alpha -#define PL_utf8_alpha (*Perl_Iutf8_alpha_ptr(pPerl)) +#define PL_utf8_alpha (*Perl_Iutf8_alpha_ptr(aTHXo)) #undef PL_utf8_ascii -#define PL_utf8_ascii (*Perl_Iutf8_ascii_ptr(pPerl)) +#define PL_utf8_ascii (*Perl_Iutf8_ascii_ptr(aTHXo)) #undef PL_utf8_cntrl -#define PL_utf8_cntrl (*Perl_Iutf8_cntrl_ptr(pPerl)) +#define PL_utf8_cntrl (*Perl_Iutf8_cntrl_ptr(aTHXo)) #undef PL_utf8_digit -#define PL_utf8_digit (*Perl_Iutf8_digit_ptr(pPerl)) +#define PL_utf8_digit (*Perl_Iutf8_digit_ptr(aTHXo)) #undef PL_utf8_graph -#define PL_utf8_graph (*Perl_Iutf8_graph_ptr(pPerl)) +#define PL_utf8_graph (*Perl_Iutf8_graph_ptr(aTHXo)) #undef PL_utf8_lower -#define PL_utf8_lower (*Perl_Iutf8_lower_ptr(pPerl)) +#define PL_utf8_lower (*Perl_Iutf8_lower_ptr(aTHXo)) #undef PL_utf8_mark -#define PL_utf8_mark (*Perl_Iutf8_mark_ptr(pPerl)) +#define PL_utf8_mark (*Perl_Iutf8_mark_ptr(aTHXo)) #undef PL_utf8_print -#define PL_utf8_print (*Perl_Iutf8_print_ptr(pPerl)) +#define PL_utf8_print (*Perl_Iutf8_print_ptr(aTHXo)) #undef PL_utf8_punct -#define PL_utf8_punct (*Perl_Iutf8_punct_ptr(pPerl)) +#define PL_utf8_punct (*Perl_Iutf8_punct_ptr(aTHXo)) #undef PL_utf8_space -#define PL_utf8_space (*Perl_Iutf8_space_ptr(pPerl)) +#define PL_utf8_space (*Perl_Iutf8_space_ptr(aTHXo)) #undef PL_utf8_tolower -#define PL_utf8_tolower (*Perl_Iutf8_tolower_ptr(pPerl)) +#define PL_utf8_tolower (*Perl_Iutf8_tolower_ptr(aTHXo)) #undef PL_utf8_totitle -#define PL_utf8_totitle (*Perl_Iutf8_totitle_ptr(pPerl)) +#define PL_utf8_totitle (*Perl_Iutf8_totitle_ptr(aTHXo)) #undef PL_utf8_toupper -#define PL_utf8_toupper (*Perl_Iutf8_toupper_ptr(pPerl)) +#define PL_utf8_toupper (*Perl_Iutf8_toupper_ptr(aTHXo)) #undef PL_utf8_upper -#define PL_utf8_upper (*Perl_Iutf8_upper_ptr(pPerl)) +#define PL_utf8_upper (*Perl_Iutf8_upper_ptr(aTHXo)) #undef PL_utf8_xdigit -#define PL_utf8_xdigit (*Perl_Iutf8_xdigit_ptr(pPerl)) +#define PL_utf8_xdigit (*Perl_Iutf8_xdigit_ptr(aTHXo)) #undef PL_uudmap -#define PL_uudmap (*Perl_Iuudmap_ptr(pPerl)) +#define PL_uudmap (*Perl_Iuudmap_ptr(aTHXo)) #undef PL_warnhook -#define PL_warnhook (*Perl_Iwarnhook_ptr(pPerl)) +#define PL_warnhook (*Perl_Iwarnhook_ptr(aTHXo)) #undef PL_xiv_arenaroot -#define PL_xiv_arenaroot (*Perl_Ixiv_arenaroot_ptr(pPerl)) +#define PL_xiv_arenaroot (*Perl_Ixiv_arenaroot_ptr(aTHXo)) #undef PL_xiv_root -#define PL_xiv_root (*Perl_Ixiv_root_ptr(pPerl)) +#define PL_xiv_root (*Perl_Ixiv_root_ptr(aTHXo)) #undef PL_xnv_root -#define PL_xnv_root (*Perl_Ixnv_root_ptr(pPerl)) +#define PL_xnv_root (*Perl_Ixnv_root_ptr(aTHXo)) #undef PL_xpv_root -#define PL_xpv_root (*Perl_Ixpv_root_ptr(pPerl)) +#define PL_xpv_root (*Perl_Ixpv_root_ptr(aTHXo)) #undef PL_xrv_root -#define PL_xrv_root (*Perl_Ixrv_root_ptr(pPerl)) +#define PL_xrv_root (*Perl_Ixrv_root_ptr(aTHXo)) #undef PL_yychar -#define PL_yychar (*Perl_Iyychar_ptr(pPerl)) +#define PL_yychar (*Perl_Iyychar_ptr(aTHXo)) #undef PL_yydebug -#define PL_yydebug (*Perl_Iyydebug_ptr(pPerl)) +#define PL_yydebug (*Perl_Iyydebug_ptr(aTHXo)) #undef PL_yyerrflag -#define PL_yyerrflag (*Perl_Iyyerrflag_ptr(pPerl)) +#define PL_yyerrflag (*Perl_Iyyerrflag_ptr(aTHXo)) #undef PL_yylval -#define PL_yylval (*Perl_Iyylval_ptr(pPerl)) +#define PL_yylval (*Perl_Iyylval_ptr(aTHXo)) #undef PL_yynerrs -#define PL_yynerrs (*Perl_Iyynerrs_ptr(pPerl)) +#define PL_yynerrs (*Perl_Iyynerrs_ptr(aTHXo)) #undef PL_yyval -#define PL_yyval (*Perl_Iyyval_ptr(pPerl)) +#define PL_yyval (*Perl_Iyyval_ptr(aTHXo)) #undef PL_Sv -#define PL_Sv (*Perl_TSv_ptr(pPerl)) +#define PL_Sv (*Perl_TSv_ptr(aTHXo)) #undef PL_Xpv -#define PL_Xpv (*Perl_TXpv_ptr(pPerl)) +#define PL_Xpv (*Perl_TXpv_ptr(aTHXo)) #undef PL_av_fetch_sv -#define PL_av_fetch_sv (*Perl_Tav_fetch_sv_ptr(pPerl)) +#define PL_av_fetch_sv (*Perl_Tav_fetch_sv_ptr(aTHXo)) #undef PL_bodytarget -#define PL_bodytarget (*Perl_Tbodytarget_ptr(pPerl)) +#define PL_bodytarget (*Perl_Tbodytarget_ptr(aTHXo)) #undef PL_bostr -#define PL_bostr (*Perl_Tbostr_ptr(pPerl)) +#define PL_bostr (*Perl_Tbostr_ptr(aTHXo)) #undef PL_chopset -#define PL_chopset (*Perl_Tchopset_ptr(pPerl)) +#define PL_chopset (*Perl_Tchopset_ptr(aTHXo)) #undef PL_colors -#define PL_colors (*Perl_Tcolors_ptr(pPerl)) +#define PL_colors (*Perl_Tcolors_ptr(aTHXo)) #undef PL_colorset -#define PL_colorset (*Perl_Tcolorset_ptr(pPerl)) +#define PL_colorset (*Perl_Tcolorset_ptr(aTHXo)) #undef PL_curcop -#define PL_curcop (*Perl_Tcurcop_ptr(pPerl)) +#define PL_curcop (*Perl_Tcurcop_ptr(aTHXo)) #undef PL_curpad -#define PL_curpad (*Perl_Tcurpad_ptr(pPerl)) +#define PL_curpad (*Perl_Tcurpad_ptr(aTHXo)) #undef PL_curpm -#define PL_curpm (*Perl_Tcurpm_ptr(pPerl)) +#define PL_curpm (*Perl_Tcurpm_ptr(aTHXo)) #undef PL_curstack -#define PL_curstack (*Perl_Tcurstack_ptr(pPerl)) +#define PL_curstack (*Perl_Tcurstack_ptr(aTHXo)) #undef PL_curstackinfo -#define PL_curstackinfo (*Perl_Tcurstackinfo_ptr(pPerl)) +#define PL_curstackinfo (*Perl_Tcurstackinfo_ptr(aTHXo)) #undef PL_curstash -#define PL_curstash (*Perl_Tcurstash_ptr(pPerl)) +#define PL_curstash (*Perl_Tcurstash_ptr(aTHXo)) #undef PL_defoutgv -#define PL_defoutgv (*Perl_Tdefoutgv_ptr(pPerl)) +#define PL_defoutgv (*Perl_Tdefoutgv_ptr(aTHXo)) #undef PL_defstash -#define PL_defstash (*Perl_Tdefstash_ptr(pPerl)) +#define PL_defstash (*Perl_Tdefstash_ptr(aTHXo)) #undef PL_delaymagic -#define PL_delaymagic (*Perl_Tdelaymagic_ptr(pPerl)) +#define PL_delaymagic (*Perl_Tdelaymagic_ptr(aTHXo)) #undef PL_dirty -#define PL_dirty (*Perl_Tdirty_ptr(pPerl)) +#define PL_dirty (*Perl_Tdirty_ptr(aTHXo)) #undef PL_dumpindent -#define PL_dumpindent (*Perl_Tdumpindent_ptr(pPerl)) +#define PL_dumpindent (*Perl_Tdumpindent_ptr(aTHXo)) #undef PL_extralen -#define PL_extralen (*Perl_Textralen_ptr(pPerl)) +#define PL_extralen (*Perl_Textralen_ptr(aTHXo)) #undef PL_firstgv -#define PL_firstgv (*Perl_Tfirstgv_ptr(pPerl)) +#define PL_firstgv (*Perl_Tfirstgv_ptr(aTHXo)) #undef PL_formtarget -#define PL_formtarget (*Perl_Tformtarget_ptr(pPerl)) +#define PL_formtarget (*Perl_Tformtarget_ptr(aTHXo)) #undef PL_hv_fetch_ent_mh -#define PL_hv_fetch_ent_mh (*Perl_Thv_fetch_ent_mh_ptr(pPerl)) +#define PL_hv_fetch_ent_mh (*Perl_Thv_fetch_ent_mh_ptr(aTHXo)) #undef PL_hv_fetch_sv -#define PL_hv_fetch_sv (*Perl_Thv_fetch_sv_ptr(pPerl)) +#define PL_hv_fetch_sv (*Perl_Thv_fetch_sv_ptr(aTHXo)) #undef PL_in_eval -#define PL_in_eval (*Perl_Tin_eval_ptr(pPerl)) +#define PL_in_eval (*Perl_Tin_eval_ptr(aTHXo)) #undef PL_last_in_gv -#define PL_last_in_gv (*Perl_Tlast_in_gv_ptr(pPerl)) +#define PL_last_in_gv (*Perl_Tlast_in_gv_ptr(aTHXo)) #undef PL_lastgotoprobe -#define PL_lastgotoprobe (*Perl_Tlastgotoprobe_ptr(pPerl)) +#define PL_lastgotoprobe (*Perl_Tlastgotoprobe_ptr(aTHXo)) #undef PL_lastscream -#define PL_lastscream (*Perl_Tlastscream_ptr(pPerl)) +#define PL_lastscream (*Perl_Tlastscream_ptr(aTHXo)) #undef PL_localizing -#define PL_localizing (*Perl_Tlocalizing_ptr(pPerl)) +#define PL_localizing (*Perl_Tlocalizing_ptr(aTHXo)) #undef PL_mainstack -#define PL_mainstack (*Perl_Tmainstack_ptr(pPerl)) +#define PL_mainstack (*Perl_Tmainstack_ptr(aTHXo)) #undef PL_markstack -#define PL_markstack (*Perl_Tmarkstack_ptr(pPerl)) +#define PL_markstack (*Perl_Tmarkstack_ptr(aTHXo)) #undef PL_markstack_max -#define PL_markstack_max (*Perl_Tmarkstack_max_ptr(pPerl)) +#define PL_markstack_max (*Perl_Tmarkstack_max_ptr(aTHXo)) #undef PL_markstack_ptr -#define PL_markstack_ptr (*Perl_Tmarkstack_ptr_ptr(pPerl)) +#define PL_markstack_ptr (*Perl_Tmarkstack_ptr_ptr(aTHXo)) #undef PL_maxscream -#define PL_maxscream (*Perl_Tmaxscream_ptr(pPerl)) +#define PL_maxscream (*Perl_Tmaxscream_ptr(aTHXo)) #undef PL_modcount -#define PL_modcount (*Perl_Tmodcount_ptr(pPerl)) +#define PL_modcount (*Perl_Tmodcount_ptr(aTHXo)) #undef PL_na -#define PL_na (*Perl_Tna_ptr(pPerl)) +#define PL_na (*Perl_Tna_ptr(aTHXo)) #undef PL_nrs -#define PL_nrs (*Perl_Tnrs_ptr(pPerl)) +#define PL_nrs (*Perl_Tnrs_ptr(aTHXo)) #undef PL_ofs -#define PL_ofs (*Perl_Tofs_ptr(pPerl)) +#define PL_ofs (*Perl_Tofs_ptr(aTHXo)) #undef PL_ofslen -#define PL_ofslen (*Perl_Tofslen_ptr(pPerl)) +#define PL_ofslen (*Perl_Tofslen_ptr(aTHXo)) #undef PL_op -#define PL_op (*Perl_Top_ptr(pPerl)) +#define PL_op (*Perl_Top_ptr(aTHXo)) #undef PL_opsave -#define PL_opsave (*Perl_Topsave_ptr(pPerl)) +#define PL_opsave (*Perl_Topsave_ptr(aTHXo)) #undef PL_protect -#define PL_protect (*Perl_Tprotect_ptr(pPerl)) +#define PL_protect (*Perl_Tprotect_ptr(aTHXo)) #undef PL_reg_call_cc -#define PL_reg_call_cc (*Perl_Treg_call_cc_ptr(pPerl)) +#define PL_reg_call_cc (*Perl_Treg_call_cc_ptr(aTHXo)) #undef PL_reg_curpm -#define PL_reg_curpm (*Perl_Treg_curpm_ptr(pPerl)) +#define PL_reg_curpm (*Perl_Treg_curpm_ptr(aTHXo)) #undef PL_reg_eval_set -#define PL_reg_eval_set (*Perl_Treg_eval_set_ptr(pPerl)) +#define PL_reg_eval_set (*Perl_Treg_eval_set_ptr(aTHXo)) #undef PL_reg_flags -#define PL_reg_flags (*Perl_Treg_flags_ptr(pPerl)) +#define PL_reg_flags (*Perl_Treg_flags_ptr(aTHXo)) #undef PL_reg_ganch -#define PL_reg_ganch (*Perl_Treg_ganch_ptr(pPerl)) +#define PL_reg_ganch (*Perl_Treg_ganch_ptr(aTHXo)) #undef PL_reg_magic -#define PL_reg_magic (*Perl_Treg_magic_ptr(pPerl)) +#define PL_reg_magic (*Perl_Treg_magic_ptr(aTHXo)) #undef PL_reg_oldcurpm -#define PL_reg_oldcurpm (*Perl_Treg_oldcurpm_ptr(pPerl)) +#define PL_reg_oldcurpm (*Perl_Treg_oldcurpm_ptr(aTHXo)) #undef PL_reg_oldpos -#define PL_reg_oldpos (*Perl_Treg_oldpos_ptr(pPerl)) +#define PL_reg_oldpos (*Perl_Treg_oldpos_ptr(aTHXo)) #undef PL_reg_oldsaved -#define PL_reg_oldsaved (*Perl_Treg_oldsaved_ptr(pPerl)) +#define PL_reg_oldsaved (*Perl_Treg_oldsaved_ptr(aTHXo)) #undef PL_reg_oldsavedlen -#define PL_reg_oldsavedlen (*Perl_Treg_oldsavedlen_ptr(pPerl)) +#define PL_reg_oldsavedlen (*Perl_Treg_oldsavedlen_ptr(aTHXo)) #undef PL_reg_re -#define PL_reg_re (*Perl_Treg_re_ptr(pPerl)) +#define PL_reg_re (*Perl_Treg_re_ptr(aTHXo)) #undef PL_reg_start_tmp -#define PL_reg_start_tmp (*Perl_Treg_start_tmp_ptr(pPerl)) +#define PL_reg_start_tmp (*Perl_Treg_start_tmp_ptr(aTHXo)) #undef PL_reg_start_tmpl -#define PL_reg_start_tmpl (*Perl_Treg_start_tmpl_ptr(pPerl)) +#define PL_reg_start_tmpl (*Perl_Treg_start_tmpl_ptr(aTHXo)) #undef PL_reg_starttry -#define PL_reg_starttry (*Perl_Treg_starttry_ptr(pPerl)) +#define PL_reg_starttry (*Perl_Treg_starttry_ptr(aTHXo)) #undef PL_reg_sv -#define PL_reg_sv (*Perl_Treg_sv_ptr(pPerl)) +#define PL_reg_sv (*Perl_Treg_sv_ptr(aTHXo)) #undef PL_regbol -#define PL_regbol (*Perl_Tregbol_ptr(pPerl)) +#define PL_regbol (*Perl_Tregbol_ptr(aTHXo)) #undef PL_regcc -#define PL_regcc (*Perl_Tregcc_ptr(pPerl)) +#define PL_regcc (*Perl_Tregcc_ptr(aTHXo)) #undef PL_regcode -#define PL_regcode (*Perl_Tregcode_ptr(pPerl)) +#define PL_regcode (*Perl_Tregcode_ptr(aTHXo)) #undef PL_regcomp_parse -#define PL_regcomp_parse (*Perl_Tregcomp_parse_ptr(pPerl)) +#define PL_regcomp_parse (*Perl_Tregcomp_parse_ptr(aTHXo)) #undef PL_regcomp_rx -#define PL_regcomp_rx (*Perl_Tregcomp_rx_ptr(pPerl)) +#define PL_regcomp_rx (*Perl_Tregcomp_rx_ptr(aTHXo)) #undef PL_regcompp -#define PL_regcompp (*Perl_Tregcompp_ptr(pPerl)) +#define PL_regcompp (*Perl_Tregcompp_ptr(aTHXo)) #undef PL_regdata -#define PL_regdata (*Perl_Tregdata_ptr(pPerl)) +#define PL_regdata (*Perl_Tregdata_ptr(aTHXo)) #undef PL_regdummy -#define PL_regdummy (*Perl_Tregdummy_ptr(pPerl)) +#define PL_regdummy (*Perl_Tregdummy_ptr(aTHXo)) #undef PL_regendp -#define PL_regendp (*Perl_Tregendp_ptr(pPerl)) +#define PL_regendp (*Perl_Tregendp_ptr(aTHXo)) #undef PL_regeol -#define PL_regeol (*Perl_Tregeol_ptr(pPerl)) +#define PL_regeol (*Perl_Tregeol_ptr(aTHXo)) #undef PL_regexecp -#define PL_regexecp (*Perl_Tregexecp_ptr(pPerl)) +#define PL_regexecp (*Perl_Tregexecp_ptr(aTHXo)) #undef PL_regflags -#define PL_regflags (*Perl_Tregflags_ptr(pPerl)) +#define PL_regflags (*Perl_Tregflags_ptr(aTHXo)) #undef PL_regfree -#define PL_regfree (*Perl_Tregfree_ptr(pPerl)) +#define PL_regfree (*Perl_Tregfree_ptr(aTHXo)) #undef PL_regindent -#define PL_regindent (*Perl_Tregindent_ptr(pPerl)) +#define PL_regindent (*Perl_Tregindent_ptr(aTHXo)) #undef PL_reginput -#define PL_reginput (*Perl_Treginput_ptr(pPerl)) +#define PL_reginput (*Perl_Treginput_ptr(aTHXo)) #undef PL_regint_start -#define PL_regint_start (*Perl_Tregint_start_ptr(pPerl)) +#define PL_regint_start (*Perl_Tregint_start_ptr(aTHXo)) #undef PL_regint_string -#define PL_regint_string (*Perl_Tregint_string_ptr(pPerl)) +#define PL_regint_string (*Perl_Tregint_string_ptr(aTHXo)) #undef PL_reginterp_cnt -#define PL_reginterp_cnt (*Perl_Treginterp_cnt_ptr(pPerl)) +#define PL_reginterp_cnt (*Perl_Treginterp_cnt_ptr(aTHXo)) #undef PL_reglastparen -#define PL_reglastparen (*Perl_Treglastparen_ptr(pPerl)) +#define PL_reglastparen (*Perl_Treglastparen_ptr(aTHXo)) #undef PL_regnarrate -#define PL_regnarrate (*Perl_Tregnarrate_ptr(pPerl)) +#define PL_regnarrate (*Perl_Tregnarrate_ptr(aTHXo)) #undef PL_regnaughty -#define PL_regnaughty (*Perl_Tregnaughty_ptr(pPerl)) +#define PL_regnaughty (*Perl_Tregnaughty_ptr(aTHXo)) #undef PL_regnpar -#define PL_regnpar (*Perl_Tregnpar_ptr(pPerl)) +#define PL_regnpar (*Perl_Tregnpar_ptr(aTHXo)) #undef PL_regprecomp -#define PL_regprecomp (*Perl_Tregprecomp_ptr(pPerl)) +#define PL_regprecomp (*Perl_Tregprecomp_ptr(aTHXo)) #undef PL_regprev -#define PL_regprev (*Perl_Tregprev_ptr(pPerl)) +#define PL_regprev (*Perl_Tregprev_ptr(aTHXo)) #undef PL_regprogram -#define PL_regprogram (*Perl_Tregprogram_ptr(pPerl)) +#define PL_regprogram (*Perl_Tregprogram_ptr(aTHXo)) #undef PL_regsawback -#define PL_regsawback (*Perl_Tregsawback_ptr(pPerl)) +#define PL_regsawback (*Perl_Tregsawback_ptr(aTHXo)) #undef PL_regseen -#define PL_regseen (*Perl_Tregseen_ptr(pPerl)) +#define PL_regseen (*Perl_Tregseen_ptr(aTHXo)) #undef PL_regsize -#define PL_regsize (*Perl_Tregsize_ptr(pPerl)) +#define PL_regsize (*Perl_Tregsize_ptr(aTHXo)) #undef PL_regstartp -#define PL_regstartp (*Perl_Tregstartp_ptr(pPerl)) +#define PL_regstartp (*Perl_Tregstartp_ptr(aTHXo)) #undef PL_regtill -#define PL_regtill (*Perl_Tregtill_ptr(pPerl)) +#define PL_regtill (*Perl_Tregtill_ptr(aTHXo)) #undef PL_regxend -#define PL_regxend (*Perl_Tregxend_ptr(pPerl)) +#define PL_regxend (*Perl_Tregxend_ptr(aTHXo)) #undef PL_restartop -#define PL_restartop (*Perl_Trestartop_ptr(pPerl)) +#define PL_restartop (*Perl_Trestartop_ptr(aTHXo)) #undef PL_retstack -#define PL_retstack (*Perl_Tretstack_ptr(pPerl)) +#define PL_retstack (*Perl_Tretstack_ptr(aTHXo)) #undef PL_retstack_ix -#define PL_retstack_ix (*Perl_Tretstack_ix_ptr(pPerl)) +#define PL_retstack_ix (*Perl_Tretstack_ix_ptr(aTHXo)) #undef PL_retstack_max -#define PL_retstack_max (*Perl_Tretstack_max_ptr(pPerl)) +#define PL_retstack_max (*Perl_Tretstack_max_ptr(aTHXo)) #undef PL_rs -#define PL_rs (*Perl_Trs_ptr(pPerl)) +#define PL_rs (*Perl_Trs_ptr(aTHXo)) #undef PL_savestack -#define PL_savestack (*Perl_Tsavestack_ptr(pPerl)) +#define PL_savestack (*Perl_Tsavestack_ptr(aTHXo)) #undef PL_savestack_ix -#define PL_savestack_ix (*Perl_Tsavestack_ix_ptr(pPerl)) +#define PL_savestack_ix (*Perl_Tsavestack_ix_ptr(aTHXo)) #undef PL_savestack_max -#define PL_savestack_max (*Perl_Tsavestack_max_ptr(pPerl)) +#define PL_savestack_max (*Perl_Tsavestack_max_ptr(aTHXo)) #undef PL_scopestack -#define PL_scopestack (*Perl_Tscopestack_ptr(pPerl)) +#define PL_scopestack (*Perl_Tscopestack_ptr(aTHXo)) #undef PL_scopestack_ix -#define PL_scopestack_ix (*Perl_Tscopestack_ix_ptr(pPerl)) +#define PL_scopestack_ix (*Perl_Tscopestack_ix_ptr(aTHXo)) #undef PL_scopestack_max -#define PL_scopestack_max (*Perl_Tscopestack_max_ptr(pPerl)) +#define PL_scopestack_max (*Perl_Tscopestack_max_ptr(aTHXo)) #undef PL_screamfirst -#define PL_screamfirst (*Perl_Tscreamfirst_ptr(pPerl)) +#define PL_screamfirst (*Perl_Tscreamfirst_ptr(aTHXo)) #undef PL_screamnext -#define PL_screamnext (*Perl_Tscreamnext_ptr(pPerl)) +#define PL_screamnext (*Perl_Tscreamnext_ptr(aTHXo)) #undef PL_secondgv -#define PL_secondgv (*Perl_Tsecondgv_ptr(pPerl)) +#define PL_secondgv (*Perl_Tsecondgv_ptr(aTHXo)) #undef PL_seen_evals -#define PL_seen_evals (*Perl_Tseen_evals_ptr(pPerl)) +#define PL_seen_evals (*Perl_Tseen_evals_ptr(aTHXo)) #undef PL_seen_zerolen -#define PL_seen_zerolen (*Perl_Tseen_zerolen_ptr(pPerl)) +#define PL_seen_zerolen (*Perl_Tseen_zerolen_ptr(aTHXo)) #undef PL_sortcop -#define PL_sortcop (*Perl_Tsortcop_ptr(pPerl)) +#define PL_sortcop (*Perl_Tsortcop_ptr(aTHXo)) #undef PL_sortcxix -#define PL_sortcxix (*Perl_Tsortcxix_ptr(pPerl)) +#define PL_sortcxix (*Perl_Tsortcxix_ptr(aTHXo)) #undef PL_sortstash -#define PL_sortstash (*Perl_Tsortstash_ptr(pPerl)) +#define PL_sortstash (*Perl_Tsortstash_ptr(aTHXo)) #undef PL_stack_base -#define PL_stack_base (*Perl_Tstack_base_ptr(pPerl)) +#define PL_stack_base (*Perl_Tstack_base_ptr(aTHXo)) #undef PL_stack_max -#define PL_stack_max (*Perl_Tstack_max_ptr(pPerl)) +#define PL_stack_max (*Perl_Tstack_max_ptr(aTHXo)) #undef PL_stack_sp -#define PL_stack_sp (*Perl_Tstack_sp_ptr(pPerl)) +#define PL_stack_sp (*Perl_Tstack_sp_ptr(aTHXo)) #undef PL_start_env -#define PL_start_env (*Perl_Tstart_env_ptr(pPerl)) +#define PL_start_env (*Perl_Tstart_env_ptr(aTHXo)) #undef PL_statbuf -#define PL_statbuf (*Perl_Tstatbuf_ptr(pPerl)) +#define PL_statbuf (*Perl_Tstatbuf_ptr(aTHXo)) #undef PL_statcache -#define PL_statcache (*Perl_Tstatcache_ptr(pPerl)) +#define PL_statcache (*Perl_Tstatcache_ptr(aTHXo)) #undef PL_statgv -#define PL_statgv (*Perl_Tstatgv_ptr(pPerl)) +#define PL_statgv (*Perl_Tstatgv_ptr(aTHXo)) #undef PL_statname -#define PL_statname (*Perl_Tstatname_ptr(pPerl)) +#define PL_statname (*Perl_Tstatname_ptr(aTHXo)) #undef PL_tainted -#define PL_tainted (*Perl_Ttainted_ptr(pPerl)) +#define PL_tainted (*Perl_Ttainted_ptr(aTHXo)) #undef PL_timesbuf -#define PL_timesbuf (*Perl_Ttimesbuf_ptr(pPerl)) +#define PL_timesbuf (*Perl_Ttimesbuf_ptr(aTHXo)) #undef PL_tmps_floor -#define PL_tmps_floor (*Perl_Ttmps_floor_ptr(pPerl)) +#define PL_tmps_floor (*Perl_Ttmps_floor_ptr(aTHXo)) #undef PL_tmps_ix -#define PL_tmps_ix (*Perl_Ttmps_ix_ptr(pPerl)) +#define PL_tmps_ix (*Perl_Ttmps_ix_ptr(aTHXo)) #undef PL_tmps_max -#define PL_tmps_max (*Perl_Ttmps_max_ptr(pPerl)) +#define PL_tmps_max (*Perl_Ttmps_max_ptr(aTHXo)) #undef PL_tmps_stack -#define PL_tmps_stack (*Perl_Ttmps_stack_ptr(pPerl)) +#define PL_tmps_stack (*Perl_Ttmps_stack_ptr(aTHXo)) #undef PL_top_env -#define PL_top_env (*Perl_Ttop_env_ptr(pPerl)) +#define PL_top_env (*Perl_Ttop_env_ptr(aTHXo)) #undef PL_toptarget -#define PL_toptarget (*Perl_Ttoptarget_ptr(pPerl)) +#define PL_toptarget (*Perl_Ttoptarget_ptr(aTHXo)) #undef PL_watchaddr -#define PL_watchaddr (*Perl_Twatchaddr_ptr(pPerl)) +#define PL_watchaddr (*Perl_Twatchaddr_ptr(aTHXo)) #undef PL_watchok -#define PL_watchok (*Perl_Twatchok_ptr(pPerl)) +#define PL_watchok (*Perl_Twatchok_ptr(aTHXo)) #undef PL_No -#define PL_No (*Perl_GNo_ptr(pPerl)) +#define PL_No (*Perl_GNo_ptr(NULL)) #undef PL_Yes -#define PL_Yes (*Perl_GYes_ptr(pPerl)) +#define PL_Yes (*Perl_GYes_ptr(NULL)) #undef PL_curinterp -#define PL_curinterp (*Perl_Gcurinterp_ptr(pPerl)) +#define PL_curinterp (*Perl_Gcurinterp_ptr(NULL)) #undef PL_do_undump -#define PL_do_undump (*Perl_Gdo_undump_ptr(pPerl)) +#define PL_do_undump (*Perl_Gdo_undump_ptr(NULL)) #undef PL_hexdigit -#define PL_hexdigit (*Perl_Ghexdigit_ptr(pPerl)) +#define PL_hexdigit (*Perl_Ghexdigit_ptr(NULL)) #undef PL_patleave -#define PL_patleave (*Perl_Gpatleave_ptr(pPerl)) +#define PL_patleave (*Perl_Gpatleave_ptr(NULL)) /* Functions */ #if defined(PERL_OBJECT) + +/* XXX soon to be eliminated, only a few things in PERLCORE need these now */ + +#if defined(PERL_OBJECT) #endif #undef Perl_amagic_call #define Perl_amagic_call pPerl->Perl_amagic_call @@ -973,6 +977,10 @@ #define Perl_croak pPerl->Perl_croak #undef croak #define croak Perl_croak +#undef Perl_vcroak +#define Perl_vcroak pPerl->Perl_vcroak +#undef vcroak +#define vcroak Perl_vcroak #if defined(PERL_IMPLICIT_CONTEXT) #undef Perl_croak_nocontext #define Perl_croak_nocontext pPerl->Perl_croak_nocontext @@ -982,6 +990,10 @@ #define Perl_die_nocontext pPerl->Perl_die_nocontext #undef die_nocontext #define die_nocontext Perl_die_nocontext +#undef Perl_deb_nocontext +#define Perl_deb_nocontext pPerl->Perl_deb_nocontext +#undef deb_nocontext +#define deb_nocontext Perl_deb_nocontext #undef Perl_form_nocontext #define Perl_form_nocontext pPerl->Perl_form_nocontext #undef form_nocontext @@ -990,6 +1002,10 @@ #define Perl_warn_nocontext pPerl->Perl_warn_nocontext #undef warn_nocontext #define warn_nocontext Perl_warn_nocontext +#undef Perl_warner_nocontext +#define Perl_warner_nocontext pPerl->Perl_warner_nocontext +#undef warner_nocontext +#define warner_nocontext Perl_warner_nocontext #undef Perl_newSVpvf_nocontext #define Perl_newSVpvf_nocontext pPerl->Perl_newSVpvf_nocontext #undef newSVpvf_nocontext @@ -1010,6 +1026,10 @@ #define Perl_sv_setpvf_mg_nocontext pPerl->Perl_sv_setpvf_mg_nocontext #undef sv_setpvf_mg_nocontext #define sv_setpvf_mg_nocontext Perl_sv_setpvf_mg_nocontext +#undef Perl_fprintf_nocontext +#define Perl_fprintf_nocontext pPerl->Perl_fprintf_nocontext +#undef fprintf_nocontext +#define fprintf_nocontext Perl_fprintf_nocontext #endif #undef Perl_cv_ckproto #define Perl_cv_ckproto pPerl->Perl_cv_ckproto @@ -1075,6 +1095,10 @@ #define Perl_deb pPerl->Perl_deb #undef deb #define deb Perl_deb +#undef Perl_vdeb +#define Perl_vdeb pPerl->Perl_vdeb +#undef vdeb +#define vdeb Perl_vdeb #undef Perl_deb_growlevel #define Perl_deb_growlevel pPerl->Perl_deb_growlevel #undef deb_growlevel @@ -1107,6 +1131,10 @@ #define Perl_die pPerl->Perl_die #undef die #define die Perl_die +#undef Perl_vdie +#define Perl_vdie pPerl->Perl_vdie +#undef vdie +#define vdie Perl_vdie #undef Perl_die_where #define Perl_die_where pPerl->Perl_die_where #undef die_where @@ -1307,6 +1335,10 @@ #define Perl_form pPerl->Perl_form #undef form #define form Perl_form +#undef Perl_vform +#define Perl_vform pPerl->Perl_vform +#undef vform +#define vform Perl_vform #undef Perl_free_tmps #define Perl_free_tmps pPerl->Perl_free_tmps #undef free_tmps @@ -2261,6 +2293,10 @@ #define Perl_newSVpvf pPerl->Perl_newSVpvf #undef newSVpvf #define newSVpvf Perl_newSVpvf +#undef Perl_vnewSVpvf +#define Perl_vnewSVpvf pPerl->Perl_vnewSVpvf +#undef vnewSVpvf +#define vnewSVpvf Perl_vnewSVpvf #undef Perl_newSVrv #define Perl_newSVrv pPerl->Perl_newSVrv #undef newSVrv @@ -2277,12 +2313,6 @@ #define Perl_newWHILEOP pPerl->Perl_newWHILEOP #undef newWHILEOP #define newWHILEOP Perl_newWHILEOP -#if defined(USE_THREADS) -#undef Perl_new_struct_thread -#define Perl_new_struct_thread pPerl->Perl_new_struct_thread -#undef new_struct_thread -#define new_struct_thread Perl_new_struct_thread -#endif #undef Perl_new_stackinfo #define Perl_new_stackinfo pPerl->Perl_new_stackinfo #undef new_stackinfo @@ -2375,6 +2405,12 @@ #define perl_run pPerl->perl_run #undef perl_parse #define perl_parse pPerl->perl_parse +#if defined(USE_THREADS) +#undef Perl_new_struct_thread +#define Perl_new_struct_thread pPerl->Perl_new_struct_thread +#undef new_struct_thread +#define new_struct_thread Perl_new_struct_thread +#endif #endif #undef Perl_call_atexit #define Perl_call_atexit pPerl->Perl_call_atexit @@ -2860,6 +2896,10 @@ #define Perl_sv_catpvf pPerl->Perl_sv_catpvf #undef sv_catpvf #define sv_catpvf Perl_sv_catpvf +#undef Perl_sv_vcatpvf +#define Perl_sv_vcatpvf pPerl->Perl_sv_vcatpvf +#undef sv_vcatpvf +#define sv_vcatpvf Perl_sv_vcatpvf #undef Perl_sv_catpv #define Perl_sv_catpv pPerl->Perl_sv_catpv #undef sv_catpv @@ -3014,6 +3054,10 @@ #define Perl_sv_setpvf pPerl->Perl_sv_setpvf #undef sv_setpvf #define sv_setpvf Perl_sv_setpvf +#undef Perl_sv_vsetpvf +#define Perl_sv_vsetpvf pPerl->Perl_sv_vsetpvf +#undef sv_vsetpvf +#define sv_vsetpvf Perl_sv_vsetpvf #undef Perl_sv_setiv #define Perl_sv_setiv pPerl->Perl_sv_setiv #undef sv_setiv @@ -3186,10 +3230,18 @@ #define Perl_warn pPerl->Perl_warn #undef warn #define warn Perl_warn +#undef Perl_vwarn +#define Perl_vwarn pPerl->Perl_vwarn +#undef vwarn +#define vwarn Perl_vwarn #undef Perl_warner #define Perl_warner pPerl->Perl_warner #undef warner #define warner Perl_warner +#undef Perl_vwarner +#define Perl_vwarner pPerl->Perl_vwarner +#undef vwarner +#define vwarner Perl_vwarner #undef Perl_watch #define Perl_watch pPerl->Perl_watch #undef watch @@ -3295,6 +3347,10 @@ #define Perl_sv_catpvf_mg pPerl->Perl_sv_catpvf_mg #undef sv_catpvf_mg #define sv_catpvf_mg Perl_sv_catpvf_mg +#undef Perl_sv_vcatpvf_mg +#define Perl_sv_vcatpvf_mg pPerl->Perl_sv_vcatpvf_mg +#undef sv_vcatpvf_mg +#define sv_vcatpvf_mg Perl_sv_vcatpvf_mg #undef Perl_sv_catpv_mg #define Perl_sv_catpv_mg pPerl->Perl_sv_catpv_mg #undef sv_catpv_mg @@ -3311,6 +3367,10 @@ #define Perl_sv_setpvf_mg pPerl->Perl_sv_setpvf_mg #undef sv_setpvf_mg #define sv_setpvf_mg Perl_sv_setpvf_mg +#undef Perl_sv_vsetpvf_mg +#define Perl_sv_vsetpvf_mg pPerl->Perl_sv_vsetpvf_mg +#undef sv_vsetpvf_mg +#define sv_vsetpvf_mg Perl_sv_vsetpvf_mg #undef Perl_sv_setiv_mg #define Perl_sv_setiv_mg pPerl->Perl_sv_setiv_mg #undef sv_setiv_mg @@ -3355,6 +3415,10 @@ #define Perl_dump_indent pPerl->Perl_dump_indent #undef dump_indent #define dump_indent Perl_dump_indent +#undef Perl_dump_vindent +#define Perl_dump_vindent pPerl->Perl_dump_vindent +#undef dump_vindent +#define dump_vindent Perl_dump_vindent #undef Perl_do_gv_dump #define Perl_do_gv_dump pPerl->Perl_do_gv_dump #undef do_gv_dump @@ -3391,6 +3455,10 @@ #define Perl_default_protect pPerl->Perl_default_protect #undef default_protect #define default_protect Perl_default_protect +#undef Perl_vdefault_protect +#define Perl_vdefault_protect pPerl->Perl_vdefault_protect +#undef vdefault_protect +#define vdefault_protect Perl_vdefault_protect #undef Perl_reginitcolors #define Perl_reginitcolors pPerl->Perl_reginitcolors #undef reginitcolors @@ -4991,4 +5059,5 @@ #undef pp_xor #define pp_xor Perl_pp_xor +#endif /* PERL_OBJECT */ #endif /* __objXSUB_h__ */ diff --git a/perl.c b/perl.c index b654404..bb3f2a9 100644 --- a/perl.c +++ b/perl.c @@ -61,10 +61,8 @@ perl_alloc(void) { PerlInterpreter *my_perl; -#if !defined(PERL_IMPLICIT_CONTEXT) - PL_curinterp = 0; -#endif New(53, my_perl, 1, PerlInterpreter); + PERL_SET_INTERP(my_perl); return my_perl; } #endif /* PERL_OBJECT */ @@ -79,11 +77,6 @@ perl_construct(pTHXx) #endif /* FAKE_THREADS */ #endif /* USE_THREADS */ -#ifndef PERL_OBJECT - if (!(PL_curinterp = my_perl)) - return; -#endif - #ifdef MULTIPLICITY Zero(my_perl, 1, PerlInterpreter); #endif @@ -219,11 +212,6 @@ perl_destruct(pTHXx) dTHX; #endif /* USE_THREADS */ -#if !defined(PERL_OBJECT) && !defined(PERL_IMPLICIT_CONTEXT) - if (!(PL_curinterp = my_perl)) - return; -#endif - #ifdef USE_THREADS #ifndef FAKE_THREADS /* Pass 1 on any remaining threads: detach joinables, join zombies */ @@ -568,14 +556,10 @@ perl_destruct(pTHXx) void perl_free(pTHXx) { -#ifdef PERL_OBJECT - Safefree(this); +#if defined(PERL_OBJECT) + Safefree(this); #else -# if !defined(PERL_IMPLICIT_CONTEXT) - if (!(PL_curinterp = my_perl)) - return; -# endif - Safefree(my_perl); + Safefree(aTHXx); #endif } @@ -606,11 +590,6 @@ setuid perl scripts securely.\n"); #endif #endif -#if !defined(PERL_OBJECT) && !defined(PERL_IMPLICIT_CONTEXT) - if (!(PL_curinterp = my_perl)) - return 255; -#endif - #if defined(__DYNAMIC__) && (defined(NeXT) || defined(__NeXT__)) _dyld_lookup_and_bind ("__environ", (unsigned long *) &environ_pointer, NULL); @@ -948,7 +927,7 @@ print \" \\@INC:\\n @INC\\n\";"); if (xsinit) (*xsinit)(aTHXo); /* in case linked C routines want magical variables */ #if defined(VMS) || defined(WIN32) || defined(DJGPP) - init_os_extras(aTHX); + init_os_extras(); #endif #ifdef USE_SOCKS @@ -1017,11 +996,6 @@ perl_run(pTHXx) dTHX; #endif -#if !defined(PERL_OBJECT) && !defined(PERL_IMPLICIT_CONTEXT) - if (!(PL_curinterp = my_perl)) - return 255; -#endif - oldscope = PL_scopestack_ix; redo_body: @@ -1907,8 +1881,8 @@ S_init_interp(pTHX) # define PERLVARI(var,type,init) my_perl->var = init; # define PERLVARIC(var,type,init) my_perl->var = init; # else -# define PERLVARI(var,type,init) PL_curinterp->var = init; -# define PERLVARIC(var,type,init) PL_curinterp->var = init; +# define PERLVARI(var,type,init) PERL_GET_INTERP->var = init; +# define PERLVARIC(var,type,init) PERL_GET_INTERP->var = init; # endif # include "intrpvar.h" # ifndef USE_THREADS @@ -2900,13 +2874,14 @@ S_incpush(pTHX_ char *p, int addsubdirs) STATIC struct perl_thread * S_init_main_thread(pTHX) { -#ifndef PERL_IMPLICIT_CONTEXT +#if !defined(PERL_IMPLICIT_CONTEXT) struct perl_thread *thr; #endif XPV *xpv; Newz(53, thr, 1, struct perl_thread); PL_curcop = &PL_compiling; + thr->interp = PERL_GET_INTERP; thr->cvcache = newHV(); thr->threadsv = newAV(); /* thr->threadsvp is set when find_threadsv is called */ diff --git a/perl.h b/perl.h index 68c4940..07dada4 100644 --- a/perl.h +++ b/perl.h @@ -9,8 +9,6 @@ #ifndef H_PERL #define H_PERL 1 -/*#define PERL_IMPLICIT_CONTEXT*/ - #ifdef PERL_FOR_X2P /* * This file is being used for x2p stuff. @@ -27,7 +25,41 @@ /* XXXXXX testing threads via implicit pointer */ #ifdef USE_THREADS -#define PERL_IMPLICIT_CONTEXT +# ifndef PERL_IMPLICIT_CONTEXT +# define PERL_IMPLICIT_CONTEXT +# endif +# ifndef PERL_IMPLICIT_SYS +/*# define PERL_IMPLICIT_SYS*/ /* XXX not done yet */ +# endif +#endif + +/* XXXXXX testing multiplicity via implicit pointer */ +#if defined(MULTIPLICITY) +# ifndef PERL_IMPLICIT_CONTEXT +# define PERL_IMPLICIT_CONTEXT +# endif +# ifndef PERL_IMPLICIT_SYS +/*# define PERL_IMPLICIT_SYS*/ /* XXX not done yet */ +# endif +#endif + +#ifdef PERL_CAPI +# undef PERL_OBJECT +# ifndef PERL_IMPLICIT_CONTEXT +# define PERL_IMPLICIT_CONTEXT +# endif +# ifndef PERL_IMPLICIT_SYS +# define PERL_IMPLICIT_SYS +# endif +#endif + +#ifdef PERL_OBJECT +# ifndef PERL_IMPLICIT_CONTEXT +# define PERL_IMPLICIT_CONTEXT +# endif +# ifndef PERL_IMPLICIT_SYS +# define PERL_IMPLICIT_SYS +# endif #endif #ifdef PERL_OBJECT @@ -108,18 +140,20 @@ functions are now member functions of the PERL_OBJECT. class CPerlObj; #define STATIC -#define CPERLscope(x) CPerlObj::x -#define CALL_FPTR(fptr) (this->*fptr) - -#define pTHXo CPerlObj *pPerl -#define pTHXo_ pTHXo, -#define _pTHXo ,pTHXo -#define aTHXo this -#define aTHXo_ this, -#define _aTHXo ,this +#define CPERLscope(x) CPerlObj::x +#define CALL_FPTR(fptr) (this->*fptr) + +#define pTHXo CPerlObj *pPerl +#define pTHXo_ pTHXo, +#define _pTHXo ,pTHXo +#define aTHXo this +#define aTHXo_ this, +#define _aTHXo ,this #define PERL_OBJECT_THIS aTHXo #define PERL_OBJECT_THIS_ aTHXo_ #define _PERL_OBJECT_THIS _aTHXo +#define dTHXoa(a) pTHXo = (CPerlObj *)a +#define dTHXo dTHXoa(PERL_GET_INTERP) #define pTHXx void #define pTHXx_ @@ -130,6 +164,27 @@ class CPerlObj; #else /* !PERL_OBJECT */ +#ifdef PERL_IMPLICIT_CONTEXT +# ifdef USE_THREADS +struct perl_thread; +# define pTHX register struct perl_thread *thr +# define aTHX thr +# define dTHXa(a) pTHX = (struct perl_thread *)a +# define dTHX dTHXa(THR) +# define dTHR dNOOP +# else +# define MULTIPLICITY +# define pTHX register PerlInterpreter *my_perl +# define aTHX my_perl +# define dTHXa(a) pTHX = (PerlInterpreter *)a +# define dTHX dTHXa(PERL_GET_INTERP) +# endif +# define pTHX_ pTHX, +# define _pTHX ,pTHX +# define aTHX_ aTHX, +# define _aTHX ,aTHX +#endif + #define STATIC static #define CPERLscope(x) x #define CPERLarg void @@ -153,27 +208,6 @@ class CPerlObj; #define NOOP (void)0 #define dNOOP extern int Perl___notused -#ifdef PERL_IMPLICIT_CONTEXT -# ifdef USE_THREADS -struct perl_thread; -# define pTHX register struct perl_thread *thr -# define aTHX thr -# define dTHXa(a) pTHX = (struct perl_thread *)a -# define dTHX dTHXa(SvPVX(PL_thrsv)) -# define dTHR dNOOP -# else -# define MULTIPLICITY -# define pTHX register PerlInterpreter *my_perl -# define aTHX my_perl -# define dTHXa(a) pTHX = (PerlInterpreter *)a -# define dTHX dTHXa(PL_curinterp) -# endif -# define pTHX_ pTHX, -# define _pTHX ,pTHX -# define aTHX_ aTHX, -# define _aTHX ,aTHX -#endif - #ifndef pTHX # define pTHX void # define pTHX_ @@ -192,6 +226,7 @@ struct perl_thread; # define aTHXo aTHX # define aTHXo_ aTHX_ # define _aTHXo _aTHX +# define dTHXo dTHX #endif #ifndef pTHXx @@ -201,6 +236,7 @@ struct perl_thread; # define aTHXx my_perl # define aTHXx_ aTHXx, # define _aTHXx ,aTHXx +# define dTHXx dTHX #endif #undef START_EXTERN_C @@ -1503,7 +1539,11 @@ typedef pthread_key_t perl_key; # endif /* WIN32 */ # endif /* FAKE_THREADS */ #endif /* USE_THREADS */ - + +#ifdef WIN32 +#include "win32.h" +#endif + #ifdef VMS # define STATUS_NATIVE PL_statusvalue_vms # define STATUS_NATIVE_EXPORT \ @@ -1564,11 +1604,19 @@ typedef pthread_key_t perl_key; # ifdef FFLUSH_ALL # define PERL_FLUSHALL_FOR_CHILD my_fflush_all() # else -# define PERL_FLUSHALL_FOR_CHILD (void)0 +# define PERL_FLUSHALL_FOR_CHILD NOOP # endif # endif #endif +#ifndef PERL_SET_INTERP +# define PERL_SET_INTERP(i) (PL_curinterp = (PerlInterpreter*)(i)) +#endif + +#ifndef PERL_GET_INTERP +# define PERL_GET_INTERP (PL_curinterp) +#endif + /* Some unistd.h's give a prototype for pause() even though HAS_PAUSE ends up undefined. This causes the #define below to be rejected by the compmiler. Sigh. @@ -1637,10 +1685,6 @@ typedef I32 (*filter_t) (pTHXo_ int, SV *, int); #define FILTER_DATA(idx) (AvARRAY(PL_rsfp_filters)[idx]) #define FILTER_ISREADER(idx) (idx >= AvFILLp(PL_rsfp_filters)) -#ifdef WIN32 -#include "win32.h" -#endif - #include "iperlsys.h" #include "regexp.h" #include "sv.h" @@ -1827,7 +1871,7 @@ Gid_t getegid (void); # if defined(PERL_OBJECT) # define DEBUG_m(a) if (PL_debug & 128) a # else -# define DEBUG_m(a) if (PL_curinterp && PL_debug & 128) a +# define DEBUG_m(a) if (PERL_GET_INTERP && PL_debug & 128) a # endif #define DEBUG_f(a) if (PL_debug & 256) a #define DEBUG_r(a) if (PL_debug & 512) a @@ -2534,7 +2578,6 @@ public: #include "pp_proto.h" #ifdef PERL_OBJECT -VIRTUAL int CPerlObj::fprintf (PerlIO *pf, const char *pat, ...); VIRTUAL int CPerlObj::do_aspawn (void *vreally, void **vmark, void **vsp); #undef PERL_DECL_PROT #else @@ -2562,18 +2605,6 @@ VIRTUAL int CPerlObj::do_aspawn (void *vreally, void **vmark, void **vsp); #define PERLVARI(var,type,init) EXT type PL_##var INIT(init); #define PERLVARIC(var,type,init) EXTCONST type PL_##var INIT(init); -#ifndef PERL_GLOBAL_STRUCT -# ifndef PERL_OBJECT -START_EXTERN_C -# endif - -# include "perlvars.h" - -# ifndef PERL_OBJECT -END_EXTERN_C -# endif -#endif - #ifndef MULTIPLICITY # include "intrpvar.h" @@ -2592,6 +2623,7 @@ END_EXTERN_C PERLVARA(object_compatibility,30, char) }; + # include "embed.h" # if defined(WIN32) && !defined(WIN32IO_IS_STDIO) # define errno CPerlObj::ErrorNo() @@ -2608,6 +2640,14 @@ PERLVARA(object_compatibility,30, char) #endif /* PERL_OBJECT */ +#ifndef PERL_GLOBAL_STRUCT +START_EXTERN_C + +# include "perlvars.h" + +END_EXTERN_C +#endif + #undef PERLVAR #undef PERLVARA #undef PERLVARI diff --git a/perlapi.c b/perlapi.c index 855ed22..d3ebc9b 100755 --- a/perlapi.c +++ b/perlapi.c @@ -16,15 +16,22 @@ START_EXTERN_C #undef PERLVARA #undef PERLVARI #undef PERLVARIC -#define PERLVAR(v,t) t* Perl_##v##_ptr(void *p) \ - { return &(((CPerlObj*)p)->PL_##v); } -#define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(void *p) \ - { return &(((CPerlObj*)p)->PL_##v); } +#define PERLVAR(v,t) t* Perl_##v##_ptr(pTHXo) \ + { return &(aTHXo->PL_##v); } +#define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHXo) \ + { return &(aTHXo->PL_##v); } #define PERLVARI(v,t,i) PERLVAR(v,t) -#define PERLVARIC(v,t,i) PERLVAR(v,t) +#define PERLVARIC(v,t,i) PERLVAR(v, const t) #include "thrdvar.h" #include "intrpvar.h" + +#undef PERLVAR +#undef PERLVARA +#define PERLVAR(v,t) t* Perl_##v##_ptr(pTHXo) \ + { return &(PL_##v); } +#define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHXo) \ + { return &(PL_##v); } #include "perlvars.h" #undef PERLVAR @@ -37,252 +44,252 @@ START_EXTERN_C #undef Perl_amagic_call SV* -Perl_amagic_call(void *pPerl, SV* left, SV* right, int method, int dir) +Perl_amagic_call(pTHXo_ SV* left, SV* right, int method, int dir) { return ((CPerlObj*)pPerl)->Perl_amagic_call(left, right, method, dir); } #undef Perl_Gv_AMupdate bool -Perl_Gv_AMupdate(void *pPerl, HV* stash) +Perl_Gv_AMupdate(pTHXo_ HV* stash) { return ((CPerlObj*)pPerl)->Perl_Gv_AMupdate(stash); } #undef Perl_append_elem OP* -Perl_append_elem(void *pPerl, I32 optype, OP* head, OP* tail) +Perl_append_elem(pTHXo_ I32 optype, OP* head, OP* tail) { return ((CPerlObj*)pPerl)->Perl_append_elem(optype, head, tail); } #undef Perl_append_list OP* -Perl_append_list(void *pPerl, I32 optype, LISTOP* first, LISTOP* last) +Perl_append_list(pTHXo_ I32 optype, LISTOP* first, LISTOP* last) { return ((CPerlObj*)pPerl)->Perl_append_list(optype, first, last); } #undef Perl_apply I32 -Perl_apply(void *pPerl, I32 type, SV** mark, SV** sp) +Perl_apply(pTHXo_ I32 type, SV** mark, SV** sp) { return ((CPerlObj*)pPerl)->Perl_apply(type, mark, sp); } #undef Perl_assertref void -Perl_assertref(void *pPerl, OP* o) +Perl_assertref(pTHXo_ OP* o) { ((CPerlObj*)pPerl)->Perl_assertref(o); } #undef Perl_avhv_exists_ent bool -Perl_avhv_exists_ent(void *pPerl, AV *ar, SV* keysv, U32 hash) +Perl_avhv_exists_ent(pTHXo_ AV *ar, SV* keysv, U32 hash) { return ((CPerlObj*)pPerl)->Perl_avhv_exists_ent(ar, keysv, hash); } #undef Perl_avhv_fetch_ent SV** -Perl_avhv_fetch_ent(void *pPerl, AV *ar, SV* keysv, I32 lval, U32 hash) +Perl_avhv_fetch_ent(pTHXo_ AV *ar, SV* keysv, I32 lval, U32 hash) { return ((CPerlObj*)pPerl)->Perl_avhv_fetch_ent(ar, keysv, lval, hash); } #undef Perl_avhv_iternext HE* -Perl_avhv_iternext(void *pPerl, AV *ar) +Perl_avhv_iternext(pTHXo_ AV *ar) { return ((CPerlObj*)pPerl)->Perl_avhv_iternext(ar); } #undef Perl_avhv_iterval SV* -Perl_avhv_iterval(void *pPerl, AV *ar, HE* entry) +Perl_avhv_iterval(pTHXo_ AV *ar, HE* entry) { return ((CPerlObj*)pPerl)->Perl_avhv_iterval(ar, entry); } #undef Perl_avhv_keys HV* -Perl_avhv_keys(void *pPerl, AV *ar) +Perl_avhv_keys(pTHXo_ AV *ar) { return ((CPerlObj*)pPerl)->Perl_avhv_keys(ar); } #undef Perl_av_clear void -Perl_av_clear(void *pPerl, AV* ar) +Perl_av_clear(pTHXo_ AV* ar) { ((CPerlObj*)pPerl)->Perl_av_clear(ar); } #undef Perl_av_extend void -Perl_av_extend(void *pPerl, AV* ar, I32 key) +Perl_av_extend(pTHXo_ AV* ar, I32 key) { ((CPerlObj*)pPerl)->Perl_av_extend(ar, key); } #undef Perl_av_fake AV* -Perl_av_fake(void *pPerl, I32 size, SV** svp) +Perl_av_fake(pTHXo_ I32 size, SV** svp) { return ((CPerlObj*)pPerl)->Perl_av_fake(size, svp); } #undef Perl_av_fetch SV** -Perl_av_fetch(void *pPerl, AV* ar, I32 key, I32 lval) +Perl_av_fetch(pTHXo_ AV* ar, I32 key, I32 lval) { return ((CPerlObj*)pPerl)->Perl_av_fetch(ar, key, lval); } #undef Perl_av_fill void -Perl_av_fill(void *pPerl, AV* ar, I32 fill) +Perl_av_fill(pTHXo_ AV* ar, I32 fill) { ((CPerlObj*)pPerl)->Perl_av_fill(ar, fill); } #undef Perl_av_len I32 -Perl_av_len(void *pPerl, AV* ar) +Perl_av_len(pTHXo_ AV* ar) { return ((CPerlObj*)pPerl)->Perl_av_len(ar); } #undef Perl_av_make AV* -Perl_av_make(void *pPerl, I32 size, SV** svp) +Perl_av_make(pTHXo_ I32 size, SV** svp) { return ((CPerlObj*)pPerl)->Perl_av_make(size, svp); } #undef Perl_av_pop SV* -Perl_av_pop(void *pPerl, AV* ar) +Perl_av_pop(pTHXo_ AV* ar) { return ((CPerlObj*)pPerl)->Perl_av_pop(ar); } #undef Perl_av_push void -Perl_av_push(void *pPerl, AV* ar, SV* val) +Perl_av_push(pTHXo_ AV* ar, SV* val) { ((CPerlObj*)pPerl)->Perl_av_push(ar, val); } #undef Perl_av_reify void -Perl_av_reify(void *pPerl, AV* ar) +Perl_av_reify(pTHXo_ AV* ar) { ((CPerlObj*)pPerl)->Perl_av_reify(ar); } #undef Perl_av_shift SV* -Perl_av_shift(void *pPerl, AV* ar) +Perl_av_shift(pTHXo_ AV* ar) { return ((CPerlObj*)pPerl)->Perl_av_shift(ar); } #undef Perl_av_store SV** -Perl_av_store(void *pPerl, AV* ar, I32 key, SV* val) +Perl_av_store(pTHXo_ AV* ar, I32 key, SV* val) { return ((CPerlObj*)pPerl)->Perl_av_store(ar, key, val); } #undef Perl_av_undef void -Perl_av_undef(void *pPerl, AV* ar) +Perl_av_undef(pTHXo_ AV* ar) { ((CPerlObj*)pPerl)->Perl_av_undef(ar); } #undef Perl_av_unshift void -Perl_av_unshift(void *pPerl, AV* ar, I32 num) +Perl_av_unshift(pTHXo_ AV* ar, I32 num) { ((CPerlObj*)pPerl)->Perl_av_unshift(ar, num); } #undef Perl_bind_match OP* -Perl_bind_match(void *pPerl, I32 type, OP* left, OP* pat) +Perl_bind_match(pTHXo_ I32 type, OP* left, OP* pat) { return ((CPerlObj*)pPerl)->Perl_bind_match(type, left, pat); } #undef Perl_block_end OP* -Perl_block_end(void *pPerl, I32 floor, OP* seq) +Perl_block_end(pTHXo_ I32 floor, OP* seq) { return ((CPerlObj*)pPerl)->Perl_block_end(floor, seq); } #undef Perl_block_gimme I32 -Perl_block_gimme(void *pPerl) +Perl_block_gimme(pTHXo) { return ((CPerlObj*)pPerl)->Perl_block_gimme(); } #undef Perl_block_start int -Perl_block_start(void *pPerl, int full) +Perl_block_start(pTHXo_ int full) { return ((CPerlObj*)pPerl)->Perl_block_start(full); } #undef Perl_boot_core_UNIVERSAL void -Perl_boot_core_UNIVERSAL(void *pPerl) +Perl_boot_core_UNIVERSAL(pTHXo) { ((CPerlObj*)pPerl)->Perl_boot_core_UNIVERSAL(); } #undef Perl_call_list void -Perl_call_list(void *pPerl, I32 oldscope, AV* av_list) +Perl_call_list(pTHXo_ I32 oldscope, AV* av_list) { ((CPerlObj*)pPerl)->Perl_call_list(oldscope, av_list); } #undef Perl_cando I32 -Perl_cando(void *pPerl, I32 bit, I32 effective, Stat_t* statbufp) +Perl_cando(pTHXo_ I32 bit, I32 effective, Stat_t* statbufp) { return ((CPerlObj*)pPerl)->Perl_cando(bit, effective, statbufp); } #undef Perl_cast_ulong U32 -Perl_cast_ulong(void *pPerl, NV f) +Perl_cast_ulong(pTHXo_ NV f) { return ((CPerlObj*)pPerl)->Perl_cast_ulong(f); } #undef Perl_cast_i32 I32 -Perl_cast_i32(void *pPerl, NV f) +Perl_cast_i32(pTHXo_ NV f) { return ((CPerlObj*)pPerl)->Perl_cast_i32(f); } #undef Perl_cast_iv IV -Perl_cast_iv(void *pPerl, NV f) +Perl_cast_iv(pTHXo_ NV f) { return ((CPerlObj*)pPerl)->Perl_cast_iv(f); } #undef Perl_cast_uv UV -Perl_cast_uv(void *pPerl, NV f) +Perl_cast_uv(pTHXo_ NV f) { return ((CPerlObj*)pPerl)->Perl_cast_uv(f); } @@ -290,7 +297,7 @@ Perl_cast_uv(void *pPerl, NV f) #undef Perl_my_chsize I32 -Perl_my_chsize(void *pPerl, int fd, Off_t length) +Perl_my_chsize(pTHXo_ int fd, Off_t length) { return ((CPerlObj*)pPerl)->Perl_my_chsize(fd, length); } @@ -299,7 +306,7 @@ Perl_my_chsize(void *pPerl, int fd, Off_t length) #undef Perl_condpair_magic MAGIC* -Perl_condpair_magic(void *pPerl, SV *sv) +Perl_condpair_magic(pTHXo_ SV *sv) { return ((CPerlObj*)pPerl)->Perl_condpair_magic(sv); } @@ -307,219 +314,405 @@ Perl_condpair_magic(void *pPerl, SV *sv) #undef Perl_convert OP* -Perl_convert(void *pPerl, I32 optype, I32 flags, OP* o) +Perl_convert(pTHXo_ I32 optype, I32 flags, OP* o) { return ((CPerlObj*)pPerl)->Perl_convert(optype, flags, o); } + +#undef Perl_croak +void +Perl_croak(pTHXo_ const char* pat) +{ + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_vcroak(pat, &args); + va_end(args); +} + +#undef Perl_vcroak +void +Perl_vcroak(pTHXo_ const char* pat, va_list* args) +{ + ((CPerlObj*)pPerl)->Perl_vcroak(pat, args); +} #if defined(PERL_IMPLICIT_CONTEXT) + +#undef Perl_croak_nocontext +void +Perl_croak_nocontext(const char* pat) +{ + dTHXo; + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_vcroak(pat, &args); + va_end(args); +} + +#undef Perl_die_nocontext +OP* +Perl_die_nocontext(const char* pat) +{ + dTHXo; + OP* retval; + va_list args; + va_start(args, pat); + retval = ((CPerlObj*)pPerl)->Perl_vdie(pat, &args); + va_end(args); + return retval; + +} + +#undef Perl_deb_nocontext +void +Perl_deb_nocontext(const char* pat) +{ + dTHXo; + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_vdeb(pat, &args); + va_end(args); +} + +#undef Perl_form_nocontext +char* +Perl_form_nocontext(const char* pat) +{ + dTHXo; + char* retval; + va_list args; + va_start(args, pat); + retval = ((CPerlObj*)pPerl)->Perl_vform(pat, &args); + va_end(args); + return retval; + +} + +#undef Perl_warn_nocontext +void +Perl_warn_nocontext(const char* pat) +{ + dTHXo; + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_vwarn(pat, &args); + va_end(args); +} + +#undef Perl_warner_nocontext +void +Perl_warner_nocontext(U32 err, const char* pat) +{ + dTHXo; + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_vwarner(err, pat, &args); + va_end(args); +} + +#undef Perl_newSVpvf_nocontext +SV* +Perl_newSVpvf_nocontext(const char* pat) +{ + dTHXo; + SV* retval; + va_list args; + va_start(args, pat); + retval = ((CPerlObj*)pPerl)->Perl_vnewSVpvf(pat, &args); + va_end(args); + return retval; + +} + +#undef Perl_sv_catpvf_nocontext +void +Perl_sv_catpvf_nocontext(SV* sv, const char* pat) +{ + dTHXo; + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_sv_vcatpvf(sv, pat, &args); + va_end(args); +} + +#undef Perl_sv_setpvf_nocontext +void +Perl_sv_setpvf_nocontext(SV* sv, const char* pat) +{ + dTHXo; + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_sv_vsetpvf(sv, pat, &args); + va_end(args); +} + +#undef Perl_sv_catpvf_mg_nocontext +void +Perl_sv_catpvf_mg_nocontext(SV* sv, const char* pat) +{ + dTHXo; + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_sv_vcatpvf_mg(sv, pat, &args); + va_end(args); +} + +#undef Perl_sv_setpvf_mg_nocontext +void +Perl_sv_setpvf_mg_nocontext(SV* sv, const char* pat) +{ + dTHXo; + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_sv_vsetpvf_mg(sv, pat, &args); + va_end(args); +} + +#undef Perl_fprintf_nocontext #endif #undef Perl_cv_ckproto void -Perl_cv_ckproto(void *pPerl, CV* cv, GV* gv, char* p) +Perl_cv_ckproto(pTHXo_ CV* cv, GV* gv, char* p) { ((CPerlObj*)pPerl)->Perl_cv_ckproto(cv, gv, p); } #undef Perl_cv_clone CV* -Perl_cv_clone(void *pPerl, CV* proto) +Perl_cv_clone(pTHXo_ CV* proto) { return ((CPerlObj*)pPerl)->Perl_cv_clone(proto); } #undef Perl_cv_const_sv SV* -Perl_cv_const_sv(void *pPerl, CV* cv) +Perl_cv_const_sv(pTHXo_ CV* cv) { return ((CPerlObj*)pPerl)->Perl_cv_const_sv(cv); } #undef Perl_op_const_sv SV* -Perl_op_const_sv(void *pPerl, OP* o, CV* cv) +Perl_op_const_sv(pTHXo_ OP* o, CV* cv) { return ((CPerlObj*)pPerl)->Perl_op_const_sv(o, cv); } #undef Perl_cv_undef void -Perl_cv_undef(void *pPerl, CV* cv) +Perl_cv_undef(pTHXo_ CV* cv) { ((CPerlObj*)pPerl)->Perl_cv_undef(cv); } #undef Perl_cx_dump void -Perl_cx_dump(void *pPerl, PERL_CONTEXT* cs) +Perl_cx_dump(pTHXo_ PERL_CONTEXT* cs) { ((CPerlObj*)pPerl)->Perl_cx_dump(cs); } #undef Perl_filter_add SV* -Perl_filter_add(void *pPerl, filter_t funcp, SV* datasv) +Perl_filter_add(pTHXo_ filter_t funcp, SV* datasv) { return ((CPerlObj*)pPerl)->Perl_filter_add(funcp, datasv); } #undef Perl_filter_del void -Perl_filter_del(void *pPerl, filter_t funcp) +Perl_filter_del(pTHXo_ filter_t funcp) { ((CPerlObj*)pPerl)->Perl_filter_del(funcp); } #undef Perl_filter_read I32 -Perl_filter_read(void *pPerl, int idx, SV* buffer, int maxlen) +Perl_filter_read(pTHXo_ int idx, SV* buffer, int maxlen) { return ((CPerlObj*)pPerl)->Perl_filter_read(idx, buffer, maxlen); } #undef Perl_get_op_descs char** -Perl_get_op_descs(void *pPerl) +Perl_get_op_descs(pTHXo) { return ((CPerlObj*)pPerl)->Perl_get_op_descs(); } #undef Perl_get_op_names char** -Perl_get_op_names(void *pPerl) +Perl_get_op_names(pTHXo) { return ((CPerlObj*)pPerl)->Perl_get_op_names(); } #undef Perl_get_no_modify char* -Perl_get_no_modify(void *pPerl) +Perl_get_no_modify(pTHXo) { return ((CPerlObj*)pPerl)->Perl_get_no_modify(); } #undef Perl_get_opargs U32* -Perl_get_opargs(void *pPerl) +Perl_get_opargs(pTHXo) { return ((CPerlObj*)pPerl)->Perl_get_opargs(); } #undef Perl_get_ppaddr PPADDR_t* -Perl_get_ppaddr(void *pPerl) +Perl_get_ppaddr(pTHXo) { return ((CPerlObj*)pPerl)->Perl_get_ppaddr(); } #undef Perl_cxinc I32 -Perl_cxinc(void *pPerl) +Perl_cxinc(pTHXo) { return ((CPerlObj*)pPerl)->Perl_cxinc(); } +#undef Perl_deb +void +Perl_deb(pTHXo_ const char* pat) +{ + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_vdeb(pat, &args); + va_end(args); +} + +#undef Perl_vdeb +void +Perl_vdeb(pTHXo_ const char* pat, va_list* args) +{ + ((CPerlObj*)pPerl)->Perl_vdeb(pat, args); +} + #undef Perl_deb_growlevel void -Perl_deb_growlevel(void *pPerl) +Perl_deb_growlevel(pTHXo) { ((CPerlObj*)pPerl)->Perl_deb_growlevel(); } #undef Perl_debprofdump void -Perl_debprofdump(void *pPerl) +Perl_debprofdump(pTHXo) { ((CPerlObj*)pPerl)->Perl_debprofdump(); } #undef Perl_debop I32 -Perl_debop(void *pPerl, OP* o) +Perl_debop(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_debop(o); } #undef Perl_debstack I32 -Perl_debstack(void *pPerl) +Perl_debstack(pTHXo) { return ((CPerlObj*)pPerl)->Perl_debstack(); } #undef Perl_debstackptrs I32 -Perl_debstackptrs(void *pPerl) +Perl_debstackptrs(pTHXo) { return ((CPerlObj*)pPerl)->Perl_debstackptrs(); } #undef Perl_delimcpy char* -Perl_delimcpy(void *pPerl, char* to, char* toend, char* from, char* fromend, int delim, I32* retlen) +Perl_delimcpy(pTHXo_ char* to, char* toend, char* from, char* fromend, int delim, I32* retlen) { return ((CPerlObj*)pPerl)->Perl_delimcpy(to, toend, from, fromend, delim, retlen); } #undef Perl_deprecate void -Perl_deprecate(void *pPerl, char* s) +Perl_deprecate(pTHXo_ char* s) { ((CPerlObj*)pPerl)->Perl_deprecate(s); } +#undef Perl_die +OP* +Perl_die(pTHXo_ const char* pat) +{ + OP* retval; + va_list args; + va_start(args, pat); + retval = ((CPerlObj*)pPerl)->Perl_vdie(pat, &args); + va_end(args); + return retval; + +} + +#undef Perl_vdie +OP* +Perl_vdie(pTHXo_ const char* pat, va_list* args) +{ + return ((CPerlObj*)pPerl)->Perl_vdie(pat, args); +} + #undef Perl_die_where OP* -Perl_die_where(void *pPerl, char* message, STRLEN msglen) +Perl_die_where(pTHXo_ char* message, STRLEN msglen) { return ((CPerlObj*)pPerl)->Perl_die_where(message, msglen); } #undef Perl_dounwind void -Perl_dounwind(void *pPerl, I32 cxix) +Perl_dounwind(pTHXo_ I32 cxix) { ((CPerlObj*)pPerl)->Perl_dounwind(cxix); } #undef Perl_do_aexec bool -Perl_do_aexec(void *pPerl, SV* really, SV** mark, SV** sp) +Perl_do_aexec(pTHXo_ SV* really, SV** mark, SV** sp) { return ((CPerlObj*)pPerl)->Perl_do_aexec(really, mark, sp); } #undef Perl_do_binmode int -Perl_do_binmode(void *pPerl, PerlIO *fp, int iotype, int flag) +Perl_do_binmode(pTHXo_ PerlIO *fp, int iotype, int flag) { return ((CPerlObj*)pPerl)->Perl_do_binmode(fp, iotype, flag); } #undef Perl_do_chop void -Perl_do_chop(void *pPerl, SV* asv, SV* sv) +Perl_do_chop(pTHXo_ SV* asv, SV* sv) { ((CPerlObj*)pPerl)->Perl_do_chop(asv, sv); } #undef Perl_do_close bool -Perl_do_close(void *pPerl, GV* gv, bool not_implicit) +Perl_do_close(pTHXo_ GV* gv, bool not_implicit) { return ((CPerlObj*)pPerl)->Perl_do_close(gv, not_implicit); } #undef Perl_do_eof bool -Perl_do_eof(void *pPerl, GV* gv) +Perl_do_eof(pTHXo_ GV* gv) { return ((CPerlObj*)pPerl)->Perl_do_eof(gv); } #undef Perl_do_exec bool -Perl_do_exec(void *pPerl, char* cmd) +Perl_do_exec(pTHXo_ char* cmd) { return ((CPerlObj*)pPerl)->Perl_do_exec(cmd); } @@ -527,7 +720,7 @@ Perl_do_exec(void *pPerl, char* cmd) #undef Perl_do_exec3 bool -Perl_do_exec3(void *pPerl, char* cmd, int fd, int flag) +Perl_do_exec3(pTHXo_ char* cmd, int fd, int flag) { return ((CPerlObj*)pPerl)->Perl_do_exec3(cmd, fd, flag); } @@ -535,7 +728,7 @@ Perl_do_exec3(void *pPerl, char* cmd, int fd, int flag) #undef Perl_do_execfree void -Perl_do_execfree(void *pPerl) +Perl_do_execfree(pTHXo) { ((CPerlObj*)pPerl)->Perl_do_execfree(); } @@ -543,42 +736,42 @@ Perl_do_execfree(void *pPerl) #undef Perl_do_ipcctl I32 -Perl_do_ipcctl(void *pPerl, I32 optype, SV** mark, SV** sp) +Perl_do_ipcctl(pTHXo_ I32 optype, SV** mark, SV** sp) { return ((CPerlObj*)pPerl)->Perl_do_ipcctl(optype, mark, sp); } #undef Perl_do_ipcget I32 -Perl_do_ipcget(void *pPerl, I32 optype, SV** mark, SV** sp) +Perl_do_ipcget(pTHXo_ I32 optype, SV** mark, SV** sp) { return ((CPerlObj*)pPerl)->Perl_do_ipcget(optype, mark, sp); } #undef Perl_do_msgrcv I32 -Perl_do_msgrcv(void *pPerl, SV** mark, SV** sp) +Perl_do_msgrcv(pTHXo_ SV** mark, SV** sp) { return ((CPerlObj*)pPerl)->Perl_do_msgrcv(mark, sp); } #undef Perl_do_msgsnd I32 -Perl_do_msgsnd(void *pPerl, SV** mark, SV** sp) +Perl_do_msgsnd(pTHXo_ SV** mark, SV** sp) { return ((CPerlObj*)pPerl)->Perl_do_msgsnd(mark, sp); } #undef Perl_do_semop I32 -Perl_do_semop(void *pPerl, SV** mark, SV** sp) +Perl_do_semop(pTHXo_ SV** mark, SV** sp) { return ((CPerlObj*)pPerl)->Perl_do_semop(mark, sp); } #undef Perl_do_shmio I32 -Perl_do_shmio(void *pPerl, I32 optype, SV** mark, SV** sp) +Perl_do_shmio(pTHXo_ I32 optype, SV** mark, SV** sp) { return ((CPerlObj*)pPerl)->Perl_do_shmio(optype, mark, sp); } @@ -586,126 +779,126 @@ Perl_do_shmio(void *pPerl, I32 optype, SV** mark, SV** sp) #undef Perl_do_join void -Perl_do_join(void *pPerl, SV* sv, SV* del, SV** mark, SV** sp) +Perl_do_join(pTHXo_ SV* sv, SV* del, SV** mark, SV** sp) { ((CPerlObj*)pPerl)->Perl_do_join(sv, del, mark, sp); } #undef Perl_do_kv OP* -Perl_do_kv(void *pPerl) +Perl_do_kv(pTHXo) { return ((CPerlObj*)pPerl)->Perl_do_kv(); } #undef Perl_do_open bool -Perl_do_open(void *pPerl, GV* gv, char* name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO* supplied_fp) +Perl_do_open(pTHXo_ GV* gv, char* name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO* supplied_fp) { return ((CPerlObj*)pPerl)->Perl_do_open(gv, name, len, as_raw, rawmode, rawperm, supplied_fp); } #undef Perl_do_pipe void -Perl_do_pipe(void *pPerl, SV* sv, GV* rgv, GV* wgv) +Perl_do_pipe(pTHXo_ SV* sv, GV* rgv, GV* wgv) { ((CPerlObj*)pPerl)->Perl_do_pipe(sv, rgv, wgv); } #undef Perl_do_print bool -Perl_do_print(void *pPerl, SV* sv, PerlIO* fp) +Perl_do_print(pTHXo_ SV* sv, PerlIO* fp) { return ((CPerlObj*)pPerl)->Perl_do_print(sv, fp); } #undef Perl_do_readline OP* -Perl_do_readline(void *pPerl) +Perl_do_readline(pTHXo) { return ((CPerlObj*)pPerl)->Perl_do_readline(); } #undef Perl_do_chomp I32 -Perl_do_chomp(void *pPerl, SV* sv) +Perl_do_chomp(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_do_chomp(sv); } #undef Perl_do_seek bool -Perl_do_seek(void *pPerl, GV* gv, Off_t pos, int whence) +Perl_do_seek(pTHXo_ GV* gv, Off_t pos, int whence) { return ((CPerlObj*)pPerl)->Perl_do_seek(gv, pos, whence); } #undef Perl_do_sprintf void -Perl_do_sprintf(void *pPerl, SV* sv, I32 len, SV** sarg) +Perl_do_sprintf(pTHXo_ SV* sv, I32 len, SV** sarg) { ((CPerlObj*)pPerl)->Perl_do_sprintf(sv, len, sarg); } #undef Perl_do_sysseek Off_t -Perl_do_sysseek(void *pPerl, GV* gv, Off_t pos, int whence) +Perl_do_sysseek(pTHXo_ GV* gv, Off_t pos, int whence) { return ((CPerlObj*)pPerl)->Perl_do_sysseek(gv, pos, whence); } #undef Perl_do_tell Off_t -Perl_do_tell(void *pPerl, GV* gv) +Perl_do_tell(pTHXo_ GV* gv) { return ((CPerlObj*)pPerl)->Perl_do_tell(gv); } #undef Perl_do_trans I32 -Perl_do_trans(void *pPerl, SV* sv) +Perl_do_trans(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_do_trans(sv); } #undef Perl_do_vecset void -Perl_do_vecset(void *pPerl, SV* sv) +Perl_do_vecset(pTHXo_ SV* sv) { ((CPerlObj*)pPerl)->Perl_do_vecset(sv); } #undef Perl_do_vop void -Perl_do_vop(void *pPerl, I32 optype, SV* sv, SV* left, SV* right) +Perl_do_vop(pTHXo_ I32 optype, SV* sv, SV* left, SV* right) { ((CPerlObj*)pPerl)->Perl_do_vop(optype, sv, left, right); } #undef Perl_dofile OP* -Perl_dofile(void *pPerl, OP* term) +Perl_dofile(pTHXo_ OP* term) { return ((CPerlObj*)pPerl)->Perl_dofile(term); } #undef Perl_dowantarray I32 -Perl_dowantarray(void *pPerl) +Perl_dowantarray(pTHXo) { return ((CPerlObj*)pPerl)->Perl_dowantarray(); } #undef Perl_dump_all void -Perl_dump_all(void *pPerl) +Perl_dump_all(pTHXo) { ((CPerlObj*)pPerl)->Perl_dump_all(); } #undef Perl_dump_eval void -Perl_dump_eval(void *pPerl) +Perl_dump_eval(pTHXo) { ((CPerlObj*)pPerl)->Perl_dump_eval(); } @@ -713,7 +906,7 @@ Perl_dump_eval(void *pPerl) #undef Perl_dump_fds void -Perl_dump_fds(void *pPerl, char* s) +Perl_dump_fds(pTHXo_ char* s) { ((CPerlObj*)pPerl)->Perl_dump_fds(s); } @@ -721,63 +914,63 @@ Perl_dump_fds(void *pPerl, char* s) #undef Perl_dump_form void -Perl_dump_form(void *pPerl, GV* gv) +Perl_dump_form(pTHXo_ GV* gv) { ((CPerlObj*)pPerl)->Perl_dump_form(gv); } #undef Perl_gv_dump void -Perl_gv_dump(void *pPerl, GV* gv) +Perl_gv_dump(pTHXo_ GV* gv) { ((CPerlObj*)pPerl)->Perl_gv_dump(gv); } #undef Perl_op_dump void -Perl_op_dump(void *pPerl, OP* arg) +Perl_op_dump(pTHXo_ OP* arg) { ((CPerlObj*)pPerl)->Perl_op_dump(arg); } #undef Perl_pmop_dump void -Perl_pmop_dump(void *pPerl, PMOP* pm) +Perl_pmop_dump(pTHXo_ PMOP* pm) { ((CPerlObj*)pPerl)->Perl_pmop_dump(pm); } #undef Perl_dump_packsubs void -Perl_dump_packsubs(void *pPerl, HV* stash) +Perl_dump_packsubs(pTHXo_ HV* stash) { ((CPerlObj*)pPerl)->Perl_dump_packsubs(stash); } #undef Perl_dump_sub void -Perl_dump_sub(void *pPerl, GV* gv) +Perl_dump_sub(pTHXo_ GV* gv) { ((CPerlObj*)pPerl)->Perl_dump_sub(gv); } #undef Perl_fbm_compile void -Perl_fbm_compile(void *pPerl, SV* sv, U32 flags) +Perl_fbm_compile(pTHXo_ SV* sv, U32 flags) { ((CPerlObj*)pPerl)->Perl_fbm_compile(sv, flags); } #undef Perl_fbm_instr char* -Perl_fbm_instr(void *pPerl, unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags) +Perl_fbm_instr(pTHXo_ unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags) { return ((CPerlObj*)pPerl)->Perl_fbm_instr(big, bigend, littlesv, flags); } #undef Perl_find_script char* -Perl_find_script(void *pPerl, char *scriptname, bool dosearch, char **search_ext, I32 flags) +Perl_find_script(pTHXo_ char *scriptname, bool dosearch, char **search_ext, I32 flags) { return ((CPerlObj*)pPerl)->Perl_find_script(scriptname, dosearch, search_ext, flags); } @@ -785,7 +978,7 @@ Perl_find_script(void *pPerl, char *scriptname, bool dosearch, char **search_ext #undef Perl_find_threadsv PADOFFSET -Perl_find_threadsv(void *pPerl, const char *name) +Perl_find_threadsv(pTHXo_ const char *name) { return ((CPerlObj*)pPerl)->Perl_find_threadsv(name); } @@ -793,28 +986,48 @@ Perl_find_threadsv(void *pPerl, const char *name) #undef Perl_force_list OP* -Perl_force_list(void *pPerl, OP* arg) +Perl_force_list(pTHXo_ OP* arg) { return ((CPerlObj*)pPerl)->Perl_force_list(arg); } #undef Perl_fold_constants OP* -Perl_fold_constants(void *pPerl, OP* arg) +Perl_fold_constants(pTHXo_ OP* arg) { return ((CPerlObj*)pPerl)->Perl_fold_constants(arg); } +#undef Perl_form +char* +Perl_form(pTHXo_ const char* pat) +{ + char* retval; + va_list args; + va_start(args, pat); + retval = ((CPerlObj*)pPerl)->Perl_vform(pat, &args); + va_end(args); + return retval; + +} + +#undef Perl_vform +char* +Perl_vform(pTHXo_ const char* pat, va_list* args) +{ + return ((CPerlObj*)pPerl)->Perl_vform(pat, args); +} + #undef Perl_free_tmps void -Perl_free_tmps(void *pPerl) +Perl_free_tmps(pTHXo) { ((CPerlObj*)pPerl)->Perl_free_tmps(); } #undef Perl_gen_constant_list OP* -Perl_gen_constant_list(void *pPerl, OP* o) +Perl_gen_constant_list(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_gen_constant_list(o); } @@ -822,7 +1035,7 @@ Perl_gen_constant_list(void *pPerl, OP* o) #undef Perl_getenv_len char* -Perl_getenv_len(void *pPerl, char* key, unsigned long *len) +Perl_getenv_len(pTHXo_ char* key, unsigned long *len) { return ((CPerlObj*)pPerl)->Perl_getenv_len(key, len); } @@ -830,882 +1043,882 @@ Perl_getenv_len(void *pPerl, char* key, unsigned long *len) #undef Perl_gp_free void -Perl_gp_free(void *pPerl, GV* gv) +Perl_gp_free(pTHXo_ GV* gv) { ((CPerlObj*)pPerl)->Perl_gp_free(gv); } #undef Perl_gp_ref GP* -Perl_gp_ref(void *pPerl, GP* gp) +Perl_gp_ref(pTHXo_ GP* gp) { return ((CPerlObj*)pPerl)->Perl_gp_ref(gp); } #undef Perl_gv_AVadd GV* -Perl_gv_AVadd(void *pPerl, GV* gv) +Perl_gv_AVadd(pTHXo_ GV* gv) { return ((CPerlObj*)pPerl)->Perl_gv_AVadd(gv); } #undef Perl_gv_HVadd GV* -Perl_gv_HVadd(void *pPerl, GV* gv) +Perl_gv_HVadd(pTHXo_ GV* gv) { return ((CPerlObj*)pPerl)->Perl_gv_HVadd(gv); } #undef Perl_gv_IOadd GV* -Perl_gv_IOadd(void *pPerl, GV* gv) +Perl_gv_IOadd(pTHXo_ GV* gv) { return ((CPerlObj*)pPerl)->Perl_gv_IOadd(gv); } #undef Perl_gv_autoload4 GV* -Perl_gv_autoload4(void *pPerl, HV* stash, const char* name, STRLEN len, I32 method) +Perl_gv_autoload4(pTHXo_ HV* stash, const char* name, STRLEN len, I32 method) { return ((CPerlObj*)pPerl)->Perl_gv_autoload4(stash, name, len, method); } #undef Perl_gv_check void -Perl_gv_check(void *pPerl, HV* stash) +Perl_gv_check(pTHXo_ HV* stash) { ((CPerlObj*)pPerl)->Perl_gv_check(stash); } #undef Perl_gv_efullname void -Perl_gv_efullname(void *pPerl, SV* sv, GV* gv) +Perl_gv_efullname(pTHXo_ SV* sv, GV* gv) { ((CPerlObj*)pPerl)->Perl_gv_efullname(sv, gv); } #undef Perl_gv_efullname3 void -Perl_gv_efullname3(void *pPerl, SV* sv, GV* gv, const char* prefix) +Perl_gv_efullname3(pTHXo_ SV* sv, GV* gv, const char* prefix) { ((CPerlObj*)pPerl)->Perl_gv_efullname3(sv, gv, prefix); } #undef Perl_gv_fetchfile GV* -Perl_gv_fetchfile(void *pPerl, const char* name) +Perl_gv_fetchfile(pTHXo_ const char* name) { return ((CPerlObj*)pPerl)->Perl_gv_fetchfile(name); } #undef Perl_gv_fetchmeth GV* -Perl_gv_fetchmeth(void *pPerl, HV* stash, const char* name, STRLEN len, I32 level) +Perl_gv_fetchmeth(pTHXo_ HV* stash, const char* name, STRLEN len, I32 level) { return ((CPerlObj*)pPerl)->Perl_gv_fetchmeth(stash, name, len, level); } #undef Perl_gv_fetchmethod GV* -Perl_gv_fetchmethod(void *pPerl, HV* stash, const char* name) +Perl_gv_fetchmethod(pTHXo_ HV* stash, const char* name) { return ((CPerlObj*)pPerl)->Perl_gv_fetchmethod(stash, name); } #undef Perl_gv_fetchmethod_autoload GV* -Perl_gv_fetchmethod_autoload(void *pPerl, HV* stash, const char* name, I32 autoload) +Perl_gv_fetchmethod_autoload(pTHXo_ HV* stash, const char* name, I32 autoload) { return ((CPerlObj*)pPerl)->Perl_gv_fetchmethod_autoload(stash, name, autoload); } #undef Perl_gv_fetchpv GV* -Perl_gv_fetchpv(void *pPerl, const char* name, I32 add, I32 sv_type) +Perl_gv_fetchpv(pTHXo_ const char* name, I32 add, I32 sv_type) { return ((CPerlObj*)pPerl)->Perl_gv_fetchpv(name, add, sv_type); } #undef Perl_gv_fullname void -Perl_gv_fullname(void *pPerl, SV* sv, GV* gv) +Perl_gv_fullname(pTHXo_ SV* sv, GV* gv) { ((CPerlObj*)pPerl)->Perl_gv_fullname(sv, gv); } #undef Perl_gv_fullname3 void -Perl_gv_fullname3(void *pPerl, SV* sv, GV* gv, const char* prefix) +Perl_gv_fullname3(pTHXo_ SV* sv, GV* gv, const char* prefix) { ((CPerlObj*)pPerl)->Perl_gv_fullname3(sv, gv, prefix); } #undef Perl_gv_init void -Perl_gv_init(void *pPerl, GV* gv, HV* stash, const char* name, STRLEN len, int multi) +Perl_gv_init(pTHXo_ GV* gv, HV* stash, const char* name, STRLEN len, int multi) { ((CPerlObj*)pPerl)->Perl_gv_init(gv, stash, name, len, multi); } #undef Perl_gv_stashpv HV* -Perl_gv_stashpv(void *pPerl, const char* name, I32 create) +Perl_gv_stashpv(pTHXo_ const char* name, I32 create) { return ((CPerlObj*)pPerl)->Perl_gv_stashpv(name, create); } #undef Perl_gv_stashpvn HV* -Perl_gv_stashpvn(void *pPerl, const char* name, U32 namelen, I32 create) +Perl_gv_stashpvn(pTHXo_ const char* name, U32 namelen, I32 create) { return ((CPerlObj*)pPerl)->Perl_gv_stashpvn(name, namelen, create); } #undef Perl_gv_stashsv HV* -Perl_gv_stashsv(void *pPerl, SV* sv, I32 create) +Perl_gv_stashsv(pTHXo_ SV* sv, I32 create) { return ((CPerlObj*)pPerl)->Perl_gv_stashsv(sv, create); } #undef Perl_hv_clear void -Perl_hv_clear(void *pPerl, HV* tb) +Perl_hv_clear(pTHXo_ HV* tb) { ((CPerlObj*)pPerl)->Perl_hv_clear(tb); } #undef Perl_hv_delayfree_ent void -Perl_hv_delayfree_ent(void *pPerl, HV* hv, HE* entry) +Perl_hv_delayfree_ent(pTHXo_ HV* hv, HE* entry) { ((CPerlObj*)pPerl)->Perl_hv_delayfree_ent(hv, entry); } #undef Perl_hv_delete SV* -Perl_hv_delete(void *pPerl, HV* tb, const char* key, U32 klen, I32 flags) +Perl_hv_delete(pTHXo_ HV* tb, const char* key, U32 klen, I32 flags) { return ((CPerlObj*)pPerl)->Perl_hv_delete(tb, key, klen, flags); } #undef Perl_hv_delete_ent SV* -Perl_hv_delete_ent(void *pPerl, HV* tb, SV* key, I32 flags, U32 hash) +Perl_hv_delete_ent(pTHXo_ HV* tb, SV* key, I32 flags, U32 hash) { return ((CPerlObj*)pPerl)->Perl_hv_delete_ent(tb, key, flags, hash); } #undef Perl_hv_exists bool -Perl_hv_exists(void *pPerl, HV* tb, const char* key, U32 klen) +Perl_hv_exists(pTHXo_ HV* tb, const char* key, U32 klen) { return ((CPerlObj*)pPerl)->Perl_hv_exists(tb, key, klen); } #undef Perl_hv_exists_ent bool -Perl_hv_exists_ent(void *pPerl, HV* tb, SV* key, U32 hash) +Perl_hv_exists_ent(pTHXo_ HV* tb, SV* key, U32 hash) { return ((CPerlObj*)pPerl)->Perl_hv_exists_ent(tb, key, hash); } #undef Perl_hv_fetch SV** -Perl_hv_fetch(void *pPerl, HV* tb, const char* key, U32 klen, I32 lval) +Perl_hv_fetch(pTHXo_ HV* tb, const char* key, U32 klen, I32 lval) { return ((CPerlObj*)pPerl)->Perl_hv_fetch(tb, key, klen, lval); } #undef Perl_hv_fetch_ent HE* -Perl_hv_fetch_ent(void *pPerl, HV* tb, SV* key, I32 lval, U32 hash) +Perl_hv_fetch_ent(pTHXo_ HV* tb, SV* key, I32 lval, U32 hash) { return ((CPerlObj*)pPerl)->Perl_hv_fetch_ent(tb, key, lval, hash); } #undef Perl_hv_free_ent void -Perl_hv_free_ent(void *pPerl, HV* hv, HE* entry) +Perl_hv_free_ent(pTHXo_ HV* hv, HE* entry) { ((CPerlObj*)pPerl)->Perl_hv_free_ent(hv, entry); } #undef Perl_hv_iterinit I32 -Perl_hv_iterinit(void *pPerl, HV* tb) +Perl_hv_iterinit(pTHXo_ HV* tb) { return ((CPerlObj*)pPerl)->Perl_hv_iterinit(tb); } #undef Perl_hv_iterkey char* -Perl_hv_iterkey(void *pPerl, HE* entry, I32* retlen) +Perl_hv_iterkey(pTHXo_ HE* entry, I32* retlen) { return ((CPerlObj*)pPerl)->Perl_hv_iterkey(entry, retlen); } #undef Perl_hv_iterkeysv SV* -Perl_hv_iterkeysv(void *pPerl, HE* entry) +Perl_hv_iterkeysv(pTHXo_ HE* entry) { return ((CPerlObj*)pPerl)->Perl_hv_iterkeysv(entry); } #undef Perl_hv_iternext HE* -Perl_hv_iternext(void *pPerl, HV* tb) +Perl_hv_iternext(pTHXo_ HV* tb) { return ((CPerlObj*)pPerl)->Perl_hv_iternext(tb); } #undef Perl_hv_iternextsv SV* -Perl_hv_iternextsv(void *pPerl, HV* hv, char** key, I32* retlen) +Perl_hv_iternextsv(pTHXo_ HV* hv, char** key, I32* retlen) { return ((CPerlObj*)pPerl)->Perl_hv_iternextsv(hv, key, retlen); } #undef Perl_hv_iterval SV* -Perl_hv_iterval(void *pPerl, HV* tb, HE* entry) +Perl_hv_iterval(pTHXo_ HV* tb, HE* entry) { return ((CPerlObj*)pPerl)->Perl_hv_iterval(tb, entry); } #undef Perl_hv_ksplit void -Perl_hv_ksplit(void *pPerl, HV* hv, IV newmax) +Perl_hv_ksplit(pTHXo_ HV* hv, IV newmax) { ((CPerlObj*)pPerl)->Perl_hv_ksplit(hv, newmax); } #undef Perl_hv_magic void -Perl_hv_magic(void *pPerl, HV* hv, GV* gv, int how) +Perl_hv_magic(pTHXo_ HV* hv, GV* gv, int how) { ((CPerlObj*)pPerl)->Perl_hv_magic(hv, gv, how); } #undef Perl_hv_store SV** -Perl_hv_store(void *pPerl, HV* tb, const char* key, U32 klen, SV* val, U32 hash) +Perl_hv_store(pTHXo_ HV* tb, const char* key, U32 klen, SV* val, U32 hash) { return ((CPerlObj*)pPerl)->Perl_hv_store(tb, key, klen, val, hash); } #undef Perl_hv_store_ent HE* -Perl_hv_store_ent(void *pPerl, HV* tb, SV* key, SV* val, U32 hash) +Perl_hv_store_ent(pTHXo_ HV* tb, SV* key, SV* val, U32 hash) { return ((CPerlObj*)pPerl)->Perl_hv_store_ent(tb, key, val, hash); } #undef Perl_hv_undef void -Perl_hv_undef(void *pPerl, HV* tb) +Perl_hv_undef(pTHXo_ HV* tb) { ((CPerlObj*)pPerl)->Perl_hv_undef(tb); } #undef Perl_ibcmp I32 -Perl_ibcmp(void *pPerl, const char* a, const char* b, I32 len) +Perl_ibcmp(pTHXo_ const char* a, const char* b, I32 len) { return ((CPerlObj*)pPerl)->Perl_ibcmp(a, b, len); } #undef Perl_ibcmp_locale I32 -Perl_ibcmp_locale(void *pPerl, const char* a, const char* b, I32 len) +Perl_ibcmp_locale(pTHXo_ const char* a, const char* b, I32 len) { return ((CPerlObj*)pPerl)->Perl_ibcmp_locale(a, b, len); } #undef Perl_ingroup I32 -Perl_ingroup(void *pPerl, I32 testgid, I32 effective) +Perl_ingroup(pTHXo_ I32 testgid, I32 effective) { return ((CPerlObj*)pPerl)->Perl_ingroup(testgid, effective); } #undef Perl_init_stacks void -Perl_init_stacks(void *pPerl) +Perl_init_stacks(pTHXo) { ((CPerlObj*)pPerl)->Perl_init_stacks(); } #undef Perl_intro_my U32 -Perl_intro_my(void *pPerl) +Perl_intro_my(pTHXo) { return ((CPerlObj*)pPerl)->Perl_intro_my(); } #undef Perl_instr char* -Perl_instr(void *pPerl, const char* big, const char* little) +Perl_instr(pTHXo_ const char* big, const char* little) { return ((CPerlObj*)pPerl)->Perl_instr(big, little); } #undef Perl_io_close bool -Perl_io_close(void *pPerl, IO* io) +Perl_io_close(pTHXo_ IO* io) { return ((CPerlObj*)pPerl)->Perl_io_close(io); } #undef Perl_invert OP* -Perl_invert(void *pPerl, OP* cmd) +Perl_invert(pTHXo_ OP* cmd) { return ((CPerlObj*)pPerl)->Perl_invert(cmd); } #undef Perl_is_uni_alnum bool -Perl_is_uni_alnum(void *pPerl, U32 c) +Perl_is_uni_alnum(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_alnum(c); } #undef Perl_is_uni_alnumc bool -Perl_is_uni_alnumc(void *pPerl, U32 c) +Perl_is_uni_alnumc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_alnumc(c); } #undef Perl_is_uni_idfirst bool -Perl_is_uni_idfirst(void *pPerl, U32 c) +Perl_is_uni_idfirst(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_idfirst(c); } #undef Perl_is_uni_alpha bool -Perl_is_uni_alpha(void *pPerl, U32 c) +Perl_is_uni_alpha(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_alpha(c); } #undef Perl_is_uni_ascii bool -Perl_is_uni_ascii(void *pPerl, U32 c) +Perl_is_uni_ascii(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_ascii(c); } #undef Perl_is_uni_space bool -Perl_is_uni_space(void *pPerl, U32 c) +Perl_is_uni_space(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_space(c); } #undef Perl_is_uni_cntrl bool -Perl_is_uni_cntrl(void *pPerl, U32 c) +Perl_is_uni_cntrl(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_cntrl(c); } #undef Perl_is_uni_graph bool -Perl_is_uni_graph(void *pPerl, U32 c) +Perl_is_uni_graph(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_graph(c); } #undef Perl_is_uni_digit bool -Perl_is_uni_digit(void *pPerl, U32 c) +Perl_is_uni_digit(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_digit(c); } #undef Perl_is_uni_upper bool -Perl_is_uni_upper(void *pPerl, U32 c) +Perl_is_uni_upper(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_upper(c); } #undef Perl_is_uni_lower bool -Perl_is_uni_lower(void *pPerl, U32 c) +Perl_is_uni_lower(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_lower(c); } #undef Perl_is_uni_print bool -Perl_is_uni_print(void *pPerl, U32 c) +Perl_is_uni_print(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_print(c); } #undef Perl_is_uni_punct bool -Perl_is_uni_punct(void *pPerl, U32 c) +Perl_is_uni_punct(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_punct(c); } #undef Perl_is_uni_xdigit bool -Perl_is_uni_xdigit(void *pPerl, U32 c) +Perl_is_uni_xdigit(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_xdigit(c); } #undef Perl_to_uni_upper U32 -Perl_to_uni_upper(void *pPerl, U32 c) +Perl_to_uni_upper(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_to_uni_upper(c); } #undef Perl_to_uni_title U32 -Perl_to_uni_title(void *pPerl, U32 c) +Perl_to_uni_title(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_to_uni_title(c); } #undef Perl_to_uni_lower U32 -Perl_to_uni_lower(void *pPerl, U32 c) +Perl_to_uni_lower(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_to_uni_lower(c); } #undef Perl_is_uni_alnum_lc bool -Perl_is_uni_alnum_lc(void *pPerl, U32 c) +Perl_is_uni_alnum_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_alnum_lc(c); } #undef Perl_is_uni_alnumc_lc bool -Perl_is_uni_alnumc_lc(void *pPerl, U32 c) +Perl_is_uni_alnumc_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_alnumc_lc(c); } #undef Perl_is_uni_idfirst_lc bool -Perl_is_uni_idfirst_lc(void *pPerl, U32 c) +Perl_is_uni_idfirst_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_idfirst_lc(c); } #undef Perl_is_uni_alpha_lc bool -Perl_is_uni_alpha_lc(void *pPerl, U32 c) +Perl_is_uni_alpha_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_alpha_lc(c); } #undef Perl_is_uni_ascii_lc bool -Perl_is_uni_ascii_lc(void *pPerl, U32 c) +Perl_is_uni_ascii_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_ascii_lc(c); } #undef Perl_is_uni_space_lc bool -Perl_is_uni_space_lc(void *pPerl, U32 c) +Perl_is_uni_space_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_space_lc(c); } #undef Perl_is_uni_cntrl_lc bool -Perl_is_uni_cntrl_lc(void *pPerl, U32 c) +Perl_is_uni_cntrl_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_cntrl_lc(c); } #undef Perl_is_uni_graph_lc bool -Perl_is_uni_graph_lc(void *pPerl, U32 c) +Perl_is_uni_graph_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_graph_lc(c); } #undef Perl_is_uni_digit_lc bool -Perl_is_uni_digit_lc(void *pPerl, U32 c) +Perl_is_uni_digit_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_digit_lc(c); } #undef Perl_is_uni_upper_lc bool -Perl_is_uni_upper_lc(void *pPerl, U32 c) +Perl_is_uni_upper_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_upper_lc(c); } #undef Perl_is_uni_lower_lc bool -Perl_is_uni_lower_lc(void *pPerl, U32 c) +Perl_is_uni_lower_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_lower_lc(c); } #undef Perl_is_uni_print_lc bool -Perl_is_uni_print_lc(void *pPerl, U32 c) +Perl_is_uni_print_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_print_lc(c); } #undef Perl_is_uni_punct_lc bool -Perl_is_uni_punct_lc(void *pPerl, U32 c) +Perl_is_uni_punct_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_punct_lc(c); } #undef Perl_is_uni_xdigit_lc bool -Perl_is_uni_xdigit_lc(void *pPerl, U32 c) +Perl_is_uni_xdigit_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_is_uni_xdigit_lc(c); } #undef Perl_to_uni_upper_lc U32 -Perl_to_uni_upper_lc(void *pPerl, U32 c) +Perl_to_uni_upper_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_to_uni_upper_lc(c); } #undef Perl_to_uni_title_lc U32 -Perl_to_uni_title_lc(void *pPerl, U32 c) +Perl_to_uni_title_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_to_uni_title_lc(c); } #undef Perl_to_uni_lower_lc U32 -Perl_to_uni_lower_lc(void *pPerl, U32 c) +Perl_to_uni_lower_lc(pTHXo_ U32 c) { return ((CPerlObj*)pPerl)->Perl_to_uni_lower_lc(c); } #undef Perl_is_utf8_alnum bool -Perl_is_utf8_alnum(void *pPerl, U8 *p) +Perl_is_utf8_alnum(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_is_utf8_alnum(p); } #undef Perl_is_utf8_alnumc bool -Perl_is_utf8_alnumc(void *pPerl, U8 *p) +Perl_is_utf8_alnumc(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_is_utf8_alnumc(p); } #undef Perl_is_utf8_idfirst bool -Perl_is_utf8_idfirst(void *pPerl, U8 *p) +Perl_is_utf8_idfirst(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_is_utf8_idfirst(p); } #undef Perl_is_utf8_alpha bool -Perl_is_utf8_alpha(void *pPerl, U8 *p) +Perl_is_utf8_alpha(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_is_utf8_alpha(p); } #undef Perl_is_utf8_ascii bool -Perl_is_utf8_ascii(void *pPerl, U8 *p) +Perl_is_utf8_ascii(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_is_utf8_ascii(p); } #undef Perl_is_utf8_space bool -Perl_is_utf8_space(void *pPerl, U8 *p) +Perl_is_utf8_space(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_is_utf8_space(p); } #undef Perl_is_utf8_cntrl bool -Perl_is_utf8_cntrl(void *pPerl, U8 *p) +Perl_is_utf8_cntrl(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_is_utf8_cntrl(p); } #undef Perl_is_utf8_digit bool -Perl_is_utf8_digit(void *pPerl, U8 *p) +Perl_is_utf8_digit(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_is_utf8_digit(p); } #undef Perl_is_utf8_graph bool -Perl_is_utf8_graph(void *pPerl, U8 *p) +Perl_is_utf8_graph(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_is_utf8_graph(p); } #undef Perl_is_utf8_upper bool -Perl_is_utf8_upper(void *pPerl, U8 *p) +Perl_is_utf8_upper(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_is_utf8_upper(p); } #undef Perl_is_utf8_lower bool -Perl_is_utf8_lower(void *pPerl, U8 *p) +Perl_is_utf8_lower(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_is_utf8_lower(p); } #undef Perl_is_utf8_print bool -Perl_is_utf8_print(void *pPerl, U8 *p) +Perl_is_utf8_print(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_is_utf8_print(p); } #undef Perl_is_utf8_punct bool -Perl_is_utf8_punct(void *pPerl, U8 *p) +Perl_is_utf8_punct(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_is_utf8_punct(p); } #undef Perl_is_utf8_xdigit bool -Perl_is_utf8_xdigit(void *pPerl, U8 *p) +Perl_is_utf8_xdigit(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_is_utf8_xdigit(p); } #undef Perl_is_utf8_mark bool -Perl_is_utf8_mark(void *pPerl, U8 *p) +Perl_is_utf8_mark(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_is_utf8_mark(p); } #undef Perl_jmaybe OP* -Perl_jmaybe(void *pPerl, OP* arg) +Perl_jmaybe(pTHXo_ OP* arg) { return ((CPerlObj*)pPerl)->Perl_jmaybe(arg); } #undef Perl_keyword I32 -Perl_keyword(void *pPerl, char* d, I32 len) +Perl_keyword(pTHXo_ char* d, I32 len) { return ((CPerlObj*)pPerl)->Perl_keyword(d, len); } #undef Perl_leave_scope void -Perl_leave_scope(void *pPerl, I32 base) +Perl_leave_scope(pTHXo_ I32 base) { ((CPerlObj*)pPerl)->Perl_leave_scope(base); } #undef Perl_lex_end void -Perl_lex_end(void *pPerl) +Perl_lex_end(pTHXo) { ((CPerlObj*)pPerl)->Perl_lex_end(); } #undef Perl_lex_start void -Perl_lex_start(void *pPerl, SV* line) +Perl_lex_start(pTHXo_ SV* line) { ((CPerlObj*)pPerl)->Perl_lex_start(line); } #undef Perl_linklist OP* -Perl_linklist(void *pPerl, OP* o) +Perl_linklist(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_linklist(o); } #undef Perl_list OP* -Perl_list(void *pPerl, OP* o) +Perl_list(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_list(o); } #undef Perl_listkids OP* -Perl_listkids(void *pPerl, OP* o) +Perl_listkids(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_listkids(o); } #undef Perl_localize OP* -Perl_localize(void *pPerl, OP* arg, I32 lexical) +Perl_localize(pTHXo_ OP* arg, I32 lexical) { return ((CPerlObj*)pPerl)->Perl_localize(arg, lexical); } #undef Perl_looks_like_number I32 -Perl_looks_like_number(void *pPerl, SV* sv) +Perl_looks_like_number(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_looks_like_number(sv); } #undef Perl_magic_clearenv int -Perl_magic_clearenv(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_clearenv(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_clearenv(sv, mg); } #undef Perl_magic_clear_all_env int -Perl_magic_clear_all_env(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_clear_all_env(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_clear_all_env(sv, mg); } #undef Perl_magic_clearpack int -Perl_magic_clearpack(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_clearpack(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_clearpack(sv, mg); } #undef Perl_magic_clearsig int -Perl_magic_clearsig(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_clearsig(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_clearsig(sv, mg); } #undef Perl_magic_existspack int -Perl_magic_existspack(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_existspack(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_existspack(sv, mg); } #undef Perl_magic_freeregexp int -Perl_magic_freeregexp(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_freeregexp(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_freeregexp(sv, mg); } #undef Perl_magic_get int -Perl_magic_get(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_get(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_get(sv, mg); } #undef Perl_magic_getarylen int -Perl_magic_getarylen(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_getarylen(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_getarylen(sv, mg); } #undef Perl_magic_getdefelem int -Perl_magic_getdefelem(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_getdefelem(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_getdefelem(sv, mg); } #undef Perl_magic_getglob int -Perl_magic_getglob(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_getglob(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_getglob(sv, mg); } #undef Perl_magic_getnkeys int -Perl_magic_getnkeys(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_getnkeys(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_getnkeys(sv, mg); } #undef Perl_magic_getpack int -Perl_magic_getpack(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_getpack(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_getpack(sv, mg); } #undef Perl_magic_getpos int -Perl_magic_getpos(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_getpos(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_getpos(sv, mg); } #undef Perl_magic_getsig int -Perl_magic_getsig(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_getsig(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_getsig(sv, mg); } #undef Perl_magic_getsubstr int -Perl_magic_getsubstr(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_getsubstr(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_getsubstr(sv, mg); } #undef Perl_magic_gettaint int -Perl_magic_gettaint(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_gettaint(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_gettaint(sv, mg); } #undef Perl_magic_getuvar int -Perl_magic_getuvar(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_getuvar(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_getuvar(sv, mg); } #undef Perl_magic_getvec int -Perl_magic_getvec(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_getvec(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_getvec(sv, mg); } #undef Perl_magic_len U32 -Perl_magic_len(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_len(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_len(sv, mg); } @@ -1713,7 +1926,7 @@ Perl_magic_len(void *pPerl, SV* sv, MAGIC* mg) #undef Perl_magic_mutexfree int -Perl_magic_mutexfree(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_mutexfree(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_mutexfree(sv, mg); } @@ -1721,56 +1934,56 @@ Perl_magic_mutexfree(void *pPerl, SV* sv, MAGIC* mg) #undef Perl_magic_nextpack int -Perl_magic_nextpack(void *pPerl, SV* sv, MAGIC* mg, SV* key) +Perl_magic_nextpack(pTHXo_ SV* sv, MAGIC* mg, SV* key) { return ((CPerlObj*)pPerl)->Perl_magic_nextpack(sv, mg, key); } #undef Perl_magic_regdata_cnt U32 -Perl_magic_regdata_cnt(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_regdata_cnt(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_regdata_cnt(sv, mg); } #undef Perl_magic_regdatum_get int -Perl_magic_regdatum_get(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_regdatum_get(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_regdatum_get(sv, mg); } #undef Perl_magic_set int -Perl_magic_set(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_set(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_set(sv, mg); } #undef Perl_magic_setamagic int -Perl_magic_setamagic(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setamagic(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setamagic(sv, mg); } #undef Perl_magic_setarylen int -Perl_magic_setarylen(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setarylen(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setarylen(sv, mg); } #undef Perl_magic_setbm int -Perl_magic_setbm(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setbm(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setbm(sv, mg); } #undef Perl_magic_setdbline int -Perl_magic_setdbline(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setdbline(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setdbline(sv, mg); } @@ -1778,7 +1991,7 @@ Perl_magic_setdbline(void *pPerl, SV* sv, MAGIC* mg) #undef Perl_magic_setcollxfrm int -Perl_magic_setcollxfrm(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setcollxfrm(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setcollxfrm(sv, mg); } @@ -1786,126 +1999,126 @@ Perl_magic_setcollxfrm(void *pPerl, SV* sv, MAGIC* mg) #undef Perl_magic_setdefelem int -Perl_magic_setdefelem(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setdefelem(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setdefelem(sv, mg); } #undef Perl_magic_setenv int -Perl_magic_setenv(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setenv(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setenv(sv, mg); } #undef Perl_magic_setfm int -Perl_magic_setfm(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setfm(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setfm(sv, mg); } #undef Perl_magic_setisa int -Perl_magic_setisa(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setisa(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setisa(sv, mg); } #undef Perl_magic_setglob int -Perl_magic_setglob(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setglob(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setglob(sv, mg); } #undef Perl_magic_setmglob int -Perl_magic_setmglob(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setmglob(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setmglob(sv, mg); } #undef Perl_magic_setnkeys int -Perl_magic_setnkeys(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setnkeys(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setnkeys(sv, mg); } #undef Perl_magic_setpack int -Perl_magic_setpack(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setpack(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setpack(sv, mg); } #undef Perl_magic_setpos int -Perl_magic_setpos(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setpos(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setpos(sv, mg); } #undef Perl_magic_setsig int -Perl_magic_setsig(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setsig(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setsig(sv, mg); } #undef Perl_magic_setsubstr int -Perl_magic_setsubstr(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setsubstr(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setsubstr(sv, mg); } #undef Perl_magic_settaint int -Perl_magic_settaint(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_settaint(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_settaint(sv, mg); } #undef Perl_magic_setuvar int -Perl_magic_setuvar(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setuvar(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setuvar(sv, mg); } #undef Perl_magic_setvec int -Perl_magic_setvec(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_setvec(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_setvec(sv, mg); } #undef Perl_magic_set_all_env int -Perl_magic_set_all_env(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_set_all_env(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_set_all_env(sv, mg); } #undef Perl_magic_sizepack U32 -Perl_magic_sizepack(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_sizepack(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_sizepack(sv, mg); } #undef Perl_magic_wipepack int -Perl_magic_wipepack(void *pPerl, SV* sv, MAGIC* mg) +Perl_magic_wipepack(pTHXo_ SV* sv, MAGIC* mg) { return ((CPerlObj*)pPerl)->Perl_magic_wipepack(sv, mg); } #undef Perl_magicname void -Perl_magicname(void *pPerl, char* sym, char* name, I32 namlen) +Perl_magicname(pTHXo_ char* sym, char* name, I32 namlen) { ((CPerlObj*)pPerl)->Perl_magicname(sym, name, namlen); } @@ -1913,15 +2126,16 @@ Perl_magicname(void *pPerl, char* sym, char* name, I32 namlen) #undef Perl_malloced_size MEM_SIZE -Perl_malloced_size(void *pPerl, void *p) +Perl_malloced_size(void *p) { + dTHXo; return ((CPerlObj*)pPerl)->Perl_malloced_size(p); } #endif #undef Perl_markstack_grow void -Perl_markstack_grow(void *pPerl) +Perl_markstack_grow(pTHXo) { ((CPerlObj*)pPerl)->Perl_markstack_grow(); } @@ -1929,7 +2143,7 @@ Perl_markstack_grow(void *pPerl) #undef Perl_mem_collxfrm char* -Perl_mem_collxfrm(void *pPerl, const char* s, STRLEN len, STRLEN* xlen) +Perl_mem_collxfrm(pTHXo_ const char* s, STRLEN len, STRLEN* xlen) { return ((CPerlObj*)pPerl)->Perl_mem_collxfrm(s, len, xlen); } @@ -1937,98 +2151,98 @@ Perl_mem_collxfrm(void *pPerl, const char* s, STRLEN len, STRLEN* xlen) #undef Perl_mess SV* -Perl_mess(void *pPerl, const char* pat, va_list* args) +Perl_mess(pTHXo_ const char* pat, va_list* args) { return ((CPerlObj*)pPerl)->Perl_mess(pat, args); } #undef Perl_mg_clear int -Perl_mg_clear(void *pPerl, SV* sv) +Perl_mg_clear(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_mg_clear(sv); } #undef Perl_mg_copy int -Perl_mg_copy(void *pPerl, SV* sv, SV* nsv, const char* key, I32 klen) +Perl_mg_copy(pTHXo_ SV* sv, SV* nsv, const char* key, I32 klen) { return ((CPerlObj*)pPerl)->Perl_mg_copy(sv, nsv, key, klen); } #undef Perl_mg_find MAGIC* -Perl_mg_find(void *pPerl, SV* sv, int type) +Perl_mg_find(pTHXo_ SV* sv, int type) { return ((CPerlObj*)pPerl)->Perl_mg_find(sv, type); } #undef Perl_mg_free int -Perl_mg_free(void *pPerl, SV* sv) +Perl_mg_free(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_mg_free(sv); } #undef Perl_mg_get int -Perl_mg_get(void *pPerl, SV* sv) +Perl_mg_get(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_mg_get(sv); } #undef Perl_mg_length U32 -Perl_mg_length(void *pPerl, SV* sv) +Perl_mg_length(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_mg_length(sv); } #undef Perl_mg_magical void -Perl_mg_magical(void *pPerl, SV* sv) +Perl_mg_magical(pTHXo_ SV* sv) { ((CPerlObj*)pPerl)->Perl_mg_magical(sv); } #undef Perl_mg_set int -Perl_mg_set(void *pPerl, SV* sv) +Perl_mg_set(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_mg_set(sv); } #undef Perl_mg_size I32 -Perl_mg_size(void *pPerl, SV* sv) +Perl_mg_size(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_mg_size(sv); } #undef Perl_mod OP* -Perl_mod(void *pPerl, OP* o, I32 type) +Perl_mod(pTHXo_ OP* o, I32 type) { return ((CPerlObj*)pPerl)->Perl_mod(o, type); } #undef Perl_moreswitches char* -Perl_moreswitches(void *pPerl, char* s) +Perl_moreswitches(pTHXo_ char* s) { return ((CPerlObj*)pPerl)->Perl_moreswitches(s); } #undef Perl_my OP* -Perl_my(void *pPerl, OP* o) +Perl_my(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_my(o); } #undef Perl_my_atof NV -Perl_my_atof(void *pPerl, const char *s) +Perl_my_atof(pTHXo_ const char *s) { return ((CPerlObj*)pPerl)->Perl_my_atof(s); } @@ -2036,7 +2250,7 @@ Perl_my_atof(void *pPerl, const char *s) #undef Perl_my_bcopy char* -Perl_my_bcopy(void *pPerl, const char* from, char* to, I32 len) +Perl_my_bcopy(pTHXo_ const char* from, char* to, I32 len) { return ((CPerlObj*)pPerl)->Perl_my_bcopy(from, to, len); } @@ -2045,7 +2259,7 @@ Perl_my_bcopy(void *pPerl, const char* from, char* to, I32 len) #undef Perl_my_bzero char* -Perl_my_bzero(void *pPerl, char* loc, I32 len) +Perl_my_bzero(pTHXo_ char* loc, I32 len) { return ((CPerlObj*)pPerl)->Perl_my_bzero(loc, len); } @@ -2053,28 +2267,28 @@ Perl_my_bzero(void *pPerl, char* loc, I32 len) #undef Perl_my_exit void -Perl_my_exit(void *pPerl, U32 status) +Perl_my_exit(pTHXo_ U32 status) { ((CPerlObj*)pPerl)->Perl_my_exit(status); } #undef Perl_my_failure_exit void -Perl_my_failure_exit(void *pPerl) +Perl_my_failure_exit(pTHXo) { ((CPerlObj*)pPerl)->Perl_my_failure_exit(); } #undef Perl_my_fflush_all I32 -Perl_my_fflush_all(void *pPerl) +Perl_my_fflush_all(pTHXo) { return ((CPerlObj*)pPerl)->Perl_my_fflush_all(); } #undef Perl_my_lstat I32 -Perl_my_lstat(void *pPerl) +Perl_my_lstat(pTHXo) { return ((CPerlObj*)pPerl)->Perl_my_lstat(); } @@ -2082,7 +2296,7 @@ Perl_my_lstat(void *pPerl) #undef Perl_my_memcmp I32 -Perl_my_memcmp(void *pPerl, const char* s1, const char* s2, I32 len) +Perl_my_memcmp(pTHXo_ const char* s1, const char* s2, I32 len) { return ((CPerlObj*)pPerl)->Perl_my_memcmp(s1, s2, len); } @@ -2091,7 +2305,7 @@ Perl_my_memcmp(void *pPerl, const char* s1, const char* s2, I32 len) #undef Perl_my_memset void* -Perl_my_memset(void *pPerl, char* loc, I32 ch, I32 len) +Perl_my_memset(pTHXo_ char* loc, I32 ch, I32 len) { return ((CPerlObj*)pPerl)->Perl_my_memset(loc, ch, len); } @@ -2100,14 +2314,14 @@ Perl_my_memset(void *pPerl, char* loc, I32 ch, I32 len) #undef Perl_my_pclose I32 -Perl_my_pclose(void *pPerl, PerlIO* ptr) +Perl_my_pclose(pTHXo_ PerlIO* ptr) { return ((CPerlObj*)pPerl)->Perl_my_pclose(ptr); } #undef Perl_my_popen PerlIO* -Perl_my_popen(void *pPerl, char* cmd, char* mode) +Perl_my_popen(pTHXo_ char* cmd, char* mode) { return ((CPerlObj*)pPerl)->Perl_my_popen(cmd, mode); } @@ -2115,14 +2329,14 @@ Perl_my_popen(void *pPerl, char* cmd, char* mode) #undef Perl_my_setenv void -Perl_my_setenv(void *pPerl, char* nam, char* val) +Perl_my_setenv(pTHXo_ char* nam, char* val) { ((CPerlObj*)pPerl)->Perl_my_setenv(nam, val); } #undef Perl_my_stat I32 -Perl_my_stat(void *pPerl) +Perl_my_stat(pTHXo) { return ((CPerlObj*)pPerl)->Perl_my_stat(); } @@ -2130,21 +2344,21 @@ Perl_my_stat(void *pPerl) #undef Perl_my_swap short -Perl_my_swap(void *pPerl, short s) +Perl_my_swap(pTHXo_ short s) { return ((CPerlObj*)pPerl)->Perl_my_swap(s); } #undef Perl_my_htonl long -Perl_my_htonl(void *pPerl, long l) +Perl_my_htonl(pTHXo_ long l) { return ((CPerlObj*)pPerl)->Perl_my_htonl(l); } #undef Perl_my_ntohl long -Perl_my_ntohl(void *pPerl, long l) +Perl_my_ntohl(pTHXo_ long l) { return ((CPerlObj*)pPerl)->Perl_my_ntohl(l); } @@ -2152,457 +2366,468 @@ Perl_my_ntohl(void *pPerl, long l) #undef Perl_my_unexec void -Perl_my_unexec(void *pPerl) +Perl_my_unexec(pTHXo) { ((CPerlObj*)pPerl)->Perl_my_unexec(); } #undef Perl_newANONLIST OP* -Perl_newANONLIST(void *pPerl, OP* o) +Perl_newANONLIST(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_newANONLIST(o); } #undef Perl_newANONHASH OP* -Perl_newANONHASH(void *pPerl, OP* o) +Perl_newANONHASH(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_newANONHASH(o); } #undef Perl_newANONSUB OP* -Perl_newANONSUB(void *pPerl, I32 floor, OP* proto, OP* block) +Perl_newANONSUB(pTHXo_ I32 floor, OP* proto, OP* block) { return ((CPerlObj*)pPerl)->Perl_newANONSUB(floor, proto, block); } #undef Perl_newASSIGNOP OP* -Perl_newASSIGNOP(void *pPerl, I32 flags, OP* left, I32 optype, OP* right) +Perl_newASSIGNOP(pTHXo_ I32 flags, OP* left, I32 optype, OP* right) { return ((CPerlObj*)pPerl)->Perl_newASSIGNOP(flags, left, optype, right); } #undef Perl_newCONDOP OP* -Perl_newCONDOP(void *pPerl, I32 flags, OP* expr, OP* trueop, OP* falseop) +Perl_newCONDOP(pTHXo_ I32 flags, OP* expr, OP* trueop, OP* falseop) { return ((CPerlObj*)pPerl)->Perl_newCONDOP(flags, expr, trueop, falseop); } #undef Perl_newCONSTSUB void -Perl_newCONSTSUB(void *pPerl, HV* stash, char* name, SV* sv) +Perl_newCONSTSUB(pTHXo_ HV* stash, char* name, SV* sv) { ((CPerlObj*)pPerl)->Perl_newCONSTSUB(stash, name, sv); } #undef Perl_newFORM void -Perl_newFORM(void *pPerl, I32 floor, OP* o, OP* block) +Perl_newFORM(pTHXo_ I32 floor, OP* o, OP* block) { ((CPerlObj*)pPerl)->Perl_newFORM(floor, o, block); } #undef Perl_newFOROP OP* -Perl_newFOROP(void *pPerl, I32 flags, char* label, line_t forline, OP* sclr, OP* expr, OP*block, OP*cont) +Perl_newFOROP(pTHXo_ I32 flags, char* label, line_t forline, OP* sclr, OP* expr, OP*block, OP*cont) { return ((CPerlObj*)pPerl)->Perl_newFOROP(flags, label, forline, sclr, expr, block, cont); } #undef Perl_newLOGOP OP* -Perl_newLOGOP(void *pPerl, I32 optype, I32 flags, OP* left, OP* right) +Perl_newLOGOP(pTHXo_ I32 optype, I32 flags, OP* left, OP* right) { return ((CPerlObj*)pPerl)->Perl_newLOGOP(optype, flags, left, right); } #undef Perl_newLOOPEX OP* -Perl_newLOOPEX(void *pPerl, I32 type, OP* label) +Perl_newLOOPEX(pTHXo_ I32 type, OP* label) { return ((CPerlObj*)pPerl)->Perl_newLOOPEX(type, label); } #undef Perl_newLOOPOP OP* -Perl_newLOOPOP(void *pPerl, I32 flags, I32 debuggable, OP* expr, OP* block) +Perl_newLOOPOP(pTHXo_ I32 flags, I32 debuggable, OP* expr, OP* block) { return ((CPerlObj*)pPerl)->Perl_newLOOPOP(flags, debuggable, expr, block); } #undef Perl_newNULLLIST OP* -Perl_newNULLLIST(void *pPerl) +Perl_newNULLLIST(pTHXo) { return ((CPerlObj*)pPerl)->Perl_newNULLLIST(); } #undef Perl_newOP OP* -Perl_newOP(void *pPerl, I32 optype, I32 flags) +Perl_newOP(pTHXo_ I32 optype, I32 flags) { return ((CPerlObj*)pPerl)->Perl_newOP(optype, flags); } #undef Perl_newPROG void -Perl_newPROG(void *pPerl, OP* o) +Perl_newPROG(pTHXo_ OP* o) { ((CPerlObj*)pPerl)->Perl_newPROG(o); } #undef Perl_newRANGE OP* -Perl_newRANGE(void *pPerl, I32 flags, OP* left, OP* right) +Perl_newRANGE(pTHXo_ I32 flags, OP* left, OP* right) { return ((CPerlObj*)pPerl)->Perl_newRANGE(flags, left, right); } #undef Perl_newSLICEOP OP* -Perl_newSLICEOP(void *pPerl, I32 flags, OP* subscript, OP* listop) +Perl_newSLICEOP(pTHXo_ I32 flags, OP* subscript, OP* listop) { return ((CPerlObj*)pPerl)->Perl_newSLICEOP(flags, subscript, listop); } #undef Perl_newSTATEOP OP* -Perl_newSTATEOP(void *pPerl, I32 flags, char* label, OP* o) +Perl_newSTATEOP(pTHXo_ I32 flags, char* label, OP* o) { return ((CPerlObj*)pPerl)->Perl_newSTATEOP(flags, label, o); } #undef Perl_newSUB CV* -Perl_newSUB(void *pPerl, I32 floor, OP* o, OP* proto, OP* block) +Perl_newSUB(pTHXo_ I32 floor, OP* o, OP* proto, OP* block) { return ((CPerlObj*)pPerl)->Perl_newSUB(floor, o, proto, block); } #undef Perl_newXS CV* -Perl_newXS(void *pPerl, char* name, XSUBADDR_t f, char* filename) +Perl_newXS(pTHXo_ char* name, XSUBADDR_t f, char* filename) { return ((CPerlObj*)pPerl)->Perl_newXS(name, f, filename); } #undef Perl_newAV AV* -Perl_newAV(void *pPerl) +Perl_newAV(pTHXo) { return ((CPerlObj*)pPerl)->Perl_newAV(); } #undef Perl_newAVREF OP* -Perl_newAVREF(void *pPerl, OP* o) +Perl_newAVREF(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_newAVREF(o); } #undef Perl_newBINOP OP* -Perl_newBINOP(void *pPerl, I32 type, I32 flags, OP* first, OP* last) +Perl_newBINOP(pTHXo_ I32 type, I32 flags, OP* first, OP* last) { return ((CPerlObj*)pPerl)->Perl_newBINOP(type, flags, first, last); } #undef Perl_newCVREF OP* -Perl_newCVREF(void *pPerl, I32 flags, OP* o) +Perl_newCVREF(pTHXo_ I32 flags, OP* o) { return ((CPerlObj*)pPerl)->Perl_newCVREF(flags, o); } #undef Perl_newGVOP OP* -Perl_newGVOP(void *pPerl, I32 type, I32 flags, GV* gv) +Perl_newGVOP(pTHXo_ I32 type, I32 flags, GV* gv) { return ((CPerlObj*)pPerl)->Perl_newGVOP(type, flags, gv); } #undef Perl_newGVgen GV* -Perl_newGVgen(void *pPerl, char* pack) +Perl_newGVgen(pTHXo_ char* pack) { return ((CPerlObj*)pPerl)->Perl_newGVgen(pack); } #undef Perl_newGVREF OP* -Perl_newGVREF(void *pPerl, I32 type, OP* o) +Perl_newGVREF(pTHXo_ I32 type, OP* o) { return ((CPerlObj*)pPerl)->Perl_newGVREF(type, o); } #undef Perl_newHVREF OP* -Perl_newHVREF(void *pPerl, OP* o) +Perl_newHVREF(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_newHVREF(o); } #undef Perl_newHV HV* -Perl_newHV(void *pPerl) +Perl_newHV(pTHXo) { return ((CPerlObj*)pPerl)->Perl_newHV(); } #undef Perl_newHVhv HV* -Perl_newHVhv(void *pPerl, HV* hv) +Perl_newHVhv(pTHXo_ HV* hv) { return ((CPerlObj*)pPerl)->Perl_newHVhv(hv); } #undef Perl_newIO IO* -Perl_newIO(void *pPerl) +Perl_newIO(pTHXo) { return ((CPerlObj*)pPerl)->Perl_newIO(); } #undef Perl_newLISTOP OP* -Perl_newLISTOP(void *pPerl, I32 type, I32 flags, OP* first, OP* last) +Perl_newLISTOP(pTHXo_ I32 type, I32 flags, OP* first, OP* last) { return ((CPerlObj*)pPerl)->Perl_newLISTOP(type, flags, first, last); } #undef Perl_newPMOP OP* -Perl_newPMOP(void *pPerl, I32 type, I32 flags) +Perl_newPMOP(pTHXo_ I32 type, I32 flags) { return ((CPerlObj*)pPerl)->Perl_newPMOP(type, flags); } #undef Perl_newPVOP OP* -Perl_newPVOP(void *pPerl, I32 type, I32 flags, char* pv) +Perl_newPVOP(pTHXo_ I32 type, I32 flags, char* pv) { return ((CPerlObj*)pPerl)->Perl_newPVOP(type, flags, pv); } #undef Perl_newRV SV* -Perl_newRV(void *pPerl, SV* pref) +Perl_newRV(pTHXo_ SV* pref) { return ((CPerlObj*)pPerl)->Perl_newRV(pref); } #undef Perl_newRV_noinc SV* -Perl_newRV_noinc(void *pPerl, SV *sv) +Perl_newRV_noinc(pTHXo_ SV *sv) { return ((CPerlObj*)pPerl)->Perl_newRV_noinc(sv); } #undef Perl_newSV SV* -Perl_newSV(void *pPerl, STRLEN len) +Perl_newSV(pTHXo_ STRLEN len) { return ((CPerlObj*)pPerl)->Perl_newSV(len); } #undef Perl_newSVREF OP* -Perl_newSVREF(void *pPerl, OP* o) +Perl_newSVREF(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_newSVREF(o); } #undef Perl_newSVOP OP* -Perl_newSVOP(void *pPerl, I32 type, I32 flags, SV* sv) +Perl_newSVOP(pTHXo_ I32 type, I32 flags, SV* sv) { return ((CPerlObj*)pPerl)->Perl_newSVOP(type, flags, sv); } #undef Perl_newSViv SV* -Perl_newSViv(void *pPerl, IV i) +Perl_newSViv(pTHXo_ IV i) { return ((CPerlObj*)pPerl)->Perl_newSViv(i); } #undef Perl_newSVnv SV* -Perl_newSVnv(void *pPerl, NV n) +Perl_newSVnv(pTHXo_ NV n) { return ((CPerlObj*)pPerl)->Perl_newSVnv(n); } #undef Perl_newSVpv SV* -Perl_newSVpv(void *pPerl, const char* s, STRLEN len) +Perl_newSVpv(pTHXo_ const char* s, STRLEN len) { return ((CPerlObj*)pPerl)->Perl_newSVpv(s, len); } #undef Perl_newSVpvn SV* -Perl_newSVpvn(void *pPerl, const char* s, STRLEN len) +Perl_newSVpvn(pTHXo_ const char* s, STRLEN len) { return ((CPerlObj*)pPerl)->Perl_newSVpvn(s, len); } +#undef Perl_newSVpvf +SV* +Perl_newSVpvf(pTHXo_ const char* pat) +{ + SV* retval; + va_list args; + va_start(args, pat); + retval = ((CPerlObj*)pPerl)->Perl_vnewSVpvf(pat, &args); + va_end(args); + return retval; + +} + +#undef Perl_vnewSVpvf +SV* +Perl_vnewSVpvf(pTHXo_ const char* pat, va_list* args) +{ + return ((CPerlObj*)pPerl)->Perl_vnewSVpvf(pat, args); +} + #undef Perl_newSVrv SV* -Perl_newSVrv(void *pPerl, SV* rv, const char* classname) +Perl_newSVrv(pTHXo_ SV* rv, const char* classname) { return ((CPerlObj*)pPerl)->Perl_newSVrv(rv, classname); } #undef Perl_newSVsv SV* -Perl_newSVsv(void *pPerl, SV* old) +Perl_newSVsv(pTHXo_ SV* old) { return ((CPerlObj*)pPerl)->Perl_newSVsv(old); } #undef Perl_newUNOP OP* -Perl_newUNOP(void *pPerl, I32 type, I32 flags, OP* first) +Perl_newUNOP(pTHXo_ I32 type, I32 flags, OP* first) { return ((CPerlObj*)pPerl)->Perl_newUNOP(type, flags, first); } #undef Perl_newWHILEOP OP* -Perl_newWHILEOP(void *pPerl, I32 flags, I32 debuggable, LOOP* loop, I32 whileline, OP* expr, OP* block, OP* cont) +Perl_newWHILEOP(pTHXo_ I32 flags, I32 debuggable, LOOP* loop, I32 whileline, OP* expr, OP* block, OP* cont) { return ((CPerlObj*)pPerl)->Perl_newWHILEOP(flags, debuggable, loop, whileline, expr, block, cont); } -#if defined(USE_THREADS) - -#undef Perl_new_struct_thread -struct perl_thread* -Perl_new_struct_thread(void *pPerl, struct perl_thread *t) -{ - return ((CPerlObj*)pPerl)->Perl_new_struct_thread(t); -} -#endif #undef Perl_new_stackinfo PERL_SI* -Perl_new_stackinfo(void *pPerl, I32 stitems, I32 cxitems) +Perl_new_stackinfo(pTHXo_ I32 stitems, I32 cxitems) { return ((CPerlObj*)pPerl)->Perl_new_stackinfo(stitems, cxitems); } #undef Perl_nextargv PerlIO* -Perl_nextargv(void *pPerl, GV* gv) +Perl_nextargv(pTHXo_ GV* gv) { return ((CPerlObj*)pPerl)->Perl_nextargv(gv); } #undef Perl_ninstr char* -Perl_ninstr(void *pPerl, const char* big, const char* bigend, const char* little, const char* lend) +Perl_ninstr(pTHXo_ const char* big, const char* bigend, const char* little, const char* lend) { return ((CPerlObj*)pPerl)->Perl_ninstr(big, bigend, little, lend); } #undef Perl_oopsCV OP* -Perl_oopsCV(void *pPerl, OP* o) +Perl_oopsCV(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_oopsCV(o); } #undef Perl_op_free void -Perl_op_free(void *pPerl, OP* arg) +Perl_op_free(pTHXo_ OP* arg) { ((CPerlObj*)pPerl)->Perl_op_free(arg); } #undef Perl_package void -Perl_package(void *pPerl, OP* o) +Perl_package(pTHXo_ OP* o) { ((CPerlObj*)pPerl)->Perl_package(o); } #undef Perl_pad_alloc PADOFFSET -Perl_pad_alloc(void *pPerl, I32 optype, U32 tmptype) +Perl_pad_alloc(pTHXo_ I32 optype, U32 tmptype) { return ((CPerlObj*)pPerl)->Perl_pad_alloc(optype, tmptype); } #undef Perl_pad_allocmy PADOFFSET -Perl_pad_allocmy(void *pPerl, char* name) +Perl_pad_allocmy(pTHXo_ char* name) { return ((CPerlObj*)pPerl)->Perl_pad_allocmy(name); } #undef Perl_pad_findmy PADOFFSET -Perl_pad_findmy(void *pPerl, char* name) +Perl_pad_findmy(pTHXo_ char* name) { return ((CPerlObj*)pPerl)->Perl_pad_findmy(name); } #undef Perl_oopsAV OP* -Perl_oopsAV(void *pPerl, OP* o) +Perl_oopsAV(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_oopsAV(o); } #undef Perl_oopsHV OP* -Perl_oopsHV(void *pPerl, OP* o) +Perl_oopsHV(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_oopsHV(o); } #undef Perl_pad_leavemy void -Perl_pad_leavemy(void *pPerl, I32 fill) +Perl_pad_leavemy(pTHXo_ I32 fill) { ((CPerlObj*)pPerl)->Perl_pad_leavemy(fill); } #undef Perl_pad_sv SV* -Perl_pad_sv(void *pPerl, PADOFFSET po) +Perl_pad_sv(pTHXo_ PADOFFSET po) { return ((CPerlObj*)pPerl)->Perl_pad_sv(po); } #undef Perl_pad_free void -Perl_pad_free(void *pPerl, PADOFFSET po) +Perl_pad_free(pTHXo_ PADOFFSET po) { ((CPerlObj*)pPerl)->Perl_pad_free(po); } #undef Perl_pad_reset void -Perl_pad_reset(void *pPerl) +Perl_pad_reset(pTHXo) { ((CPerlObj*)pPerl)->Perl_pad_reset(); } #undef Perl_pad_swipe void -Perl_pad_swipe(void *pPerl, PADOFFSET po) +Perl_pad_swipe(pTHXo_ PADOFFSET po) { ((CPerlObj*)pPerl)->Perl_pad_swipe(po); } #undef Perl_peep void -Perl_peep(void *pPerl, OP* o) +Perl_peep(pTHXo_ OP* o) { ((CPerlObj*)pPerl)->Perl_peep(o); } @@ -2611,351 +2836,361 @@ Perl_peep(void *pPerl, OP* o) #undef perl_alloc PerlInterpreter* -perl_alloc(void *pPerl) +perl_alloc() { + dTHXo; return ((CPerlObj*)pPerl)->perl_alloc(); } +#if defined(USE_THREADS) + +#undef Perl_new_struct_thread +struct perl_thread* +Perl_new_struct_thread(pTHXo_ struct perl_thread *t) +{ + return ((CPerlObj*)pPerl)->Perl_new_struct_thread(t); +} +#endif #endif #undef Perl_call_atexit void -Perl_call_atexit(void *pPerl, ATEXIT_t fn, void *ptr) +Perl_call_atexit(pTHXo_ ATEXIT_t fn, void *ptr) { ((CPerlObj*)pPerl)->Perl_call_atexit(fn, ptr); } #undef Perl_call_argv I32 -Perl_call_argv(void *pPerl, const char* sub_name, I32 flags, char** argv) +Perl_call_argv(pTHXo_ const char* sub_name, I32 flags, char** argv) { return ((CPerlObj*)pPerl)->Perl_call_argv(sub_name, flags, argv); } #undef Perl_call_method I32 -Perl_call_method(void *pPerl, const char* methname, I32 flags) +Perl_call_method(pTHXo_ const char* methname, I32 flags) { return ((CPerlObj*)pPerl)->Perl_call_method(methname, flags); } #undef Perl_call_pv I32 -Perl_call_pv(void *pPerl, const char* sub_name, I32 flags) +Perl_call_pv(pTHXo_ const char* sub_name, I32 flags) { return ((CPerlObj*)pPerl)->Perl_call_pv(sub_name, flags); } #undef Perl_call_sv I32 -Perl_call_sv(void *pPerl, SV* sv, I32 flags) +Perl_call_sv(pTHXo_ SV* sv, I32 flags) { return ((CPerlObj*)pPerl)->Perl_call_sv(sv, flags); } #undef Perl_eval_pv SV* -Perl_eval_pv(void *pPerl, const char* p, I32 croak_on_error) +Perl_eval_pv(pTHXo_ const char* p, I32 croak_on_error) { return ((CPerlObj*)pPerl)->Perl_eval_pv(p, croak_on_error); } #undef Perl_eval_sv I32 -Perl_eval_sv(void *pPerl, SV* sv, I32 flags) +Perl_eval_sv(pTHXo_ SV* sv, I32 flags) { return ((CPerlObj*)pPerl)->Perl_eval_sv(sv, flags); } #undef Perl_get_sv SV* -Perl_get_sv(void *pPerl, const char* name, I32 create) +Perl_get_sv(pTHXo_ const char* name, I32 create) { return ((CPerlObj*)pPerl)->Perl_get_sv(name, create); } #undef Perl_get_av AV* -Perl_get_av(void *pPerl, const char* name, I32 create) +Perl_get_av(pTHXo_ const char* name, I32 create) { return ((CPerlObj*)pPerl)->Perl_get_av(name, create); } #undef Perl_get_hv HV* -Perl_get_hv(void *pPerl, const char* name, I32 create) +Perl_get_hv(pTHXo_ const char* name, I32 create) { return ((CPerlObj*)pPerl)->Perl_get_hv(name, create); } #undef Perl_get_cv CV* -Perl_get_cv(void *pPerl, const char* name, I32 create) +Perl_get_cv(pTHXo_ const char* name, I32 create) { return ((CPerlObj*)pPerl)->Perl_get_cv(name, create); } #undef Perl_init_i18nl10n int -Perl_init_i18nl10n(void *pPerl, int printwarn) +Perl_init_i18nl10n(pTHXo_ int printwarn) { return ((CPerlObj*)pPerl)->Perl_init_i18nl10n(printwarn); } #undef Perl_init_i18nl14n int -Perl_init_i18nl14n(void *pPerl, int printwarn) +Perl_init_i18nl14n(pTHXo_ int printwarn) { return ((CPerlObj*)pPerl)->Perl_init_i18nl14n(printwarn); } #undef Perl_new_collate void -Perl_new_collate(void *pPerl, const char* newcoll) +Perl_new_collate(pTHXo_ const char* newcoll) { ((CPerlObj*)pPerl)->Perl_new_collate(newcoll); } #undef Perl_new_ctype void -Perl_new_ctype(void *pPerl, const char* newctype) +Perl_new_ctype(pTHXo_ const char* newctype) { ((CPerlObj*)pPerl)->Perl_new_ctype(newctype); } #undef Perl_new_numeric void -Perl_new_numeric(void *pPerl, const char* newcoll) +Perl_new_numeric(pTHXo_ const char* newcoll) { ((CPerlObj*)pPerl)->Perl_new_numeric(newcoll); } #undef Perl_set_numeric_local void -Perl_set_numeric_local(void *pPerl) +Perl_set_numeric_local(pTHXo) { ((CPerlObj*)pPerl)->Perl_set_numeric_local(); } #undef Perl_set_numeric_radix void -Perl_set_numeric_radix(void *pPerl) +Perl_set_numeric_radix(pTHXo) { ((CPerlObj*)pPerl)->Perl_set_numeric_radix(); } #undef Perl_set_numeric_standard void -Perl_set_numeric_standard(void *pPerl) +Perl_set_numeric_standard(pTHXo) { ((CPerlObj*)pPerl)->Perl_set_numeric_standard(); } #undef Perl_require_pv void -Perl_require_pv(void *pPerl, const char* pv) +Perl_require_pv(pTHXo_ const char* pv) { ((CPerlObj*)pPerl)->Perl_require_pv(pv); } #undef Perl_pidgone void -Perl_pidgone(void *pPerl, int pid, int status) +Perl_pidgone(pTHXo_ int pid, int status) { ((CPerlObj*)pPerl)->Perl_pidgone(pid, status); } #undef Perl_pmflag void -Perl_pmflag(void *pPerl, U16* pmfl, int ch) +Perl_pmflag(pTHXo_ U16* pmfl, int ch) { ((CPerlObj*)pPerl)->Perl_pmflag(pmfl, ch); } #undef Perl_pmruntime OP* -Perl_pmruntime(void *pPerl, OP* pm, OP* expr, OP* repl) +Perl_pmruntime(pTHXo_ OP* pm, OP* expr, OP* repl) { return ((CPerlObj*)pPerl)->Perl_pmruntime(pm, expr, repl); } #undef Perl_pmtrans OP* -Perl_pmtrans(void *pPerl, OP* o, OP* expr, OP* repl) +Perl_pmtrans(pTHXo_ OP* o, OP* expr, OP* repl) { return ((CPerlObj*)pPerl)->Perl_pmtrans(o, expr, repl); } #undef Perl_pop_return OP* -Perl_pop_return(void *pPerl) +Perl_pop_return(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pop_return(); } #undef Perl_pop_scope void -Perl_pop_scope(void *pPerl) +Perl_pop_scope(pTHXo) { ((CPerlObj*)pPerl)->Perl_pop_scope(); } #undef Perl_prepend_elem OP* -Perl_prepend_elem(void *pPerl, I32 optype, OP* head, OP* tail) +Perl_prepend_elem(pTHXo_ I32 optype, OP* head, OP* tail) { return ((CPerlObj*)pPerl)->Perl_prepend_elem(optype, head, tail); } #undef Perl_push_return void -Perl_push_return(void *pPerl, OP* o) +Perl_push_return(pTHXo_ OP* o) { ((CPerlObj*)pPerl)->Perl_push_return(o); } #undef Perl_push_scope void -Perl_push_scope(void *pPerl) +Perl_push_scope(pTHXo) { ((CPerlObj*)pPerl)->Perl_push_scope(); } #undef Perl_ref OP* -Perl_ref(void *pPerl, OP* o, I32 type) +Perl_ref(pTHXo_ OP* o, I32 type) { return ((CPerlObj*)pPerl)->Perl_ref(o, type); } #undef Perl_refkids OP* -Perl_refkids(void *pPerl, OP* o, I32 type) +Perl_refkids(pTHXo_ OP* o, I32 type) { return ((CPerlObj*)pPerl)->Perl_refkids(o, type); } #undef Perl_regdump void -Perl_regdump(void *pPerl, regexp* r) +Perl_regdump(pTHXo_ regexp* r) { ((CPerlObj*)pPerl)->Perl_regdump(r); } #undef Perl_pregexec I32 -Perl_pregexec(void *pPerl, regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave) +Perl_pregexec(pTHXo_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave) { return ((CPerlObj*)pPerl)->Perl_pregexec(prog, stringarg, strend, strbeg, minend, screamer, nosave); } #undef Perl_pregfree void -Perl_pregfree(void *pPerl, struct regexp* r) +Perl_pregfree(pTHXo_ struct regexp* r) { ((CPerlObj*)pPerl)->Perl_pregfree(r); } #undef Perl_pregcomp regexp* -Perl_pregcomp(void *pPerl, char* exp, char* xend, PMOP* pm) +Perl_pregcomp(pTHXo_ char* exp, char* xend, PMOP* pm) { return ((CPerlObj*)pPerl)->Perl_pregcomp(exp, xend, pm); } #undef Perl_re_intuit_start char* -Perl_re_intuit_start(void *pPerl, regexp* prog, SV* sv, char* strpos, char* strend, U32 flags, struct re_scream_pos_data_s *data) +Perl_re_intuit_start(pTHXo_ regexp* prog, SV* sv, char* strpos, char* strend, U32 flags, struct re_scream_pos_data_s *data) { return ((CPerlObj*)pPerl)->Perl_re_intuit_start(prog, sv, strpos, strend, flags, data); } #undef Perl_re_intuit_string SV* -Perl_re_intuit_string(void *pPerl, regexp* prog) +Perl_re_intuit_string(pTHXo_ regexp* prog) { return ((CPerlObj*)pPerl)->Perl_re_intuit_string(prog); } #undef Perl_regexec_flags I32 -Perl_regexec_flags(void *pPerl, regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags) +Perl_regexec_flags(pTHXo_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags) { return ((CPerlObj*)pPerl)->Perl_regexec_flags(prog, stringarg, strend, strbeg, minend, screamer, data, flags); } #undef Perl_regnext regnode* -Perl_regnext(void *pPerl, regnode* p) +Perl_regnext(pTHXo_ regnode* p) { return ((CPerlObj*)pPerl)->Perl_regnext(p); } #undef Perl_regprop void -Perl_regprop(void *pPerl, SV* sv, regnode* o) +Perl_regprop(pTHXo_ SV* sv, regnode* o) { ((CPerlObj*)pPerl)->Perl_regprop(sv, o); } #undef Perl_repeatcpy void -Perl_repeatcpy(void *pPerl, char* to, const char* from, I32 len, I32 count) +Perl_repeatcpy(pTHXo_ char* to, const char* from, I32 len, I32 count) { ((CPerlObj*)pPerl)->Perl_repeatcpy(to, from, len, count); } #undef Perl_rninstr char* -Perl_rninstr(void *pPerl, const char* big, const char* bigend, const char* little, const char* lend) +Perl_rninstr(pTHXo_ const char* big, const char* bigend, const char* little, const char* lend) { return ((CPerlObj*)pPerl)->Perl_rninstr(big, bigend, little, lend); } #undef Perl_rsignal Sighandler_t -Perl_rsignal(void *pPerl, int i, Sighandler_t t) +Perl_rsignal(pTHXo_ int i, Sighandler_t t) { return ((CPerlObj*)pPerl)->Perl_rsignal(i, t); } #undef Perl_rsignal_restore int -Perl_rsignal_restore(void *pPerl, int i, Sigsave_t* t) +Perl_rsignal_restore(pTHXo_ int i, Sigsave_t* t) { return ((CPerlObj*)pPerl)->Perl_rsignal_restore(i, t); } #undef Perl_rsignal_save int -Perl_rsignal_save(void *pPerl, int i, Sighandler_t t1, Sigsave_t* t2) +Perl_rsignal_save(pTHXo_ int i, Sighandler_t t1, Sigsave_t* t2) { return ((CPerlObj*)pPerl)->Perl_rsignal_save(i, t1, t2); } #undef Perl_rsignal_state Sighandler_t -Perl_rsignal_state(void *pPerl, int i) +Perl_rsignal_state(pTHXo_ int i) { return ((CPerlObj*)pPerl)->Perl_rsignal_state(i); } #undef Perl_rxres_free void -Perl_rxres_free(void *pPerl, void** rsp) +Perl_rxres_free(pTHXo_ void** rsp) { ((CPerlObj*)pPerl)->Perl_rxres_free(rsp); } #undef Perl_rxres_restore void -Perl_rxres_restore(void *pPerl, void** rsp, REGEXP* prx) +Perl_rxres_restore(pTHXo_ void** rsp, REGEXP* prx) { ((CPerlObj*)pPerl)->Perl_rxres_restore(rsp, prx); } #undef Perl_rxres_save void -Perl_rxres_save(void *pPerl, void** rsp, REGEXP* prx) +Perl_rxres_save(pTHXo_ void** rsp, REGEXP* prx) { ((CPerlObj*)pPerl)->Perl_rxres_save(rsp, prx); } @@ -2963,7 +3198,7 @@ Perl_rxres_save(void *pPerl, void** rsp, REGEXP* prx) #undef Perl_same_dirent I32 -Perl_same_dirent(void *pPerl, char* a, char* b) +Perl_same_dirent(pTHXo_ char* a, char* b) { return ((CPerlObj*)pPerl)->Perl_same_dirent(a, b); } @@ -2971,315 +3206,315 @@ Perl_same_dirent(void *pPerl, char* a, char* b) #undef Perl_savepv char* -Perl_savepv(void *pPerl, const char* sv) +Perl_savepv(pTHXo_ const char* sv) { return ((CPerlObj*)pPerl)->Perl_savepv(sv); } #undef Perl_savepvn char* -Perl_savepvn(void *pPerl, const char* sv, I32 len) +Perl_savepvn(pTHXo_ const char* sv, I32 len) { return ((CPerlObj*)pPerl)->Perl_savepvn(sv, len); } #undef Perl_savestack_grow void -Perl_savestack_grow(void *pPerl) +Perl_savestack_grow(pTHXo) { ((CPerlObj*)pPerl)->Perl_savestack_grow(); } #undef Perl_save_aelem void -Perl_save_aelem(void *pPerl, AV* av, I32 idx, SV **sptr) +Perl_save_aelem(pTHXo_ AV* av, I32 idx, SV **sptr) { ((CPerlObj*)pPerl)->Perl_save_aelem(av, idx, sptr); } #undef Perl_save_alloc I32 -Perl_save_alloc(void *pPerl, I32 size, I32 pad) +Perl_save_alloc(pTHXo_ I32 size, I32 pad) { return ((CPerlObj*)pPerl)->Perl_save_alloc(size, pad); } #undef Perl_save_aptr void -Perl_save_aptr(void *pPerl, AV** aptr) +Perl_save_aptr(pTHXo_ AV** aptr) { ((CPerlObj*)pPerl)->Perl_save_aptr(aptr); } #undef Perl_save_ary AV* -Perl_save_ary(void *pPerl, GV* gv) +Perl_save_ary(pTHXo_ GV* gv) { return ((CPerlObj*)pPerl)->Perl_save_ary(gv); } #undef Perl_save_clearsv void -Perl_save_clearsv(void *pPerl, SV** svp) +Perl_save_clearsv(pTHXo_ SV** svp) { ((CPerlObj*)pPerl)->Perl_save_clearsv(svp); } #undef Perl_save_delete void -Perl_save_delete(void *pPerl, HV* hv, char* key, I32 klen) +Perl_save_delete(pTHXo_ HV* hv, char* key, I32 klen) { ((CPerlObj*)pPerl)->Perl_save_delete(hv, key, klen); } #undef Perl_save_destructor void -Perl_save_destructor(void *pPerl, DESTRUCTORFUNC_t f, void* p) +Perl_save_destructor(pTHXo_ DESTRUCTORFUNC_t f, void* p) { ((CPerlObj*)pPerl)->Perl_save_destructor(f, p); } #undef Perl_save_freesv void -Perl_save_freesv(void *pPerl, SV* sv) +Perl_save_freesv(pTHXo_ SV* sv) { ((CPerlObj*)pPerl)->Perl_save_freesv(sv); } #undef Perl_save_freeop void -Perl_save_freeop(void *pPerl, OP* o) +Perl_save_freeop(pTHXo_ OP* o) { ((CPerlObj*)pPerl)->Perl_save_freeop(o); } #undef Perl_save_freepv void -Perl_save_freepv(void *pPerl, char* pv) +Perl_save_freepv(pTHXo_ char* pv) { ((CPerlObj*)pPerl)->Perl_save_freepv(pv); } #undef Perl_save_generic_svref void -Perl_save_generic_svref(void *pPerl, SV** sptr) +Perl_save_generic_svref(pTHXo_ SV** sptr) { ((CPerlObj*)pPerl)->Perl_save_generic_svref(sptr); } #undef Perl_save_gp void -Perl_save_gp(void *pPerl, GV* gv, I32 empty) +Perl_save_gp(pTHXo_ GV* gv, I32 empty) { ((CPerlObj*)pPerl)->Perl_save_gp(gv, empty); } #undef Perl_save_hash HV* -Perl_save_hash(void *pPerl, GV* gv) +Perl_save_hash(pTHXo_ GV* gv) { return ((CPerlObj*)pPerl)->Perl_save_hash(gv); } #undef Perl_save_helem void -Perl_save_helem(void *pPerl, HV* hv, SV *key, SV **sptr) +Perl_save_helem(pTHXo_ HV* hv, SV *key, SV **sptr) { ((CPerlObj*)pPerl)->Perl_save_helem(hv, key, sptr); } #undef Perl_save_hints void -Perl_save_hints(void *pPerl) +Perl_save_hints(pTHXo) { ((CPerlObj*)pPerl)->Perl_save_hints(); } #undef Perl_save_hptr void -Perl_save_hptr(void *pPerl, HV** hptr) +Perl_save_hptr(pTHXo_ HV** hptr) { ((CPerlObj*)pPerl)->Perl_save_hptr(hptr); } #undef Perl_save_I16 void -Perl_save_I16(void *pPerl, I16* intp) +Perl_save_I16(pTHXo_ I16* intp) { ((CPerlObj*)pPerl)->Perl_save_I16(intp); } #undef Perl_save_I32 void -Perl_save_I32(void *pPerl, I32* intp) +Perl_save_I32(pTHXo_ I32* intp) { ((CPerlObj*)pPerl)->Perl_save_I32(intp); } #undef Perl_save_int void -Perl_save_int(void *pPerl, int* intp) +Perl_save_int(pTHXo_ int* intp) { ((CPerlObj*)pPerl)->Perl_save_int(intp); } #undef Perl_save_item void -Perl_save_item(void *pPerl, SV* item) +Perl_save_item(pTHXo_ SV* item) { ((CPerlObj*)pPerl)->Perl_save_item(item); } #undef Perl_save_iv void -Perl_save_iv(void *pPerl, IV* iv) +Perl_save_iv(pTHXo_ IV* iv) { ((CPerlObj*)pPerl)->Perl_save_iv(iv); } #undef Perl_save_list void -Perl_save_list(void *pPerl, SV** sarg, I32 maxsarg) +Perl_save_list(pTHXo_ SV** sarg, I32 maxsarg) { ((CPerlObj*)pPerl)->Perl_save_list(sarg, maxsarg); } #undef Perl_save_long void -Perl_save_long(void *pPerl, long* longp) +Perl_save_long(pTHXo_ long* longp) { ((CPerlObj*)pPerl)->Perl_save_long(longp); } #undef Perl_save_nogv void -Perl_save_nogv(void *pPerl, GV* gv) +Perl_save_nogv(pTHXo_ GV* gv) { ((CPerlObj*)pPerl)->Perl_save_nogv(gv); } #undef Perl_save_op void -Perl_save_op(void *pPerl) +Perl_save_op(pTHXo) { ((CPerlObj*)pPerl)->Perl_save_op(); } #undef Perl_save_scalar SV* -Perl_save_scalar(void *pPerl, GV* gv) +Perl_save_scalar(pTHXo_ GV* gv) { return ((CPerlObj*)pPerl)->Perl_save_scalar(gv); } #undef Perl_save_pptr void -Perl_save_pptr(void *pPerl, char** pptr) +Perl_save_pptr(pTHXo_ char** pptr) { ((CPerlObj*)pPerl)->Perl_save_pptr(pptr); } #undef Perl_save_re_context void -Perl_save_re_context(void *pPerl) +Perl_save_re_context(pTHXo) { ((CPerlObj*)pPerl)->Perl_save_re_context(); } #undef Perl_save_sptr void -Perl_save_sptr(void *pPerl, SV** sptr) +Perl_save_sptr(pTHXo_ SV** sptr) { ((CPerlObj*)pPerl)->Perl_save_sptr(sptr); } #undef Perl_save_svref SV* -Perl_save_svref(void *pPerl, SV** sptr) +Perl_save_svref(pTHXo_ SV** sptr) { return ((CPerlObj*)pPerl)->Perl_save_svref(sptr); } #undef Perl_save_threadsv SV** -Perl_save_threadsv(void *pPerl, PADOFFSET i) +Perl_save_threadsv(pTHXo_ PADOFFSET i) { return ((CPerlObj*)pPerl)->Perl_save_threadsv(i); } #undef Perl_sawparens OP* -Perl_sawparens(void *pPerl, OP* o) +Perl_sawparens(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_sawparens(o); } #undef Perl_scalar OP* -Perl_scalar(void *pPerl, OP* o) +Perl_scalar(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_scalar(o); } #undef Perl_scalarkids OP* -Perl_scalarkids(void *pPerl, OP* o) +Perl_scalarkids(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_scalarkids(o); } #undef Perl_scalarseq OP* -Perl_scalarseq(void *pPerl, OP* o) +Perl_scalarseq(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_scalarseq(o); } #undef Perl_scalarvoid OP* -Perl_scalarvoid(void *pPerl, OP* o) +Perl_scalarvoid(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_scalarvoid(o); } #undef Perl_scan_bin UV -Perl_scan_bin(void *pPerl, char* start, I32 len, I32* retlen) +Perl_scan_bin(pTHXo_ char* start, I32 len, I32* retlen) { return ((CPerlObj*)pPerl)->Perl_scan_bin(start, len, retlen); } #undef Perl_scan_hex UV -Perl_scan_hex(void *pPerl, char* start, I32 len, I32* retlen) +Perl_scan_hex(pTHXo_ char* start, I32 len, I32* retlen) { return ((CPerlObj*)pPerl)->Perl_scan_hex(start, len, retlen); } #undef Perl_scan_num char* -Perl_scan_num(void *pPerl, char* s) +Perl_scan_num(pTHXo_ char* s) { return ((CPerlObj*)pPerl)->Perl_scan_num(s); } #undef Perl_scan_oct UV -Perl_scan_oct(void *pPerl, char* start, I32 len, I32* retlen) +Perl_scan_oct(pTHXo_ char* start, I32 len, I32* retlen) { return ((CPerlObj*)pPerl)->Perl_scan_oct(start, len, retlen); } #undef Perl_scope OP* -Perl_scope(void *pPerl, OP* o) +Perl_scope(pTHXo_ OP* o) { return ((CPerlObj*)pPerl)->Perl_scope(o); } #undef Perl_screaminstr char* -Perl_screaminstr(void *pPerl, SV* bigsv, SV* littlesv, I32 start_shift, I32 end_shift, I32 *state, I32 last) +Perl_screaminstr(pTHXo_ SV* bigsv, SV* littlesv, I32 start_shift, I32 end_shift, I32 *state, I32 last) { return ((CPerlObj*)pPerl)->Perl_screaminstr(bigsv, littlesv, start_shift, end_shift, state, last); } @@ -3287,7 +3522,7 @@ Perl_screaminstr(void *pPerl, SV* bigsv, SV* littlesv, I32 start_shift, I32 end_ #undef Perl_setenv_getix I32 -Perl_setenv_getix(void *pPerl, char* nam) +Perl_setenv_getix(pTHXo_ char* nam) { return ((CPerlObj*)pPerl)->Perl_setenv_getix(nam); } @@ -3295,224 +3530,242 @@ Perl_setenv_getix(void *pPerl, char* nam) #undef Perl_setdefout void -Perl_setdefout(void *pPerl, GV* gv) +Perl_setdefout(pTHXo_ GV* gv) { ((CPerlObj*)pPerl)->Perl_setdefout(gv); } #undef Perl_sharepvn char* -Perl_sharepvn(void *pPerl, const char* sv, I32 len, U32 hash) +Perl_sharepvn(pTHXo_ const char* sv, I32 len, U32 hash) { return ((CPerlObj*)pPerl)->Perl_sharepvn(sv, len, hash); } #undef Perl_share_hek HEK* -Perl_share_hek(void *pPerl, const char* sv, I32 len, U32 hash) +Perl_share_hek(pTHXo_ const char* sv, I32 len, U32 hash) { return ((CPerlObj*)pPerl)->Perl_share_hek(sv, len, hash); } #undef Perl_sighandler Signal_t -Perl_sighandler(void *pPerl, int sig) +Perl_sighandler(int sig) { + dTHXo; ((CPerlObj*)pPerl)->Perl_sighandler(sig); } #undef Perl_stack_grow SV** -Perl_stack_grow(void *pPerl, SV** sp, SV**p, int n) +Perl_stack_grow(pTHXo_ SV** sp, SV**p, int n) { return ((CPerlObj*)pPerl)->Perl_stack_grow(sp, p, n); } #undef Perl_start_subparse I32 -Perl_start_subparse(void *pPerl, I32 is_format, U32 flags) +Perl_start_subparse(pTHXo_ I32 is_format, U32 flags) { return ((CPerlObj*)pPerl)->Perl_start_subparse(is_format, flags); } #undef Perl_sub_crush_depth void -Perl_sub_crush_depth(void *pPerl, CV* cv) +Perl_sub_crush_depth(pTHXo_ CV* cv) { ((CPerlObj*)pPerl)->Perl_sub_crush_depth(cv); } #undef Perl_sv_2bool bool -Perl_sv_2bool(void *pPerl, SV* sv) +Perl_sv_2bool(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_2bool(sv); } #undef Perl_sv_2cv CV* -Perl_sv_2cv(void *pPerl, SV* sv, HV** st, GV** gvp, I32 lref) +Perl_sv_2cv(pTHXo_ SV* sv, HV** st, GV** gvp, I32 lref) { return ((CPerlObj*)pPerl)->Perl_sv_2cv(sv, st, gvp, lref); } #undef Perl_sv_2io IO* -Perl_sv_2io(void *pPerl, SV* sv) +Perl_sv_2io(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_2io(sv); } #undef Perl_sv_2iv IV -Perl_sv_2iv(void *pPerl, SV* sv) +Perl_sv_2iv(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_2iv(sv); } #undef Perl_sv_2mortal SV* -Perl_sv_2mortal(void *pPerl, SV* sv) +Perl_sv_2mortal(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_2mortal(sv); } #undef Perl_sv_2nv NV -Perl_sv_2nv(void *pPerl, SV* sv) +Perl_sv_2nv(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_2nv(sv); } #undef Perl_sv_2pv char* -Perl_sv_2pv(void *pPerl, SV* sv, STRLEN* lp) +Perl_sv_2pv(pTHXo_ SV* sv, STRLEN* lp) { return ((CPerlObj*)pPerl)->Perl_sv_2pv(sv, lp); } #undef Perl_sv_2uv UV -Perl_sv_2uv(void *pPerl, SV* sv) +Perl_sv_2uv(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_2uv(sv); } #undef Perl_sv_iv IV -Perl_sv_iv(void *pPerl, SV* sv) +Perl_sv_iv(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_iv(sv); } #undef Perl_sv_uv UV -Perl_sv_uv(void *pPerl, SV* sv) +Perl_sv_uv(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_uv(sv); } #undef Perl_sv_nv NV -Perl_sv_nv(void *pPerl, SV* sv) +Perl_sv_nv(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_nv(sv); } #undef Perl_sv_pvn char* -Perl_sv_pvn(void *pPerl, SV *sv, STRLEN *len) +Perl_sv_pvn(pTHXo_ SV *sv, STRLEN *len) { return ((CPerlObj*)pPerl)->Perl_sv_pvn(sv, len); } #undef Perl_sv_true I32 -Perl_sv_true(void *pPerl, SV *sv) +Perl_sv_true(pTHXo_ SV *sv) { return ((CPerlObj*)pPerl)->Perl_sv_true(sv); } #undef Perl_sv_add_arena void -Perl_sv_add_arena(void *pPerl, char* ptr, U32 size, U32 flags) +Perl_sv_add_arena(pTHXo_ char* ptr, U32 size, U32 flags) { ((CPerlObj*)pPerl)->Perl_sv_add_arena(ptr, size, flags); } #undef Perl_sv_backoff int -Perl_sv_backoff(void *pPerl, SV* sv) +Perl_sv_backoff(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_backoff(sv); } #undef Perl_sv_bless SV* -Perl_sv_bless(void *pPerl, SV* sv, HV* stash) +Perl_sv_bless(pTHXo_ SV* sv, HV* stash) { return ((CPerlObj*)pPerl)->Perl_sv_bless(sv, stash); } +#undef Perl_sv_catpvf +void +Perl_sv_catpvf(pTHXo_ SV* sv, const char* pat) +{ + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_sv_vcatpvf(sv, pat, &args); + va_end(args); +} + +#undef Perl_sv_vcatpvf +void +Perl_sv_vcatpvf(pTHXo_ SV* sv, const char* pat, va_list* args) +{ + ((CPerlObj*)pPerl)->Perl_sv_vcatpvf(sv, pat, args); +} + #undef Perl_sv_catpv void -Perl_sv_catpv(void *pPerl, SV* sv, const char* ptr) +Perl_sv_catpv(pTHXo_ SV* sv, const char* ptr) { ((CPerlObj*)pPerl)->Perl_sv_catpv(sv, ptr); } #undef Perl_sv_catpvn void -Perl_sv_catpvn(void *pPerl, SV* sv, const char* ptr, STRLEN len) +Perl_sv_catpvn(pTHXo_ SV* sv, const char* ptr, STRLEN len) { ((CPerlObj*)pPerl)->Perl_sv_catpvn(sv, ptr, len); } #undef Perl_sv_catsv void -Perl_sv_catsv(void *pPerl, SV* dsv, SV* ssv) +Perl_sv_catsv(pTHXo_ SV* dsv, SV* ssv) { ((CPerlObj*)pPerl)->Perl_sv_catsv(dsv, ssv); } #undef Perl_sv_chop void -Perl_sv_chop(void *pPerl, SV* sv, char* ptr) +Perl_sv_chop(pTHXo_ SV* sv, char* ptr) { ((CPerlObj*)pPerl)->Perl_sv_chop(sv, ptr); } #undef Perl_sv_clean_all void -Perl_sv_clean_all(void *pPerl) +Perl_sv_clean_all(pTHXo) { ((CPerlObj*)pPerl)->Perl_sv_clean_all(); } #undef Perl_sv_clean_objs void -Perl_sv_clean_objs(void *pPerl) +Perl_sv_clean_objs(pTHXo) { ((CPerlObj*)pPerl)->Perl_sv_clean_objs(); } #undef Perl_sv_clear void -Perl_sv_clear(void *pPerl, SV* sv) +Perl_sv_clear(pTHXo_ SV* sv) { ((CPerlObj*)pPerl)->Perl_sv_clear(sv); } #undef Perl_sv_cmp I32 -Perl_sv_cmp(void *pPerl, SV* sv1, SV* sv2) +Perl_sv_cmp(pTHXo_ SV* sv1, SV* sv2) { return ((CPerlObj*)pPerl)->Perl_sv_cmp(sv1, sv2); } #undef Perl_sv_cmp_locale I32 -Perl_sv_cmp_locale(void *pPerl, SV* sv1, SV* sv2) +Perl_sv_cmp_locale(pTHXo_ SV* sv1, SV* sv2) { return ((CPerlObj*)pPerl)->Perl_sv_cmp_locale(sv1, sv2); } @@ -3520,7 +3773,7 @@ Perl_sv_cmp_locale(void *pPerl, SV* sv1, SV* sv2) #undef Perl_sv_collxfrm char* -Perl_sv_collxfrm(void *pPerl, SV* sv, STRLEN* nxp) +Perl_sv_collxfrm(pTHXo_ SV* sv, STRLEN* nxp) { return ((CPerlObj*)pPerl)->Perl_sv_collxfrm(sv, nxp); } @@ -3528,378 +3781,395 @@ Perl_sv_collxfrm(void *pPerl, SV* sv, STRLEN* nxp) #undef Perl_sv_compile_2op OP* -Perl_sv_compile_2op(void *pPerl, SV* sv, OP** startp, char* code, AV** avp) +Perl_sv_compile_2op(pTHXo_ SV* sv, OP** startp, char* code, AV** avp) { return ((CPerlObj*)pPerl)->Perl_sv_compile_2op(sv, startp, code, avp); } #undef Perl_sv_dec void -Perl_sv_dec(void *pPerl, SV* sv) +Perl_sv_dec(pTHXo_ SV* sv) { ((CPerlObj*)pPerl)->Perl_sv_dec(sv); } #undef Perl_sv_dump void -Perl_sv_dump(void *pPerl, SV* sv) +Perl_sv_dump(pTHXo_ SV* sv) { ((CPerlObj*)pPerl)->Perl_sv_dump(sv); } #undef Perl_sv_derived_from bool -Perl_sv_derived_from(void *pPerl, SV* sv, const char* name) +Perl_sv_derived_from(pTHXo_ SV* sv, const char* name) { return ((CPerlObj*)pPerl)->Perl_sv_derived_from(sv, name); } #undef Perl_sv_eq I32 -Perl_sv_eq(void *pPerl, SV* sv1, SV* sv2) +Perl_sv_eq(pTHXo_ SV* sv1, SV* sv2) { return ((CPerlObj*)pPerl)->Perl_sv_eq(sv1, sv2); } #undef Perl_sv_free void -Perl_sv_free(void *pPerl, SV* sv) +Perl_sv_free(pTHXo_ SV* sv) { ((CPerlObj*)pPerl)->Perl_sv_free(sv); } #undef Perl_sv_free_arenas void -Perl_sv_free_arenas(void *pPerl) +Perl_sv_free_arenas(pTHXo) { ((CPerlObj*)pPerl)->Perl_sv_free_arenas(); } #undef Perl_sv_gets char* -Perl_sv_gets(void *pPerl, SV* sv, PerlIO* fp, I32 append) +Perl_sv_gets(pTHXo_ SV* sv, PerlIO* fp, I32 append) { return ((CPerlObj*)pPerl)->Perl_sv_gets(sv, fp, append); } #undef Perl_sv_grow char* -Perl_sv_grow(void *pPerl, SV* sv, STRLEN newlen) +Perl_sv_grow(pTHXo_ SV* sv, STRLEN newlen) { return ((CPerlObj*)pPerl)->Perl_sv_grow(sv, newlen); } #undef Perl_sv_inc void -Perl_sv_inc(void *pPerl, SV* sv) +Perl_sv_inc(pTHXo_ SV* sv) { ((CPerlObj*)pPerl)->Perl_sv_inc(sv); } #undef Perl_sv_insert void -Perl_sv_insert(void *pPerl, SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen) +Perl_sv_insert(pTHXo_ SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen) { ((CPerlObj*)pPerl)->Perl_sv_insert(bigsv, offset, len, little, littlelen); } #undef Perl_sv_isa int -Perl_sv_isa(void *pPerl, SV* sv, const char* name) +Perl_sv_isa(pTHXo_ SV* sv, const char* name) { return ((CPerlObj*)pPerl)->Perl_sv_isa(sv, name); } #undef Perl_sv_isobject int -Perl_sv_isobject(void *pPerl, SV* sv) +Perl_sv_isobject(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_isobject(sv); } #undef Perl_sv_len STRLEN -Perl_sv_len(void *pPerl, SV* sv) +Perl_sv_len(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_len(sv); } #undef Perl_sv_len_utf8 STRLEN -Perl_sv_len_utf8(void *pPerl, SV* sv) +Perl_sv_len_utf8(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_len_utf8(sv); } #undef Perl_sv_magic void -Perl_sv_magic(void *pPerl, SV* sv, SV* obj, int how, const char* name, I32 namlen) +Perl_sv_magic(pTHXo_ SV* sv, SV* obj, int how, const char* name, I32 namlen) { ((CPerlObj*)pPerl)->Perl_sv_magic(sv, obj, how, name, namlen); } #undef Perl_sv_mortalcopy SV* -Perl_sv_mortalcopy(void *pPerl, SV* oldsv) +Perl_sv_mortalcopy(pTHXo_ SV* oldsv) { return ((CPerlObj*)pPerl)->Perl_sv_mortalcopy(oldsv); } #undef Perl_sv_newmortal SV* -Perl_sv_newmortal(void *pPerl) +Perl_sv_newmortal(pTHXo) { return ((CPerlObj*)pPerl)->Perl_sv_newmortal(); } #undef Perl_sv_newref SV* -Perl_sv_newref(void *pPerl, SV* sv) +Perl_sv_newref(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_newref(sv); } #undef Perl_sv_peek char* -Perl_sv_peek(void *pPerl, SV* sv) +Perl_sv_peek(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_peek(sv); } #undef Perl_sv_pos_u2b void -Perl_sv_pos_u2b(void *pPerl, SV* sv, I32* offsetp, I32* lenp) +Perl_sv_pos_u2b(pTHXo_ SV* sv, I32* offsetp, I32* lenp) { ((CPerlObj*)pPerl)->Perl_sv_pos_u2b(sv, offsetp, lenp); } #undef Perl_sv_pos_b2u void -Perl_sv_pos_b2u(void *pPerl, SV* sv, I32* offsetp) +Perl_sv_pos_b2u(pTHXo_ SV* sv, I32* offsetp) { ((CPerlObj*)pPerl)->Perl_sv_pos_b2u(sv, offsetp); } #undef Perl_sv_pvn_force char* -Perl_sv_pvn_force(void *pPerl, SV* sv, STRLEN* lp) +Perl_sv_pvn_force(pTHXo_ SV* sv, STRLEN* lp) { return ((CPerlObj*)pPerl)->Perl_sv_pvn_force(sv, lp); } #undef Perl_sv_reftype char* -Perl_sv_reftype(void *pPerl, SV* sv, int ob) +Perl_sv_reftype(pTHXo_ SV* sv, int ob) { return ((CPerlObj*)pPerl)->Perl_sv_reftype(sv, ob); } #undef Perl_sv_replace void -Perl_sv_replace(void *pPerl, SV* sv, SV* nsv) +Perl_sv_replace(pTHXo_ SV* sv, SV* nsv) { ((CPerlObj*)pPerl)->Perl_sv_replace(sv, nsv); } #undef Perl_sv_report_used void -Perl_sv_report_used(void *pPerl) +Perl_sv_report_used(pTHXo) { ((CPerlObj*)pPerl)->Perl_sv_report_used(); } #undef Perl_sv_reset void -Perl_sv_reset(void *pPerl, char* s, HV* stash) +Perl_sv_reset(pTHXo_ char* s, HV* stash) { ((CPerlObj*)pPerl)->Perl_sv_reset(s, stash); } +#undef Perl_sv_setpvf +void +Perl_sv_setpvf(pTHXo_ SV* sv, const char* pat) +{ + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_sv_vsetpvf(sv, pat, &args); + va_end(args); +} + +#undef Perl_sv_vsetpvf +void +Perl_sv_vsetpvf(pTHXo_ SV* sv, const char* pat, va_list* args) +{ + ((CPerlObj*)pPerl)->Perl_sv_vsetpvf(sv, pat, args); +} + #undef Perl_sv_setiv void -Perl_sv_setiv(void *pPerl, SV* sv, IV num) +Perl_sv_setiv(pTHXo_ SV* sv, IV num) { ((CPerlObj*)pPerl)->Perl_sv_setiv(sv, num); } #undef Perl_sv_setpviv void -Perl_sv_setpviv(void *pPerl, SV* sv, IV num) +Perl_sv_setpviv(pTHXo_ SV* sv, IV num) { ((CPerlObj*)pPerl)->Perl_sv_setpviv(sv, num); } #undef Perl_sv_setuv void -Perl_sv_setuv(void *pPerl, SV* sv, UV num) +Perl_sv_setuv(pTHXo_ SV* sv, UV num) { ((CPerlObj*)pPerl)->Perl_sv_setuv(sv, num); } #undef Perl_sv_setnv void -Perl_sv_setnv(void *pPerl, SV* sv, NV num) +Perl_sv_setnv(pTHXo_ SV* sv, NV num) { ((CPerlObj*)pPerl)->Perl_sv_setnv(sv, num); } #undef Perl_sv_setref_iv SV* -Perl_sv_setref_iv(void *pPerl, SV* rv, const char* classname, IV iv) +Perl_sv_setref_iv(pTHXo_ SV* rv, const char* classname, IV iv) { return ((CPerlObj*)pPerl)->Perl_sv_setref_iv(rv, classname, iv); } #undef Perl_sv_setref_nv SV* -Perl_sv_setref_nv(void *pPerl, SV* rv, const char* classname, NV nv) +Perl_sv_setref_nv(pTHXo_ SV* rv, const char* classname, NV nv) { return ((CPerlObj*)pPerl)->Perl_sv_setref_nv(rv, classname, nv); } #undef Perl_sv_setref_pv SV* -Perl_sv_setref_pv(void *pPerl, SV* rv, const char* classname, void* pv) +Perl_sv_setref_pv(pTHXo_ SV* rv, const char* classname, void* pv) { return ((CPerlObj*)pPerl)->Perl_sv_setref_pv(rv, classname, pv); } #undef Perl_sv_setref_pvn SV* -Perl_sv_setref_pvn(void *pPerl, SV* rv, const char* classname, char* pv, STRLEN n) +Perl_sv_setref_pvn(pTHXo_ SV* rv, const char* classname, char* pv, STRLEN n) { return ((CPerlObj*)pPerl)->Perl_sv_setref_pvn(rv, classname, pv, n); } #undef Perl_sv_setpv void -Perl_sv_setpv(void *pPerl, SV* sv, const char* ptr) +Perl_sv_setpv(pTHXo_ SV* sv, const char* ptr) { ((CPerlObj*)pPerl)->Perl_sv_setpv(sv, ptr); } #undef Perl_sv_setpvn void -Perl_sv_setpvn(void *pPerl, SV* sv, const char* ptr, STRLEN len) +Perl_sv_setpvn(pTHXo_ SV* sv, const char* ptr, STRLEN len) { ((CPerlObj*)pPerl)->Perl_sv_setpvn(sv, ptr, len); } #undef Perl_sv_setsv void -Perl_sv_setsv(void *pPerl, SV* dsv, SV* ssv) +Perl_sv_setsv(pTHXo_ SV* dsv, SV* ssv) { ((CPerlObj*)pPerl)->Perl_sv_setsv(dsv, ssv); } #undef Perl_sv_taint void -Perl_sv_taint(void *pPerl, SV* sv) +Perl_sv_taint(pTHXo_ SV* sv) { ((CPerlObj*)pPerl)->Perl_sv_taint(sv); } #undef Perl_sv_tainted bool -Perl_sv_tainted(void *pPerl, SV* sv) +Perl_sv_tainted(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_tainted(sv); } #undef Perl_sv_unmagic int -Perl_sv_unmagic(void *pPerl, SV* sv, int type) +Perl_sv_unmagic(pTHXo_ SV* sv, int type) { return ((CPerlObj*)pPerl)->Perl_sv_unmagic(sv, type); } #undef Perl_sv_unref void -Perl_sv_unref(void *pPerl, SV* sv) +Perl_sv_unref(pTHXo_ SV* sv) { ((CPerlObj*)pPerl)->Perl_sv_unref(sv); } #undef Perl_sv_untaint void -Perl_sv_untaint(void *pPerl, SV* sv) +Perl_sv_untaint(pTHXo_ SV* sv) { ((CPerlObj*)pPerl)->Perl_sv_untaint(sv); } #undef Perl_sv_upgrade bool -Perl_sv_upgrade(void *pPerl, SV* sv, U32 mt) +Perl_sv_upgrade(pTHXo_ SV* sv, U32 mt) { return ((CPerlObj*)pPerl)->Perl_sv_upgrade(sv, mt); } #undef Perl_sv_usepvn void -Perl_sv_usepvn(void *pPerl, SV* sv, char* ptr, STRLEN len) +Perl_sv_usepvn(pTHXo_ SV* sv, char* ptr, STRLEN len) { ((CPerlObj*)pPerl)->Perl_sv_usepvn(sv, ptr, len); } #undef Perl_sv_vcatpvfn void -Perl_sv_vcatpvfn(void *pPerl, SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *used_locale) +Perl_sv_vcatpvfn(pTHXo_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *used_locale) { ((CPerlObj*)pPerl)->Perl_sv_vcatpvfn(sv, pat, patlen, args, svargs, svmax, used_locale); } #undef Perl_sv_vsetpvfn void -Perl_sv_vsetpvfn(void *pPerl, SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *used_locale) +Perl_sv_vsetpvfn(pTHXo_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *used_locale) { ((CPerlObj*)pPerl)->Perl_sv_vsetpvfn(sv, pat, patlen, args, svargs, svmax, used_locale); } #undef Perl_swash_init SV* -Perl_swash_init(void *pPerl, char* pkg, char* name, SV* listsv, I32 minbits, I32 none) +Perl_swash_init(pTHXo_ char* pkg, char* name, SV* listsv, I32 minbits, I32 none) { return ((CPerlObj*)pPerl)->Perl_swash_init(pkg, name, listsv, minbits, none); } #undef Perl_swash_fetch UV -Perl_swash_fetch(void *pPerl, SV *sv, U8 *ptr) +Perl_swash_fetch(pTHXo_ SV *sv, U8 *ptr) { return ((CPerlObj*)pPerl)->Perl_swash_fetch(sv, ptr); } #undef Perl_taint_env void -Perl_taint_env(void *pPerl) +Perl_taint_env(pTHXo) { ((CPerlObj*)pPerl)->Perl_taint_env(); } #undef Perl_taint_proper void -Perl_taint_proper(void *pPerl, const char* f, char* s) +Perl_taint_proper(pTHXo_ const char* f, char* s) { ((CPerlObj*)pPerl)->Perl_taint_proper(f, s); } #undef Perl_to_utf8_lower UV -Perl_to_utf8_lower(void *pPerl, U8 *p) +Perl_to_utf8_lower(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_to_utf8_lower(p); } #undef Perl_to_utf8_upper UV -Perl_to_utf8_upper(void *pPerl, U8 *p) +Perl_to_utf8_upper(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_to_utf8_upper(p); } #undef Perl_to_utf8_title UV -Perl_to_utf8_title(void *pPerl, U8 *p) +Perl_to_utf8_title(pTHXo_ U8 *p) { return ((CPerlObj*)pPerl)->Perl_to_utf8_title(p); } @@ -3907,7 +4177,7 @@ Perl_to_utf8_title(void *pPerl, U8 *p) #undef Perl_unlnk I32 -Perl_unlnk(void *pPerl, char* f) +Perl_unlnk(pTHXo_ char* f) { return ((CPerlObj*)pPerl)->Perl_unlnk(f); } @@ -3916,7 +4186,7 @@ Perl_unlnk(void *pPerl, char* f) #undef Perl_unlock_condpair void -Perl_unlock_condpair(void *pPerl, void* svv) +Perl_unlock_condpair(pTHXo_ void* svv) { ((CPerlObj*)pPerl)->Perl_unlock_condpair(svv); } @@ -3924,105 +4194,139 @@ Perl_unlock_condpair(void *pPerl, void* svv) #undef Perl_unsharepvn void -Perl_unsharepvn(void *pPerl, const char* sv, I32 len, U32 hash) +Perl_unsharepvn(pTHXo_ const char* sv, I32 len, U32 hash) { ((CPerlObj*)pPerl)->Perl_unsharepvn(sv, len, hash); } #undef Perl_unshare_hek void -Perl_unshare_hek(void *pPerl, HEK* hek) +Perl_unshare_hek(pTHXo_ HEK* hek) { ((CPerlObj*)pPerl)->Perl_unshare_hek(hek); } #undef Perl_utilize void -Perl_utilize(void *pPerl, int aver, I32 floor, OP* version, OP* id, OP* arg) +Perl_utilize(pTHXo_ int aver, I32 floor, OP* version, OP* id, OP* arg) { ((CPerlObj*)pPerl)->Perl_utilize(aver, floor, version, id, arg); } #undef Perl_utf16_to_utf8 U8* -Perl_utf16_to_utf8(void *pPerl, U16* p, U8 *d, I32 bytelen) +Perl_utf16_to_utf8(pTHXo_ U16* p, U8 *d, I32 bytelen) { return ((CPerlObj*)pPerl)->Perl_utf16_to_utf8(p, d, bytelen); } #undef Perl_utf16_to_utf8_reversed U8* -Perl_utf16_to_utf8_reversed(void *pPerl, U16* p, U8 *d, I32 bytelen) +Perl_utf16_to_utf8_reversed(pTHXo_ U16* p, U8 *d, I32 bytelen) { return ((CPerlObj*)pPerl)->Perl_utf16_to_utf8_reversed(p, d, bytelen); } #undef Perl_utf8_distance I32 -Perl_utf8_distance(void *pPerl, U8 *a, U8 *b) +Perl_utf8_distance(pTHXo_ U8 *a, U8 *b) { return ((CPerlObj*)pPerl)->Perl_utf8_distance(a, b); } #undef Perl_utf8_hop U8* -Perl_utf8_hop(void *pPerl, U8 *s, I32 off) +Perl_utf8_hop(pTHXo_ U8 *s, I32 off) { return ((CPerlObj*)pPerl)->Perl_utf8_hop(s, off); } #undef Perl_utf8_to_uv UV -Perl_utf8_to_uv(void *pPerl, U8 *s, I32* retlen) +Perl_utf8_to_uv(pTHXo_ U8 *s, I32* retlen) { return ((CPerlObj*)pPerl)->Perl_utf8_to_uv(s, retlen); } #undef Perl_uv_to_utf8 U8* -Perl_uv_to_utf8(void *pPerl, U8 *d, UV uv) +Perl_uv_to_utf8(pTHXo_ U8 *d, UV uv) { return ((CPerlObj*)pPerl)->Perl_uv_to_utf8(d, uv); } #undef Perl_vivify_defelem void -Perl_vivify_defelem(void *pPerl, SV* sv) +Perl_vivify_defelem(pTHXo_ SV* sv) { ((CPerlObj*)pPerl)->Perl_vivify_defelem(sv); } #undef Perl_vivify_ref void -Perl_vivify_ref(void *pPerl, SV* sv, U32 to_what) +Perl_vivify_ref(pTHXo_ SV* sv, U32 to_what) { ((CPerlObj*)pPerl)->Perl_vivify_ref(sv, to_what); } #undef Perl_wait4pid I32 -Perl_wait4pid(void *pPerl, int pid, int* statusp, int flags) +Perl_wait4pid(pTHXo_ int pid, int* statusp, int flags) { return ((CPerlObj*)pPerl)->Perl_wait4pid(pid, statusp, flags); } +#undef Perl_warn +void +Perl_warn(pTHXo_ const char* pat) +{ + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_vwarn(pat, &args); + va_end(args); +} + +#undef Perl_vwarn +void +Perl_vwarn(pTHXo_ const char* pat, va_list* args) +{ + ((CPerlObj*)pPerl)->Perl_vwarn(pat, args); +} + +#undef Perl_warner +void +Perl_warner(pTHXo_ U32 err, const char* pat) +{ + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_vwarner(err, pat, &args); + va_end(args); +} + +#undef Perl_vwarner +void +Perl_vwarner(pTHXo_ U32 err, const char* pat, va_list* args) +{ + ((CPerlObj*)pPerl)->Perl_vwarner(err, pat, args); +} + #undef Perl_watch void -Perl_watch(void *pPerl, char** addr) +Perl_watch(pTHXo_ char** addr) { ((CPerlObj*)pPerl)->Perl_watch(addr); } #undef Perl_whichsig I32 -Perl_whichsig(void *pPerl, char* sig) +Perl_whichsig(pTHXo_ char* sig) { return ((CPerlObj*)pPerl)->Perl_whichsig(sig); } #undef Perl_yyerror int -Perl_yyerror(void *pPerl, char* s) +Perl_yyerror(pTHXo_ char* s) { return ((CPerlObj*)pPerl)->Perl_yyerror(s); } @@ -4030,7 +4334,7 @@ Perl_yyerror(void *pPerl, char* s) #undef Perl_yylex int -Perl_yylex(void *pPerl, YYSTYPE *lvalp, int *lcharp) +Perl_yylex(pTHXo_ YYSTYPE *lvalp, int *lcharp) { return ((CPerlObj*)pPerl)->Perl_yylex(lvalp, lcharp); } @@ -4038,7 +4342,7 @@ Perl_yylex(void *pPerl, YYSTYPE *lvalp, int *lcharp) #undef Perl_yylex int -Perl_yylex(void *pPerl) +Perl_yylex(pTHXo) { return ((CPerlObj*)pPerl)->Perl_yylex(); } @@ -4046,14 +4350,14 @@ Perl_yylex(void *pPerl) #undef Perl_yyparse int -Perl_yyparse(void *pPerl) +Perl_yyparse(pTHXo) { return ((CPerlObj*)pPerl)->Perl_yyparse(); } #undef Perl_yywarn int -Perl_yywarn(void *pPerl, char* s) +Perl_yywarn(pTHXo_ char* s) { return ((CPerlObj*)pPerl)->Perl_yywarn(s); } @@ -4061,94 +4365,106 @@ Perl_yywarn(void *pPerl, char* s) #undef Perl_dump_mstats void -Perl_dump_mstats(void *pPerl, char* s) +Perl_dump_mstats(pTHXo_ char* s) { ((CPerlObj*)pPerl)->Perl_dump_mstats(s); } #undef Perl_malloc Malloc_t -Perl_malloc(void *pPerl, MEM_SIZE nbytes) +Perl_malloc(MEM_SIZE nbytes) { + dTHXo; return ((CPerlObj*)pPerl)->Perl_malloc(nbytes); } #undef Perl_calloc Malloc_t -Perl_calloc(void *pPerl, MEM_SIZE elements, MEM_SIZE size) +Perl_calloc(MEM_SIZE elements, MEM_SIZE size) { + dTHXo; return ((CPerlObj*)pPerl)->Perl_calloc(elements, size); } #undef Perl_realloc Malloc_t -Perl_realloc(void *pPerl, Malloc_t where, MEM_SIZE nbytes) +Perl_realloc(Malloc_t where, MEM_SIZE nbytes) { + dTHXo; return ((CPerlObj*)pPerl)->Perl_realloc(where, nbytes); } #undef Perl_mfree Free_t -Perl_mfree(void *pPerl, Malloc_t where) +Perl_mfree(Malloc_t where) { + dTHXo; ((CPerlObj*)pPerl)->Perl_mfree(where); } #endif #undef Perl_safesysmalloc Malloc_t -Perl_safesysmalloc(void *pPerl, MEM_SIZE nbytes) +Perl_safesysmalloc(MEM_SIZE nbytes) { + dTHXo; return ((CPerlObj*)pPerl)->Perl_safesysmalloc(nbytes); } #undef Perl_safesyscalloc Malloc_t -Perl_safesyscalloc(void *pPerl, MEM_SIZE elements, MEM_SIZE size) +Perl_safesyscalloc(MEM_SIZE elements, MEM_SIZE size) { + dTHXo; return ((CPerlObj*)pPerl)->Perl_safesyscalloc(elements, size); } #undef Perl_safesysrealloc Malloc_t -Perl_safesysrealloc(void *pPerl, Malloc_t where, MEM_SIZE nbytes) +Perl_safesysrealloc(Malloc_t where, MEM_SIZE nbytes) { + dTHXo; return ((CPerlObj*)pPerl)->Perl_safesysrealloc(where, nbytes); } #undef Perl_safesysfree Free_t -Perl_safesysfree(void *pPerl, Malloc_t where) +Perl_safesysfree(Malloc_t where) { + dTHXo; ((CPerlObj*)pPerl)->Perl_safesysfree(where); } #if defined(LEAKTEST) #undef Perl_safexmalloc Malloc_t -Perl_safexmalloc(void *pPerl, I32 x, MEM_SIZE size) +Perl_safexmalloc(I32 x, MEM_SIZE size) { + dTHXo; return ((CPerlObj*)pPerl)->Perl_safexmalloc(x, size); } #undef Perl_safexcalloc Malloc_t -Perl_safexcalloc(void *pPerl, I32 x, MEM_SIZE elements, MEM_SIZE size) +Perl_safexcalloc(I32 x, MEM_SIZE elements, MEM_SIZE size) { + dTHXo; return ((CPerlObj*)pPerl)->Perl_safexcalloc(x, elements, size); } #undef Perl_safexrealloc Malloc_t -Perl_safexrealloc(void *pPerl, Malloc_t where, MEM_SIZE size) +Perl_safexrealloc(Malloc_t where, MEM_SIZE size) { + dTHXo; return ((CPerlObj*)pPerl)->Perl_safexrealloc(where, size); } #undef Perl_safexfree void -Perl_safexfree(void *pPerl, Malloc_t where) +Perl_safexfree(Malloc_t where) { + dTHXo; ((CPerlObj*)pPerl)->Perl_safexfree(where); } #endif @@ -4156,7 +4472,7 @@ Perl_safexfree(void *pPerl, Malloc_t where) #undef Perl_GetVars struct perl_vars * -Perl_GetVars(void *pPerl) +Perl_GetVars(pTHXo) { return ((CPerlObj*)pPerl)->Perl_GetVars(); } @@ -4164,210 +4480,281 @@ Perl_GetVars(void *pPerl) #undef Perl_runops_standard int -Perl_runops_standard(void *pPerl) +Perl_runops_standard(pTHXo) { return ((CPerlObj*)pPerl)->Perl_runops_standard(); } #undef Perl_runops_debug int -Perl_runops_debug(void *pPerl) +Perl_runops_debug(pTHXo) { return ((CPerlObj*)pPerl)->Perl_runops_debug(); } +#undef Perl_sv_catpvf_mg +void +Perl_sv_catpvf_mg(pTHXo_ SV *sv, const char* pat) +{ + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_sv_vcatpvf_mg(sv, pat, &args); + va_end(args); +} + +#undef Perl_sv_vcatpvf_mg +void +Perl_sv_vcatpvf_mg(pTHXo_ SV* sv, const char* pat, va_list* args) +{ + ((CPerlObj*)pPerl)->Perl_sv_vcatpvf_mg(sv, pat, args); +} + #undef Perl_sv_catpv_mg void -Perl_sv_catpv_mg(void *pPerl, SV *sv, const char *ptr) +Perl_sv_catpv_mg(pTHXo_ SV *sv, const char *ptr) { ((CPerlObj*)pPerl)->Perl_sv_catpv_mg(sv, ptr); } #undef Perl_sv_catpvn_mg void -Perl_sv_catpvn_mg(void *pPerl, SV *sv, const char *ptr, STRLEN len) +Perl_sv_catpvn_mg(pTHXo_ SV *sv, const char *ptr, STRLEN len) { ((CPerlObj*)pPerl)->Perl_sv_catpvn_mg(sv, ptr, len); } #undef Perl_sv_catsv_mg void -Perl_sv_catsv_mg(void *pPerl, SV *dstr, SV *sstr) +Perl_sv_catsv_mg(pTHXo_ SV *dstr, SV *sstr) { ((CPerlObj*)pPerl)->Perl_sv_catsv_mg(dstr, sstr); } +#undef Perl_sv_setpvf_mg +void +Perl_sv_setpvf_mg(pTHXo_ SV *sv, const char* pat) +{ + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_sv_vsetpvf_mg(sv, pat, &args); + va_end(args); +} + +#undef Perl_sv_vsetpvf_mg +void +Perl_sv_vsetpvf_mg(pTHXo_ SV* sv, const char* pat, va_list* args) +{ + ((CPerlObj*)pPerl)->Perl_sv_vsetpvf_mg(sv, pat, args); +} + #undef Perl_sv_setiv_mg void -Perl_sv_setiv_mg(void *pPerl, SV *sv, IV i) +Perl_sv_setiv_mg(pTHXo_ SV *sv, IV i) { ((CPerlObj*)pPerl)->Perl_sv_setiv_mg(sv, i); } #undef Perl_sv_setpviv_mg void -Perl_sv_setpviv_mg(void *pPerl, SV *sv, IV iv) +Perl_sv_setpviv_mg(pTHXo_ SV *sv, IV iv) { ((CPerlObj*)pPerl)->Perl_sv_setpviv_mg(sv, iv); } #undef Perl_sv_setuv_mg void -Perl_sv_setuv_mg(void *pPerl, SV *sv, UV u) +Perl_sv_setuv_mg(pTHXo_ SV *sv, UV u) { ((CPerlObj*)pPerl)->Perl_sv_setuv_mg(sv, u); } #undef Perl_sv_setnv_mg void -Perl_sv_setnv_mg(void *pPerl, SV *sv, NV num) +Perl_sv_setnv_mg(pTHXo_ SV *sv, NV num) { ((CPerlObj*)pPerl)->Perl_sv_setnv_mg(sv, num); } #undef Perl_sv_setpv_mg void -Perl_sv_setpv_mg(void *pPerl, SV *sv, const char *ptr) +Perl_sv_setpv_mg(pTHXo_ SV *sv, const char *ptr) { ((CPerlObj*)pPerl)->Perl_sv_setpv_mg(sv, ptr); } #undef Perl_sv_setpvn_mg void -Perl_sv_setpvn_mg(void *pPerl, SV *sv, const char *ptr, STRLEN len) +Perl_sv_setpvn_mg(pTHXo_ SV *sv, const char *ptr, STRLEN len) { ((CPerlObj*)pPerl)->Perl_sv_setpvn_mg(sv, ptr, len); } #undef Perl_sv_setsv_mg void -Perl_sv_setsv_mg(void *pPerl, SV *dstr, SV *sstr) +Perl_sv_setsv_mg(pTHXo_ SV *dstr, SV *sstr) { ((CPerlObj*)pPerl)->Perl_sv_setsv_mg(dstr, sstr); } #undef Perl_sv_usepvn_mg void -Perl_sv_usepvn_mg(void *pPerl, SV *sv, char *ptr, STRLEN len) +Perl_sv_usepvn_mg(pTHXo_ SV *sv, char *ptr, STRLEN len) { ((CPerlObj*)pPerl)->Perl_sv_usepvn_mg(sv, ptr, len); } #undef Perl_get_vtbl MGVTBL* -Perl_get_vtbl(void *pPerl, int vtbl_id) +Perl_get_vtbl(pTHXo_ int vtbl_id) { return ((CPerlObj*)pPerl)->Perl_get_vtbl(vtbl_id); } #undef Perl_pv_display char* -Perl_pv_display(void *pPerl, SV *sv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim) +Perl_pv_display(pTHXo_ SV *sv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim) { return ((CPerlObj*)pPerl)->Perl_pv_display(sv, pv, cur, len, pvlim); } +#undef Perl_dump_indent +void +Perl_dump_indent(pTHXo_ I32 level, PerlIO *file, const char* pat) +{ + va_list args; + va_start(args, pat); + ((CPerlObj*)pPerl)->Perl_dump_vindent(level, file, pat, &args); + va_end(args); +} + +#undef Perl_dump_vindent +void +Perl_dump_vindent(pTHXo_ I32 level, PerlIO *file, const char* pat, va_list *args) +{ + ((CPerlObj*)pPerl)->Perl_dump_vindent(level, file, pat, args); +} + #undef Perl_do_gv_dump void -Perl_do_gv_dump(void *pPerl, I32 level, PerlIO *file, char *name, GV *sv) +Perl_do_gv_dump(pTHXo_ I32 level, PerlIO *file, char *name, GV *sv) { ((CPerlObj*)pPerl)->Perl_do_gv_dump(level, file, name, sv); } #undef Perl_do_gvgv_dump void -Perl_do_gvgv_dump(void *pPerl, I32 level, PerlIO *file, char *name, GV *sv) +Perl_do_gvgv_dump(pTHXo_ I32 level, PerlIO *file, char *name, GV *sv) { ((CPerlObj*)pPerl)->Perl_do_gvgv_dump(level, file, name, sv); } #undef Perl_do_hv_dump void -Perl_do_hv_dump(void *pPerl, I32 level, PerlIO *file, char *name, HV *sv) +Perl_do_hv_dump(pTHXo_ I32 level, PerlIO *file, char *name, HV *sv) { ((CPerlObj*)pPerl)->Perl_do_hv_dump(level, file, name, sv); } #undef Perl_do_magic_dump void -Perl_do_magic_dump(void *pPerl, I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim) +Perl_do_magic_dump(pTHXo_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim) { ((CPerlObj*)pPerl)->Perl_do_magic_dump(level, file, mg, nest, maxnest, dumpops, pvlim); } #undef Perl_do_op_dump void -Perl_do_op_dump(void *pPerl, I32 level, PerlIO *file, OP *o) +Perl_do_op_dump(pTHXo_ I32 level, PerlIO *file, OP *o) { ((CPerlObj*)pPerl)->Perl_do_op_dump(level, file, o); } #undef Perl_do_pmop_dump void -Perl_do_pmop_dump(void *pPerl, I32 level, PerlIO *file, PMOP *pm) +Perl_do_pmop_dump(pTHXo_ I32 level, PerlIO *file, PMOP *pm) { ((CPerlObj*)pPerl)->Perl_do_pmop_dump(level, file, pm); } #undef Perl_do_sv_dump void -Perl_do_sv_dump(void *pPerl, I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim) +Perl_do_sv_dump(pTHXo_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim) { ((CPerlObj*)pPerl)->Perl_do_sv_dump(level, file, sv, nest, maxnest, dumpops, pvlim); } #undef Perl_magic_dump void -Perl_magic_dump(void *pPerl, MAGIC *mg) +Perl_magic_dump(pTHXo_ MAGIC *mg) { ((CPerlObj*)pPerl)->Perl_magic_dump(mg); } +#undef Perl_default_protect +void* +Perl_default_protect(pTHXo_ int *excpt, protect_body_t body) +{ + void* retval; + va_list args; + va_start(args, body); + retval = ((CPerlObj*)pPerl)->Perl_vdefault_protect(excpt, body, &args); + va_end(args); + return retval; + +} + +#undef Perl_vdefault_protect +void* +Perl_vdefault_protect(pTHXo_ int *excpt, protect_body_t body, va_list *args) +{ + return ((CPerlObj*)pPerl)->Perl_vdefault_protect(excpt, body, args); +} + #undef Perl_reginitcolors void -Perl_reginitcolors(void *pPerl) +Perl_reginitcolors(pTHXo) { ((CPerlObj*)pPerl)->Perl_reginitcolors(); } #undef Perl_sv_2pv_nolen char* -Perl_sv_2pv_nolen(void *pPerl, SV* sv) +Perl_sv_2pv_nolen(pTHXo_ SV* sv) { return ((CPerlObj*)pPerl)->Perl_sv_2pv_nolen(sv); } #undef Perl_sv_pv char* -Perl_sv_pv(void *pPerl, SV *sv) +Perl_sv_pv(pTHXo_ SV *sv) { return ((CPerlObj*)pPerl)->Perl_sv_pv(sv); } #undef Perl_sv_force_normal void -Perl_sv_force_normal(void *pPerl, SV *sv) +Perl_sv_force_normal(pTHXo_ SV *sv) { ((CPerlObj*)pPerl)->Perl_sv_force_normal(sv); } #undef Perl_tmps_grow void -Perl_tmps_grow(void *pPerl, I32 n) +Perl_tmps_grow(pTHXo_ I32 n) { ((CPerlObj*)pPerl)->Perl_tmps_grow(n); } #undef Perl_sv_rvweaken SV* -Perl_sv_rvweaken(void *pPerl, SV *sv) +Perl_sv_rvweaken(pTHXo_ SV *sv) { return ((CPerlObj*)pPerl)->Perl_sv_rvweaken(sv); } #undef Perl_magic_killbackrefs int -Perl_magic_killbackrefs(void *pPerl, SV *sv, MAGIC *mg) +Perl_magic_killbackrefs(pTHXo_ SV *sv, MAGIC *mg) { return ((CPerlObj*)pPerl)->Perl_magic_killbackrefs(sv, mg); } @@ -4433,2650 +4820,2660 @@ Perl_magic_killbackrefs(void *pPerl, SV *sv, MAGIC *mg) #undef Perl_ck_anoncode OP * -Perl_ck_anoncode(void *pPerl, OP *o) +Perl_ck_anoncode(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_anoncode(o); } #undef Perl_ck_bitop OP * -Perl_ck_bitop(void *pPerl, OP *o) +Perl_ck_bitop(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_bitop(o); } #undef Perl_ck_concat OP * -Perl_ck_concat(void *pPerl, OP *o) +Perl_ck_concat(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_concat(o); } #undef Perl_ck_defined OP * -Perl_ck_defined(void *pPerl, OP *o) +Perl_ck_defined(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_defined(o); } #undef Perl_ck_delete OP * -Perl_ck_delete(void *pPerl, OP *o) +Perl_ck_delete(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_delete(o); } #undef Perl_ck_eof OP * -Perl_ck_eof(void *pPerl, OP *o) +Perl_ck_eof(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_eof(o); } #undef Perl_ck_eval OP * -Perl_ck_eval(void *pPerl, OP *o) +Perl_ck_eval(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_eval(o); } #undef Perl_ck_exec OP * -Perl_ck_exec(void *pPerl, OP *o) +Perl_ck_exec(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_exec(o); } #undef Perl_ck_exists OP * -Perl_ck_exists(void *pPerl, OP *o) +Perl_ck_exists(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_exists(o); } #undef Perl_ck_ftst OP * -Perl_ck_ftst(void *pPerl, OP *o) +Perl_ck_ftst(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_ftst(o); } #undef Perl_ck_fun OP * -Perl_ck_fun(void *pPerl, OP *o) +Perl_ck_fun(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_fun(o); } #undef Perl_ck_fun_locale OP * -Perl_ck_fun_locale(void *pPerl, OP *o) +Perl_ck_fun_locale(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_fun_locale(o); } #undef Perl_ck_glob OP * -Perl_ck_glob(void *pPerl, OP *o) +Perl_ck_glob(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_glob(o); } #undef Perl_ck_grep OP * -Perl_ck_grep(void *pPerl, OP *o) +Perl_ck_grep(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_grep(o); } #undef Perl_ck_index OP * -Perl_ck_index(void *pPerl, OP *o) +Perl_ck_index(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_index(o); } #undef Perl_ck_lengthconst OP * -Perl_ck_lengthconst(void *pPerl, OP *o) +Perl_ck_lengthconst(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_lengthconst(o); } #undef Perl_ck_lfun OP * -Perl_ck_lfun(void *pPerl, OP *o) +Perl_ck_lfun(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_lfun(o); } #undef Perl_ck_listiob OP * -Perl_ck_listiob(void *pPerl, OP *o) +Perl_ck_listiob(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_listiob(o); } #undef Perl_ck_match OP * -Perl_ck_match(void *pPerl, OP *o) +Perl_ck_match(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_match(o); } #undef Perl_ck_null OP * -Perl_ck_null(void *pPerl, OP *o) +Perl_ck_null(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_null(o); } #undef Perl_ck_repeat OP * -Perl_ck_repeat(void *pPerl, OP *o) +Perl_ck_repeat(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_repeat(o); } #undef Perl_ck_require OP * -Perl_ck_require(void *pPerl, OP *o) +Perl_ck_require(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_require(o); } #undef Perl_ck_rfun OP * -Perl_ck_rfun(void *pPerl, OP *o) +Perl_ck_rfun(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_rfun(o); } #undef Perl_ck_rvconst OP * -Perl_ck_rvconst(void *pPerl, OP *o) +Perl_ck_rvconst(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_rvconst(o); } #undef Perl_ck_sassign OP * -Perl_ck_sassign(void *pPerl, OP *o) +Perl_ck_sassign(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_sassign(o); } #undef Perl_ck_scmp OP * -Perl_ck_scmp(void *pPerl, OP *o) +Perl_ck_scmp(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_scmp(o); } #undef Perl_ck_select OP * -Perl_ck_select(void *pPerl, OP *o) +Perl_ck_select(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_select(o); } #undef Perl_ck_shift OP * -Perl_ck_shift(void *pPerl, OP *o) +Perl_ck_shift(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_shift(o); } #undef Perl_ck_sort OP * -Perl_ck_sort(void *pPerl, OP *o) +Perl_ck_sort(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_sort(o); } #undef Perl_ck_spair OP * -Perl_ck_spair(void *pPerl, OP *o) +Perl_ck_spair(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_spair(o); } #undef Perl_ck_split OP * -Perl_ck_split(void *pPerl, OP *o) +Perl_ck_split(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_split(o); } #undef Perl_ck_subr OP * -Perl_ck_subr(void *pPerl, OP *o) +Perl_ck_subr(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_subr(o); } #undef Perl_ck_svconst OP * -Perl_ck_svconst(void *pPerl, OP *o) +Perl_ck_svconst(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_svconst(o); } #undef Perl_ck_trunc OP * -Perl_ck_trunc(void *pPerl, OP *o) +Perl_ck_trunc(pTHXo_ OP *o) { return ((CPerlObj*)pPerl)->Perl_ck_trunc(o); } #undef Perl_pp_aassign OP * -Perl_pp_aassign(void *pPerl) +Perl_pp_aassign(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_aassign(); } #undef Perl_pp_abs OP * -Perl_pp_abs(void *pPerl) +Perl_pp_abs(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_abs(); } #undef Perl_pp_accept OP * -Perl_pp_accept(void *pPerl) +Perl_pp_accept(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_accept(); } #undef Perl_pp_add OP * -Perl_pp_add(void *pPerl) +Perl_pp_add(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_add(); } #undef Perl_pp_aelem OP * -Perl_pp_aelem(void *pPerl) +Perl_pp_aelem(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_aelem(); } #undef Perl_pp_aelemfast OP * -Perl_pp_aelemfast(void *pPerl) +Perl_pp_aelemfast(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_aelemfast(); } #undef Perl_pp_alarm OP * -Perl_pp_alarm(void *pPerl) +Perl_pp_alarm(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_alarm(); } #undef Perl_pp_and OP * -Perl_pp_and(void *pPerl) +Perl_pp_and(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_and(); } #undef Perl_pp_andassign OP * -Perl_pp_andassign(void *pPerl) +Perl_pp_andassign(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_andassign(); } #undef Perl_pp_anoncode OP * -Perl_pp_anoncode(void *pPerl) +Perl_pp_anoncode(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_anoncode(); } #undef Perl_pp_anonhash OP * -Perl_pp_anonhash(void *pPerl) +Perl_pp_anonhash(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_anonhash(); } #undef Perl_pp_anonlist OP * -Perl_pp_anonlist(void *pPerl) +Perl_pp_anonlist(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_anonlist(); } #undef Perl_pp_aslice OP * -Perl_pp_aslice(void *pPerl) +Perl_pp_aslice(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_aslice(); } #undef Perl_pp_atan2 OP * -Perl_pp_atan2(void *pPerl) +Perl_pp_atan2(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_atan2(); } #undef Perl_pp_av2arylen OP * -Perl_pp_av2arylen(void *pPerl) +Perl_pp_av2arylen(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_av2arylen(); } #undef Perl_pp_backtick OP * -Perl_pp_backtick(void *pPerl) +Perl_pp_backtick(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_backtick(); } #undef Perl_pp_bind OP * -Perl_pp_bind(void *pPerl) +Perl_pp_bind(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_bind(); } #undef Perl_pp_binmode OP * -Perl_pp_binmode(void *pPerl) +Perl_pp_binmode(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_binmode(); } #undef Perl_pp_bit_and OP * -Perl_pp_bit_and(void *pPerl) +Perl_pp_bit_and(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_bit_and(); } #undef Perl_pp_bit_or OP * -Perl_pp_bit_or(void *pPerl) +Perl_pp_bit_or(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_bit_or(); } #undef Perl_pp_bit_xor OP * -Perl_pp_bit_xor(void *pPerl) +Perl_pp_bit_xor(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_bit_xor(); } #undef Perl_pp_bless OP * -Perl_pp_bless(void *pPerl) +Perl_pp_bless(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_bless(); } #undef Perl_pp_caller OP * -Perl_pp_caller(void *pPerl) +Perl_pp_caller(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_caller(); } #undef Perl_pp_chdir OP * -Perl_pp_chdir(void *pPerl) +Perl_pp_chdir(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_chdir(); } #undef Perl_pp_chmod OP * -Perl_pp_chmod(void *pPerl) +Perl_pp_chmod(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_chmod(); } #undef Perl_pp_chomp OP * -Perl_pp_chomp(void *pPerl) +Perl_pp_chomp(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_chomp(); } #undef Perl_pp_chop OP * -Perl_pp_chop(void *pPerl) +Perl_pp_chop(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_chop(); } #undef Perl_pp_chown OP * -Perl_pp_chown(void *pPerl) +Perl_pp_chown(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_chown(); } #undef Perl_pp_chr OP * -Perl_pp_chr(void *pPerl) +Perl_pp_chr(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_chr(); } #undef Perl_pp_chroot OP * -Perl_pp_chroot(void *pPerl) +Perl_pp_chroot(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_chroot(); } #undef Perl_pp_close OP * -Perl_pp_close(void *pPerl) +Perl_pp_close(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_close(); } #undef Perl_pp_closedir OP * -Perl_pp_closedir(void *pPerl) +Perl_pp_closedir(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_closedir(); } #undef Perl_pp_complement OP * -Perl_pp_complement(void *pPerl) +Perl_pp_complement(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_complement(); } #undef Perl_pp_concat OP * -Perl_pp_concat(void *pPerl) +Perl_pp_concat(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_concat(); } #undef Perl_pp_cond_expr OP * -Perl_pp_cond_expr(void *pPerl) +Perl_pp_cond_expr(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_cond_expr(); } #undef Perl_pp_connect OP * -Perl_pp_connect(void *pPerl) +Perl_pp_connect(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_connect(); } #undef Perl_pp_const OP * -Perl_pp_const(void *pPerl) +Perl_pp_const(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_const(); } #undef Perl_pp_cos OP * -Perl_pp_cos(void *pPerl) +Perl_pp_cos(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_cos(); } #undef Perl_pp_crypt OP * -Perl_pp_crypt(void *pPerl) +Perl_pp_crypt(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_crypt(); } #undef Perl_pp_dbmclose OP * -Perl_pp_dbmclose(void *pPerl) +Perl_pp_dbmclose(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_dbmclose(); } #undef Perl_pp_dbmopen OP * -Perl_pp_dbmopen(void *pPerl) +Perl_pp_dbmopen(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_dbmopen(); } #undef Perl_pp_dbstate OP * -Perl_pp_dbstate(void *pPerl) +Perl_pp_dbstate(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_dbstate(); } #undef Perl_pp_defined OP * -Perl_pp_defined(void *pPerl) +Perl_pp_defined(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_defined(); } #undef Perl_pp_delete OP * -Perl_pp_delete(void *pPerl) +Perl_pp_delete(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_delete(); } #undef Perl_pp_die OP * -Perl_pp_die(void *pPerl) +Perl_pp_die(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_die(); } #undef Perl_pp_divide OP * -Perl_pp_divide(void *pPerl) +Perl_pp_divide(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_divide(); } #undef Perl_pp_dofile OP * -Perl_pp_dofile(void *pPerl) +Perl_pp_dofile(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_dofile(); } #undef Perl_pp_dump OP * -Perl_pp_dump(void *pPerl) +Perl_pp_dump(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_dump(); } #undef Perl_pp_each OP * -Perl_pp_each(void *pPerl) +Perl_pp_each(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_each(); } #undef Perl_pp_egrent OP * -Perl_pp_egrent(void *pPerl) +Perl_pp_egrent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_egrent(); } #undef Perl_pp_ehostent OP * -Perl_pp_ehostent(void *pPerl) +Perl_pp_ehostent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ehostent(); } #undef Perl_pp_enetent OP * -Perl_pp_enetent(void *pPerl) +Perl_pp_enetent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_enetent(); } #undef Perl_pp_enter OP * -Perl_pp_enter(void *pPerl) +Perl_pp_enter(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_enter(); } #undef Perl_pp_entereval OP * -Perl_pp_entereval(void *pPerl) +Perl_pp_entereval(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_entereval(); } #undef Perl_pp_enteriter OP * -Perl_pp_enteriter(void *pPerl) +Perl_pp_enteriter(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_enteriter(); } #undef Perl_pp_enterloop OP * -Perl_pp_enterloop(void *pPerl) +Perl_pp_enterloop(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_enterloop(); } #undef Perl_pp_entersub OP * -Perl_pp_entersub(void *pPerl) +Perl_pp_entersub(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_entersub(); } #undef Perl_pp_entertry OP * -Perl_pp_entertry(void *pPerl) +Perl_pp_entertry(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_entertry(); } #undef Perl_pp_enterwrite OP * -Perl_pp_enterwrite(void *pPerl) +Perl_pp_enterwrite(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_enterwrite(); } #undef Perl_pp_eof OP * -Perl_pp_eof(void *pPerl) +Perl_pp_eof(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_eof(); } #undef Perl_pp_eprotoent OP * -Perl_pp_eprotoent(void *pPerl) +Perl_pp_eprotoent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_eprotoent(); } #undef Perl_pp_epwent OP * -Perl_pp_epwent(void *pPerl) +Perl_pp_epwent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_epwent(); } #undef Perl_pp_eq OP * -Perl_pp_eq(void *pPerl) +Perl_pp_eq(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_eq(); } #undef Perl_pp_eservent OP * -Perl_pp_eservent(void *pPerl) +Perl_pp_eservent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_eservent(); } #undef Perl_pp_exec OP * -Perl_pp_exec(void *pPerl) +Perl_pp_exec(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_exec(); } #undef Perl_pp_exists OP * -Perl_pp_exists(void *pPerl) +Perl_pp_exists(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_exists(); } #undef Perl_pp_exit OP * -Perl_pp_exit(void *pPerl) +Perl_pp_exit(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_exit(); } #undef Perl_pp_exp OP * -Perl_pp_exp(void *pPerl) +Perl_pp_exp(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_exp(); } #undef Perl_pp_fcntl OP * -Perl_pp_fcntl(void *pPerl) +Perl_pp_fcntl(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_fcntl(); } #undef Perl_pp_fileno OP * -Perl_pp_fileno(void *pPerl) +Perl_pp_fileno(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_fileno(); } #undef Perl_pp_flip OP * -Perl_pp_flip(void *pPerl) +Perl_pp_flip(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_flip(); } #undef Perl_pp_flock OP * -Perl_pp_flock(void *pPerl) +Perl_pp_flock(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_flock(); } #undef Perl_pp_flop OP * -Perl_pp_flop(void *pPerl) +Perl_pp_flop(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_flop(); } #undef Perl_pp_fork OP * -Perl_pp_fork(void *pPerl) +Perl_pp_fork(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_fork(); } #undef Perl_pp_formline OP * -Perl_pp_formline(void *pPerl) +Perl_pp_formline(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_formline(); } #undef Perl_pp_ftatime OP * -Perl_pp_ftatime(void *pPerl) +Perl_pp_ftatime(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftatime(); } #undef Perl_pp_ftbinary OP * -Perl_pp_ftbinary(void *pPerl) +Perl_pp_ftbinary(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftbinary(); } #undef Perl_pp_ftblk OP * -Perl_pp_ftblk(void *pPerl) +Perl_pp_ftblk(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftblk(); } #undef Perl_pp_ftchr OP * -Perl_pp_ftchr(void *pPerl) +Perl_pp_ftchr(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftchr(); } #undef Perl_pp_ftctime OP * -Perl_pp_ftctime(void *pPerl) +Perl_pp_ftctime(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftctime(); } #undef Perl_pp_ftdir OP * -Perl_pp_ftdir(void *pPerl) +Perl_pp_ftdir(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftdir(); } #undef Perl_pp_fteexec OP * -Perl_pp_fteexec(void *pPerl) +Perl_pp_fteexec(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_fteexec(); } #undef Perl_pp_fteowned OP * -Perl_pp_fteowned(void *pPerl) +Perl_pp_fteowned(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_fteowned(); } #undef Perl_pp_fteread OP * -Perl_pp_fteread(void *pPerl) +Perl_pp_fteread(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_fteread(); } #undef Perl_pp_ftewrite OP * -Perl_pp_ftewrite(void *pPerl) +Perl_pp_ftewrite(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftewrite(); } #undef Perl_pp_ftfile OP * -Perl_pp_ftfile(void *pPerl) +Perl_pp_ftfile(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftfile(); } #undef Perl_pp_ftis OP * -Perl_pp_ftis(void *pPerl) +Perl_pp_ftis(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftis(); } #undef Perl_pp_ftlink OP * -Perl_pp_ftlink(void *pPerl) +Perl_pp_ftlink(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftlink(); } #undef Perl_pp_ftmtime OP * -Perl_pp_ftmtime(void *pPerl) +Perl_pp_ftmtime(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftmtime(); } #undef Perl_pp_ftpipe OP * -Perl_pp_ftpipe(void *pPerl) +Perl_pp_ftpipe(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftpipe(); } #undef Perl_pp_ftrexec OP * -Perl_pp_ftrexec(void *pPerl) +Perl_pp_ftrexec(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftrexec(); } #undef Perl_pp_ftrowned OP * -Perl_pp_ftrowned(void *pPerl) +Perl_pp_ftrowned(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftrowned(); } #undef Perl_pp_ftrread OP * -Perl_pp_ftrread(void *pPerl) +Perl_pp_ftrread(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftrread(); } #undef Perl_pp_ftrwrite OP * -Perl_pp_ftrwrite(void *pPerl) +Perl_pp_ftrwrite(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftrwrite(); } #undef Perl_pp_ftsgid OP * -Perl_pp_ftsgid(void *pPerl) +Perl_pp_ftsgid(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftsgid(); } #undef Perl_pp_ftsize OP * -Perl_pp_ftsize(void *pPerl) +Perl_pp_ftsize(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftsize(); } #undef Perl_pp_ftsock OP * -Perl_pp_ftsock(void *pPerl) +Perl_pp_ftsock(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftsock(); } #undef Perl_pp_ftsuid OP * -Perl_pp_ftsuid(void *pPerl) +Perl_pp_ftsuid(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftsuid(); } #undef Perl_pp_ftsvtx OP * -Perl_pp_ftsvtx(void *pPerl) +Perl_pp_ftsvtx(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftsvtx(); } #undef Perl_pp_fttext OP * -Perl_pp_fttext(void *pPerl) +Perl_pp_fttext(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_fttext(); } #undef Perl_pp_fttty OP * -Perl_pp_fttty(void *pPerl) +Perl_pp_fttty(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_fttty(); } #undef Perl_pp_ftzero OP * -Perl_pp_ftzero(void *pPerl) +Perl_pp_ftzero(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ftzero(); } #undef Perl_pp_ge OP * -Perl_pp_ge(void *pPerl) +Perl_pp_ge(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ge(); } #undef Perl_pp_gelem OP * -Perl_pp_gelem(void *pPerl) +Perl_pp_gelem(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gelem(); } #undef Perl_pp_getc OP * -Perl_pp_getc(void *pPerl) +Perl_pp_getc(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_getc(); } #undef Perl_pp_getlogin OP * -Perl_pp_getlogin(void *pPerl) +Perl_pp_getlogin(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_getlogin(); } #undef Perl_pp_getpeername OP * -Perl_pp_getpeername(void *pPerl) +Perl_pp_getpeername(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_getpeername(); } #undef Perl_pp_getpgrp OP * -Perl_pp_getpgrp(void *pPerl) +Perl_pp_getpgrp(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_getpgrp(); } #undef Perl_pp_getppid OP * -Perl_pp_getppid(void *pPerl) +Perl_pp_getppid(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_getppid(); } #undef Perl_pp_getpriority OP * -Perl_pp_getpriority(void *pPerl) +Perl_pp_getpriority(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_getpriority(); } #undef Perl_pp_getsockname OP * -Perl_pp_getsockname(void *pPerl) +Perl_pp_getsockname(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_getsockname(); } #undef Perl_pp_ggrent OP * -Perl_pp_ggrent(void *pPerl) +Perl_pp_ggrent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ggrent(); } #undef Perl_pp_ggrgid OP * -Perl_pp_ggrgid(void *pPerl) +Perl_pp_ggrgid(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ggrgid(); } #undef Perl_pp_ggrnam OP * -Perl_pp_ggrnam(void *pPerl) +Perl_pp_ggrnam(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ggrnam(); } #undef Perl_pp_ghbyaddr OP * -Perl_pp_ghbyaddr(void *pPerl) +Perl_pp_ghbyaddr(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ghbyaddr(); } #undef Perl_pp_ghbyname OP * -Perl_pp_ghbyname(void *pPerl) +Perl_pp_ghbyname(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ghbyname(); } #undef Perl_pp_ghostent OP * -Perl_pp_ghostent(void *pPerl) +Perl_pp_ghostent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ghostent(); } #undef Perl_pp_glob OP * -Perl_pp_glob(void *pPerl) +Perl_pp_glob(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_glob(); } #undef Perl_pp_gmtime OP * -Perl_pp_gmtime(void *pPerl) +Perl_pp_gmtime(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gmtime(); } #undef Perl_pp_gnbyaddr OP * -Perl_pp_gnbyaddr(void *pPerl) +Perl_pp_gnbyaddr(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gnbyaddr(); } #undef Perl_pp_gnbyname OP * -Perl_pp_gnbyname(void *pPerl) +Perl_pp_gnbyname(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gnbyname(); } #undef Perl_pp_gnetent OP * -Perl_pp_gnetent(void *pPerl) +Perl_pp_gnetent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gnetent(); } #undef Perl_pp_goto OP * -Perl_pp_goto(void *pPerl) +Perl_pp_goto(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_goto(); } #undef Perl_pp_gpbyname OP * -Perl_pp_gpbyname(void *pPerl) +Perl_pp_gpbyname(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gpbyname(); } #undef Perl_pp_gpbynumber OP * -Perl_pp_gpbynumber(void *pPerl) +Perl_pp_gpbynumber(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gpbynumber(); } #undef Perl_pp_gprotoent OP * -Perl_pp_gprotoent(void *pPerl) +Perl_pp_gprotoent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gprotoent(); } #undef Perl_pp_gpwent OP * -Perl_pp_gpwent(void *pPerl) +Perl_pp_gpwent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gpwent(); } #undef Perl_pp_gpwnam OP * -Perl_pp_gpwnam(void *pPerl) +Perl_pp_gpwnam(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gpwnam(); } #undef Perl_pp_gpwuid OP * -Perl_pp_gpwuid(void *pPerl) +Perl_pp_gpwuid(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gpwuid(); } #undef Perl_pp_grepstart OP * -Perl_pp_grepstart(void *pPerl) +Perl_pp_grepstart(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_grepstart(); } #undef Perl_pp_grepwhile OP * -Perl_pp_grepwhile(void *pPerl) +Perl_pp_grepwhile(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_grepwhile(); } #undef Perl_pp_gsbyname OP * -Perl_pp_gsbyname(void *pPerl) +Perl_pp_gsbyname(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gsbyname(); } #undef Perl_pp_gsbyport OP * -Perl_pp_gsbyport(void *pPerl) +Perl_pp_gsbyport(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gsbyport(); } #undef Perl_pp_gservent OP * -Perl_pp_gservent(void *pPerl) +Perl_pp_gservent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gservent(); } #undef Perl_pp_gsockopt OP * -Perl_pp_gsockopt(void *pPerl) +Perl_pp_gsockopt(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gsockopt(); } #undef Perl_pp_gt OP * -Perl_pp_gt(void *pPerl) +Perl_pp_gt(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gt(); } #undef Perl_pp_gv OP * -Perl_pp_gv(void *pPerl) +Perl_pp_gv(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gv(); } #undef Perl_pp_gvsv OP * -Perl_pp_gvsv(void *pPerl) +Perl_pp_gvsv(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_gvsv(); } #undef Perl_pp_helem OP * -Perl_pp_helem(void *pPerl) +Perl_pp_helem(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_helem(); } #undef Perl_pp_hex OP * -Perl_pp_hex(void *pPerl) +Perl_pp_hex(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_hex(); } #undef Perl_pp_hslice OP * -Perl_pp_hslice(void *pPerl) +Perl_pp_hslice(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_hslice(); } #undef Perl_pp_i_add OP * -Perl_pp_i_add(void *pPerl) +Perl_pp_i_add(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_i_add(); } #undef Perl_pp_i_divide OP * -Perl_pp_i_divide(void *pPerl) +Perl_pp_i_divide(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_i_divide(); } #undef Perl_pp_i_eq OP * -Perl_pp_i_eq(void *pPerl) +Perl_pp_i_eq(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_i_eq(); } #undef Perl_pp_i_ge OP * -Perl_pp_i_ge(void *pPerl) +Perl_pp_i_ge(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_i_ge(); } #undef Perl_pp_i_gt OP * -Perl_pp_i_gt(void *pPerl) +Perl_pp_i_gt(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_i_gt(); } #undef Perl_pp_i_le OP * -Perl_pp_i_le(void *pPerl) +Perl_pp_i_le(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_i_le(); } #undef Perl_pp_i_lt OP * -Perl_pp_i_lt(void *pPerl) +Perl_pp_i_lt(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_i_lt(); } #undef Perl_pp_i_modulo OP * -Perl_pp_i_modulo(void *pPerl) +Perl_pp_i_modulo(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_i_modulo(); } #undef Perl_pp_i_multiply OP * -Perl_pp_i_multiply(void *pPerl) +Perl_pp_i_multiply(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_i_multiply(); } #undef Perl_pp_i_ncmp OP * -Perl_pp_i_ncmp(void *pPerl) +Perl_pp_i_ncmp(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_i_ncmp(); } #undef Perl_pp_i_ne OP * -Perl_pp_i_ne(void *pPerl) +Perl_pp_i_ne(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_i_ne(); } #undef Perl_pp_i_negate OP * -Perl_pp_i_negate(void *pPerl) +Perl_pp_i_negate(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_i_negate(); } #undef Perl_pp_i_subtract OP * -Perl_pp_i_subtract(void *pPerl) +Perl_pp_i_subtract(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_i_subtract(); } #undef Perl_pp_index OP * -Perl_pp_index(void *pPerl) +Perl_pp_index(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_index(); } #undef Perl_pp_int OP * -Perl_pp_int(void *pPerl) +Perl_pp_int(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_int(); } #undef Perl_pp_ioctl OP * -Perl_pp_ioctl(void *pPerl) +Perl_pp_ioctl(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ioctl(); } #undef Perl_pp_iter OP * -Perl_pp_iter(void *pPerl) +Perl_pp_iter(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_iter(); } #undef Perl_pp_join OP * -Perl_pp_join(void *pPerl) +Perl_pp_join(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_join(); } #undef Perl_pp_keys OP * -Perl_pp_keys(void *pPerl) +Perl_pp_keys(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_keys(); } #undef Perl_pp_kill OP * -Perl_pp_kill(void *pPerl) +Perl_pp_kill(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_kill(); } #undef Perl_pp_last OP * -Perl_pp_last(void *pPerl) +Perl_pp_last(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_last(); } #undef Perl_pp_lc OP * -Perl_pp_lc(void *pPerl) +Perl_pp_lc(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_lc(); } #undef Perl_pp_lcfirst OP * -Perl_pp_lcfirst(void *pPerl) +Perl_pp_lcfirst(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_lcfirst(); } #undef Perl_pp_le OP * -Perl_pp_le(void *pPerl) +Perl_pp_le(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_le(); } #undef Perl_pp_leave OP * -Perl_pp_leave(void *pPerl) +Perl_pp_leave(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_leave(); } #undef Perl_pp_leaveeval OP * -Perl_pp_leaveeval(void *pPerl) +Perl_pp_leaveeval(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_leaveeval(); } #undef Perl_pp_leaveloop OP * -Perl_pp_leaveloop(void *pPerl) +Perl_pp_leaveloop(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_leaveloop(); } #undef Perl_pp_leavesub OP * -Perl_pp_leavesub(void *pPerl) +Perl_pp_leavesub(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_leavesub(); } #undef Perl_pp_leavetry OP * -Perl_pp_leavetry(void *pPerl) +Perl_pp_leavetry(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_leavetry(); } #undef Perl_pp_leavewrite OP * -Perl_pp_leavewrite(void *pPerl) +Perl_pp_leavewrite(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_leavewrite(); } #undef Perl_pp_left_shift OP * -Perl_pp_left_shift(void *pPerl) +Perl_pp_left_shift(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_left_shift(); } #undef Perl_pp_length OP * -Perl_pp_length(void *pPerl) +Perl_pp_length(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_length(); } #undef Perl_pp_lineseq OP * -Perl_pp_lineseq(void *pPerl) +Perl_pp_lineseq(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_lineseq(); } #undef Perl_pp_link OP * -Perl_pp_link(void *pPerl) +Perl_pp_link(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_link(); } #undef Perl_pp_list OP * -Perl_pp_list(void *pPerl) +Perl_pp_list(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_list(); } #undef Perl_pp_listen OP * -Perl_pp_listen(void *pPerl) +Perl_pp_listen(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_listen(); } #undef Perl_pp_localtime OP * -Perl_pp_localtime(void *pPerl) +Perl_pp_localtime(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_localtime(); } #undef Perl_pp_lock OP * -Perl_pp_lock(void *pPerl) +Perl_pp_lock(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_lock(); } #undef Perl_pp_log OP * -Perl_pp_log(void *pPerl) +Perl_pp_log(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_log(); } #undef Perl_pp_lslice OP * -Perl_pp_lslice(void *pPerl) +Perl_pp_lslice(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_lslice(); } #undef Perl_pp_lstat OP * -Perl_pp_lstat(void *pPerl) +Perl_pp_lstat(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_lstat(); } #undef Perl_pp_lt OP * -Perl_pp_lt(void *pPerl) +Perl_pp_lt(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_lt(); } #undef Perl_pp_mapstart OP * -Perl_pp_mapstart(void *pPerl) +Perl_pp_mapstart(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_mapstart(); } #undef Perl_pp_mapwhile OP * -Perl_pp_mapwhile(void *pPerl) +Perl_pp_mapwhile(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_mapwhile(); } #undef Perl_pp_match OP * -Perl_pp_match(void *pPerl) +Perl_pp_match(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_match(); } #undef Perl_pp_method OP * -Perl_pp_method(void *pPerl) +Perl_pp_method(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_method(); } #undef Perl_pp_mkdir OP * -Perl_pp_mkdir(void *pPerl) +Perl_pp_mkdir(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_mkdir(); } #undef Perl_pp_modulo OP * -Perl_pp_modulo(void *pPerl) +Perl_pp_modulo(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_modulo(); } #undef Perl_pp_msgctl OP * -Perl_pp_msgctl(void *pPerl) +Perl_pp_msgctl(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_msgctl(); } #undef Perl_pp_msgget OP * -Perl_pp_msgget(void *pPerl) +Perl_pp_msgget(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_msgget(); } #undef Perl_pp_msgrcv OP * -Perl_pp_msgrcv(void *pPerl) +Perl_pp_msgrcv(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_msgrcv(); } #undef Perl_pp_msgsnd OP * -Perl_pp_msgsnd(void *pPerl) +Perl_pp_msgsnd(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_msgsnd(); } #undef Perl_pp_multiply OP * -Perl_pp_multiply(void *pPerl) +Perl_pp_multiply(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_multiply(); } #undef Perl_pp_ncmp OP * -Perl_pp_ncmp(void *pPerl) +Perl_pp_ncmp(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ncmp(); } #undef Perl_pp_ne OP * -Perl_pp_ne(void *pPerl) +Perl_pp_ne(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ne(); } #undef Perl_pp_negate OP * -Perl_pp_negate(void *pPerl) +Perl_pp_negate(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_negate(); } #undef Perl_pp_next OP * -Perl_pp_next(void *pPerl) +Perl_pp_next(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_next(); } #undef Perl_pp_nextstate OP * -Perl_pp_nextstate(void *pPerl) +Perl_pp_nextstate(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_nextstate(); } #undef Perl_pp_not OP * -Perl_pp_not(void *pPerl) +Perl_pp_not(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_not(); } #undef Perl_pp_null OP * -Perl_pp_null(void *pPerl) +Perl_pp_null(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_null(); } #undef Perl_pp_oct OP * -Perl_pp_oct(void *pPerl) +Perl_pp_oct(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_oct(); } #undef Perl_pp_open OP * -Perl_pp_open(void *pPerl) +Perl_pp_open(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_open(); } #undef Perl_pp_open_dir OP * -Perl_pp_open_dir(void *pPerl) +Perl_pp_open_dir(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_open_dir(); } #undef Perl_pp_or OP * -Perl_pp_or(void *pPerl) +Perl_pp_or(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_or(); } #undef Perl_pp_orassign OP * -Perl_pp_orassign(void *pPerl) +Perl_pp_orassign(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_orassign(); } #undef Perl_pp_ord OP * -Perl_pp_ord(void *pPerl) +Perl_pp_ord(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ord(); } #undef Perl_pp_pack OP * -Perl_pp_pack(void *pPerl) +Perl_pp_pack(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_pack(); } #undef Perl_pp_padany OP * -Perl_pp_padany(void *pPerl) +Perl_pp_padany(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_padany(); } #undef Perl_pp_padav OP * -Perl_pp_padav(void *pPerl) +Perl_pp_padav(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_padav(); } #undef Perl_pp_padhv OP * -Perl_pp_padhv(void *pPerl) +Perl_pp_padhv(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_padhv(); } #undef Perl_pp_padsv OP * -Perl_pp_padsv(void *pPerl) +Perl_pp_padsv(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_padsv(); } #undef Perl_pp_pipe_op OP * -Perl_pp_pipe_op(void *pPerl) +Perl_pp_pipe_op(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_pipe_op(); } #undef Perl_pp_pop OP * -Perl_pp_pop(void *pPerl) +Perl_pp_pop(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_pop(); } #undef Perl_pp_pos OP * -Perl_pp_pos(void *pPerl) +Perl_pp_pos(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_pos(); } #undef Perl_pp_postdec OP * -Perl_pp_postdec(void *pPerl) +Perl_pp_postdec(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_postdec(); } #undef Perl_pp_postinc OP * -Perl_pp_postinc(void *pPerl) +Perl_pp_postinc(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_postinc(); } #undef Perl_pp_pow OP * -Perl_pp_pow(void *pPerl) +Perl_pp_pow(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_pow(); } #undef Perl_pp_predec OP * -Perl_pp_predec(void *pPerl) +Perl_pp_predec(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_predec(); } #undef Perl_pp_preinc OP * -Perl_pp_preinc(void *pPerl) +Perl_pp_preinc(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_preinc(); } #undef Perl_pp_print OP * -Perl_pp_print(void *pPerl) +Perl_pp_print(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_print(); } #undef Perl_pp_prototype OP * -Perl_pp_prototype(void *pPerl) +Perl_pp_prototype(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_prototype(); } #undef Perl_pp_prtf OP * -Perl_pp_prtf(void *pPerl) +Perl_pp_prtf(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_prtf(); } #undef Perl_pp_push OP * -Perl_pp_push(void *pPerl) +Perl_pp_push(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_push(); } #undef Perl_pp_pushmark OP * -Perl_pp_pushmark(void *pPerl) +Perl_pp_pushmark(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_pushmark(); } #undef Perl_pp_pushre OP * -Perl_pp_pushre(void *pPerl) +Perl_pp_pushre(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_pushre(); } #undef Perl_pp_qr OP * -Perl_pp_qr(void *pPerl) +Perl_pp_qr(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_qr(); } #undef Perl_pp_quotemeta OP * -Perl_pp_quotemeta(void *pPerl) +Perl_pp_quotemeta(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_quotemeta(); } #undef Perl_pp_rand OP * -Perl_pp_rand(void *pPerl) +Perl_pp_rand(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_rand(); } #undef Perl_pp_range OP * -Perl_pp_range(void *pPerl) +Perl_pp_range(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_range(); } #undef Perl_pp_rcatline OP * -Perl_pp_rcatline(void *pPerl) +Perl_pp_rcatline(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_rcatline(); } #undef Perl_pp_read OP * -Perl_pp_read(void *pPerl) +Perl_pp_read(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_read(); } #undef Perl_pp_readdir OP * -Perl_pp_readdir(void *pPerl) +Perl_pp_readdir(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_readdir(); } #undef Perl_pp_readline OP * -Perl_pp_readline(void *pPerl) +Perl_pp_readline(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_readline(); } #undef Perl_pp_readlink OP * -Perl_pp_readlink(void *pPerl) +Perl_pp_readlink(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_readlink(); } #undef Perl_pp_recv OP * -Perl_pp_recv(void *pPerl) +Perl_pp_recv(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_recv(); } #undef Perl_pp_redo OP * -Perl_pp_redo(void *pPerl) +Perl_pp_redo(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_redo(); } #undef Perl_pp_ref OP * -Perl_pp_ref(void *pPerl) +Perl_pp_ref(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ref(); } #undef Perl_pp_refgen OP * -Perl_pp_refgen(void *pPerl) +Perl_pp_refgen(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_refgen(); } #undef Perl_pp_regcmaybe OP * -Perl_pp_regcmaybe(void *pPerl) +Perl_pp_regcmaybe(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_regcmaybe(); } #undef Perl_pp_regcomp OP * -Perl_pp_regcomp(void *pPerl) +Perl_pp_regcomp(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_regcomp(); } #undef Perl_pp_regcreset OP * -Perl_pp_regcreset(void *pPerl) +Perl_pp_regcreset(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_regcreset(); } #undef Perl_pp_rename OP * -Perl_pp_rename(void *pPerl) +Perl_pp_rename(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_rename(); } #undef Perl_pp_repeat OP * -Perl_pp_repeat(void *pPerl) +Perl_pp_repeat(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_repeat(); } #undef Perl_pp_require OP * -Perl_pp_require(void *pPerl) +Perl_pp_require(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_require(); } #undef Perl_pp_reset OP * -Perl_pp_reset(void *pPerl) +Perl_pp_reset(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_reset(); } #undef Perl_pp_return OP * -Perl_pp_return(void *pPerl) +Perl_pp_return(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_return(); } #undef Perl_pp_reverse OP * -Perl_pp_reverse(void *pPerl) +Perl_pp_reverse(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_reverse(); } #undef Perl_pp_rewinddir OP * -Perl_pp_rewinddir(void *pPerl) +Perl_pp_rewinddir(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_rewinddir(); } #undef Perl_pp_right_shift OP * -Perl_pp_right_shift(void *pPerl) +Perl_pp_right_shift(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_right_shift(); } #undef Perl_pp_rindex OP * -Perl_pp_rindex(void *pPerl) +Perl_pp_rindex(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_rindex(); } #undef Perl_pp_rmdir OP * -Perl_pp_rmdir(void *pPerl) +Perl_pp_rmdir(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_rmdir(); } #undef Perl_pp_rv2av OP * -Perl_pp_rv2av(void *pPerl) +Perl_pp_rv2av(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_rv2av(); } #undef Perl_pp_rv2cv OP * -Perl_pp_rv2cv(void *pPerl) +Perl_pp_rv2cv(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_rv2cv(); } #undef Perl_pp_rv2gv OP * -Perl_pp_rv2gv(void *pPerl) +Perl_pp_rv2gv(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_rv2gv(); } #undef Perl_pp_rv2hv OP * -Perl_pp_rv2hv(void *pPerl) +Perl_pp_rv2hv(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_rv2hv(); } #undef Perl_pp_rv2sv OP * -Perl_pp_rv2sv(void *pPerl) +Perl_pp_rv2sv(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_rv2sv(); } #undef Perl_pp_sassign OP * -Perl_pp_sassign(void *pPerl) +Perl_pp_sassign(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sassign(); } #undef Perl_pp_scalar OP * -Perl_pp_scalar(void *pPerl) +Perl_pp_scalar(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_scalar(); } #undef Perl_pp_schomp OP * -Perl_pp_schomp(void *pPerl) +Perl_pp_schomp(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_schomp(); } #undef Perl_pp_schop OP * -Perl_pp_schop(void *pPerl) +Perl_pp_schop(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_schop(); } #undef Perl_pp_scmp OP * -Perl_pp_scmp(void *pPerl) +Perl_pp_scmp(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_scmp(); } #undef Perl_pp_scope OP * -Perl_pp_scope(void *pPerl) +Perl_pp_scope(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_scope(); } #undef Perl_pp_seek OP * -Perl_pp_seek(void *pPerl) +Perl_pp_seek(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_seek(); } #undef Perl_pp_seekdir OP * -Perl_pp_seekdir(void *pPerl) +Perl_pp_seekdir(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_seekdir(); } #undef Perl_pp_select OP * -Perl_pp_select(void *pPerl) +Perl_pp_select(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_select(); } #undef Perl_pp_semctl OP * -Perl_pp_semctl(void *pPerl) +Perl_pp_semctl(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_semctl(); } #undef Perl_pp_semget OP * -Perl_pp_semget(void *pPerl) +Perl_pp_semget(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_semget(); } #undef Perl_pp_semop OP * -Perl_pp_semop(void *pPerl) +Perl_pp_semop(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_semop(); } #undef Perl_pp_send OP * -Perl_pp_send(void *pPerl) +Perl_pp_send(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_send(); } #undef Perl_pp_seq OP * -Perl_pp_seq(void *pPerl) +Perl_pp_seq(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_seq(); } #undef Perl_pp_setpgrp OP * -Perl_pp_setpgrp(void *pPerl) +Perl_pp_setpgrp(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_setpgrp(); } #undef Perl_pp_setpriority OP * -Perl_pp_setpriority(void *pPerl) +Perl_pp_setpriority(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_setpriority(); } #undef Perl_pp_sge OP * -Perl_pp_sge(void *pPerl) +Perl_pp_sge(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sge(); } #undef Perl_pp_sgrent OP * -Perl_pp_sgrent(void *pPerl) +Perl_pp_sgrent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sgrent(); } #undef Perl_pp_sgt OP * -Perl_pp_sgt(void *pPerl) +Perl_pp_sgt(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sgt(); } #undef Perl_pp_shift OP * -Perl_pp_shift(void *pPerl) +Perl_pp_shift(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_shift(); } #undef Perl_pp_shmctl OP * -Perl_pp_shmctl(void *pPerl) +Perl_pp_shmctl(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_shmctl(); } #undef Perl_pp_shmget OP * -Perl_pp_shmget(void *pPerl) +Perl_pp_shmget(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_shmget(); } #undef Perl_pp_shmread OP * -Perl_pp_shmread(void *pPerl) +Perl_pp_shmread(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_shmread(); } #undef Perl_pp_shmwrite OP * -Perl_pp_shmwrite(void *pPerl) +Perl_pp_shmwrite(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_shmwrite(); } #undef Perl_pp_shostent OP * -Perl_pp_shostent(void *pPerl) +Perl_pp_shostent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_shostent(); } #undef Perl_pp_shutdown OP * -Perl_pp_shutdown(void *pPerl) +Perl_pp_shutdown(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_shutdown(); } #undef Perl_pp_sin OP * -Perl_pp_sin(void *pPerl) +Perl_pp_sin(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sin(); } #undef Perl_pp_sle OP * -Perl_pp_sle(void *pPerl) +Perl_pp_sle(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sle(); } #undef Perl_pp_sleep OP * -Perl_pp_sleep(void *pPerl) +Perl_pp_sleep(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sleep(); } #undef Perl_pp_slt OP * -Perl_pp_slt(void *pPerl) +Perl_pp_slt(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_slt(); } #undef Perl_pp_sne OP * -Perl_pp_sne(void *pPerl) +Perl_pp_sne(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sne(); } #undef Perl_pp_snetent OP * -Perl_pp_snetent(void *pPerl) +Perl_pp_snetent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_snetent(); } #undef Perl_pp_socket OP * -Perl_pp_socket(void *pPerl) +Perl_pp_socket(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_socket(); } #undef Perl_pp_sockpair OP * -Perl_pp_sockpair(void *pPerl) +Perl_pp_sockpair(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sockpair(); } #undef Perl_pp_sort OP * -Perl_pp_sort(void *pPerl) +Perl_pp_sort(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sort(); } #undef Perl_pp_splice OP * -Perl_pp_splice(void *pPerl) +Perl_pp_splice(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_splice(); } #undef Perl_pp_split OP * -Perl_pp_split(void *pPerl) +Perl_pp_split(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_split(); } #undef Perl_pp_sprintf OP * -Perl_pp_sprintf(void *pPerl) +Perl_pp_sprintf(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sprintf(); } #undef Perl_pp_sprotoent OP * -Perl_pp_sprotoent(void *pPerl) +Perl_pp_sprotoent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sprotoent(); } #undef Perl_pp_spwent OP * -Perl_pp_spwent(void *pPerl) +Perl_pp_spwent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_spwent(); } #undef Perl_pp_sqrt OP * -Perl_pp_sqrt(void *pPerl) +Perl_pp_sqrt(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sqrt(); } #undef Perl_pp_srand OP * -Perl_pp_srand(void *pPerl) +Perl_pp_srand(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_srand(); } #undef Perl_pp_srefgen OP * -Perl_pp_srefgen(void *pPerl) +Perl_pp_srefgen(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_srefgen(); } #undef Perl_pp_sselect OP * -Perl_pp_sselect(void *pPerl) +Perl_pp_sselect(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sselect(); } #undef Perl_pp_sservent OP * -Perl_pp_sservent(void *pPerl) +Perl_pp_sservent(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sservent(); } #undef Perl_pp_ssockopt OP * -Perl_pp_ssockopt(void *pPerl) +Perl_pp_ssockopt(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ssockopt(); } #undef Perl_pp_stat OP * -Perl_pp_stat(void *pPerl) +Perl_pp_stat(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_stat(); } #undef Perl_pp_stringify OP * -Perl_pp_stringify(void *pPerl) +Perl_pp_stringify(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_stringify(); } #undef Perl_pp_stub OP * -Perl_pp_stub(void *pPerl) +Perl_pp_stub(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_stub(); } #undef Perl_pp_study OP * -Perl_pp_study(void *pPerl) +Perl_pp_study(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_study(); } #undef Perl_pp_subst OP * -Perl_pp_subst(void *pPerl) +Perl_pp_subst(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_subst(); } #undef Perl_pp_substcont OP * -Perl_pp_substcont(void *pPerl) +Perl_pp_substcont(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_substcont(); } #undef Perl_pp_substr OP * -Perl_pp_substr(void *pPerl) +Perl_pp_substr(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_substr(); } #undef Perl_pp_subtract OP * -Perl_pp_subtract(void *pPerl) +Perl_pp_subtract(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_subtract(); } #undef Perl_pp_symlink OP * -Perl_pp_symlink(void *pPerl) +Perl_pp_symlink(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_symlink(); } #undef Perl_pp_syscall OP * -Perl_pp_syscall(void *pPerl) +Perl_pp_syscall(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_syscall(); } #undef Perl_pp_sysopen OP * -Perl_pp_sysopen(void *pPerl) +Perl_pp_sysopen(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sysopen(); } #undef Perl_pp_sysread OP * -Perl_pp_sysread(void *pPerl) +Perl_pp_sysread(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sysread(); } #undef Perl_pp_sysseek OP * -Perl_pp_sysseek(void *pPerl) +Perl_pp_sysseek(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_sysseek(); } #undef Perl_pp_system OP * -Perl_pp_system(void *pPerl) +Perl_pp_system(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_system(); } #undef Perl_pp_syswrite OP * -Perl_pp_syswrite(void *pPerl) +Perl_pp_syswrite(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_syswrite(); } #undef Perl_pp_tell OP * -Perl_pp_tell(void *pPerl) +Perl_pp_tell(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_tell(); } #undef Perl_pp_telldir OP * -Perl_pp_telldir(void *pPerl) +Perl_pp_telldir(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_telldir(); } #undef Perl_pp_threadsv OP * -Perl_pp_threadsv(void *pPerl) +Perl_pp_threadsv(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_threadsv(); } #undef Perl_pp_tie OP * -Perl_pp_tie(void *pPerl) +Perl_pp_tie(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_tie(); } #undef Perl_pp_tied OP * -Perl_pp_tied(void *pPerl) +Perl_pp_tied(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_tied(); } #undef Perl_pp_time OP * -Perl_pp_time(void *pPerl) +Perl_pp_time(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_time(); } #undef Perl_pp_tms OP * -Perl_pp_tms(void *pPerl) +Perl_pp_tms(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_tms(); } #undef Perl_pp_trans OP * -Perl_pp_trans(void *pPerl) +Perl_pp_trans(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_trans(); } #undef Perl_pp_truncate OP * -Perl_pp_truncate(void *pPerl) +Perl_pp_truncate(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_truncate(); } #undef Perl_pp_uc OP * -Perl_pp_uc(void *pPerl) +Perl_pp_uc(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_uc(); } #undef Perl_pp_ucfirst OP * -Perl_pp_ucfirst(void *pPerl) +Perl_pp_ucfirst(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_ucfirst(); } #undef Perl_pp_umask OP * -Perl_pp_umask(void *pPerl) +Perl_pp_umask(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_umask(); } #undef Perl_pp_undef OP * -Perl_pp_undef(void *pPerl) +Perl_pp_undef(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_undef(); } #undef Perl_pp_unlink OP * -Perl_pp_unlink(void *pPerl) +Perl_pp_unlink(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_unlink(); } #undef Perl_pp_unpack OP * -Perl_pp_unpack(void *pPerl) +Perl_pp_unpack(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_unpack(); } #undef Perl_pp_unshift OP * -Perl_pp_unshift(void *pPerl) +Perl_pp_unshift(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_unshift(); } #undef Perl_pp_unstack OP * -Perl_pp_unstack(void *pPerl) +Perl_pp_unstack(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_unstack(); } #undef Perl_pp_untie OP * -Perl_pp_untie(void *pPerl) +Perl_pp_untie(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_untie(); } #undef Perl_pp_utime OP * -Perl_pp_utime(void *pPerl) +Perl_pp_utime(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_utime(); } #undef Perl_pp_values OP * -Perl_pp_values(void *pPerl) +Perl_pp_values(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_values(); } #undef Perl_pp_vec OP * -Perl_pp_vec(void *pPerl) +Perl_pp_vec(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_vec(); } #undef Perl_pp_wait OP * -Perl_pp_wait(void *pPerl) +Perl_pp_wait(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_wait(); } #undef Perl_pp_waitpid OP * -Perl_pp_waitpid(void *pPerl) +Perl_pp_waitpid(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_waitpid(); } #undef Perl_pp_wantarray OP * -Perl_pp_wantarray(void *pPerl) +Perl_pp_wantarray(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_wantarray(); } #undef Perl_pp_warn OP * -Perl_pp_warn(void *pPerl) +Perl_pp_warn(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_warn(); } #undef Perl_pp_xor OP * -Perl_pp_xor(void *pPerl) +Perl_pp_xor(pTHXo) { return ((CPerlObj*)pPerl)->Perl_pp_xor(); } +#undef Perl_fprintf_nocontext +int +Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...) +{ + dTHXo; + va_list(arglist); + va_start(arglist, format); + return (*pPerl->PL_StdIO->pVprintf)(pPerl->PL_StdIO, stream, format, arglist); +} + END_EXTERN_C #endif /* PERL_OBJECT */ diff --git a/perlapi.h b/perlapi.h index d1d8dd5..6b931cc 100755 --- a/perlapi.h +++ b/perlapi.h @@ -3,21 +3,30 @@ perlvars.h and thrdvar.h. Any changes made here will be lost! */ -#if defined(PERL_OBJECT) - /* declare accessor functions for Perl variables */ +#if defined(PERL_OBJECT) || defined (PERL_CAPI) + +#if defined(PERL_OBJECT) +# undef aTHXo +# define aTHXo pPerl +# undef aTHXo_ +# define aTHXo_ aTHXo, +# undef _aTHXo +# define _aTHXo ,aTHXo +#endif /* PERL_OBJECT */ + START_EXTERN_C #undef PERLVAR #undef PERLVARA #undef PERLVARI #undef PERLVARIC -#define PERLVAR(v,t) EXTERN_C t* Perl_##v##_ptr(void *p); +#define PERLVAR(v,t) EXTERN_C t* Perl_##v##_ptr(pTHXo); #define PERLVARA(v,n,t) typedef t PL_##v##_t[n]; \ - EXTERN_C PL_##v##_t* Perl_##v##_ptr(void *p); + EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHXo); #define PERLVARI(v,t,i) PERLVAR(v,t) -#define PERLVARIC(v,t,i) PERLVAR(v,t) +#define PERLVARIC(v,t,i) PERLVAR(v, const t) #include "thrdvar.h" #include "intrpvar.h" @@ -30,5 +39,5 @@ START_EXTERN_C END_EXTERN_C -#endif /* PERL_OBJECT */ +#endif /* PERL_OBJECT || PERL_CAPI */ diff --git a/perlio.c b/perlio.c index 505548a..9230b0c 100644 --- a/perlio.c +++ b/perlio.c @@ -7,6 +7,8 @@ * */ +#if !defined(PERL_IMPLICIT_SYS) + #define VOIDUSED 1 #include "config.h" @@ -560,3 +562,5 @@ PerlIO_sprintf(char *s, int n, const char *fmt,...) } #endif +#endif /* !PERL_IMPLICIT_SYS */ + diff --git a/pp_sys.c b/pp_sys.c index c608ab5..b216b62 100644 --- a/pp_sys.c +++ b/pp_sys.c @@ -3623,12 +3623,12 @@ PP(pp_system) #else /* ! FORK or VMS or OS/2 */ if (PL_op->op_flags & OPf_STACKED) { SV *really = *++MARK; - value = (I32)do_aspawn(aTHX_ really, (void **)MARK, (void **)SP); + value = (I32)do_aspawn(really, (void **)MARK, (void **)SP); } else if (SP - MARK != 1) - value = (I32)do_aspawn(aTHX_ Nullsv, (void **)MARK, (void **)SP); + value = (I32)do_aspawn(Nullsv, (void **)MARK, (void **)SP); else { - value = (I32)do_spawn(aTHX_ SvPVx(sv_mortalcopy(*SP), n_a)); + value = (I32)do_spawn(SvPVx(sv_mortalcopy(*SP), n_a)); } STATUS_NATIVE_SET(value); do_execfree(); @@ -3655,7 +3655,7 @@ PP(pp_exec) #else # ifdef __OPEN_VM { - (void ) do_aspawn(aTHX_ Nullsv, MARK, SP); + (void ) do_aspawn(Nullsv, MARK, SP); value = 0; } # else @@ -3672,7 +3672,7 @@ PP(pp_exec) value = (I32)vms_do_exec(SvPVx(sv_mortalcopy(*SP), n_a)); #else # ifdef __OPEN_VM - (void) do_spawn(aTHX_ SvPVx(sv_mortalcopy(*SP), n_a)); + (void) do_spawn(SvPVx(sv_mortalcopy(*SP), n_a)); value = 0; # else value = (I32)do_exec(SvPVx(sv_mortalcopy(*SP), n_a)); diff --git a/proto.h b/proto.h index b02eb43..fe399f0 100644 --- a/proto.h +++ b/proto.h @@ -51,16 +51,20 @@ VIRTUAL MAGIC* Perl_condpair_magic(pTHX_ SV *sv); #endif VIRTUAL OP* Perl_convert(pTHX_ I32 optype, I32 flags, OP* o); VIRTUAL void Perl_croak(pTHX_ const char* pat, ...) __attribute__((noreturn)); +VIRTUAL void Perl_vcroak(pTHX_ const char* pat, va_list* args) __attribute__((noreturn)); #if defined(PERL_IMPLICIT_CONTEXT) VIRTUAL void Perl_croak_nocontext(const char* pat, ...) __attribute__((noreturn)); VIRTUAL OP* Perl_die_nocontext(const char* pat, ...); +VIRTUAL void Perl_deb_nocontext(const char* pat, ...); VIRTUAL char* Perl_form_nocontext(const char* pat, ...); VIRTUAL void Perl_warn_nocontext(const char* pat, ...); +VIRTUAL void Perl_warner_nocontext(U32 err, const char* pat, ...); VIRTUAL SV* Perl_newSVpvf_nocontext(const char* pat, ...); VIRTUAL void Perl_sv_catpvf_nocontext(SV* sv, const char* pat, ...); VIRTUAL void Perl_sv_setpvf_nocontext(SV* sv, const char* pat, ...); VIRTUAL void Perl_sv_catpvf_mg_nocontext(SV* sv, const char* pat, ...); VIRTUAL void Perl_sv_setpvf_mg_nocontext(SV* sv, const char* pat, ...); +VIRTUAL int Perl_fprintf_nocontext(PerlIO* stream, const char* fmt, ...); #endif VIRTUAL void Perl_cv_ckproto(pTHX_ CV* cv, GV* gv, char* p); VIRTUAL CV* Perl_cv_clone(pTHX_ CV* proto); @@ -78,6 +82,7 @@ VIRTUAL U32* Perl_get_opargs(pTHX); VIRTUAL PPADDR_t* Perl_get_ppaddr(pTHX); VIRTUAL I32 Perl_cxinc(pTHX); VIRTUAL void Perl_deb(pTHX_ const char* pat, ...); +VIRTUAL void Perl_vdeb(pTHX_ const char* pat, va_list* args); VIRTUAL void Perl_deb_growlevel(pTHX); VIRTUAL void Perl_debprofdump(pTHX); VIRTUAL I32 Perl_debop(pTHX_ OP* o); @@ -86,6 +91,7 @@ VIRTUAL I32 Perl_debstackptrs(pTHX); VIRTUAL char* Perl_delimcpy(pTHX_ char* to, char* toend, char* from, char* fromend, int delim, I32* retlen); VIRTUAL void Perl_deprecate(pTHX_ char* s); VIRTUAL OP* Perl_die(pTHX_ const char* pat, ...); +VIRTUAL OP* Perl_vdie(pTHX_ const char* pat, va_list* args); VIRTUAL OP* Perl_die_where(pTHX_ char* message, STRLEN msglen); VIRTUAL void Perl_dounwind(pTHX_ I32 cxix); VIRTUAL bool Perl_do_aexec(pTHX_ SV* really, SV** mark, SV** sp); @@ -142,6 +148,7 @@ VIRTUAL PADOFFSET Perl_find_threadsv(pTHX_ const char *name); VIRTUAL OP* Perl_force_list(pTHX_ OP* arg); VIRTUAL OP* Perl_fold_constants(pTHX_ OP* arg); VIRTUAL char* Perl_form(pTHX_ const char* pat, ...); +VIRTUAL char* Perl_vform(pTHX_ const char* pat, va_list* args); VIRTUAL void Perl_free_tmps(pTHX); VIRTUAL OP* Perl_gen_constant_list(pTHX_ OP* o); #if !defined(HAS_GETENV_LEN) @@ -397,13 +404,11 @@ VIRTUAL SV* Perl_newSVnv(pTHX_ NV n); VIRTUAL SV* Perl_newSVpv(pTHX_ const char* s, STRLEN len); VIRTUAL SV* Perl_newSVpvn(pTHX_ const char* s, STRLEN len); VIRTUAL SV* Perl_newSVpvf(pTHX_ const char* pat, ...); +VIRTUAL SV* Perl_vnewSVpvf(pTHX_ const char* pat, va_list* args); VIRTUAL SV* Perl_newSVrv(pTHX_ SV* rv, const char* classname); VIRTUAL SV* Perl_newSVsv(pTHX_ SV* old); VIRTUAL OP* Perl_newUNOP(pTHX_ I32 type, I32 flags, OP* first); VIRTUAL OP* Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP* loop, I32 whileline, OP* expr, OP* block, OP* cont); -#if defined(USE_THREADS) -VIRTUAL struct perl_thread* Perl_new_struct_thread(pTHX_ struct perl_thread *t); -#endif VIRTUAL PERL_SI* Perl_new_stackinfo(pTHX_ I32 stitems, I32 cxitems); VIRTUAL PerlIO* Perl_nextargv(pTHX_ GV* gv); VIRTUAL char* Perl_ninstr(pTHX_ const char* big, const char* bigend, const char* little, const char* lend); @@ -434,6 +439,9 @@ VIRTUAL void perl_destruct(PerlInterpreter* sv_interp); VIRTUAL void perl_free(PerlInterpreter* sv_interp); VIRTUAL int perl_run(PerlInterpreter* sv_interp); VIRTUAL int perl_parse(PerlInterpreter* sv_interp, XSINIT_t xsinit, int argc, char** argv, char** env); +#if defined(USE_THREADS) +VIRTUAL struct perl_thread* Perl_new_struct_thread(pTHX_ struct perl_thread *t); +#endif #endif VIRTUAL void Perl_call_atexit(pTHX_ ATEXIT_t fn, void *ptr); VIRTUAL I32 Perl_call_argv(pTHX_ const char* sub_name, I32 flags, char** argv); @@ -559,6 +567,7 @@ VIRTUAL void Perl_sv_add_arena(pTHX_ char* ptr, U32 size, U32 flags); VIRTUAL int Perl_sv_backoff(pTHX_ SV* sv); VIRTUAL SV* Perl_sv_bless(pTHX_ SV* sv, HV* stash); VIRTUAL void Perl_sv_catpvf(pTHX_ SV* sv, const char* pat, ...); +VIRTUAL void Perl_sv_vcatpvf(pTHX_ SV* sv, const char* pat, va_list* args); VIRTUAL void Perl_sv_catpv(pTHX_ SV* sv, const char* ptr); VIRTUAL void Perl_sv_catpvn(pTHX_ SV* sv, const char* ptr, STRLEN len); VIRTUAL void Perl_sv_catsv(pTHX_ SV* dsv, SV* ssv); @@ -599,6 +608,7 @@ VIRTUAL void Perl_sv_replace(pTHX_ SV* sv, SV* nsv); VIRTUAL void Perl_sv_report_used(pTHX); VIRTUAL void Perl_sv_reset(pTHX_ char* s, HV* stash); VIRTUAL void Perl_sv_setpvf(pTHX_ SV* sv, const char* pat, ...); +VIRTUAL void Perl_sv_vsetpvf(pTHX_ SV* sv, const char* pat, va_list* args); VIRTUAL void Perl_sv_setiv(pTHX_ SV* sv, IV num); VIRTUAL void Perl_sv_setpviv(pTHX_ SV* sv, IV num); VIRTUAL void Perl_sv_setuv(pTHX_ SV* sv, UV num); @@ -645,7 +655,9 @@ VIRTUAL void Perl_vivify_defelem(pTHX_ SV* sv); VIRTUAL void Perl_vivify_ref(pTHX_ SV* sv, U32 to_what); VIRTUAL I32 Perl_wait4pid(pTHX_ int pid, int* statusp, int flags); VIRTUAL void Perl_warn(pTHX_ const char* pat, ...); +VIRTUAL void Perl_vwarn(pTHX_ const char* pat, va_list* args); VIRTUAL void Perl_warner(pTHX_ U32 err, const char* pat, ...); +VIRTUAL void Perl_vwarner(pTHX_ U32 err, const char* pat, va_list* args); VIRTUAL void Perl_watch(pTHX_ char** addr); VIRTUAL I32 Perl_whichsig(pTHX_ char* sig); VIRTUAL int Perl_yyerror(pTHX_ char* s); @@ -679,10 +691,12 @@ VIRTUAL struct perl_vars * Perl_GetVars(pTHX); VIRTUAL int Perl_runops_standard(pTHX); VIRTUAL int Perl_runops_debug(pTHX); VIRTUAL void Perl_sv_catpvf_mg(pTHX_ SV *sv, const char* pat, ...); +VIRTUAL void Perl_sv_vcatpvf_mg(pTHX_ SV* sv, const char* pat, va_list* args); VIRTUAL void Perl_sv_catpv_mg(pTHX_ SV *sv, const char *ptr); VIRTUAL void Perl_sv_catpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len); VIRTUAL void Perl_sv_catsv_mg(pTHX_ SV *dstr, SV *sstr); VIRTUAL void Perl_sv_setpvf_mg(pTHX_ SV *sv, const char* pat, ...); +VIRTUAL void Perl_sv_vsetpvf_mg(pTHX_ SV* sv, const char* pat, va_list* args); VIRTUAL void Perl_sv_setiv_mg(pTHX_ SV *sv, IV i); VIRTUAL void Perl_sv_setpviv_mg(pTHX_ SV *sv, IV iv); VIRTUAL void Perl_sv_setuv_mg(pTHX_ SV *sv, UV u); @@ -694,6 +708,7 @@ VIRTUAL void Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len); VIRTUAL MGVTBL* Perl_get_vtbl(pTHX_ int vtbl_id); VIRTUAL char* Perl_pv_display(pTHX_ SV *sv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim); VIRTUAL void Perl_dump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...); +VIRTUAL void Perl_dump_vindent(pTHX_ I32 level, PerlIO *file, const char* pat, va_list *args); VIRTUAL void Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv); VIRTUAL void Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv); VIRTUAL void Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, char *name, HV *sv); @@ -703,6 +718,7 @@ VIRTUAL void Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, PMOP *pm); VIRTUAL void Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim); VIRTUAL void Perl_magic_dump(pTHX_ MAGIC *mg); VIRTUAL void* Perl_default_protect(pTHX_ int *excpt, protect_body_t body, ...); +VIRTUAL void* Perl_vdefault_protect(pTHX_ int *excpt, protect_body_t body, va_list *args); VIRTUAL void Perl_reginitcolors(pTHX); VIRTUAL char* Perl_sv_2pv_nolen(pTHX_ SV* sv); VIRTUAL char* Perl_sv_pv(pTHX_ SV *sv); @@ -955,9 +971,6 @@ STATIC SV* S_isa_lookup(pTHX_ HV *stash, const char *name, int len, int level); #endif #if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT) STATIC SV* S_mess_alloc(pTHX); -STATIC void S_do_croak(pTHX_ const char *pat, va_list *args) __attribute__((noreturn)); -STATIC void S_do_warn(pTHX_ const char *pat, va_list *args); -STATIC OP* S_do_die(pTHX_ const char *pat, va_list *args); # if defined(LEAKTEST) STATIC void S_xstat(pTHX_ int); # endif diff --git a/regcomp.c b/regcomp.c index d2717e1..c6fb7fe 100644 --- a/regcomp.c +++ b/regcomp.c @@ -41,6 +41,8 @@ # define Perl_regnext my_regnext # define Perl_save_re_context my_save_re_context # define Perl_reginitcolors my_reginitcolors + +# define PERL_NO_GET_CONTEXT #endif /*SUPPRESS 112*/ @@ -81,7 +83,11 @@ #define PERL_IN_REGCOMP_C #include "perl.h" -#ifndef PERL_IN_XSUB_RE +#ifdef PERL_IN_XSUB_RE +# if defined(PERL_CAPI) || defined(PERL_OBJECT) +# include "XSUB.h" +# endif +#else # include "INTERN.h" #endif @@ -461,7 +467,8 @@ S_study_chunk(pTHX_ regnode **scanp, I32 *deltap, regnode *last, scan_data_t *da if (ckWARN(WARN_UNSAFE) && (minnext + deltanext == 0) && !(data->flags & (SF_HAS_PAR|SF_IN_PAR)) && maxcount <= REG_INFTY/3) /* Complement check for big count */ - Perl_warner(aTHX_ WARN_UNSAFE, "Strange *+?{} on zero-length expression"); + Perl_warner(aTHX_ WARN_UNSAFE, + "Strange *+?{} on zero-length expression"); min += minnext * mincount; is_inf_internal |= (maxcount == REG_INFTY && (minnext + deltanext) > 0 diff --git a/regexec.c b/regexec.c index 286131a..4df60ac 100644 --- a/regexec.c +++ b/regexec.c @@ -39,6 +39,8 @@ /* *These* symbols are masked to allow static link. */ # define Perl_pregexec my_pregexec # define Perl_reginitcolors my_reginitcolors + +# define PERL_NO_GET_CONTEXT #endif /*SUPPRESS 112*/ @@ -77,6 +79,12 @@ #define PERL_IN_REGEXEC_C #include "perl.h" +#ifdef PERL_IN_XSUB_RE +# if defined(PERL_CAPI) || defined(PERL_OBJECT) +# include "XSUB.h" +# endif +#endif + #include "regcomp.h" #define RF_tainted 1 /* tainted information used? */ diff --git a/scope.c b/scope.c index 3da5e63..44c3d92 100644 --- a/scope.c +++ b/scope.c @@ -19,9 +19,19 @@ void * Perl_default_protect(pTHX_ int *excpt, protect_body_t body, ...) { + void *ret; + va_list args; + va_start(args, body); + ret = vdefault_protect(excpt, body, &args); + va_end(args); + return ret; +} + +void * +Perl_vdefault_protect(pTHX_ int *excpt, protect_body_t body, va_list *args) +{ dTHR; dJMPENV; - va_list args; int ex; void *ret; @@ -30,11 +40,8 @@ Perl_default_protect(pTHX_ int *excpt, protect_body_t body, ...) JMPENV_PUSH(ex); if (ex) ret = NULL; - else { - va_start(args, body); - ret = CALL_FPTR(body)(aTHX_ args); - va_end(args); - } + else + ret = CALL_FPTR(body)(aTHX_ *args); *excpt = ex; JMPENV_POP; return ret; diff --git a/sv.c b/sv.c index 5bb9a87..6392f54 100644 --- a/sv.c +++ b/sv.c @@ -3949,10 +3949,8 @@ Perl_newSVpvf_nocontext(const char* pat, ...) dTHX; register SV *sv; va_list args; - - new_SV(sv); va_start(args, pat); - sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + sv = vnewSVpvf(pat, &args); va_end(args); return sv; } @@ -3963,15 +3961,22 @@ Perl_newSVpvf(pTHX_ const char* pat, ...) { register SV *sv; va_list args; - - new_SV(sv); va_start(args, pat); - sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + sv = vnewSVpvf(pat, &args); va_end(args); return sv; } SV * +Perl_vnewSVpvf(pTHX_ const char* pat, va_list* args) +{ + register SV *sv; + new_SV(sv); + sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); + return sv; +} + +SV * Perl_newSVnv(pTHX_ NV n) { register SV *sv; @@ -4579,7 +4584,7 @@ Perl_sv_setpvf_nocontext(SV *sv, const char* pat, ...) dTHX; va_list args; va_start(args, pat); - sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + sv_vsetpvf(sv, pat, &args); va_end(args); } @@ -4590,9 +4595,8 @@ Perl_sv_setpvf_mg_nocontext(SV *sv, const char* pat, ...) dTHX; va_list args; va_start(args, pat); - sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + sv_vsetpvf_mg(sv, pat, &args); va_end(args); - SvSETMAGIC(sv); } #endif @@ -4601,18 +4605,29 @@ Perl_sv_setpvf(pTHX_ SV *sv, const char* pat, ...) { va_list args; va_start(args, pat); - sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + sv_vsetpvf(sv, pat, &args); va_end(args); } +void +Perl_sv_vsetpvf(pTHX_ SV *sv, const char* pat, va_list* args) +{ + sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); +} void Perl_sv_setpvf_mg(pTHX_ SV *sv, const char* pat, ...) { va_list args; va_start(args, pat); - sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + sv_vsetpvf_mg(sv, pat, &args); va_end(args); +} + +void +Perl_sv_vsetpvf_mg(pTHX_ SV *sv, const char* pat, va_list* args) +{ + sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); SvSETMAGIC(sv); } @@ -4623,7 +4638,7 @@ Perl_sv_catpvf_nocontext(SV *sv, const char* pat, ...) dTHX; va_list args; va_start(args, pat); - sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + sv_vcatpvf(sv, pat, &args); va_end(args); } @@ -4633,9 +4648,8 @@ Perl_sv_catpvf_mg_nocontext(SV *sv, const char* pat, ...) dTHX; va_list args; va_start(args, pat); - sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + sv_vcatpvf_mg(sv, pat, &args); va_end(args); - SvSETMAGIC(sv); } #endif @@ -4644,17 +4658,29 @@ Perl_sv_catpvf(pTHX_ SV *sv, const char* pat, ...) { va_list args; va_start(args, pat); - sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + sv_vcatpvf(sv, pat, &args); va_end(args); } void +Perl_sv_vcatpvf(pTHX_ SV *sv, const char* pat, va_list* args) +{ + sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); +} + +void Perl_sv_catpvf_mg(pTHX_ SV *sv, const char* pat, ...) { va_list args; va_start(args, pat); - sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + sv_vcatpvf_mg(sv, pat, &args); va_end(args); +} + +void +Perl_sv_vcatpvf_mg(pTHX_ SV *sv, const char* pat, va_list* args) +{ + sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); SvSETMAGIC(sv); } diff --git a/thrdvar.h b/thrdvar.h index 5406085..b3f3be5 100644 --- a/thrdvar.h +++ b/thrdvar.h @@ -17,6 +17,10 @@ /* Important ones in the first cache line (if alignment is done right) */ +#ifdef USE_THREADS +PERLVAR(interp, PerlInterpreter*) /* thread owner */ +#endif + PERLVAR(Tstack_sp, SV **) /* top of the stack */ #ifdef OP_IN_REGISTER PERLVAR(Topsave, OP *) diff --git a/util.c b/util.c index 64580f6..960bdb5 100644 --- a/util.c +++ b/util.c @@ -1363,28 +1363,36 @@ S_mess_alloc(pTHX) return sv; } -#ifdef PERL_IMPLICIT_CONTEXT +#if defined(PERL_IMPLICIT_CONTEXT) char * Perl_form_nocontext(const char* pat, ...) { dTHX; - SV *sv = mess_alloc(); + char *retval; va_list args; va_start(args, pat); - sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + retval = vform(pat, &args); va_end(args); - return SvPVX(sv); + return retval; } -#endif +#endif /* PERL_IMPLICIT_CONTEXT */ char * Perl_form(pTHX_ const char* pat, ...) { - SV *sv = mess_alloc(); + char *retval; va_list args; va_start(args, pat); - sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + retval = vform(pat, &args); va_end(args); + return retval; +} + +char * +Perl_vform(pTHX_ const char *pat, va_list *args) +{ + SV *sv = mess_alloc(); + sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); return SvPVX(sv); } @@ -1413,8 +1421,8 @@ Perl_mess(pTHX_ const char *pat, va_list *args) return sv; } -STATIC OP * -S_do_die(pTHX_ const char* pat, va_list *args) +OP * +Perl_vdie(pTHX_ const char* pat, va_list *args) { dTHR; char *message; @@ -1481,7 +1489,7 @@ S_do_die(pTHX_ const char* pat, va_list *args) return PL_restartop; } -#ifdef PERL_IMPLICIT_CONTEXT +#if defined(PERL_IMPLICIT_CONTEXT) OP * Perl_die_nocontext(const char* pat, ...) { @@ -1489,11 +1497,11 @@ Perl_die_nocontext(const char* pat, ...) OP *o; va_list args; va_start(args, pat); - o = do_die(pat, &args); + o = vdie(pat, &args); va_end(args); return o; } -#endif +#endif /* PERL_IMPLICIT_CONTEXT */ OP * Perl_die(pTHX_ const char* pat, ...) @@ -1501,13 +1509,13 @@ Perl_die(pTHX_ const char* pat, ...) OP *o; va_list args; va_start(args, pat); - o = do_die(pat, &args); + o = vdie(pat, &args); va_end(args); return o; } -STATIC void -S_do_croak(pTHX_ const char* pat, va_list *args) +void +Perl_vcroak(pTHX_ const char* pat, va_list *args) { dTHR; char *message; @@ -1564,14 +1572,14 @@ S_do_croak(pTHX_ const char* pat, va_list *args) my_failure_exit(); } -#ifdef PERL_IMPLICIT_CONTEXT +#if defined(PERL_IMPLICIT_CONTEXT) void Perl_croak_nocontext(const char *pat, ...) { dTHX; va_list args; va_start(args, pat); - do_croak(pat, &args); + vcroak(pat, &args); /* NOTREACHED */ va_end(args); } @@ -1582,13 +1590,13 @@ Perl_croak(pTHX_ const char *pat, ...) { va_list args; va_start(args, pat); - do_croak(pat, &args); + vcroak(pat, &args); /* NOTREACHED */ va_end(args); } -STATIC void -S_do_warn(pTHX_ const char* pat, va_list *args) +void +Perl_vwarn(pTHX_ const char* pat, va_list *args) { char *message; HV *stash; @@ -1640,14 +1648,14 @@ S_do_warn(pTHX_ const char* pat, va_list *args) (void)PerlIO_flush(PerlIO_stderr()); } -#ifdef PERL_IMPLICIT_CONTEXT +#if defined(PERL_IMPLICIT_CONTEXT) void Perl_warn_nocontext(const char *pat, ...) { dTHX; va_list args; va_start(args, pat); - do_warn(pat, &args); + vwarn(pat, &args); va_end(args); } #endif /* PERL_IMPLICIT_CONTEXT */ @@ -1657,15 +1665,35 @@ Perl_warn(pTHX_ const char *pat, ...) { va_list args; va_start(args, pat); - do_warn(pat, &args); + vwarn(pat, &args); va_end(args); } +#if defined(PERL_IMPLICIT_CONTEXT) +void +Perl_warner_nocontext(U32 err, const char *pat, ...) +{ + dTHX; + va_list args; + va_start(args, pat); + vwarner(err, pat, &args); + va_end(args); +} +#endif /* PERL_IMPLICIT_CONTEXT */ + void Perl_warner(pTHX_ U32 err, const char* pat,...) { - dTHR; va_list args; + va_start(args, pat); + vwarner(err, pat, &args); + va_end(args); +} + +void +Perl_vwarner(pTHX_ U32 err, const char* pat, va_list* args) +{ + dTHR; char *message; HV *stash; GV *gv; @@ -1673,10 +1701,8 @@ Perl_warner(pTHX_ U32 err, const char* pat,...) SV *msv; STRLEN msglen; - va_start(args, pat); - msv = mess(pat, &args); + msv = mess(pat, args); message = SvPV(msv, msglen); - va_end(args); if (ckDEAD(err)) { #ifdef USE_THREADS @@ -3183,7 +3209,7 @@ Perl_condpair_magic(pTHX_ SV *sv) struct perl_thread * Perl_new_struct_thread(pTHX_ struct perl_thread *t) { -#ifndef PERL_IMPLICIT_CONTEXT +#if !defined(PERL_IMPLICIT_CONTEXT) struct perl_thread *thr; #endif SV *sv; @@ -3213,6 +3239,7 @@ Perl_new_struct_thread(pTHX_ struct perl_thread *t) init_stacks(); PL_curcop = &PL_compiling; + thr->interp = t->interp; thr->cvcache = newHV(); thr->threadsv = newAV(); thr->specific = newAV(); diff --git a/win32/GenCAPI.pl b/win32/GenCAPI.pl deleted file mode 100644 index 703a156..0000000 --- a/win32/GenCAPI.pl +++ /dev/null @@ -1,1674 +0,0 @@ - -# creates a C API file from proto.h -# takes one argument, the path to lib/CORE directory. -# creates 2 files: "perlCAPI.cpp" and "perlCAPI.h". - -my $hdrfile = "$ARGV[0]/perlCAPI.h"; -my $infile = '../proto.h'; -my @embedsyms = ('../global.sym', '../pp.sym'); -my $separateObj = 0; - -my %skip_list; -my %embed; - -sub readsyms(\%@) { - my ($syms, @files) = @_; - my ($line, @words); - %$syms = (); - foreach my $file (@files) { - local (*FILE, $_); - open(FILE, "< $file") - or die "$0: Can't open $file: $!\n"; - while () { - s/[ \t]*#.*$//; # delete comments - if (/^\s*(\S+)\s*$/) { - my $sym = $1; - $$syms{$sym} = $sym; - } - } - close(FILE); - } -} - -readsyms %embed, @embedsyms; - -sub skip_these { - my $list = shift; - foreach my $symbol (@$list) { - $skip_list{$symbol} = 1; - } -} - -skip_these [qw( -Perl_yylex -Perl_cando -Perl_cast_ulong -Perl_my_chsize -Perl_condpair_magic -Perl_deb -Perl_deb_growlevel -Perl_debprofdump -Perl_debop -Perl_debstack -Perl_debstackptrs -Perl_dump_fds -Perl_dump_mstats -fprintf -Perl_find_threadsv -Perl_magic_mutexfree -Perl_my_memcmp -Perl_my_memset -Perl_my_pclose -Perl_my_popen -Perl_my_swap -Perl_my_htonl -Perl_my_ntohl -Perl_new_struct_thread -Perl_same_dirent -Perl_unlnk -Perl_unlock_condpair -Perl_safexmalloc -Perl_safexcalloc -Perl_safexrealloc -Perl_safexfree -Perl_GetVars -Perl_malloced_size -Perl_do_exec3 -Perl_getenv_len -Perl_dump_indent -Perl_default_protect -Perl_croak_nocontext -Perl_die_nocontext -Perl_form_nocontext -Perl_warn_nocontext -Perl_newSVpvf_nocontext -Perl_sv_catpvf_nocontext -Perl_sv_catpvf_mg_nocontext -Perl_sv_setpvf_nocontext -Perl_sv_setpvf_mg_nocontext -Perl_do_ipcctl -Perl_do_ipcget -Perl_do_msgrcv -Perl_do_msgsnd -Perl_do_semop -Perl_do_shmio -Perl_my_bzero -perl_parse -perl_alloc -Perl_call_atexit -Perl_malloc -Perl_calloc -Perl_realloc -Perl_mfree -)]; - - - -if (!open(INFILE, "<$infile")) { - print "open of $infile failed: $!\n"; - return 1; -} - -if (!open(OUTFILE, ">perlCAPI.cpp")) { - print "open of perlCAPI.cpp failed: $!\n"; - return 1; -} - -print OUTFILE <); - if (/^VIRTUAL\s+/) { - while (!/;$/) { - chomp; - $_ .= ; - } - $_ =~ s/^VIRTUAL\s*//; - $_ =~ s/\s*__attribute__.*$/;/; - if ( /^(.+)\t(\w+)\((.*)\);/ ) { - $type = $1; - $name = $2; - $args = $3; - - $name =~ s/\s*$//; - $type =~ s/\s*$//; - next if (defined $skip_list{$name}); - next if $name =~ /^S_/; - next if exists $done{$name}; - - $done{$name}++; - if($args eq "ARGSproto" or $args eq "pTHX") { - $args = "void"; - } - $args =~ s/^pTHX_ //; - - $return = ($type eq "void" or $type eq "Free_t") ? "\t" : "\treturn"; - - if(defined $embed{$name}) { - $funcName = $embed{$name}; - } else { - $funcName = $name; - } - - @args = split(',', $args); - if ($args[$#args] =~ /\s*\.\.\.\s*/) { - if ($name =~ /^Perl_(croak|deb|die|warn|form|warner)$/) { - print OUTFILE "\n#ifdef $name" . "_defined" unless ($separateObj == 0); - for (@args) { $_ = $1 if /(\w+)\W*$/; } - $arg = $args[$#args-1]; - my $start = ''; - $start = join(', ',@args[0 .. ($#args - 2)]) if @args > 2; - $start .= ', ' if $start; - print OUTFILE <Perl_sv_2mortal(pPerl->Perl_newSVsv(pPerl->Perl_mess($arg, &args))); -$return pPerl->$name($start SvPV_nolen(pmsg)); - va_end(args); -} -ENDCODE - print OUTFILE "#endif\n" unless ($separateObj == 0); - } - elsif($name =~ /^Perl_newSVpvf/) { - print OUTFILE "\n#ifdef $name" . "_defined" unless ($separateObj == 0); - $args[0] =~ /(\w+)\W*$/; - $arg = $1; - print OUTFILE <Perl_newSV(0); - pPerl->Perl_sv_vcatpvfn(sv, $arg, strlen($arg), &args, NULL, 0, NULL); - va_end(args); - return sv; -} -ENDCODE - print OUTFILE "#endif\n" unless ($separateObj == 0); - } - elsif($name =~ /^Perl_sv_catpvf/) { - print OUTFILE "\n#ifdef $name" . "_defined" unless ($separateObj == 0); - $args[0] =~ /(\w+)\W*$/; - $arg0 = $1; - $args[1] =~ /(\w+)\W*$/; - $arg1 = $1; - print OUTFILE <Perl_sv_vcatpvfn($arg0, $arg1, strlen($arg1), &args, NULL, 0, NULL); - va_end(args); -} -ENDCODE - print OUTFILE "#endif\n" unless ($separateObj == 0); - } - elsif($name =~ /^Perl_sv_catpvf_mg/) { - print OUTFILE "\n#ifdef $name" . "_defined" unless ($separateObj == 0); - $args[0] =~ /(\w+)\W*$/; - $arg0 = $1; - $args[1] =~ /(\w+)\W*$/; - $arg1 = $1; - print OUTFILE <Perl_mg_set -#endif -extern "C" $type $funcName ($args) -{ - va_list args; - va_start(args, $arg1); - pPerl->Perl_sv_vcatpvfn($arg0, $arg1, strlen($arg1), &args, NULL, 0, NULL); - va_end(args); - SvSETMAGIC(sv); -} -ENDCODE - print OUTFILE "#endif\n" unless ($separateObj == 0); - } - elsif($name =~ /^Perl_sv_setpvf/) { - print OUTFILE "\n#ifdef $name" . "_defined" unless ($separateObj == 0); - $args[0] =~ /(\w+)\W*$/; - $arg0 = $1; - $args[1] =~ /(\w+)\W*$/; - $arg1 = $1; - print OUTFILE <Perl_sv_vsetpvfn($arg0, $arg1, strlen($arg1), &args, NULL, 0, NULL); - va_end(args); -} -ENDCODE - print OUTFILE "#endif\n" unless ($separateObj == 0); - } - elsif($name =~ /^Perl_sv_setpvf_mg/) { - print OUTFILE "\n#ifdef $name" . "_defined" unless ($separateObj == 0); - $args[0] =~ /(\w+)\W*$/; - $arg0 = $1; - $args[1] =~ /(\w+)\W*$/; - $arg1 = $1; - print OUTFILE <Perl_mg_set -#endif -extern "C" $type $funcName ($args) -{ - va_list args; - va_start(args, $arg1); - pPerl->Perl_sv_vsetpvfn($arg0, $arg1, strlen($arg1), &args, NULL, 0, NULL); - va_end(args); - SvSETMAGIC(sv); -} -ENDCODE - print OUTFILE "#endif\n" unless ($separateObj == 0); - } - elsif($name eq "fprintf") { - print OUTFILE "\n#ifdef $name" . "_defined" unless ($separateObj == 0); - $args[0] =~ /(\w+)\W*$/; - $arg0 = $1; - $args[1] =~ /(\w+)\W*$/; - $arg1 = $1; - print OUTFILE <perl_parse(xsinit, argc, argv, env); -} -ENDCODE - print OUTFILE "#endif\n" unless ($separateObj == 0); - next; - } - # handle special case for perl_atexit - if ($name eq "Perl_call_atexit") { - print OUTFILE <perl_call_atexit(fn, ptr); -} -ENDCODE - print OUTFILE "#endif\n" unless ($separateObj == 0); - next; - } - - - if($name eq "Perl_byterun" and $args eq "struct bytestream bs") { - next; - } - - # foo(void); - if ($args eq "void") { - print OUTFILE <$funcName(); -} - -ENDCODE - print OUTFILE "#endif\n" unless ($separateObj == 0); - next; - } - - # foo(char *s, const int bar); - print OUTFILE <$funcName"; - $doneone = 0; - foreach $arg (@args) { - if ($arg =~ /(\w+)\W*$/) { - if ($doneone) { - print OUTFILE ", $1"; - } - else { - print OUTFILE "($1"; - $doneone++; - } - } - } - print OUTFILE ");\n}\n"; - print OUTFILE "#endif\n" unless ($separateObj == 0); - } - else { - print "failed to match $_"; - } - } -} - -close INFILE; - -%skip_list = (); - -skip_these [qw( -strchop -filemode -lastfd -oldname -curinterp -Argv -Cmd -sortcop -sortstash -firstgv -secondgv -sortstack -signalstack -mystrk -oldlastpm -gensym -preambled -preambleav -Ilaststatval -Ilaststype -mess_sv -ors -opsave -eval_mutex -strtab_mutex -orslen -ofmt -modcount -generation -DBcv -archpat_auto -sortcxix -lastgotoprobe -regdummy -regcomp_parse -regxend -regcode -regnaughty -regsawback -regprecomp -regnpar -regsize -regflags -regseen -seen_zerolen -regcomp_rx -extralen -colorset -colors -reginput -regbol -regeol -regstartp -regendp -reglastparen -regtill -regprev -reg_start_tmp -reg_start_tmpl -regdata -bostr -reg_flags -reg_eval_set -regnarrate -regprogram -regindent -regcc -in_clean_objs -in_clean_all -linestart -pending_ident -statusvalue_vms -sublex_info -thrsv -threadnum -PL_Mem -PL_Env -PL_StdIO -PL_LIO -PL_Dir -PL_Sock -PL_Proc -cshname -threadsv_names -thread -nthreads -thr_key -threads_mutex -malloc_mutex -svref_mutex -sv_mutex -cred_mutex -nthreads_cond -eval_cond -cryptseen -cshlen -watchaddr -watchok -)]; - -sub readvars(\%$$) { - my ($syms, $file, $pre) = @_; - %$syms = (); - local (*FILE, $_); - open(FILE, "< $file") - or die "$0: Can't open $file: $!\n"; - while () { - s/[ \t]*#.*//; # Delete comments. - if (/PERLVARA?I?C?\($pre(\w+),\s*([^,)]+)/) { - $$syms{$1} = $2; - } - } - close(FILE); -} - -my %intrp; -my %thread; -my %globvar; - -readvars %intrp, '..\intrpvar.h','I'; -readvars %thread, '..\thrdvar.h','T'; -readvars %globvar, '..\perlvars.h','G'; - -open(HDRFILE, ">$hdrfile") or die "$0: Can't open $hdrfile: $!\n"; -print HDRFILE <PL_$name); -} - -ENDCODE - - print OUTFILE "#endif\n" unless ($separateObj == 0); - - print HDRFILE <Perl_get_op_descs(); -} - -char ** _Perl_op_name(void) -{ - return pPerl->Perl_get_op_names(); -} - -char * _Perl_no_modify(void) -{ - return pPerl->Perl_get_no_modify(); -} - -U32 * _Perl_opargs(void) -{ - return pPerl->Perl_get_opargs(); -} - -void boot_CAPI_handler(CV *cv, void (*subaddr)(CV *c), void *pP) -{ -#ifndef NO_XSLOCKS - XSLock localLock((CPerlObj*)pP); -#endif - subaddr(cv); -} - -void xs_handler(CPerlObj* p, CV* cv) -{ - void(*func)(CV*); - SV* sv; - MAGIC* m = pPerl->Perl_mg_find((SV*)cv, '~'); - if(m != NULL) - { - sv = m->mg_obj; - if(SvIOK(sv)) - { - func = (void(*)(CV*))SvIVX(sv); - } - else - { - func = (void(*)(CV*))pPerl->Perl_sv_2iv(sv); - } - func(cv); - } -} - -#undef Perl_newXS -CV* Perl_newXS(char* name, void (*subaddr)(CV* cv), char* filename) -{ - CV* cv = pPerl->Perl_newXS(name, xs_handler, filename); - pPerl->Perl_sv_magic((SV*)cv, pPerl->Perl_sv_2mortal(pPerl->Perl_newSViv((IV)subaddr)), '~', "CAPI", 4); - return cv; -} - -#undef Perl_deb -void Perl_deb(const char pat, ...) -{ -} - -#undef PL_Mem -#undef PL_Env -#undef PL_StdIO -#undef PL_LIO -#undef PL_Dir -#undef PL_Sock -#undef PL_Proc - -int * _win32_errno(void) -{ - return &pPerl->ErrorNo(); -} - -FILE* _win32_stdin(void) -{ - return (FILE*)pPerl->PL_StdIO->Stdin(); -} - -FILE* _win32_stdout(void) -{ - return (FILE*)pPerl->PL_StdIO->Stdout(); -} - -FILE* _win32_stderr(void) -{ - return (FILE*)pPerl->PL_StdIO->Stderr(); -} - -int _win32_ferror(FILE *fp) -{ - return pPerl->PL_StdIO->Error((PerlIO*)fp, ErrorNo()); -} - -int _win32_feof(FILE *fp) -{ - return pPerl->PL_StdIO->Eof((PerlIO*)fp, ErrorNo()); -} - -char* _win32_strerror(int e) -{ - return strerror(e); -} - -void _win32_perror(const char *str) -{ - perror(str); -} - -int _win32_vfprintf(FILE *pf, const char *format, va_list arg) -{ - return pPerl->PL_StdIO->Vprintf((PerlIO*)pf, ErrorNo(), format, arg); -} - -int _win32_vprintf(const char *format, va_list arg) -{ - return pPerl->PL_StdIO->Vprintf(pPerl->PL_StdIO->Stdout(), ErrorNo(), format, arg); -} - -int _win32_fprintf(FILE *pf, const char *format, ...) -{ - int ret; - va_list args; - va_start(args, format); - ret = _win32_vfprintf(pf, format, args); - va_end(args); - return ret; -} - -int _win32_printf(const char *format, ...) -{ - int ret; - va_list args; - va_start(args, format); - ret = _win32_vprintf(format, args); - va_end(args); - return ret; -} - -size_t _win32_fread(void *buf, size_t size, size_t count, FILE *pf) -{ - return pPerl->PL_StdIO->Read((PerlIO*)pf, buf, (size*count), ErrorNo()); -} - -size_t _win32_fwrite(const void *buf, size_t size, size_t count, FILE *pf) -{ - return pPerl->PL_StdIO->Write((PerlIO*)pf, buf, (size*count), ErrorNo()); -} - -FILE* _win32_fopen(const char *path, const char *mode) -{ - return (FILE*)pPerl->PL_StdIO->Open(path, mode, ErrorNo()); -} - -FILE* _win32_fdopen(int fh, const char *mode) -{ - return (FILE*)pPerl->PL_StdIO->Fdopen(fh, mode, ErrorNo()); -} - -FILE* _win32_freopen(const char *path, const char *mode, FILE *pf) -{ - return (FILE*)pPerl->PL_StdIO->Reopen(path, mode, (PerlIO*)pf, ErrorNo()); -} - -int _win32_fclose(FILE *pf) -{ - return pPerl->PL_StdIO->Close((PerlIO*)pf, ErrorNo()); -} - -int _win32_fputs(const char *s,FILE *pf) -{ - return pPerl->PL_StdIO->Puts((PerlIO*)pf, s, ErrorNo()); -} - -int _win32_fputc(int c,FILE *pf) -{ - return pPerl->PL_StdIO->Putc((PerlIO*)pf, c, ErrorNo()); -} - -int _win32_ungetc(int c,FILE *pf) -{ - return pPerl->PL_StdIO->Ungetc((PerlIO*)pf, c, ErrorNo()); -} - -int _win32_getc(FILE *pf) -{ - return pPerl->PL_StdIO->Getc((PerlIO*)pf, ErrorNo()); -} - -int _win32_fileno(FILE *pf) -{ - return pPerl->PL_StdIO->Fileno((PerlIO*)pf, ErrorNo()); -} - -void _win32_clearerr(FILE *pf) -{ - pPerl->PL_StdIO->Clearerr((PerlIO*)pf, ErrorNo()); -} - -int _win32_fflush(FILE *pf) -{ - return pPerl->PL_StdIO->Flush((PerlIO*)pf, ErrorNo()); -} - -long _win32_ftell(FILE *pf) -{ - return pPerl->PL_StdIO->Tell((PerlIO*)pf, ErrorNo()); -} - -int _win32_fseek(FILE *pf,long offset,int origin) -{ - return pPerl->PL_StdIO->Seek((PerlIO*)pf, offset, origin, ErrorNo()); -} - -int _win32_fgetpos(FILE *pf,fpos_t *p) -{ - return pPerl->PL_StdIO->Getpos((PerlIO*)pf, p, ErrorNo()); -} - -int _win32_fsetpos(FILE *pf,const fpos_t *p) -{ - return pPerl->PL_StdIO->Setpos((PerlIO*)pf, p, ErrorNo()); -} - -void _win32_rewind(FILE *pf) -{ - pPerl->PL_StdIO->Rewind((PerlIO*)pf, ErrorNo()); -} - -FILE* _win32_tmpfile(void) -{ - return (FILE*)pPerl->PL_StdIO->Tmpfile(ErrorNo()); -} - -void _win32_setbuf(FILE *pf, char *buf) -{ - pPerl->PL_StdIO->SetBuf((PerlIO*)pf, buf, ErrorNo()); -} - -int _win32_setvbuf(FILE *pf, char *buf, int type, size_t size) -{ - return pPerl->PL_StdIO->SetVBuf((PerlIO*)pf, buf, type, size, ErrorNo()); -} - -char* _win32_fgets(char *s, int n, FILE *pf) -{ - return pPerl->PL_StdIO->Gets((PerlIO*)pf, s, n, ErrorNo()); -} - -char* _win32_gets(char *s) -{ - return _win32_fgets(s, 80, (FILE*)pPerl->PL_StdIO->Stdin()); -} - -int _win32_fgetc(FILE *pf) -{ - return pPerl->PL_StdIO->Getc((PerlIO*)pf, ErrorNo()); -} - -int _win32_putc(int c, FILE *pf) -{ - return pPerl->PL_StdIO->Putc((PerlIO*)pf, c, ErrorNo()); -} - -int _win32_puts(const char *s) -{ - return pPerl->PL_StdIO->Puts(pPerl->PL_StdIO->Stdout(), s, ErrorNo()); -} - -int _win32_getchar(void) -{ - return pPerl->PL_StdIO->Getc(pPerl->PL_StdIO->Stdin(), ErrorNo()); -} - -int _win32_putchar(int c) -{ - return pPerl->PL_StdIO->Putc(pPerl->PL_StdIO->Stdout(), c, ErrorNo()); -} - -void* _win32_malloc(size_t size) -{ - return pPerl->PL_Mem->Malloc(size); -} - -void* _win32_calloc(size_t numitems, size_t size) -{ - return pPerl->PL_Mem->Malloc(numitems*size); -} - -void* _win32_realloc(void *block, size_t size) -{ - return pPerl->PL_Mem->Realloc(block, size); -} - -void _win32_free(void *block) -{ - pPerl->PL_Mem->Free(block); -} - -void _win32_abort(void) -{ - pPerl->PL_Proc->Abort(); -} - -int _win32_pipe(int *phandles, unsigned int psize, int textmode) -{ - return pPerl->PL_Proc->Pipe(phandles); -} - -FILE* _win32_popen(const char *command, const char *mode) -{ - return (FILE*)pPerl->PL_Proc->Popen(command, mode); -} - -int _win32_pclose(FILE *pf) -{ - return pPerl->PL_Proc->Pclose((PerlIO*)pf); -} - -unsigned _win32_sleep(unsigned int t) -{ - return pPerl->PL_Proc->Sleep(t); -} - -int _win32_spawnvp(int mode, const char *cmdname, const char *const *argv) -{ - return pPerl->PL_Proc->Spawnvp(mode, cmdname, argv); -} - -int _win32_mkdir(const char *dir, int mode) -{ - return pPerl->PL_Dir->Makedir(dir, mode, ErrorNo()); -} - -int _win32_rmdir(const char *dir) -{ - return pPerl->PL_Dir->Rmdir(dir, ErrorNo()); -} - -int _win32_chdir(const char *dir) -{ - return pPerl->PL_Dir->Chdir(dir, ErrorNo()); -} - -#undef stat -int _win32_fstat(int fd,struct stat *sbufptr) -{ - return pPerl->PL_LIO->FileStat(fd, sbufptr, ErrorNo()); -} - -int _win32_stat(const char *name,struct stat *sbufptr) -{ - return pPerl->PL_LIO->NameStat(name, sbufptr, ErrorNo()); -} - -int _win32_rename(const char *oname, const char *newname) -{ - return pPerl->PL_LIO->Rename(oname, newname, ErrorNo()); -} - -int _win32_setmode(int fd, int mode) -{ - return pPerl->PL_LIO->Setmode(fd, mode, ErrorNo()); -} - -long _win32_lseek(int fd, long offset, int origin) -{ - return pPerl->PL_LIO->Lseek(fd, offset, origin, ErrorNo()); -} - -long _win32_tell(int fd) -{ - return pPerl->PL_StdIO->Tell((PerlIO*)fd, ErrorNo()); -} - -int _win32_dup(int fd) -{ - return pPerl->PL_LIO->Dup(fd, ErrorNo()); -} - -int _win32_dup2(int h1, int h2) -{ - return pPerl->PL_LIO->Dup2(h1, h2, ErrorNo()); -} - -int _win32_open(const char *path, int oflag,...) -{ - return pPerl->PL_LIO->Open(path, oflag, ErrorNo()); -} - -int _win32_close(int fd) -{ - return pPerl->PL_LIO->Close(fd, ErrorNo()); -} - -int _win32_read(int fd, void *buf, unsigned int cnt) -{ - return pPerl->PL_LIO->Read(fd, buf, cnt, ErrorNo()); -} - -int _win32_write(int fd, const void *buf, unsigned int cnt) -{ - return pPerl->PL_LIO->Write(fd, buf, cnt, ErrorNo()); -} - -int _win32_times(struct tms *timebuf) -{ - return pPerl->PL_Proc->Times(timebuf); -} - -int _win32_ioctl(int i, unsigned int u, char *data) -{ - return pPerl->PL_LIO->IOCtl(i, u, data, ErrorNo()); -} - -int _win32_utime(const char *f, struct utimbuf *t) -{ - return pPerl->PL_LIO->Utime((char*)f, t, ErrorNo()); -} - -int _win32_uname(struct utsname *name) -{ - return pPerl->PL_Env->Uname(name, ErrorNo()); -} - -unsigned long _win32_os_id(void) -{ - return pPerl->PL_Env->OsID(); -} - -char* _win32_getenv(const char *name) -{ - return pPerl->PL_Env->Getenv(name, ErrorNo()); -} - -int _win32_putenv(const char *name) -{ - return pPerl->PL_Env->Putenv(name, ErrorNo()); -} - -int _win32_open_osfhandle(long handle, int flags) -{ - return pPerl->PL_StdIO->OpenOSfhandle(handle, flags); -} - -long _win32_get_osfhandle(int fd) -{ - return pPerl->PL_StdIO->GetOSfhandle(fd); -} - -u_long _win32_htonl (u_long hostlong) -{ - return pPerl->PL_Sock->Htonl(hostlong); -} - -u_short _win32_htons (u_short hostshort) -{ - return pPerl->PL_Sock->Htons(hostshort); -} - -u_long _win32_ntohl (u_long netlong) -{ - return pPerl->PL_Sock->Ntohl(netlong); -} - -u_short _win32_ntohs (u_short netshort) -{ - return pPerl->PL_Sock->Ntohs(netshort); -} - -unsigned long _win32_inet_addr (const char * cp) -{ - return pPerl->PL_Sock->InetAddr(cp, ErrorNo()); -} - -char * _win32_inet_ntoa (struct in_addr in) -{ - return pPerl->PL_Sock->InetNtoa(in, ErrorNo()); -} - -SOCKET _win32_socket (int af, int type, int protocol) -{ - return pPerl->PL_Sock->Socket(af, type, protocol, ErrorNo()); -} - -int _win32_bind (SOCKET s, const struct sockaddr *addr, int namelen) -{ - return pPerl->PL_Sock->Bind(s, addr, namelen, ErrorNo()); -} - -int _win32_listen (SOCKET s, int backlog) -{ - return pPerl->PL_Sock->Listen(s, backlog, ErrorNo()); -} - -SOCKET _win32_accept (SOCKET s, struct sockaddr *addr, int *addrlen) -{ - return pPerl->PL_Sock->Accept(s, addr, addrlen, ErrorNo()); -} - -int _win32_connect (SOCKET s, const struct sockaddr *name, int namelen) -{ - return pPerl->PL_Sock->Connect(s, name, namelen, ErrorNo()); -} - -int _win32_send (SOCKET s, const char * buf, int len, int flags) -{ - return pPerl->PL_Sock->Send(s, buf, len, flags, ErrorNo()); -} - -int _win32_sendto (SOCKET s, const char * buf, int len, int flags, - const struct sockaddr *to, int tolen) -{ - return pPerl->PL_Sock->Sendto(s, buf, len, flags, to, tolen, ErrorNo()); -} - -int _win32_recv (SOCKET s, char * buf, int len, int flags) -{ - return pPerl->PL_Sock->Recv(s, buf, len, flags, ErrorNo()); -} - -int _win32_recvfrom (SOCKET s, char * buf, int len, int flags, - struct sockaddr *from, int * fromlen) -{ - return pPerl->PL_Sock->Recvfrom(s, buf, len, flags, from, fromlen, ErrorNo()); -} - -int _win32_shutdown (SOCKET s, int how) -{ - return pPerl->PL_Sock->Shutdown(s, how, ErrorNo()); -} - -int _win32_closesocket (SOCKET s) -{ - return pPerl->PL_Sock->Closesocket(s, ErrorNo()); -} - -int _win32_ioctlsocket (SOCKET s, long cmd, u_long *argp) -{ - return pPerl->PL_Sock->Ioctlsocket(s, cmd, argp, ErrorNo()); -} - -int _win32_setsockopt (SOCKET s, int level, int optname, - const char * optval, int optlen) -{ - return pPerl->PL_Sock->Setsockopt(s, level, optname, optval, optlen, ErrorNo()); -} - -int _win32_getsockopt (SOCKET s, int level, int optname, char * optval, int *optlen) -{ - return pPerl->PL_Sock->Getsockopt(s, level, optname, optval, optlen, ErrorNo()); -} - -int _win32_getpeername (SOCKET s, struct sockaddr *name, int * namelen) -{ - return pPerl->PL_Sock->Getpeername(s, name, namelen, ErrorNo()); -} - -int _win32_getsockname (SOCKET s, struct sockaddr *name, int * namelen) -{ - return pPerl->PL_Sock->Getsockname(s, name, namelen, ErrorNo()); -} - -int _win32_gethostname (char * name, int namelen) -{ - return pPerl->PL_Sock->Gethostname(name, namelen, ErrorNo()); -} - -struct hostent * _win32_gethostbyname(const char * name) -{ - return pPerl->PL_Sock->Gethostbyname(name, ErrorNo()); -} - -struct hostent * _win32_gethostbyaddr(const char * addr, int len, int type) -{ - return pPerl->PL_Sock->Gethostbyaddr(addr, len, type, ErrorNo()); -} - -struct protoent * _win32_getprotobyname(const char * name) -{ - return pPerl->PL_Sock->Getprotobyname(name, ErrorNo()); -} - -struct protoent * _win32_getprotobynumber(int proto) -{ - return pPerl->PL_Sock->Getprotobynumber(proto, ErrorNo()); -} - -struct servent * _win32_getservbyname(const char * name, const char * proto) -{ - return pPerl->PL_Sock->Getservbyname(name, proto, ErrorNo()); -} - -struct servent * _win32_getservbyport(int port, const char * proto) -{ - return pPerl->PL_Sock->Getservbyport(port, proto, ErrorNo()); -} - -int _win32_select (int nfds, Perl_fd_set *rfds, Perl_fd_set *wfds, Perl_fd_set *xfds, - const struct timeval *timeout) -{ - return pPerl->PL_Sock->Select(nfds, (char*)rfds, (char*)wfds, (char*)xfds, timeout, ErrorNo()); -} - -void _win32_endnetent(void) -{ - pPerl->PL_Sock->Endnetent(ErrorNo()); -} - -void _win32_endhostent(void) -{ - pPerl->PL_Sock->Endhostent(ErrorNo()); -} - -void _win32_endprotoent(void) -{ - pPerl->PL_Sock->Endprotoent(ErrorNo()); -} - -void _win32_endservent(void) -{ - pPerl->PL_Sock->Endservent(ErrorNo()); -} - -struct netent * _win32_getnetent(void) -{ - return pPerl->PL_Sock->Getnetent(ErrorNo()); -} - -struct netent * _win32_getnetbyname(char *name) -{ - return pPerl->PL_Sock->Getnetbyname(name, ErrorNo()); -} - -struct netent * _win32_getnetbyaddr(long net, int type) -{ - return pPerl->PL_Sock->Getnetbyaddr(net, type, ErrorNo()); -} - -struct protoent *_win32_getprotoent(void) -{ - return pPerl->PL_Sock->Getprotoent(ErrorNo()); -} - -struct servent *_win32_getservent(void) -{ - return pPerl->PL_Sock->Getservent(ErrorNo()); -} - -void _win32_sethostent(int stayopen) -{ - pPerl->PL_Sock->Sethostent(stayopen, ErrorNo()); -} - -void _win32_setnetent(int stayopen) -{ - pPerl->PL_Sock->Setnetent(stayopen, ErrorNo()); -} - -void _win32_setprotoent(int stayopen) -{ - pPerl->PL_Sock->Setprotoent(stayopen, ErrorNo()); -} - -void _win32_setservent(int stayopen) -{ - pPerl->PL_Sock->Setservent(stayopen, ErrorNo()); -} -} /* extern "C" */ -EOCODE - - -print HDRFILE < perldll.def $(PERLDLL): perldll.def $(PERLDLL_OBJ) @@ -717,9 +718,6 @@ $(PERLDLL): perldll.def $(PERLDLL_OBJ) << $(XCOPY) $(PERLIMPLIB) $(COREDIR) -perl.def : $(MINIPERL) makeperldef.pl - $(MINIPERL) -I..\lib makeperldef.pl $(NULL) > perl.def - $(MINIMOD) : $(MINIPERL) ..\minimod.pl cd .. && miniperl minimod.pl > lib\ExtUtils\Miniperl.pm @@ -794,15 +792,6 @@ $(DYNALOADER).c: $(MINIPERL) $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM) $(XSUBPP) dl_win32.xs > $(*B).c cd ..\..\win32 -#!IF "$(OBJECT)" == "-DPERL_OBJECT" -#perlapi$(o) : ..\perlapi.c -# $(CC) $(CFLAGS_O) $(RUNTIME) -UPERLDLL -c \ -# $(OBJOUT_FLAG)perlapi$(o) ..\perlapi.c -# -#$(CAPILIB) : ..\perlapi.c ..\perlapi$(o) -# lib /OUT:$(CAPILIB) ..\perlapi$(o) -#!ENDIF - $(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs copy dl_win32.xs $(EXTDIR)\DynaLoader\dl_win32.xs @@ -996,12 +985,11 @@ clean : -@erase $(PERLEXE) -@erase $(PERLDLL) -@erase $(CORE_OBJ) - -@erase $(CAPILIB) -rmdir /s /q $(MINIDIR) || rmdir /s $(MINIDIR) -@erase $(WIN32_OBJ) -@erase $(DLL_OBJ) -@erase $(X2P_OBJ) - -@erase ..\*$(o) ..\*.lib ..\*.exp *$(o) *.lib *.exp + -@erase ..\*$(o) ..\*.lib ..\*.exp *$(o) *.lib *.exp *.res -@erase ..\t\*.exe ..\t\*.dll ..\t\*.bat -@erase ..\x2p\*.exe ..\x2p\*.bat -@erase *.ilk diff --git a/win32/TEST b/win32/TEST deleted file mode 100644 index 1bda4ef..0000000 --- a/win32/TEST +++ /dev/null @@ -1,149 +0,0 @@ -#!./perl - -# Last change: Fri Jan 10 09:57:03 WET 1997 - -# This is written in a peculiar style, since we're trying to avoid -# most of the constructs we'll be testing for. - -$| = 1; - -if ($ARGV[0] eq '-v') { - $verbose = 1; - shift; -} - -chdir 't' if -f 't/TEST'; - -die "You need to run \"make test\" first to set things up.\n" - unless -e 'perl' or -e 'perl.exe'; - -$ENV{EMXSHELL} = 'sh'; # For OS/2 - -if ($ARGV[0] eq '') { - push( @ARGV, `dir/s/b base` ); - push( @ARGV, `dir/s/b comp` ); - push( @ARGV, `dir/s/b cmd` ); - push( @ARGV, `dir/s/b io` ); - push( @ARGV, `dir/s/b op` ); - push( @ARGV, `dir/s/b pragma` ); - push( @ARGV, `dir/s/b lib` ); - - grep( chomp, @ARGV ); - @ARGV = grep( /\.t$/, @ARGV ); - grep( s/.*t\\//, @ARGV ); -# @ARGV = split(/[ \n]/, -# `echo base/*.t comp/*.t cmd/*.t io/*.t; echo op/*.t pragma/*.t lib/*.t`); -} else { - -@ARGV = map(glob($_),@ARGV); - -} - -if ($^O eq 'os2' || $^O eq 'MSWin32' || $^O eq 'qnx' || 1) { - $sharpbang = 0; -} -else { - open(CONFIG, "../config.sh"); - while () { - if (/sharpbang='(.*)'/) { - $sharpbang = ($1 eq '#!'); - last; - } - } - close(CONFIG); -} - -$bad = 0; -$good = 0; -$total = @ARGV; -while ($test = shift) { - if ($test =~ /^$/) { - next; - } - $te = $test; - chop($te); - print "$te" . '.' x (18 - length($te)); - if ($sharpbang) { - open(results,"./$test |") || (print "can't run.\n"); - } else { - open(script,"$test") || die "Can't run $test.\n"; - $_ =