diff options
author | Mark de Wever <koraq@xs4all.nl> | 2023-04-21 08:09:06 +0200 |
---|---|---|
committer | Mark de Wever <koraq@xs4all.nl> | 2023-07-11 20:28:19 +0200 |
commit | 20341c3ad6f64a2a61d0e38d0cdafd356a5b6cbb (patch) | |
tree | 1fb5f0abeb9f2a3ff3dee08060122a6162b21431 /lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp | |
parent | 2cb4731902d1f05af11154afe19f6fb2331c1920 (diff) | |
download | llvm-20341c3ad6f64a2a61d0e38d0cdafd356a5b6cbb.zip llvm-20341c3ad6f64a2a61d0e38d0cdafd356a5b6cbb.tar.gz llvm-20341c3ad6f64a2a61d0e38d0cdafd356a5b6cbb.tar.bz2 |
[libc++][format] Adds a UTF transcoder.
This is a preparation for
P2093R14 Formatted output
When the output of print is to the terminal it needs to use the native
API. This means transcoding UTF-8 to UTF-16 on Windows. The encoder's
interface is modeled after
P2728 Unicode in the Library, Part 1: UTF Transcoding
But only the required part for P2093R14 is implemented.
On Windows wchar_t is 16 bits, in order to test on platforms where
wchar_t is 32 bits the transcoder has support for char16_t. It also adds
and UTF-8 to UTF-32 encoder which is useful for other tests.
Note it is possible to use <codecvt> for transcoding, but that header is
deprecated. So rather write new code that is not deprecated; the hard
part, decoding, has already been done. The <codecvt> header also
requires locale support while the new code works without including
<locale>.
Note the current transcoder implementation can be optimized since it
basically does UTF-8 -> UTF-32 -> UTF-16. The first goal is to have a
working implementation. Since it's not part of the ABI it's possible to
do the optimization later.
Depends on D149672
Reviewed By: ldionne, tahonermann, #libc
Differential Revision: https://reviews.llvm.org/D150031
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp')
0 files changed, 0 insertions, 0 deletions