[ooo-build-commit] patches/dev300

Cédric Bosdonnat cbosdo at kemper.freedesktop.org
Wed Jun 17 05:13:20 PDT 2009


 patches/dev300/docx-import-fixes.diff |  207 ++++++++++++++++++++++------------
 1 file changed, 137 insertions(+), 70 deletions(-)

New commits:
commit 28f3aa1e08795d63184abd34e63d51a37f95b664
Author: Cédric Bosdonnat <cedricbosdo at openoffice.org>
Date:   Wed Jun 17 14:10:33 2009 +0200

    Docx sections import: fixed the blank paragraphs
    
    The previous fix for the removal of the blank paragraphs was
    only working for the ones at the end of the document body. Some
    other blank paragraphs had to be removed at the end of sections when
    the paragraph containing the <w:sectPr> was empty.
    
    * patches/dev300/docx-import-fixes.diff:

diff --git a/patches/dev300/docx-import-fixes.diff b/patches/dev300/docx-import-fixes.diff
index e48afa8..6fb5240 100644
--- a/patches/dev300/docx-import-fixes.diff
+++ b/patches/dev300/docx-import-fixes.diff
@@ -1228,7 +1228,7 @@ index fe6139d..fab01f9 100644
  }
  
 diff --git writerfilter/inc/dmapper/DomainMapper.hxx writerfilter/inc/dmapper/DomainMapper.hxx
-index 7d16243..aac251a 100644
+index 7d16243..3f2ad51 100644
 --- writerfilter/inc/dmapper/DomainMapper.hxx
 +++ writerfilter/inc/dmapper/DomainMapper.hxx
 @@ -66,6 +66,7 @@ using namespace std;
@@ -1239,8 +1239,11 @@ index 7d16243..aac251a 100644
  
  // different context types require different sprm handling (e.g. names)
  enum SprmType
-@@ -109,6 +110,9 @@ public:
+@@ -107,8 +108,12 @@ public:
+     virtual void endSectionGroup();
+     virtual void startParagraphGroup();
      virtual void endParagraphGroup();
++    virtual void markLastParagraphInSection();
      virtual void startCharacterGroup();
      virtual void endCharacterGroup();
 +    virtual void startShape( ::com::sun::star::uno::Reference< com::sun::star::drawing::XShape > xShape );
@@ -1249,7 +1252,7 @@ index 7d16243..aac251a 100644
      virtual void text(const sal_uInt8 * data, size_t len);
      virtual void utext(const sal_uInt8 * data, size_t len);
      virtual void props(writerfilter::Reference<Properties>::Pointer_t ref);
-@@ -120,8 +124,8 @@ public:
+@@ -120,8 +125,8 @@ public:
  
      void sprm( Sprm& sprm, ::boost::shared_ptr<PropertyMap> pContext, SprmType = SPRM_DEFAULT );
  
@@ -1260,7 +1263,7 @@ index 7d16243..aac251a 100644
      
      void PushListProperties( ::boost::shared_ptr<PropertyMap> pListProperties );
      void PopListProperties();
-@@ -132,6 +136,7 @@ public:
+@@ -132,6 +137,7 @@ public:
      ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > GetCurrentTextRange();
  
      ::rtl::OUString getOrCreateCharStyle( PropertyValueVector_t& rCharProperties );
@@ -1529,7 +1532,7 @@ index 54169d9..24e9aec 100644
  }
  
 diff --git writerfilter/inc/resourcemodel/WW8ResourceModel.hxx writerfilter/inc/resourcemodel/WW8ResourceModel.hxx
-index 76c08d1..29d176f 100644
+index 76c08d1..d506f38 100644
 --- writerfilter/inc/resourcemodel/WW8ResourceModel.hxx
 +++ writerfilter/inc/resourcemodel/WW8ResourceModel.hxx
 @@ -35,6 +35,7 @@
@@ -1540,7 +1543,16 @@ index 76c08d1..29d176f 100644
  #include <com/sun/star/uno/Any.hxx>
  #include <WriterFilterDllApi.hxx>
  #include <resourcemodel/OutputWithDepth.hxx>
