[Libreoffice-commits] core.git: Branch 'libreoffice-6-1' - l10ntools/inc l10ntools/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed Nov 21 12:41:55 UTC 2018


 l10ntools/inc/po.hxx         |    2 ++
 l10ntools/source/po.cxx      |   36 ++++++++++++++++++++++++++++++++++--
 l10ntools/source/pocheck.cxx |    5 +++--
 3 files changed, 39 insertions(+), 4 deletions(-)

New commits:
commit 03f2c4eb95d7c2d22e4240f0ebccb65981a68c86
Author:     Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
AuthorDate: Thu Nov 15 13:19:31 2018 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Wed Nov 21 13:41:24 2018 +0100

    pocheck: don't throw away Plural-Forms header
    
    also don't change POT creation date when rewriting a po file, update
    Po-Revision instead.
    When creating templates, put X-Accelerator before X-Generator (like
    pootle would order it)
    
    Change-Id: I7fec4cb1c50e27b87decd9a892de3f01a02253ed
    Reviewed-on: https://gerrit.libreoffice.org/63416
    Tested-by: Jenkins
    Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
    (cherry picked from commit 9ffe350ae344e9863330fbb2405c37df6b9d0984)
    Reviewed-on: https://gerrit.libreoffice.org/63603
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/l10ntools/inc/po.hxx b/l10ntools/inc/po.hxx
index e213f47e177a..aff8b88af100 100644
--- a/l10ntools/inc/po.hxx
+++ b/l10ntools/inc/po.hxx
@@ -88,6 +88,7 @@ public:
     friend class PoIfstream;
 
                     PoHeader( const OString& rExtSrc ); ///< Template Constructor
+                    PoHeader( const OString& rExtSrc, const OString& rPoHeaderMsgStr );
                     ~PoHeader();
                     PoHeader(const PoHeader&) = delete;
     PoHeader&       operator=(const PoHeader&) = delete;
@@ -139,6 +140,7 @@ public:
     bool    eof() const     { return m_bEof; }
 
     void    open(const OString& rFileName);
+    void    open(const OString& rFileName, OString& sPoHeader);
     void    close();
     void    readEntry(PoEntry& rPo);
 };
diff --git a/l10ntools/source/po.cxx b/l10ntools/source/po.cxx
index e784e3d025bb..a120c52cdc86 100644
--- a/l10ntools/source/po.cxx
+++ b/l10ntools/source/po.cxx
@@ -445,6 +445,16 @@ namespace
     }
 }
 
+// when updating existing files (pocheck), reuse provided po-header
+PoHeader::PoHeader( const OString& rExtSrc, const OString& rPoHeaderMsgStr )
+    : m_pGenPo( new GenPoEntry() )
+    , m_bIsInitialized( false )
+{
+    m_pGenPo->setExtractCom("extracted from " + rExtSrc);
+    m_pGenPo->setMsgStr(rPoHeaderMsgStr);
+    m_bIsInitialized = true;
+}
+
 PoHeader::PoHeader( const OString& rExtSrc )
     : m_pGenPo( new GenPoEntry() )
     , m_bIsInitialized( false )
@@ -461,8 +471,8 @@ PoHeader::PoHeader( const OString& rExtSrc )
         "MIME-Version: 1.0\n"
         "Content-Type: text/plain; charset=UTF-8\n"
         "Content-Transfer-Encoding: 8bit\n"
-        "X-Generator: LibreOffice\n"
-        "X-Accelerator-Marker: ~\n"));
+        "X-Accelerator-Marker: ~\n"
+        "X-Generator: LibreOffice\n"));
     m_bIsInitialized = true;
 }
 
@@ -561,6 +571,28 @@ PoIfstream::~PoIfstream()
     }
 }
 
+void PoIfstream::open( const OString& rFileName, OString& rPoHeader )
+{
+    assert( !isOpen() );
+    m_aInPut.open( rFileName.getStr(), std::ios_base::in );
+
+    // capture header, updating timestamp and generator
+    std::string sTemp;
+    std::getline(m_aInPut,sTemp);
+    while( !sTemp.empty() && !m_aInPut.eof() )
+    {
+        std::getline(m_aInPut,sTemp);
+        OString sLine = OString(sTemp.data(),sTemp.length());
+        if (sLine.startsWith("\"PO-Revision-Date"))
+            rPoHeader += "PO-Revision-Date: " + lcl_GetTime() + "\n";
+        else if (sLine.startsWith("\"X-Generator"))
+            rPoHeader += "X-Generator: LibreOffice\n";
+        else if (sLine.startsWith("\""))
+            rPoHeader += lcl_GenNormString(sLine);
+    }
+    m_bEof = false;
+}
+
 void PoIfstream::open( const OString& rFileName )
 {
     assert( !isOpen() );
diff --git a/l10ntools/source/pocheck.cxx b/l10ntools/source/pocheck.cxx
index 4f7c7686757a..04b01121266d 100644
--- a/l10ntools/source/pocheck.cxx
+++ b/l10ntools/source/pocheck.cxx
@@ -90,7 +90,8 @@ static void checkStyleNames(const OString& aLanguage)
                 "\nSee STR_POOLNUMRULE_*\n\n";
         }
     }
-    aPoInput.open(aPoPath);
+    OString sPoHdrMsg;
+    aPoInput.open(aPoPath, sPoHdrMsg);
     if( !aPoInput.isOpen() )
     {
         std::cerr << "Warning: Cannot open " << aPoPath << std::endl;
@@ -98,7 +99,7 @@ static void checkStyleNames(const OString& aLanguage)
     }
     PoOfstream aPoOutput;
     aPoOutput.open(aPoPath+".new");
-    PoHeader aTmp("sw/inc");
+    PoHeader aTmp("sw/inc", sPoHdrMsg);
     aPoOutput.writeHeader(aTmp);
     bool bAnyError = false;
 


More information about the Libreoffice-commits mailing list