On 11/22/05, John E. Malmberg <[EMAIL PROTECTED]> wrote:
> The file ext/List/Util/t/p_tainted.t is assuming a UNIX format pathname
> is returned by __FILE__.
>
> This is a quick fix for VMS.
>
> A proper fix needs use the routines to either generate a relative
> pathname or concatenate paths.
>
> Also I need to find out is where __FILE__ is being set because I need to
> have it show up in UNIX format when the VMS CRTL is in UNIX
> compatibility mode, and when I set the VMS CRTL in this mode, I am still
> getting it in VMS format.

__FILE__ is initially set from PL_origfilename in perl.c. It's saved
as CopFILE in each cop (control op) in the optree (grep for
CopFILE_set for points where it's set.) In toke.c it can be modified
when parsing #line directives (like in C, basically). Finally, the
function pp_require() in pp_ctl.c can set it to the file name it
opens, corresponding to a .pm file usually.

That said, your fix looks strange to me. The "./" is here to ensure
the script looks for tainted.t in the current directory. As
p_tainted.t is run with the -T switch, the current directory is not
included in @INC, so do() shouldn't look for tainted.t in the current
directory at all, and then fail. And that's probably what's happening,
since in this case p_tainted.t produces no output at all...

Reply via email to