Motivation: some Android NDKs do not have iconv.
This commit is contained in:
parent
62f8a7d05f
commit
149938cc44
@ -45,8 +45,9 @@ lxdrgen-c.awk::
|
|||||||
LibertyXDR backend that builds on top of the C pseudolibrary.
|
LibertyXDR backend that builds on top of the C pseudolibrary.
|
||||||
|
|
||||||
lxdrgen-cpp.awk::
|
lxdrgen-cpp.awk::
|
||||||
lxdrgen-cpp-win32.cpp::
|
|
||||||
lxdrgen-cpp-posix.cpp::
|
lxdrgen-cpp-posix.cpp::
|
||||||
|
lxdrgen-cpp-qt.cpp::
|
||||||
|
lxdrgen-cpp-win32.cpp::
|
||||||
LibertyXDR backend for C++, primarily targeting Win32 and its wide strings.
|
LibertyXDR backend for C++, primarily targeting Win32 and its wide strings.
|
||||||
Link the result together with one of the accompanied source files.
|
Link the result together with one of the accompanied source files.
|
||||||
|
|
||||||
|
23
tools/lxdrgen-cpp-qt.cpp
Normal file
23
tools/lxdrgen-cpp-qt.cpp
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
// lxdrgen-cpp-qt.cpp: Qt support code for lxdrgen-cpp.awk.
|
||||||
|
//
|
||||||
|
// Copyright (c) 2024, Přemysl Eric Janouch <p@janouch.name>
|
||||||
|
// SPDX-License-Identifier: 0BSD
|
||||||
|
#include <QString>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
namespace LibertyXDR {
|
||||||
|
|
||||||
|
bool utf8_to_wstring(const uint8_t *utf8, size_t length, std::wstring &wide) {
|
||||||
|
QByteArrayView view(reinterpret_cast<const char *>(utf8), length);
|
||||||
|
if (!view.isValidUtf8())
|
||||||
|
return false;
|
||||||
|
wide = QString::fromUtf8(view).toStdWString();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wstring_to_utf8(const std::wstring &wide, std::string &utf8) {
|
||||||
|
utf8 = QString::fromStdWString(wide).toUtf8().toStdString();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace LibertyXDR
|
Loading…
Reference in New Issue
Block a user