tree d7c7a206e2f8c891fe4c41da8a3a46d0902bee13
parent d5d33681c1cd1df7731eb0fb7c0f297bc2f114e6
author Victor Stinner <vstinner@redhat.com> 1542727216 +0100
committer GitHub <noreply@github.com> 1542727216 +0100
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJb9CYwCRBK7hj4Ov3rIwAAdHIIAKG743gNxn5YOfE9ynXCTdzr
 WzzcTsHm+qbgrnG2ltLhAxcdAuFOfz4MrJFzW/fQtk9ynHP3pH+QJH9+0tg7HRsJ
 vQrwbXrUb2dDwUitJ7KBmZRILevbig6Ggp3daHwknfxmHF7ZZ5/2Gc+fGKxnk5nx
 tMk1lgBpWjM/nTViHIxjaxmKb21v2JCMaaF3kdBv33qe8BgVy+q+VbmcK/t18qs9
 sFuv2RgCp9y4grKdSj+/WeNL+bv4pORl53g55lWxs1Xo+G0NwgHazx8BYjRw+lKy
 VKCh7j71ZTdT7ThqTppaYic6JBA5HIrkvKT3WvJhPwTE+kLYJD3v+sS9FEX9OTA=
 =nRLG
 -----END PGP SIGNATURE-----
 

bpo-28604: Fix localeconv() for different LC_MONETARY (GH-10606)

locale.localeconv() now sets temporarily the LC_CTYPE locale to the
LC_MONETARY locale if the two locales are different and monetary
strings are non-ASCII. This temporary change affects other threads.

Changes:

* locale.localeconv() can now set LC_CTYPE to LC_MONETARY to decode
  monetary fields.
* Add LocaleInfo.grouping_buffer: copy localeconv() grouping string
  since it can be replaced anytime if a different thread calls
  localeconv().
* _Py_GetLocaleconvNumeric() now requires a "struct lconv *"
  structure, so locale.localeconv() now longer calls localeconv()
  twice. Moreover, the function now requires all arguments to be
  non-NULL.
* Rename STATIC_LOCALE_INFO_INIT to LocaleInfo_STATIC_INIT.
* Move _Py_GetLocaleconvNumeric() definition from fileutils.h
  to pycore_fileutils.h. pycore_fileutils.h now includes locale.h.
* The _locale module is now built with Py_BUILD_CORE defined.