Fix #if/#else bug introduced with MACOS_TRADITIONAL patches in change 9479.
[p5sagit/p5-mst-13.2.git] / perl.c
diff --git a/perl.c b/perl.c
index 9f7c682..130a83c 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -1642,7 +1642,6 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
     char **argv = PL_origargv;
     const char *scriptname = NULL;
     VOL bool dosearch = FALSE;
-    register SV *sv;
     register char c;
     const char *cddir = NULL;
 #ifdef USE_SITECUSTOMIZE
@@ -1654,8 +1653,6 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
     SvGROW(linestr_sv, 80);
     sv_setpvs(linestr_sv,"");
 
-    sv = newSVpvs("");         /* first used for -I flags */
-    SAVEFREESV(sv);
     init_main_stash();
 
     {
@@ -1750,9 +1747,6 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
            if (s && *s) {
                STRLEN len = strlen(s);
                incpush(s, len, INCPUSH_ADD_SUB_DIRS|INCPUSH_ADD_OLD_VERS);
-               sv_catpvs(sv, "-I");
-               sv_catpvn(sv, s, len);
-               sv_catpvs(sv, " ");
            }
            else
                Perl_croak(aTHX_ "No directory specified for -I");
@@ -1929,7 +1923,7 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
                d = s;
                if (!*s)
                    break;
-               if (!strchr("CDIMUdmtw", *s))
+               if (!strchr("CDIMUdmtwW", *s))
                    Perl_croak(aTHX_ "Illegal switch in PERL5OPT: -%c", *s);
                while (++s && *s) {
                    if (isSPACE(*s)) {
@@ -2034,7 +2028,6 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
 
     boot_core_PerlIO();
     boot_core_UNIVERSAL();
-    boot_core_xsutils();
     boot_core_mro();
 
     if (xsinit)
@@ -4133,9 +4126,10 @@ S_init_perllib(pTHX)
            do {
                incpush_use_sep(buf, 0, INCPUSH_ADD_SUB_DIRS);
            } while (my_trnlnm("PERL5LIB",buf,++idx));
-       else if
+       else {
            while (my_trnlnm("PERLLIB",buf,idx++))
                incpush_use_sep(buf, 0, 0);
+       }
 #endif /* VMS */
     }
 
@@ -4354,17 +4348,19 @@ S_incpush(pTHX_ const char *const dir, STRLEN len, U32 flags)
        = (U8)flags & INCPUSH_ADD_VERSIONED_SUB_DIRS;
     const U8 add_archonly_sub_dirs
        = (U8)flags & INCPUSH_ADD_ARCHONLY_SUB_DIRS;
+#ifdef PERL_INC_VERSION_LIST
     const U8 addoldvers  = (U8)flags & INCPUSH_ADD_OLD_VERS;
+#endif
     const U8 canrelocate = (U8)flags & INCPUSH_CAN_RELOCATE;
     const U8 unshift     = (U8)flags & INCPUSH_UNSHIFT;
     const U8 push_basedir = (flags & INCPUSH_NOT_BASEDIR) ? 0 : 1;
-    AV *inc;
-
-    if (!dir || !*dir)
-       return;
+    AV *const inc = GvAVn(PL_incgv);
 
-    inc = GvAVn(PL_incgv);
+    PERL_ARGS_ASSERT_INCPUSH;
+    assert(len > 0);
 
+    /* Could remove this vestigial extra block, if we don't mind a lot of
+       re-indenting diff noise.  */
     {
        SV *libdir;
        /* Change 20189146be79a0596543441fa369c6bf7f85103f, to fix RT#6665,