Kaydet (Commit) 8ae3ddca authored tarafından Zolnai Tamás's avatar Zolnai Tamás

Fix language id checking

The result of GetLanguages() is a vector, but
behind it the language ids stored in a set, so
the order not depend on which id was inserted first.
With language ids which are after qtz in alphabetic order
this checkings works wrong.

Change-Id: I4e15d4de576b1fc567692109311c053b0d93ea60
üst a9a30952
...@@ -182,13 +182,15 @@ void PropParser::Merge( const OString &rMergeSrc, const OString &rDestinationFil ...@@ -182,13 +182,15 @@ void PropParser::Merge( const OString &rMergeSrc, const OString &rDestinationFil
MergeDataFile aMergeDataFile( rMergeSrc, m_sSource, false ); MergeDataFile aMergeDataFile( rMergeSrc, m_sSource, false );
const std::vector<OString> aLanguages = aMergeDataFile.GetLanguages(); const std::vector<OString> vLanguages = aMergeDataFile.GetLanguages();
if( m_sLang != "qtz" && !aLanguages.empty() && aLanguages[0] != m_sLang ) if( m_sLang != "qtz" && vLanguages.size()>=2 &&
vLanguages[vLanguages[0]!="qtz" ? 0 : 1] != m_sLang )
{ {
std::cerr std::cerr
<< "Propex error: given language conflicts with " << "Propex error: given language conflicts with "
<< "language of Mergedata file: " << "language of Mergedata file: "
<< m_sLang.getStr() << " - " << aLanguages[0].getStr() << std::endl; << m_sLang.getStr() << " - "
<< vLanguages[vLanguages[0]!="qtz" ? 0 : 1].getStr() << std::endl;
return; return;
} }
......
...@@ -282,12 +282,14 @@ void TreeParser::Merge( ...@@ -282,12 +282,14 @@ void TreeParser::Merge(
MergeDataFile aMergeDataFile( MergeDataFile aMergeDataFile(
rMergeSrc, static_cast<OString>( m_pSource->name ), false ); rMergeSrc, static_cast<OString>( m_pSource->name ), false );
const std::vector<OString> vLanguages = aMergeDataFile.GetLanguages(); const std::vector<OString> vLanguages = aMergeDataFile.GetLanguages();
if( !vLanguages.empty() && vLanguages[0] != m_sLang ) if( vLanguages.size()>=2 &&
vLanguages[vLanguages[0]=="qtz" ? 0 : 1] != m_sLang )
{ {
std::cerr std::cerr
<< "Treex error: given language conflicts with " << "Treex error: given language conflicts with "
<< "language of Mergedata file: " << "language of Mergedata file: "
<< m_sLang.getStr() << " - " << vLanguages[0].getStr() << std::endl; << m_sLang.getStr() << " - "
<< vLanguages[vLanguages[0]=="qtz" ? 0 : 1].getStr() << std::endl;
return; return;
} }
lcl_MergeLevel( lcl_MergeLevel(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment