X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=miniperlmain.c;h=2d66964093e964a480984d591ad95d71fb12f738;hb=80589958147be1b203a8dbab685aa65994207e8a;hp=e0b75fffe63baf66a1baed91ac45401e1cdfad63;hpb=2304df62caa7d9be70e8b8bcdb454e139c9c103d;p=p5sagit%2Fp5-mst-13.2.git diff --git a/miniperlmain.c b/miniperlmain.c index e0b75ff..2d66964 100644 --- a/miniperlmain.c +++ b/miniperlmain.c @@ -1,39 +1,66 @@ -#include "INTERN.h" +/* + * "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 + +static void xs_init _((void)); +static PerlInterpreter *my_perl; + +int +#ifdef CAN_PROTOTYPE +main(int argc, char **argv, char **env) +#else main(argc, argv, env) int argc; char **argv; char **env; +#endif { int exitstatus; - PerlInterpreter *my_perl; - my_perl = perl_alloc(); - if (!my_perl) - exit(1); - perl_construct( my_perl ); + PERL_SYS_INIT(&argc,&argv); + + perl_init_i18nl10n(1); - exitstatus = perl_parse( my_perl, argc, argv, env ); - if (exitstatus) - exit( exitstatus ); + if (!do_undump) { + my_perl = perl_alloc(); + if (!my_perl) + exit(1); + perl_construct( my_perl ); + } - exitstatus = perl_run( my_perl ); + exitstatus = perl_parse( my_perl, xs_init, argc, argv, (char **) NULL ); + if (!exitstatus) { + exitstatus = perl_run( my_perl ); + } perl_destruct( my_perl ); perl_free( my_perl ); + PERL_SYS_TERM(); + exit( exitstatus ); } /* Register any extra external extensions */ -void -perl_init_ext() -{ - char *file = __FILE__; +/* Do not delete this line--writemain depends on it */ -#ifdef USE_DYNAMIC_LOADING - boot_DynamicLoader(); -#endif +static void +xs_init() +{ + dXSUB_SYS; }