From: John E. Malmberg [mailto:[EMAIL PROTECTED]

> The script 03examples.t is failing at test 1 because the includes seem
> to be set wrong for VMS.
> 
> --- ext/compress/zlib/t/03examples_t.blead      Sun Jul 31 22:54:06 2005
> +++ ext/compress/zlib/t/03examples.t    Sun Jul 31 22:54:12 2005
> @@ -42,7 +42,7 @@
> 
>   my $Inc = '' ;
>   if ($^O eq 'VMS') {
> -  $Inc = '-"I[.blib.lib]" -"I[.blib.arch]"';
> +  $Inc = '-"I[-.lib]" -"I[-.arch]"';
>   }
>   elsif ($^O eq 'MSWin32') {
>     foreach (@INC)

Is this the layout needed for running these tests when Compress::Zlib is in
the core only? Is the use of blib still valid for the case when C::Z is
built on VMS away from the core?

> This gets the script passing up to test 10 which causes the subsequent
> tests to fail.

Test 10 triggers the perl interface to the zlib function gzdopen. This is
one of the non-portable hot-spots in Compress::Zlib (and is reworked
completely in the next version of Compress::Zlib).

>    DB<5> x `$Perl $Inc ${examples}/gzstream <$file1 >$file2 2>$stderr`
> 
> The error captured in the file $stderr is:
> 
> EAGLE> type err.out
> Cannot open stdout: invalid argument
> %C-F-EINVAL, invalid argument
> 
> The value for stdout should have been the filename hello2.gz, and there
> should be nothing illegal about that.  I will need to chase that down
> later, if someone else does not find the fix before this.

Unless VMS works completely differently to Unix-land, that isn't the case.
The code that is triggering the error is this:

    my $gz = gzopen(\*STDOUT, "wb")
          or die "Cannot open stdout: $gzerrno\n" ;

I'm passing the STDOUT filehandle into gzopen, not the "hello2.gz" filename.
That in turn calls this code in Zlib.pm (where $file is the STDOUT
filehandle)

        IO::Handle::flush($file) ;
        my $offset = tell($file) ;
        gzdopen_(fileno($file), $mode, $offset) ;

The gzdopen_ call is where I interface to the zlib gzdopen 'C' function.

Does VMS allow this messing with the STDOUT filehandle?

Paul


                
___________________________________________________________ 
To help you stay safe and secure online, we've developed the all new Yahoo! 
Security Centre. http://uk.security.yahoo.com

Reply via email to