X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=miniperlmain.c;h=252a48d8e9573c979b873f8adcffbd1fca0285d5;hb=76ca89edebb126a10dcdc3521c9db0680eba1b5c;hp=9995b2b732ed0518c3de411c4826d46464df2334;hpb=31d77e546f9eed28b984703264e32f2200f7aa8b;p=p5sagit%2Fp5-mst-13.2.git diff --git a/miniperlmain.c b/miniperlmain.c index 9995b2b..252a48d 100644 --- a/miniperlmain.c +++ b/miniperlmain.c @@ -1,10 +1,29 @@ +/* miniperlmain.c + * + * Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003, + * 2004, 2005 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. + * + */ + /* * "The Road goes ever on and on, down from the door where it began." */ +/* This file contains the main() function for the perl interpreter. + * Note that miniperlmain.c contains main() for the 'miniperl' binary, + * while perlmain.c contains main() for the 'perl' binary. + * + * Miniperl is like perl except that it does not support dynamic loading, + * and in fact is used to build the dynamic modules needed for the 'real' + * perl executable. + */ + #ifdef OEMVS #ifdef MYMALLOC -/* sbrk is limited to first heap segement so make it big */ +/* sbrk is limited to first heap segment so make it big */ #pragma runopts(HEAP(8M,500K,ANYWHERE,KEEP,8K,4K) STACK(,,ANY,) ALL31(ON)) #else #pragma runopts(HEAP(2M,500K,ANYWHERE,KEEP,8K,4K) STACK(,,ANY,) ALL31(ON)) @@ -29,6 +48,10 @@ int main(int argc, char **argv, char **env) { int exitstatus; + (void)env; +#ifndef PERL_USE_SAFE_PUTENV + PL_use_safe_putenv = 0; +#endif /* PERL_USE_SAFE_PUTENV */ #ifdef PERL_GLOBAL_STRUCT #define PERLVAR(var,type) /**/ @@ -48,7 +71,7 @@ main(int argc, char **argv, char **env) PERL_SYS_INIT3(&argc,&argv,&env); -#if defined(USE_THREADS) || defined(USE_ITHREADS) +#if defined(USE_ITHREADS) /* XXX Ideally, this should really be happening in perl_alloc() or * perl_construct() to keep libperl.a transparently fork()-safe. * It is currently done here only because Apache/mod_perl have @@ -72,12 +95,10 @@ main(int argc, char **argv, char **env) } PL_exit_flags |= PERL_EXIT_DESTRUCT_END; exitstatus = perl_parse(my_perl, xs_init, argc, argv, (char **)NULL); - if (!exitstatus) { + if (!exitstatus) perl_run(my_perl); - exitstatus = perl_destruct(my_perl); - } else { - perl_destruct(my_perl); - } + + exitstatus = perl_destruct(my_perl); perl_free(my_perl);