-@@ -220,6 +221,13 @@ public:
+@@ -208,6 +209,8 @@ public:
+        Receives end mark for group with the same paragraph properties.
+      */
+     virtual void endParagraphGroup() = 0;
++    
++    virtual void markLastParagraphInSection( ) { };
+ 
+     /**
+        Receives start mark for group with the same character properties.
+@@ -220,6 +223,13 @@ public:
      virtual void endCharacterGroup() = 0;
  
      /**
@@ -1634,7 +1646,7 @@ index 18196b3..a3bde53 100644
  
      rToFill.Color = nLineColor;
 diff --git writerfilter/source/dmapper/DomainMapper.cxx writerfilter/source/dmapper/DomainMapper.cxx
-index 5758176..65eeec9 100644
+index 5758176..a4b46ac 100644
 --- writerfilter/source/dmapper/DomainMapper.cxx
 +++ writerfilter/source/dmapper/DomainMapper.cxx
 @@ -28,9 +28,12 @@
@@ -1891,10 +1903,18 @@ index 5758176..65eeec9 100644
  #endif
          }
      }
-@@ -4224,19 +4263,36 @@ void DomainMapper::endParagraphGroup()
+@@ -4224,19 +4263,44 @@ void DomainMapper::endParagraphGroup()
  #endif
  }
  
++void DomainMapper::markLastParagraphInSection( )
++{
++#ifdef DEBUG_DOMAINMAPPER
++    dmapper_logger->element( "markLastParagraphInSection" );
++#endif
++    m_pImpl->SetIsLastParagraphInSection( true );
++}
++
 +void DomainMapper::startShape( uno::Reference< drawing::XShape > xShape )
 +{
 +    m_pImpl->PushShapeContext( xShape );
@@ -1930,7 +1950,7 @@ index 5758176..65eeec9 100644
  }
  /*-- 28.01.2008 14:52:33---------------------------------------------------
  
-@@ -4483,10 +4539,13 @@ void DomainMapper::table(Id name, writerfilter::Reference<Table>::Pointer_t ref)
+@@ -4483,10 +4547,13 @@ void DomainMapper::table(Id name, writerfilter::Reference<Table>::Pointer_t ref)
          break;
      case NS_ooxml::LN_NUMBERING:
      case NS_rtf::LN_LISTTABLE:
@@ -1947,7 +1967,7 @@ index 5758176..65eeec9 100644
          break;
      case NS_rtf::LN_LFOTABLE:
          /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
-@@ -4496,6 +4555,9 @@ void DomainMapper::table(Id name, writerfilter::Reference<Table>::Pointer_t ref)
+@@ -4496,6 +4563,9 @@ void DomainMapper::table(Id name, writerfilter::Reference<Table>::Pointer_t ref)
      case NS_ooxml::LN_THEMETABLE:
          ref->resolve ( *m_pImpl->GetThemeTable() );
      break;
@@ -1957,7 +1977,7 @@ index 5758176..65eeec9 100644
      default:
          OSL_ENSURE( false, "which table is to be filled here?");
      }
-@@ -4818,5 +4880,10 @@ uno::Reference< text::XTextRange > DomainMapper::GetCurrentTextRange()
+@@ -4818,5 +4888,10 @@ uno::Reference< text::XTextRange > DomainMapper::GetCurrentTextRange()
      return pStyleSheets->getOrCreateCharStyle( rCharProperties );
  }
  
@@ -3084,7 +3104,7 @@ index c183252..d301acf 100644
  
  }}
 diff --git writerfilter/source/dmapper/DomainMapper_Impl.cxx writerfilter/source/dmapper/DomainMapper_Impl.cxx
-index 051a2b8..02d2c90 100644
+index 051a2b8..77ed1aa 100644
 --- writerfilter/source/dmapper/DomainMapper_Impl.cxx
 +++ writerfilter/source/dmapper/DomainMapper_Impl.cxx
 @@ -36,6 +36,8 @@
@@ -3131,41 +3151,66 @@ index 051a2b8..02d2c90 100644
          m_TableManager( eDocumentType == DOCUMENT_OOXML ),
          m_nCurrentTabStopIndex( 0 ),
          m_sCurrentParaStyleId(),
-@@ -401,7 +411,7 @@ DomainMapper_Impl::DomainMapper_Impl(
+@@ -401,7 +411,9 @@ DomainMapper_Impl::DomainMapper_Impl(
          m_bLineNumberingSet( false ),
          m_bIsInFootnoteProperties( true ),
          m_bIsCustomFtnMark( false ),
 -        n_CurrentRedlineToken( ooxml::OOXML_mod )
-+        m_bIsParaChange( false )
++        m_bIsParaChange( false ),
++        m_bParaChanged( false ),
++        m_bIsLastParaInSection( false )
  {
      GetBodyText();
      uno::Reference< text::XTextAppend > xBodyTextAppend = uno::Reference< text::XTextAppend >( m_xBodyText, uno::UNO_QUERY );
-@@ -524,6 +534,24 @@ void DomainMapper_Impl::PushListProperties(PropertyMapPtr pListProperties)
- void    DomainMapper_Impl::PopProperties(ContextType eId)
+@@ -420,8 +432,10 @@ DomainMapper_Impl::DomainMapper_Impl(
+   -----------------------------------------------------------------------*/
+ DomainMapper_Impl::~DomainMapper_Impl()
  {
-     OSL_ENSURE(!m_aPropertyStacks[eId].empty(), "section stack already empty");
-+    //section always have an empty paragraph at the end
-+    //this has to be removed
-+    if ( eId == CONTEXT_SECTION )
++    RemoveLastParagraph( ); 
+     m_TableManager.endLevel();
+ }
++
+ /*-------------------------------------------------------------------------
+ 
+   -----------------------------------------------------------------------*/
+@@ -474,6 +488,28 @@ void DomainMapper_Impl::SetDocumentSettingsProperty( const ::rtl::OUString& rPro
+         }
+     }
+ }
++
++void DomainMapper_Impl::RemoveLastParagraph( )
++{
++    uno::Reference< text::XTextAppend >  xTextAppend = m_aTextAppendStack.top().xTextAppend;
++    try
 +    {
-+        uno::Reference< text::XTextAppend >  xTextAppend = m_aTextAppendStack.top().xTextAppend;
-+        try
-+        {
-+            uno::Reference< text::XTextCursor > xCursor = xTextAppend->createTextCursor();
-+            xCursor->gotoEnd(false);
-+            xCursor->goLeft( 1, true );
-+            xCursor->setString(::rtl::OUString());
-+        }
-+        catch( const uno::Exception& rEx)
-+        {
-+            (void)rEx;
-+        }
++        uno::Reference< text::XTextCursor > xCursor = xTextAppend->createTextCursor();
++        xCursor->gotoEnd(false);
++        xCursor->goLeft( 1, true );
++        xCursor->setString(::rtl::OUString());
++    }
++    catch( const uno::Exception& rEx)
++    {
++        (void)rEx;
 +    }
++}
++    
++void DomainMapper_Impl::SetIsLastParagraphInSection( bool bIsLast )
++{
++    m_bIsLastParaInSection = bIsLast;
++}
++
+ /*-------------------------------------------------------------------------
+ 
+   -----------------------------------------------------------------------*/
+@@ -524,6 +560,7 @@ void DomainMapper_Impl::PushListProperties(PropertyMapPtr pListProperties)
+ void    DomainMapper_Impl::PopProperties(ContextType eId)
+ {
+     OSL_ENSURE(!m_aPropertyStacks[eId].empty(), "section stack already empty");
 +
      m_aPropertyStacks[eId].pop();
      m_aContextStack.pop();
      if(!m_aContextStack.empty() && !m_aPropertyStacks[m_aContextStack.top()].empty())
-@@ -685,13 +713,13 @@ uno::Sequence< style::TabStop > DomainMapper_Impl::GetCurrentTabStopAndClear()
+@@ -685,13 +722,13 @@ uno::Sequence< style::TabStop > DomainMapper_Impl::GetCurrentTabStopAndClear()
    -----------------------------------------------------------------------*/
  uno::Any DomainMapper_Impl::GetPropertyFromStyleSheet(PropertyIds eId)
  {
@@ -3181,7 +3226,7 @@ index 051a2b8..02d2c90 100644
      {
          //is there a tab stop set?
          if(pEntry->pProperties)
-@@ -725,10 +753,10 @@ void DomainMapper_Impl::deferBreak( BreakType deferredBreakType)
+@@ -725,10 +762,10 @@ void DomainMapper_Impl::deferBreak( BreakType deferredBreakType)
      switch (deferredBreakType)
      {
      case COLUMN_BREAK:
@@ -3194,7 +3239,7 @@ index 051a2b8..02d2c90 100644
          break;
      default:
          return;
-@@ -831,11 +859,15 @@ void lcl_AddRangeAndStyle(
+@@ -831,11 +868,15 @@ void lcl_AddRangeAndStyle(
  /*-------------------------------------------------------------------------
  
    -----------------------------------------------------------------------*/
@@ -3212,7 +3257,7 @@ index 051a2b8..02d2c90 100644
      ParagraphPropertyMap* pParaContext = dynamic_cast< ParagraphPropertyMap* >( pPropertyMap.get() );
      TextAppendContext& rAppendContext = m_aTextAppendStack.top();
      uno::Reference< text::XTextAppend >  xTextAppend = rAppendContext.xTextAppend;
-@@ -903,11 +935,11 @@ void DomainMapper_Impl::finishParagraph( PropertyMapPtr pPropertyMap )
+@@ -903,11 +944,11 @@ void DomainMapper_Impl::finishParagraph( PropertyMapPtr pPropertyMap )
                      try
                         {
                              //
@@ -3226,14 +3271,13 @@ index 051a2b8..02d2c90 100644
                              {
                                  const ParagraphProperties* pStyleProperties = dynamic_cast<const ParagraphProperties*>( pParaStyle->pProperties.get() );
                                  beans::PropertyValue* pFrameProperties = aFrameProperties.getArray();
-@@ -1045,14 +1077,34 @@ void DomainMapper_Impl::finishParagraph( PropertyMapPtr pPropertyMap )
+@@ -1045,14 +1086,43 @@ void DomainMapper_Impl::finishParagraph( PropertyMapPtr pPropertyMap )
                  uno::Reference< text::XTextRange > xTextRange =
                      xTextAppend->finishParagraph( aProperties );
                  m_TableManager.handle(xTextRange);
 -            }
 -            else
 -            {
--
 +            
 +                // Set the anchor of the objects to the created paragraph
 +                while ( m_aAnchoredStack.size( ) > 0 && !m_bIsInShape )
@@ -3259,6 +3303,15 @@ index 051a2b8..02d2c90 100644
 +                xCur->goLeft( 1 , true );
 +                uno::Reference< text::XTextRange > xParaEnd( xCur, uno::UNO_QUERY );
 +                CheckParaRedline( xParaEnd );
++
++                // Remove the last empty section paragraph if needed
++                if ( m_bIsLastParaInSection && !m_bParaChanged )
++                {
++                    RemoveLastParagraph( );
++                    m_bIsLastParaInSection = false;
++                }
+ 
++                m_bParaChanged = false;
              }
              if( !bKeepLastParagraphProperties )
                  rAppendContext.pLastParagraphProperties = pToBeSavedProperties;
@@ -3266,7 +3319,7 @@ index 051a2b8..02d2c90 100644
          }
          catch(const lang::IllegalArgumentException& rIllegal)
          {
-@@ -1062,7 +1114,7 @@ void DomainMapper_Impl::finishParagraph( PropertyMapPtr pPropertyMap )
+@@ -1062,7 +1132,7 @@ void DomainMapper_Impl::finishParagraph( PropertyMapPtr pPropertyMap )
          catch(const uno::Exception& rEx)
          {
              (void)rEx;
@@ -3275,7 +3328,7 @@ index 051a2b8..02d2c90 100644
          }
      }
  }
-@@ -1099,35 +1151,7 @@ void DomainMapper_Impl::appendTextPortion( const ::rtl::OUString& rString, Prope
+@@ -1099,35 +1169,9 @@ void DomainMapper_Impl::appendTextPortion( const ::rtl::OUString& rString, Prope
              uno::Reference< text::XTextRange > xTextRange =
                  xTextAppend->appendTextPortion
                  (rString, pPropertyMap->GetPropertyValues());
@@ -3299,7 +3352,8 @@ index 051a2b8..02d2c90 100644
 -                    pRedlineProperties[1].Name = rPropNameSupplier.GetName( PROP_REDLINE_DATE_TIME );
 -                    pRedlineProperties[1].Value <<= lcl_DateStringToDateTime( m_CurrentRedlineDate );
 -                    xRedline->makeRedline( sType, aRedlineProperties);
--
++            CheckRedline( xTextRange );
+ 
 -                }
 -                catch( const uno::Exception& rEx )
 -                {
@@ -3308,11 +3362,11 @@ index 051a2b8..02d2c90 100644
 -                }
 -                ResetRedlineProperties();
 -            }
-+            CheckRedline( xTextRange );
++            m_bParaChanged = true;
  
              //m_TableManager.handle(xTextRange);
          }
-@@ -1167,6 +1191,7 @@ void DomainMapper_Impl::appendTextContent(
+@@ -1167,6 +1211,7 @@ void DomainMapper_Impl::appendTextContent(
          }
      }
  }
@@ -3320,12 +3374,10 @@ index 051a2b8..02d2c90 100644
  /*-- 24.04.2008 08:38:07---------------------------------------------------
  
    -----------------------------------------------------------------------*/
-@@ -1317,20 +1342,6 @@ void DomainMapper_Impl::PushPageFooter(SectionPropertyMap::PageType eType)
-   -----------------------------------------------------------------------*/
- void DomainMapper_Impl::PopPageHeaderFooter()
+@@ -1319,18 +1364,7 @@ void DomainMapper_Impl::PopPageHeaderFooter()
  {
--    //header and footer always have an empty paragraph at the end
--    //this has to be removed
+     //header and footer always have an empty paragraph at the end
+     //this has to be removed
 -    uno::Reference< text::XTextAppend >  xTextAppend = m_aTextAppendStack.top().xTextAppend;
 -    try
 -    {
@@ -3338,10 +3390,11 @@ index 051a2b8..02d2c90 100644
 -    {
 -        (void)rEx;
 -    }
++    RemoveLastParagraph( ); 
      m_aTextAppendStack.pop();
  }
  /*-- 24.05.2007 14:22:28---------------------------------------------------
-@@ -1351,31 +1362,99 @@ void DomainMapper_Impl::PushFootOrEndnote( bool bIsFootnote )
+@@ -1351,31 +1385,99 @@ void DomainMapper_Impl::PushFootOrEndnote( bool bIsFootnote )
          {
              xFootnote->setLabel( ::rtl::OUString( pTopContext->GetFootnoteSymbol() ) );
          }
@@ -3458,7 +3511,7 @@ index 051a2b8..02d2c90 100644
  }
  
  /*-- 22.12.2008 13:45:15---------------------------------------------------
-@@ -1416,57 +1495,58 @@ void DomainMapper_Impl::PopAnnotation()
+@@ -1416,57 +1518,58 @@ void DomainMapper_Impl::PopAnnotation()
      m_xAnnotationField.clear();
  
  }
@@ -3555,7 +3608,7 @@ index 051a2b8..02d2c90 100644
  }
  /*-- 12.09.2006 08:07:55---------------------------------------------------
  
-@@ -2952,6 +3032,7 @@ void DomainMapper_Impl::CloseFieldCommand()
+@@ -2952,6 +3055,7 @@ void DomainMapper_Impl::CloseFieldCommand()
                          bool bHyperlinks = false;
                          bool bFromOutline = false;
                          bool bFromEntries = false;
@@ -3563,7 +3616,7 @@ index 051a2b8..02d2c90 100644
                          ::rtl::OUString sTemplate;
                          ::rtl::OUString sChapterNoSeparator;
      //                  \a Builds a table of figures but does not include the captions's label and number
-@@ -3001,6 +3082,10 @@ void DomainMapper_Impl::CloseFieldCommand()
+@@ -3001,6 +3105,10 @@ void DomainMapper_Impl::CloseFieldCommand()
                          if( lcl_FindInCommand( pContext->GetCommand(), 'o', sValue ))
                          {
                              bFromOutline = true;
@@ -3574,7 +3627,7 @@ index 051a2b8..02d2c90 100644
                          }
      //                  \p Defines the separator between the table entry and its page number
                          if( lcl_FindInCommand( pContext->GetCommand(), 'p', sValue ))
-@@ -3048,6 +3133,7 @@ void DomainMapper_Impl::CloseFieldCommand()
+@@ -3048,6 +3156,7 @@ void DomainMapper_Impl::CloseFieldCommand()
                          xTOC->setPropertyValue(rPropNameSupplier.GetName( PROP_TITLE ), uno::makeAny(::rtl::OUString()));
                          if( !bTableOfFigures )
                          {
@@ -3582,7 +3635,7 @@ index 051a2b8..02d2c90 100644
                              xTOC->setPropertyValue( rPropNameSupplier.GetName( PROP_CREATE_FROM_OUTLINE ), uno::makeAny( bFromOutline ));
                              xTOC->setPropertyValue( rPropNameSupplier.GetName( PROP_CREATE_FROM_MARKS ), uno::makeAny( bFromEntries ));
                              if( sTemplate.getLength() )
-@@ -3531,14 +3617,98 @@ bool DomainMapper_Impl::ExecuteFrameConversion()
+@@ -3531,14 +3640,98 @@ bool DomainMapper_Impl::ExecuteFrameConversion()
      }
      return bRet;
  }
@@ -3685,7 +3738,7 @@ index 051a2b8..02d2c90 100644
  
  }}
 diff --git writerfilter/source/dmapper/DomainMapper_Impl.hxx writerfilter/source/dmapper/DomainMapper_Impl.hxx
-index f4dfaf0..b120a96 100644
+index f4dfaf0..52a53b4 100644
 --- writerfilter/source/dmapper/DomainMapper_Impl.hxx
 +++ writerfilter/source/dmapper/DomainMapper_Impl.hxx
 @@ -34,6 +34,7 @@
@@ -3754,7 +3807,7 @@ index f4dfaf0..b120a96 100644
  
      PropertyMapPtr                  m_pTopContext;
  
-@@ -311,14 +329,11 @@ private:
+@@ -311,14 +329,14 @@ private:
      ::com::sun::star::uno::Reference< text::XTextRange >      m_xFrameStartRange;
      ::com::sun::star::uno::Reference< text::XTextRange >      m_xFrameEndRange;
  
@@ -3767,13 +3820,16 @@ index f4dfaf0..b120a96 100644
 +    std::vector< RedlineParamsPtr > m_aRedlines;
 +    RedlineParamsPtr                m_pParaRedline;
 +    bool                            m_bIsParaChange;
++
++    bool                            m_bParaChanged;
++    bool                            m_bIsLastParaInSection;
  
 -    //shape import
 -    ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >      m_xTemporaryShape;
  
      //annotation import
      uno::Reference< beans::XPropertySet >                                      m_xAnnotationField;
-@@ -357,6 +372,15 @@ public:
+@@ -357,6 +375,18 @@ public:
      }
      void SetDocumentSettingsProperty( const ::rtl::OUString& rPropName, const uno::Any& rValue );
  
@@ -3786,10 +3842,13 @@ index f4dfaf0..b120a96 100644
 +    void StartParaChange( );
 +    void EndParaChange( );
 +
++    void RemoveLastParagraph( );
++    void SetIsLastParagraphInSection( bool bIsLast );
++
      void deferBreak( BreakType deferredBreakType );
      bool isBreakDeferred( BreakType deferredBreakType );
      void clearDeferredBreaks();
-@@ -412,6 +436,13 @@ public:
+@@ -412,6 +442,13 @@ public:
          return m_pThemeTable;
      }
  
@@ -3803,7 +3862,7 @@ index f4dfaf0..b120a96 100644
      GraphicImportPtr GetGraphicImport( GraphicImportType eGraphicImportType );
      void            ResetGraphicImport();
      // this method deletes the current m_pGraphicImport after import
-@@ -432,10 +463,8 @@ public:
+@@ -432,10 +469,8 @@ public:
      void        SetAnyTableImport( bool bSet ) { m_bInAnyTableImport = bSet;}
      bool        IsAnyTableImport()const { return m_bInAnyTableImport;}
  
@@ -3815,7 +3874,7 @@ index f4dfaf0..b120a96 100644
  
      void PushPageHeader(SectionPropertyMap::PageType eType);
      void PushPageFooter(SectionPropertyMap::PageType eType);
-@@ -495,19 +524,17 @@ public:
+@@ -495,19 +530,17 @@ public:
          );
      bool ExecuteFrameConversion();
  
@@ -7012,10 +7071,18 @@ index 012b45d..5f42164 100644
  # --- Targets ----------------------------------
  
 diff --git writerfilter/source/ooxml/OOXMLFastContextHandler.cxx writerfilter/source/ooxml/OOXMLFastContextHandler.cxx
-index c6e81d5..86692dd 100644
+index c6e81d5..5e168cd 100644
 --- writerfilter/source/ooxml/OOXMLFastContextHandler.cxx
 +++ writerfilter/source/ooxml/OOXMLFastContextHandler.cxx
-@@ -1869,6 +1869,16 @@ void OOXMLFastContextHandlerTextTable::lcl_startFastElement
+@@ -752,6 +752,7 @@ void OOXMLFastContextHandler::setLastParagraphInSection()
+ #endif
+ 
+     mpParserState->setLastParagraphInSection(true);
++    mpStream->markLastParagraphInSection( );
+ }
+ 
+ void OOXMLFastContextHandler::newProperty
+@@ -1869,6 +1870,16 @@ void OOXMLFastContextHandlerTextTable::lcl_startFastElement
      throw (uno::RuntimeException, xml::sax::SAXException)
  {
      mnTableDepth++;
@@ -7032,7 +7099,7 @@ index c6e81d5..86692dd 100644
  
      startAction(Element);
  }
-@@ -1954,7 +1964,7 @@ void SAL_CALL ShapesNoAdd::remove(const uno::Reference< drawing::XShape > & xSha
+@@ -1954,7 +1965,7 @@ void SAL_CALL ShapesNoAdd::remove(const uno::Reference< drawing::XShape > & xSha
  
  OOXMLFastContextHandlerShape::OOXMLFastContextHandlerShape
  (OOXMLFastContextHandler * pContext)
@@ -7041,7 +7108,7 @@ index c6e81d5..86692dd 100644
  {
      uno::Reference<uno::XComponentContext> xContext(getComponentContext());
  
-@@ -2010,7 +2020,9 @@ void OOXMLFastContextHandlerShape::lcl_startFastElement
+@@ -2010,7 +2021,9 @@ void OOXMLFastContextHandlerShape::lcl_startFastElement
      startAction(Element);
  
      if (mrShapeContext.is())
@@ -7051,7 +7118,7 @@ index c6e81d5..86692dd 100644
  }
  
  void SAL_CALL OOXMLFastContextHandlerShape::startUnknownElement
-@@ -2031,28 +2043,43 @@ void OOXMLFastContextHandlerShape::setToken(Token_t nToken)
+@@ -2031,28 +2044,43 @@ void OOXMLFastContextHandlerShape::setToken(Token_t nToken)
          mrShapeContext->setStartToken(nToken);
  }
  
@@ -7105,7 +7172,7 @@ index c6e81d5..86692dd 100644
  }
  
  void SAL_CALL OOXMLFastContextHandlerShape::endUnknownElement
-@@ -2093,6 +2120,7 @@ OOXMLFastContextHandlerShape::lcl_createFastChildContext
+@@ -2093,6 +2121,7 @@ OOXMLFastContextHandlerShape::lcl_createFastChildContext
                  pWrapper->addNamespace(NS_wordprocessingml);
                  pWrapper->addNamespace(NS_vml_wordprocessingDrawing);
                  pWrapper->addNamespace(NS_office);
@@ -7113,7 +7180,7 @@ index c6e81d5..86692dd 100644
  
                  xContextHandler.set(pWrapper);
              }
-@@ -2100,6 +2128,7 @@ OOXMLFastContextHandlerShape::lcl_createFastChildContext
+@@ -2100,6 +2129,7 @@ OOXMLFastContextHandlerShape::lcl_createFastChildContext
                  xContextHandler.set(this);
              break;
      }
@@ -7121,7 +7188,7 @@ index c6e81d5..86692dd 100644
  
      return xContextHandler;
  }
-@@ -2209,6 +2238,11 @@ void OOXMLFastContextHandlerWrapper::addNamespace(const Id & nId)
+@@ -2209,6 +2239,11 @@ void OOXMLFastContextHandlerWrapper::addNamespace(const Id & nId)
      mMyNamespaces.insert(nId);
  }
  
@@ -7133,7 +7200,7 @@ index c6e81d5..86692dd 100644
  void OOXMLFastContextHandlerWrapper::lcl_startFastElement
  (Token_t Element,
   const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
-@@ -2253,7 +2287,9 @@ OOXMLFastContextHandlerWrapper::lcl_createFastChildContext
+@@ -2253,7 +2288,9 @@ OOXMLFastContextHandlerWrapper::lcl_createFastChildContext
      debug_logger->endElement("Wrapper-createChildContext");
  #endif
  
@@ -7144,7 +7211,7 @@ index c6e81d5..86692dd 100644
          xResult.set(createFromStart(Element, Attribs));
      else if (mxContext.is())
      {
-@@ -2266,6 +2302,12 @@ OOXMLFastContextHandlerWrapper::lcl_createFastChildContext
+@@ -2266,6 +2303,12 @@ OOXMLFastContextHandlerWrapper::lcl_createFastChildContext
      }
      else
          xResult.set(this);


More information about the ooo-build-commit mailing list