#define pp_rcatline CPerlObj::Perl_pp_rcatline
#undef pp_regcmaybe
#define pp_regcmaybe CPerlObj::Perl_pp_regcmaybe
+#undef pp_regcreset
+#define pp_regcreset CPerlObj::Perl_pp_regcreset
#undef pp_regcomp
#define pp_regcomp CPerlObj::Perl_pp_regcomp
#undef pp_match
#define pp_match CPerlObj::Perl_pp_match
+#undef pp_qr
+#define pp_qr CPerlObj::Perl_pp_qr
#undef pp_subst
#define pp_subst CPerlObj::Perl_pp_subst
#undef pp_substcont
ck_null, /* readline */
ck_null, /* rcatline */
ck_fun, /* regcmaybe */
+ ck_fun, /* regcreset */
ck_null, /* regcomp */
ck_match, /* match */
+ ck_match, /* qr */
ck_null, /* subst */
ck_null, /* substcont */
ck_null, /* trans */
pp_readline,
pp_rcatline,
pp_regcmaybe,
+ pp_regcreset,
pp_regcomp,
pp_match,
+ pp_qr,
pp_subst,
pp_substcont,
pp_trans,
return PerlIO_vprintf(stream, format, arglist);
}
+#undef PERLVAR
+#define PERLVAR(x, y)
+#undef PERLVARI
+#define PERLVARI(x, y, z) PL_##x = z;
+#undef PERLVARIC
+#define PERLVARIC(x, y, z) PL_##x = z;
+
CPerlObj::CPerlObj(IPerlMem* ipM, IPerlEnv* ipE, IPerlStdIO* ipStd,
IPerlLIO* ipLIO, IPerlDir* ipD, IPerlSock* ipS, IPerlProc* ipP)
{
memset(((char*)this)+sizeof(void*), 0, sizeof(CPerlObj)-sizeof(void*));
- piMem = ipM;
- piENV = ipE;
- piStdIO = ipStd;
- piLIO = ipLIO;
- piDir = ipD;
- piSock = ipS;
- piProc = ipP;
+
+#include "thrdvar.h"
+#include "intrpvar.h"
+#include "perlvars.h"
+
+ PL_piMem = ipM;
+ PL_piENV = ipE;
+ PL_piStdIO = ipStd;
+ PL_piLIO = ipLIO;
+ PL_piDir = ipD;
+ PL_piSock = ipS;
+ PL_piProc = ipP;
}
void*
int&
CPerlObj::ErrorNo(void)
{
- return error_no;
+ return errno;
}
void
CPerlObj::Init(void)
{
- curcop = &compiling;
- cxstack_ix = -1;
- cxstack_max = 128;
- chopset = " \n-";
-#ifdef USE_THREADS
- threadsv_names = THREADSV_NAMES;
- tmps_ix = -1;
- tmps_floor = -1;
-#endif
- maxo = MAXO;
- sh_path = SH_PATH;
- runops = RUNOPS_DEFAULT;
-#ifdef CSH
- cshname = CSH;
-#endif
- rsfp = Nullfp;
- expect = XSTATE;
-#ifdef USE_LOCALE_COLLATE
- collation_standard = TRUE;
- collxfrm_mult = 2;
-#endif
-#ifdef USE_LOCALE_NUMERIC
- numeric_standard = TRUE;
- numeric_local = TRUE;
-#endif /* !USE_LOCALE_NUMERIC */
-
-/* constants (these are not literals to facilitate pointer comparisons) */
- Yes = "1";
- No = "";
- hexdigit = "0123456789abcdef0123456789ABCDEFx";
- patleave = "\\.^$@dDwWsSbB+*?|()-nrtfeaxc0123456789[{]}";
- splitstr = " ";
- perl_destruct_level = 0;
- maxsysfd = MAXSYSFD;
- statname = Nullsv;
- maxscream = -1;
- op_mask = NULL;
- dlmax = 128;
- curcopdb = NULL;
- copline = NOLINE;
- laststatval = -1;
- laststype = OP_STAT;
-
-#ifdef WIN32
- New(2904, environ, 1, char*);
- *environ = NULL;
-#endif
}
-#ifdef WIN32
+#ifdef WIN32 /* XXX why are these needed? */
bool
do_exec(char *cmd)
{
- return PerlProc_Cmd(cmd);
+ return PerlProc_Cmd(cmd);
}
int
do_aspawn(void *vreally, void **vmark, void **vsp)
{
- return PerlProc_aspawn(vreally, vmark, vsp);
+ return PerlProc_aspawn(vreally, vmark, vsp);
}
-
-EXTERN_C void boot_DynaLoader _((CPERLarg_ CV* cv));
-
-void CPerlObj::BootDynaLoader(void)
-{
- char *file = __FILE__;
- dXSUB_SYS;
- newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file);
-}
-
#endif /* WIN32 */
#endif /* PERL_OBJECT */