bool isPunct() const;
inline bool isSpace() const {
return ucs == 0x20 || (ucs <= 0x0D && ucs >= 0x09)
- || (ucs > 127 && isSpace(ucs));
+ || (ucs > 127 && (ucs == 0x0085 || isSpace(ucs)));
}
bool isMark() const;
inline bool isLetter() const {
FLAG(QChar::Other_Control)));
yyCharClass->addRange(0x0000, 0x0008);
yyCharClass->addRange(0x000e, 0x001f);
- yyCharClass->addRange(0x007f, 0x009f);
+ yyCharClass->addRange(0x007f, 0x0084);
+ yyCharClass->addRange(0x0086, 0x009f);
return Tok_CharClass;
case 'W':
// see QChar::isLetterOrNumber() and QChar::isMark()
FLAG(QChar::Separator_Line) |
FLAG(QChar::Separator_Paragraph));
yyCharClass->addRange(0x0009, 0x000d);
+ yyCharClass->addSingleton(0x0085);
return Tok_CharClass;
case 'w':
// see QChar::isLetterOrNumber() and QChar::isMark()
void isLower();
void isSpace_data();
void isSpace();
+ void isSpaceSpecial();
void isTitle();
void category();
void direction();
QTest::addColumn<bool>("expected");
for (ushort ucs = 0; ucs < 256; ++ucs) {
- bool isSpace = (ucs <= 0x0D && ucs >= 0x09) || ucs == 0x20 || ucs == 0xA0;
+ bool isSpace = (ucs <= 0x0D && ucs >= 0x09) || ucs == 0x20 || ucs == 0xA0 || ucs == 0x85;
QString tag = QString::fromLatin1("0x%0").arg(QString::number(ucs, 16));
QTest::newRow(tag.toLatin1()) << ucs << isSpace;
}
QCOMPARE(QChar(ucs).isSpace(), expected);
}
+void tst_QChar::isSpaceSpecial()
+{
+ QVERIFY(!QChar(QChar::Null).isSpace());
+ QVERIFY(QChar(QChar::Nbsp).isSpace());
+ QVERIFY(QChar(QChar::ParagraphSeparator).isSpace());
+ QVERIFY(QChar(QChar::LineSeparator).isSpace());
+ QVERIFY(QChar(0x1680).isSpace());
+}
+
void tst_QChar::isTitle()
{
for (uint codepoint = 0; codepoint <= UNICODE_LAST_CODEPOINT; ++codepoint) {