This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Locale tests assumed POSIX, not true in minitest.
authorJarkko Hietaniemi <jhi@iki.fi>
Wed, 11 Jun 2014 00:18:50 +0000 (20:18 -0400)
committerJarkko Hietaniemi <jhi@iki.fi>
Wed, 11 Jun 2014 00:25:48 +0000 (20:25 -0400)
lib/locale.pm
t/loc_tools.pl

index 52279a1..886fb3b 100644 (file)
@@ -96,9 +96,14 @@ sub import {
 
             $arg =~ s/^://;
 
+            eval { require POSIX; import POSIX 'locale_h'; };
+            unless (defined &POSIX::LC_CTYPE) {
+              return;
+            }
+
             # Map our names to the ones defined by POSIX
             $arg = "LC_" . uc($arg);
-            use POSIX 'locale_h';
+
             my $bit = eval "&POSIX::$arg";
             if (defined $bit) {
                 # 1 is added so that the pseudo-category :characters, which is
index 90865e4..bac8cc7 100644 (file)
@@ -90,7 +90,10 @@ sub find_locales ($) {  # Returns an array of all the locales we found on the
 
     # Done this way in case this is 'required' in the caller before seeing if
     # this is miniperl.
-    require POSIX; import POSIX 'locale_h';
+    eval { require POSIX; import POSIX 'locale_h'; };
+    unless (defined &POSIX::LC_CTYPE) {
+      return;
+    }
 
     _trylocale("C", $categories, \@Locale);
     _trylocale("POSIX", $categories, \@Locale);