This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update B's size/offset for CvFLAGS to U32, following commit 51c78f1b91bbcd7a.
[perl5.git] / miniperlmain.c
index f60a3e0..61358f7 100644 (file)
 static void xs_init (pTHX);
 static PerlInterpreter *my_perl;
 
-#if defined (__MINT__) || defined (atarist)
-/* The Atari operating system doesn't have a dynamic stack.  The
-   stack size is determined from this value.  */
-long _stksize = 64 * 1024;
-#endif
-
 #if defined(PERL_GLOBAL_STRUCT_PRIVATE)
 /* The static struct perl_vars* may seem counterproductive since the
  * whole idea PERL_GLOBAL_STRUCT_PRIVATE was to avoid statics, but note
@@ -67,16 +61,18 @@ main(int argc, char **argv, char **env)
 #endif
 {
     dVAR;
-    int exitstatus;
+    int exitstatus, i;
 #ifdef PERL_GLOBAL_STRUCT
     struct perl_vars *plvarsp = init_global_struct();
 #  ifdef PERL_GLOBAL_STRUCT_PRIVATE
     my_vars = my_plvarsp = plvarsp;
 #  endif
 #endif /* PERL_GLOBAL_STRUCT */
-    (void)env;
+#ifndef NO_ENV_ARRAY_IN_MAIN
+    PERL_UNUSED_ARG(env);
+#endif
 #ifndef PERL_USE_SAFE_PUTENV
-    PL_use_safe_putenv = 0;
+    PL_use_safe_putenv = FALSE;
 #endif /* PERL_USE_SAFE_PUTENV */
 
     /* if user wants control of gprof profiling off by default */
@@ -116,6 +112,15 @@ main(int argc, char **argv, char **env)
     if (!exitstatus)
         perl_run(my_perl);
 
+#ifndef PERL_MICRO
+    /* Unregister our signal handler before destroying my_perl */
+    for (i = 1; PL_sig_name[i]; i++) {
+       if (rsignal_state(PL_sig_num[i]) == (Sighandler_t) PL_csighandlerp) {
+           rsignal(PL_sig_num[i], (Sighandler_t) SIG_DFL);
+       }
+    }
+#endif
+
     exitstatus = perl_destruct(my_perl);
 
     perl_free(my_perl);
@@ -133,12 +138,12 @@ main(int argc, char **argv, char **env)
     environ = env;
 #endif
 
+    PERL_SYS_TERM();
+
 #ifdef PERL_GLOBAL_STRUCT
     free_global_struct(plvarsp);
 #endif /* PERL_GLOBAL_STRUCT */
 
-    PERL_SYS_TERM();
-
     exit(exitstatus);
     return exitstatus;
 }
@@ -158,8 +163,8 @@ xs_init(pTHX)
  * Local variables:
  * c-indentation-style: bsd
  * c-basic-offset: 4
- * indent-tabs-mode: t
+ * indent-tabs-mode: nil
  * End:
  *
- * ex: set ts=8 sts=4 sw=4 noet:
+ * ex: set ts=8 sts=4 sw=4 et:
  */