[ooo-build-commit] .: patches/dev300 patches/vba

Miklos Vajna vmiklos at kemper.freedesktop.org
Fri Aug 6 05:35:38 PDT 2010


 patches/dev300/apply                   |    7 
 patches/dev300/cws-vmiklos01.diff      |  881 ++++++++++++++++-----------------
 patches/dev300/docx-export-enable.diff |   24 
 patches/dev300/docx-fixes02.diff       |  125 +++-
 patches/vba/cws-vbasupportdev300.diff  |   14 
 5 files changed, 557 insertions(+), 494 deletions(-)

New commits:
commit beffdb39cbb915d3922ae9055f296f3f79d123bb
Author: Miklos Vajna <vmiklos at frugalware.org>
Date:   Fri Aug 6 14:28:44 2010 +0200

    Apply cws-vmiklos01.diff early so that it's not ported to ooo-build
    
    As suggested by Kendy: Previously cws-vmiklos01.diff was applied later
    and it was changed (vs the upstream cws) to build with the changed
    AttributeOutputBase class. Change this and just apply the patch early,
    then change RtfAttributeOutput in docx-fixes02.diff along with
    WW8AttributeOutput.
    
    * patches/dev300/apply: Move up cws-vmiklos01.diff.
    * patches/dev300/cws-vmiklos01.diff: Re-extracted from CWS.
    * patches/dev300/docx-export-enable.diff: Update to apply.
    * patches/dev300/docx-fixes02.diff: Update to apply.
    * patches/vba/cws-vbasupportdev300.diff: Update to apply.

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 85280f6..a4dc8ef 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -188,6 +188,9 @@ cws-koheichart02-xmloff.diff, kohei
 cws-koheicopyborder-sc.diff,  kohei
 cws-koheicopyborder-svx.diff, kohei
 
+# vmiklos01 cws (gsoc, rewrite rtf filter)
+cws-vmiklos01.diff, vmiklos
+
 [ LinuxOnly ]
 # add accelerator to the OK and Cancel buttons.
 ok-cancel-btn-add-accel.diff, kohei
@@ -3583,10 +3586,6 @@ border-types-dotted-dashed.diff, fate#307731, fate 307730
 #FIXME: Incomplete, not to be included in 3.2.1
 #border-types-more.diff, fate#309127
 
-[ CWSBackports ]
-# vmiklos01 cws (gsoc, rewrite rtf filter)
-cws-vmiklos01.diff, vmiklos
-
 [ FSFhuWin32Only ]
 SectionOwner => timar
 
diff --git a/patches/dev300/cws-vmiklos01.diff b/patches/dev300/cws-vmiklos01.diff
index 453c1b6..c58ac3e 100644
--- a/patches/dev300/cws-vmiklos01.diff
+++ b/patches/dev300/cws-vmiklos01.diff
@@ -1,17 +1,6 @@
---- filter/source/config/fragments/filters/Rich_Text_Format.xcu
-+++ filter/source/config/fragments/filters/Rich_Text_Format.xcu
-@@ -1,7 +1,7 @@
-     <node oor:name="Rich Text Format" oor:op="replace">
--        <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN PREFERRED</value></prop>
-+        <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER PREFERRED</value></prop>
-         <prop oor:name="UIComponent"/>
--        <prop oor:name="FilterService"/>
-+	<prop oor:name="FilterService"><value>com.sun.star.comp.Writer.RtfFilter</value></prop>
-         <prop oor:name="UserData"><value>RTF</value></prop>
-         <prop oor:name="UIName">
-             <value xml:lang="x-default">Rich Text Format</value>
---- svtools/inc/rtfkeywd.hxx
-+++ svtools/inc/rtfkeywd.hxx
+unchanged:
+--- svtools/inc/rtfkeywd.hxx	Wed Jul 21 17:35:19 2010 +0200
++++ svtools/inc/rtfkeywd.hxx	Thu Jul 29 20:08:54 2010 +0200
 @@ -39,6 +39,7 @@
  #define OOO_STRING_SVTOOLS_RTF_ALT "\\alt"
  #define OOO_STRING_SVTOOLS_RTF_ANNOTATION "\\annotation"
@@ -20,7 +9,7 @@
  #define OOO_STRING_SVTOOLS_RTF_ATNID "\\atnid"
  #define OOO_STRING_SVTOOLS_RTF_AUTHOR "\\author"
  #define OOO_STRING_SVTOOLS_RTF_B "\\b"
-@@ -978,12 +979,15 @@
+@@ -976,12 +977,15 @@
  #define OOO_STRING_SVTOOLS_RTF_SHPBXCOLUMN "\\shpbxcolumn"
  #define OOO_STRING_SVTOOLS_RTF_SHPBXMARGIN "\\shpbxmargin"
  #define OOO_STRING_SVTOOLS_RTF_SHPBXPAGE "\\shpbxpage"
@@ -36,7 +25,7 @@
  #define OOO_STRING_SVTOOLS_RTF_SHPLEFT "\\shpleft"
  #define OOO_STRING_SVTOOLS_RTF_SHPLID "\\shplid"
  #define OOO_STRING_SVTOOLS_RTF_SHPLOCKANCHOR "\\shplockanchor"
-@@ -995,6 +999,7 @@
+@@ -993,6 +997,7 @@
  #define OOO_STRING_SVTOOLS_RTF_SHPWRK "\\shpwrk"
  #define OOO_STRING_SVTOOLS_RTF_SHPWR "\\shpwr"
  #define OOO_STRING_SVTOOLS_RTF_SHPZ "\\shpz"
@@ -44,7 +33,7 @@
  #define OOO_STRING_SVTOOLS_RTF_SPRSBSP "\\sprsbsp"
  #define OOO_STRING_SVTOOLS_RTF_SPRSLNSP "\\sprslnsp"
  #define OOO_STRING_SVTOOLS_RTF_SPRSTSM "\\sprstsm"
-@@ -1140,4 +1145,11 @@
+@@ -1138,4 +1143,11 @@
  #define OOO_STRING_SVTOOLS_RTF_OLHWAVE "\\olhwave"
  #define OOO_STRING_SVTOOLS_RTF_OLOLDBWAVE "\\ololdbwave"
  
@@ -56,55 +45,10 @@
 +#define OOO_STRING_SVTOOLS_RTF_NONESTTABLES "\\nonesttables"
 +
  #endif // _RTFKEYWD_HXX
---- sw/source/filter/rtf/makefile.mk
-+++ sw/source/filter/rtf/makefile.mk
-@@ -46,18 +46,15 @@ CDEFS=$(CDEFS) -Dmydebug
- EXCEPTIONSFILES=	\
-         $(SLO)$/rtffly.obj \
-         $(SLO)$/rtfnum.obj \
--        $(SLO)$/swparrtf.obj \
--        $(SLO)$/wrtrtf.obj
-+        $(SLO)$/swparrtf.obj
- 
- 
- SLOFILES =	\
--        $(SLO)$/rtfatr.obj \
-         $(SLO)$/rtffld.obj \
-         $(SLO)$/rtffly.obj \
-         $(SLO)$/rtfnum.obj \
-         $(SLO)$/rtftbl.obj \
--        $(SLO)$/swparrtf.obj \
--        $(SLO)$/wrtrtf.obj
-+        $(SLO)$/swparrtf.obj
- 
- # --- Tagets -------------------------------------------------------
- 
---- sw/source/filter/rtf/rtfnum.cxx
-+++ sw/source/filter/rtf/rtfnum.cxx
-@@ -22,7 +22,6 @@
- #include <fltini.hxx>
- #include <swtypes.hxx>
- #include <swparrtf.hxx>
--#include <wrtrtf.hxx>
- #include <ndtxt.hxx>
- #include <doc.hxx>
- #include <docary.hxx>
-@@ -1102,6 +1101,7 @@ BOOL lcl_IsExportNumRule( const SwNumRule& rRule, BYTE* pEnd = 0 )
-     return nLvl != nEnd;
- }
- 
-+#if 0
- void SwRTFWriter::OutRTFListTab()
- {
-     ByteString sOverrideList;
-@@ -1430,3 +1430,4 @@ BOOL SwRTFWriter::OutListNum( const SwTxtNode& rNd )
-     }
-     return bRet;
- }
-+#endif
---- sw/source/filter/rtf/swparrtf.cxx
-+++ sw/source/filter/rtf/swparrtf.cxx
-@@ -179,6 +179,12 @@ ULONG RtfReader::Read( SwDoc &rDoc, const String& rBaseURL, SwPaM &rPam, const S
+unchanged:
+--- sw/source/filter/rtf/swparrtf.cxx	Thu Jul 29 20:08:54 2010 +0200
++++ sw/source/filter/rtf/swparrtf.cxx	Thu Jul 29 22:01:25 2010 +0200
+@@ -179,6 +179,12 @@
      return nRet;
  }
  
