editeng/source/editeng/eertfpar.cxx |    1 
 include/svtools/rtfkeywd.hxx        |    1 
 include/svtools/rtftoken.h          |    1 
 svtools/source/svrtf/rtfkeywd.cxx   |    1 
 sw/source/core/doc/docfmt.cxx       |    6 +---
 sw/source/filter/ww8/rtfexport.cxx  |   48 ------------------------------------
 sw/source/filter/ww8/rtfexport.hxx  |    2 -
 7 files changed, 2 insertions(+), 58 deletions(-)

New commits:
commit b6a7d8201bdb6c28e18472326b2328507a6b1e4e
Author:     Vasily Melenchuk <vasily.melenc...@cib.de>
AuthorDate: Mon Nov 6 13:05:47 2023 +0300
Commit:     Miklos Vajna <vmik...@collabora.com>
CommitDate: Tue Nov 7 14:59:46 2023 +0100

    tdf#158083: RTF: drop export for \pgdsctbl
    
    This table is not standard extension to RTF format. It is not
    described in RTF specification and even is not used by Writer
    on import these days.
    
    Change-Id: I52f27dfd30877d461ad535b7847f40dd4c6f4ea5
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158986
    Tested-by: Jenkins
    Tested-by: Gabor Kelemen <kelem...@ubuntu.com>
    Reviewed-by: Gabor Kelemen <kelem...@ubuntu.com>
    Reviewed-by: Miklos Vajna <vmik...@collabora.com>

diff --git a/editeng/source/editeng/eertfpar.cxx 
b/editeng/source/editeng/eertfpar.cxx
index a5737b4c923a..948216f33dbe 100644
--- a/editeng/source/editeng/eertfpar.cxx
+++ b/editeng/source/editeng/eertfpar.cxx
@@ -203,7 +203,6 @@ void EditRTFParser::NextToken( int nToken )
             SkipGroup();
         }
         break;
