i18nutil/source/utility/unicode.cxx |   55 +++++++++++++++++-------------------
 1 file changed, 26 insertions(+), 29 deletions(-)

New commits:
commit ab23b2cdde029f750cd583d854c75fa357108d53
Author:     Mike Kaganski <[email protected]>
AuthorDate: Mon Oct 20 08:14:28 2025 +0200
Commit:     Mike Kaganski <[email protected]>
CommitDate: Mon Oct 20 11:49:16 2025 +0200

    Replace some defines with proper C++
    
    Change-Id: I5e31e9c07b416c5ac51ef1b868ed8f74d0fd4e12
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192679
    Reviewed-by: Mike Kaganski <[email protected]>
    Tested-by: Jenkins

diff --git a/i18nutil/source/utility/unicode.cxx 
b/i18nutil/source/utility/unicode.cxx
index cef3e0c62834..ff7d6a649136 100644
--- a/i18nutil/source/utility/unicode.cxx
+++ b/i18nutil/source/utility/unicode.cxx
@@ -192,42 +192,39 @@ sal_uInt32 unicode::GetMirroredChar(sal_uInt32 nChar) {
     return nChar;
 }
 
-#define bit(name)   (1U << name)
+static constexpr auto bit(sal_Int16 name) { return 1U << name; }
 
-#define UPPERMASK   bit(UnicodeType::UPPERCASE_LETTER)
-
-#define LOWERMASK   bit(UnicodeType::LOWERCASE_LETTER)
-
-#define TITLEMASK   bit(UnicodeType::TITLECASE_LETTER)
-
-#define ALPHAMASK   UPPERMASK|LOWERMASK|TITLEMASK|\
-            bit(UnicodeType::MODIFIER_LETTER)|\
-            bit(UnicodeType::OTHER_LETTER)
-
-#define SPACEMASK   bit(UnicodeType::SPACE_SEPARATOR)|\
-            bit(UnicodeType::LINE_SEPARATOR)|\
-            bit(UnicodeType::PARAGRAPH_SEPARATOR)
-
-#define CONTROLMASK bit(UnicodeType::CONTROL)|\
-            bit(UnicodeType::FORMAT)|\
-            bit(UnicodeType::LINE_SEPARATOR)|\
-            bit(UnicodeType::PARAGRAPH_SEPARATOR)
-
-#define IsType(func, mask)  \
-bool func( const sal_uInt32 ch) {\
-    return (bit(getUnicodeType(ch)) & (mask)) != 0;\
+bool unicode::isControl(const sal_uInt32 ch)
+{
+    const auto CONTROLMASK = bit(css::i18n::UnicodeType::CONTROL) |
+                             bit(css::i18n::UnicodeType::FORMAT) |
+                             bit(css::i18n::UnicodeType::LINE_SEPARATOR) |
+                             bit(css::i18n::UnicodeType::PARAGRAPH_SEPARATOR);
+    return (bit(getUnicodeType(ch)) & CONTROLMASK) != 0;
 }
 
-IsType(unicode::isControl, CONTROLMASK)
-IsType(unicode::isAlpha, ALPHAMASK)
-IsType(unicode::isSpace, SPACEMASK)
+bool unicode::isAlpha(const sal_uInt32 ch)
+{
+    const auto ALPHAMASK = bit(css::i18n::UnicodeType::UPPERCASE_LETTER) |
+                           bit(css::i18n::UnicodeType::LOWERCASE_LETTER) |
+                           bit(css::i18n::UnicodeType::TITLECASE_LETTER) |
+                           bit(css::i18n::UnicodeType::MODIFIER_LETTER) |
+                           bit(css::i18n::UnicodeType::OTHER_LETTER);
+    return (bit(getUnicodeType(ch)) & ALPHAMASK) != 0;
+}
 
-#define CONTROLSPACE    bit(0x09)|bit(0x0a)|bit(0x0b)|bit(0x0c)|bit(0x0d)|\
-            bit(0x1c)|bit(0x1d)|bit(0x1e)|bit(0x1f)
+bool unicode::isSpace(const sal_uInt32 ch) {
+    const auto SPACEMASK = bit(css::i18n::UnicodeType::SPACE_SEPARATOR) |
+                           bit(css::i18n::UnicodeType::LINE_SEPARATOR) |
+                           bit(css::i18n::UnicodeType::PARAGRAPH_SEPARATOR);
+    return (bit(getUnicodeType(ch)) & SPACEMASK) != 0;
+}
 
 bool unicode::isWhiteSpace(const sal_uInt32 ch)
 {
-    return (ch != 0xa0 && isSpace(ch)) || (ch <= 0x1F && (bit(ch) & 
(CONTROLSPACE)));
+    const auto CONTROLSPACE = bit(0x09) | bit(0x0a) | bit(0x0b) | bit(0x0c) | 
bit(0x0d) | bit(0x1c)
+                              | bit(0x1d) | bit(0x1e) | bit(0x1f);
+    return (ch != 0xa0 && isSpace(ch)) || (ch <= 0x1F && (bit(ch) & 
CONTROLSPACE));
 }
 
 sal_Int16 unicode::getScriptClassFromUScriptCode(UScriptCode eScript)

Reply via email to