@@ -117,9 +61,10 @@
  SwRTFParser::SwRTFParser(SwDoc* pD,
          uno::Reference<document::XDocumentProperties> i_xDocProps,
          const SwPaM& rCrsr, SvStream& rIn, const String& rBaseURL,
---- sw/source/filter/rtf/swparrtf.hxx
-+++ sw/source/filter/rtf/swparrtf.hxx
-@@ -81,6 +81,8 @@ struct SvxRTFPictureType;
+unchanged:
+--- sw/source/filter/rtf/swparrtf.hxx	Thu Jul 29 20:08:54 2010 +0200
++++ sw/source/filter/rtf/swparrtf.hxx	Thu Jul 29 22:01:25 2010 +0200
+@@ -81,6 +81,8 @@
  class RtfReader: public Reader
  {
      virtual ULONG Read( SwDoc &, const String& rBaseURL, SwPaM &,const String &);
@@ -128,253 +73,10 @@
  };
  
  class SwNodeIdx : public SvxNodeIdx
---- sw/source/filter/rtf/wrtrtf.cxx
-+++ sw/source/filter/rtf/wrtrtf.cxx
-@@ -1761,11 +1761,6 @@ RTFSaveData::~RTFSaveData()
-     rWrt.bOutSection = bOldOutSection;
- }
- 
--extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL ExportRTF( const String& rFltName, const String& rBaseURL, WriterRef& xRet )
--{
--    xRet = new SwRTFWriter( rFltName, rBaseURL );
--}
--
- short SwRTFWriter::GetCurrentPageDirection() const
- {
-     const SwFrmFmt  &rFmt = pAktPageDesc
---- /dev/null
-+++ sw/source/filter/ww8/README-rtf.txt
-@@ -0,0 +1,227 @@
-+
-+---------------------------------------------------------------------
-+
-+Summary of new features in RtfExport
-+
-+---------------------------------------------------------------------
-+
-+Miklos Vajna
-+
-+<vmiklos at frugalware.org>
-+---------------------------------------------------------------------
-+
-+Table of Contents
-+
-+1. Introduction
-+
-+    1.1. Terminology
-+    1.2. General
-+
-+2. List if fixed bugs
-+3. List of new features
-+
-+    3.1. Nested tables
-+    3.2. Character properties
-+    3.3. Sections
-+    3.4. Graphics
-+    3.5. Bookmarks
-+    3.6. Fields
-+    3.7. Drawing
-+    3.8. Form fields
-+    3.9. OLE objects
-+
-+4. Changes in the source code outside RTF
-+
-+
-+---------------------------------------------------------------------
-+
-+1. Introduction
-+
-+---------------------------------------------------------------------
-+
-+The biggest difference is that the new exporter is an UNO component,
-+and it?s based on the MSWord base classes, the vision here is that
-+this way much less code can achieve the same set of features,
-+reducing the amount of duplicated code.
-+
-+
-+1.1. Terminology
-+
-+--------------
-+
-+  * The "MSO OK, OOo KO" and similar abbreviations describe if the
-+    given new feature is supported by the OOo RTF importer or it can
-+    be tested using Microsoft Office.
-+  * RtfExport refers to the new UNO-based exporter, RtfWriter refers
-+    to the old built-in one.
-+
-+
-+1.2. General
-+
-+--------------
-+
-+RtfWriter sometimes created documents where the first { is closed in
-+the middle of the document. MSO ignores this problem, but OOo stops
-+parsing the rest of the document if this happens, in other words
-+everything after such a bug is ignored. This can be reproduced by for
-+example parprops.odt, but it?s triggered in several other cases as
-+well. RtfExport has no automatic prevention for this, either - but
-+during development I primarily test the output with OOo, so hopefully
-+the bug will pop up less frequently.
-+
-+
-+---------------------------------------------------------------------
-+
-+2. List if fixed bugs
-+
-+---------------------------------------------------------------------
-+
-+  * http://www.openoffice.org/issues/show_bug.cgi?id=51469 postit
-+    fields
-+  * http://www.openoffice.org/issues/show_bug.cgi?id=66619 page
-+    margins
-+  * http://www.openoffice.org/issues/show_bug.cgi?id=69856 page
-+    numbers
-+  * http://www.openoffice.org/issues/show_bug.cgi?id=81569 { and } in
-+    document title
-+  * http://www.openoffice.org/issues/show_bug.cgi?id=84703 redlines
-+  * http://www.openoffice.org/issues/show_bug.cgi?id=91166 russian
-+    chars
-+  * http://www.openoffice.org/issues/show_bug.cgi?id=92673 bookmarks
-+    across tables
-+  * http://www.openoffice.org/issues/show_bug.cgi?id=100507 ole
-+    object export
-+  * http://www.openoffice.org/issues/show_bug.cgi?id=103993 same as #
-+    81569 just for doc comments
-+  * http://www.openoffice.org/issues/show_bug.cgi?id=106677
-+    listoverride index starts at zero
-+  * http://www.openoffice.org/issues/show_bug.cgi?id=38344 enhanced
-+    character space
-+
-+
-+---------------------------------------------------------------------
-+
-+3. List of new features
-+
-+---------------------------------------------------------------------
-+
-+
-+3.1. Nested tables
-+
-+--------------
-+
-+This was new in Word2000 and it?s now supported by RtfExport (MSO OK,
-+OOo KO)
-+
-+
-+3.2. Character properties
-+
-+--------------
-+
-+The followings are now supported:
-+
-+  * blinking (MSO OK, OOo KO)
-+  * expanded spacing (MSO OK, OOo OK)
-+  * pair kerning (MSO OK, OOo OK)
-+
-+
-+3.3. Sections
-+
-+--------------
-+
-+RtfExport writes:
-+
-+  * column breaks (MSO OK, OOo OK)
-+  * special breaks (when the next page should be an odd or an even
-+    page; MSO OK, OOo KO)
-+  * the write-protected property of sections is experted properly
-+    (MSO OK, OOo KO)
-+  * better page numbers (inherited type from page styles, restarts;
-+    MSO OK, OOo KO)
-+  * line numbering (MSO OK, OOo KO)
-+
-+
-+3.4. Graphics
-+
-+--------------
-+
-+PNG graphics are exported in WMF format as well, so that not only MSO
-+and OOo can display graphics from the output document, but Wordpad as
-+well.
-+
-+
-+3.5. Bookmarks
-+
-+--------------
-+
-+Implicit bookmarks like reference to a footnote did not work in OOo
-+(one got an Error: Reference source not found message when opening
-+the result), this now works as expected. (MSO OK - the importer
-+previously autocorrected this as well, OO OK)
-+
-+
-+3.6. Fields
-+
-+--------------
-+
-+  * Table of contents is now written as a field, so it?s properly
-+    read-only (MSO OK, OOo KO)
-+  * Postit comments are now exported. (MSO OK, OOo KO)
-+
-+
-+3.7. Drawing
-+
-+--------------
-+
-+Drawing objects for Word 97 through Word 2007 (shapes) are now
-+implemented:
-+
-+  * basic shapes (rectangle, ellipse, etc.)
-+  * lines, including free-form ones
-+  * texts, including vertical ones and their (paragraph and
-+    character) formatting
-+
-+(MSO OK, OOo KO)
-+
-+
-+3.8. Form fields
-+
-+--------------
-+
-+All types supported by the RTF format are exported, namely:
-+
-+  * text boxes
-+  * check boxes
-+  * list boxes
-+
-+(MSO OK, OOo KO)
-+
-+
-+3.9. OLE objects
-+
-+--------------
-+
-+Their result is exported as a picture - RtfWriter did not export
-+anything. (MSO OK, OOo OK)
-+
-+For math, the native data is written as well, so you can edit the
-+object, too. (MSO OK, OOo KO)
-+
-+
-+---------------------------------------------------------------------
-+
-+4. Changes in the source code outside RTF
-+
-+---------------------------------------------------------------------
-+
-+These are refactorings I needed for RTF. To my best knowledge they do
-+not change the output of other filters from a user?s point of view.
-+
-+  * The code that splits runs according to bookmarks is moved from
-+    DocxExport to MSWordExportBase
-+  * WW8_SdrAttrIter has been refactored to MSWord_SdrAttrIter
-+  * MSWordExportBase::SubstituteBullet can avoid replacing bullets
-+  * wwFontHelper::InitFontTable can really load all fonts
-+  * An obvious typo in WW8AttributeOutput::CharTwoLines has been
-+    fixed
-+
---- sw/source/filter/ww8/docxexport.cxx
-+++ sw/source/filter/ww8/docxexport.cxx
-@@ -116,131 +116,6 @@ bool DocxExport::CollapseScriptsforWordOk( USHORT nScript, USHORT nWhich )
+unchanged:
+--- sw/source/filter/ww8/docxexport.cxx	Thu Jul 29 20:08:54 2010 +0200
++++ sw/source/filter/ww8/docxexport.cxx	Thu Jul 29 22:01:25 2010 +0200
+@@ -116,131 +116,6 @@
      return true;
  }
  
@@ -506,9 +208,10 @@
  void DocxExport::AppendBookmarks( const SwTxtNode& rNode, xub_StrLen nAktPos, xub_StrLen nLen )
  {
      std::vector< OUString > aStarts;
---- sw/source/filter/ww8/docxexport.hxx
-+++ sw/source/filter/ww8/docxexport.hxx
-@@ -76,11 +76,6 @@ class DocxExport : public MSWordExportBase
+unchanged:
+--- sw/source/filter/ww8/docxexport.hxx	Thu Jul 29 20:08:54 2010 +0200
++++ sw/source/filter/ww8/docxexport.hxx	Thu Jul 29 22:01:25 2010 +0200
+@@ -76,11 +76,6 @@
      /// Footer counter.
      sal_Int32 m_nFooters;
  
@@ -520,7 +223,7 @@
      /// Exporter of the VML shapes.
      oox::vml::VMLExport *m_pVMLExport;
  
-@@ -166,24 +161,7 @@ protected:
+@@ -162,24 +157,7 @@
                                       const SwFmtPageDesc* pNewPgDescFmt = 0,
                                       const SwPageDesc* pNewPgDesc = 0 );
  
@@ -545,8 +248,9 @@
      /// Setup pStyles and write styles.xml 
      void InitStyles();
  
---- sw/source/filter/ww8/docxexportfilter.cxx
-+++ sw/source/filter/ww8/docxexportfilter.cxx
+unchanged:
+--- sw/source/filter/ww8/docxexportfilter.cxx	Thu Jul 29 20:08:54 2010 +0200
++++ sw/source/filter/ww8/docxexportfilter.cxx	Thu Jul 29 22:01:25 2010 +0200
 @@ -26,6 +26,8 @@
   ************************************************************************/
  
@@ -556,7 +260,7 @@
  #include "docxexport.hxx"
  
  #include <docsh.hxx>
-@@ -144,7 +146,35 @@ SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* /* pServiceMan
+@@ -144,7 +146,35 @@
          }
          catch( registry::InvalidRegistryException& )
          {
@@ -593,7 +297,7 @@
          }
      }
  
-@@ -157,6 +187,7 @@ SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* /* pServiceMan
+@@ -157,6 +187,7 @@
  
  SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char* pImplName, void* pServiceManager, void* /* pRegistryKey */ )
  {
@@ -601,7 +305,7 @@
      uno::Reference< lang::XSingleServiceFactory > xFactory;
      void* pRet = 0;
  
-@@ -169,6 +200,22 @@ SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char* pImplN
+@@ -169,6 +200,22 @@
                      DocxExport_getImplementationName(),
                      DocxExport_createInstance,
                      DocxExport_getSupportedServiceNames() ) );
@@ -624,38 +328,40 @@
      }
  
      if ( xFactory.is() )
---- sw/source/filter/ww8/makefile.mk
-+++ sw/source/filter/ww8/makefile.mk
-@@ -69,7 +69,12 @@ EXCEPTIONSFILES = \
+unchanged:
+--- sw/source/filter/ww8/makefile.mk	Thu Jul 29 20:08:54 2010 +0200
++++ sw/source/filter/ww8/makefile.mk	Thu Jul 29 22:01:25 2010 +0200
+@@ -67,7 +67,12 @@
+         $(SLO)$/WW8TableInfo.obj \
          $(SLO)$/WW8FFData.obj \
          $(SLO)$/WW8Sttbf.obj \
-         $(SLO)$/ww8toolbar.obj \
 -        $(SLO)$/WW8FibData.obj
 +        $(SLO)$/WW8FibData.obj \
