X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=win32%2Fperllib.c;h=c24941f11133cce3e0a1bbd98eaf0724702ea83d;hb=bbc8f9de328519d89fa89d8fca21fe808800d6a2;hp=13d4b8b0006c6d216db393be9ff42decdda11f78;hpb=68dc074516a6859e3424b48d1647bcb08b1a1a7d;p=p5sagit%2Fp5-mst-13.2.git diff --git a/win32/perllib.c b/win32/perllib.c index 13d4b8b..c24941f 100644 --- a/win32/perllib.c +++ b/win32/perllib.c @@ -2,19 +2,10 @@ * "The Road goes ever on and on, down from the door where it began." */ -#ifdef __cplusplus -extern "C" { -#endif #include "EXTERN.h" #include "perl.h" - -#ifdef __cplusplus -} -# define EXTERN_C extern "C" -#else -# define EXTERN_C extern -#endif +#include "XSUB.h" static void xs_init _((void)); @@ -23,9 +14,10 @@ RunPerl(int argc, char **argv, char **env, void *iosubsystem) { int exitstatus; PerlInterpreter *my_perl; - void *pOldIOSubsystem; - pOldIOSubsystem = SetIOSubSystem(iosubsystem); +#ifdef USE_THREADS + MUTEX_INIT(&malloc_mutex); +#endif PERL_SYS_INIT(&argc,&argv); @@ -46,28 +38,9 @@ RunPerl(int argc, char **argv, char **env, void *iosubsystem) PERL_SYS_TERM(); - SetIOSubSystem(pOldIOSubsystem); - return (exitstatus); } -/* Register any extra external extensions */ - -char *staticlinkmodules[] = { - "DynaLoader", - NULL, -}; - -EXTERN_C void boot_DynaLoader _((CV* cv)); - -static void -xs_init() -{ - dXSUB_SYS; - char *file = __FILE__; - newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file); -} - extern HANDLE PerlDllHandle; BOOL APIENTRY @@ -82,10 +55,10 @@ DllMain(HANDLE hModule, /* DLL module handle */ case DLL_PROCESS_ATTACH: /* #define DEFAULT_BINMODE */ #ifdef DEFAULT_BINMODE - _setmode( _fileno( stdin ), _O_BINARY ); - _setmode( _fileno( stdout ), _O_BINARY ); - _setmode( _fileno( stderr ), _O_BINARY ); - _fmode = _O_BINARY; + setmode( fileno( stdin ), O_BINARY ); + setmode( fileno( stdout ), O_BINARY ); + setmode( fileno( stderr ), O_BINARY ); + _fmode = O_BINARY; #endif PerlDllHandle = hModule; break; @@ -109,3 +82,21 @@ DllMain(HANDLE hModule, /* DLL module handle */ } return TRUE; } + +/* Register any extra external extensions */ + +char *staticlinkmodules[] = { + "DynaLoader", + NULL, +}; + +EXTERN_C void boot_DynaLoader _((CV* cv)); + +static void +xs_init() +{ + char *file = __FILE__; + dXSUB_SYS; + newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file); +} +