+/* globals.c
+ *
+ * Copyright (C) 1995, 1999, 2000, 2001, 2008 by Larry Wall and others
+ *
+ * You may distribute under the terms of either the GNU General Public
+ * License or the Artistic License, as specified in the README file.
+ *
+ */
+
+/*
+ * 'For the rest, they shall represent the other Free Peoples of the World:
+ * Elves, Dwarves, and Men.' --Elrond
+ *
+ * [p.275 of _The Lord of the Rings_, II/iii: "The Ring Goes South"]
+ */
+
+/* This file exists to #include "perl.h" _ONCE_ with
+ * PERL_IN_GLOBALS_C defined. That causes various global variables
+ * in perl.h and other files it includes to be _defined_ (and initialized)
+ * rather than just declared.
+*/
+
#include "INTERN.h"
#define PERL_IN_GLOBALS_C
#include "perl.h"
-#ifdef PERL_OBJECT
-
-#undef PERLVAR
-#define PERLVAR(x, y)
-#undef PERLVARA
-#define PERLVARA(x, n, 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*));
-
-#include "thrdvar.h"
-#include "intrpvar.h"
-#include "perlvars.h"
-
- PL_Mem = ipM;
- PL_Env = ipE;
- PL_StdIO = ipStd;
- PL_LIO = ipLIO;
- PL_Dir = ipD;
- PL_Sock = ipS;
- PL_Proc = ipP;
-}
-
-void*
-CPerlObj::operator new(size_t nSize, IPerlMem *pvtbl)
-{
- if(pvtbl)
- return pvtbl->pMalloc(pvtbl, nSize);
-
- return NULL;
-}
-
-void
-CPerlObj::operator delete(void *pPerl, IPerlMem *pvtbl)
-{
- if(pvtbl)
- pvtbl->pFree(pvtbl, pPerl);
-}
-
-void
-CPerlObj::Init(void)
-{
-}
-
-#ifdef WIN32 /* XXX why are these needed? */
-bool
-Perl_do_exec(char *cmd)
-{
- return PerlProc_Cmd(cmd);
-}
+/* regcomp.h * isn't #included in perl.h, as its only included within a
+ * few specific files such as regcomp.c, regexec.c. So include it
+ * explicitly to process any data declarations within it.
+ */
+#include "regcomp.h"
-int
-CPerlObj::do_aspawn(void *vreally, void **vmark, void **vsp)
-{
- return PerlProc_aspawn(vreally, vmark, vsp);
-}
-#endif /* WIN32 */
+/* We need somewhere to declare this. This file seems a good place.
+ * This is not a regular "global" in that we don't know whether it needs to
+ * exist until we include threads.h, and we don't want it as part of any
+ * global struct (if that or something similar is re-introduced. */
-#endif /* PERL_OBJECT */
+#if defined(USE_ITHREADS) && defined(PERL_THREAD_LOCAL)
+PERL_THREAD_LOCAL void *PL_current_context;
+#endif
-int
-Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...)
-{
- dTHX;
- va_list(arglist);
- va_start(arglist, format);
- return PerlIO_vprintf(stream, format, arglist);
-}
+/*
+ * ex: set ts=8 sts=4 sw=4 et:
+ */