-+	$(SLO)$/rtfexportfilter.obj \
-+	$(SLO)$/rtfimportfilter.obj \
-+	$(SLO)$/rtfattributeoutput.obj \
-+	$(SLO)$/rtfsdrexport.obj \
-+	$(SLO)$/rtfexport.obj
++        $(SLO)$/rtfexportfilter.obj \
++        $(SLO)$/rtfimportfilter.obj \
++        $(SLO)$/rtfattributeoutput.obj \
++        $(SLO)$/rtfsdrexport.obj \
++        $(SLO)$/rtfexport.obj
  
  
  SLOFILES =	\
-@@ -101,7 +106,12 @@ SLOFILES =	\
+@@ -96,7 +101,12 @@
+         $(SLO)$/WW8TableInfo.obj \
          $(SLO)$/WW8FFData.obj \
          $(SLO)$/WW8Sttbf.obj \
-         $(SLO)$/ww8toolbar.obj \
 -        $(SLO)$/WW8FibData.obj
 +        $(SLO)$/WW8FibData.obj \
-+	$(SLO)$/rtfexportfilter.obj \
-+	$(SLO)$/rtfimportfilter.obj \
-+	$(SLO)$/rtfattributeoutput.obj \
-+	$(SLO)$/rtfsdrexport.obj \
-+	$(SLO)$/rtfexport.obj
++        $(SLO)$/rtfexportfilter.obj \
++        $(SLO)$/rtfimportfilter.obj \
++        $(SLO)$/rtfattributeoutput.obj \
++        $(SLO)$/rtfsdrexport.obj \
++        $(SLO)$/rtfexport.obj
  
  
  # --- Tagets -------------------------------------------------------
---- /dev/null
-+++ sw/source/filter/ww8/rtfattributeoutput.cxx
+unchanged:
+--- sw/source/filter/ww8/rtfattributeoutput.cxx	Fri Jul 30 00:54:41 2010 +0200
++++ sw/source/filter/ww8/rtfattributeoutput.cxx	Fri Jul 30 19:59:04 2010 +0200
 @@ -0,0 +1,3302 @@
 +/*************************************************************************
 + *
@@ -1092,7 +798,7 @@
 +    m_aRunText.append(m_rExport.OutString(rText, eCharSet));
 +}
 +
-+void RtfAttributeOutput::StartRuby( const SwTxtNode& /*rNode*/, xub_StrLen /*nPos*/, const SwFmtRuby& /*rRuby*/ )
++void RtfAttributeOutput::StartRuby( const SwTxtNode& /*rNode*/, const SwFmtRuby& /*rRuby*/ )
 +{
 +    OSL_TRACE("TODO: %s", __PRETTY_FUNCTION__);
 +}
@@ -1657,7 +1363,7 @@
 +}
 +
 +void RtfAttributeOutput::StartStyle( const String& rName, bool /*bPapFmt*/,
-+        USHORT nBase, USHORT nNext, USHORT /*nWwId*/, USHORT nId, bool /*bAutoUpdate*/ )
++        USHORT nBase, USHORT nNext, USHORT /*nWwId*/, USHORT nId )
 +{
 +    OSL_TRACE("%s, rName = '%s'", __PRETTY_FUNCTION__,
 +            OUStringToOString( OUString( rName ), m_rExport.eCurrentEncoding ).getStr());
@@ -3959,9 +3665,10 @@
 +}
 +
 +/* vi:set shiftwidth=4 expandtab: */
---- /dev/null
-+++ sw/source/filter/ww8/rtfattributeoutput.hxx
-@@ -0,0 +1,575 @@
+unchanged:
+--- sw/source/filter/ww8/rtfattributeoutput.hxx	Thu Jul 29 22:01:25 2010 +0200
++++ sw/source/filter/ww8/rtfattributeoutput.hxx	Fri Jul 30 00:54:41 2010 +0200
+@@ -0,0 +1,574 @@
 +/*************************************************************************
 + *
 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -4054,7 +3761,7 @@
 +    virtual void RawText( const String& rText, bool bForceUnicode, rtl_TextEncoding eCharSet );
 +
 +    /// Output ruby start.
-+    virtual void StartRuby( const SwTxtNode& rNode, xub_StrLen nPos, const SwFmtRuby& rRuby );
++    virtual void StartRuby( const SwTxtNode& rNode, const SwFmtRuby& rRuby );
 +
 +    /// Output ruby end.
 +    virtual void EndRuby();
@@ -4116,8 +3823,7 @@
 +
 +    /// Start of a style in the styles table.
 +    virtual void StartStyle( const String& rName, bool bPapFmt,
-+            USHORT nBase, USHORT nNext, USHORT nWwId, USHORT nId,
-+            bool bAutoUpdate );
++            USHORT nBase, USHORT nNext, USHORT nWwId, USHORT nId );
 +
 +    /// End of a style in the styles table.
 +    virtual void EndStyle();
@@ -4537,8 +4243,9 @@
 +#endif // _RTFATTRIBUTEOUTPUT_HXX_
 +
 +/* vi:set shiftwidth=4 expandtab: */
---- /dev/null
-+++ sw/source/filter/ww8/rtfexport.cxx
+unchanged:
+--- sw/source/filter/ww8/rtfexport.cxx	Fri Jul 30 15:21:58 2010 +0200
++++ sw/source/filter/ww8/rtfexport.cxx	Fri Jul 30 21:59:04 2010 +0200
 @@ -0,0 +1,1235 @@
 +/*************************************************************************
 + *
@@ -5775,8 +5482,9 @@
 +}
 +
 +/* vi:set shiftwidth=4 expandtab: */
---- /dev/null
-+++ sw/source/filter/ww8/rtfexport.hxx
+unchanged:
+--- sw/source/filter/ww8/rtfexport.hxx	Thu Jul 29 22:01:25 2010 +0200
++++ sw/source/filter/ww8/rtfexport.hxx	Fri Jul 30 00:54:41 2010 +0200
 @@ -0,0 +1,211 @@
 +/*************************************************************************
 + *
@@ -5989,8 +5697,9 @@
 +
 +#endif // _RTFEXPORT_HXX_
 +/* vi:set shiftwidth=4 expandtab: */
---- /dev/null
-+++ sw/source/filter/ww8/rtfexportfilter.cxx
+unchanged:
+--- sw/source/filter/ww8/rtfexportfilter.cxx	Thu Jul 29 22:01:25 2010 +0200
++++ sw/source/filter/ww8/rtfexportfilter.cxx	Fri Jul 30 00:54:41 2010 +0200
 @@ -0,0 +1,136 @@
 +/*************************************************************************
 + *
@@ -6128,8 +5837,9 @@
 +}
 +
 +/* vi:set shiftwidth=4 expandtab: */
---- /dev/null
-+++ sw/source/filter/ww8/rtfexportfilter.hxx
+unchanged:
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ sw/source/filter/ww8/rtfexportfilter.hxx	Thu Jul 29 22:01:25 2010 +0200
 @@ -0,0 +1,85 @@
 +/*************************************************************************
 + *
@@ -6216,8 +5926,9 @@
 +
 +#endif // _RTFEXPORTFILTER_HXX_
 +/* vi:set shiftwidth=4 expandtab: */
---- /dev/null
-+++ sw/source/filter/ww8/rtfimportfilter.cxx
+unchanged:
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ sw/source/filter/ww8/rtfimportfilter.cxx	Thu Jul 29 22:01:25 2010 +0200
 @@ -0,0 +1,135 @@
 +/*************************************************************************
 + *
@@ -6354,8 +6065,9 @@
 +}
 +
 +/* vi:set shiftwidth=4 expandtab: */
---- /dev/null
-+++ sw/source/filter/ww8/rtfimportfilter.hxx
+unchanged:
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ sw/source/filter/ww8/rtfimportfilter.hxx	Thu Jul 29 22:01:25 2010 +0200
 @@ -0,0 +1,75 @@
 +/*************************************************************************
 + *
@@ -6432,8 +6144,9 @@
 +
 +#endif // _RTFIMPORTFILTER_HXX_
 +/* vi:set shiftwidth=4 expandtab: */
---- /dev/null
-+++ sw/source/filter/ww8/rtfsdrexport.cxx
+unchanged:
+--- sw/source/filter/ww8/rtfsdrexport.cxx	Thu Jul 29 22:01:25 2010 +0200
++++ sw/source/filter/ww8/rtfsdrexport.cxx	Fri Jul 30 00:54:41 2010 +0200
 @@ -0,0 +1,578 @@
 +/*************************************************************************
 + *
@@ -7013,8 +6726,9 @@
 +}
 +
 +/* vi:set shiftwidth=4 expandtab: */
---- /dev/null
-+++ sw/source/filter/ww8/rtfsdrexport.hxx
+unchanged:
+--- sw/source/filter/ww8/rtfsdrexport.hxx	Thu Jul 29 22:01:25 2010 +0200
++++ sw/source/filter/ww8/rtfsdrexport.hxx	Fri Jul 30 00:54:41 2010 +0200
 @@ -0,0 +1,112 @@
 +/*************************************************************************
 + *
@@ -7128,9 +6842,10 @@
 +
 +#endif // _RTFSdrEXPORT_HXX_
 +/* vi:set shiftwidth=4 expandtab: */
---- sw/source/filter/ww8/wrtw8esh.cxx
-+++ sw/source/filter/ww8/wrtw8esh.cxx
-@@ -811,49 +811,7 @@ void WW8Export::AppendFlyInFlys(const sw::Frame& rFrmFmt,
+unchanged:
+--- sw/source/filter/ww8/wrtw8esh.cxx	Thu Jul 29 20:08:54 2010 +0200
++++ sw/source/filter/ww8/wrtw8esh.cxx	Thu Jul 29 22:01:25 2010 +0200
+@@ -811,49 +811,7 @@
          OutputField(0, ww::eSHAPE, aEmptyStr, WRITEFIELD_CLOSE);
  }
  
@@ -7181,7 +6896,7 @@
      const EditTextObject& rEditObj, BYTE nTyp )
      : MSWordAttrIter( rWr ), pEditObj(&rEditObj), pEditPool(0),
      aTxtAtrArr( 0, 4 ), aChrTxtAtrArr( 0, 4 ), aChrSetArr( 0, 4 ),
-@@ -862,7 +820,7 @@ WW8_SdrAttrIter::WW8_SdrAttrIter( WW8Export& rWr,
+@@ -862,7 +820,7 @@
      NextPara( 0 );
  }
  
@@ -7190,7 +6905,7 @@
  {
      nPara = nPar;
      // Attributwechsel an Pos 0 wird ignoriert, da davon ausgegangen
-@@ -885,7 +843,7 @@ void WW8_SdrAttrIter::NextPara( USHORT nPar )
+@@ -885,7 +843,7 @@
      nAktSwPos = SearchNext( 1 );
  }
  
