home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / globals.c < prev    next >
C/C++ Source or Header  |  2000-01-27  |  2KB  |  83 lines

  1. #include "INTERN.h"
  2. #define PERL_IN_GLOBALS_C
  3. #include "perl.h"
  4.  
  5. #ifdef PERL_OBJECT
  6.  
  7. #undef PERLVAR
  8. #define PERLVAR(x, y)
  9. #undef PERLVARA
  10. #define PERLVARA(x, n, y)
  11. #undef PERLVARI
  12. #define PERLVARI(x, y, z) interp.x = z;
  13. #undef PERLVARIC
  14. #define PERLVARIC(x, y, z) interp.x = z;
  15.  
  16. CPerlObj::CPerlObj(IPerlMem* ipM, IPerlMem* ipMS, IPerlMem* ipMP,
  17.            IPerlEnv* ipE, IPerlStdIO* ipStd,
  18.            IPerlLIO* ipLIO, IPerlDir* ipD, IPerlSock* ipS,
  19.            IPerlProc* ipP)
  20. {
  21.     memset(((char*)this)+sizeof(void*), 0, sizeof(CPerlObj)-sizeof(void*));
  22.  
  23. #include "thrdvar.h"
  24. #include "intrpvar.h"
  25.  
  26.     PL_Mem = ipM;
  27.     PL_MemShared = ipMS;
  28.     PL_MemParse = ipMP;
  29.     PL_Env = ipE;
  30.     PL_StdIO = ipStd;
  31.     PL_LIO = ipLIO;
  32.     PL_Dir = ipD;
  33.     PL_Sock = ipS;
  34.     PL_Proc = ipP;
  35. }
  36.  
  37. void*
  38. CPerlObj::operator new(size_t nSize, IPerlMem *pvtbl)
  39. {
  40.     if(pvtbl)
  41.     return pvtbl->pMalloc(pvtbl, nSize);
  42. #ifndef __MINGW32__
  43.     /* operator new is supposed to throw std::bad_alloc */
  44.     return NULL;
  45. #endif
  46. }
  47.  
  48. #ifndef __BORLANDC__
  49. void
  50. CPerlObj::operator delete(void *pPerl, IPerlMem *pvtbl)
  51. {
  52.     if(pvtbl)
  53.     pvtbl->pFree(pvtbl, pPerl);
  54. }
  55. #endif
  56.  
  57. #ifdef WIN32        /* XXX why are these needed? */
  58. bool
  59. Perl_do_exec(char *cmd)
  60. {
  61.     return PerlProc_Cmd(cmd);
  62. }
  63.  
  64. int
  65. CPerlObj::do_aspawn(void *vreally, void **vmark, void **vsp)
  66. {
  67.     return PerlProc_aspawn(vreally, vmark, vsp);
  68. }
  69. #endif  /* WIN32 */
  70.  
  71. #endif   /* PERL_OBJECT */
  72.  
  73. int
  74. Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...)
  75. {
  76.     dTHX;
  77.     va_list(arglist);
  78.     va_start(arglist, format);
  79.     return PerlIO_vprintf(stream, format, arglist);
  80. }
  81.  
  82. #include "perlapi.h"        /* bring in PL_force_link_funcs */
  83.