Apologies for not being a subscriber to the list. My bad. I will subscribe
shortly, but I want to get this one out for comment.

In 2.49, the t/inode_names test failed on OpenBSD/i386 (3.2-current). After
quite a bit of head scratching, I >think< I know what the problem is;

The test of the stat elements [0] and [1] (in sub FileId() around line
540 -below) is redundent and will always fail where an OS may return '0' for
either value - in this case I think that 'dev' is '0' for the root
filesystem on OpenBSD:

    my @inode_stat = ();
    if($self->{inode_names}) {
        print STDERR "\ninode_names is SET\n";
        @inode_stat = stat($file);
        unless($inode_stat[0] && $inode_stat[1]) {
            @inode_stat = ();
        }
    }

perl's stat() returns and empty array if the stat fails, so the above code
can be reduced to:

   my @inode_stat = ();
    if($self->{inode_names}) {
        print STDERR "\ninode_names is SET\n";
        @inode_stat = stat($file);
    }

And it now works for me and passes all tests.

Obviously, this could just be me misunderstanding what this is meant to do,
and I am happy to be enlightened.

rgds,
--
Peter Galbavy
Knowtion Ltd.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to