This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Changes and README for A::H
[perl5.git] / lib / locale.t
index c3a9d94..aa8aa07 100644 (file)
@@ -43,7 +43,12 @@ eval {
 
 # Visual C's CRT goes silly on strings of the form "en_US.ISO8859-1"
 # and mingw32 uses said silly CRT
-$have_setlocale = 0 if (($^O eq 'MSWin32' || $^O eq 'NetWare') && $Config{cc} =~ /^(cl|gcc)/i);
+# This doesn't seem to be an issue any more, at least on Windows XP,
+# so re-enable the tests for Windows XP onwards.
+my $winxp = ($^O eq 'MSWin32' && defined &Win32::GetOSVersion &&
+               join('.', (Win32::GetOSVersion())[1..2]) >= 5.1);
+$have_setlocale = 0 if ((($^O eq 'MSWin32' && !$winxp) || $^O eq 'NetWare') &&
+               $Config{cc} =~ /^(cl|gcc)/i);
 
 # UWIN seems to loop after test 98, just skip for now
 $have_setlocale = 0 if ($^O =~ /^uwin/);
@@ -449,9 +454,10 @@ if (-x "/usr/bin/locale" && open(LOCALES, "/usr/bin/locale -a 2>/dev/null|")) {
 setlocale(LC_ALL, "C");
 
 if ($^O eq 'darwin') {
-    # Darwin 8/Mac OS X 10.4 has bad Basque locales: perl bug #35895,
+    # Darwin 8/Mac OS X 10.4 and 10.5 have bad Basque locales: perl bug #35895,
     # Apple bug ID# 4139653. It also has a problem in Byelorussian.
-    if ($Config{osvers} ge '8' and $Config{osvers} lt '9') {
+    (my $v) = $Config{osvers} =~ /^(\d+)/;
+    if ($v >= 8 and $v < 10) {
        debug "# Skipping eu_ES, be_BY locales -- buggy in Darwin\n";
        @Locale = grep ! m/^(eu_ES|be_BY.CP1131$)/, @Locale;
     }