diff options
author | Eric Fiselier <eric@efcs.ca> | 2016-12-11 00:20:59 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2016-12-11 00:20:59 +0000 |
commit | 0d542d350dafd662fb5fe9c00b5a3e4f61ee442f (patch) | |
tree | 3625e856fa7dbc0be25c83a48b6a53848c7423f2 /llvm/tools/llvm-link/llvm-link.cpp | |
parent | 658bb0964a74d86ee71bb0fd53ba6684b7be3567 (diff) | |
download | bcm5719-llvm-0d542d350dafd662fb5fe9c00b5a3e4f61ee442f.tar.gz bcm5719-llvm-0d542d350dafd662fb5fe9c00b5a3e4f61ee442f.zip |
[libc++] Fix support for multibyte thousands_sep and decimal_point in moneypunct_byname and numpunct_byname.
Summary:
The underlying C locales provide the `thousands_sep` and `decimal_point` as strings, possible with more than one character. We currently don't handle this case even for `wchar_t`.
This patch properly converts the mbs -> wide character for `moneypunct_byname<wchar_t>`. For the `moneypunct_byname<char>` case we attempt to narrow the WC and if that fails we also attempt to translate it to some reasonable value. For example we translate U00A0 (non-breaking space) into U0020 (regular space). If none of these conversions succeed then we simply allow the base class to provide a fallback value.
Reviewers: mclow.lists, EricWF
Subscribers: vangyzen, george.burgess.iv, cfe-commits
Differential Revision: https://reviews.llvm.org/D24218
llvm-svn: 289347
Diffstat (limited to 'llvm/tools/llvm-link/llvm-link.cpp')
0 files changed, 0 insertions, 0 deletions