@@ -7199,7 +6914,7 @@
  {
      if( aChrSetArr.Count() )
          return (rtl_TextEncoding)aChrSetArr[ aChrSetArr.Count() - 1 ];
-@@ -893,7 +851,7 @@ rtl_TextEncoding WW8_SdrAttrIter::GetNextCharSet() const
+@@ -893,7 +851,7 @@
  }
  
  // der erste Parameter in SearchNext() liefert zurueck, ob es ein TxtAtr ist.
@@ -7208,7 +6923,7 @@
  {
      xub_StrLen nPos;
      xub_StrLen nMinPos = STRING_MAXLEN;
-@@ -932,7 +890,7 @@ xub_StrLen WW8_SdrAttrIter::SearchNext( xub_StrLen nStartPos )
+@@ -932,7 +890,7 @@
      return nMinPos;
  }
  
@@ -7217,7 +6932,7 @@
  {
      void* p = 0;
      rtl_TextEncoding eChrSet;
-@@ -962,7 +920,7 @@ void WW8_SdrAttrIter::SetCharSet(const EECharAttrib& rAttr, bool bStart)
+@@ -962,7 +920,7 @@
      }
  }
  
@@ -7226,7 +6941,7 @@
  {
      const SvxFieldItem &rField = (const SvxFieldItem &)rHt;
      const SvxFieldData *pFld = rField.GetField();
-@@ -981,7 +939,7 @@ void WW8_SdrAttrIter::OutEEField(const SfxPoolItem& rHt)
+@@ -981,7 +939,7 @@
      }
  }
  
@@ -7235,7 +6950,7 @@
  {
      OutParaAttr(true);
  
-@@ -1038,7 +996,7 @@ void WW8_SdrAttrIter::OutAttr( xub_StrLen nSwPos )
+@@ -1038,7 +996,7 @@
      }
  }
  
@@ -7244,7 +6959,7 @@
  {
      for (USHORT i = 0; i < aTxtAtrArr.Count(); ++i)
      {
-@@ -1063,7 +1021,7 @@ bool WW8_SdrAttrIter::IsTxtAttr(xub_StrLen nSwPos)
+@@ -1063,7 +1021,7 @@
  // Attribut-Anfangposition fragen kann.
  // Es koennen nur Attribute mit Ende abgefragt werden.
  // Es wird mit bDeep gesucht
@@ -7253,7 +6968,7 @@
  {
      const SfxPoolItem* pRet = 0;
      nWhich = sw::hack::TransformWhichBetweenPools(*pEditPool,
-@@ -1088,7 +1046,7 @@ const SfxPoolItem* WW8_SdrAttrIter::HasTextItem(USHORT nWhich) const
+@@ -1088,7 +1046,7 @@
      return pRet;
  }
  
@@ -7262,7 +6977,7 @@
  {
      using sw::hack::GetSetWhichFromSwDocWhich;
      const SfxPoolItem* pRet = HasTextItem(nWhich);
-@@ -1102,7 +1060,7 @@ const SfxPoolItem& WW8_SdrAttrIter::GetItem( USHORT nWhich ) const
+@@ -1102,7 +1060,7 @@
      return *pRet;
  }
  
@@ -7271,7 +6986,7 @@
  {
      SfxItemSet aSet( pEditObj->GetParaAttribs( nPara ));
      if( aSet.Count() )
-@@ -1175,7 +1133,7 @@ void WW8Export::WriteOutliner(const OutlinerParaObject& rParaObj, BYTE nTyp)
+@@ -1175,7 +1133,7 @@
  {
      bool bAnyWrite = false;
      const EditTextObject& rEditObj = rParaObj.GetTextObject();
@@ -7280,9 +6995,10 @@
  
      USHORT nPara = rEditObj.GetParagraphCount();
      BYTE bNul = 0;
---- sw/source/filter/ww8/wrtw8nds.cxx
-+++ sw/source/filter/ww8/wrtw8nds.cxx
-@@ -1602,14 +1602,127 @@ void WW8AttributeOutput::FormatDrop( const SwTxtNode& rNode, const SwFmtDrop &rS
+unchanged:
+--- sw/source/filter/ww8/wrtw8nds.cxx	Thu Jul 29 20:08:54 2010 +0200
++++ sw/source/filter/ww8/wrtw8nds.cxx	Thu Jul 29 22:01:25 2010 +0200
+@@ -1646,14 +1646,127 @@
      m_rWW8Export.pO->Remove( 0, m_rWW8Export.pO->Count() );
  }
  
@@ -7299,10 +7015,12 @@
 +    NearestBookmark( nNextPos );
 +
 +    return std::min( nNextPos, nNextBookmark );
-+}
-+
+ }
+ 
+-void MSWordExportBase::UpdatePosition( SwAttrIter* aAttrIter, xub_StrLen /*nAktPos*/, xub_StrLen /*nEnd*/ )
 +void MSWordExportBase::UpdatePosition( SwAttrIter* aAttrIter, xub_StrLen nAktPos, xub_StrLen /*nEnd*/ )
-+{
+ {
+-    aAttrIter->NextPos();
 +    xub_StrLen nNextPos;
 +
 +    // either no bookmark, or it is not at the current position
@@ -7337,12 +7055,10 @@
 +        }
 +    }
 +    return ( rArr.size() > 0 );
- }
- 
--void MSWordExportBase::UpdatePosition( SwAttrIter* aAttrIter, xub_StrLen /*nAktPos*/, xub_StrLen /*nEnd*/ )
++}
++
 +class CompareMarksEnd : public std::binary_function < const IMark *, const IMark *, bool >
- {
--    aAttrIter->NextPos();
++{
 +public:
 +    inline bool operator() ( const IMark * pOneB, const IMark * pTwoB ) const
 +    {
@@ -7414,9 +7130,10 @@
  }
  
  void MSWordExportBase::OutputTextNode( const SwTxtNode& rNode )
---- sw/source/filter/ww8/wrtw8num.cxx
-+++ sw/source/filter/ww8/wrtw8num.cxx
-@@ -721,6 +721,9 @@ void MSWordExportBase::SubstituteBullet( String& rNumStr,
+unchanged:
+--- sw/source/filter/ww8/wrtw8num.cxx	Thu Jul 29 20:08:54 2010 +0200
++++ sw/source/filter/ww8/wrtw8num.cxx	Thu Jul 29 22:01:25 2010 +0200
+@@ -721,6 +721,9 @@
      StarSymbolToMSMultiFont *pConvert = 0;
      FontFamily eFamily = FAMILY_DECORATIVE;
  
@@ -7426,8 +7143,9 @@
      if (!pConvert)
      {
          pConvert = CreateStarSymbolToMSMultiFont();
---- sw/source/filter/ww8/wrtw8sty.cxx
-+++ sw/source/filter/ww8/wrtw8sty.cxx
+unchanged:
+--- sw/source/filter/ww8/wrtw8sty.cxx	Thu Jul 29 20:08:54 2010 +0200
++++ sw/source/filter/ww8/wrtw8sty.cxx	Thu Jul 29 22:01:25 2010 +0200
 @@ -79,6 +79,7 @@
  #include "ww8par.hxx"
  #include "ww8attributeoutput.hxx"
@@ -7436,9 +7154,9 @@
  
  using namespace sw::util;
  using namespace nsHdFtFlags;
-@@ -716,6 +717,17 @@ void wwFont::WriteDocx( const DocxAttributeOutput* rAttrOutput ) const
-     rAttrOutput->EndFont();
+@@ -713,6 +714,17 @@
  }
+ #endif
  
 +void wwFont::WriteRtf( const RtfAttributeOutput* rAttrOutput ) const
 +{
@@ -7454,7 +7172,7 @@
  bool operator<(const wwFont &r1, const wwFont &r2)
  {
      int nRet = memcmp(r1.maWW8_FFN, r2.maWW8_FFN, sizeof(r1.maWW8_FFN));
-@@ -768,6 +780,22 @@ void wwFontHelper::InitFontTable(bool bWrtWW8,const SwDoc& rDoc)
+@@ -765,6 +777,22 @@
          GetId(wwFont(pFont->GetFamilyName(), pFont->GetPitch(),
              pFont->GetFamily(), pFont->GetCharSet(),bWrtWW8));
      }
@@ -7477,9 +7195,9 @@
  }
  
  USHORT wwFontHelper::GetId(const Font& rFont)
-@@ -840,6 +868,14 @@ void wwFontHelper::WriteFontTable( const DocxAttributeOutput& rAttrOutput )
-         ::std::bind2nd( ::std::mem_fun( &wwFont::WriteDocx ), &rAttrOutput ) );
+@@ -839,6 +867,14 @@
  }
+ #endif
  
 +void wwFontHelper::WriteFontTable( const RtfAttributeOutput& rAttrOutput )
 +{
@@ -7492,9 +7210,10 @@
  /*  */
  
  WW8_WrPlc0::WW8_WrPlc0( ULONG nOffset )
---- sw/source/filter/ww8/wrtww8.cxx
-+++ sw/source/filter/ww8/wrtww8.cxx
-@@ -3371,7 +3371,7 @@ MSWordExportBase::MSWordExportBase( SwDoc *pDocument, SwPaM *pCurrentPam, SwPaM
+unchanged:
+--- sw/source/filter/ww8/wrtww8.cxx	Thu Jul 29 20:08:54 2010 +0200
++++ sw/source/filter/ww8/wrtww8.cxx	Thu Jul 29 22:01:25 2010 +0200
+@@ -3371,7 +3371,7 @@
      mpTableInfo(new ww8::WW8TableInfo()), nUniqueList(0),
      mnHdFtIndex(0), pAktPageDesc(0), pPapPlc(0), pChpPlc(0), pChpIter(0),
      pStyles( NULL ),
@@ -7503,8 +7222,9 @@
      pDoc( pDocument ),
      pCurPam( pCurrentPam ),
      pOrigPam( pOriginalPam )
---- sw/source/filter/ww8/wrtww8.hxx
-+++ sw/source/filter/ww8/wrtww8.hxx
+unchanged:
+--- sw/source/filter/ww8/wrtww8.hxx	Thu Jul 29 22:01:25 2010 +0200
++++ sw/source/filter/ww8/wrtww8.hxx	Fri Jul 30 00:54:41 2010 +0200
 @@ -35,6 +35,7 @@
  #define _SVSTDARR_ULONGS
  #include <svl/svstdarr.hxx>
@@ -7521,15 +7241,15 @@
  class BitmapPalette;
  class SwEscherEx;
  class DateTime;
-@@ -294,6 +296,7 @@ public:
-         rtl_TextEncoding eChrSet, bool bWrtWW8 );
-     bool Write( SvStream *pTableStram ) const;
+@@ -296,6 +298,7 @@
+ #ifdef DOCX
      void WriteDocx( const DocxAttributeOutput* rAttrOutput ) const;
+ #endif
 +    void WriteRtf( const RtfAttributeOutput* rAttrOutput ) const;
      rtl::OUString GetFamilyName() const { return rtl::OUString( msFamilyNm ); }
      friend bool operator < (const wwFont &r1, const wwFont &r2);
  };
-@@ -309,7 +312,7 @@ private:
+@@ -311,7 +314,7 @@
      ::std::vector< const wwFont* > AsVector() const;
  
  public:
@@ -7538,10 +7258,10 @@
      /// rDoc used only to get the initial standard font(s) in use.
      void InitFontTable(bool bWrtWW8, const SwDoc& rDoc);
      USHORT GetId(const Font& rFont);
-@@ -317,6 +320,10 @@ public:
-     USHORT GetId(const wwFont& rFont);
-     void WriteFontTable( SvStream *pTableStream, WW8Fib& pFib );
+@@ -321,6 +324,10 @@
+ #ifdef DOCX
      void WriteFontTable( const DocxAttributeOutput& rAttrOutput );
+ #endif
 +    void WriteFontTable( const RtfAttributeOutput& rAttrOutput );
 +
 +    /// If true, all fonts are loaded before processing the document.
@@ -7549,7 +7269,7 @@
  };
  
  class DrawObj
-@@ -535,6 +542,7 @@ public:
+@@ -539,6 +546,7 @@
      BYTE bEndAtTxtEnd : 1;      // true: all END at Textend
      BYTE bHasHdr : 1;
      BYTE bHasFtr : 1;
@@ -7557,7 +7277,7 @@
  
      SwDoc *pDoc;
      SwPaM *pCurPam, *pOrigPam;
-@@ -542,6 +550,11 @@ public:
+@@ -546,6 +554,11 @@
      /// Stack to remember the nesting (see MSWordSaveData for more)
      ::std::stack< MSWordSaveData > maSaveData;
  
@@ -7569,7 +7289,7 @@
  public:
      /// The main function to export the document.
      void ExportDocument( bool bWriteAll );
-@@ -781,6 +794,17 @@ protected:
+@@ -785,6 +798,17 @@
      /// One of OutputTextNode(), OutputGrfNode(), or OutputOLENode()
      void OutputContentNode( const SwCntntNode& );
      
@@ -7587,8 +7307,8 @@
  public:
      MSWordExportBase( SwDoc *pDocument, SwPaM *pCurrentPam, SwPaM *pOriginalPam );
      virtual ~MSWordExportBase();
-@@ -1415,6 +1439,47 @@ public:
-     const SwFmtDrop& GetSwFmtDrop() const { return mrSwFmtDrop; }
+@@ -1350,6 +1374,47 @@
+     virtual const SfxPoolItem& GetItem( USHORT nWhich ) const = 0;
  };
  
 +class MSWord_SdrAttrIter : public MSWordAttrIter
