Change 23667 by [EMAIL PROTECTED] on 2004/12/21 20:56:58
Move the setting of $^X ahead of the initialisation of @INC
Affected files ...
... //depot/perl/perl.c#572 edit
Differences ...
==== //depot/perl/perl.c#572 (text) ====
Index: perl/perl.c
--- perl/perl.c#571~23617~ Mon Dec 6 07:35:39 2004
+++ perl/perl.c Tue Dec 21 12:56:58 2004
@@ -967,6 +967,23 @@
++PL_exitlistlen;
}
+
+STATIC void
+S_set_caret_X(pTHX) {
+ GV* tmpgv = gv_fetchpv("\030",TRUE, SVt_PV); /* $^X */
+ if (tmpgv) {
+#ifdef HAS_PROCSELFEXE
+ S_procself_val(aTHX_ GvSV(tmpgv), PL_origargv[0]);
+#else
+#ifdef OS2
+ sv_setpv(GvSV(tmpgv), os2_execname(aTHX));
+#else
+ sv_setpv(GvSV(tmpgv),PL_origargv[0]);
+#endif
+#endif
+ }
+}
+
/*
=for apidoc perl_parse
@@ -1112,6 +1129,10 @@
PL_do_undump = FALSE;
cxstack_ix = -1; /* start label stack again */
init_ids();
+ assert (!PL_tainted);
+ TAINT;
+ S_set_caret_X(aTHX);
+ TAINT_NOT;
init_postdump_symbols(argc,argv,env);
return 0;
}
@@ -1494,6 +1515,11 @@
scriptname = "-";
}
+ /* Set $^X early so that it can be used for relocatable paths in @INC */
+ assert (!PL_tainted);
+ TAINT;
+ S_set_caret_X(aTHX);
+ TAINT_NOT;
init_perllib();
open_script(scriptname,dosearch,sv);
@@ -4052,22 +4078,6 @@
#endif /* HAS_PROCSELFEXE */
STATIC void
-S_set_caret_X(pTHX) {
- GV* tmpgv = gv_fetchpv("\030",TRUE, SVt_PV); /* $^X */
- if (tmpgv) {
-#ifdef HAS_PROCSELFEXE
- S_procself_val(aTHX_ GvSV(tmpgv), PL_origargv[0]);
-#else
-#ifdef OS2
- sv_setpv(GvSV(tmpgv), os2_execname(aTHX));
-#else
- sv_setpv(GvSV(tmpgv),PL_origargv[0]);
-#endif
-#endif
- }
-}
-
-STATIC void
S_init_postdump_symbols(pTHX_ register int argc, register char **argv,
register char **env)
{
char *s;
@@ -4095,7 +4105,6 @@
magicname("0", "0", 1);
#endif
}
- S_set_caret_X(aTHX);
if ((PL_envgv = gv_fetchpv("ENV",TRUE, SVt_PVHV))) {
HV *hv;
GvMULTI_on(PL_envgv);
End of Patch.