summaryrefslogtreecommitdiffstats
path: root/tools/linguist/lupdate/cpp.cpp
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@nokia.com>2009-10-30 08:38:23 (GMT)
committerMorten Johan Sørvig <morten.sorvig@nokia.com>2009-10-30 08:38:23 (GMT)
commitaf92a4e78613ee3a0d402d3f67126284d0bb6656 (patch)
tree5210fa7f769602c95d6bd7bc3a396898b3143acf /tools/linguist/lupdate/cpp.cpp
parenta4b77f3887a4eb0f3ce103d2457f57e94938d771 (diff)
parenta9f7e08ab08ce25413b85272526907f7347e6fe3 (diff)
downloadQt-af92a4e78613ee3a0d402d3f67126284d0bb6656.zip
Qt-af92a4e78613ee3a0d402d3f67126284d0bb6656.tar.gz
Qt-af92a4e78613ee3a0d402d3f67126284d0bb6656.tar.bz2
Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt into 4.6
Diffstat (limited to 'tools/linguist/lupdate/cpp.cpp')
-rw-r--r--tools/linguist/lupdate/cpp.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/tools/linguist/lupdate/cpp.cpp b/tools/linguist/lupdate/cpp.cpp
index 7a616e3..4d89156 100644
--- a/tools/linguist/lupdate/cpp.cpp
+++ b/tools/linguist/lupdate/cpp.cpp
@@ -1896,28 +1896,29 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
prospectiveContext.clear();
}
break;
- case Tok_Comment:
+ case Tok_Comment: {
if (!tor)
goto case_default;
- if (yyWord.startsWith(QLatin1Char(':'))) {
- yyWord.remove(0, 1);
+ const QChar *ptr = yyWord.unicode();
+ if (*ptr == QLatin1Char(':') && ptr[1].isSpace()) {
+ yyWord.remove(0, 2);
extracomment += yyWord;
extracomment.detach();
- } else if (yyWord.startsWith(QLatin1Char('='))) {
- yyWord.remove(0, 1);
+ } else if (*ptr == QLatin1Char('=') && ptr[1].isSpace()) {
+ yyWord.remove(0, 2);
msgid = yyWord.simplified();
msgid.detach();
- } else if (yyWord.startsWith(QLatin1Char('~'))) {
- yyWord.remove(0, 1);
+ } else if (*ptr == QLatin1Char('~') && ptr[1].isSpace()) {
+ yyWord.remove(0, 2);
text = yyWord.trimmed();
int k = text.indexOf(QLatin1Char(' '));
if (k > -1)
extra.insert(text.left(k), text.mid(k + 1).trimmed());
text.clear();
- } else if (yyWord.startsWith(QLatin1Char('%'))) {
- sourcetext.reserve(sourcetext.length() + yyWord.length());
+ } else if (*ptr == QLatin1Char('%') && ptr[1].isSpace()) {
+ sourcetext.reserve(sourcetext.length() + yyWord.length() - 2);
ushort *ptr = (ushort *)sourcetext.data() + sourcetext.length();
- int p = 1, c;
+ int p = 2, c;
forever {
if (p >= yyWord.length())
break;
@@ -1977,6 +1978,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
}
yyTok = getToken();
break;
+ }
case Tok_Arrow:
yyTok = getToken();
if (yyTok == Tok_tr || yyTok == Tok_trUtf8)