summaryrefslogtreecommitdiff
path: root/l10ntools/source/merge.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'l10ntools/source/merge.cxx')
-rw-r--r--l10ntools/source/merge.cxx9
1 files changed, 6 insertions, 3 deletions
diff --git a/l10ntools/source/merge.cxx b/l10ntools/source/merge.cxx
index f9dd4da5d2be..fab9e6ed5246 100644
--- a/l10ntools/source/merge.cxx
+++ b/l10ntools/source/merge.cxx
@@ -291,6 +291,7 @@ MergeDataFile::MergeDataFile(
bool bFirstLang = true;
while( !aInputStream.eof() )
{
+ bool bSkipCurrentPOFile = false;
const OString sFileName( lcl_NormalizeFilename(rFile) );
const bool bReadAll = sFileName.isEmpty();
const OString sPoFileName(sPoFile.data(), sPoFile.length());
@@ -318,10 +319,11 @@ MergeDataFile::MergeDataFile(
{
if( !lcl_ReadPoChecked(aNextPo, aPoInput, sPoFileName) )
{
- return;
+ bSkipCurrentPOFile = true;
+ break;
}
} while( !aPoInput.eof() && aNextPo.getSourceFile() != sFileName && !bReadAll );
- while( !aPoInput.eof() && (aNextPo.getSourceFile() == sFileName || bReadAll ))
+ while( !aPoInput.eof() && (aNextPo.getSourceFile() == sFileName || bReadAll ) && !bSkipCurrentPOFile )
{
PoEntry aActPo( aNextPo );
@@ -356,7 +358,8 @@ MergeDataFile::MergeDataFile(
}
if( !lcl_ReadPoChecked(aNextPo, aPoInput, sPoFileName) )
{
- return;
+ bSkipCurrentPOFile = true;
+ break;
}
} while( !aPoInput.eof() &&
( bInSameComp = PoEntry::IsInSameComp(aActPo, aNextPo) ) );