From 1bf49e98f8019bf62906651804725e4da5b9d514 Mon Sep 17 00:00:00 2001 From: Andras Timar Date: Sun, 30 Sep 2018 16:42:26 +0200 Subject: 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 --- l10ntools/source/po.cxx | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'l10ntools') 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 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& 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() ) , 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::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(); } -- cgit