-        case RTF_PGDSCTBL: // #i29453# ignore \*\pgdsctbl destination
         case RTF_LISTTEXT:
         {
             SkipGroup();
diff --git a/include/svtools/rtfkeywd.hxx b/include/svtools/rtfkeywd.hxx
index fa6346922437..44bbd12a4454 100644
--- a/include/svtools/rtfkeywd.hxx
+++ b/include/svtools/rtfkeywd.hxx
@@ -1110,7 +1110,6 @@
 #define OOO_STRING_SVTOOLS_RTF_SHDWSTYLE "\\shdwstyle"
 #define OOO_STRING_SVTOOLS_RTF_SHDWCOL "\\shdwcol"
 #define OOO_STRING_SVTOOLS_RTF_SHDWFCOL "\\shdwfcol"
-#define OOO_STRING_SVTOOLS_RTF_PGDSCTBL "\\pgdsctbl"
 #define OOO_STRING_SVTOOLS_RTF_PGDSC "\\pgdsc"
 #define OOO_STRING_SVTOOLS_RTF_PGDSCUSE "\\pgdscuse"
 #define OOO_STRING_SVTOOLS_RTF_PGDSCNXT "\\pgdscnxt"
diff --git a/include/svtools/rtftoken.h b/include/svtools/rtftoken.h
index f530c8e5ba33..ab637a4e1fb8 100644
--- a/include/svtools/rtftoken.h
+++ b/include/svtools/rtftoken.h
@@ -1234,7 +1234,6 @@ enum RTF_TOKEN_IDS {
     RTF_SHDW_STYLE,
     RTF_SHDW_COL,
     RTF_SHDW_FCOL,
-    RTF_PGDSCTBL,
     RTF_PGDSC,
     RTF_PGDSCUSE,
     RTF_PGDSCNXT,
diff --git a/svtools/source/svrtf/rtfkeywd.cxx 
b/svtools/source/svrtf/rtfkeywd.cxx
index e805b3cd9359..91f2669ea98d 100644
--- a/svtools/source/svrtf/rtfkeywd.cxx
+++ b/svtools/source/svrtf/rtfkeywd.cxx
@@ -1120,7 +1120,6 @@ static RTF_TokenEntry aRTFTokenTab[] = {
 
         {std::u16string_view(u"" OOO_STRING_SVTOOLS_RTF_FLYINPARA),     
RTF_FLY_INPARA},
 
-        {std::u16string_view(u"" OOO_STRING_SVTOOLS_RTF_PGDSCTBL),      
RTF_PGDSCTBL},
         {std::u16string_view(u"" OOO_STRING_SVTOOLS_RTF_PGDSC),         
RTF_PGDSC},
         {std::u16string_view(u"" OOO_STRING_SVTOOLS_RTF_PGDSCUSE),      
RTF_PGDSCUSE},
         {std::u16string_view(u"" OOO_STRING_SVTOOLS_RTF_PGDSCNXT),      
RTF_PGDSCNXT},
diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index edacd4455b70..c7deb91478b9 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -1562,12 +1562,10 @@ void SwDoc::ReplaceStyles( const SwDoc& rSource, bool 
bIncludePageStyles )
                 &SwDoc::MakeTextFormatColl_, *mpDfltTextFormatColl );
 
     //To-Do:
-    //  a) in rtf export don't export our hideous pgdsctbl
-    //  extension to rtf anymore
-    //  b) in sd rtf import (View::InsertData) don't use
+    //  a) in sd rtf import (View::InsertData) don't use
     //  a super-fragile test for mere presence of \trowd to
     //  indicate import of rtf into a table
-    //  c) then drop use of bIncludePageStyles
+    //  b) then drop use of bIncludePageStyles
     if (bIncludePageStyles)
     {
         // and now the page templates
diff --git a/sw/source/filter/ww8/rtfexport.cxx 
b/sw/source/filter/ww8/rtfexport.cxx
index 278e9c271e0e..616533b4dd5a 100644
--- a/sw/source/filter/ww8/rtfexport.cxx
+++ b/sw/source/filter/ww8/rtfexport.cxx
@@ -729,51 +729,6 @@ void RtfExport::WriteDocVars()
     }
 }
 
-void RtfExport::WritePageDescTable()
-{
-    // Write page descriptions (page styles)
-    std::size_t nSize = m_rDoc.GetPageDescCnt();
-    if (!nSize)
-        return;
-
-    Strm().WriteOString(SAL_NEWLINE_STRING);
-    m_bOutPageDescs = true;
-    Strm()
-        .WriteChar('{')
-        .WriteOString(OOO_STRING_SVTOOLS_RTF_IGNORE)
-        .WriteOString(OOO_STRING_SVTOOLS_RTF_PGDSCTBL);
-    for (std::size_t n = 0; n < nSize; ++n)
-    {
-        const SwPageDesc& rPageDesc = m_rDoc.GetPageDesc(n);
-
-        Strm()
-            .WriteOString(SAL_NEWLINE_STRING)
-            .WriteChar('{')
-            .WriteOString(OOO_STRING_SVTOOLS_RTF_PGDSC);
-        
Strm().WriteNumberAsString(n).WriteOString(OOO_STRING_SVTOOLS_RTF_PGDSCUSE);
-        
Strm().WriteNumberAsString(static_cast<sal_uLong>(rPageDesc.ReadUseOn()));
-
-        OutPageDescription(rPageDesc, false);
-
-        // search for the next page description
-        std::size_t i = nSize;
-        while (i)
-            if (rPageDesc.GetFollow() == &m_rDoc.GetPageDesc(--i))
-                break;
-        Strm().WriteOString(OOO_STRING_SVTOOLS_RTF_PGDSCNXT);
-        Strm().WriteNumberAsString(i).WriteChar(' ');
-        Strm()
-            .WriteOString(msfilter::rtfutil::OutString(rPageDesc.GetName(), 
m_eDefaultEncoding))
-            .WriteOString(";}");
-    }
-    Strm().WriteChar('}').WriteOString(SAL_NEWLINE_STRING);
-    m_bOutPageDescs = false;
-
-    // reset table infos, otherwise the depth of the cells will be incorrect,
-    // in case the page style (header or footer) had tables
-    m_pTableInfo = std::make_shared<ww8::WW8TableInfo>();
-}
-
 ErrCode RtfExport::ExportDocument_Impl()
 {
     // Make the header
@@ -838,9 +793,6 @@ ErrCode RtfExport::ExportDocument_Impl()
     // Init sections
     m_pSections = std::make_unique<MSWordSections>(*this);
 
-    // Page description
-    WritePageDescTable();
-
     // Enable form protection by default if needed, as there is no switch to
     // enable it on a per-section basis. OTOH don't always enable it as it
     // breaks moving of drawings - so write it only in case there is really a
diff --git a/sw/source/filter/ww8/rtfexport.hxx 
b/sw/source/filter/ww8/rtfexport.hxx
index 6098ad912e66..11f3f0471f23 100644
--- a/sw/source/filter/ww8/rtfexport.hxx
+++ b/sw/source/filter/ww8/rtfexport.hxx
@@ -216,8 +216,6 @@ private:
     void WriteUserProps();
     /// Writes document variables
     void WriteDocVars();
-    /// Writes the writer-specific \pgdsctbl group.
-    void WritePageDescTable();
     /// This is necessary to have the numbering table ready before the main 
text is being processed.
     void BuildNumbering();
     void WriteHeaderFooter(const SfxPoolItem& rItem, bool bHeader);

Reply via email to