[libc++] Improve no wide characters configuration.
authorMark de Wever <koraq@xs4all.nl>
Wed, 3 Nov 2021 18:25:20 +0000 (19:25 +0100)
committerMark de Wever <koraq@xs4all.nl>
Thu, 4 Nov 2021 18:35:06 +0000 (19:35 +0100)
commit5de4864f74bd1ec167a77b77b99e05470f3ab578
tree63c5ae748a5f44b860b69d94678a8ac2c77a0373
parentd0eaf75320ea72c4da55060b6c42aad923870814
[libc++] Improve no wide characters configuration.

When wide characters are supported libc++ manually translates a
`narrow non-breaking space` and a `non-breaking space` to a space.
This behaviour wasn't available when wide characters were disabled.
This enables an emulation for that configuration.

Updating the libc++ Docker image to Ubuntu Focal caused some breakage.
This was temporary disabled in D112737. This re-enables four of these
tests.

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D113133
libcxx/src/locale.cpp
libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp
libcxx/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp
libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp
libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp