added patch for -i'foo*bar', made code somewhat simpler, tweaked doc
[p5sagit/p5-mst-13.2.git] / globals.c
index 53750a6..1daf4f1 100644 (file)
--- a/globals.c
+++ b/globals.c
@@ -1401,10 +1401,22 @@ fprintf(PerlIO *stream, const char *format, ...)
     return PerlIO_vprintf(stream, format, arglist);
 }
 
+#undef PERLVAR
+#define PERLVAR(x, y)
+#undef PERLVARI
+#define PERLVARI(x, y, z) x = z;
+#undef PERLVARIC
+#define PERLVARIC(x, y, z) 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*));
+
+#include "thrdvar.h"
+#include "intrpvar.h"
+#include "perlvars.h"
+
     piMem = ipM;
     piENV = ipE;
     piStdIO = ipStd;
@@ -1426,63 +1438,15 @@ CPerlObj::operator new(size_t nSize, IPerlMem *pvtbl)
 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 = FUNC_NAME_TO_PTR(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;
-    generation = 100;
-
-#ifdef WIN32
-    New(2904, environ, 1, char*);
-    *environ = NULL;
-#endif
 }
 
-#ifdef WIN32
+#ifdef WIN32           /* XXX why are these needed? */
 bool
 do_exec(char *cmd)
 {