locale.c: Always set state variables for a new locale
authorKarl Williamson <public@khwilliamson.com>
Wed, 11 Dec 2013 21:30:45 +0000 (14:30 -0700)
committerKarl Williamson <public@khwilliamson.com>
Sat, 4 Jan 2014 20:33:04 +0000 (13:33 -0700)
commit6959d69d33a0e59f62289d1c27a5c094387a6933
tree8e45ba5740484940a0dc4db1064a80a48a5f30b5
parent87755cd9fa6144875541cb560b7f0487e52c8626
locale.c: Always set state variables for a new locale

This function is called when a new underlying LC_NUMERIC locale has been
set.  If that locale is the same as the current underlying one, some
setup is skipped.  However, prior to this commit, more was skipped than
should have been.  The reason is that even if the underlying locale is
the same, it could be that LC_NUMERIC has been toggled to the "C"
locale, and so the information could be inconsistent.  By always setting
the information, we ensure consistency.

This commit ia a portion of the fix for [perl #120723].  Tests will be
added with the final commit for it.
locale.c