X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=win32%2Frunperl.c;h=b76f8ba2d2be4fec4983441d22a7b72f2a25c4f7;hb=3ce3ed558a83da8e2c458cdff55957484ff161a7;hp=3947f9ef377299c322f34302611eec034dcfddd4;hpb=0f4eea8fa1779e08575278392ed398ffeda6dcd2;p=p5sagit%2Fp5-mst-13.2.git diff --git a/win32/runperl.c b/win32/runperl.c index 3947f9e..b76f8ba 100644 --- a/win32/runperl.c +++ b/win32/runperl.c @@ -1,80 +1,26 @@ - -#ifdef PERL_OBJECT -#define USE_SOCKETS_AS_HANDLES #include "EXTERN.h" #include "perl.h" -#define NO_XSLOCKS -#include "XSUB.H" -#include "win32iop.h" - -#include -#include "perlhost.h" - - -char *staticlinkmodules[] = { - "DynaLoader", - NULL, -}; - -EXTERN_C void boot_DynaLoader _((CV* cv _CPERLarg)); - -static void -xs_init(CPERLarg) -{ - char *file = __FILE__; - dXSUB_SYS; - newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file); -} - -CPerlObj *pPerl; - -#undef PERL_SYS_INIT -#define PERL_SYS_INIT(a, c) - -int -main(int argc, char **argv, char **env) -{ - CPerlHost host; - int exitstatus = 1; - - if(!host.PerlCreate()) - exit(exitstatus); - - exitstatus = host.PerlParse(xs_init, argc, argv, NULL); - - if (!exitstatus) - exitstatus = host.PerlRun(); - - host.PerlDestroy(); - - return exitstatus; -} - -#else /* PERL_OBJECT */ - #ifdef __GNUC__ -/* - * GNU C does not do __declspec() - */ -#define __declspec(foo) /* Mingw32 defaults to globing command line * This is inconsistent with other Win32 ports and * seems to cause trouble with passing -DXSVERSION=\"1.6\" - * So we turn it off like this: + * So we turn it off like this, but only when compiling + * perlmain.c: perlmainst.c is linked into the same executable + * as win32.c, which also does this, so we mustn't do it twice + * otherwise we get a multiple definition error. */ +#ifndef PERLDLL int _CRT_glob = 0; - #endif - -__declspec(dllimport) int RunPerl(int argc, char **argv, char **env, void *ios); +#endif int main(int argc, char **argv, char **env) { - return RunPerl(argc, argv, env, (void*)0); + return RunPerl(argc, argv, env); } -#endif /* PERL_OBJECT */ +