added patch for -i'foo*bar', made code somewhat simpler, tweaked doc
[p5sagit/p5-mst-13.2.git] / globals.c
index a566925..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,77 +1438,26 @@ 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;
-#ifdef USE_THREADS
-       threadsv_names = THREADSV_NAMES;
-       chopset = " \n-";
-       tmps_ix = -1;
-       tmps_floor = -1;
-       curcop = &compiling;
-       cxstack_ix = -1;
-       cxstack_max = 128;
-#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);
 }
-
 #endif  /* WIN32 */
 
 #endif   /* PERL_OBJECT */