summaryrefslogtreecommitdiff
path: root/l10ntools
diff options
context:
space:
mode:
authorAndras Timar <andras.timar@collabora.com>2018-09-30 16:42:26 +0200
committerAndras Timar <andras.timar@collabora.com>2018-09-30 21:57:37 +0200
commit1bf49e98f8019bf62906651804725e4da5b9d514 (patch)
treeeaa9b62264d71256faa5873d1f9570715f96620b /l10ntools
parent8d4e12a4153868c9d98937d49c4ac6064013a8dd (diff)
pocheck: PO entries can have multiple source code reference lines since LO 6.0
Change-Id: Icbe0dd5e63eb5b10d162f34347ab86dde547dc62 Reviewed-on: https://gerrit.libreoffice.org/61164 Tested-by: Jenkins Reviewed-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'l10ntools')
-rw-r--r--l10ntools/source/po.cxx23
1 files changed, 13 insertions, 10 deletions
diff --git a/l10ntools/source/po.cxx b/l10ntools/source/po.cxx
index ea52d8d8a66f..e87fe66f25f1 100644
--- a/l10ntools/source/po.cxx
+++ b/l10ntools/source/po.cxx
@@ -30,7 +30,7 @@ class GenPoEntry
{
private:
OStringBuffer m_sExtractCom;
- OString m_sReference;
+ std::vector<OString> m_sReferences;
OString m_sMsgCtxt;
OString m_sMsgId;
OString m_sMsgStr;
@@ -41,7 +41,7 @@ private:
public:
GenPoEntry();
- const OString& getReference() const { return m_sReference; }
+ const std::vector<OString>& getReference() const { return m_sReferences; }
const OString& getMsgCtxt() const { return m_sMsgCtxt; }
const OString& getMsgId() const { return m_sMsgId; }
const OString& getMsgStr() const { return m_sMsgStr; }
@@ -54,7 +54,7 @@ public:
}
void setReference(const OString& rReference)
{
- m_sReference = rReference;
+ m_sReferences.push_back(rReference);
}
void setMsgCtxt(const OString& rMsgCtxt)
{
@@ -115,7 +115,7 @@ namespace
GenPoEntry::GenPoEntry()
: m_sExtractCom( OString() )
- , m_sReference( OString() )
+ , m_sReferences( std::vector<OString>() )
, m_sMsgCtxt( OString() )
, m_sMsgId( OString() )
, m_sMsgStr( OString() )
@@ -133,8 +133,11 @@ void GenPoEntry::writeToFile(std::ofstream& rOFStream) const
rOFStream
<< "#. "
<< m_sExtractCom.toString().replaceAll("\n","\n#. ") << std::endl;
- if ( !m_sReference.isEmpty() )
- rOFStream << "#: " << m_sReference << std::endl;
+ if ( !m_sReferences.empty() )
+ {
+ for(std::vector<OString>::const_iterator it = m_sReferences.begin(); it != m_sReferences.end(); ++it)
+ rOFStream << "#: " << *it << std::endl;
+ }
if ( m_bFuzzy )
rOFStream << "#, fuzzy" << std::endl;
if ( m_bCFormat )
@@ -173,7 +176,7 @@ void GenPoEntry::readFromFile(std::ifstream& rIFStream)
}
else if (sLine.startsWith("#: "))
{
- m_sReference = sLine.copy(3);
+ m_sReferences.push_back(sLine.copy(3));
}
else if (sLine.startsWith("#, fuzzy"))
{
@@ -252,7 +255,7 @@ PoEntry::PoEntry(
m_pGenPo->setMsgId(rText);
m_pGenPo->setExtractCom(
( !rHelpText.isEmpty() ? rHelpText + "\n" : OString()) +
- genKeyId( m_pGenPo->getReference() + rGroupId + rLocalId + rResType + rText ) );
+ genKeyId( m_pGenPo->getReference().front() + rGroupId + rLocalId + rResType + rText ) );
m_bIsInitialized = true;
}
@@ -301,7 +304,7 @@ PoEntry& PoEntry::operator=(PoEntry&& rPo)
OString const & PoEntry::getSourceFile() const
{
assert( m_bIsInitialized );
- return m_pGenPo->getReference();
+ return m_pGenPo->getReference().front();
}
OString PoEntry::getGroupId() const
@@ -492,7 +495,7 @@ namespace
// Check the validity of read entry
bool lcl_CheckInputEntry(const GenPoEntry& rEntry)
{
- return !rEntry.getReference().isEmpty() &&
+ return !rEntry.getReference().empty() &&
!rEntry.getMsgCtxt().isEmpty() &&
!rEntry.getMsgId().isEmpty();
}