Allow -C on the #! line when it is identical to -C on the command line.
[p5sagit/p5-mst-13.2.git] / perl.c
diff --git a/perl.c b/perl.c
index fa61356..d9ebaca 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -1228,14 +1228,18 @@ perl_destruct(pTHXx)
     Safefree(PL_reg_poscache);
     free_tied_hv_pool();
     Safefree(PL_op_mask);
-    Safefree(PL_psig_ptr);
-    PL_psig_ptr = (SV**)NULL;
     Safefree(PL_psig_name);
     PL_psig_name = (SV**)NULL;
-    Safefree(PL_bitcount);
-    PL_bitcount = NULL;
+    PL_psig_ptr = (SV**)NULL;
     Safefree(PL_psig_pend);
     PL_psig_pend = (int*)NULL;
+    {
+       /* We need to NULL PL_psig_pend first, so that
+          signal handlers know not to use it */
+       int *psig_save = PL_psig_pend;
+       PL_psig_pend = (int*)NULL;
+       Safefree(psig_save);
+    }
     PL_formfeed = NULL;
     nuke_stacks();
     PL_tainting = FALSE;
@@ -1775,17 +1779,8 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
 #  ifdef PERL_MEM_LOG
                             " PERL_MEM_LOG"
 #  endif
-#  ifdef PERL_MEM_LOG_ENV
-                            " PERL_MEM_LOG_ENV"
-#  endif
-#  ifdef PERL_MEM_LOG_ENV_FD
-                            " PERL_MEM_LOG_ENV_FD"
-#  endif
-#  ifdef PERL_MEM_LOG_STDERR
-                            " PERL_MEM_LOG_STDERR"
-#  endif
-#  ifdef PERL_MEM_LOG_TIMESTAMP
-                            " PERL_MEM_LOG_TIMESTAMP"
+#  ifdef PERL_MEM_LOG_NOIMPL
+                            " PERL_MEM_LOG_NOIMPL"
 #  endif
 #  ifdef PERL_USE_DEVEL
                             " PERL_USE_DEVEL"
@@ -3938,11 +3933,6 @@ S_init_postdump_symbols(pTHX_ register int argc, register char **argv, register
 
     if ((tmpgv = gv_fetchpvs("0", GV_ADD|GV_NOTQUAL, SVt_PV))) {
        sv_setpv(GvSV(tmpgv),PL_origfilename);
-       {
-           GV * const gv = gv_fetchpv("0", GV_ADD, SVt_PV);
-           if (gv)
-               sv_magic(GvSV(gv), MUTABLE_SV(gv), PERL_MAGIC_sv, "0", 1);
-       }
     }
     if ((PL_envgv = gv_fetchpvs("ENV", GV_ADD|GV_NOTQUAL, SVt_PVHV))) {
        HV *hv;
@@ -4401,16 +4391,12 @@ S_incpush(pTHX_ const char *const dir, STRLEN len, U32 flags)
            subdir = newSVsv(libdir);
 
            if (add_versioned_sub_dirs) {
-#define PERL_ARCH_FMT_PREFIX   "/"
-#define PERL_ARCH_FMT_SUFFIX   ""
-#define PERL_ARCH_FMT_PATH     "/" PERL_FS_VERSION
                /* .../version/archname if -d .../version/archname */
-               sv_catpvs(subdir, PERL_ARCH_FMT_PATH \
-                         PERL_ARCH_FMT_PREFIX ARCHNAME PERL_ARCH_FMT_SUFFIX);
+               sv_catpvs(subdir, "/" PERL_FS_VERSION "/" ARCHNAME);
                subdir = S_incpush_if_exists(aTHX_ av, subdir, libdir);
 
                /* .../version if -d .../version */
-               sv_catpvs(subdir, PERL_ARCH_FMT_PATH);
+               sv_catpvs(subdir, "/" PERL_FS_VERSION);
                subdir = S_incpush_if_exists(aTHX_ av, subdir, libdir);
            }
 
@@ -4418,8 +4404,7 @@ S_incpush(pTHX_ const char *const dir, STRLEN len, U32 flags)
            if (addoldvers) {
                for (incver = incverlist; *incver; incver++) {
                    /* .../xxx if -d .../xxx */
-                   Perl_sv_catpvf(aTHX_ subdir, PERL_ARCH_FMT_PREFIX \
-                                  "%s" PERL_ARCH_FMT_SUFFIX, *incver);
+                   Perl_sv_catpvf(aTHX_ subdir, "/%s", *incver);
                    subdir = S_incpush_if_exists(aTHX_ av, subdir, libdir);
                }
            }
@@ -4427,8 +4412,7 @@ S_incpush(pTHX_ const char *const dir, STRLEN len, U32 flags)
 
            if (add_archonly_sub_dirs) {
                /* .../archname if -d .../archname */
-               sv_catpvs(subdir,
-                         PERL_ARCH_FMT_PREFIX ARCHNAME PERL_ARCH_FMT_SUFFIX);
+               sv_catpvs(subdir, "/" ARCHNAME);
                subdir = S_incpush_if_exists(aTHX_ av, subdir, libdir);
 
            }