diff options
author | Harald Fernengel <harald.fernengel@nokia.com> | 2009-11-04 13:10:47 (GMT) |
---|---|---|
committer | Harald Fernengel <harald.fernengel@nokia.com> | 2009-11-04 15:09:18 (GMT) |
commit | 90b26c211bca82e252dcd31ffa1ef6834bbb6060 (patch) | |
tree | 8097a2649f3b9832e2d6ec80a89f7bc4a9e9d3e8 /src/corelib/tools/qstringbuilder.cpp | |
parent | 375bbf981fb4fc9a910aa078f6b7caf19c255ae8 (diff) | |
download | Qt-90b26c211bca82e252dcd31ffa1ef6834bbb6060.zip Qt-90b26c211bca82e252dcd31ffa1ef6834bbb6060.tar.gz Qt-90b26c211bca82e252dcd31ffa1ef6834bbb6060.tar.bz2 |
Make QStringBuilder respect codecForCStrings
Now, it's a real drop-in replacement, with no known feature regressions
:)
Reviewed-By: hjk
Diffstat (limited to 'src/corelib/tools/qstringbuilder.cpp')
-rw-r--r-- | src/corelib/tools/qstringbuilder.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/corelib/tools/qstringbuilder.cpp b/src/corelib/tools/qstringbuilder.cpp index 0a13218..4a16488 100644 --- a/src/corelib/tools/qstringbuilder.cpp +++ b/src/corelib/tools/qstringbuilder.cpp @@ -41,6 +41,8 @@ #include "qstringbuilder.h" +QT_BEGIN_NAMESPACE + /*! \class QLatin1Literal \internal @@ -143,3 +145,25 @@ Converts the \c QLatin1Literal into a \c QString object. */ + +/*! \internal */ +void QAbstractConcatenable::convertFromAscii(const char *a, int len, QChar *&out) +{ +#ifndef QT_NO_TEXTCODEC + if (QString::codecForCStrings) { + QString tmp = QString::fromAscii(a); + memcpy(out, reinterpret_cast<const char *>(tmp.constData()), sizeof(QChar) * tmp.size()); + out += tmp.length(); + return; + } +#endif + if (len == -1) { + while (*a) + *out++ = QLatin1Char(*a++); + } else { + for (int i = 0; i < len - 1; ++i) + *out++ = QLatin1Char(a[i]); + } +} + +QT_END_NAMESPACE |