@@ -7635,9 +7355,10 @@
  /// Class to collect and output the styles table.
  class MSWordStyles
  {
---- sw/source/filter/ww8/ww8atr.cxx
-+++ sw/source/filter/ww8/ww8atr.cxx
-@@ -3340,7 +3340,7 @@ void WW8AttributeOutput::CharTwoLines( const SvxTwoLinesItem& rTwoLines )
+unchanged:
+--- sw/source/filter/ww8/ww8atr.cxx	Thu Jul 29 20:08:54 2010 +0200
++++ sw/source/filter/ww8/ww8atr.cxx	Thu Jul 29 22:01:25 2010 +0200
+@@ -3340,7 +3340,7 @@
          m_rWW8Export.pO->Insert( (BYTE)0x02, m_rWW8Export.pO->Count() );
  
          sal_Unicode cStart = rTwoLines.GetStartBracket();
@@ -7646,8 +7367,9 @@
  
          /*
          As per usual we have problems. We can have seperate left and right brackets
---- /dev/null
-+++ writerfilter/source/filter/RtfFilter.cxx
+unchanged:
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ writerfilter/source/filter/RtfFilter.cxx	Fri Jul 30 01:33:36 2010 +0200
 @@ -0,0 +1,146 @@
 +/*************************************************************************
 + *
@@ -7795,8 +7517,9 @@
 +}
 +
 +/* vi:set shiftwidth=4 expandtab: */
---- /dev/null
-+++ writerfilter/source/filter/RtfFilter.hxx
+unchanged:
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ writerfilter/source/filter/RtfFilter.hxx	Fri Jul 30 01:33:36 2010 +0200
 @@ -0,0 +1,102 @@
 +/*************************************************************************
 + *
@@ -7900,8 +7623,9 @@
 +    throw( ::com::sun::star::uno::Exception );
 +#endif
 +
---- writerfilter/source/filter/WriterFilter.cxx
-+++ writerfilter/source/filter/WriterFilter.cxx
+unchanged:
+--- writerfilter/source/filter/WriterFilter.cxx	Fri Jul 30 00:54:41 2010 +0200
++++ writerfilter/source/filter/WriterFilter.cxx	Fri Jul 30 01:33:36 2010 +0200
 @@ -30,6 +30,7 @@
  #endif
  #include <WriterFilter.hxx>
@@ -7910,7 +7634,7 @@
  
  using namespace ::rtl;
  using namespace ::cppu;
-@@ -56,6 +57,7 @@ static struct ::cppu::ImplementationEntry s_component_entries [] =
+@@ -56,6 +57,7 @@
  {
      { WriterFilter_createInstance, WriterFilter_getImplementationName, WriterFilter_getSupportedServiceNames, ::cppu::createSingleComponentFactory, 0, 0 },
      { WriterFilterDetection_createInstance, WriterFilterDetection_getImplementationName, WriterFilterDetection_getSupportedServiceNames, ::cppu::createSingleComponentFactory, 0, 0} ,
@@ -7918,9 +7642,10 @@
      { 0, 0, 0, 0, 0, 0 } // terminate with NULL
  };
  
---- writerfilter/source/filter/makefile.mk
-+++ writerfilter/source/filter/makefile.mk
-@@ -40,7 +40,8 @@ ENABLE_EXCEPTIONS=TRUE
+unchanged:
+--- writerfilter/source/filter/makefile.mk	Fri Jul 30 00:54:41 2010 +0200
++++ writerfilter/source/filter/makefile.mk	Fri Jul 30 01:33:36 2010 +0200
+@@ -40,7 +40,8 @@
  
  SLOFILES=           $(SLO)$/WriterFilter.obj \
                      $(SLO)$/WriterFilterDetection.obj \
@@ -7930,3 +7655,295 @@
  
  
  # --- Targets ----------------------------------
+unchanged:
+--- filter/source/config/fragments/filters/Rich_Text_Format.xcu	Fri Jul 30 01:33:36 2010 +0200
++++ filter/source/config/fragments/filters/Rich_Text_Format.xcu	Fri Jul 30 01:41:03 2010 +0200
+@@ -1,7 +1,7 @@
+     <node oor:name="Rich Text Format" oor:op="replace">
+-        <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN PREFERRED</value></prop>
++        <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER PREFERRED</value></prop>
+         <prop oor:name="UIComponent"/>
+-        <prop oor:name="FilterService"/>
++        <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.RtfFilter</value></prop>
+         <prop oor:name="UserData"><value>RTF</value></prop>
+         <prop oor:name="UIName">
+             <value xml:lang="x-default">Rich Text Format</value>
+unchanged:
+--- sw/source/filter/rtf/makefile.mk	Fri Jul 30 19:59:04 2010 +0200
++++ sw/source/filter/rtf/makefile.mk	Fri Jul 30 21:59:04 2010 +0200
+@@ -46,18 +46,15 @@
+ EXCEPTIONSFILES=	\
+         $(SLO)$/rtffly.obj \
+         $(SLO)$/rtfnum.obj \
+-        $(SLO)$/swparrtf.obj \
+-        $(SLO)$/wrtrtf.obj
++        $(SLO)$/swparrtf.obj
+ 
+ 
+ SLOFILES =	\
+-        $(SLO)$/rtfatr.obj \
+         $(SLO)$/rtffld.obj \
+         $(SLO)$/rtffly.obj \
+         $(SLO)$/rtfnum.obj \
+         $(SLO)$/rtftbl.obj \
+-        $(SLO)$/swparrtf.obj \
+-        $(SLO)$/wrtrtf.obj
++        $(SLO)$/swparrtf.obj
+ 
+ # --- Tagets -------------------------------------------------------
+ 
+unchanged:
+--- sw/source/filter/rtf/rtfnum.cxx	Fri Jul 30 19:59:04 2010 +0200
++++ sw/source/filter/rtf/rtfnum.cxx	Fri Jul 30 21:59:04 2010 +0200
+@@ -47,7 +47,6 @@
+ #include <fltini.hxx>
+ #include <swtypes.hxx>
+ #include <swparrtf.hxx>
+-#include <wrtrtf.hxx>
+ #include <ndtxt.hxx>
+ #include <doc.hxx>
+ #include <docary.hxx>
+@@ -1130,6 +1130,7 @@ BOOL lcl_IsExportNumRule( const SwNumRule& rRule, BYTE* pEnd = 0 )
+     return nLvl != nEnd;
+ }
+ 
++#if 0
+ void SwRTFWriter::OutRTFListTab()
+ {
+     ByteString sOverrideList;
+@@ -1458,3 +1459,4 @@ BOOL SwRTFWriter::OutListNum( const SwTxtNode& rNd )
+     }
+     return bRet;
+ }
++#endif
+diff -u sw/source/filter/ww8/README-rtf.txt sw/source/filter/ww8/README-rtf.txt
+--- sw/source/filter/ww8/README-rtf.txt	Wed Aug 04 12:49:33 2010 +0200
++++ sw/source/filter/ww8/README-rtf.txt	Wed Aug 04 12:53:57 2010 +0200
+@@ -0,0 +1,227 @@
++
++---------------------------------------------------------------------
++
++Summary of new features in RtfExport
++
++---------------------------------------------------------------------
++
++Miklos Vajna
++
++<vmiklos at frugalware.org>
++---------------------------------------------------------------------
++
++Table of Contents
++
++1. Introduction
++
++    1.1. Terminology
++    1.2. General
++
++2. List if fixed bugs
++3. List of new features
++
++    3.1. Nested tables
++    3.2. Character properties
++    3.3. Sections
++    3.4. Graphics
++    3.5. Bookmarks
++    3.6. Fields
++    3.7. Drawing
++    3.8. Form fields
++    3.9. OLE objects
++
++4. Changes in the source code outside RTF
++
++
++---------------------------------------------------------------------
++
++1. Introduction
++
++---------------------------------------------------------------------
++
++The biggest difference is that the new exporter is an UNO component,
++and it?s based on the MSWord base classes, the vision here is that
++this way much less code can achieve the same set of features,
++reducing the amount of duplicated code.
++
++
++1.1. Terminology
++
++--------------
++
++  * The "MSO OK, OOo KO" and similar abbreviations describe if the
++    given new feature is supported by the OOo RTF importer or it can
++    be tested using Microsoft Office.
++  * RtfExport refers to the new UNO-based exporter, RtfWriter refers
++    to the old built-in one.
++
++
++1.2. General
++
++--------------
++
++RtfWriter sometimes created documents where the first { is closed in
++the middle of the document. MSO ignores this problem, but OOo stops
++parsing the rest of the document if this happens, in other words
++everything after such a bug is ignored. This can be reproduced by for
++example parprops.odt, but it?s triggered in several other cases as
++well. RtfExport has no automatic prevention for this, either - but
++during development I primarily test the output with OOo, so hopefully
++the bug will pop up less frequently.
++
++
++---------------------------------------------------------------------
++
++2. List if fixed bugs
++
++---------------------------------------------------------------------
++
++  * http://www.openoffice.org/issues/show_bug.cgi?id=51469 postit
++    fields
++  * http://www.openoffice.org/issues/show_bug.cgi?id=66619 page
++    margins
++  * http://www.openoffice.org/issues/show_bug.cgi?id=69856 page
++    numbers
++  * http://www.openoffice.org/issues/show_bug.cgi?id=81569 { and } in
++    document title
++  * http://www.openoffice.org/issues/show_bug.cgi?id=84703 redlines
++  * http://www.openoffice.org/issues/show_bug.cgi?id=91166 russian
++    chars
++  * http://www.openoffice.org/issues/show_bug.cgi?id=92673 bookmarks
++    across tables
++  * http://www.openoffice.org/issues/show_bug.cgi?id=100507 ole
++    object export
++  * http://www.openoffice.org/issues/show_bug.cgi?id=103993 same as #
++    81569 just for doc comments
++  * http://www.openoffice.org/issues/show_bug.cgi?id=106677
++    listoverride index starts at zero
++  * http://www.openoffice.org/issues/show_bug.cgi?id=38344 enhanced
++    character space
++
++
++---------------------------------------------------------------------
++
++3. List of new features
++
++---------------------------------------------------------------------
++
++
++3.1. Nested tables
++
++--------------
++
++This was new in Word2000 and it?s now supported by RtfExport (MSO OK,
++OOo KO)
++
++
++3.2. Character properties
++
++--------------
++
++The followings are now supported:
++
++  * blinking (MSO OK, OOo KO)
++  * expanded spacing (MSO OK, OOo OK)
++  * pair kerning (MSO OK, OOo OK)
++
++
++3.3. Sections
++
++--------------
++
++RtfExport writes:
++
++  * column breaks (MSO OK, OOo OK)
++  * special breaks (when the next page should be an odd or an even
++    page; MSO OK, OOo KO)
++  * the write-protected property of sections is experted properly
++    (MSO OK, OOo KO)
++  * better page numbers (inherited type from page styles, restarts;
++    MSO OK, OOo KO)
++  * line numbering (MSO OK, OOo KO)
++
++
++3.4. Graphics
++
++--------------
++
++PNG graphics are exported in WMF format as well, so that not only MSO
++and OOo can display graphics from the output document, but Wordpad as
++well.
++
++
++3.5. Bookmarks
++
++--------------
++
++Implicit bookmarks like reference to a footnote did not work in OOo
++(one got an Error: Reference source not found message when opening
++the result), this now works as expected. (MSO OK - the importer
++previously autocorrected this as well, OO OK)
++
++
++3.6. Fields
++
++--------------
++
++  * Table of contents is now written as a field, so it?s properly
++    read-only (MSO OK, OOo KO)
++  * Postit comments are now exported. (MSO OK, OOo KO)
++
++
++3.7. Drawing
++
++--------------
++
++Drawing objects for Word 97 through Word 2007 (shapes) are now
++implemented:
++
++  * basic shapes (rectangle, ellipse, etc.)
++  * lines, including free-form ones
++  * texts, including vertical ones and their (paragraph and
++    character) formatting
++
++(MSO OK, OOo KO)
++
++
++3.8. Form fields
++
++--------------
++
++All types supported by the RTF format are exported, namely:
++
++  * text boxes
++  * check boxes
++  * list boxes
++
++(MSO OK, OOo KO)
++
++
++3.9. OLE objects
++
++--------------
++
++Their result is exported as a picture - RtfWriter did not export
++anything. (MSO OK, OOo OK)
++
++For math, the native data is written as well, so you can edit the
++object, too. (MSO OK, OOo KO)
++
++
++---------------------------------------------------------------------
++
++4. Changes in the source code outside RTF
++
++---------------------------------------------------------------------
++
++These are refactorings I needed for RTF. To my best knowledge they do
++not change the output of other filters from a user?s point of view.
++
++  * The code that splits runs according to bookmarks is moved from
++    DocxExport to MSWordExportBase
++  * WW8_SdrAttrIter has been refactored to MSWord_SdrAttrIter
++  * MSWordExportBase::SubstituteBullet can avoid replacing bullets
++  * wwFontHelper::InitFontTable can really load all fonts
++  * An obvious typo in WW8AttributeOutput::CharTwoLines has been
++    fixed
++
diff --git a/patches/dev300/docx-export-enable.diff b/patches/dev300/docx-export-enable.diff
index 1de50cd..1c764f0 100644
--- a/patches/dev300/docx-export-enable.diff
+++ b/patches/dev300/docx-export-enable.diff
@@ -455,7 +455,7 @@ diff --git sw/source/filter/ww8/wrtw8sty.cxx sw/source/filter/ww8/wrtw8sty.cxx
 index 651c09e..42b829a 100644
 --- sw/source/filter/ww8/wrtw8sty.cxx
 +++ sw/source/filter/ww8/wrtw8sty.cxx
-@@ -696,7 +696,6 @@ bool wwFont::Write(SvStream *pTableStrm) const
+@@ -697,7 +697,6 @@ bool wwFont::Write(SvStream *pTableStrm) const
      return true;
  }
  
@@ -463,15 +463,15 @@ index 651c09e..42b829a 100644
  void wwFont::WriteDocx( const DocxAttributeOutput* rAttrOutput ) const
  {
      // no font embedding, panose id, subsetting, ... implemented
-@@ -711,7 +710,6 @@ void wwFont::WriteDocx( const DocxAttributeOutput* rAttrOutput ) const
+@@ -712,7 +711,6 @@ void wwFont::WriteDocx( const DocxAttributeOutput* rAttrOutput ) const
  
      rAttrOutput->EndFont();
  }
 -#endif
  
- bool operator<(const wwFont &r1, const wwFont &r2)
+ void wwFont::WriteRtf( const RtfAttributeOutput* rAttrOutput ) const
  {
-@@ -829,7 +827,6 @@ void wwFontHelper::WriteFontTable(SvStream *pTableStream, WW8Fib& rFib)
+@@ -857,7 +855,6 @@ void wwFontHelper::WriteFontTable(SvStream *pTableStream, WW8Fib& rFib)
      }
  }
  
@@ -479,38 +479,38 @@ index 651c09e..42b829a 100644
  void wwFontHelper::WriteFontTable( const DocxAttributeOutput& rAttrOutput )
  {
      ::std::vector<const wwFont *> aFontList( AsVector() );
-@@ -837,7 +834,6 @@ void wwFontHelper::WriteFontTable( const DocxAttributeOutput& rAttrOutput )
+@@ -865,7 +862,6 @@ void wwFontHelper::WriteFontTable( const DocxAttributeOutput& rAttrOutput )
      ::std::for_each( aFontList.begin(), aFontList.end(),
          ::std::bind2nd( ::std::mem_fun( &wwFont::WriteDocx ), &rAttrOutput ) );
  }
 -#endif
  
- /*  */
- 
+ void wwFontHelper::WriteFontTable( const RtfAttributeOutput& rAttrOutput )
+ {
 diff --git sw/source/filter/ww8/wrtww8.hxx sw/source/filter/ww8/wrtww8.hxx
 index 43211a9..d73ebae 100644
 --- sw/source/filter/ww8/wrtww8.hxx
 +++ sw/source/filter/ww8/wrtww8.hxx
-@@ -293,9 +293,7 @@ public:
+@@ -295,9 +295,7 @@ public:
      wwFont( const String &rFamilyName, FontPitch ePitch, FontFamily eFamily,
          rtl_TextEncoding eChrSet, bool bWrtWW8 );
      bool Write( SvStream *pTableStram ) const;
 -#ifdef DOCX
      void WriteDocx( const DocxAttributeOutput* rAttrOutput ) const;
 -#endif
+     void WriteRtf( const RtfAttributeOutput* rAttrOutput ) const;
      rtl::OUString GetFamilyName() const { return rtl::OUString( msFamilyNm ); }
      friend bool operator < (const wwFont &r1, const wwFont &r2);
- };
-@@ -318,9 +316,7 @@ public:
+@@ -321,9 +319,7 @@ public:
      USHORT GetId(const SvxFontItem& rFont);
      USHORT GetId(const wwFont& rFont);
      void WriteFontTable( SvStream *pTableStream, WW8Fib& pFib );
 -#ifdef DOCX
      void WriteFontTable( const DocxAttributeOutput& rAttrOutput );
 -#endif
- };
+     void WriteFontTable( const RtfAttributeOutput& rAttrOutput );
  
