diff options
Diffstat (limited to 'src/corelib/tools/qcollator_icu.cpp')
-rw-r--r-- | src/corelib/tools/qcollator_icu.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/corelib/tools/qcollator_icu.cpp b/src/corelib/tools/qcollator_icu.cpp index 3cde3051b4..26e2121092 100644 --- a/src/corelib/tools/qcollator_icu.cpp +++ b/src/corelib/tools/qcollator_icu.cpp @@ -39,6 +39,7 @@ ****************************************************************************/ #include "qcollator_p.h" +#include "qlocale_p.h" #include "qstringlist.h" #include "qstring.h" @@ -56,7 +57,7 @@ void QCollatorPrivate::init() cleanup(); UErrorCode status = U_ZERO_ERROR; - QByteArray name = locale.bcp47Name().replace(QLatin1Char('-'), QLatin1Char('_')).toLatin1(); + QByteArray name = QLocalePrivate::get(locale)->bcp47Name('_'); collator = ucol_open(name.constData(), &status); if (U_FAILURE(status)) { qWarning("Could not create collator: %d", status); @@ -110,7 +111,7 @@ int QCollator::compare(const QChar *s1, int len1, const QChar *s2, int len2) con if (d->collator) return ucol_strcoll(d->collator, (const UChar *)s1, len1, (const UChar *)s2, len2); - return QString::compare(QString(s1, len1), QString(s2, len2), d->caseSensitivity); + return QString::compare_helper(s1, len1, s2, len2, d->caseSensitivity); } int QCollator::compare(const QString &s1, const QString &s2) const |