Make QStringRef::right() consistent with QString::right()
The implementation was inconsistent with QString::right(), and did not return the N rightmost characters but actually did the same as QString::mid(N) (returning the rightmost size - N characters.) Since this function is fairly recent (Qt 5.2), is documented to behave the same as QString::right(), and since these APIs are meant to be interchangeable, this needs to be fixed, even though it changes behavior. [ChangeLog][Important Behavior Changes] Changed QStringRef::right() to be consistent with QString::right(). The function now returns the N right-most characters, like the documentation already claimed. Change-Id: I2d1cd6d958dfa9354aa09f16bd27b1ed209c2d11 Task-number: QTBUG-41858 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
This commit is contained in:
parent
5d9dcac0f2
commit
4bf0660ae4
@ -4419,7 +4419,7 @@ QDateTime QDateTime::fromString(const QString& string, Qt::DateFormat format)
|
||||
if (size == 10)
|
||||
return QDateTime(date);
|
||||
|
||||
isoString = isoString.right(11);
|
||||
isoString = isoString.right(isoString.length() - 11);
|
||||
int offset = 0;
|
||||
// Check end of string for Time Zone definition, either Z for UTC or [+-]HH:MM for Offset
|
||||
if (isoString.endsWith(QLatin1Char('Z'))) {
|
||||
|
@ -9020,7 +9020,7 @@ QStringRef QStringRef::right(int n) const
|
||||
{
|
||||
if (uint(n) >= uint(m_size))
|
||||
return *this;
|
||||
return QStringRef(m_string, n + m_position, m_size - n);
|
||||
return QStringRef(m_string, m_size - n + m_position, n);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@ -1870,9 +1870,9 @@ void tst_QStringRef::right()
|
||||
QStringRef ref = originalString.rightRef(originalString.size() - 1);
|
||||
QCOMPARE(ref.toString(), QLatin1String("OrginalString"));
|
||||
|
||||
QCOMPARE(ref.right(ref.size() - 6).toString(), QLatin1String("String"));
|
||||
QCOMPARE(ref.right(6).toString(), QLatin1String("String"));
|
||||
QCOMPARE(ref.right(ref.size()).toString(), QLatin1String("OrginalString"));
|
||||
QCOMPARE(ref.right(0).toString(), QLatin1String("OrginalString"));
|
||||
QCOMPARE(ref.right(0).toString(), QLatin1String(""));
|
||||
|
||||
QStringRef nullRef;
|
||||
QVERIFY(nullRef.isNull());
|
||||
|
Loading…
Reference in New Issue
Block a user