summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/tools/qstring.cpp24
-rw-r--r--src/corelib/tools/qunicodetables_p.h32
-rw-r--r--util/unicode/main.cpp32
3 files changed, 64 insertions, 24 deletions
diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp
index a88b48c767..6b15900031 100644
--- a/src/corelib/tools/qstring.cpp
+++ b/src/corelib/tools/qstring.cpp
@@ -5666,30 +5666,6 @@ QString QString::rightJustified(int width, QChar fill, bool truncate) const
*/
namespace QUnicodeTables {
-struct LowercaseTraits
-{
- static signed short caseDiff(const Properties *prop)
- { return prop->lowerCaseDiff; }
- static bool caseSpecial(const Properties *prop)
- { return prop->lowerCaseSpecial; }
-};
-
-struct UppercaseTraits
-{
- static signed short caseDiff(const Properties *prop)
- { return prop->upperCaseDiff; }
- static bool caseSpecial(const Properties *prop)
- { return prop->upperCaseSpecial; }
-};
-
-struct CasefoldTraits
-{
- static signed short caseDiff(const Properties *prop)
- { return prop->caseFoldDiff; }
- static bool caseSpecial(const Properties *prop)
- { return prop->caseFoldSpecial; }
-};
-
template <typename Traits, typename T>
Q_NEVER_INLINE
static QString detachAndConvertCase(T &str, QStringIterator it)
diff --git a/src/corelib/tools/qunicodetables_p.h b/src/corelib/tools/qunicodetables_p.h
index 1fbcc39666..6a2797be0e 100644
--- a/src/corelib/tools/qunicodetables_p.h
+++ b/src/corelib/tools/qunicodetables_p.h
@@ -82,6 +82,38 @@ struct Properties {
Q_CORE_EXPORT const Properties * QT_FASTCALL properties(uint ucs4) Q_DECL_NOTHROW;
Q_CORE_EXPORT const Properties * QT_FASTCALL properties(ushort ucs2) Q_DECL_NOTHROW;
+struct LowercaseTraits
+{
+ static inline signed short caseDiff(const Properties *prop)
+ { return prop->lowerCaseDiff; }
+ static inline bool caseSpecial(const Properties *prop)
+ { return prop->lowerCaseSpecial; }
+};
+
+struct UppercaseTraits
+{
+ static inline signed short caseDiff(const Properties *prop)
+ { return prop->upperCaseDiff; }
+ static inline bool caseSpecial(const Properties *prop)
+ { return prop->upperCaseSpecial; }
+};
+
+struct TitlecaseTraits
+{
+ static inline signed short caseDiff(const Properties *prop)
+ { return prop->titleCaseDiff; }
+ static inline bool caseSpecial(const Properties *prop)
+ { return prop->titleCaseSpecial; }
+};
+
+struct CasefoldTraits
+{
+ static inline signed short caseDiff(const Properties *prop)
+ { return prop->caseFoldDiff; }
+ static inline bool caseSpecial(const Properties *prop)
+ { return prop->caseFoldSpecial; }
+};
+
enum GraphemeBreakClass {
GraphemeBreak_Other,
GraphemeBreak_CR,
diff --git a/util/unicode/main.cpp b/util/unicode/main.cpp
index 35f5aa9d24..d1713795dd 100644
--- a/util/unicode/main.cpp
+++ b/util/unicode/main.cpp
@@ -765,6 +765,38 @@ static const char *property_string =
"};\n\n"
"Q_CORE_EXPORT const Properties * QT_FASTCALL properties(uint ucs4) Q_DECL_NOTHROW;\n"
"Q_CORE_EXPORT const Properties * QT_FASTCALL properties(ushort ucs2) Q_DECL_NOTHROW;\n"
+ "\n"
+ "struct LowercaseTraits\n"
+ "{\n"
+ " static inline signed short caseDiff(const Properties *prop)\n"
+ " { return prop->lowerCaseDiff; }\n"
+ " static inline bool caseSpecial(const Properties *prop)\n"
+ " { return prop->lowerCaseSpecial; }\n"
+ "};\n"
+ "\n"
+ "struct UppercaseTraits\n"
+ "{\n"
+ " static inline signed short caseDiff(const Properties *prop)\n"
+ " { return prop->upperCaseDiff; }\n"
+ " static inline bool caseSpecial(const Properties *prop)\n"
+ " { return prop->upperCaseSpecial; }\n"
+ "};\n"
+ "\n"
+ "struct TitlecaseTraits\n"
+ "{\n"
+ " static inline signed short caseDiff(const Properties *prop)\n"
+ " { return prop->titleCaseDiff; }\n"
+ " static inline bool caseSpecial(const Properties *prop)\n"
+ " { return prop->titleCaseSpecial; }\n"
+ "};\n"
+ "\n"
+ "struct CasefoldTraits\n"
+ "{\n"
+ " static inline signed short caseDiff(const Properties *prop)\n"
+ " { return prop->caseFoldDiff; }\n"
+ " static inline bool caseSpecial(const Properties *prop)\n"
+ " { return prop->caseFoldSpecial; }\n"
+ "};\n"
"\n";
static const char *methods =