New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[PATCH] File::Spec Cygwin/Win32 case_tolerant improvement #9362
Comments
From @rurbanThis is a bug report for perl from rurban@cpan.org, Module::Build is super slow in mod->prepare and so forth for cygwin and Win32 The patch in a forthcoming attachment is a significant performance Flags: This perlbug was built using Perl 5.11.0 - Sun Mar 2 15:14:10 GMT 2008 Site configuration information for perl 5.11.0: Configured by rurban at Sun Apr 13 19:53:41 WEDT 2008. Summary of my perl5 (revision 5 version 11 subversion 0 patch 33673) Locally applied patches: @INC for perl 5.11.0: Environment for perl 5.11.0: |
From @rurbanFile::Spec Cygwin/Win32 case_tolerant improvement patches for 5.10 and The Module-Build tests in core, like Initially I searched for accessing not-available network paths like // |
From @rurbanpl-CYG18-case_tol-510.patchdifforig perl-5.10.0/lib/File
2008-06-01 rurban@cpan.org
* File::Spec->case_tolerant performance improvement on cygwin and Win32.
Esp. noticable in Module::Build.
diff -u perl-5.10.0/lib/File/Spec.pm.orig
--- perl-5.10.0/lib/File/Spec.pm.orig 2007-12-18 11:47:07.000000000 +0100
+++ perl-5.10.0/lib/File/Spec.pm 2008-06-01 14:02:07.687500000 +0200
@@ -3,7 +3,7 @@
use strict;
use vars qw(@ISA $VERSION);
-$VERSION = '3.2501';
+$VERSION = '3.2502';
$VERSION = eval $VERSION;
my %module = (MacOS => 'Mac',
diff -u perl-5.10.0/lib/File/Spec/Cygwin.pm.orig
--- perl-5.10.0/lib/File/Spec/Cygwin.pm.orig 2007-12-18 11:47:07.000000000 +0100
+++ perl-5.10.0/lib/File/Spec/Cygwin.pm 2008-06-01 14:02:16.671875000 +0200
@@ -4,7 +4,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2501';
+$VERSION = '3.2502';
@ISA = qw(File::Spec::Unix);
@@ -104,16 +104,23 @@
Override Unix. Cygwin case-tolerance depends on managed mount settings and
as with MsWin32 on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
indicating the case significance when comparing file specifications.
+Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem. (TODO)
+See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
+Accepts an optional drive-mount argument.
Default: 1
=cut
+my %tmp_case_tolerant;
sub case_tolerant () {
if ($^O ne 'cygwin') {
return 1;
}
my $drive = shift;
+ $drive = shift if $drive =~ /^File::Spec/;
+ my $windrive;
if (! $drive) {
+ $windrive = 'C:';
my @flags = split(/,/, Cygwin::mount_flags('/cygwin'));
my $prefix = pop(@flags);
if (! $prefix || $prefix eq 'cygdrive') {
@@ -123,18 +130,19 @@
} else {
$drive = "$prefix/c";
}
+ } else {
+ $windrive = Cygwin::posix_to_win_path($drive);
}
+ return $tmp_case_tolerant{$drive} if exists $tmp_case_tolerant{$drive};
my $mntopts = Cygwin::mount_flags($drive);
if ($mntopts and ($mntopts =~ /,managed/)) {
+ $tmp_case_tolerant{$drive} = 0;
return 0;
}
- eval { require Win32API::File; } or return 1;
- my $osFsType = "\0"x256;
- my $osVolName = "\0"x256;
- my $ouFsFlags = 0;
- Win32API::File::GetVolumeInformation($drive, $osVolName, 256, [], [], $ouFsFlags, $osFsType, 256 );
- if ($ouFsFlags & Win32API::File::FS_CASE_SENSITIVE()) { return 0; }
- else { return 1; }
+ require File::Spec::Win32;
+ $windrive =~ s/\\$//;
+ $tmp_case_tolerant{$drive} = File::Spec::Win32::case_tolerant($windrive);
+ return $tmp_case_tolerant{$drive};
}
=back
diff -u perl-5.10.0/lib/File/Spec/Win32.pm.orig
--- perl-5.10.0/lib/File/Spec/Win32.pm.orig 2007-12-18 11:47:07.000000000 +0100
+++ perl-5.10.0/lib/File/Spec/Win32.pm 2008-06-01 14:02:25.312500000 +0200
@@ -5,7 +5,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2501';
+$VERSION = '3.2502';
@ISA = qw(File::Spec::Unix);
@@ -83,13 +83,21 @@
indicating the case significance when comparing file specifications.
Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem.
See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
+Accepts an optional drive-letter argument.
Default: 1
=cut
sub case_tolerant () {
+ use Win32;
+ my @ver = Win32::GetOSVersion();
+ # From XP on this is disabled.
+ if ($ver[4] >= 2 and $ver[1] >= 5 and $ver[2] >= 1) { return 1; }
+ if ($ver[4] < 2) { return 1; } # Win32s,95,ME are always case_tolerant.
eval { require Win32API::File; } or return 1;
- my $drive = shift || "C:";
+ my $drive = shift || "C:";
+
+ $drive = shift if $drive =~ /^File::Spec/;
my $osFsType = "\0"x256;
my $osVolName = "\0"x256;
my $ouFsFlags = 0;
|
From @rurbanpl-CYG18-case_tol-511.patchdifforig perl-current/lib/File
2008-06-01 rurban@cpan.org
* File::Spec->case_tolerant performance improvement on cygwin and Win32.
Esp. noticable in Module::Build.
diff -u perl-current/lib/File/Spec.pm.orig
--- perl-current/lib/File/Spec.pm.orig 2008-02-12 16:12:46.000000000 +0100
+++ perl-current/lib/File/Spec.pm 2008-06-01 14:10:03.703125000 +0200
@@ -3,7 +3,7 @@
use strict;
use vars qw(@ISA $VERSION);
-$VERSION = '3.2701';
+$VERSION = '3.2702';
$VERSION = eval $VERSION;
my %module = (MacOS => 'Mac',
@@ -166,6 +166,7 @@
Returns a true or false value indicating, respectively, that alphabetic
case is not or is significant when comparing file specifications.
+Cygwin and Win32 accept an optional drive argument.
$is_case_tolerant = File::Spec->case_tolerant();
diff -u perl-current/lib/File/Spec/Cygwin.pm.orig
--- perl-current/lib/File/Spec/Cygwin.pm.orig 2008-02-12 16:12:46.000000000 +0100
+++ perl-current/lib/File/Spec/Cygwin.pm 2008-06-01 14:08:20.781250000 +0200
@@ -4,7 +4,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2701';
+$VERSION = '3.2702';
@ISA = qw(File::Spec::Unix);
@@ -107,16 +107,23 @@
Override Unix. Cygwin case-tolerance depends on managed mount settings and
as with MsWin32 on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
indicating the case significance when comparing file specifications.
+Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem. (TODO)
+See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
+Accepts an optional drive-mount argument.
Default: 1
=cut
+my %tmp_case_tolerant;
sub case_tolerant () {
return 1 unless $^O eq 'cygwin'
and defined &Cygwin::mount_flags;
my $drive = shift;
+ $drive = shift if $drive =~ /^File::Spec/;
+ my $windrive;
if (! $drive) {
+ $windrive = 'C:';
my @flags = split(/,/, Cygwin::mount_flags('/cygwin'));
my $prefix = pop(@flags);
if (! $prefix || $prefix eq 'cygdrive') {
@@ -126,18 +133,19 @@
} else {
$drive = "$prefix/c";
}
+ } else {
+ $windrive = Cygwin::posix_to_win_path($drive);
}
+ return $tmp_case_tolerant{$drive} if exists $tmp_case_tolerant{$drive};
my $mntopts = Cygwin::mount_flags($drive);
if ($mntopts and ($mntopts =~ /,managed/)) {
+ $tmp_case_tolerant{$drive} = 0;
return 0;
}
- eval { require Win32API::File; } or return 1;
- my $osFsType = "\0"x256;
- my $osVolName = "\0"x256;
- my $ouFsFlags = 0;
- Win32API::File::GetVolumeInformation($drive, $osVolName, 256, [], [], $ouFsFlags, $osFsType, 256 );
- if ($ouFsFlags & Win32API::File::FS_CASE_SENSITIVE()) { return 0; }
- else { return 1; }
+ require File::Spec::Win32;
+ $windrive =~ s/\\$//;
+ $tmp_case_tolerant{$drive} = File::Spec::Win32::case_tolerant($windrive);
+ return $tmp_case_tolerant{$drive};
}
=back
diff -u perl-current/lib/File/Spec/Win32.pm.orig
--- perl-current/lib/File/Spec/Win32.pm.orig 2008-02-12 16:12:47.000000000 +0100
+++ perl-current/lib/File/Spec/Win32.pm 2008-06-01 14:08:57.250000000 +0200
@@ -5,7 +5,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2701';
+$VERSION = '3.2702';
@ISA = qw(File::Spec::Unix);
@@ -83,13 +83,21 @@
indicating the case significance when comparing file specifications.
Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem.
See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
+Accepts an optional drive-letter argument.
Default: 1
=cut
sub case_tolerant () {
+ use Win32;
+ my @ver = Win32::GetOSVersion();
+ # From XP on this is disabled.
+ if ($ver[4] >= 2 and $ver[1] >= 5 and $ver[2] >= 1) { return 1; }
+ if ($ver[4] < 2) { return 1; } # Win32s,95,ME are always case_tolerant.
eval { require Win32API::File; } or return 1;
- my $drive = shift || "C:";
+ my $drive = shift || "C:";Accepts on optional drive-letter argument.
+
+ $drive = shift if $drive =~ /^File::Spec/;
my $osFsType = "\0"x256;
my $osVolName = "\0"x256;
my $ouFsFlags = 0;
|
From @smpetersOn Sun Jun 01 06:09:03 2008, rurban wrote:
From the 5.11 patch... + my $drive = shift || "C:";Accepts on optional drive-letter argument. I don't believe this code will compile after the patch is applied. Can Thanks, Steve Peters |
The RT System itself - Status changed from 'new' to 'open' |
From @rurbanSorry I thought that I already uploaded the revised patches, since the |
From @rurbanpl-CYG18-case_tol-510.patchdifforig perl-5.10.0/lib/File
2008-06-01 rurban@cpan.org
* File::Spec->case_tolerant performance improvement on cygwin and Win32.
Esp. noticable in Module::Build.
diff -u perl-5.10.0/lib/File/Spec.pm.orig
--- perl-5.10.0/lib/File/Spec.pm.orig 2007-12-18 11:47:07.000000000 +0100
+++ perl-5.10.0/lib/File/Spec.pm 2008-06-01 14:02:07.687500000 +0200
@@ -3,7 +3,7 @@
use strict;
use vars qw(@ISA $VERSION);
-$VERSION = '3.2501';
+$VERSION = '3.2502';
$VERSION = eval $VERSION;
my %module = (MacOS => 'Mac',
diff -u perl-5.10.0/lib/File/Spec/Cygwin.pm.orig
--- perl-5.10.0/lib/File/Spec/Cygwin.pm.orig 2007-12-18 11:47:07.000000000 +0100
+++ perl-5.10.0/lib/File/Spec/Cygwin.pm 2008-06-01 14:02:16.671875000 +0200
@@ -4,7 +4,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2501';
+$VERSION = '3.2502';
@ISA = qw(File::Spec::Unix);
@@ -104,16 +104,23 @@
Override Unix. Cygwin case-tolerance depends on managed mount settings and
as with MsWin32 on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
indicating the case significance when comparing file specifications.
+Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem. (TODO)
+See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
+Accepts an optional drive-mount argument.
Default: 1
=cut
+my %tmp_case_tolerant;
sub case_tolerant () {
if ($^O ne 'cygwin') {
return 1;
}
my $drive = shift;
+ $drive = shift if $drive =~ /^File::Spec/;
+ my $windrive;
if (! $drive) {
+ $windrive = 'C:';
my @flags = split(/,/, Cygwin::mount_flags('/cygwin'));
my $prefix = pop(@flags);
if (! $prefix || $prefix eq 'cygdrive') {
@@ -123,18 +130,19 @@
} else {
$drive = "$prefix/c";
}
+ } else {
+ $windrive = Cygwin::posix_to_win_path($drive);
}
+ return $tmp_case_tolerant{$drive} if exists $tmp_case_tolerant{$drive};
my $mntopts = Cygwin::mount_flags($drive);
if ($mntopts and ($mntopts =~ /,managed/)) {
+ $tmp_case_tolerant{$drive} = 0;
return 0;
}
- eval { require Win32API::File; } or return 1;
- my $osFsType = "\0"x256;
- my $osVolName = "\0"x256;
- my $ouFsFlags = 0;
- Win32API::File::GetVolumeInformation($drive, $osVolName, 256, [], [], $ouFsFlags, $osFsType, 256 );
- if ($ouFsFlags & Win32API::File::FS_CASE_SENSITIVE()) { return 0; }
- else { return 1; }
+ require File::Spec::Win32;
+ $windrive =~ s/\\$//;
+ $tmp_case_tolerant{$drive} = File::Spec::Win32::case_tolerant($windrive);
+ return $tmp_case_tolerant{$drive};
}
=back
diff -u perl-5.10.0/lib/File/Spec/Win32.pm.orig
--- perl-5.10.0/lib/File/Spec/Win32.pm.orig 2007-12-18 11:47:07.000000000 +0100
+++ perl-5.10.0/lib/File/Spec/Win32.pm 2008-06-01 14:02:25.312500000 +0200
@@ -5,7 +5,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2501';
+$VERSION = '3.2502';
@ISA = qw(File::Spec::Unix);
@@ -83,13 +83,21 @@
indicating the case significance when comparing file specifications.
Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem.
See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
+Accepts an optional drive-letter argument.
Default: 1
=cut
sub case_tolerant () {
+ use Win32;
+ my @ver = Win32::GetOSVersion();
+ # From XP on this is disabled.
+ if ($ver[4] >= 2 and $ver[1] >= 5 and $ver[2] >= 1) { return 1; }
+ if ($ver[4] < 2) { return 1; } # Win32s,95,ME are always case_tolerant.
eval { require Win32API::File; } or return 1;
- my $drive = shift || "C:";
+ my $drive = shift || "C:";
+
+ $drive = shift if $drive =~ /^File::Spec/;
my $osFsType = "\0"x256;
my $osVolName = "\0"x256;
my $ouFsFlags = 0;
|
From @rurbanpl-CYG18-case_tol-511.patchdifforig perl-current/lib/File
2008-06-01 rurban@cpan.org
* File::Spec->case_tolerant performance improvement on cygwin and Win32.
Esp. noticable in Module::Build.
http://rt.perl.org/rt3/Ticket/Display.html?id=55162
diff -u perl-current/lib/File/Spec.pm.orig
--- perl-current/lib/File/Spec.pm.orig 2008-02-12 16:12:46.000000000 +0100
+++ perl-current/lib/File/Spec.pm 2008-06-01 14:10:03.703125000 +0200
@@ -3,7 +3,7 @@
use strict;
use vars qw(@ISA $VERSION);
-$VERSION = '3.2701';
+$VERSION = '3.2702';
$VERSION = eval $VERSION;
my %module = (MacOS => 'Mac',
@@ -166,6 +166,7 @@
Returns a true or false value indicating, respectively, that alphabetic
case is not or is significant when comparing file specifications.
+Cygwin and Win32 accept an optional drive argument.
$is_case_tolerant = File::Spec->case_tolerant();
diff -u perl-current/lib/File/Spec/Cygwin.pm.orig
--- perl-current/lib/File/Spec/Cygwin.pm.orig 2008-02-12 16:12:46.000000000 +0100
+++ perl-current/lib/File/Spec/Cygwin.pm 2008-06-01 14:08:20.781250000 +0200
@@ -4,7 +4,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2701';
+$VERSION = '3.2702';
@ISA = qw(File::Spec::Unix);
@@ -107,16 +107,23 @@
Override Unix. Cygwin case-tolerance depends on managed mount settings and
as with MsWin32 on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
indicating the case significance when comparing file specifications.
+Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem. (TODO)
+See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
+Accepts an optional drive-mount argument.
Default: 1
=cut
+my %tmp_case_tolerant;
sub case_tolerant () {
return 1 unless $^O eq 'cygwin'
and defined &Cygwin::mount_flags;
my $drive = shift;
+ $drive = shift if $drive =~ /^File::Spec/;
+ my $windrive;
if (! $drive) {
+ $windrive = 'C:';
my @flags = split(/,/, Cygwin::mount_flags('/cygwin'));
my $prefix = pop(@flags);
if (! $prefix || $prefix eq 'cygdrive') {
@@ -126,18 +133,19 @@
} else {
$drive = "$prefix/c";
}
+ } else {
+ $windrive = Cygwin::posix_to_win_path($drive);
}
+ return $tmp_case_tolerant{$drive} if exists $tmp_case_tolerant{$drive};
my $mntopts = Cygwin::mount_flags($drive);
if ($mntopts and ($mntopts =~ /,managed/)) {
+ $tmp_case_tolerant{$drive} = 0;
return 0;
}
- eval { require Win32API::File; } or return 1;
- my $osFsType = "\0"x256;
- my $osVolName = "\0"x256;
- my $ouFsFlags = 0;
- Win32API::File::GetVolumeInformation($drive, $osVolName, 256, [], [], $ouFsFlags, $osFsType, 256 );
- if ($ouFsFlags & Win32API::File::FS_CASE_SENSITIVE()) { return 0; }
- else { return 1; }
+ require File::Spec::Win32;
+ $windrive =~ s/\\$//;
+ $tmp_case_tolerant{$drive} = File::Spec::Win32::case_tolerant($windrive);
+ return $tmp_case_tolerant{$drive};
}
=back
diff -u perl-current/lib/File/Spec/Win32.pm.orig
--- perl-current/lib/File/Spec/Win32.pm.orig 2008-02-12 16:12:47.000000000 +0100
+++ perl-current/lib/File/Spec/Win32.pm 2008-06-01 14:08:57.250000000 +0200
@@ -5,7 +5,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2701';
+$VERSION = '3.2702';
@ISA = qw(File::Spec::Unix);
@@ -83,13 +83,21 @@
indicating the case significance when comparing file specifications.
Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem.
See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
+Accepts an optional drive-letter argument.
Default: 1
=cut
sub case_tolerant () {
+ use Win32;
+ my @ver = Win32::GetOSVersion();
+ # From XP on this is disabled.
+ if ($ver[4] >= 2 and $ver[1] >= 5 and $ver[2] >= 1) { return 1; }
+ if ($ver[4] < 2) { return 1; } # Win32s,95,ME are always case_tolerant.
eval { require Win32API::File; } or return 1;
- my $drive = shift || "C:";
+ my $drive = shift || "C:";Accepts on optional drive-letter argument.
+
+ $drive = shift if $drive =~ /^File::Spec/;
my $osFsType = "\0"x256;
my $osVolName = "\0"x256;
my $ouFsFlags = 0;
|
From [Unknown Contact. See original ticket]Sorry I thought that I already uploaded the revised patches, since the |
From @rurbanOops, I did it again. -- |
From @rurbanpl-CYG18-case_tol-511.patchdifforig perl-current/lib/File
2008-06-01 rurban@cpan.org
* File::Spec->case_tolerant performance improvement on cygwin and Win32.
Esp. noticable in Module::Build.
http://rt.perl.org/rt3/Ticket/Display.html?id=55162
diff -u perl-current/lib/File/Spec.pm.orig
--- perl-current/lib/File/Spec.pm.orig 2008-02-12 16:12:46.000000000 +0100
+++ perl-current/lib/File/Spec.pm 2008-06-01 14:10:03.703125000 +0200
@@ -3,7 +3,7 @@
use strict;
use vars qw(@ISA $VERSION);
-$VERSION = '3.2701';
+$VERSION = '3.2702';
$VERSION = eval $VERSION;
my %module = (MacOS => 'Mac',
@@ -166,6 +166,7 @@
Returns a true or false value indicating, respectively, that alphabetic
case is not or is significant when comparing file specifications.
+Cygwin and Win32 accept an optional drive argument.
$is_case_tolerant = File::Spec->case_tolerant();
diff -u perl-current/lib/File/Spec/Cygwin.pm.orig
--- perl-current/lib/File/Spec/Cygwin.pm.orig 2008-02-12 16:12:46.000000000 +0100
+++ perl-current/lib/File/Spec/Cygwin.pm 2008-06-01 14:08:20.781250000 +0200
@@ -4,7 +4,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2701';
+$VERSION = '3.2702';
@ISA = qw(File::Spec::Unix);
@@ -107,16 +107,23 @@
Override Unix. Cygwin case-tolerance depends on managed mount settings and
as with MsWin32 on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
indicating the case significance when comparing file specifications.
+Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem. (TODO)
+See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
+Accepts an optional drive-mount argument.
Default: 1
=cut
+my %tmp_case_tolerant;
sub case_tolerant () {
return 1 unless $^O eq 'cygwin'
and defined &Cygwin::mount_flags;
my $drive = shift;
+ $drive = shift if $drive =~ /^File::Spec/;
+ my $windrive;
if (! $drive) {
+ $windrive = 'C:';
my @flags = split(/,/, Cygwin::mount_flags('/cygwin'));
my $prefix = pop(@flags);
if (! $prefix || $prefix eq 'cygdrive') {
@@ -126,18 +133,19 @@
} else {
$drive = "$prefix/c";
}
+ } else {
+ $windrive = Cygwin::posix_to_win_path($drive);
}
+ return $tmp_case_tolerant{$drive} if exists $tmp_case_tolerant{$drive};
my $mntopts = Cygwin::mount_flags($drive);
if ($mntopts and ($mntopts =~ /,managed/)) {
+ $tmp_case_tolerant{$drive} = 0;
return 0;
}
- eval { require Win32API::File; } or return 1;
- my $osFsType = "\0"x256;
- my $osVolName = "\0"x256;
- my $ouFsFlags = 0;
- Win32API::File::GetVolumeInformation($drive, $osVolName, 256, [], [], $ouFsFlags, $osFsType, 256 );
- if ($ouFsFlags & Win32API::File::FS_CASE_SENSITIVE()) { return 0; }
- else { return 1; }
+ require File::Spec::Win32;
+ $windrive =~ s/\\$//;
+ $tmp_case_tolerant{$drive} = File::Spec::Win32::case_tolerant($windrive);
+ return $tmp_case_tolerant{$drive};
}
=back
diff -u perl-current/lib/File/Spec/Win32.pm.orig
--- perl-current/lib/File/Spec/Win32.pm.orig 2008-02-12 16:12:47.000000000 +0100
+++ perl-current/lib/File/Spec/Win32.pm 2008-06-01 14:08:57.250000000 +0200
@@ -5,7 +5,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2701';
+$VERSION = '3.2702';
@ISA = qw(File::Spec::Unix);
@@ -83,13 +83,21 @@
indicating the case significance when comparing file specifications.
Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem.
See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
+Accepts an optional drive-letter argument.
Default: 1
=cut
sub case_tolerant () {
+ use Win32;
+ my @ver = Win32::GetOSVersion();
+ # From XP on this is disabled.
+ if ($ver[4] >= 2 and $ver[1] >= 5 and $ver[2] >= 1) { return 1; }
+ if ($ver[4] < 2) { return 1; } # Win32s,95,ME are always case_tolerant.
eval { require Win32API::File; } or return 1;
- my $drive = shift || "C:";
+ my $drive = shift || "C:";
+
+ $drive = shift if $drive =~ /^File::Spec/;
my $osFsType = "\0"x256;
my $osVolName = "\0"x256;
my $ouFsFlags = 0;
|
From @janduboisOn Mon, 02 Jun 2008, Reini Urban via RT wrote:
My eyes! The goggles do nothing!
I don't like the hard-coded "C:" in your patch. Assuming you want to drive ||= $ENV{SYSTEMDRIVE} || substr($ENV{WINDIR}, 0, 2); The reference to WINDIR is only for Win9X, which doesn't have Cheers, PS: If you do another patch to the file, could you also do |
From @rurbanJan Dubois schrieb:
No. case_tolerant is normally used platform-specific only, and not Only if someone really wants to check a drive, the hairy code is used,
Oops, did I use the ugly "MsWin32". Bad. Attached is another take, which fixes MsWin32 from last year and some |
From @rurbanpl-55162-510.patchdifforig perl-5.10.0/lib/File
diff -u perl-5.10.0/lib/File/Spec.pm.orig
--- perl-5.10.0/lib/File/Spec.pm.orig 2007-12-18 10:47:07.000000000 +0000
+++ perl-5.10.0/lib/File/Spec.pm 2008-06-01 16:09:16.078125000 +0000
@@ -3,7 +3,7 @@
use strict;
use vars qw(@ISA $VERSION);
-$VERSION = '3.2501';
+$VERSION = '3.2502';
$VERSION = eval $VERSION;
my %module = (MacOS => 'Mac',
diff -u perl-5.10.0/lib/File/Spec/Cygwin.pm.orig
--- perl-5.10.0/lib/File/Spec/Cygwin.pm.orig 2007-12-18 10:47:07.000000000 +0000
+++ perl-5.10.0/lib/File/Spec/Cygwin.pm 2008-06-02 21:09:15.703125000 +0000
@@ -4,7 +4,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2501';
+$VERSION = '3.2502';
@ISA = qw(File::Spec::Unix);
@@ -102,18 +102,23 @@
=item case_tolerant
Override Unix. Cygwin case-tolerance depends on managed mount settings and
-as with MsWin32 on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
+as with MSWin32 on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
indicating the case significance when comparing file specifications.
+Accepts an optional drive-mount argument.
Default: 1
=cut
+my %tmp_case_tolerant;
sub case_tolerant () {
if ($^O ne 'cygwin') {
return 1;
}
my $drive = shift;
+ $drive = shift if $drive =~ /^File::Spec/;
+ my $windrive;
if (! $drive) {
+ $windrive = 'C:';
my @flags = split(/,/, Cygwin::mount_flags('/cygwin'));
my $prefix = pop(@flags);
if (! $prefix || $prefix eq 'cygdrive') {
@@ -123,18 +128,19 @@
} else {
$drive = "$prefix/c";
}
+ } else {
+ $windrive = Cygwin::posix_to_win_path($drive);
}
+ return $tmp_case_tolerant{$drive} if exists $tmp_case_tolerant{$drive};
my $mntopts = Cygwin::mount_flags($drive);
if ($mntopts and ($mntopts =~ /,managed/)) {
+ $tmp_case_tolerant{$drive} = 0;
return 0;
}
- eval { require Win32API::File; } or return 1;
- my $osFsType = "\0"x256;
- my $osVolName = "\0"x256;
- my $ouFsFlags = 0;
- Win32API::File::GetVolumeInformation($drive, $osVolName, 256, [], [], $ouFsFlags, $osFsType, 256 );
- if ($ouFsFlags & Win32API::File::FS_CASE_SENSITIVE()) { return 0; }
- else { return 1; }
+ require File::Spec::Win32;
+ $windrive =~ s/\\$//;
+ $tmp_case_tolerant{$drive} = File::Spec::Win32::case_tolerant($windrive);
+ return $tmp_case_tolerant{$drive};
}
=back
diff -u perl-5.10.0/lib/File/Spec/Win32.pm.orig
--- perl-5.10.0/lib/File/Spec/Win32.pm.orig 2007-12-18 10:47:07.000000000 +0000
+++ perl-5.10.0/lib/File/Spec/Win32.pm 2008-06-02 21:08:55.671875000 +0000
@@ -5,7 +5,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2501';
+$VERSION = '3.2502';
@ISA = qw(File::Spec::Unix);
@@ -81,15 +81,23 @@
MSWin32 case-tolerance depends on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
indicating the case significance when comparing file specifications.
-Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem.
+Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsystem.
See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
+Accepts an optional drive-letter argument.
Default: 1
=cut
sub case_tolerant () {
+ use Win32;
+ my @ver = Win32::GetOSVersion();
+ # From XP on this is disabled.
+ if ($ver[4] >= 2 and $ver[1] >= 5 and $ver[2] >= 1) { return 1; }
+ if ($ver[4] < 2) { return 1; } # Win32s,95,ME are always case_tolerant.
eval { require Win32API::File; } or return 1;
my $drive = shift || "C:";
+
+ $drive = shift if $drive =~ /^File::Spec/;
my $osFsType = "\0"x256;
my $osVolName = "\0"x256;
my $ouFsFlags = 0;
|
From @rurbanpl-55162-511.patchdifforig perl-current/lib/File
diff -u perl-current/lib/File/Spec.pm.orig
--- perl-current/lib/File/Spec.pm.orig 2008-02-12 15:12:46.000000000 +0000
+++ perl-current/lib/File/Spec.pm 2008-06-02 20:36:40.640625000 +0000
@@ -3,7 +3,7 @@
use strict;
use vars qw(@ISA $VERSION);
-$VERSION = '3.2701';
+$VERSION = '3.2702';
$VERSION = eval $VERSION;
my %module = (MacOS => 'Mac',
@@ -166,6 +166,7 @@
Returns a true or false value indicating, respectively, that alphabetic
case is not or is significant when comparing file specifications.
+Cygwin and Win32 accept an optional drive argument.
$is_case_tolerant = File::Spec->case_tolerant();
diff -u perl-current/lib/File/Spec/Cygwin.pm.orig
--- perl-current/lib/File/Spec/Cygwin.pm.orig 2008-02-12 15:12:46.000000000 +0000
+++ perl-current/lib/File/Spec/Cygwin.pm 2008-06-02 21:09:35.703125000 +0000
@@ -4,7 +4,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2701';
+$VERSION = '3.2702';
@ISA = qw(File::Spec::Unix);
@@ -105,18 +105,23 @@
=item case_tolerant
Override Unix. Cygwin case-tolerance depends on managed mount settings and
-as with MsWin32 on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
+as with MSWin32 on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
indicating the case significance when comparing file specifications.
+Accepts an optional drive-mount argument.
Default: 1
=cut
+my %tmp_case_tolerant;
sub case_tolerant () {
return 1 unless $^O eq 'cygwin'
and defined &Cygwin::mount_flags;
my $drive = shift;
+ $drive = shift if $drive =~ /^File::Spec/;
+ my $windrive;
if (! $drive) {
+ $windrive = 'C:';
my @flags = split(/,/, Cygwin::mount_flags('/cygwin'));
my $prefix = pop(@flags);
if (! $prefix || $prefix eq 'cygdrive') {
@@ -126,18 +131,19 @@
} else {
$drive = "$prefix/c";
}
+ } else {
+ $windrive = Cygwin::posix_to_win_path($drive);
}
+ return $tmp_case_tolerant{$drive} if exists $tmp_case_tolerant{$drive};
my $mntopts = Cygwin::mount_flags($drive);
if ($mntopts and ($mntopts =~ /,managed/)) {
+ $tmp_case_tolerant{$drive} = 0;
return 0;
}
- eval { require Win32API::File; } or return 1;
- my $osFsType = "\0"x256;
- my $osVolName = "\0"x256;
- my $ouFsFlags = 0;
- Win32API::File::GetVolumeInformation($drive, $osVolName, 256, [], [], $ouFsFlags, $osFsType, 256 );
- if ($ouFsFlags & Win32API::File::FS_CASE_SENSITIVE()) { return 0; }
- else { return 1; }
+ require File::Spec::Win32;
+ $windrive =~ s/\\$//;
+ $tmp_case_tolerant{$drive} = File::Spec::Win32::case_tolerant($windrive);
+ return $tmp_case_tolerant{$drive};
}
=back
diff -u perl-current/lib/File/Spec/Win32.pm.orig
--- perl-current/lib/File/Spec/Win32.pm.orig 2008-02-12 15:12:47.000000000 +0000
+++ perl-current/lib/File/Spec/Win32.pm 2008-06-02 21:09:49.843750000 +0000
@@ -5,7 +5,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2701';
+$VERSION = '3.2702';
@ISA = qw(File::Spec::Unix);
@@ -81,15 +81,23 @@
MSWin32 case-tolerance depends on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
indicating the case significance when comparing file specifications.
-Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem.
+Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsystem.
See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
+Accepts an optional drive-letter argument.
Default: 1
=cut
sub case_tolerant () {
+ use Win32;
+ my @ver = Win32::GetOSVersion();
+ # From XP on this is disabled.
+ if ($ver[4] >= 2 and $ver[1] >= 5 and $ver[2] >= 1) { return 1; }
+ if ($ver[4] < 2) { return 1; } # Win32s,95,ME are always case_tolerant.
eval { require Win32API::File; } or return 1;
- my $drive = shift || "C:";
+ my $drive = shift || "C:";Accepts on optional drive-letter argument.
+
+ $drive = shift if $drive =~ /^File::Spec/;
my $osFsType = "\0"x256;
my $osVolName = "\0"x256;
my $ouFsFlags = 0;
|
From @janduboisOn Mon, 02 Jun 2008, Reini Urban wrote:
I don't really understand what you are saying here. For example it Cheers, |
From @rurban2008/6/2 Jan Dubois <jand@activestate.com>:
The function case_tolerant() has on all other platforms no argument.
Ok, I never thought about non-C: Windows systems. TODO on Unix: Don't we have acorn? There's nothing in Configure and no hints for acorn. |
From @rurbanpl-CYG18-case_tol-510.patchdifforig perl-5.10.0/lib/File
diff -u perl-5.10.0/lib/File/Spec.pm.orig
--- perl-5.10.0/lib/File/Spec.pm.orig 2007-12-18 11:47:07.000000000 +0100
+++ perl-5.10.0/lib/File/Spec.pm 2008-06-01 18:01:25.890625000 +0200
@@ -3,7 +3,7 @@
use strict;
use vars qw(@ISA $VERSION);
-$VERSION = '3.2501';
+$VERSION = '3.2502';
$VERSION = eval $VERSION;
my %module = (MacOS => 'Mac',
diff -u perl-5.10.0/lib/File/Spec/Cygwin.pm.orig
--- perl-5.10.0/lib/File/Spec/Cygwin.pm.orig 2007-12-18 11:47:07.000000000 +0100
+++ perl-5.10.0/lib/File/Spec/Cygwin.pm 2008-06-03 15:37:40.421875000 +0200
@@ -4,7 +4,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2501';
+$VERSION = '3.2502';
@ISA = qw(File::Spec::Unix);
@@ -102,39 +102,37 @@
=item case_tolerant
Override Unix. Cygwin case-tolerance depends on managed mount settings and
-as with MsWin32 on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
+as with MSWin32 on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
indicating the case significance when comparing file specifications.
+Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsystem.
+See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
+Accepts an optional drive-mount argument.
Default: 1
=cut
+my %tmp_case_tolerant;
sub case_tolerant () {
- if ($^O ne 'cygwin') {
- return 1;
- }
+ return 1 unless $^O eq 'cygwin'
+ and defined &Cygwin::mount_flags;
+
my $drive = shift;
+ $drive = shift if $drive =~ /^File::Spec/;
+ my $windrive;
if (! $drive) {
- my @flags = split(/,/, Cygwin::mount_flags('/cygwin'));
- my $prefix = pop(@flags);
- if (! $prefix || $prefix eq 'cygdrive') {
- $drive = '/cygdrive/c';
- } elsif ($prefix eq '/') {
- $drive = '/c';
- } else {
- $drive = "$prefix/c";
- }
+ $windrive = $ENV{SYSTEMDRIVE} || substr($ENV{WINDIR}, 0, 2);
+ $drive = Cygwin::win_to_posix_path($windrive."\\");
}
+ return $tmp_case_tolerant{$drive} if exists $tmp_case_tolerant{$drive};
my $mntopts = Cygwin::mount_flags($drive);
if ($mntopts and ($mntopts =~ /,managed/)) {
+ $tmp_case_tolerant{$drive} = 0;
return 0;
}
- eval { require Win32API::File; } or return 1;
- my $osFsType = "\0"x256;
- my $osVolName = "\0"x256;
- my $ouFsFlags = 0;
- Win32API::File::GetVolumeInformation($drive, $osVolName, 256, [], [], $ouFsFlags, $osFsType, 256 );
- if ($ouFsFlags & Win32API::File::FS_CASE_SENSITIVE()) { return 0; }
- else { return 1; }
+ require File::Spec::Win32;
+ $windrive = substr(Cygwin::posix_to_win_path($drive),0,2);
+ $tmp_case_tolerant{$drive} = File::Spec::Win32::case_tolerant($windrive);
+ return $tmp_case_tolerant{$drive};
}
=back
diff -u perl-5.10.0/lib/File/Spec/Win32.pm.orig
--- perl-5.10.0/lib/File/Spec/Win32.pm.orig 2007-12-18 11:47:07.000000000 +0100
+++ perl-5.10.0/lib/File/Spec/Win32.pm 2008-06-03 14:33:29.656250000 +0200
@@ -5,7 +5,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2501';
+$VERSION = '3.2502';
@ISA = qw(File::Spec::Unix);
@@ -81,15 +81,23 @@
MSWin32 case-tolerance depends on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
indicating the case significance when comparing file specifications.
-Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem.
+Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsystem.
See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
+Accepts an optional drive-letter argument.
Default: 1
=cut
sub case_tolerant () {
+ use Win32;
+ my @ver = Win32::GetOSVersion();
+ # From XP on this is disabled.
+ if ($ver[4] >= 2 and $ver[1] >= 5 and $ver[2] >= 1) { return 1; }
+ if ($ver[4] < 2) { return 1; } # Win32s,95,ME are always case_tolerant.
eval { require Win32API::File; } or return 1;
- my $drive = shift || "C:";
+ my $drive = shift;
+ $drive = shift if $drive =~ /^File::Spec/;
+ $drive ||= $ENV{SYSTEMDRIVE} || substr($ENV{WINDIR}, 0, 2);
my $osFsType = "\0"x256;
my $osVolName = "\0"x256;
my $ouFsFlags = 0;
|
From @rurbanPlus the blead patch. -- |
From @rurbanpl-CYG18-case_tol-511.patchdifforig perl-current/lib/File
diff -u perl-current/lib/File/Spec.pm.orig
--- perl-current/lib/File/Spec.pm.orig 2008-02-12 16:12:46.000000000 +0100
+++ perl-current/lib/File/Spec.pm 2008-06-03 16:13:11.359375000 +0200
@@ -3,7 +3,7 @@
use strict;
use vars qw(@ISA $VERSION);
-$VERSION = '3.2701';
+$VERSION = '3.2702';
$VERSION = eval $VERSION;
my %module = (MacOS => 'Mac',
@@ -166,8 +166,11 @@
Returns a true or false value indicating, respectively, that alphabetic
case is not or is significant when comparing file specifications.
+Cygwin and Win32 accept an optional mount point resp. drive ("C:") argument.
+On all other platforms the optional mount point argument is ignored.
+TODO: case-insensitive FAT, NFS, Samba mounts on Unix.
- $is_case_tolerant = File::Spec->case_tolerant();
+ $is_case_tolerant = File::Spec->case_tolerant( $mount_point );
=item file_name_is_absolute
diff -u perl-current/lib/File/Spec/Cygwin.pm.orig
--- perl-current/lib/File/Spec/Cygwin.pm.orig 2008-02-12 16:12:46.000000000 +0100
+++ perl-current/lib/File/Spec/Cygwin.pm 2008-06-03 15:39:07.390625000 +0200
@@ -4,7 +4,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2701';
+$VERSION = '3.2702';
@ISA = qw(File::Spec::Unix);
@@ -105,39 +105,37 @@
=item case_tolerant
Override Unix. Cygwin case-tolerance depends on managed mount settings and
-as with MsWin32 on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
+as with MSWin32 on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
indicating the case significance when comparing file specifications.
+Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsystem.
+See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
+Accepts an optional drive-mount argument.
Default: 1
=cut
+my %tmp_case_tolerant;
sub case_tolerant () {
return 1 unless $^O eq 'cygwin'
and defined &Cygwin::mount_flags;
my $drive = shift;
+ $drive = shift if $drive =~ /^File::Spec/;
+ my $windrive;
if (! $drive) {
- my @flags = split(/,/, Cygwin::mount_flags('/cygwin'));
- my $prefix = pop(@flags);
- if (! $prefix || $prefix eq 'cygdrive') {
- $drive = '/cygdrive/c';
- } elsif ($prefix eq '/') {
- $drive = '/c';
- } else {
- $drive = "$prefix/c";
- }
+ $windrive = $ENV{SYSTEMDRIVE} || substr($ENV{WINDIR}, 0, 2);
+ $drive = Cygwin::win_to_posix_path($windrive."\\");
}
+ return $tmp_case_tolerant{$drive} if exists $tmp_case_tolerant{$drive};
my $mntopts = Cygwin::mount_flags($drive);
if ($mntopts and ($mntopts =~ /,managed/)) {
+ $tmp_case_tolerant{$drive} = 0;
return 0;
}
- eval { require Win32API::File; } or return 1;
- my $osFsType = "\0"x256;
- my $osVolName = "\0"x256;
- my $ouFsFlags = 0;
- Win32API::File::GetVolumeInformation($drive, $osVolName, 256, [], [], $ouFsFlags, $osFsType, 256 );
- if ($ouFsFlags & Win32API::File::FS_CASE_SENSITIVE()) { return 0; }
- else { return 1; }
+ require File::Spec::Win32;
+ $windrive = substr(Cygwin::posix_to_win_path($drive),0,2);
+ $tmp_case_tolerant{$drive} = File::Spec::Win32::case_tolerant($windrive);
+ return $tmp_case_tolerant{$drive};
}
=back
diff -u perl-current/lib/File/Spec/Unix.pm.orig
--- perl-current/lib/File/Spec/Unix.pm.orig 2008-02-12 16:12:47.000000000 +0100
+++ perl-current/lib/File/Spec/Unix.pm 2008-06-03 15:53:40.734375000 +0200
@@ -3,7 +3,7 @@
use strict;
use vars qw($VERSION);
-$VERSION = '3.2701';
+$VERSION = '3.2702';
=head1 NAME
@@ -42,7 +42,7 @@
sub canonpath {
my ($self,$path) = @_;
return unless defined $path;
-
+
# Handle POSIX-style node names beginning with double slash (qnx, nto)
# (POSIX says: "a pathname that begins with two successive slashes
# may be interpreted in an implementation-defined manner, although
@@ -187,6 +187,7 @@
Returns a true or false value indicating, respectively, that alphabetic
is not or is significant when comparing file specifications.
+Todo: Add mount point argument to support case-tolerant NFS and samba shares.
=cut
diff -u perl-current/lib/File/Spec/Win32.pm.orig
--- perl-current/lib/File/Spec/Win32.pm.orig 2008-02-12 16:12:47.000000000 +0100
+++ perl-current/lib/File/Spec/Win32.pm 2008-06-03 14:36:31.843750000 +0200
@@ -5,7 +5,7 @@
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.2701';
+$VERSION = '3.2702';
@ISA = qw(File::Spec::Unix);
@@ -81,15 +81,23 @@
MSWin32 case-tolerance depends on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
indicating the case significance when comparing file specifications.
-Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem.
+Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsystem.
See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
+Accepts an optional drive-letter argument.
Default: 1
=cut
sub case_tolerant () {
+ use Win32;
+ my @ver = Win32::GetOSVersion();
+ # From XP on this is disabled.
+ if ($ver[4] >= 2 and $ver[1] >= 5 and $ver[2] >= 1) { return 1; }
+ if ($ver[4] < 2) { return 1; } # Win32s,95,ME are always case_tolerant.
eval { require Win32API::File; } or return 1;
- my $drive = shift || "C:";
+ my $drive = shift;
+ $drive = shift if $drive =~ /^File::Spec/;
+ $drive ||= $ENV{SYSTEMDRIVE} || substr($ENV{WINDIR}, 0, 2);
my $osFsType = "\0"x256;
my $osVolName = "\0"x256;
my $ouFsFlags = 0;
|
From ben@morrow.me.ukQuoth rurban@x-ray.at ("Reini Urban"):
Trust me, you do *not* want to try and make File::Spec handle RISCOS Ben -- |
From @rurbanMarked as showstopper for 5.12 It slows down Module::Build significantly. |
From @obraOn Tue Nov 10 09:52:47 2009, rurban wrote:
While a performance fix would be lovely, File::Spec is maintained on CPAN |
From @iabynReini, since this bug and patch relates to a CPAN distribution, I'm |
@iabyn - Status changed from 'open' to 'rejected' |
From @rurban2010/3/14 Dave Mitchell via RT <perlbug-followup@perl.org>:
The pathtools maintainers do not care, and I'll keep it as cygwin maintainer It's a perl issue for me, not a PathTools issue. |
Migrated from rt.perl.org#55162 (status was 'rejected')
Searchable as RT55162$
The text was updated successfully, but these errors were encountered: