From 4224215991cc551921dc8d74443fad6a1fd99b97 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Thu, 22 May 2025 16:33:32 -0400 Subject: [PATCH] chore: make IArchString::EWideCharEncoding a enum class --- src/lib/arch/IArchString.h | 2 +- src/lib/arch/unix/ArchStringUnix.cpp | 2 +- src/lib/arch/win32/ArchStringWindows.cpp | 2 +- src/lib/base/Unicode.cpp | 20 ++++++++++---------- src/lib/base/Unicode.h | 4 ++-- src/unittests/arch/IArchStringTests.h | 2 +- src/unittests/base/UnicodeTests.cpp | 2 +- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/lib/arch/IArchString.h b/src/lib/arch/IArchString.h index b8eb2942e..cf679b746 100644 --- a/src/lib/arch/IArchString.h +++ b/src/lib/arch/IArchString.h @@ -33,7 +33,7 @@ public: /*! The known wide character encodings */ - enum EWideCharEncoding + enum class EWideCharEncoding : uint8_t { kUCS2, //!< The UCS-2 encoding kUCS4, //!< The UCS-4 encoding diff --git a/src/lib/arch/unix/ArchStringUnix.cpp b/src/lib/arch/unix/ArchStringUnix.cpp index bdd7a6898..9b80178bc 100644 --- a/src/lib/arch/unix/ArchStringUnix.cpp +++ b/src/lib/arch/unix/ArchStringUnix.cpp @@ -15,5 +15,5 @@ IArchString::EWideCharEncoding ArchStringUnix::getWideCharEncoding() { - return kUCS4; + return EWideCharEncoding::kUCS4; } diff --git a/src/lib/arch/win32/ArchStringWindows.cpp b/src/lib/arch/win32/ArchStringWindows.cpp index cb8f8897f..5b3b2b551 100644 --- a/src/lib/arch/win32/ArchStringWindows.cpp +++ b/src/lib/arch/win32/ArchStringWindows.cpp @@ -18,5 +18,5 @@ IArchString::EWideCharEncoding ArchStringWindows::getWideCharEncoding() { - return kUTF16; + return EWideCharEncoding::kUTF16; } diff --git a/src/lib/base/Unicode.cpp b/src/lib/base/Unicode.cpp index d2024b0f9..f38230449 100644 --- a/src/lib/base/Unicode.cpp +++ b/src/lib/base/Unicode.cpp @@ -8,10 +8,10 @@ #include "base/Unicode.h" #include "arch/Arch.h" +using enum IArchString::EWideCharEncoding; // // local utility functions // - inline static uint16_t decode16(const uint8_t *n, bool byteSwapped) { union x16 @@ -281,22 +281,22 @@ wchar_t *Unicode::UTF8ToWideChar(const std::string &src, uint32_t &size, bool *e // convert to platform's wide character encoding std::string tmp; switch (ARCH->getWideCharEncoding()) { - case IArchString::kUCS2: + case kUCS2: tmp = UTF8ToUCS2(src, errors); size = (uint32_t)tmp.size() >> 1; break; - case IArchString::kUCS4: + case kUCS4: tmp = UTF8ToUCS4(src, errors); size = (uint32_t)tmp.size() >> 2; break; - case IArchString::kUTF16: + case kUTF16: tmp = UTF8ToUTF16(src, errors); size = (uint32_t)tmp.size() >> 1; break; - case IArchString::kUTF32: + case kUTF32: tmp = UTF8ToUTF32(src, errors); size = (uint32_t)tmp.size() >> 2; break; @@ -314,23 +314,23 @@ wchar_t *Unicode::UTF8ToWideChar(const std::string &src, uint32_t &size, bool *e std::string Unicode::wideCharToUTF8(const wchar_t *src, uint32_t size, bool *errors, IArchString::EWideCharEncoding encoding) { - if (encoding == IArchString::kPlatformDetermined) { + if (encoding == kPlatformDetermined) { encoding = ARCH->getWideCharEncoding(); } // convert from platform's wide character encoding. // note -- this must include a wide nul character (independent of // the String's nul character). switch (encoding) { - case IArchString::kUCS2: + case kUCS2: return doUCS2ToUTF8(reinterpret_cast(src), size, errors); - case IArchString::kUCS4: + case kUCS4: return doUCS4ToUTF8(reinterpret_cast(src), size, errors); - case IArchString::kUTF16: + case kUTF16: return doUTF16ToUTF8(reinterpret_cast(src), size, errors); - case IArchString::kUTF32: + case kUTF32: return doUTF32ToUTF8(reinterpret_cast(src), size, errors); default: diff --git a/src/lib/base/Unicode.h b/src/lib/base/Unicode.h index ee453d0b3..882463a04 100644 --- a/src/lib/base/Unicode.h +++ b/src/lib/base/Unicode.h @@ -104,7 +104,7 @@ public: */ static std::string textToUTF8( const std::string &, bool *errors = nullptr, - IArchString::EWideCharEncoding encoding = IArchString::kPlatformDetermined + IArchString::EWideCharEncoding encoding = IArchString::EWideCharEncoding::kPlatformDetermined ); //@} @@ -120,7 +120,7 @@ private: // encoding) to UTF8. static std::string wideCharToUTF8( const wchar_t *, uint32_t size, bool *errors, - IArchString::EWideCharEncoding encoding = IArchString::kPlatformDetermined + IArchString::EWideCharEncoding encoding = IArchString::EWideCharEncoding::kPlatformDetermined ); // internal conversion to UTF8 diff --git a/src/unittests/arch/IArchStringTests.h b/src/unittests/arch/IArchStringTests.h index 512b7951a..dded25fc4 100644 --- a/src/unittests/arch/IArchStringTests.h +++ b/src/unittests/arch/IArchStringTests.h @@ -13,7 +13,7 @@ class SampleIArchString : public IArchString public: EWideCharEncoding getWideCharEncoding() override { - return kUTF16; + return EWideCharEncoding::kUTF16; } }; diff --git a/src/unittests/base/UnicodeTests.cpp b/src/unittests/base/UnicodeTests.cpp index 41a4a1af0..153179ba4 100644 --- a/src/unittests/base/UnicodeTests.cpp +++ b/src/unittests/base/UnicodeTests.cpp @@ -37,7 +37,7 @@ void UnicodeTests::UTF16ToUTF8() void UnicodeTests::UCS2ToUTF8_kUCS2() { bool errors; - auto result = Unicode::textToUTF8("hello", &errors, IArchString::kUCS2); + auto result = Unicode::textToUTF8("hello", &errors, IArchString::EWideCharEncoding::kUCS2); QVERIFY(!errors); #ifdef _WIN32