- class DrawObj
+     /// If true, all fonts are loaded before processing the document.
 diff --git sw/util/makefile.mk sw/util/makefile.mk
 index 2907264..abeec13 100644
 --- sw/util/makefile.mk
diff --git a/patches/dev300/docx-fixes02.diff b/patches/dev300/docx-fixes02.diff
index 407d4ad..2aee53f 100644
--- a/patches/dev300/docx-fixes02.diff
+++ b/patches/dev300/docx-fixes02.diff
@@ -6,17 +6,19 @@ From: Cédric Bosdonnat <cedricbosdo at openoffice.org>
 ---
 
  sax/source/tools/fastserializer.cxx          |   45 +++
- sax/source/tools/fastserializer.hxx          |    7 
- sw/source/filter/ww8/attributeoutputbase.hxx |    5 
+ sax/source/tools/fastserializer.hxx          |    7 +
+ sw/source/filter/ww8/attributeoutputbase.hxx |    5 +-
  sw/source/filter/ww8/docxattributeoutput.cxx |  402 +++++++++++++++++++++++---
- sw/source/filter/ww8/docxattributeoutput.hxx |    8 -
- sw/source/filter/ww8/makefile.mk             |    1 
+ sw/source/filter/ww8/docxattributeoutput.hxx |    8 +-
+ sw/source/filter/ww8/makefile.mk             |    1 +
+ sw/source/filter/ww8/rtfattributeoutput.cxx  |    4 +-
+ sw/source/filter/ww8/rtfattributeoutput.hxx  |    5 +-
  sw/source/filter/ww8/wrtw8nds.cxx            |   88 +-----
