summaryrefslogtreecommitdiffstats
path: root/tools/linguist/lupdate/merge.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2009-11-05 22:39:24 +0100
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2009-11-06 22:58:00 +0100
commit79864599ec3a1ce5a5ede84ea2d3d7ba437a3257 (patch)
tree3ce6f960c0fc8242cd94afacc2f2f1488f9f1bf1 /tools/linguist/lupdate/merge.cpp
parent360a51d64c607f5efae7a4f25a9a519424399b69 (diff)
don't construct a new message for look-up purposes only
Diffstat (limited to 'tools/linguist/lupdate/merge.cpp')
-rw-r--r--tools/linguist/lupdate/merge.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/tools/linguist/lupdate/merge.cpp b/tools/linguist/lupdate/merge.cpp
index b5f77cd1a2..cffbfa3918 100644
--- a/tools/linguist/lupdate/merge.cpp
+++ b/tools/linguist/lupdate/merge.cpp
@@ -351,8 +351,9 @@ Translator merge(const Translator &tor, const Translator &virginTor,
if (!mv.isNull())
m.setComment(mv.comment());
} else {
- TranslatorMessage mv = virginTor.find(m.context(), m.sourceText(), m.comment());
- if (mv.isNull()) {
+ TranslatorMessage mv;
+ int mvi = virginTor.messages().indexOf(m);
+ if (mvi < 0) {
if (!(options & HeuristicSimilarText)) {
newType = TranslatorMessage::Obsolete;
if (m.type() != TranslatorMessage::Obsolete)
@@ -402,6 +403,7 @@ Translator merge(const Translator &tor, const Translator &virginTor,
}
}
} else {
+ mv = virginTor.message(mvi);
switch (m.type()) {
case TranslatorMessage::Finished:
default:
@@ -446,7 +448,7 @@ Translator merge(const Translator &tor, const Translator &virginTor,
if (tor.contains(mv.context()))
continue;
} else {
- if (tor.contains(mv.context(), mv.sourceText(), mv.comment()))
+ if (tor.messages().contains(mv))
continue;
if (options & HeuristicSimilarText) {
TranslatorMessage m = tor.find(mv.context(), mv.comment(), mv.allReferences());