[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.0' - 31 commits - bridges/source comphelper/source configure.ac connectivity/source dbaccess/source formula/source icon-themes/breeze include/comphelper include/formula include/sfx2 lotuswordpro/source readlicense_oo/license reportdesign/inc reportdesign/source sc/source sfx2/source solenv/gbuild svx/source sw/ooxmlexport_setup.mk sw/qa sw/source vcl/headless vcl/opengl vcl/source vcl/unx vcl/win writerperfect/qa

Andras Timar andras.timar at collabora.com
Mon Dec 21 04:14:45 PST 2015


 bridges/source/cpp_uno/msvc_win32_x86-64/uno2cpp.cxx    |   44 
 comphelper/source/container/embeddedobjectcontainer.cxx |   24 
 configure.ac                                            |    2 
 connectivity/source/drivers/odbc/OPreparedStatement.cxx |   12 
 connectivity/source/inc/odbc/OPreparedStatement.hxx     |    1 
 dbaccess/source/ui/inc/WTypeSelect.hxx                  |    2 
 dev/null                                                |binary
 formula/source/core/api/token.cxx                       |   30 
 formula/source/ui/dlg/parawin.cxx                       |    2 
 icon-themes/breeze/cmd/lc_entirecell.png                |binary
 icon-themes/breeze/cmd/lc_splittable.png                |binary
 icon-themes/breeze/cmd/lc_tablenumberformatdialog.png   |binary
 icon-themes/breeze/cmd/sc_entirecell.png                |binary
 icon-themes/breeze/cmd/sc_splittable.png                |binary
 icon-themes/breeze/cmd/sc_tablenumberformatdialog.png   |binary
 include/comphelper/embeddedobjectcontainer.hxx          |    6 
 include/formula/token.hxx                               |    5 
 include/formula/tokenarray.hxx                          |    3 
 include/sfx2/objsh.hxx                                  |    2 
 lotuswordpro/source/filter/lwpcelllayout.cxx            |   25 
 lotuswordpro/source/filter/lwpcontent.cxx               |   20 
 lotuswordpro/source/filter/lwpcontent.hxx               |    2 
 lotuswordpro/source/filter/lwpdivinfo.cxx               |    4 
 lotuswordpro/source/filter/lwpdoc.cxx                   |   72 
 lotuswordpro/source/filter/lwpdoc.hxx                   |   23 
 lotuswordpro/source/filter/lwpfnlayout.cxx              |   12 
 lotuswordpro/source/filter/lwpfootnote.cxx              |    6 
 lotuswordpro/source/filter/lwpfoundry.cxx               |   42 
 lotuswordpro/source/filter/lwpframelayout.cxx           |  104 -
 lotuswordpro/source/filter/lwpfrib.cxx                  |    8 
 lotuswordpro/source/filter/lwpfribbreaks.cxx            |    9 
 lotuswordpro/source/filter/lwpfribframe.cxx             |    6 
 lotuswordpro/source/filter/lwpfribsection.cxx           |   43 
 lotuswordpro/source/filter/lwpfribtable.cxx             |   12 
 lotuswordpro/source/filter/lwpgrfobj.cxx                |    6 
 lotuswordpro/source/filter/lwplayout.cxx                |  418 ++--
 lotuswordpro/source/filter/lwplayout.hxx                |   65 
 lotuswordpro/source/filter/lwpnotes.cxx                 |    6 
 lotuswordpro/source/filter/lwpobjfactory.cxx            |   14 
 lotuswordpro/source/filter/lwpobjfactory.hxx            |    3 
 lotuswordpro/source/filter/lwpoleobject.cxx             |    6 
 lotuswordpro/source/filter/lwppagelayout.cxx            |   32 
 lotuswordpro/source/filter/lwppara.cxx                  |   24 
 lotuswordpro/source/filter/lwppara1.cxx                 |    8 
 lotuswordpro/source/filter/lwpparaproperty.cxx          |    4 
 lotuswordpro/source/filter/lwpparastyle.cxx             |    3 
 lotuswordpro/source/filter/lwpproplist.cxx              |   11 
 lotuswordpro/source/filter/lwpsdwgrouploaderv0102.cxx   |   16 
 lotuswordpro/source/filter/lwpstory.cxx                 |  152 -
 lotuswordpro/source/filter/lwpstory.hxx                 |    2 
 lotuswordpro/source/filter/lwptable.hxx                 |    5 
 lotuswordpro/source/filter/lwptablelayout.cxx           |  113 -
 lotuswordpro/source/filter/lwptblcell.cxx               |    2 
 lotuswordpro/source/filter/lwptblcell.hxx               |    2 
 lotuswordpro/source/filter/lwptblformula.cxx            |   19 
 lotuswordpro/source/filter/lwptoc.cxx                   |   23 
 lotuswordpro/source/filter/tocread.cxx                  |    2 
 lotuswordpro/source/filter/xfilter/xfcell.cxx           |    7 
 lotuswordpro/source/filter/xfilter/xftable.cxx          |   12 
 lotuswordpro/source/filter/xfilter/xftable.hxx          |    2 
 readlicense_oo/license/CREDITS.fodt                     | 1660 ++++++++--------
 reportdesign/inc/ReportDefinition.hxx                   |    1 
 reportdesign/source/core/api/ReportDefinition.cxx       |    5 
 sc/source/core/data/formulacell.cxx                     |    4 
 sfx2/source/dialog/dockwin.cxx                          |    3 
 sfx2/source/doc/objstor.cxx                             |    6 
 solenv/gbuild/platform/com_GCC_defs.mk                  |    2 
 svx/source/xml/xmleohlp.cxx                             |    3 
 sw/ooxmlexport_setup.mk                                 |    7 
 sw/qa/extras/inc/swmodeltestbase.hxx                    |    1 
 sw/qa/extras/odfimport/data/tdf96113.odt                |binary
 sw/qa/extras/odfimport/odfimport.cxx                    |    6 
 sw/qa/extras/ooxmlexport/data/EmbeddedExcelChart.docx   |binary
 sw/qa/extras/ooxmlexport/ooxmlexport.cxx                |   24 
 sw/qa/extras/ooxmlexport/ooxmlexport2.cxx               |   30 
 sw/qa/extras/ooxmlexport/ooxmlexport3.cxx               |    3 
 sw/qa/extras/ooxmlexport/ooxmlexport4.cxx               |  113 +
 sw/qa/extras/ooxmlexport/ooxmlexport5.cxx               |  104 +
 sw/source/core/text/itrpaint.cxx                        |    2 
 sw/source/core/unocore/unoframe.cxx                     |    2 
 sw/source/filter/ww8/docxattributeoutput.cxx            |  127 -
 sw/source/filter/ww8/docxattributeoutput.hxx            |    2 
 sw/source/filter/ww8/docxexport.cxx                     |  228 ++
 sw/source/filter/ww8/docxexport.hxx                     |    2 
 sw/source/ui/frmdlg/cption.cxx                          |    4 
 vcl/headless/svpgdi.cxx                                 |  199 +
 vcl/opengl/salbmp.cxx                                   |  109 -
 vcl/source/window/syswin.cxx                            |    6 
 vcl/unx/gtk/app/gtkdata.cxx                             |    2 
 vcl/win/source/gdi/salgdi2.cxx                          |   72 
 vcl/win/source/gdi/winlayout.cxx                        |    5 
 vcl/win/source/gdi/winlayout.hxx                        |    1 
 92 files changed, 2600 insertions(+), 1611 deletions(-)

New commits:
commit e9f52be5b372e468155c4d8ed052dddeb8f0d128
Author: Andras Timar <andras.timar at collabora.com>
Date:   Mon Dec 21 13:17:03 2015 +0100

    Bump version to 5.0-15
    
    Change-Id: I5732a2cd6402ffd7f8b69886b5ade7b6e7621206

diff --git a/configure.ac b/configure.ac
index 3ebc512..63934d5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ dnl in order to create a configure script.
 # several non-alphanumeric characters, those are split off and used only for the
 # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no idea.
 
-AC_INIT([Collabora Office],[5.0.10.14],[],[],[https://CollaboraOffice.com/])
+AC_INIT([Collabora Office],[5.0.10.15],[],[],[https://CollaboraOffice.com/])
 
 AC_PREREQ([2.59])
 
commit 7784d70e61398dd499a6680079077b05b915c519
Author: David Tardon <dtardon at redhat.com>
Date:   Fri Dec 18 13:22:41 2015 +0100

    drop test file for unsupported Keynote version
    
    I don't remember why I added it anyway. And it will break build with
    (system) libetonyek >= 0.1.4, as the format is supported by that
    version.
    
    Change-Id: I4b69af8ae637eae2ff1f7342eaa6a7e8580c3af4
    Reviewed-on: https://gerrit.libreoffice.org/20790
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    Tested-by: Michael Stahl <mstahl at redhat.com>
    (cherry picked from commit c28aad62c7295b23d45a9e2fa579068922de8144)

diff --git a/writerperfect/qa/unit/data/impress/libetonyek/fail/.gitignore b/writerperfect/qa/unit/data/impress/libetonyek/fail/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/writerperfect/qa/unit/data/impress/libetonyek/fail/v6.zip b/writerperfect/qa/unit/data/impress/libetonyek/fail/v6.zip
deleted file mode 100644
index b0401b3..0000000
Binary files a/writerperfect/qa/unit/data/impress/libetonyek/fail/v6.zip and /dev/null differ
commit cbf2fa07825674a8b8f3fdc1084e8aad85b5582a
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Tue Dec 15 09:08:50 2015 +0100

    tdf#96113 sw: don't overwrite fo:background-color on ODT frame import
    
    The situation is similar to commit
    79fb61efb847405fa47235002b52ee8efad5e339 (tdf#92379: svx: don't
    overwrite fo:background-color on ODF import, 2015-08-21), except that
    here text frames had the problem of loosing colors when transparency is
    set.
    
    Fix the problem by informing getSvxBrushItemFromSourceSet() about if
    we're in XML import or not.
    
    (cherry picked from commit 3a0c0af7309e1f5ba3811bbe8a73e506cf5cd069)
    
    Conflicts:
    	sw/qa/extras/odfimport/odfimport.cxx
    
    Change-Id: Id1adf60b14a3762f0a2a43c49caeed9f6ea039be
    Reviewed-on: https://gerrit.libreoffice.org/20744
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    (cherry picked from commit 09ea045d373bc00de4238363c6551fdffa7f3548)

diff --git a/sw/qa/extras/odfimport/data/tdf96113.odt b/sw/qa/extras/odfimport/data/tdf96113.odt
new file mode 100644
index 0000000..ede7b07
Binary files /dev/null and b/sw/qa/extras/odfimport/data/tdf96113.odt differ
diff --git a/sw/qa/extras/odfimport/odfimport.cxx b/sw/qa/extras/odfimport/odfimport.cxx
index 105e046..5c60935 100644
--- a/sw/qa/extras/odfimport/odfimport.cxx
+++ b/sw/qa/extras/odfimport/odfimport.cxx
@@ -613,6 +613,12 @@ DECLARE_ODFIMPORT_TEST(testTdf92586, "tdf92586.odt")
     CPPUNIT_ASSERT_EQUAL(drawing::BitmapMode_STRETCH, getProperty<drawing::BitmapMode>(xPageStyle, "FillBitmapMode"));
 }
 
+DECLARE_ODFIMPORT_TEST(testTdf96113, "tdf96113.odt")
+{
+    // Background of the formula frame was white (0xffffff), not green.
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(0x00ff00), getProperty<sal_Int32>(getShape(1), "BackColor"));
+}
+
 #endif
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx
index dd9f789..ab14e38 100644
--- a/sw/source/core/unocore/unoframe.cxx
+++ b/sw/source/core/unocore/unoframe.cxx
@@ -1803,7 +1803,7 @@ void SwXFrame::setPropertyValue(const :: OUString& rPropertyName, const :: uno::
             if(RES_BACKGROUND == pEntry->nWID)
             {
                 const SwAttrSet& rSet = pFormat->GetAttrSet();
-                const SvxBrushItem aOriginalBrushItem(getSvxBrushItemFromSourceSet(rSet, RES_BACKGROUND));
+                const SvxBrushItem aOriginalBrushItem(getSvxBrushItemFromSourceSet(rSet, RES_BACKGROUND, true, pDoc->IsInXMLImport()));
                 SvxBrushItem aChangedBrushItem(aOriginalBrushItem);
 
                 aChangedBrushItem.PutValue(aValue, nMemberId);
commit 9cd4cf7258e97f8ca26167bfb9dc175e92dd145d
Author: Michael Stahl <mstahl at redhat.com>
Date:   Mon Dec 14 13:41:57 2015 +0100

    fix missing BaseURL when loading embedded objects
    
    When the object is edited in the UI, the m_xClient is set to a
    SfxInPlaceClient and the DocumentBaseURL is retrieved from it.  But if
    the object is not edited, it will be loaded during export via the API
    and without a m_xClient; in this case the DocumentBaseURL must have been
    set previously to be available during import.
    
    There appears to be no way to get the URL of the document via the API
    while it is being imported; SfxBaseModel's m_sURL is unfortunately only
    initialized from SfxObjectShell::FinishedLoading().
    
    During ODF import, the SvXMLEmbeddedObjectHelper creates the
    embedded object, so let's make it pass in the parent's BaseURL.
    
    The "DefaultParentBaseURL" parameter already exists but was unused
    previously.
    
    (cherry picked from commit b0fc09daf1086423a9bd457d9a2c043e7ff41451)
    (cherry picked from commit 4118f8f4c20ae711b95ab3052656bde673aa8852)
    
    sw: loading embedded ODF objects requires unordf component
    
    (cherry picked from commit b3b7982f4690f4ac0f0e9680970ba544157c36dc)
    
    Change-Id: I3d1ed29b3a2c0e77ec606a1d09f7bc07e7860733
    Reviewed-on: https://gerrit.libreoffice.org/20761
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit fe4c7f20c272cf7a984d0db79199fe74bd31fc86)

diff --git a/comphelper/source/container/embeddedobjectcontainer.cxx b/comphelper/source/container/embeddedobjectcontainer.cxx
index 10a7551..34afd6f 100644
--- a/comphelper/source/container/embeddedobjectcontainer.cxx
+++ b/comphelper/source/container/embeddedobjectcontainer.cxx
@@ -296,7 +296,9 @@ OUString EmbeddedObjectContainer::GetEmbeddedObjectName( const ::com::sun::star:
     return OUString();
 }
 
-uno::Reference < embed::XEmbeddedObject > EmbeddedObjectContainer::GetEmbeddedObject( const OUString& rName )
+uno::Reference< embed::XEmbeddedObject>
+EmbeddedObjectContainer::GetEmbeddedObject(
+        const OUString& rName, OUString const*const pBaseURL)
 {
     SAL_WARN_IF( rName.isEmpty(), "comphelper.container", "Empty object name!");
 
@@ -319,12 +321,15 @@ uno::Reference < embed::XEmbeddedObject > EmbeddedObjectContainer::GetEmbeddedOb
     if ( aIt != pImpl->maObjectContainer.end() )
         xObj = (*aIt).second;
     else
-        xObj = Get_Impl( rName, uno::Reference < embed::XEmbeddedObject >() );
+        xObj = Get_Impl(rName, uno::Reference<embed::XEmbeddedObject>(), pBaseURL);
 
     return xObj;
 }
 
-uno::Reference < embed::XEmbeddedObject > EmbeddedObjectContainer::Get_Impl( const OUString& rName, const uno::Reference < embed::XEmbeddedObject >& xCopy )
+uno::Reference<embed::XEmbeddedObject> EmbeddedObjectContainer::Get_Impl(
+        const OUString& rName,
+        const uno::Reference<embed::XEmbeddedObject>& xCopy,
+        rtl::OUString const*const pBaseURL)
 {
     uno::Reference < embed::XEmbeddedObject > xObj;
     try
@@ -344,13 +349,20 @@ uno::Reference < embed::XEmbeddedObject > EmbeddedObjectContainer::Get_Impl( con
         // object was not added until now - should happen only by calling this method from "inside"
         //TODO/LATER: it would be good to detect an error when an object should be created already, but isn't (not an "inside" call)
         uno::Reference < embed::XEmbeddedObjectCreator > xFactory = embed::EmbeddedObjectCreator::create( ::comphelper::getProcessComponentContext() );
-        uno::Sequence< beans::PropertyValue > aObjDescr( xCopy.is() ? 2 : 1 );
+        uno::Sequence< beans::PropertyValue > aObjDescr(1 + (xCopy.is() ? 1 : 0) + (pBaseURL ? 1 : 0));
         aObjDescr[0].Name = "Parent";
         aObjDescr[0].Value <<= pImpl->m_xModel.get();
+        sal_Int32 i = 1;
+        if (pBaseURL)
+        {
+            aObjDescr[i].Name = "DefaultParentBaseURL";
+            aObjDescr[i].Value <<= *pBaseURL;
+            ++i;
+        }
         if ( xCopy.is() )
         {
-            aObjDescr[1].Name = "CloneFrom";
-            aObjDescr[1].Value <<= xCopy;
+            aObjDescr[i].Name = "CloneFrom";
+            aObjDescr[i].Value <<= xCopy;
         }
 
         uno::Sequence< beans::PropertyValue > aMediaDescr( 1 );
diff --git a/include/comphelper/embeddedobjectcontainer.hxx b/include/comphelper/embeddedobjectcontainer.hxx
index 842a3e7..a689ca6 100644
--- a/include/comphelper/embeddedobjectcontainer.hxx
+++ b/include/comphelper/embeddedobjectcontainer.hxx
@@ -43,6 +43,7 @@ namespace comphelper
         virtual com::sun::star::uno::Reference < com::sun::star::embed::XStorage > getStorage() const = 0;
         virtual ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler > getInteractionHandler() const = 0;
         virtual bool isEnableSetModified() const = 0;
+        virtual OUString getDocumentBaseURL() const = 0;
 
     protected:
         ~IEmbeddedHelper() {}
@@ -54,7 +55,8 @@ class COMPHELPER_DLLPUBLIC EmbeddedObjectContainer
     EmbedImpl*  pImpl;
 
     ::com::sun::star::uno::Reference < ::com::sun::star::embed::XEmbeddedObject > Get_Impl( const OUString&,
-            const ::com::sun::star::uno::Reference < ::com::sun::star::embed::XEmbeddedObject >& xCopy);
+            const ::com::sun::star::uno::Reference < ::com::sun::star::embed::XEmbeddedObject >& xCopy,
+            OUString const* pBaseURL = nullptr);
 
 public:
     // add an embedded object to the container storage
@@ -92,7 +94,7 @@ public:
     OUString     GetEmbeddedObjectName( const ::com::sun::star::uno::Reference < ::com::sun::star::embed::XEmbeddedObject >& );
 
     // retrieve an embedded object by name that either has been added already or is available in the container storage
-    ::com::sun::star::uno::Reference < ::com::sun::star::embed::XEmbeddedObject > GetEmbeddedObject( const OUString& );
+    ::com::sun::star::uno::Reference < ::com::sun::star::embed::XEmbeddedObject > GetEmbeddedObject( const OUString&, OUString const* pBaseURL = nullptr );
 
     // create an object from a ClassId
     ::com::sun::star::uno::Reference < ::com::sun::star::embed::XEmbeddedObject >
diff --git a/include/sfx2/objsh.hxx b/include/sfx2/objsh.hxx
index 437f150..13f3b86 100644
--- a/include/sfx2/objsh.hxx
+++ b/include/sfx2/objsh.hxx
@@ -589,6 +589,8 @@ public:
     {
         return IsEnableSetModified();
     }
+    virtual OUString getDocumentBaseURL() const SAL_OVERRIDE;
+
     comphelper::EmbeddedObjectContainer&    GetEmbeddedObjectContainer() const;
     void    ClearEmbeddedObjects();
 
diff --git a/reportdesign/inc/ReportDefinition.hxx b/reportdesign/inc/ReportDefinition.hxx
index 18ac1b8..cf3da36 100644
--- a/reportdesign/inc/ReportDefinition.hxx
+++ b/reportdesign/inc/ReportDefinition.hxx
@@ -407,6 +407,7 @@ namespace reportdesign
         virtual ::comphelper::EmbeddedObjectContainer& getEmbeddedObjectContainer() const SAL_OVERRIDE;
         virtual ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler > getInteractionHandler() const SAL_OVERRIDE;
         virtual bool isEnableSetModified() const SAL_OVERRIDE;
+        virtual OUString getDocumentBaseURL() const SAL_OVERRIDE;
 
         ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > getContext() const;
 
diff --git a/reportdesign/source/core/api/ReportDefinition.cxx b/reportdesign/source/core/api/ReportDefinition.cxx
index 42b0baf..a3f4663 100644
--- a/reportdesign/source/core/api/ReportDefinition.cxx
+++ b/reportdesign/source/core/api/ReportDefinition.cxx
@@ -2521,6 +2521,11 @@ bool OReportDefinition::isEnableSetModified() const
     return true;
 }
 
+OUString OReportDefinition::getDocumentBaseURL() const
+{
+    return const_cast<OReportDefinition*>(this)->getURL();
+}
+
 uno::Reference< frame::XTitle > OReportDefinition::impl_getTitleHelper_throw()
 {
     SolarMutexGuard aSolarGuard;
diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx
index d431a1e..be8ecd0 100644
--- a/sfx2/source/doc/objstor.cxx
+++ b/sfx2/source/doc/objstor.cxx
@@ -3641,6 +3641,7 @@ bool SfxObjectShell::QuerySaveSizeExceededModules_Impl( const uno::Reference< ta
     return true;
 }
 
+// comphelper::IEmbeddedHelper
 uno::Reference< task::XInteractionHandler > SfxObjectShell::getInteractionHandler() const
 {
     uno::Reference< task::XInteractionHandler > xRet;
@@ -3649,4 +3650,9 @@ uno::Reference< task::XInteractionHandler > SfxObjectShell::getInteractionHandle
     return xRet;
 }
 
+OUString SfxObjectShell::getDocumentBaseURL() const
+{
+    return GetMedium()->GetBaseURL();
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/xml/xmleohlp.cxx b/svx/source/xml/xmleohlp.cxx
index 3d69924..ffdb37d 100644
--- a/svx/source/xml/xmleohlp.cxx
+++ b/svx/source/xml/xmleohlp.cxx
@@ -444,7 +444,8 @@ bool SvXMLEmbeddedObjectHelper::ImplReadObject(
     //             server that was used to create the object. pClassId could be used to specify the server that should
     //             be used for the next opening, but this information seems to be out of the file format responsibility
     //             area.
-    rContainer.GetEmbeddedObject( aName );
+    OUString const baseURL(mpDocPersist->getDocumentBaseURL());
+    rContainer.GetEmbeddedObject(aName, &baseURL);
 
     return true;
 }
diff --git a/sw/ooxmlexport_setup.mk b/sw/ooxmlexport_setup.mk
index 041ac9e..7b33349 100644
--- a/sw/ooxmlexport_setup.mk
+++ b/sw/ooxmlexport_setup.mk
@@ -66,6 +66,7 @@ define sw_ooxmlexport_components
 	ucb/source/ucp/file/ucpfile1 \
 	unotools/util/utl \
 	unoxml/source/service/unoxml \
+	unoxml/source/rdf/unordf \
 	uui/util/uui \
 	writerfilter/util/writerfilter \
 	xmloff/util/xo
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx
index 224e546..28506e1 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx
@@ -475,10 +475,32 @@ DECLARE_OOXMLEXPORT_TEST(testTableBorders, "table-borders.docx")
 
 DECLARE_OOXMLEXPORT_TEST(testFdo51550, "fdo51550.odt")
 {
-    // The problem was that we lacked the fallback to export the replacement graphic for OLE objects.
-    uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
-    uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xDraws->getCount());
+    // The problem was that we lacked the fallback to export the replacement
+    // graphic for OLE objects.  But we can actually export the OLE itself now,
+    // so check that instead.
+    uno::Reference<text::XTextEmbeddedObjectsSupplier> xTextEmbeddedObjectsSupplier(mxComponent, uno::UNO_QUERY);
+    uno::Reference<container::XIndexAccess> xEmbeddedObjects(xTextEmbeddedObjectsSupplier->getEmbeddedObjects(), uno::UNO_QUERY);
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xEmbeddedObjects->getCount());
+
+    xmlDocPtr pXmlDocCT = parseExport("[Content_Types].xml");
+
+    if (!pXmlDocCT)
+       return; // initial import
+
+    assertXPath(pXmlDocCT, "/ContentType:Types/ContentType:Override[@PartName='/word/embeddings/oleObject1.xlsx']", "ContentType", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+
+    // check the rels too
+    xmlDocPtr pXmlDocRels = parseExport("word/_rels/document.xml.rels");
+    assertXPath(pXmlDocRels,
+        "/rels:Relationships/rels:Relationship[@Target='embeddings/oleObject1.xlsx']",
+        "Type",
+        "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package");
+    // check the content too
+    xmlDocPtr pXmlDocContent = parseExport("word/document.xml");
+    assertXPath(pXmlDocContent,
+        "/w:document/w:body/w:p/w:r/w:object/o:OLEObject",
+        "ProgID",
+        "Excel.Sheet.12");
 }
 
 /*
commit 4d29e69ae1f0c4a35a6785297cdc408762228d92
Author: Eike Rathke <erack at redhat.com>
Date:   Thu Dec 17 15:41:31 2015 +0100

    out-of-bounds arg mapping access, this was always wrong but never hit it seems
    
    Change-Id: I15843b320ac8ddcefce8094da7aa7c6b81b42e4f
    (cherry picked from commit 5b404cc2adcea04938c8159c0bc84a8cd44ec5df)
    Reviewed-on: https://gerrit.libreoffice.org/20773
    Reviewed-by: David Tardon <dtardon at redhat.com>
    Tested-by: David Tardon <dtardon at redhat.com>
    (cherry picked from commit aed57fec1530b4f377f8105b167ab9343c22bc37)

diff --git a/formula/source/ui/dlg/parawin.cxx b/formula/source/ui/dlg/parawin.cxx
index f990dea..b73ac6a 100644
--- a/formula/source/ui/dlg/parawin.cxx
+++ b/formula/source/ui/dlg/parawin.cxx
@@ -118,7 +118,7 @@ void ParaWin::UpdateArgDesc( sal_uInt16 nArg )
 
         if ( nArgs < VAR_ARGS )
         {
-            sal_uInt16 nRealArg = (aVisibleArgMapping.size() < nArg) ? aVisibleArgMapping[nArg] : nArg;
+            sal_uInt16 nRealArg = (nArg < aVisibleArgMapping.size()) ? aVisibleArgMapping[nArg] : nArg;
             aArgDesc  = pFuncDesc->getParameterDescription(nRealArg);
             aArgName  = pFuncDesc->getParameterName(nRealArg);
             aArgName += " ";
commit d2a48f8b5b9f3adc2330cf3a9544d9db0916e550
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Dec 17 10:52:13 2015 +0000

    guard against null Foundry
    
    Change-Id: I8aabc68e8dfb9376cafe4cc709b18344da083a01
    (cherry picked from commit 2f0fba494e78ede3b6691534983f6dd7e0677a7e)
    (cherry picked from commit 51a1b41ab4a840544e5454d1d4234b443edd5466)
    Reviewed-on: https://gerrit.libreoffice.org/20755
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: David Tardon <dtardon at redhat.com>
    (cherry picked from commit f1c1380c3257b27c558145a33c7b6d6e0fdf2957)

diff --git a/lotuswordpro/source/filter/lwpfrib.cxx b/lotuswordpro/source/filter/lwpfrib.cxx
index e1a9b8c..d578007 100644
--- a/lotuswordpro/source/filter/lwpfrib.cxx
+++ b/lotuswordpro/source/filter/lwpfrib.cxx
@@ -250,14 +250,14 @@ void LwpFrib::RegisterStyle(LwpFoundry* pFoundry)
     m_StyleName.clear();
     XFStyleManager* pXFStyleManager = LwpGlobalMgr::GetInstance()->GetXFStyleManager();
     XFTextStyle* pNamedStyle = nullptr;
-    if (m_pModifiers->HasCharStyle)
+    if (m_pModifiers->HasCharStyle && pFoundry)
     {
         pNamedStyle = static_cast<XFTextStyle*>
                                 (pFoundry->GetStyleManager()->GetStyle(m_pModifiers->CharStyleID));
     }
     if (pNamedStyle)
     {
-        if (m_pModifiers->FontID)
+        if (m_pModifiers->FontID && pFoundry)
         {
             pStyle = new XFTextStyle();
             *pStyle = *pNamedStyle;
@@ -277,7 +277,7 @@ void LwpFrib::RegisterStyle(LwpFoundry* pFoundry)
     }
     else
     {
-        if (m_pModifiers->FontID)
+        if (m_pModifiers->FontID && pFoundry)
         {
             pStyle = new XFTextStyle();
             pFont = pFoundry->GetFontManger().CreateFont(m_pModifiers->FontID);
commit 1e382999244e80ecdd50b411d755a24f8d73fc70
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Dec 11 16:55:55 2015 +0100

    sw: extend various OOXML export test to check embedded objects
    
    (cherry picked from commit 1af4dbd827b615a10e4686486fa9034e7adf1289)
    (cherry picked from commit e2bb242eb20f8bd24e3f1033c09dd1d379877084)
    
    sw: extend some more OOXML export test to check embedded objects
    
    (cherry picked from commit 988f1c71214870cb0a3df7d156eefd64e096bf0b)
    (cherry picked from commit b676e97dd30272171dc07c8e5ddc3e562f5ebb1a)
    
    Change-Id: Ie1047a2a213632f05b0ae091a3a7e4118a271082
    Reviewed-on: https://gerrit.libreoffice.org/20760
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit e3c741d7e59aada98ea6648b03f7a5a36cca4520)

diff --git a/sw/qa/extras/inc/swmodeltestbase.hxx b/sw/qa/extras/inc/swmodeltestbase.hxx
index 6b91c23..879c4f9 100644
--- a/sw/qa/extras/inc/swmodeltestbase.hxx
+++ b/sw/qa/extras/inc/swmodeltestbase.hxx
@@ -697,6 +697,7 @@ protected:
         xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("lc"), BAD_CAST("http://schemas.openxmlformats.org/drawingml/2006/lockedCanvas"));
         xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("extended-properties"), BAD_CAST("http://schemas.openxmlformats.org/officeDocument/2006/extended-properties"));
         xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("a14"), BAD_CAST("http://schemas.microsoft.com/office/drawing/2010/main"));
+        xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("c"), BAD_CAST("http://schemas.openxmlformats.org/drawingml/2006/chart"));
         xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("o"), BAD_CAST("urn:schemas-microsoft-com:office:office"));
         // odt
         xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("office"), BAD_CAST("urn:oasis:names:tc:opendocument:xmlns:office:1.0"));
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
index c870263..05a0dea 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
@@ -305,6 +305,30 @@ DECLARE_OOXMLEXPORT_TEST(testChartDupe, "chart-dupe.docx")
     uno::Reference<container::XIndexAccess> xEmbeddedObjects(xTextEmbeddedObjectsSupplier->getEmbeddedObjects(), uno::UNO_QUERY);
     // This was 2, on second import we got a duplicated chart copy.
     CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xEmbeddedObjects->getCount());
+
+    xmlDocPtr pXmlDocCT = parseExport("[Content_Types].xml");
+
+    if (!pXmlDocCT)
+       return; // initial import
+
+    assertXPath(pXmlDocCT,
+        "/ContentType:Types/ContentType:Override[@PartName='/word/charts/chart1.xml']",
+        "ContentType",
+        "application/vnd.openxmlformats-officedocument.drawingml.chart+xml");
+    assertXPath(pXmlDocCT, "/ContentType:Types/ContentType:Override[@PartName='/word/embeddings/Microsoft_Excel_Worksheet1.xlsx']", "ContentType", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+
+    // check the rels too
+    xmlDocPtr pXmlDocRels = parseExport("word/charts/_rels/chart1.xml.rels");
+    assertXPath(pXmlDocRels,
+        "/rels:Relationships/rels:Relationship[@Target='../embeddings/Microsoft_Excel_Worksheet1.xlsx']",
+        "Type",
+        "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package");
+    // check the content too
+    xmlDocPtr pXmlDocChart1 = parseExport("word/charts/chart1.xml");
+    assertXPath(pXmlDocChart1,
+        "/c:chartSpace/c:externalData",
+        "id",
+        "rId1");
 }
 
 DECLARE_OOXMLEXPORT_TEST(testPositionAndRotation, "position-and-rotation.docx")
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
index b5c8836..1a16cba 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
@@ -390,6 +390,27 @@ DECLARE_OOXMLEXPORT_TEST(testChartInFooter, "chart-in-footer.docx")
     // Check footer1.xml.rels contains in doc after roundtrip.
     // Check Id = rId1 in footer1.xml.rels
     assertXPath(pXmlDoc,"/rels:Relationships/rels:Relationship","Id","rId1");
+    assertXPath(pXmlDoc,
+        "/rels:Relationships/rels:Relationship[@Id='rId1']",
+        "Type",
+        "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart");
+
+    xmlDocPtr pXmlDocCT = parseExport("[Content_Types].xml");
+    assertXPath(pXmlDocCT,
+        "/ContentType:Types/ContentType:Override[@PartName='/word/charts/chart1.xml']",
+        "ContentType",
+        "application/vnd.openxmlformats-officedocument.drawingml.chart+xml");
+
+    // check the content too
+    xmlDocPtr pXmlDocFooter1 = parseExport("word/footer1.xml");
+    assertXPath(pXmlDocFooter1,
+        "/w:ftr/w:p[1]/w:r/w:drawing/wp:inline/a:graphic/a:graphicData",
+        "uri",
+        "http://schemas.openxmlformats.org/drawingml/2006/chart");
+    assertXPath(pXmlDocFooter1,
+        "/w:ftr/w:p[1]/w:r/w:drawing/wp:inline/a:graphic/a:graphicData/c:chart",
+        "id",
+        "rId1");
 
     uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
     if (xDrawPageSupplier.is())
@@ -516,7 +537,26 @@ DECLARE_OOXMLEXPORT_TEST(testOleObject, "test_ole_object.docx")
     if (!pXmlDoc)
         return;
 
-     assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r/w:object/v:shape/v:imagedata", "o:title", "");
+    assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r/w:object/v:shape/v:imagedata", "o:title", "");
+    assertXPath(pXmlDoc,
+        "/w:document/w:body/w:p[2]/w:r/w:object/o:OLEObject",
+        "DrawAspect",
+        "Content");
+    // TODO: ProgID="Package" - what is this? Zip with 10k extra header?
+
+    // check the rels too
+    xmlDocPtr pXmlDocRels = parseExport("word/_rels/document.xml.rels");
+    assertXPath(pXmlDocRels,
+        "/rels:Relationships/rels:Relationship[@Target='embeddings/oleObject1.bin']",
+        "Type",
+        "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject");
+    // check the media type too
+    xmlDocPtr pXmlDocCT = parseExport("[Content_Types].xml");
+    assertXPath(pXmlDocCT,
+        "/ContentType:Types/ContentType:Override[@PartName='/word/embeddings/oleObject1.bin']",
+        "ContentType",
+        "application/vnd.openxmlformats-officedocument.oleObject");
+
 }
 
 DECLARE_OOXMLEXPORT_TEST(testFdo74792, "fdo74792.docx")
@@ -681,6 +721,26 @@ DECLARE_OOXMLEXPORT_TEST(testOLEObjectinHeader, "2129393649.docx")
         return;
 
     assertXPath(pXmlDoc,"/rels:Relationships/rels:Relationship[1]","Id","rId1");
+
+    xmlDocPtr pXmlDocCT = parseExport("[Content_Types].xml");
+
+    // check the media type too
+    assertXPath(pXmlDocCT,
+        "/ContentType:Types/ContentType:Override[@PartName='/word/embeddings/oleObject1.bin']",
+        "ContentType",
+        "application/vnd.openxmlformats-officedocument.oleObject");
+
+    // check the content too
+    xmlDocPtr pXmlDocHeader1 = parseExport("word/header1.xml");
+    assertXPath(pXmlDocHeader1,
+        "/w:hdr/w:tbl/w:tr[1]/w:tc[2]/w:p[1]/w:r/w:object/o:OLEObject",
+        "ProgID",
+        "Word.Picture.8");
+    xmlDocPtr pXmlDocHeader2 = parseExport("word/header2.xml");
+    assertXPath(pXmlDocHeader2,
+        "/w:hdr/w:tbl/w:tr[1]/w:tc[2]/w:p[1]/w:r/w:object/o:OLEObject",
+        "ProgID",
+        "Word.Picture.8");
 }
 
 DECLARE_OOXMLEXPORT_TEST(test_ClosingBrace, "2120112713.docx")
@@ -769,6 +829,19 @@ DECLARE_OOXMLEXPORT_TEST(testContentTypeXLSM, "fdo76098.docx")
        return;
 
     assertXPath(pXmlDoc, "/ContentType:Types/ContentType:Override[@PartName='/word/embeddings/Microsoft_Excel_Macro-Enabled_Worksheet1.xlsm']", "ContentType", "application/vnd.ms-excel.sheet.macroEnabled.12");
+
+    // check the rels too
+    xmlDocPtr pXmlDocRels = parseExport("word/charts/_rels/chart1.xml.rels");
+    assertXPath(pXmlDocRels,
+        "/rels:Relationships/rels:Relationship[@Target='../embeddings/Microsoft_Excel_Macro-Enabled_Worksheet1.xlsm']",
+        "Type",
+        "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package");
+    // check the content too
+    xmlDocPtr pXmlDocChart1 = parseExport("word/charts/chart1.xml");
+    assertXPath(pXmlDocChart1,
+        "/c:chartSpace/c:externalData",
+        "id",
+        "rId1");
 }
 
 DECLARE_OOXMLEXPORT_TEST(test76108, "test76108.docx")
@@ -825,6 +898,20 @@ DECLARE_OOXMLEXPORT_TEST(testEmbeddedExcelChart, "EmbeddedExcelChart.docx")
         "/ContentType:Types/ContentType:Override[@PartName='/word/embeddings/oleObject1.xls']",
         "ContentType",
         "application/vnd.ms-excel");
+
+    // check the rels too
+    xmlDocPtr pXmlDocRels = parseExport("word/_rels/document.xml.rels");
+    assertXPath(pXmlDocRels,
+        "/rels:Relationships/rels:Relationship[@Target='embeddings/oleObject1.xls']",
+        "Type",
+        "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject");
+
+    // check the content too
+    xmlDocPtr pXmlDocContent = parseExport("word/document.xml");
+    assertXPath(pXmlDocContent,
+        "/w:document/w:body/w:p/w:r/w:object/o:OLEObject",
+        "ProgID",
+        "Excel.Chart.8");
 }
 
 DECLARE_OOXMLEXPORT_TEST(testTdf83227, "tdf83227.docx")
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx
index 50545cc..c709513 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx
@@ -342,6 +342,19 @@ DECLARE_OOXMLEXPORT_TEST(testContentTypeOLE, "fdo77759.docx")
                 "/ContentType:Types/ContentType:Override[@ContentType='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']",
                 "PartName",
                 "/word/embeddings/oleObject1.xlsx");
+
+    // check the rels too
+    xmlDocPtr pXmlDocRels = parseExport("word/_rels/document.xml.rels");
+    assertXPath(pXmlDocRels,
+        "/rels:Relationships/rels:Relationship[@Target='embeddings/oleObject1.xlsx']",
+        "Type",
+        "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package");
+    // check the content too
+    xmlDocPtr pXmlDocContent = parseExport("word/document.xml");
+    assertXPath(pXmlDocContent,
+        "/w:document/w:body/w:p[1]/w:r/w:object/o:OLEObject",
+        "ProgID",
+        "Excel.Sheet.12");
 }
 
 DECLARE_OOXMLEXPORT_TEST(testfdo78420, "fdo78420.docx")
@@ -547,6 +560,19 @@ DECLARE_OOXMLEXPORT_TEST(testfdo79968_sldx, "fdo79968.docx")
                 "/ContentType:Types/ContentType:Override[@ContentType='application/vnd.openxmlformats-officedocument.presentationml.slide']",
                 "PartName",
                 "/word/embeddings/oleObject1.sldx");
+
+    // check the rels too
+    xmlDocPtr pXmlDocRels = parseExport("word/_rels/document.xml.rels");
+    assertXPath(pXmlDocRels,
+        "/rels:Relationships/rels:Relationship[@Target='embeddings/oleObject1.sldx']",
+        "Type",
+        "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package");
+    // check the content too
+    xmlDocPtr pXmlDocContent = parseExport("word/document.xml");
+    assertXPath(pXmlDocContent,
+        "/w:document/w:body/w:p[1]/w:r/w:object/o:OLEObject",
+        "ProgID",
+        "PowerPoint.Slide.12");
 }
 
 DECLARE_OOXMLEXPORT_TEST(testfdo79969_xlsb, "fdo79969_xlsb.docx")
@@ -561,6 +587,19 @@ DECLARE_OOXMLEXPORT_TEST(testfdo79969_xlsb, "fdo79969_xlsb.docx")
                 "/ContentType:Types/ContentType:Override[@ContentType='application/vnd.ms-excel.sheet.binary.macroEnabled.12']",
                 "PartName",
                 "/word/embeddings/oleObject1.xlsb");
+
+    // check the rels too
+    xmlDocPtr pXmlDocRels = parseExport("word/_rels/document.xml.rels");
+    assertXPath(pXmlDocRels,
+        "/rels:Relationships/rels:Relationship[@Target='embeddings/oleObject1.xlsb']",
+        "Type",
+        "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package");
+    // check the content too
+    xmlDocPtr pXmlDocContent = parseExport("word/document.xml");
+    assertXPath(pXmlDocContent,
+        "/w:document/w:body/w:p[1]/w:r/w:object/o:OLEObject",
+        "ProgID",
+        "Excel.SheetBinaryMacroEnabled.12");
 }
 
 DECLARE_OOXMLEXPORT_TEST(testfdo80097, "fdo80097.docx")
@@ -638,6 +677,19 @@ DECLARE_OOXMLEXPORT_TEST(testfdo79969_xlsm, "fdo79969_xlsm.docx")
                 "/ContentType:Types/ContentType:Override[@ContentType='application/vnd.ms-excel.sheet.macroEnabled.12']",
                 "PartName",
                 "/word/embeddings/oleObject1.xlsm");
+
+    // check the rels too
+    xmlDocPtr pXmlDocRels = parseExport("word/_rels/document.xml.rels");
+    assertXPath(pXmlDocRels,
+        "/rels:Relationships/rels:Relationship[@Target='embeddings/oleObject1.xlsm']",
+        "Type",
+        "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package");
+    // check the content too
+    xmlDocPtr pXmlDocContent = parseExport("word/document.xml");
+    assertXPath(pXmlDocContent,
+        "/w:document/w:body/w:p[1]/w:r/w:object/o:OLEObject",
+        "ProgID",
+        "Excel.SheetMacroEnabled.12");
 }
 
 DECLARE_OOXMLEXPORT_TEST(testfdo80522,"fdo80522.docx")
@@ -651,6 +703,19 @@ DECLARE_OOXMLEXPORT_TEST(testfdo80522,"fdo80522.docx")
                 "/ContentType:Types/ContentType:Override[@ContentType='application/vnd.ms-word.document.macroEnabled.12']",
                 "PartName",
                 "/word/embeddings/oleObject1.docm");
+
+    // check the rels too
+    xmlDocPtr pXmlDocRels = parseExport("word/_rels/document.xml.rels");
+    assertXPath(pXmlDocRels,
+        "/rels:Relationships/rels:Relationship[@Target='embeddings/oleObject1.docm']",
+        "Type",
+        "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package");
+    // check the content too
+    xmlDocPtr pXmlDocContent = parseExport("word/document.xml");
+    assertXPath(pXmlDocContent,
+        "/w:document/w:body/w:p[1]/w:r/w:object/o:OLEObject",
+        "ProgID",
+        "Word.DocumentMacroEnabled.12");
 }
 
 DECLARE_OOXMLEXPORT_TEST(testfdo80523_pptm,"fdo80523_pptm.docx")
@@ -664,6 +729,19 @@ DECLARE_OOXMLEXPORT_TEST(testfdo80523_pptm,"fdo80523_pptm.docx")
                 "/ContentType:Types/ContentType:Override[@ContentType='application/vnd.ms-powerpoint.presentation.macroEnabled.12']",
                 "PartName",
                 "/word/embeddings/oleObject1.pptm");
+
+    // check the rels too
+    xmlDocPtr pXmlDocRels = parseExport("word/_rels/document.xml.rels");
+    assertXPath(pXmlDocRels,
+        "/rels:Relationships/rels:Relationship[@Target='embeddings/oleObject1.pptm']",
+        "Type",
+        "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package");
+    // check the content too
+    xmlDocPtr pXmlDocContent = parseExport("word/document.xml");
+    assertXPath(pXmlDocContent,
+        "/w:document/w:body/w:p[1]/w:r/w:object/o:OLEObject",
+        "ProgID",
+        "PowerPoint.ShowMacroEnabled.12");
 }
 
 DECLARE_OOXMLEXPORT_TEST(testfdo80523_sldm,"fdo80523_sldm.docx")
@@ -677,6 +755,19 @@ DECLARE_OOXMLEXPORT_TEST(testfdo80523_sldm,"fdo80523_sldm.docx")
                 "/ContentType:Types/ContentType:Override[@ContentType='application/vnd.ms-powerpoint.slide.macroEnabled.12']",
                 "PartName",
                 "/word/embeddings/oleObject1.sldm");
+
+    // check the rels too
+    xmlDocPtr pXmlDocRels = parseExport("word/_rels/document.xml.rels");
+    assertXPath(pXmlDocRels,
+        "/rels:Relationships/rels:Relationship[@Target='embeddings/oleObject1.sldm']",
+        "Type",
+        "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package");
+    // check the content too
+    xmlDocPtr pXmlDocContent = parseExport("word/document.xml");
+    assertXPath(pXmlDocContent,
+        "/w:document/w:body/w:p[1]/w:r/w:object/o:OLEObject",
+        "ProgID",
+        "PowerPoint.SlideMacroEnabled.12");
 }
 
 DECLARE_OOXMLEXPORT_TEST(testfdo80898, "fdo80898.docx")
@@ -691,6 +782,19 @@ DECLARE_OOXMLEXPORT_TEST(testfdo80898, "fdo80898.docx")
                 "/ContentType:Types/ContentType:Override[@ContentType='application/msword']",
                 "PartName",
                 "/word/embeddings/oleObject1.doc");
+
+    // check the rels too
+    xmlDocPtr pXmlDocRels = parseExport("word/_rels/document.xml.rels");
+    assertXPath(pXmlDocRels,
+        "/rels:Relationships/rels:Relationship[@Target='embeddings/oleObject1.doc']",
+        "Type",
+        "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject");
+    // check the content too
+    xmlDocPtr pXmlDocContent = parseExport("word/document.xml");
+    assertXPath(pXmlDocContent,
+        "/w:document/w:body/w:p[1]/w:r/w:object/o:OLEObject",
+        "ProgID",
+        "Word.Document.8");
 }
 
 DECLARE_OOXMLEXPORT_TEST(testTableCellWithDirectFormatting, "fdo80800.docx")
commit 1d8fda8246d485f3fed8e4c0667000f740668061
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed Dec 9 17:06:18 2015 +0100

    sw: DOCX export: convert ODF embedded objects to OOXML
    
    If the user edits an embedded object it is converted to ODF, so we
    really need to be able to store such objects.
    
    Ensure that the proper MediaType is set in [Content_Types].xml,
    the package relationship type in document.xml.rels and
    the proper ProgID attribute in document.xml.
    
    (cherry picked from commit 2a9f1dd27a5df97013f73e61eecf53b2348d055a)
    (cherry picked from commit 456d0315bf3bf3644d309038e266465e21130035)
    
    sw: replace OUStringBuffer
    
    (cherry picked from commit ea50cb70efed40d1ed2ca6806c626ed5fdb71351)
    (cherry picked from commit a0cad01e83b92c61a3e06078f8cb497effb5eb7e)
    
    sw: fix MSVC build, stupid thing can't initialize const members
    
    (cherry picked from commit 159e78791ba40d76ba0d8af6abbd7d629eb6dd85)
    (cherry picked from commit 0050019b54a266db92aa71069668ee58e12a7876)
    
    Change-Id: I3c78c5ab5b4d534213af5e773fe0c6c2c92d9104
    Reviewed-on: https://gerrit.libreoffice.org/20759
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit 0d5c9007f7a999e5a476aeb0cf1d5c83a9a63cfc)

diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
index 9c158ed..b5c8836 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
@@ -747,6 +747,18 @@ DECLARE_OOXMLEXPORT_TEST(testContentTypeDOCX, "fdo80410.docx")
         "/ContentType:Types/ContentType:Override[@PartName='/word/embeddings/oleObject1.docx']",
         "ContentType",
         "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
+    // check the rels too
+    xmlDocPtr pXmlDocRels = parseExport("word/_rels/document.xml.rels");
+    assertXPath(pXmlDocRels,
+        "/rels:Relationships/rels:Relationship[@Target='embeddings/oleObject1.docx']",
+        "Type",
+        "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package");
+    // check the content too
+    xmlDocPtr pXmlDocContent = parseExport("word/document.xml");
+    assertXPath(pXmlDocContent,
+        "/w:document/w:body/w:p[6]/w:r/w:object/o:OLEObject",
+        "ProgID",
+        "Word.Document.12");
 }
 
 DECLARE_OOXMLEXPORT_TEST(testContentTypeXLSM, "fdo76098.docx")
diff --git a/sw/source/filter/ww8/docxexport.cxx b/sw/source/filter/ww8/docxexport.cxx
index df8401d..833c213 100644
--- a/sw/source/filter/ww8/docxexport.cxx
+++ b/sw/source/filter/ww8/docxexport.cxx
@@ -25,8 +25,10 @@
 #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
 #include <com/sun/star/document/XDocumentProperties.hpp>
 #include <com/sun/star/drawing/XShape.hpp>
+#include <com/sun/star/embed/EmbedStates.hpp>
 #include <com/sun/star/i18n/ScriptType.hpp>
 #include <com/sun/star/frame/XModel.hpp>
+#include <com/sun/star/frame/XStorable.hpp>
 #include <com/sun/star/xml/dom/XDocument.hpp>
 #include <com/sun/star/xml/sax/XSAXSerializable.hpp>
 #include <com/sun/star/xml/sax/Writer.hpp>
@@ -70,6 +72,7 @@
 #include "ww8par.hxx"
 #include "ww8scan.hxx"
 #include <oox/token/properties.hxx>
+#include <comphelper/classids.hxx>
 #include <comphelper/embeddedobjectcontainer.hxx>
 #include <comphelper/string.hxx>
 #include <rtl/ustrbuf.hxx>
@@ -462,7 +465,87 @@ static void lcl_ConvertProgID(OUString const& rProgID,
     }
 }
 
-OString DocxExport::WriteOLEObject(SwOLEObj& rObject, OUString const& rProgID)
+static uno::Reference<io::XInputStream> lcl_StoreOwnAsOOXML(
+    uno::Reference<uno::XComponentContext> const& xContext,
+    uno::Reference<embed::XEmbeddedObject> const& xObj,
+    char const*& o_rpProgID,
+    OUString & o_rMediaType, OUString & o_rRelationType, OUString & o_rSuffix)
+{
+    static struct {
+        struct {
+            sal_uInt32 n1;
+            sal_uInt16 n2, n3;
+            sal_uInt8 b8, b9, b10, b11, b12, b13, b14, b15;
+        } ClassId;
+        char const* pFilterName;
+        char const* pMediaType;
+        char const* pProgID;
+        char const* pSuffix;
+    } s_Mapping[] = {
+        { {SO3_SW_CLASSID_60}, "MS Word 2007 XML", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "Word.Document.12", "docx" },
+        { {SO3_SC_CLASSID_60}, "Calc MS Excel 2007 XML", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Excel.Sheet.12", "xlsx" },
+        { {SO3_SIMPRESS_CLASSID_60}, "Impress MS PowerPoint 2007 XML", "application/vnd.openxmlformats-officedocument.presentationml.presentation", "PowerPoint.Show.12", "pptx" },
+        // FIXME: Draw does not appear to have a MSO format export filter?
+//            { {SO3_SDRAW_CLASSID}, "", "", "", "" },
+        { {SO3_SCH_CLASSID_60}, "unused", "", "", "" },
+        { {SO3_SM_CLASSID_60}, "unused", "", "", "" },
+    };
+
+    const char * pFilterName(nullptr);
+    SvGlobalName const classId(xObj->getClassID());
+    for (size_t i = 0; i < SAL_N_ELEMENTS(s_Mapping); ++i)
+    {
+        auto const& rId(s_Mapping[i].ClassId);
+        SvGlobalName const temp(rId.n1, rId.n2, rId.n3, rId.b8, rId.b9, rId.b10, rId.b11, rId.b12, rId.b13, rId.b14, rId.b15);
+        if (temp == classId)
+        {
+            assert(SvGlobalName(SO3_SCH_CLASSID_60) != classId); // chart should be written elsewhere!
+            assert(SvGlobalName(SO3_SM_CLASSID_60) != classId); // formula should be written elsewhere!
+            pFilterName = s_Mapping[i].pFilterName;
+            o_rMediaType = OUString::createFromAscii(s_Mapping[i].pMediaType);
+            o_rpProgID = s_Mapping[i].pProgID;
+            o_rSuffix = OUString::createFromAscii(s_Mapping[i].pSuffix);
+            o_rRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
+            break;
+        }
+    }
+
+    if (!pFilterName)
+    {
+        SAL_WARN("sw.ww8", "DocxExport::WriteOLEObject: unknown ClassId " << classId.GetHexName());
+        return nullptr;
+    }
+
+    if (embed::EmbedStates::LOADED == xObj->getCurrentState())
+    {
+        xObj->changeState(embed::EmbedStates::RUNNING);
+    }
+    // use a temp stream - while it would work to store directly to a
+    // fragment stream, an error during export means we'd have to delete it
+    uno::Reference<io::XStream> const xTempStream(
+        xContext->getServiceManager()->createInstanceWithContext(
+            "com.sun.star.comp.MemoryStream", xContext),
+        uno::UNO_QUERY_THROW);
+    uno::Sequence<beans::PropertyValue> args(2);
+    args[0].Name = "OutputStream";
+    args[0].Value <<= xTempStream->getOutputStream();
+    args[1].Name = "FilterName";
+    args[1].Value <<= OUString::createFromAscii(pFilterName);
+    uno::Reference<frame::XStorable> xStorable(xObj->getComponent(), uno::UNO_QUERY);
+    try
+    {
+        xStorable->storeToURL("private:stream", args);
+    }
+    catch (uno::Exception const& e)
+    {
+        SAL_WARN("sw.ww8", "DocxExport::WriteOLEObject: exception: \"" << e.Message << "\"");
+        return nullptr;
+    }
+    xTempStream->getOutputStream()->closeOutput();
+    return xTempStream->getInputStream();
+}
+
+OString DocxExport::WriteOLEObject(SwOLEObj& rObject, OUString & io_rProgID)
 {
     uno::Reference <embed::XEmbeddedObject> xObj( rObject.GetOleRef() );
     comphelper::EmbeddedObjectContainer* aContainer = rObject.GetObject().GetContainer();
@@ -470,20 +553,46 @@ OString DocxExport::WriteOLEObject(SwOLEObj& rObject, OUString const& rProgID)
 
     OUString sMediaType;
     OUString sRelationType;
-    OUString sFileExtension;
-    lcl_ConvertProgID(rProgID, sMediaType, sRelationType, sFileExtension);
-
-    OUString sFileName = "embeddings/oleObject" + OUString::number( ++m_nOLEObjects ) + "." + sFileExtension;
-    uno::Reference< io::XOutputStream > xOutStream = GetFilter().openFragmentStream( OUStringBuffer()
-                                                                      .appendAscii( "word/" )
-                                                                      .append( sFileName )
-                                                                      .makeStringAndClear(),
-                                                                      sMediaType );
-    OUString sId;
-    if( lcl_CopyStream( xInStream, xOutStream ) )
+    OUString sSuffix;
+    const char * pProgID(nullptr);
+
+    if (xInStream.is())
+    {
+        lcl_ConvertProgID(io_rProgID, sMediaType, sRelationType, sSuffix);
+    }
+    else // the object is ODF - either the whole document is
+    {    // ODF, or the OLE was edited so it was converted to ODF
+        uno::Reference<uno::XComponentContext> const xContext(
+            GetFilter().getComponentContext());
+        xInStream = lcl_StoreOwnAsOOXML(xContext, xObj,
+                pProgID, sMediaType, sRelationType, sSuffix);
+    }
+
+    if (!xInStream.is())
+    {
+        return OString();
+    }
+
+    assert(!sMediaType.isEmpty());
+    assert(!sRelationType.isEmpty());
+    assert(!sSuffix.isEmpty());
+    OUString sFileName = "embeddings/oleObject" + OUString::number( ++m_nOLEObjects ) + "." + sSuffix;
+    uno::Reference<io::XOutputStream> const xOutStream =
+        GetFilter().openFragmentStream("word/" + sFileName, sMediaType);
+    assert(xOutStream.is()); // no reason why that could fail
 
+    bool const isExported = lcl_CopyStream(xInStream, xOutStream);
+
+    OUString sId;
+    if (isExported)
+    {
         sId = m_pFilter->addRelation( GetFS()->getOutputStream(),
                 sRelationType, sFileName, false );
+        if (pProgID)
+        {
+            io_rProgID = OUString::createFromAscii(pProgID);
+        }
+    }
 
     return OUStringToOString( sId, RTL_TEXTENCODING_UTF8 );
 }
diff --git a/sw/source/filter/ww8/docxexport.hxx b/sw/source/filter/ww8/docxexport.hxx
index 8705358..c028498 100644
--- a/sw/source/filter/ww8/docxexport.hxx
+++ b/sw/source/filter/ww8/docxexport.hxx
@@ -173,7 +173,7 @@ public:
 
     /// Returns the relationd id
     OString OutputChart( com::sun::star::uno::Reference< com::sun::star::frame::XModel >& xModel, sal_Int32 nCount, ::sax_fastparser::FSHelperPtr m_pSerializer );
-    OString WriteOLEObject(SwOLEObj& rObject, OUString const& rProgID);
+    OString WriteOLEObject(SwOLEObj& rObject, OUString & io_rProgID);
     static bool lcl_CopyStream( css::uno::Reference< css::io::XInputStream> xIn, css::uno::Reference< css::io::XOutputStream > xOut );
 
     /// Writes the shape using drawingML syntax.
commit e4204df293f394360bb6bfb7ae621dae974ffecd
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Dec 3 15:58:12 2015 +0100

    sw: fix DOCX export of embedded OOXML objects
    
    OOXML embedded objects are converted to ODF during export, which
    prevents the export from working, as it expects a stream, and ODF
    uses a storage.
    
    There is already a unit test in testEmbeddedXlsx, but it wrongly
    succeeds because the components necessary to convert from OOXML to ODF
    are missing in the test environment.
    
    (cherry picked from commit 1dac99e7ea45f90bf39eb95eb7bc01f7d79093ef)
    (cherry picked from commit 290cac714b09cd0eccb02caa03452e35b87ebaae)
    
    sw: un-break DOCX formula export
    
    (regression from 1dac99e7ea45f90bf39eb95eb7bc01f7d79093ef)
    
    (cherry picked from commit 3b63d2b9371baa5f526d0fcd41043ec76abb0d50)
    
    Change-Id: Ib4df346e04ecfb54ec1a728535be876db921b884
    Reviewed-on: https://gerrit.libreoffice.org/20469
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit 7689b7b7011e6712ad4b47875927c0a6b9322319)

diff --git a/sw/ooxmlexport_setup.mk b/sw/ooxmlexport_setup.mk
index a3a2182..041ac9e 100644
--- a/sw/ooxmlexport_setup.mk
+++ b/sw/ooxmlexport_setup.mk
@@ -33,6 +33,9 @@ define sw_ooxmlexport_components
 	dbaccess/util/dba \
 	drawinglayer/drawinglayer \
 	embeddedobj/util/embobj \
+	$(if $(filter-out WNT,$(OS)), \
+		embeddedobj/source/msole/emboleobj \
+	) \
 	filter/source/config/cache/filterconfig1 \
 	filter/source/odfflatxml/odfflatxml \
 	filter/source/xmlfilterdetect/xmlfd \
@@ -45,6 +48,9 @@ define sw_ooxmlexport_components
 	package/source/xstor/xstor \
 	package/util/package2 \
 	sax/source/expatwrap/expwrap \
+	sc/util/sc \
+	sc/util/scd \
+	sc/util/scfilt \
 	sw/util/sw \
 	sw/util/swd \
 	sw/util/msword \
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx
index 2f45f74..1dc1c45 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx
@@ -984,6 +984,9 @@ DECLARE_OOXMLEXPORT_TEST(testFileOpenInputOutputError,"floatingtbl_with_formula.
      if (!pXmlDoc)
          return;
       assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:pPr/w:pStyle", "val", "Normal");
+
+    // let's also assert that the formula was exported properly
+    assertXPathContent(pXmlDoc, "//wps:txbx/w:txbxContent/w:tbl/w:tr/w:tc[2]/w:p/m:oMath/m:sSubSup/m:e/m:r/m:t", OUString::fromUtf8("\xcf\x83"));
 }
 
 #endif
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 19eb879..297b17b 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -126,6 +126,7 @@
 #include <com/sun/star/drawing/ShadingPattern.hpp>
 #include <com/sun/star/text/GraphicCrop.hpp>
 #include <com/sun/star/drawing/LineStyle.hpp>
+#include <com/sun/star/embed/EmbedStates.hpp>
 
 #include <algorithm>
 
@@ -4330,22 +4331,27 @@ void DocxAttributeOutput::WriteOLE2Obj( const SdrObject* pSdrObj, SwOLENode& rOL
 
 bool DocxAttributeOutput::WriteOLEChart( const SdrObject* pSdrObj, const Size& rSize )
 {
-    uno::Reference< chart2::XChartDocument > xChartDoc;
     uno::Reference< drawing::XShape > xShape( const_cast<SdrObject*>(pSdrObj)->getUnoShape(), uno::UNO_QUERY );
-    if( xShape.is() )
-    {
-        uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_QUERY );
-        if( xPropSet.is() )
-            xChartDoc.set( xPropSet->getPropertyValue( "Model" ), uno::UNO_QUERY );
-    }
+    if (!xShape.is())
+        return false;
 
-    if( xChartDoc.is() )
-    {
-        m_postponedChart = pSdrObj;
-        m_postponedChartSize = rSize;
-        return true;
-    }
-    return false;
+    uno::Reference<beans::XPropertySet> const xPropSet(xShape, uno::UNO_QUERY);
+    if (!xPropSet.is())
+        return false;
+
+    OUString clsid; // why is the property of type string, not sequence<byte>?
+    xPropSet->getPropertyValue("CLSID") >>= clsid;
+    SAL_WARN_IF(clsid.isEmpty(), "sw.ww8", "OLE without CLSID?");
+    SvGlobalName aClassID;
+    bool const isValid(aClassID.MakeId(clsid));
+    SAL_WARN_IF(!isValid, "sw.ww8", "OLE with invalid CLSID?");
+
+    if (!SotExchange::IsChart(aClassID))
+        return false;
+
+    m_postponedChart = pSdrObj;
+    m_postponedChartSize = rSize;
+    return true;
 }
 
 /*
@@ -4444,6 +4450,10 @@ bool DocxAttributeOutput::WriteOLEMath( const SdrObject*, const SwOLENode& rOLEN
 void DocxAttributeOutput::WritePostponedMath(const SwOLENode* pPostponedMath)
 {
     uno::Reference < embed::XEmbeddedObject > xObj(const_cast<SwOLENode*>(pPostponedMath)->GetOLEObj().GetOleRef());
+    if (embed::EmbedStates::LOADED == xObj->getCurrentState())
+    {   // must be running so there is a Component
+        xObj->changeState(embed::EmbedStates::RUNNING);
+    }
     uno::Reference< uno::XInterface > xInterface( xObj->getComponent(), uno::UNO_QUERY );
     if (!xInterface.is())
     {
commit d68ac7a27b2aa5843a4a5a6659962f57fbe94487
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed Dec 2 16:00:58 2015 +0100

    sw: move ProgId parsing to DocxExport::WriteOLEObject
    
    (cherry picked from commit a7762b56c0f0605d090ed95069db16c6641f769e)
    (cherry picked from commit 6768b669bafa62fe94a81971285e12823c3716e6)
    
    sw: docx export: write something more specific for embedded PDF
    
    Doesn't really change anything, but looks nicer.
    
    (cherry picked from commit 6c569a2ed797aa7ad52f8a7dc6be3bfb3b4b452a)
    (cherry picked from commit f8e628ab3993024e5e5885f99b5e9ebb2c30d467)
    
    Change-Id: Ieb308d717aa661fa51bd1b9dd3d0a12ca61337c1
    Reviewed-on: https://gerrit.libreoffice.org/20758
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit c8c52960f1a23e6871504f890ca33ea0d19557b2)

diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 049d280..19eb879 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -4670,7 +4670,7 @@ void DocxAttributeOutput::WriteOLE( SwOLENode& rNode, const Size& rSize, const S
     OUString sObjectName = aContainer->GetEmbeddedObjectName( xObj );
 
     // set some attributes according to the type of the embedded object
-    OUString sProgID, sMediaType, sRelationType, sFileExtension, sDrawAspect="Content";
+    OUString sProgID, sDrawAspect = "Content";
     for( sal_Int32 i=0; i < aObjectsInteropList.getLength(); ++i )
         if ( aObjectsInteropList[i].Name == sObjectName )
         {
@@ -4690,93 +4690,8 @@ void DocxAttributeOutput::WriteOLE( SwOLENode& rNode, const Size& rSize, const S
             }
     }
 
-    if( sProgID == "Excel.Sheet.12" )
-    {
-        sMediaType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
-        sRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
-        sFileExtension = "xlsx";
-    }
-    else if(sProgID.startsWith("Excel.SheetBinaryMacroEnabled.12") )
-    {
-        sMediaType = "application/vnd.ms-excel.sheet.binary.macroEnabled.12";
-        sRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
-        sFileExtension = "xlsb";
-    }
-    else if( sProgID.startsWith("Excel.SheetMacroEnabled.12") )
-    {
-        sMediaType = "application/vnd.ms-excel.sheet.macroEnabled.12";
-        sRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
-        sFileExtension = "xlsm";
-    }
-    else if( sProgID.startsWith("Excel.Sheet") )
-    {
-        sMediaType = "application/vnd.ms-excel";
-        sRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
-        sFileExtension = "xls";
-    }
-    else if( sProgID == "PowerPoint.Show.12" )
-    {
-        sMediaType = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
-        sRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
-        sFileExtension = "pptx";
-    }
-    else if(sProgID == "PowerPoint.ShowMacroEnabled.12")
-    {
-        sMediaType = "application/vnd.ms-powerpoint.presentation.macroEnabled.12";
-        sRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
-        sFileExtension = "pptm";
-    }
-    else if( sProgID.startsWith("PowerPoint.Show") )
-    {
-        sMediaType = "application/vnd.ms-powerpoint";
-        sRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
-        sFileExtension = "ppt";
-    }
-    else if (sProgID.startsWith("PowerPoint.Slide.12"))
-    {
-        sMediaType = "application/vnd.openxmlformats-officedocument.presentationml.slide";
-       sRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
-       sFileExtension = "sldx";
-    }
-    else if( sProgID == "PowerPoint.SlideMacroEnabled.12" )
-    {
-       sMediaType = "application/vnd.ms-powerpoint.slide.macroEnabled.12";
-       sRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
-       sFileExtension = "sldm";
-    }
-    else if( sProgID == "Word.DocumentMacroEnabled.12" )
-    {
-        sMediaType = "application/vnd.ms-word.document.macroEnabled.12";
-        sRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
-        sFileExtension = "docm";
-    }
-    else if (sProgID == "Word.Document.12")
-    {
-        sMediaType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
-        sRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
-        sFileExtension = "docx";
-    }
-    else if( sProgID == "Word.Document.8" )
-    {
-        sMediaType = "application/msword";
-        sRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
-        sFileExtension = "doc";
-    }
-    else if( sProgID == "Excel.Chart.8" )
-    {
-        sMediaType = "application/vnd.ms-excel";
-        sRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
-        sFileExtension = "xls";
-    }
-    else
-    {
-        sMediaType = "application/vnd.openxmlformats-officedocument.oleObject";
-        sRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
-        sFileExtension = "bin";
-    }
-
     // write embedded file
-    OString sId = m_rExport.WriteOLEObject( aObject, sMediaType, sRelationType, sFileExtension );
+    OString sId = m_rExport.WriteOLEObject(aObject, sProgID);
 
     if( sId.isEmpty() )
     {
diff --git a/sw/source/filter/ww8/docxexport.cxx b/sw/source/filter/ww8/docxexport.cxx
index 1525eaa..df8401d 100644
--- a/sw/source/filter/ww8/docxexport.cxx
+++ b/sw/source/filter/ww8/docxexport.cxx
@@ -366,12 +366,113 @@ OString DocxExport::OutputChart( uno::Reference< frame::XModel >& xModel, sal_In
     return OUStringToOString( sId, RTL_TEXTENCODING_UTF8 );
 }
 
-OString DocxExport::WriteOLEObject( SwOLEObj& rObject, const OUString& sMediaType, const OUString& sRelationType, const OUString& sFileExtension )
+
+static void lcl_ConvertProgID(OUString const& rProgID,
+    OUString & o_rMediaType, OUString & o_rRelationType, OUString & o_rFileExtension)
+{
+    if (rProgID == "Excel.Sheet.12")
+    {
+        o_rMediaType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
+        o_rRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
+        o_rFileExtension = "xlsx";
+    }
+    else if (rProgID.startsWith("Excel.SheetBinaryMacroEnabled.12") )
+    {
+        o_rMediaType = "application/vnd.ms-excel.sheet.binary.macroEnabled.12";
+        o_rRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
+        o_rFileExtension = "xlsb";
+    }
+    else if (rProgID.startsWith("Excel.SheetMacroEnabled.12"))
+    {
+        o_rMediaType = "application/vnd.ms-excel.sheet.macroEnabled.12";
+        o_rRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
+        o_rFileExtension = "xlsm";
+    }
+    else if (rProgID.startsWith("Excel.Sheet"))
+    {
+        o_rMediaType = "application/vnd.ms-excel";
+        o_rRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
+        o_rFileExtension = "xls";
+    }
+    else if (rProgID == "PowerPoint.Show.12")
+    {
+        o_rMediaType = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
+        o_rRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
+        o_rFileExtension = "pptx";
+    }
+    else if (rProgID == "PowerPoint.ShowMacroEnabled.12")
+    {
+        o_rMediaType = "application/vnd.ms-powerpoint.presentation.macroEnabled.12";
+        o_rRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
+        o_rFileExtension = "pptm";
+    }
+    else if (rProgID.startsWith("PowerPoint.Show"))
+    {
+        o_rMediaType = "application/vnd.ms-powerpoint";
+        o_rRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
+        o_rFileExtension = "ppt";
+    }
+    else if (rProgID.startsWith("PowerPoint.Slide.12"))
+    {
+        o_rMediaType = "application/vnd.openxmlformats-officedocument.presentationml.slide";
+       o_rRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
+       o_rFileExtension = "sldx";
+    }
+    else if (rProgID == "PowerPoint.SlideMacroEnabled.12")
+    {
+       o_rMediaType = "application/vnd.ms-powerpoint.slide.macroEnabled.12";
+       o_rRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
+       o_rFileExtension = "sldm";
+    }
+    else if (rProgID == "Word.DocumentMacroEnabled.12")
+    {
+        o_rMediaType = "application/vnd.ms-word.document.macroEnabled.12";
+        o_rRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
+        o_rFileExtension = "docm";
+    }
+    else if (rProgID == "Word.Document.12")
+    {
+        o_rMediaType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
+        o_rRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
+        o_rFileExtension = "docx";
+    }
+    else if (rProgID == "Word.Document.8")
+    {
+        o_rMediaType = "application/msword";
+        o_rRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
+        o_rFileExtension = "doc";
+    }
+    else if (rProgID == "Excel.Chart.8")
+    {
+        o_rMediaType = "application/vnd.ms-excel";
+        o_rRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
+        o_rFileExtension = "xls";
+    }
+    else if (rProgID == "AcroExch.Document.11")
+    {
+        o_rMediaType = "application/pdf";
+        o_rRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
+        o_rFileExtension = "pdf";
+    }
+    else
+    {
+        o_rMediaType = "application/vnd.openxmlformats-officedocument.oleObject";
+        o_rRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
+        o_rFileExtension = "bin";
+    }
+}
+
+OString DocxExport::WriteOLEObject(SwOLEObj& rObject, OUString const& rProgID)
 {
     uno::Reference <embed::XEmbeddedObject> xObj( rObject.GetOleRef() );
     comphelper::EmbeddedObjectContainer* aContainer = rObject.GetObject().GetContainer();
     uno::Reference< io::XInputStream > xInStream = aContainer->GetObjectStream( xObj, NULL );
 
+    OUString sMediaType;
+    OUString sRelationType;
+    OUString sFileExtension;
+    lcl_ConvertProgID(rProgID, sMediaType, sRelationType, sFileExtension);
+
     OUString sFileName = "embeddings/oleObject" + OUString::number( ++m_nOLEObjects ) + "." + sFileExtension;
     uno::Reference< io::XOutputStream > xOutStream = GetFilter().openFragmentStream( OUStringBuffer()
                                                                       .appendAscii( "word/" )
diff --git a/sw/source/filter/ww8/docxexport.hxx b/sw/source/filter/ww8/docxexport.hxx
index ef8ba4c..8705358 100644
--- a/sw/source/filter/ww8/docxexport.hxx
+++ b/sw/source/filter/ww8/docxexport.hxx
@@ -173,7 +173,7 @@ public:
 
     /// Returns the relationd id
     OString OutputChart( com::sun::star::uno::Reference< com::sun::star::frame::XModel >& xModel, sal_Int32 nCount, ::sax_fastparser::FSHelperPtr m_pSerializer );
-    OString WriteOLEObject( SwOLEObj& rObject, const OUString& sMediaType, const OUString& sRelationType, const OUString& sFileExtension );
+    OString WriteOLEObject(SwOLEObj& rObject, OUString const& rProgID);
     static bool lcl_CopyStream( css::uno::Reference< css::io::XInputStream> xIn, css::uno::Reference< css::io::XOutputStream > xOut );
 
     /// Writes the shape using drawingML syntax.
commit 3ce2b3ed8854593745a61c9700c4097dda6a2b95
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Dec 15 22:45:41 2015 +0100

    sw: DOCX export: eliminate chart numbering non-determinism
    
    ... that was causing test failures on some but not all platforms.
    
    (cherry picked from commit c56e0858b081b4dfe78745cf80c829f6c3c2e7b8)
    (cherry picked from commit 2263a59aaf6bc1548046fdda422518a6365ffd17)
    
    Change-Id: I0d04cd6e540ea2693a3ec8511d615a9b0fecf456
    Reviewed-on: https://gerrit.libreoffice.org/20757
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit c7d111b5b238035360b3a866125175f9e285c289)

diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index c728769..049d280 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -4411,10 +4411,9 @@ void DocxAttributeOutput::WritePostponedChart()
             FSEND );
 
         OString aRelId;
-        static sal_Int32 nChartCount = 0;
-        nChartCount++;
+        m_nChartCount++;
         uno::Reference< frame::XModel > xModel( xChartDoc, uno::UNO_QUERY );
-        aRelId = m_rExport.OutputChart( xModel, nChartCount, m_pSerializer );
+        aRelId = m_rExport.OutputChart( xModel, m_nChartCount, m_pSerializer );
 
         m_pSerializer->singleElementNS( XML_c, XML_chart,
             FSNS( XML_xmlns, XML_c ), "http://schemas.openxmlformats.org/drawingml/2006/chart",
@@ -8410,6 +8409,7 @@ DocxAttributeOutput::DocxAttributeOutput( DocxExport &rExport, FSHelperPtr pSeri
       m_startedHyperlink( false ),
       m_nHyperLinkCount(0),
       m_nFieldsInHyperlink( 0 ),
+      m_nChartCount(0),
       m_postponedChart( NULL ),
       pendingPlaceholder( NULL ),
       m_postitFieldsMaxId( 0 ),
diff --git a/sw/source/filter/ww8/docxattributeoutput.hxx b/sw/source/filter/ww8/docxattributeoutput.hxx
index e4c68e9..1ae2835 100644
--- a/sw/source/filter/ww8/docxattributeoutput.hxx
+++ b/sw/source/filter/ww8/docxattributeoutput.hxx
@@ -861,6 +861,8 @@ private:
     std::unique_ptr< std::list<PostponedOLE> > m_pPostponedOLEs;
 
     std::vector<const SwOLENode*> m_aPostponedMaths;
+    /// count charts consistently for unit tests
+    unsigned int m_nChartCount;
     const SdrObject* m_postponedChart;
     Size m_postponedChartSize;
     std::vector<const SdrObject*> m_aPostponedFormControls;
commit 71d1f9e1a91bd79f7c3391b66a0b7988723404d9
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Dec 15 12:35:47 2015 +0100

    sfx2: fix valgrind warning
    
    ==7727== Conditional jump or move depends on uninitialised value(s)
    ==7727==    at 0x9121E24: SfxDockingWindow::Resize() (dockwin.cxx:451)
    ==7727==    by 0x3CADFAC3: SmElementsDockingWindow::Resize()
    (ElementsDockingWindow.cxx:753)
    
    Change-Id: Ie6e8a61f6c295373e5ccad409e2557e7c2dd6c1a
    (cherry picked from commit 8831281942b0ffe3dbdcea6febcda97a2ab665b3)
    (cherry picked from commit 5d9a20b3ab3167242a41a6f5ea951d426677ec29)
    Reviewed-on: https://gerrit.libreoffice.org/20756
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit a3eb2cfdb136ab2d20e21421f0400e2eeca4ff8f)

diff --git a/sfx2/source/dialog/dockwin.cxx b/sfx2/source/dialog/dockwin.cxx
index f376e52..811baf6 100644
--- a/sfx2/source/dialog/dockwin.cxx
+++ b/sfx2/source/dialog/dockwin.cxx
@@ -858,6 +858,7 @@ SfxDockingWindow::SfxDockingWindow( SfxBindings *pBindinx, SfxChildWindow *pCW,
     pImp->nLine = pImp->nDockLine = 0;
     pImp->nPos  = pImp->nDockPos = 0;
     pImp->bNewLine = false;
+    pImp->SetDockAlignment(SfxChildAlignment::NOALIGNMENT);
     pImp->SetLastAlignment(SfxChildAlignment::NOALIGNMENT);
     pImp->aMoveIdle.SetPriority(SchedulerPriority::RESIZE);
     pImp->aMoveIdle.SetIdleHdl(LINK(this,SfxDockingWindow,TimerHdl));
@@ -903,6 +904,7 @@ SfxDockingWindow::SfxDockingWindow( SfxBindings *pBindinx, SfxChildWindow *pCW,
     pImp->nLine = pImp->nDockLine = 0;
     pImp->nPos  = pImp->nDockPos = 0;
     pImp->bNewLine = false;
+    pImp->SetDockAlignment(SfxChildAlignment::NOALIGNMENT);
     pImp->SetLastAlignment(SfxChildAlignment::NOALIGNMENT);
     pImp->aMoveIdle.SetPriority(SchedulerPriority::RESIZE);
     pImp->aMoveIdle.SetIdleHdl(LINK(this,SfxDockingWindow,TimerHdl));
@@ -948,6 +950,7 @@ SfxDockingWindow::SfxDockingWindow( SfxBindings *pBindinx, SfxChildWindow *pCW,
     pImp->nLine = pImp->nDockLine = 0;
     pImp->nPos  = pImp->nDockPos = 0;
     pImp->bNewLine = false;
+    pImp->SetDockAlignment(SfxChildAlignment::NOALIGNMENT);
     pImp->SetLastAlignment(SfxChildAlignment::NOALIGNMENT);
     pImp->aMoveIdle.SetPriority(SchedulerPriority::RESIZE);
     pImp->aMoveIdle.SetIdleHdl(LINK(this,SfxDockingWindow,TimerHdl));
commit 5943e74fbe88c1015dc79e234b927539213d519d
Author: yogesh.bharate001 <yogesh.bharate at synerzip.com>
Date:   Wed Jul 15 15:57:58 2015 +0530

    tdf#92754: Excel Chart content type is not exported properly.
    
    Problem Description :
    - Excel chart contenttype is not exported properly,
    it exported the .xls file as .bin file.
    - Due to this when we open the roundtrip file back in MS Office,
    the embedded excel chart is not open and gives ERROR.
    
    Solution : Added support for embedded .xls for docx file.
    
    Change-Id: I16e18ffa4f6c72526665ff9d34d6c6053278c2c5
    Reviewed-on: https://gerrit.libreoffice.org/17066
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
    (cherry picked from commit 0f64e580ff08a6f76327f0b77f79abbbb044d009)
    Signed-off-by: Michael Stahl <mstahl at redhat.com>
    (cherry picked from commit e190f4c5899c302688e4600a128347356616da64)

diff --git a/sw/qa/extras/ooxmlexport/data/EmbeddedExcelChart.docx b/sw/qa/extras/ooxmlexport/data/EmbeddedExcelChart.docx
new file mode 100644
index 0000000..567660b
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/EmbeddedExcelChart.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
index 4486502..9c158ed 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
@@ -800,7 +800,19 @@ DECLARE_OOXMLEXPORT_TEST(testSimpleSdts, "simple-sdts.docx")
     assertXPath(pXmlDoc, "/w:document/w:body/w:sdt/w:sdtPr/w:picture", 1);
     assertXPath(pXmlDoc, "/w:document/w:body/w:sdt/w:sdtPr/w:group", 1);
     assertXPath(pXmlDoc, "/w:document/w:body/w:p/w:sdt/w:sdtPr/w:citation", 1);
+}
 
+DECLARE_OOXMLEXPORT_TEST(testEmbeddedExcelChart, "EmbeddedExcelChart.docx")
+{
+    xmlDocPtr pXmlDoc = parseExport("[Content_Types].xml");
+
+    if (!pXmlDoc) // only test the export, not initial import
+       return;
+
+    assertXPath(pXmlDoc,
+        "/ContentType:Types/ContentType:Override[@PartName='/word/embeddings/oleObject1.xls']",
+        "ContentType",
+        "application/vnd.ms-excel");
 }
 
 DECLARE_OOXMLEXPORT_TEST(testTdf83227, "tdf83227.docx")
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 3f6fbcf..c728769 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -4763,6 +4763,12 @@ void DocxAttributeOutput::WriteOLE( SwOLENode& rNode, const Size& rSize, const S
         sRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
         sFileExtension = "doc";
     }
+    else if( sProgID == "Excel.Chart.8" )
+    {
+        sMediaType = "application/vnd.ms-excel";
+        sRelationType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
+        sFileExtension = "xls";
+    }
     else
     {
         sMediaType = "application/vnd.openxmlformats-officedocument.oleObject";
commit 45c237cc80dce0b85d129db54c89701c4aa1f10d
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed Dec 16 13:21:27 2015 +0100

    gbuild: disable -Werror for -Wdeprecated-declarations
    
    Zillions of auto_ptr warnings in boost.
    
    Change-Id: Ib9071c0241c2cb4c748f2634c1b39a2f8e889c20
    Reviewed-on: https://gerrit.libreoffice.org/20737
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit ee26cbc575206363e80752afa7a2fc11a4e62e3a)

diff --git a/solenv/gbuild/platform/com_GCC_defs.mk b/solenv/gbuild/platform/com_GCC_defs.mk
index 93b35a4..a062d8c 100644
--- a/solenv/gbuild/platform/com_GCC_defs.mk
+++ b/solenv/gbuild/platform/com_GCC_defs.mk
@@ -112,7 +112,7 @@ gb_CXXFLAGS_COMMON += -fstack-protector-strong
 gb_LinkTarget_LDFLAGS += -fstack-protector-strong
 endif
 
-gb_CFLAGS_WERROR := $(if $(ENABLE_WERROR),-Werror)
+gb_CFLAGS_WERROR := $(if $(ENABLE_WERROR),-Werror -Wno-error=deprecated-declarations)
 
 # This is the default in non-C++11 mode
 ifeq ($(COM_GCC_IS_CLANG),TRUE)
commit 89278da43ebe7e8c956967cbe8057b5fddad27d6
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Dec 15 15:14:13 2015 +0000

    Resolves: rhbz#1285364 urls cannot be opened under wayland
    
    because we're setting DISPLAY always, and under wayland that resolves to
    "wayland", not the original ":0" so the gtk2 gvfs-open eventually called open
    xdg-open cannot open the correct display
    
    (cherry picked from commit 3bb7557d541328194eae928fda32b73650f13360)
    
    Change-Id: I246120f2430b92cd2d3e5003445aa4c9da4f6a68
    Reviewed-on: https://gerrit.libreoffice.org/20721
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit bd05312da42cfd91e74376cab0f243253edcec60)

diff --git a/vcl/unx/gtk/app/gtkdata.cxx b/vcl/unx/gtk/app/gtkdata.cxx
index 57a8ece..a5072f8 100644
--- a/vcl/unx/gtk/app/gtkdata.cxx
+++ b/vcl/unx/gtk/app/gtkdata.cxx
@@ -712,6 +712,7 @@ void GtkData::Init()
         exit(0);
     }
 
+#if !GTK_CHECK_VERSION(3,0,0)
     /*
      * if a -display switch was used, we need
      * to set the environment accoringly since
@@ -722,6 +723,7 @@ void GtkData::Init()
     const gchar *name = gdk_display_get_name( pGdkDisp );
     OUString envValue(name, strlen(name), aEnc);
     osl_setEnvironment(envVar.pData, envValue.pData);
+#endif
 
     GtkSalDisplay *pDisplay = new GtkSalDisplay( pGdkDisp );
     SetDisplay( pDisplay );
commit 353a4a9afb3fa1c8dc157b1c2bccbb162bb44949
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Dec 3 11:36:42 2015 +0000

    Resolves: tdf#95700 index dialog cut off
    
    queue_resize needs to invalidate the size cache even
    if there is a pending layout idle awaiting
    
    Change-Id: I6dba3d37fbb33125cc3f5d17aff6d2f7a3388654
    (cherry picked from commit d40d756f4079a228035b5db346da50fe7aed0bd2)
    (cherry picked from commit c3a4bfcb0b6191665e63440b99fbf57080bd5c56)
    Reviewed-on: https://gerrit.libreoffice.org/20374
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit f307d1a01a4eeb3e4c9ee207aa0385c8c4586806)

diff --git a/vcl/source/window/syswin.cxx b/vcl/source/window/syswin.cxx
index 4c6a6c5..1c79c88 100644
--- a/vcl/source/window/syswin.cxx
+++ b/vcl/source/window/syswin.cxx
@@ -1013,11 +1013,13 @@ const Link<>& SystemWindow::GetCloseHdl() const
 
 void SystemWindow::queue_resize(StateChangedType /*eReason*/)
 {
-    if (hasPendingLayout() || isCalculatingInitialLayoutSize())
-        return;
     if (!isLayoutEnabled())
         return;
+    if (isCalculatingInitialLayoutSize())
+        return;
     InvalidateSizeCache();
+    if (hasPendingLayout())
+        return;
     maLayoutIdle.Start();
 }
 
commit 2985d4b6e67976322db84f82f001fe931677de6f
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Dec 3 09:30:44 2015 +0000

    Resolves: tdf#94701 allow fully deleting illustration category in combobox
    
    Change-Id: Iaaefbe2311e61be3b9689c693481d149aa1355f5
    (cherry picked from commit 0261be7f92930952a470bc7f5e1d543b8907b1f0)
    (cherry picked from commit 2365ff9f02370d63aae3d5b04b90b3c1a58d1094)
    Reviewed-on: https://gerrit.libreoffice.org/20372
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit 0489922093317cf55a5e12c0e4718d0c8ad7ac1a)

diff --git a/sw/source/ui/frmdlg/cption.cxx b/sw/source/ui/frmdlg/cption.cxx
index e97ef56..144bc08 100644
--- a/sw/source/ui/frmdlg/cption.cxx
+++ b/sw/source/ui/frmdlg/cption.cxx
@@ -83,10 +83,10 @@ public:
 
 OUString SwCaptionDialog::our_aSepTextSave(": "); // Caption separator text
 
-//Resolves: fdo#47427 disallow typing *or* pasting content into the category box
+//Resolves: tdf#47427 disallow typing *or* pasting invalid content into the category box
 OUString TextFilterAutoConvert::filter(const OUString &rText)
 {
-    if (rText != m_sNone && !SwCalc::IsValidVarName(rText))
+    if (!rText.isEmpty() && rText != m_sNone && !SwCalc::IsValidVarName(rText))
         return m_sLastGoodText;
     m_sLastGoodText = rText;
     return rText;
commit a4d13c3e4addc7d3cf1ff61a52ec803bda5d9f93
Author: Tor Lillqvist <tml at collabora.com>
Date:   Tue Dec 1 15:13:17 2015 +0200

    tdf#95194: We need to set the GF flags in UniscribeLayout::GetNextGlyphs()
    
    The old SimpleWinLayout::GetNextGlyphs() did it.
    PDFWriterImpl::drawVerticalGlyphs() expects GF_ROTL etc to be set when
    necessary for vertical text when exporting to PDF.
    
    Change-Id: I1971dd2784efa3cd7274a32a51f61fdf197ec81a
    Reviewed-on: https://gerrit.libreoffice.org/20329
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit f295adc5e5cc11134883a6d7dd50c1c8322c8139)

diff --git a/vcl/win/source/gdi/winlayout.cxx b/vcl/win/source/gdi/winlayout.cxx
index 3f5a78c..d1515a1 100644
--- a/vcl/win/source/gdi/winlayout.cxx
+++ b/vcl/win/source/gdi/winlayout.cxx
@@ -700,6 +700,8 @@ UniscribeLayout::~UniscribeLayout()
 
 bool UniscribeLayout::LayoutText( ImplLayoutArgs& rArgs )
 {
+    msTheString = OUString(rArgs.mpStr, rArgs.mnLength);
+
     // for a base layout only the context glyphs have to be dropped
     // => when the whole string is involved there is no extra context
     typedef std::vector<int> TIntVector;
@@ -1401,6 +1403,9 @@ int UniscribeLayout::GetNextGlyphs( int nLen, sal_GlyphId* pGlyphs, Point& rPos,
         }
 
         // update return values
+        if( (mnLayoutFlags & SalLayoutFlags::Vertical) &&
+            nCharPos != -1 )
+            aGlyphId |= GetVerticalFlags( msTheString[nCharPos] );
         *(pGlyphs++) = aGlyphId;
         if( pGlyphAdvances )
             *(pGlyphAdvances++) = nGlyphWidth;
diff --git a/vcl/win/source/gdi/winlayout.hxx b/vcl/win/source/gdi/winlayout.hxx
index d558d4cc..87c9f01 100644
--- a/vcl/win/source/gdi/winlayout.hxx
+++ b/vcl/win/source/gdi/winlayout.hxx
@@ -110,6 +110,7 @@ private:
 
     // string specific info
     // everything is in logical order
+    OUString        msTheString;        // Sadly we need it in GetNextGlyphs(), to be able to call GetVerticalFlags()
     int             mnCharCapacity;
     WORD*           mpLogClusters;      // map from absolute_char_pos to relative_glyph_pos
     int*            mpCharWidths;       // map from absolute_char_pos to char_width
commit 17581e166a20d8433b5c22ab3bc4902c3eb633bd
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Dec 15 16:52:19 2015 +0100

    tdf#95903: Fix return value handling in msvc_win32_x86-64 bridge
    
    ...where a return value was double-deleted if it was "complex" (i.e., generated
    by callee into caller-provided memory) but not related to UNO interface types
    (so doesn't need any mapping, like sequence<css.beans.Property> returned by
    css.beans.XPropertySetInfo.getProperties).
    
    Change-Id: I4cfc16ba63022686afd016ef5b64419e8dee53a4
    (cherry picked from commit 27f5679c84602713e74c947d88e72cfafc02fbc8)
    Reviewed-on: https://gerrit.libreoffice.org/20723
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    (cherry picked from commit 80acb57d5c60abd3a07b2674d1c30f926d311513)

diff --git a/bridges/source/cpp_uno/msvc_win32_x86-64/uno2cpp.cxx b/bridges/source/cpp_uno/msvc_win32_x86-64/uno2cpp.cxx
index 35ca9eb..ada3623 100644
--- a/bridges/source/cpp_uno/msvc_win32_x86-64/uno2cpp.cxx
+++ b/bridges/source/cpp_uno/msvc_win32_x86-64/uno2cpp.cxx
@@ -17,6 +17,9 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <sal/config.h>
+
+#include <cassert>
 
 #include <malloc.h>
 
@@ -77,16 +80,21 @@ static bool cpp_call(
     void * pAdjustedThisPtr = (void **)( pThis->getCppI() ) + aVtableSlot.offset;
     aCppParams[nCppParamIndex++].p = pAdjustedThisPtr;
 
-    bool bSimpleReturn = true;
-    if ( pReturnTD )
-    {
-        if ( !bridges::cpp_uno::shared::isSimpleType( pReturnTD ) )
+    enum class ReturnKind { Void, Simple, Complex, ComplexConvert };
+    ReturnKind retKind;
+    if (pUnoReturn == nullptr) {
+        retKind = ReturnKind::Void;
+    } else {
+        assert(pReturnTD != nullptr);
+        if (bridges::cpp_uno::shared::isSimpleType(pReturnTD)) {
+            retKind = ReturnKind::Simple;
+        } else if (bridges::cpp_uno::shared::relatesToInterfaceType(pReturnTD))
         {
-            // Complex return via ptr
-            bSimpleReturn = false;
-            aCppParams[nCppParamIndex++].p =
-                bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTD )?
-                         alloca( pReturnTD->nSize ) : pUnoReturn;
+            retKind = ReturnKind::ComplexConvert;
+            aCppParams[nCppParamIndex++].p = alloca(pReturnTD->nSize);
+        } else {
+            retKind = ReturnKind::Complex;
+            aCppParams[nCppParamIndex++].p = pUnoReturn;
         }
     }
 
@@ -267,16 +275,24 @@ static bool cpp_call(
     }
 
     // Return value
-    if ( !bSimpleReturn )
-    {
+    switch (retKind) {
+    case ReturnKind::Void:
+        break;
+    case ReturnKind::Simple:
+        *(sal_Int64*)pUnoReturn = uRetVal.i;
+        break;
+    case ReturnKind::Complex:
+        assert(uRetVal.p == pUnoReturn);
+        break;
+    case ReturnKind::ComplexConvert:
+        assert(uRetVal.p == aCppParams[1].p);
         ::uno_copyAndConvertData(
             pUnoReturn, uRetVal.p, pReturnTD,
             pThis->getBridge()->getCpp2Uno() );
         ::uno_destructData(
-            aCppParams[1].p, pReturnTD, cpp_release );
+            uRetVal.p, pReturnTD, cpp_release );
+        break;
     }
-    else if ( pUnoReturn )
-        *(sal_Int64*)pUnoReturn = uRetVal.i;
 
     if ( pReturnTD )
         TYPELIB_DANGER_RELEASE( pReturnTD );
commit 8d42566b24aa9bcd54075531189a37432a752f9c
Author: Eike Rathke <erack at redhat.com>
Date:   Tue Dec 15 17:44:30 2015 +0100

    Resolves: tdf#95440 SharedString are interned per document, re-intern
    
    ... if literal strings are copied with formula expression tokens.
    
    (cherry picked from commit dad412e07f805a53ad73ce2e80d187a70c77e8de)
    
    Conflicts:
    	include/formula/token.hxx
    
    Change-Id: I13526907bb6c2c605c6ed9584fa6e3f2b18623b8
    Reviewed-on: https://gerrit.libreoffice.org/20731
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
    (cherry picked from commit 58c8f4dc6c7d6897e36c0c754162035f70e3385f)

diff --git a/formula/source/core/api/token.cxx b/formula/source/core/api/token.cxx
index 9f16f4c..a8df239 100644
--- a/formula/source/core/api/token.cxx
+++ b/formula/source/core/api/token.cxx
@@ -204,6 +204,11 @@ svl::SharedString FormulaToken::GetString() const
     return svl::SharedString(); // invalid string
 }
 
+void FormulaToken::SetString( const svl::SharedString& )
+{
+    SAL_WARN( "formula.core", "FormulaToken::SetString: virtual dummy called" );
+}
+
 sal_uInt16 FormulaToken::GetIndex() const
 {
     SAL_WARN( "formula.core", "FormulaToken::GetIndex: virtual dummy called" );
@@ -1523,6 +1528,21 @@ FormulaToken* FormulaTokenArray::AddOpCode( OpCode eOp )
     return AddToken( *pRet );
 }
 
+void FormulaTokenArray::ReinternStrings( svl::SharedStringPool& rPool )
+{
+    for (sal_uInt16 i=0; i < nLen; ++i)
+    {
+        switch (pCode[i]->GetType())
+        {
+            case svString:
+                pCode[i]->SetString( rPool.intern( pCode[i]->GetString().getString()));
+                break;
+            default:
+                ;   // nothing
+        }
+    }
+}
+
 
 /*----------------------------------------------------------------------*/
 
@@ -1653,6 +1673,11 @@ svl::SharedString FormulaStringToken::GetString() const
     return maString;
 }
 
+void FormulaStringToken::SetString( const svl::SharedString& rStr )
+{
+    maString = rStr;
+}
+
 bool FormulaStringToken::operator==( const FormulaToken& r ) const
 {
     return FormulaToken::operator==( r ) && maString == r.GetString();
@@ -1674,6 +1699,11 @@ svl::SharedString FormulaStringOpToken::GetString() const
     return maString;
 }
 
+void FormulaStringOpToken::SetString( const svl::SharedString& rStr )
+{
+    maString = rStr;
+}
+
 bool FormulaStringOpToken::operator==( const FormulaToken& r ) const
 {
     return FormulaByteToken::operator==( r ) && maString == r.GetString();
diff --git a/include/formula/token.hxx b/include/formula/token.hxx
index 6d6550b..b0b143e 100644
--- a/include/formula/token.hxx
+++ b/include/formula/token.hxx
@@ -150,7 +150,8 @@ public:
     virtual void                SetForceArray( bool b );
     virtual double              GetDouble() const;
     virtual double&             GetDoubleAsReference();
-    virtual svl::SharedString GetString() const;
+    virtual svl::SharedString   GetString() const;
+    virtual void                SetString( const svl::SharedString& rStr );
     virtual sal_uInt16          GetIndex() const;
     virtual void                SetIndex( sal_uInt16 n );
     virtual bool                IsGlobal() const;
@@ -288,6 +289,7 @@ public:
 
     virtual FormulaToken* Clone() const SAL_OVERRIDE;
     virtual svl::SharedString GetString() const SAL_OVERRIDE;
+    virtual void SetString( const svl::SharedString& rStr ) SAL_OVERRIDE;
     virtual bool operator==( const FormulaToken& rToken ) const SAL_OVERRIDE;
 
     DECL_FIXEDMEMPOOL_NEWDEL_DLL( FormulaStringToken )
@@ -305,6 +307,7 @@ public:
 
     virtual FormulaToken* Clone() const SAL_OVERRIDE;
     virtual svl::SharedString GetString() const SAL_OVERRIDE;
+    virtual void SetString( const svl::SharedString& rStr ) SAL_OVERRIDE;
     virtual bool operator==( const FormulaToken& rToken ) const SAL_OVERRIDE;
 };
 
diff --git a/include/formula/tokenarray.hxx b/include/formula/tokenarray.hxx
index 58bb092..f907b1c 100644
--- a/include/formula/tokenarray.hxx
+++ b/include/formula/tokenarray.hxx
@@ -314,6 +314,9 @@ public:
 
     /** Determines if this formula may be followed by a reference. */
     bool                MayReferenceFollow();
+
+    /** Re-intern SharedString in case the SharedStringPool differs. */
+    void ReinternStrings( svl::SharedStringPool& rPool );
 };
 
 inline OpCode FormulaTokenArray::GetOuterFuncOpCode()
diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx
index 11d56f3..36c64e1 100644
--- a/sc/source/core/data/formulacell.cxx
+++ b/sc/source/core/data/formulacell.cxx
@@ -853,7 +853,11 @@ ScFormulaCell::ScFormulaCell( const ScFormulaCell& rCell, ScDocument& rDoc, cons
     }
 
     if (!pDocument->IsClipOrUndo())
+    {
+        if (&pDocument->GetSharedStringPool() != &rCell.pDocument->GetSharedStringPool())
+            pCode->ReinternStrings( pDocument->GetSharedStringPool());
         pCode->AdjustReferenceOnCopy( aPos);
+    }
 
     if ( nCloneFlags & SC_CLONECELL_ADJUST3DREL )
         pCode->ReadjustRelative3DReferences( rCell.aPos, aPos );
commit c2484097f060d02c72c38c70785663a7363665bf
Author: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
Date:   Tue Dec 15 20:18:00 2015 +0100

    update credits
    
    Change-Id: Id2416b2b67f7ae62f3d3fbe1ebebeb89edabfc40
    (cherry picked from commit 30d7f5100f5ff2bbb511f322784d94ab1f9a5748)
    (cherry picked from commit aae3875f6ccc7d660195398bfb4854f46cc0e84b)

diff --git a/readlicense_oo/license/CREDITS.fodt b/readlicense_oo/license/CREDITS.fodt
index 2ad4d86..c6f70ce 100644
--- a/readlicense_oo/license/CREDITS.fodt
+++ b/readlicense_oo/license/CREDITS.fodt
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oas
 is:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:
 experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text">
- <office:meta><dc:title>Credits » LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits for the LibreOffice development/coding.</dc:description><meta:generator>LibreOffice/5.0.3.2$Linux_X86_64 LibreOffice_project/e5f16313668ac592c1bfb310f4390624e3dbfb75</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="3380" meta:word-count="11934" meta:character-count="86106" meta:non-whitespace-character-count="75344"/><meta:user-defined meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta>
+ <office:meta><dc:title>Credits » LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits for the LibreOffice development/coding.</dc:description><meta:generator>LibreOffice/5.0.4.2$Linux_X86_64 LibreOffice_project/2b9802c1994aa0b7dc6079e128979269cf95bc78</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="3384" meta:word-count="11952" meta:character-count="86245" meta:non-whitespace-character-count="75468"/><meta:user-defined meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta>
  <office:settings>
   <config:config-item-set config:name="ooo:view-settings">
-   <config:config-item config:name="ViewAreaTop" config:type="long">660</config:config-item>
+   <config:config-item config:name="ViewAreaTop" config:type="long">580</config:config-item>
    <config:config-item config:name="ViewAreaLeft" config:type="long">501</config:config-item>
    <config:config-item config:name="ViewAreaWidth" config:type="long">39980</config:config-item>
    <config:config-item config:name="ViewAreaHeight" config:type="long">22624</config:config-item>
@@ -16,9 +16,9 @@
      <config:config-item config:name="ViewLeft" config:type="long">3676</config:config-item>
      <config:config-item config:name="ViewTop" config:type="long">3471</config:config-item>
      <config:config-item config:name="VisibleLeft" config:type="long">501</config:config-item>
-     <config:config-item config:name="VisibleTop" config:type="long">660</config:config-item>
+     <config:config-item config:name="VisibleTop" config:type="long">580</config:config-item>
      <config:config-item config:name="VisibleRight" config:type="long">40479</config:config-item>
-     <config:config-item config:name="VisibleBottom" config:type="long">23282</config:config-item>
+     <config:config-item config:name="VisibleBottom" config:type="long">23202</config:config-item>
      <config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
      <config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item>
      <config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item>
@@ -68,7 +68,7 @@
    <config:config-item config:name="InvertBorderSpacing" config:type="boolean">false</config:config-item>
    <config:config-item config:name="SaveGlobalDocumentLinks" config:type="boolean">false</config:config-item>
    <config:config-item config:name="TabsRelativeToIndent" config:type="boolean">true</config:config-item>
-   <config:config-item config:name="Rsid" config:type="int">4385131</config:config-item>
+   <config:config-item config:name="Rsid" config:type="int">4416093</config:config-item>
    <config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item>
    <config:config-item config:name="PrintEmptyPages" config:type="boolean">false</config:config-item>
    <config:config-item config:name="ApplyUserData" config:type="boolean">false</config:config-item>
@@ -311,20 +311,26 @@
  </office:styles>
  <office:automatic-styles>
   <style:style style:name="Tabelle1" style:family="table">
-   <style:table-properties style:width="26.121cm" table:align="left"/>
+   <style:table-properties style:width="25.328cm" table:align="left"/>
   </style:style>
   <style:style style:name="Tabelle1.A" style:family="table-column">
-   <style:table-column-properties style:column-width="6.114cm"/>
+   <style:table-column-properties style:column-width="6.59cm"/>
   </style:style>
   <style:style style:name="Tabelle1.B" style:family="table-column">
-   <style:table-column-properties style:column-width="6.722cm"/>
+   <style:table-column-properties style:column-width="5.849cm"/>
   </style:style>
   <style:style style:name="Tabelle1.C" style:family="table-column">
-   <style:table-column-properties style:column-width="6.563cm"/>
+   <style:table-column-properties style:column-width="6.087cm"/>
+  </style:style>
+  <style:style style:name="Tabelle1.D" style:family="table-column">
+   <style:table-column-properties style:column-width="6.802cm"/>
   </style:style>
   <style:style style:name="Tabelle1.A1" style:family="table-cell">
    <style:table-cell-properties style:vertical-align="middle" fo:padding="0.049cm" fo:border="none"/>
   </style:style>
+  <style:style style:name="Tabelle1.D246" style:family="table-cell">
+   <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
+  </style:style>
   <style:style style:name="Tabelle2" style:family="table">
    <style:table-properties style:width="17.126cm" table:align="left"/>
   </style:style>
@@ -389,21 +395,24 @@
    <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
   </style:style>
   <style:style style:name="Tabelle5" style:family="table">
-   <style:table-properties style:width="31.096cm" table:align="left"/>
+   <style:table-properties style:width="30.805cm" table:align="left"/>
   </style:style>
   <style:style style:name="Tabelle5.A" style:family="table-column">
+   <style:table-column-properties style:column-width="6.563cm"/>
+  </style:style>
+  <style:style style:name="Tabelle5.B" style:family="table-column">
    <style:table-column-properties style:column-width="6.458cm"/>
   </style:style>
   <style:style style:name="Tabelle5.C" style:family="table-column">
    <style:table-column-properties style:column-width="11.564cm"/>
   </style:style>
   <style:style style:name="Tabelle5.D" style:family="table-column">
-   <style:table-column-properties style:column-width="6.616cm"/>
+   <style:table-column-properties style:column-width="6.219cm"/>
   </style:style>
   <style:style style:name="Tabelle5.A1" style:family="table-cell">
    <style:table-cell-properties style:vertical-align="middle" fo:padding="0.049cm" fo:border="none"/>
   </style:style>
-  <style:style style:name="Tabelle5.B556" style:family="table-cell">
+  <style:style style:name="Tabelle5.C556" style:family="table-cell">
    <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
   </style:style>
   <style:style style:name="P1" style:family="paragraph" style:parent-style-name="Table_20_Contents">
@@ -1026,14 +1035,14 @@
        </office:binary-data>
       </draw:image>
      </draw:frame>Credits</text:p>
-    <text:p text:style-name="Text_20_body">1115 individuals contributed to OpenOffice.org (and whose contributions were imported into LibreOffice) or LibreOffice until 2015-12-10 23:47:00.</text:p>
+    <text:p text:style-name="Text_20_body">1118 individuals contributed to OpenOffice.org (and whose contributions were imported into LibreOffice) or LibreOffice until 2015-12-14 16:06:17.</text:p>

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list