- sw/source/filter/ww8/wrtw8sty.cxx            |   15 +
- sw/source/filter/ww8/wrtww8.hxx              |   69 ++++
- sw/source/filter/ww8/ww8atr.cxx              |   21 -
- sw/source/filter/ww8/ww8attributeoutput.hxx  |    5 
- 11 files changed, 523 insertions(+), 143 deletions(-)
+ sw/source/filter/ww8/wrtw8sty.cxx            |   15 +-
+ sw/source/filter/ww8/wrtww8.hxx              |   69 +++++
+ sw/source/filter/ww8/ww8atr.cxx              |   21 +-
+ sw/source/filter/ww8/ww8attributeoutput.hxx  |    5 +-
+ 13 files changed, 528 insertions(+), 147 deletions(-)
 
 
 diff --git sax/source/tools/fastserializer.cxx sax/source/tools/fastserializer.cxx
@@ -138,10 +140,10 @@ index e5f40b9..ff8c062 100644
      /// End of a style in the styles table.
      virtual void EndStyle() = 0;
 diff --git sw/source/filter/ww8/docxattributeoutput.cxx sw/source/filter/ww8/docxattributeoutput.cxx
-index ff3ff8f..3d64409 100644
+index 4637f0d..684b1e6 100644
 --- sw/source/filter/ww8/docxattributeoutput.cxx
 +++ sw/source/filter/ww8/docxattributeoutput.cxx
-@@ -32,6 +32,13 @@
+@@ -31,6 +31,13 @@
  #include "writerwordglue.hxx"
  #include "wrtww8.hxx"
  #include "ww8par.hxx"
@@ -155,7 +157,7 @@ index ff3ff8f..3d64409 100644
  
  #include <oox/core/tokens.hxx>
  #include <oox/export/drawingml.hxx>
-@@ -208,6 +215,25 @@ void DocxAttributeOutput::EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pT
+@@ -207,6 +214,25 @@ void DocxAttributeOutput::EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pT
      FinishTableRowCell( pTextNodeInfoInner );
  
      m_bParagraphOpened = false;
@@ -181,7 +183,7 @@ index ff3ff8f..3d64409 100644
  }
  
  void DocxAttributeOutput::FinishTableRowCell( ww8::WW8TableNodeInfoInner::Pointer_t pInner, bool bForceEmptyParagraph )
-@@ -287,6 +313,14 @@ void DocxAttributeOutput::InitCollectedParagraphProperties()
+@@ -286,6 +312,14 @@ void DocxAttributeOutput::InitCollectedParagraphProperties()
  
  void DocxAttributeOutput::WriteCollectedParagraphProperties()
  {
@@ -196,7 +198,7 @@ index ff3ff8f..3d64409 100644
      if ( m_pSpacingAttrList )
      {
          XFastAttributeListRef xAttrList( m_pSpacingAttrList );
-@@ -746,14 +780,75 @@ void DocxAttributeOutput::RawText( const String& /*rText*/, bool /*bForceUnicode
+@@ -745,14 +779,75 @@ void DocxAttributeOutput::RawText( const String& /*rText*/, bool /*bForceUnicode
      OSL_TRACE("TODO DocxAttributeOutput::RawText( const String& rText, bool bForceUnicode, rtl_TextEncoding eCharSet )\n" );
  }
  
@@ -273,7 +275,7 @@ index ff3ff8f..3d64409 100644
  }
  
  bool DocxAttributeOutput::AnalyzeURL( const String& rUrl, const String& rTarget, String* pLinkURL, String* pMark )
-@@ -1720,6 +1815,12 @@ void DocxAttributeOutput::OutputFlyFrame_Impl( const sw::Frame &rFrame, const Po
+@@ -1693,6 +1788,12 @@ void DocxAttributeOutput::OutputFlyFrame_Impl( const sw::Frame &rFrame, const Po
                  }
              }
              break;
@@ -286,7 +288,7 @@ index ff3ff8f..3d64409 100644
          default:
  #if OSL_DEBUG_LEVEL > 0
              OSL_TRACE( "TODO DocxAttributeOutput::OutputFlyFrame_Impl( const sw::Frame& rFrame, const Point& rNdTopLeft ) - frame type '%s'\n",
-@@ -1734,7 +1835,7 @@ void DocxAttributeOutput::OutputFlyFrame_Impl( const sw::Frame &rFrame, const Po
+@@ -1707,7 +1808,7 @@ void DocxAttributeOutput::OutputFlyFrame_Impl( const sw::Frame &rFrame, const Po
  }
  
  void DocxAttributeOutput::StartStyle( const String& rName, bool bPapFmt,
@@ -295,7 +297,7 @@ index ff3ff8f..3d64409 100644
  {
      OString aStyle( "style" );
  
-@@ -1757,6 +1858,9 @@ void DocxAttributeOutput::StartStyle( const String& rName, bool bPapFmt,
+@@ -1730,6 +1831,9 @@ void DocxAttributeOutput::StartStyle( const String& rName, bool bPapFmt,
      m_pSerializer->singleElementNS( XML_w, XML_next,
              FSNS( XML_w, XML_val ), ( aStyle + OString::valueOf( sal_Int32( nNext ) ) ).getStr(),
              FSEND );
@@ -305,7 +307,7 @@ index ff3ff8f..3d64409 100644
  }
  
  void DocxAttributeOutput::EndStyle()
-@@ -2274,11 +2378,43 @@ void DocxAttributeOutput::CharCrossedOut( const SvxCrossedOutItem& rCrossedOut )
+@@ -2247,11 +2351,43 @@ void DocxAttributeOutput::CharCrossedOut( const SvxCrossedOutItem& rCrossedOut )
      }
  }
  
@@ -354,7 +356,7 @@ index ff3ff8f..3d64409 100644
  }
  
  void DocxAttributeOutput::CharFont( const SvxFontItem& rFont)
-@@ -2310,7 +2446,7 @@ void DocxAttributeOutput::CharFontSize( const SvxFontHeightItem& rFontSize)
+@@ -2283,7 +2419,7 @@ void DocxAttributeOutput::CharFontSize( const SvxFontHeightItem& rFontSize)
  void DocxAttributeOutput::CharKerning( const SvxKerningItem& rKerning )
  {
      OString aKerning = OString::valueOf( ( sal_Int32 ) rKerning.GetValue() );
@@ -363,7 +365,7 @@ index ff3ff8f..3d64409 100644
  }
  
  void DocxAttributeOutput::CharLanguage( const SvxLanguageItem& rLanguage )
-@@ -2563,11 +2699,12 @@ void DocxAttributeOutput::TextINetFormat( const SwFmtINetFmt& rLink )
+@@ -2536,11 +2672,12 @@ void DocxAttributeOutput::TextINetFormat( const SwFmtINetFmt& rLink )
      m_pSerializer->singleElementNS( XML_w, XML_rStyle, FSNS( XML_w, XML_val ), aStyleId.getStr(), FSEND );
  }
  
@@ -380,7 +382,7 @@ index ff3ff8f..3d64409 100644
  }
  
  void DocxAttributeOutput::RefField( const SwField&  rFld, const String& rRef )
-@@ -2981,9 +3118,22 @@ void DocxAttributeOutput::FormatFrameSize( const SwFmtFrmSize& rSize )
+@@ -2954,9 +3091,22 @@ void DocxAttributeOutput::FormatFrameSize( const SwFmtFrmSize& rSize )
  {
      if ( m_rExport.bOutFlyFrmAttrs )
      {
@@ -406,7 +408,7 @@ index ff3ff8f..3d64409 100644
      }
      else if ( m_rExport.bOutPageDescs ) 
      {
-@@ -3013,9 +3163,12 @@ void DocxAttributeOutput::FormatLRSpace( const SvxLRSpaceItem& rLRSpace )
+@@ -2986,9 +3136,12 @@ void DocxAttributeOutput::FormatLRSpace( const SvxLRSpaceItem& rLRSpace )
  {
      if ( m_rExport.bOutFlyFrmAttrs )
      {
@@ -422,7 +424,7 @@ index ff3ff8f..3d64409 100644
      }
      else if ( m_rExport.bOutPageDescs ) 
      {
-@@ -3056,11 +3209,17 @@ void DocxAttributeOutput::FormatLRSpace( const SvxLRSpaceItem& rLRSpace )
+@@ -3029,11 +3182,17 @@ void DocxAttributeOutput::FormatLRSpace( const SvxLRSpaceItem& rLRSpace )
  
  void DocxAttributeOutput::FormatULSpace( const SvxULSpaceItem& rULSpace )
  {
@@ -441,7 +443,7 @@ index ff3ff8f..3d64409 100644
      } 
      else if (m_rExport.bOutPageDescs )
      {
-@@ -3102,32 +3261,150 @@ void DocxAttributeOutput::FormatULSpace( const SvxULSpaceItem& rULSpace )
+@@ -3075,32 +3234,150 @@ void DocxAttributeOutput::FormatULSpace( const SvxULSpaceItem& rULSpace )
      }
  }
  
@@ -607,7 +609,7 @@ index ff3ff8f..3d64409 100644
  }
  
  void DocxAttributeOutput::FormatBackground( const SvxBrushItem& rBrush )
-@@ -3139,10 +3416,6 @@ void DocxAttributeOutput::FormatBackground( const SvxBrushItem& rBrush )
+@@ -3112,10 +3389,6 @@ void DocxAttributeOutput::FormatBackground( const SvxBrushItem& rBrush )
                  FSNS( XML_w, XML_fill ), sColor.getStr( ),
                  FSEND );
      }
@@ -618,7 +620,7 @@ index ff3ff8f..3d64409 100644
  }
  
  void DocxAttributeOutput::FormatBox( const SvxBoxItem& rBox )
-@@ -3225,9 +3498,52 @@ void DocxAttributeOutput::FormatKeep( const SvxFmtKeepItem& )
+@@ -3198,9 +3471,52 @@ void DocxAttributeOutput::FormatKeep( const SvxFmtKeepItem& )
      m_pSerializer->singleElementNS( XML_w, XML_keepNext, FSEND );
  }
  
@@ -673,7 +675,7 @@ index ff3ff8f..3d64409 100644
  }
  
  void DocxAttributeOutput::FormatLineNumbering( const SwFmtLineNumber& rNumbering )
-@@ -3285,6 +3601,7 @@ DocxAttributeOutput::DocxAttributeOutput( DocxExport &rExport, FSHelperPtr pSeri
+@@ -3258,6 +3574,7 @@ DocxAttributeOutput::DocxAttributeOutput( DocxExport &rExport, FSHelperPtr pSeri
        m_pCharLangAttrList( NULL ),
        m_pSpacingAttrList( NULL ),
        m_pHyperlinkAttrList( NULL ),
@@ -681,7 +683,7 @@ index ff3ff8f..3d64409 100644
        m_pFootnotesList( new ::docx::FootnotesList() ),
        m_pEndnotesList( new ::docx::FootnotesList() ),
        m_pSectionInfo( NULL ),
-@@ -3297,7 +3614,8 @@ DocxAttributeOutput::DocxAttributeOutput( DocxExport &rExport, FSHelperPtr pSeri
+@@ -3270,7 +3587,8 @@ DocxAttributeOutput::DocxAttributeOutput( DocxExport &rExport, FSHelperPtr pSeri
        m_bTableCellOpen( false ),
        m_nTableDepth( 0 ),
        m_bParagraphOpened( false ),
@@ -691,7 +693,7 @@ index ff3ff8f..3d64409 100644
  {
  }
  
-@@ -3308,11 +3626,13 @@ DocxAttributeOutput::~DocxAttributeOutput()
+@@ -3281,11 +3599,13 @@ DocxAttributeOutput::~DocxAttributeOutput()
      delete m_pCharLangAttrList, m_pCharLangAttrList = NULL;
      delete m_pSpacingAttrList, m_pSpacingAttrList = NULL;
      delete m_pHyperlinkAttrList, m_pHyperlinkAttrList = NULL;
@@ -746,7 +748,7 @@ index 2e94069..2625d6d 100644
      DocxAttributeOutput( DocxExport &rExport, ::sax_fastparser::FSHelperPtr pSerializer, oox::drawingml::DrawingML* pDrawingML );
  
 diff --git sw/source/filter/ww8/makefile.mk sw/source/filter/ww8/makefile.mk
-index 55d53f5..c4c4528 100644
+index efd0e64..730a67d 100644
 --- sw/source/filter/ww8/makefile.mk
 +++ sw/source/filter/ww8/makefile.mk
 @@ -58,6 +58,7 @@ EXCEPTIONSFILES = \
@@ -757,8 +759,53 @@ index 55d53f5..c4c4528 100644
          $(SLO)$/docxexportfilter.obj \
          $(SLO)$/ww8atr.obj \
          $(SLO)$/ww8par.obj \
+diff --git sw/source/filter/ww8/rtfattributeoutput.cxx sw/source/filter/ww8/rtfattributeoutput.cxx
+index 81cba2f..6265c14 100644
+--- sw/source/filter/ww8/rtfattributeoutput.cxx
++++ sw/source/filter/ww8/rtfattributeoutput.cxx
+@@ -433,7 +433,7 @@ void RtfAttributeOutput::RawText( const String& rText, bool /*bForceUnicode*/, r
+     m_aRunText.append(m_rExport.OutString(rText, eCharSet));
+ }
+ 
+-void RtfAttributeOutput::StartRuby( const SwTxtNode& /*rNode*/, const SwFmtRuby& /*rRuby*/ )
++void RtfAttributeOutput::StartRuby( const SwTxtNode& /*rNode*/, xub_StrLen /*nPos*/, const SwFmtRuby& /*rRuby*/ )
+ {
+     OSL_TRACE("TODO: %s", __PRETTY_FUNCTION__);
+ }
+@@ -998,7 +998,7 @@ void RtfAttributeOutput::DefaultStyle( USHORT /*nStyle*/ )
+ }
+ 
+ void RtfAttributeOutput::StartStyle( const String& rName, bool /*bPapFmt*/,
+-        USHORT nBase, USHORT nNext, USHORT /*nWwId*/, USHORT nId )
++        USHORT nBase, USHORT nNext, USHORT /*nWwId*/, USHORT nId, bool /*bAutoUpdate*/ )
+ {
+     OSL_TRACE("%s, rName = '%s'", __PRETTY_FUNCTION__,
+             OUStringToOString( OUString( rName ), m_rExport.eCurrentEncoding ).getStr());
+diff --git sw/source/filter/ww8/rtfattributeoutput.hxx sw/source/filter/ww8/rtfattributeoutput.hxx
+index 4cb1b9c..24ee150 100644
+--- sw/source/filter/ww8/rtfattributeoutput.hxx
++++ sw/source/filter/ww8/rtfattributeoutput.hxx
+@@ -90,7 +90,7 @@ public:
+     virtual void RawText( const String& rText, bool bForceUnicode, rtl_TextEncoding eCharSet );
+ 
+     /// Output ruby start.
+-    virtual void StartRuby( const SwTxtNode& rNode, const SwFmtRuby& rRuby );
++    virtual void StartRuby( const SwTxtNode& rNode, xub_StrLen nPos, const SwFmtRuby& rRuby );
+ 
+     /// Output ruby end.
+     virtual void EndRuby();
+@@ -152,7 +152,8 @@ public:
+ 
+     /// Start of a style in the styles table.
+     virtual void StartStyle( const String& rName, bool bPapFmt,
+-            USHORT nBase, USHORT nNext, USHORT nWwId, USHORT nId );
++            USHORT nBase, USHORT nNext, USHORT nWwIdi, USHORT nId,
++            bool bAutoUpdate );
+ 
+     /// End of a style in the styles table.
+     virtual void EndStyle();
 diff --git sw/source/filter/ww8/wrtw8nds.cxx sw/source/filter/ww8/wrtw8nds.cxx
