Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
|
#include "qstringlist.h"
#include "qunicodetables_p.h"
#include <private/qstringconverter_p.h>
#include <private/qtools_p.h>
#include "qlocale_tools_p.h"
#include "private/qsimd_p.h"
#include <qnumeric.h>
#include <qdatastream.h>
#include <qlist.h>
#include "qlocale.h"
#include "qlocale_p.h"
#include "qspan.h"
#include "qstringbuilder.h"
#include "qstringmatcher.h"
#include "qvarlengtharray.h"
#include "qdebug.h"
#include "qendian.h"
#include "qcollator.h"
#include "qttypetraits.h"
#include <private/qfunctions_p.h>
#include <limits.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <wchar.h>
#include "qchar.cpp"
#include "qlatin1stringmatcher.h"
#include "qstringmatcher.cpp"
#include "qstringiterator_p.h"
#include "qstringalgorithms_p.h"
#include "qthreadstorage.h"
#include <algorithm>
#include <functional>
Go to the source code of this file.
Classes | |
struct | ArgEscapeData |
Namespaces | |
namespace | QUnicodeTables |
Macros | |
#define | REHASH(a) |
#define | ATTRIBUTE_NO_SANITIZE |
#define | CSTR_LESS_THAN 1 |
#define | CSTR_EQUAL 2 |
#define | CSTR_GREATER_THAN 3 |
Typedefs | |
using | CaseInsensitiveL1 = QtPrivate::QCaseInsensitiveLatin1Hash |
Enumerations | |
enum | LengthMod { lm_none , lm_hh , lm_h , lm_l , lm_ll , lm_L , lm_j , lm_z , lm_t } |
Functions | |
qsizetype | qFindStringBoyerMoore (QStringView haystack, qsizetype from, QStringView needle, Qt::CaseSensitivity cs) |
bool | qt_is_ascii (const char *&ptr, const char *end) noexcept |
static bool | isAscii_helper (const char16_t *&ptr, const char16_t *end) |
Q_CORE_EXPORT void | qt_from_latin1 (char16_t *dst, const char *str, size_t size) noexcept |
static QVarLengthArray< char16_t > | qt_from_latin1_to_qvla (QLatin1StringView str) |
template<bool Checked> | |
static void | qt_to_latin1_internal (uchar *dst, const char16_t *src, qsizetype length) |
void | qt_to_latin1 (uchar *dst, const char16_t *src, qsizetype length) |
void | qt_to_latin1_unchecked (uchar *dst, const char16_t *src, qsizetype length) |
static Q_NEVER_INLINE int | ucstricmp (qsizetype alen, const char16_t *a, qsizetype blen, const char16_t *b) |
static Q_NEVER_INLINE int | ucstricmp (qsizetype alen, const char16_t *a, qsizetype blen, const char *b) |
static Q_NEVER_INLINE int | ucstricmp8 (const char *utf8, const char *utf8end, const QChar *utf16, const QChar *utf16end) |
template<StringComparisonMode Mode> | |
static int | ucstrncmp (const char16_t *a, const char16_t *b, size_t l) |
template<StringComparisonMode Mode> | |
static int | ucstrncmp (const char16_t *a, const char *b, size_t l) |
template<typename Char2 > | |
static bool | ucstreq (const char16_t *a, size_t alen, const Char2 *b) |
template<typename Char2 > | |
static int | ucstrcmp (const char16_t *a, size_t alen, const Char2 *b, size_t blen) |
static int | latin1nicmp (const char *lhsChar, qsizetype lSize, const char *rhsChar, qsizetype rSize) |
static int | qArgDigitValue (QChar ch) noexcept |
static bool | needsReallocate (const QString &str, qsizetype newSize) |
template<typename T > | |
static void | insert_helper (QString &str, qsizetype i, const T &toInsert) |
template<typename T > | |
static void | removeStringImpl (QString &s, const T &needle, Qt::CaseSensitivity cs) |
static void | replace_with_copy (QString &str, QSpan< size_t > indices, qsizetype blen, QStringView after) |
static void | replace_in_place (QString &str, QSpan< size_t > indices, qsizetype blen, QStringView after) |
static void | replace_helper (QString &str, QSpan< size_t > indices, qsizetype blen, QStringView after) |
static bool | checkCase (QStringView s, QUnicodeTables::Case c) noexcept |
static QByteArray | qt_convert_to_latin1 (QStringView string) |
static QByteArray | qt_convert_to_local_8bit (QStringView string) |
static QByteArray | qt_convert_to_utf8 (QStringView str) |
static QList< uint > | qt_convert_to_ucs4 (QStringView string) |
bool | comparesEqual (const QByteArrayView &lhs, const QChar &rhs) noexcept |
Qt::strong_ordering | compareThreeWay (const QByteArrayView &lhs, const QChar &rhs) noexcept |
bool | comparesEqual (const QByteArrayView &lhs, char16_t rhs) noexcept |
Qt::strong_ordering | compareThreeWay (const QByteArrayView &lhs, char16_t rhs) noexcept |
bool | comparesEqual (const QByteArray &lhs, const QChar &rhs) noexcept |
Qt::strong_ordering | compareThreeWay (const QByteArray &lhs, const QChar &rhs) noexcept |
bool | comparesEqual (const QByteArray &lhs, char16_t rhs) noexcept |
Qt::strong_ordering | compareThreeWay (const QByteArray &lhs, char16_t rhs) noexcept |
template<typename T > | |
static Q_NEVER_INLINE QString | QUnicodeTables::detachAndConvertCase (T &str, QStringIterator it, QUnicodeTables::Case which) |
template<typename T > | |
static QString | QUnicodeTables::convertCase (T &str, QUnicodeTables::Case which) |
static void | append_utf8 (QString &qs, const char *cs, qsizetype len) |
static uint | parse_flag_characters (const char *&c) noexcept |
static int | parse_field_width (const char *&c, qsizetype size) |
static bool | can_consume (const char *&c, char ch) noexcept |
static LengthMod | parse_length_modifier (const char *&c) noexcept |
template<typename Int > | |
static Int | toIntegral (QStringView string, bool *ok, int base) |
void | qt_string_normalize (QString *data, QString::NormalizationForm mode, QChar::UnicodeVersion version, qsizetype from) |
static ArgEscapeData | findArgEscapes (QStringView s) |
static QString | replaceArgEscapes (QStringView s, const ArgEscapeData &d, qsizetype field_width, QStringView arg, QStringView larg, QChar fillChar) |
static char16_t | to_unicode (const QChar c) |
static char16_t | to_unicode (const char c) |
template<typename Char > | |
static int | getEscape (const Char *uc, qsizetype *pos, qsizetype len) |
Q_DECLARE_TYPEINFO (Part, Q_PRIMITIVE_TYPE) | |
Q_ALWAYS_INLINE QString | to_string (QLatin1StringView s) noexcept |
Q_ALWAYS_INLINE QString | to_string (QStringView s) noexcept |
template<typename StringView > | |
static QString | argToQStringImpl (StringView pattern, size_t numArgs, const QtPrivate::ArgBase **args) |
QDataStream & | operator<< (QDataStream &out, const QString &str) |
QDataStream & | operator>> (QDataStream &in, QString &str) |
#define ATTRIBUTE_NO_SANITIZE |
Definition at line 366 of file qstring.cpp.
#define CSTR_EQUAL 2 |
Definition at line 6888 of file qstring.cpp.
#define CSTR_GREATER_THAN 3 |
Definition at line 6889 of file qstring.cpp.
#define CSTR_LESS_THAN 1 |
Definition at line 6887 of file qstring.cpp.
#define REHASH | ( | a | ) |
Definition at line 65 of file qstring.cpp.
Definition at line 1373 of file qstring.cpp.
enum LengthMod |
Enumerator | |
---|---|
lm_none | |
lm_hh | |
lm_h | |
lm_l | |
lm_ll | |
lm_L | |
lm_j | |
lm_z | |
lm_t |
Definition at line 7317 of file qstring.cpp.
Definition at line 7272 of file qstring.cpp.
References QUtf8::convertToUnicode().
Referenced by QString::vasprintf().
|
static |
Definition at line 9248 of file qstring.cpp.
References args, QtPrivate::ArgBase::L1, out, Q_UNLIKELY, qt_from_latin1(), qUtf16Printable, qWarning, to_string(), QtPrivate::ArgBase::U16, QtPrivate::ArgBase::U8, and Qt::Uninitialized.
Referenced by QtPrivate::argToQString(), and QtPrivate::argToQString().
|
inlinestaticnoexcept |
Definition at line 7319 of file qstring.cpp.
References ch.
Referenced by parse_length_modifier().
|
staticnoexcept |
Definition at line 5546 of file qstring.cpp.
References it, and QUnicodeTables::qGetProp().
Referenced by QtPrivate::isLower(), and QtPrivate::isUpper().
|
noexcept |
Definition at line 6754 of file qstring.cpp.
|
noexcept |
Definition at line 6743 of file qstring.cpp.
|
noexcept |
Definition at line 6732 of file qstring.cpp.
|
noexcept |
Definition at line 6721 of file qstring.cpp.
|
noexcept |
Definition at line 6759 of file qstring.cpp.
|
noexcept |
Definition at line 6748 of file qstring.cpp.
|
noexcept |
Definition at line 6737 of file qstring.cpp.
|
noexcept |
Definition at line 6726 of file qstring.cpp.
|
static |
Definition at line 8520 of file qstring.cpp.
References d, escape(), ArgEscapeData::min_escape, and qArgDigitValue().
Referenced by QString::arg(), QString::arg(), QString::arg(), and QString::arg().
|
static |
Definition at line 9080 of file qstring.cpp.
References escape(), i, pos, and to_unicode().
|
static |
T is a view or a container on/of QChar, char16_t, or char
Definition at line 2970 of file qstring.cpp.
References begin(), QString::cbegin(), QString::cend(), QString::data_ptr(), QArrayData::GrowsAtBeginning, QArrayData::GrowsAtEnd, i, needsReallocate(), other(), Q_CHECK_PTR(), Q_UNLIKELY, qt_from_latin1(), QString::resize(), str, and QString::swap().
Referenced by QString::insert(), QString::insert(), and QString::insert().
|
static |
Definition at line 858 of file qstring.cpp.
Referenced by QtPrivate::isAscii(), and qt_string_normalize().
|
static |
Definition at line 1375 of file qstring.cpp.
References QtPrivate::QCaseInsensitiveLatin1Hash::difference(), i, Q_ASSERT, and QtMiscUtils::qt_lencmp().
Referenced by QStringView::compareStrings().
Definition at line 2631 of file qstring.cpp.
References QString::capacity(), QString::data_ptr(), QArrayDataPointer< T >::freeSpaceAtBegin(), and str.
Referenced by QString::insert(), insert_helper(), replace_helper(), and QString::resize().
|
related |
Definition at line 9558 of file qstring.cpp.
|
related |
Definition at line 9589 of file qstring.cpp.
|
static |
Definition at line 7300 of file qstring.cpp.
References QtMiscUtils::isAsciiDigit(), Q_ASSERT, and qstrntoull().
Referenced by QString::vasprintf().
|
staticnoexcept |
Definition at line 7280 of file qstring.cpp.
References QLocaleData::AddTrailingZeroes, QLocaleData::AlwaysShowSign, QLocaleData::BlankBeforePositive, QLocaleData::ForcePoint, QLocaleData::GroupDigits, QLocaleData::LeftAdjusted, QLocaleData::ShowBase, QLocaleData::ZeroPadded, and QLocaleData::ZeroPadExponent.
Referenced by QString::vasprintf().
|
staticnoexcept |
Definition at line 7328 of file qstring.cpp.
References can_consume(), lm_h, lm_hh, lm_j, lm_l, lm_L, lm_ll, lm_none, lm_t, and lm_z.
Referenced by QString::vasprintf().
Q_DECLARE_TYPEINFO | ( | Part | , |
Q_PRIMITIVE_TYPE | ) |
|
staticnoexcept |
Definition at line 1631 of file qstring.cpp.
References ch.
Referenced by findArgEscapes(), and replaceArgEscapes().
qsizetype qFindStringBoyerMoore | ( | QStringView | haystack, |
qsizetype | haystackOffset, | ||
QStringView | needle, | ||
Qt::CaseSensitivity | cs ) |
Definition at line 322 of file qstringmatcher.cpp.
References bm_find(), and bm_init_skiptable().
Referenced by QtPrivate::findString().
|
static |
Definition at line 5643 of file qstring.cpp.
References ba, QByteArray::constData(), Q_UNLIKELY, QByteArray(), qt_to_latin1(), and Qt::Uninitialized.
Referenced by QStringView::convertToLatin1().
|
static |
Definition at line 5735 of file qstring.cpp.
References fromUtf16, QByteArray(), QStringConverterBase::Stateless, and QStringConverter::System.
Referenced by QStringView::convertToLocal8Bit().
|
static |
Definition at line 5828 of file qstring.cpp.
References it.
Referenced by QStringView::convertToUcs4(), and QString::toUcs4().
|
static |
Definition at line 5781 of file qstring.cpp.
References QUtf8::convertFromUnicode(), QString::isNull(), QByteArray(), and str.
Referenced by QStringView::convertToUtf8().
|
noexcept |
Definition at line 920 of file qstring.cpp.
Referenced by QAbstractConcatenable::appendLatin1To(), argToQStringImpl(), QLatin1::convertToUnicode(), QString::fromLatin1(), insert_helper(), QString::operator=(), qHashBits_fallback< ByteToWord >(), and qt_from_latin1_to_qvla().
|
static |
Definition at line 995 of file qstring.cpp.
References QString::data(), qt_from_latin1(), QString::size(), and str.
Referenced by QString::arg(), QtPrivate::count(), QtPrivate::findString(), QString::replace(), QString::replace(), QString::replace(), and QString::replace().
|
noexcept |
Definition at line 786 of file qstring.cpp.
References QSysInfo::BigEndian, QSysInfo::ByteOrder, ptr(), qCountLeadingZeroBits(), and qCountTrailingZeroBits().
Referenced by QtPrivate::isAscii().
void qt_string_normalize | ( | QString * | data, |
QString::NormalizationForm | mode, | ||
QChar::UnicodeVersion | version, | ||
qsizetype | from ) |
Definition at line 8410 of file qstring.cpp.
References canonicalOrderHelper(), composeHelper(), d, decomposeHelper(), isAscii_helper(), QUnicodeTables::NormalizationCorrectionsVersionMax, QString::NormalizationForm_D, QString::NormalizationForm_KD, normalizationQuickCheckHelper(), pos, and QUnicodeTables::uc_normalization_corrections.
Referenced by QString::normalized().
Definition at line 1183 of file qstring.cpp.
Referenced by QLatin1::convertFromUnicode(), from_string(), qt_convert_to_latin1(), QStringView::toDouble(), and toIntegral().
|
static |
Definition at line 1004 of file qstring.cpp.
References i, Q_UNUSED, and qToUnaligned().
Definition at line 1188 of file qstring.cpp.
Referenced by QCborContainerPrivate::appendAsciiString(), QtPrivate::count(), and QtPrivate::findString().
|
static |
Definition at line 3495 of file qstring.cpp.
References QArrayDataPointer< T >::begin(), begin(), copy(), QArrayDataPointer< T >::end(), i, and Qt::Uninitialized.
Referenced by QString::remove(), and QString::remove().
|
static |
Definition at line 3759 of file qstring.cpp.
References QString::data_ptr(), QArrayDataPointer< T >::needsDetach(), needsReallocate(), QtPrivate::q_points_into_range(), QVarLengthArray(), replace_in_place(), replace_with_copy(), QArrayDataPointer< T >::size, and str.
Referenced by QString::replace(), QString::replace(), and QString::replace().
|
static |
Definition at line 3715 of file qstring.cpp.
References QArrayDataPointer< T >::begin(), begin(), QString::data_ptr(), QArrayDataPointer< T >::end(), it, QString::resize(), QArrayDataPointer< T >::size, and str.
Referenced by replace_helper().
|
static |
Instead of detaching, or reallocating if "before" is shorter than "after" and there isn't enough capacity, create a new string, copy characters to it as needed, then swap it with "str".
Definition at line 3692 of file qstring.cpp.
References QArrayDataPointer< T >::begin(), copy(), QString::data_ptr(), str, QString::swap(), and Qt::Uninitialized.
Referenced by replace_helper().
|
static |
Definition at line 8596 of file qstring.cpp.
References arg, d, escape(), Q_ASSERT, qAbs(), qArgDigitValue(), qMax(), and Qt::Uninitialized.
Referenced by QString::arg(), QString::arg(), QString::arg(), and QString::arg().
|
noexcept |
Definition at line 9244 of file qstring.cpp.
Referenced by argToQStringImpl(), and QOpenXRManager::initialize().
|
noexcept |
Definition at line 9245 of file qstring.cpp.
|
inlinestatic |
Definition at line 9077 of file qstring.cpp.
References QLatin1Char::unicode().
|
inlinestatic |
Definition at line 9076 of file qstring.cpp.
Referenced by getEscape().
|
static |
Definition at line 7638 of file qstring.cpp.
References base, QLocaleData::bytearrayToLongLong(), QLocaleData::bytearrayToUnsLongLong(), ok, qt_to_latin1(), and qWarning.
|
static |
Definition at line 1362 of file qstring.cpp.
References qMin(), and QtMiscUtils::qt_lencmp().
Referenced by QStringView::compareStrings(), and QStringView::compareStrings().
|
static |
Definition at line 1351 of file qstring.cpp.
Referenced by QtPrivate::equalStrings(), and QtPrivate::equalStrings().
|
static |
Definition at line 1221 of file qstring.cpp.
References foldCase(), i, and qMin().
|
static |
Definition at line 1194 of file qstring.cpp.
References foldCase(), i, qMin(), and QtMiscUtils::qt_lencmp().
Referenced by QStringView::compareStrings(), and QStringView::compareStrings().
|
static |
Definition at line 1239 of file qstring.cpp.
References output.
Referenced by QStringView::compareStrings().
|
static |
Definition at line 1329 of file qstring.cpp.
|
static |
Definition at line 1276 of file qstring.cpp.
References QSysInfo::BigEndian, QSysInfo::ByteOrder, db, i, and qCountTrailingZeroBits().