This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Localeconv() should be independent of 'use locale'
authorKarl Williamson <khw@cpan.org>
Thu, 15 May 2014 21:40:51 +0000 (15:40 -0600)
committerKarl Williamson <khw@cpan.org>
Thu, 5 Jun 2014 17:22:59 +0000 (11:22 -0600)
commita835cd471aa3ec6d80861d44cf239be1856e2f66
tree1272258cf0b1fa0a0567a3235ec1771cb0a40a31
parent6bf09f5529fd48ed68cd24ebb1944176d9cbfc8e
Localeconv() should be independent of 'use locale'

localeconv() should return the values for the underlying locale of
the program regardless of whether the calling place is within the
scope of "use locale" or not.  Otherwise, it makes no sense to call it
from outside such scope, and a pure perl module that calls it on behalf
of a caller would likely get it wrong.

In earlier versions of Perl the LC_NUMERIC category was initialized to
C, but was changed by the first setlocale() anywhere in the process.  It
is rare to call localeconv() without first having done a setlocale().
But to solve other bugs, future commits will keep LC_NUMERIC in the C
locale except during such operations where it should be the underlying
locale.  localeconv() is such a place, so this commit is being done
before the later ones so it doesn't break.
ext/POSIX/POSIX.xs
ext/POSIX/lib/POSIX.pm
ext/POSIX/lib/POSIX.pod
pod/perldelta.pod
pod/perllocale.pod
t/run/locale.t