-index da8ac07..5c42823 100644
+index 6fa4972..f632d0a 100644
 --- sw/source/filter/ww8/wrtw8nds.cxx
 +++ sw/source/filter/ww8/wrtw8nds.cxx
 @@ -168,76 +168,6 @@ MSWordAttrIter::~MSWordAttrIter()
@@ -885,10 +932,10 @@ index da8ac07..5c42823 100644
                      }
                      if ( 0 != ( pEnd = pHt->GetEnd() ) && nPos == *pEnd )
 diff --git sw/source/filter/ww8/wrtw8sty.cxx sw/source/filter/ww8/wrtw8sty.cxx
-index 42b829a..cc5c557 100644
+index 2a6a204..4f4b60c 100644
 --- sw/source/filter/ww8/wrtw8sty.cxx
 +++ sw/source/filter/ww8/wrtw8sty.cxx
-@@ -299,7 +299,7 @@ void WW8AttributeOutput::EndStyle()
+@@ -300,7 +300,7 @@ void WW8AttributeOutput::EndStyle()
  }
  
  void WW8AttributeOutput::StartStyle( const String& rName, bool bPapFmt, USHORT nWwBase,
@@ -897,7 +944,7 @@ index 42b829a..cc5c557 100644
  {
      BYTE aWW8_STD[ sizeof( WW8_STD ) ];
      BYTE* pData = aWW8_STD;
-@@ -321,12 +321,12 @@ void WW8AttributeOutput::StartStyle( const String& rName, bool bPapFmt, USHORT n
+@@ -322,12 +322,12 @@ void WW8AttributeOutput::StartStyle( const String& rName, bool bPapFmt, USHORT n
  
      if( m_rWW8Export.bWrtWW8 )
      {
@@ -912,7 +959,7 @@ index 42b829a..cc5c557 100644
      }
  
  
-@@ -524,8 +524,13 @@ void MSWordStyles::OutputStyle( SwFmt* pFmt, USHORT nPos )
+@@ -525,8 +525,13 @@ void MSWordStyles::OutputStyle( SwFmt* pFmt, USHORT nPos )
          
          GetStyleData( pFmt, bFmtColl, nBase, nWwNext );
  
@@ -929,11 +976,11 @@ index 42b829a..cc5c557 100644
          if ( bFmtColl )
              WriteProperties( pFmt, true, nPos, nBase==0xfff );           // UPX.papx
 diff --git sw/source/filter/ww8/wrtww8.hxx sw/source/filter/ww8/wrtww8.hxx
-index d73ebae..20db21f 100644
+index e09d463..d6f1041 100644
 --- sw/source/filter/ww8/wrtww8.hxx
 +++ sw/source/filter/ww8/wrtww8.hxx
-@@ -1346,6 +1346,75 @@ public:
-     virtual const SfxPoolItem& GetItem( USHORT nWhich ) const = 0;
+@@ -1411,6 +1411,75 @@ public:
+     rtl_TextEncoding GetNodeCharSet() const     { return eNdChrSet; }
  };
  
 +// Die Klasse SwAttrIter ist eine Hilfe zum Aufbauen der Fkp.chpx.
@@ -1009,7 +1056,7 @@ index d73ebae..20db21f 100644
  class MSWordStyles
  {
 diff --git sw/source/filter/ww8/ww8atr.cxx sw/source/filter/ww8/ww8atr.cxx
-index fdf582b..983ac24 100644
+index cde7c02..96cc093 100644
 --- sw/source/filter/ww8/ww8atr.cxx
 +++ sw/source/filter/ww8/ww8atr.cxx
 @@ -3774,25 +3774,12 @@ void WW8AttributeOutput::FormatTextGrid( const SwTextGridItem& rGrid )
diff --git a/patches/vba/cws-vbasupportdev300.diff b/patches/vba/cws-vbasupportdev300.diff
index a26f8c7..df9e914 100644
--- a/patches/vba/cws-vbasupportdev300.diff
+++ b/patches/vba/cws-vbasupportdev300.diff
@@ -31347,17 +31347,17 @@ index b25887e..c30c10b 100644
          $(SLO)$/WW8FFData.obj \
          $(SLO)$/WW8Sttbf.obj \
 +        $(SLO)$/ww8toolbar.obj \
-         $(SLO)$/WW8FibData.obj
- 
- 
-@@ -96,6 +97,7 @@ SLOFILES =	\
+         $(SLO)$/WW8FibData.obj \
+         $(SLO)$/rtfexportfilter.obj \
+         $(SLO)$/rtfimportfilter.obj \
+@@ -101,6 +102,7 @@ SLOFILES =	\
          $(SLO)$/WW8TableInfo.obj \
          $(SLO)$/WW8FFData.obj \
          $(SLO)$/WW8Sttbf.obj \
 +        $(SLO)$/ww8toolbar.obj \
-         $(SLO)$/WW8FibData.obj
- 
- 
+         $(SLO)$/WW8FibData.obj \
+         $(SLO)$/rtfexportfilter.obj \
+         $(SLO)$/rtfimportfilter.obj \
 diff --git sw/source/filter/ww8/ww8par.cxx sw/source/filter/ww8/ww8par.cxx
 index 2945cde..2fe9bd1 100644
 --- sw/source/filter/ww8/ww8par.cxx


More information about the ooo-build-commit mailing list