This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
more closely match File::stat's -X behaviour to built-in on cygwin
authorTony Cook <tony@develop-help.com>
Mon, 25 Nov 2019 22:48:58 +0000 (09:48 +1100)
committerKarl Williamson <khw@cpan.org>
Tue, 26 Nov 2019 18:37:25 +0000 (10:37 -0800)
lib/File/stat.pm

index 578c311..863092c 100644 (file)
@@ -5,12 +5,13 @@ use strict;
 use warnings;
 use warnings::register;
 use Carp;
+use constant _IS_CYGWIN => $^O eq "cygwin";
 
 BEGIN { *warnif = \&warnings::warnif }
 
 our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
 
-our $VERSION = '1.08';
+our $VERSION = '1.09';
 
 our @fields;
 our ( $st_dev, $st_ino, $st_mode,
@@ -98,7 +99,7 @@ else {
         # This code basically assumes that the rwx bits of the mode are
         # the 0777 bits, but so does Perl_cando.
 
-        if ($uid == 0 && $^O ne "VMS") {
+        if (_IS_CYGWIN ? _ingroup(544, $eff) : ($uid == 0 && $^O ne "VMS")) {
             # If we're root on unix
             # not testing for executable status => all file tests are true
             return 1 if !($mode & 0111);