Change 14366 by jhi@alpha on 2002/01/21 14:07:35
Subject: Re: coderefs in @INC
From: Chris Nandor <[EMAIL PROTECTED]>
Date: Thu, 17 Jan 2002 11:26:02 -0500
Message-Id: <p0510030eb86ca7bc03e0@[10.0.1.177]>
Affected files ...
.... //depot/perl/pp_ctl.c#300 edit
Differences ...
==== //depot/perl/pp_ctl.c#300 (text) ====
Index: perl/pp_ctl.c
--- perl/pp_ctl.c.~1~ Mon Jan 21 07:15:05 2002
+++ perl/pp_ctl.c Mon Jan 21 07:15:05 2002
@@ -2927,30 +2927,11 @@
/* prepare to compile file */
-#ifdef MACOS_TRADITIONAL
- if (PERL_FILE_IS_ABSOLUTE(name)
- || (*name == ':' && name[1] != ':' && strchr(name+2, ':')))
- {
+ if (path_is_absolute(name)) {
tryname = name;
tryrsfp = doopen_pmc(name,PERL_SCRIPT_MODE);
- /* We consider paths of the form :a:b ambiguous and interpret them first
- as global then as local
- */
- if (!tryrsfp && *name == ':' && name[1] != ':' && strchr(name+2, ':'))
- goto trylocal;
}
- else
-trylocal: {
-#else
- if (PERL_FILE_IS_ABSOLUTE(name)
- || (*name == '.' && (name[1] == '/' ||
- (name[1] == '.' && name[2] == '/'))))
- {
- tryname = name;
- tryrsfp = doopen_pmc(name,PERL_SCRIPT_MODE);
- }
- else {
-#endif
+ if (!tryrsfp) {
AV *ar = GvAVn(PL_incgv);
I32 i;
#ifdef VMS
@@ -3073,6 +3054,14 @@
}
}
else {
+ if (!path_is_absolute(name)
+#ifdef MACOS_TRADITIONAL
+ /* We consider paths of the form :a:b ambiguous and interpret
+them first
+ as global then as local
+ */
+ || (*name == ':' && name[1] != ':' && strchr(name+2, ':'))
+#endif
+ ) {
char *dir = SvPVx(dirsv, n_a);
#ifdef MACOS_TRADITIONAL
char buf[256];
@@ -3104,6 +3093,7 @@
tryname += 2;
break;
}
+ }
}
}
}
@@ -3700,3 +3690,21 @@
return len;
}
+/* perhaps someone can come up with a better name for
+ this? it is not really "absolute", per se ... */
+bool
+path_is_absolute(char *name)
+{
+ if (PERL_FILE_IS_ABSOLUTE(name)
+#ifdef MACOS_TRADITIONAL
+ || (*name == ':' && name[1] != ':' && strchr(name+2, ':')))
+#else
+ || (*name == '.' && (name[1] == '/' ||
+ (name[1] == '.' && name[2] == '/'))))
+#endif
+ {
+ return TRUE;
+ }
+ else
+ return FALSE;
+}
End of Patch.