[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.0' - 97 commits - basctl/source basic/source bin/run chart2/source configure.ac cui/source editeng/source external/apr external/libetonyek external/libmwaw external/libodfgen external/librevenge external/libwpd external/libwpg external/libwps filter/source framework/source icon-themes/breeze include/formula include/o3tl include/vcl jurt/com o3tl/CppunitTest_o3tl_tests.mk o3tl/qa offapi/com officecfg/registry oox/source postprocess/CustomTarget_registry.mk readlicense_oo/license sal/osl sc/inc sc/qa sc/sdi sc/source sc/uiconfig sd/source sot/source svl/source svtools/source svx/source sw/inc sw/qa sw/source vcl/inc vcl/opengl vcl/qa vcl/source vcl/unx vcl/win

Khaled Hosny khaledhosny at eglug.org
Thu Aug 20 11:28:36 PDT 2015


 basctl/source/dlged/managelang.cxx                                   |    2 
 basic/source/classes/sbxmod.cxx                                      |    7 
 bin/run                                                              |    2 
 chart2/source/controller/dialogs/DataBrowser.cxx                     |   29 
 chart2/source/controller/dialogs/DataBrowser.hxx                     |    2 
 chart2/source/inc/DiagramHelper.hxx                                  |    1 
 chart2/source/tools/DiagramHelper.cxx                                |   49 
 chart2/source/view/main/VDataSeries.cxx                              |    8 
 configure.ac                                                         |    2 
 cui/source/tabpages/numfmt.cxx                                       |    9 
 editeng/source/editeng/impedit4.cxx                                  |    3 
 external/apr/UnpackedTarball_apr.mk                                  |    6 
 external/apr/uuid.patch                                              |  241 +
 external/libetonyek/ExternalPackage_libetonyek.mk                    |    2 
 external/libetonyek/UnpackedTarball_libetonyek.mk                    |    8 
 external/libetonyek/libetonyek-bundled-soname.patch.0                |   11 
 external/libmwaw/ExternalPackage_libmwaw.mk                          |    2 
 external/libmwaw/UnpackedTarball_libmwaw.mk                          |    8 
 external/libmwaw/libmwaw-bundled-soname.patch.0                      |   14 
 external/libodfgen/ExternalPackage_libodfgen.mk                      |    2 
 external/libodfgen/UnpackedTarball_libodfgen.mk                      |    9 
 external/libodfgen/libodfgen-bundled-soname.patch.0                  |   11 
 external/librevenge/ExternalPackage_librevenge.mk                    |    2 
 external/librevenge/UnpackedTarball_librevenge.mk                    |    8 
 external/librevenge/librevenge-bundled-soname.patch.0                |   11 
 external/libwpd/ExternalPackage_libwpd.mk                            |    2 
 external/libwpd/UnpackedTarball_libwpd.mk                            |    8 
 external/libwpd/libwpd-bundled-soname.patch.0                        |   11 
 external/libwpg/ExternalPackage_libwpg.mk                            |    2 
 external/libwpg/UnpackedTarball_libwpg.mk                            |    8 
 external/libwpg/libwpg-bundled-soname.patch.0                        |   11 
 external/libwps/ExternalPackage_libwps.mk                            |    2 
 external/libwps/UnpackedTarball_libwps.mk                            |    8 
 external/libwps/libwps-bundled-soname.patch.0                        |   11 
 filter/source/graphicfilter/eps/eps.cxx                              |    2 
 framework/source/helper/statusindicatorfactory.cxx                   |   11 
 icon-themes/breeze/framework/res/extension.png                       |binary
 icon-themes/breeze/framework/res/folder_32.png                       |binary
 icon-themes/breeze/framework/res/info_26.png                         |binary
 icon-themes/breeze/framework/res/recent-documents.png                |binary
 icon-themes/breeze/framework/res/remote-documents.png                |binary
 icon-themes/breeze/framework/res/templates_32.png                    |binary
 icon-themes/breeze/res/odb_32_8.png                                  |binary
 icon-themes/breeze/res/odf_32_8.png                                  |binary
 icon-themes/breeze/res/odg_32_8.png                                  |binary
 icon-themes/breeze/res/odp_32_8.png                                  |binary
 icon-themes/breeze/res/ods_32_8.png                                  |binary
 icon-themes/breeze/res/odt_32_8.png                                  |binary
 include/formula/grammar.hxx                                          |    6 
 include/o3tl/lru_map.hxx                                             |  141 
 include/vcl/edit.hxx                                                 |    4 
 include/vcl/salnativewidgets.hxx                                     |   42 
 jurt/com/sun/star/lib/connections/socket/socketAcceptor.java         |    5 
 jurt/com/sun/star/lib/connections/socket/socketConnector.java        |    4 
 o3tl/CppunitTest_o3tl_tests.mk                                       |    1 
 o3tl/qa/test-lru_map.cxx                                             |  239 +
 offapi/com/sun/star/datatransfer/XTransferable2.idl                  |    2 
 officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu    |    2 
 officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu |    2 
 oox/source/core/xmlfilterbase.cxx                                    |    6 
 oox/source/shape/WpsContext.cxx                                      |   33 
 oox/source/token/namespaces-strict.txt                               |    3 
 oox/source/token/namespaces.hxx.tail                                 |    1 
 oox/source/token/namespaces.txt                                      |    3 
 oox/source/token/tokens.txt                                          |    8 
 postprocess/CustomTarget_registry.mk                                 |    6 
 readlicense_oo/license/CREDITS.fodt                                  | 2244 +++++-----
 sal/osl/w32/file_error.c                                             |    2 
 sc/inc/calcconfig.hxx                                                |    2 
 sc/inc/compare.hxx                                                   |    8 
 sc/inc/globstr.hrc                                                   |    4 
 sc/inc/unonames.hxx                                                  |    1 
 sc/qa/unit/ucalc_formula.cxx                                         |   11 
 sc/sdi/scalc.sdi                                                     |    6 
 sc/source/core/data/bcaslot.cxx                                      |   20 
 sc/source/core/data/column2.cxx                                      |   14 
 sc/source/core/data/document.cxx                                     |    8 
 sc/source/core/data/table3.cxx                                       |   16 
 sc/source/core/inc/interpre.hxx                                      |    2 
 sc/source/core/tool/calcconfig.cxx                                   |   12 
 sc/source/core/tool/compare.cxx                                      |   22 
 sc/source/core/tool/interpr1.cxx                                     |   38 
 sc/source/core/tool/interpr5.cxx                                     |    2 
 sc/source/core/tool/parclass.cxx                                     |    6 
 sc/source/core/tool/scmatrix.cxx                                     |    2 
 sc/source/filter/excel/excdoc.cxx                                    |   13 
 sc/source/filter/excel/xeextlst.cxx                                  |   45 
 sc/source/filter/inc/extlstcontext.hxx                               |   22 
 sc/source/filter/inc/xeextlst.hxx                                    |   19 
 sc/source/filter/oox/extlstcontext.cxx                               |   54 
 sc/source/filter/oox/workbookfragment.cxx                            |    3 
 sc/source/filter/oox/workbookhelper.cxx                              |   22 
 sc/source/ui/namedlg/namemgrtable.cxx                                |    2 
 sc/source/ui/optdlg/calcoptionsdlg.cxx                               |   24 
 sc/source/ui/sidebar/CellLineStyleControl.cxx                        |    8 
 sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx                   |    5 
 sc/source/ui/src/globstr.src                                         |    6 
 sc/source/ui/unoobj/confuno.cxx                                      |   58 
 sc/source/ui/view/cellsh1.cxx                                        |    2 
 sc/source/ui/view/output2.cxx                                        |   52 
 sc/source/ui/view/viewdata.cxx                                       |    6 
 sc/uiconfig/scalc/ui/formulacalculationoptions.ui                    |    1 
 sd/source/ui/table/TableDesignPane.cxx                               |    2 
 sd/source/ui/view/DocumentRenderer.cxx                               |    6 
 sd/source/ui/view/DocumentRenderer.src                               |    2 
 sot/source/base/exchange.cxx                                         |    8 
 svl/source/numbers/zforfind.cxx                                      |   57 
 svl/source/numbers/zforfind.hxx                                      |    1 
 svl/source/numbers/zformat.cxx                                       |    2 
 svtools/source/brwbox/editbrowsebox.cxx                              |   10 
 svtools/source/config/menuoptions.cxx                                |    2 
 svx/source/dialog/_contdlg.cxx                                       |    2 
 svx/source/dialog/charmap.cxx                                        |    7 
 svx/source/form/fmvwimp.cxx                                          |   96 
 svx/source/form/formcontrolling.cxx                                  |   12 
 svx/source/sidebar/PanelLayout.cxx                                   |   12 
 svx/source/sidebar/graphic/GraphicPropertyPanel.cxx                  |    1 
 svx/source/sidebar/line/LineWidthControl.cxx                         |    4 
 svx/source/tbxctrls/tbcontrl.cxx                                     |   12 
 svx/source/unodraw/unoshap4.cxx                                      |    8 
 sw/inc/drawdoc.hxx                                                   |    2 
 sw/qa/core/data/ooxml/pass/tdf92157-1-minimized.docx                 |binary
 sw/qa/core/data/ooxml/pass/tdf93284.docx                             |binary
 sw/qa/core/data/ww8/pass/crash-2.doc                                 |binary
 sw/qa/core/data/ww8/pass/hang-2.doc                                  |binary
 sw/qa/core/data/ww8/pass/hang-3.doc                                  |binary
 sw/qa/extras/ooxmlimport/data/tdf87924.docx                          |binary
 sw/qa/extras/ooxmlimport/ooxmlimport.cxx                             |    8 
 sw/qa/extras/uiwriter/data/tdf89720.odt                              |binary
 sw/qa/extras/uiwriter/data/tdf89954.odt                              |binary
 sw/qa/extras/uiwriter/uiwriter.cxx                                   |   85 
 sw/source/core/doc/DocumentLayoutManager.cxx                         |    9 
 sw/source/core/doc/DocumentLinksAdministrationManager.cxx            |    3 
 sw/source/core/draw/drawdoc.cxx                                      |    8 
 sw/source/core/layout/paintfrm.cxx                                   |    3 
 sw/source/core/txtnode/fntcache.cxx                                  |   10 
 sw/source/core/txtnode/thints.cxx                                    |    2 
 sw/source/core/view/viewimp.cxx                                      |    3 
 sw/source/core/view/viewsh.cxx                                       |   30 
 sw/source/filter/ww8/WW8Sttbf.cxx                                    |    2 
 sw/source/filter/ww8/wrtw8nds.cxx                                    |   11 
 sw/source/filter/ww8/wrtww8gr.cxx                                    |   16 
 sw/source/filter/ww8/ww8atr.cxx                                      |    8 
 sw/source/filter/ww8/ww8par.cxx                                      |   43 
 sw/source/filter/ww8/ww8par.hxx                                      |   14 
 sw/source/filter/ww8/ww8scan.cxx                                     |   82 
 sw/source/filter/ww8/ww8scan.hxx                                     |    9 
 sw/source/ui/vba/vbatablehelper.cxx                                  |    9 
 sw/source/uibase/docvw/SidebarWin.cxx                                |    3 
 sw/source/uibase/shells/frmsh.cxx                                    |    6 
 sw/source/uibase/shells/textsh.cxx                                   |    7 
 vcl/inc/opengl/salbmp.hxx                                            |    2 
 vcl/inc/opengl/win/gdiimpl.hxx                                       |    9 
 vcl/inc/opengl/x11/gdiimpl.hxx                                       |   11 
 vcl/inc/openglgdiimpl.hxx                                            |    6 
 vcl/inc/unx/gtk/gtkgdi.hxx                                           |    1 
 vcl/inc/unx/salgdi.h                                                 |    6 
 vcl/inc/unx/x11/x11gdiimpl.h                                         |    6 
 vcl/inc/window.h                                                     |   21 
 vcl/opengl/program.cxx                                               |    1 
 vcl/opengl/salbmp.cxx                                                |    7 
 vcl/opengl/scale.cxx                                                 |   52 
 vcl/opengl/win/gdiimpl.cxx                                           |   85 
 vcl/opengl/x11/gdiimpl.cxx                                           |   89 
 vcl/qa/cppunit/graphicfilter/data/emf/pass/crash-2.emf               |binary
 vcl/qa/cppunit/graphicfilter/data/wmf/fail/hang-2.wmf                |binary
 vcl/source/control/edit.cxx                                          |   17 
 vcl/source/filter/wmf/enhwmf.cxx                                     |   40 
 vcl/source/filter/wmf/winmtf.cxx                                     |    6 
 vcl/source/gdi/impanmvw.cxx                                          |   49 
 vcl/source/gdi/pdfwriter_impl.cxx                                    |    9 
 vcl/source/outdev/rect.cxx                                           |    2 
 vcl/source/window/cursor.cxx                                         |    9 
 vcl/source/window/paint.cxx                                          |  230 -
 vcl/unx/generic/gdi/gdiimpl.cxx                                      |   11 
 vcl/unx/generic/gdi/gdiimpl.hxx                                      |    5 
 vcl/unx/generic/gdi/salgdi2.cxx                                      |   15 
 vcl/unx/gtk/app/gtkdata.cxx                                          |   19 
 vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx                             |   23 
 vcl/unx/gtk3/app/gtk3gtkinst.cxx                                     |   35 
 vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx                        |   52 
 vcl/win/source/gdi/gdiimpl.cxx                                       |   14 
 vcl/win/source/gdi/gdiimpl.hxx                                       |    6 
 vcl/win/source/gdi/salnativewidgets-luna.cxx                         |   25 
 184 files changed, 3609 insertions(+), 1666 deletions(-)

New commits:
commit 2dd5ba7ee56dcb12e549d8916a4d7d1b7b1aac10
Author: Khaled Hosny <khaledhosny at eglug.org>
Date:   Mon Aug 17 00:49:39 2015 +0200

    Fix GTK3 right-to-left rendering
    
    * Reverse the direction of arrows e.g. in menus
    * Reverse the position of combobox button
    
    They are lumped together because fixing one breaks the other
    
    Change-Id: I65afb08785e67db72a72ad39f1de56db037b640a
    Reviewed-on: https://gerrit.libreoffice.org/17788
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Norbert Thiebaud <nthiebaud at gmail.com>
    Reviewed-on: https://gerrit.libreoffice.org/17845
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index 126d6d1..1f04b2e 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -77,6 +77,11 @@ static void NWConvertVCLStateToGTKState( ControlState nVCLState,
 
     if ( nVCLState & ControlState::FOCUSED )
         *nGTKState = (GtkStateFlags) (*nGTKState | GTK_STATE_FLAG_FOCUSED);
+
+    if (AllSettings::GetLayoutRTL())
+    {
+        *nGTKState = (GtkStateFlags) (*nGTKState | GTK_STATE_FLAG_DIR_RTL);
+    }
 }
 
 enum {
@@ -661,9 +666,11 @@ Rectangle GtkSalGraphics::NWGetComboBoxButtonRect( ControlType nType,
     nButtonWidth = nArrowWidth + padding.left + padding.right;
     if( nPart == PART_BUTTON_DOWN )
     {
+        Point aPos = Point(aAreaRect.Left() + aAreaRect.GetWidth() - nButtonWidth, aAreaRect.Top());
+        if (AllSettings::GetLayoutRTL())
+            aPos.X() = aAreaRect.Left();
         aButtonRect.SetSize( Size( nButtonWidth, aAreaRect.GetHeight() ) );
-        aButtonRect.SetPos( Point( aAreaRect.Left() + aAreaRect.GetWidth() - nButtonWidth,
-                                   aAreaRect.Top() ) );
+        aButtonRect.SetPos(aPos);
     }
     else if( nPart == PART_SUB_EDIT )
     {
@@ -675,7 +682,10 @@ Rectangle GtkSalGraphics::NWGetComboBoxButtonRect( ControlType nType,
         aButtonRect.SetSize( Size( aAreaRect.GetWidth() - nButtonWidth - (adjust_left + adjust_right),
                                    aAreaRect.GetHeight() - (adjust_top + adjust_bottom)) );
         Point aEditPos = aAreaRect.TopLeft();
-        aEditPos.X() += adjust_left;
+        if (AllSettings::GetLayoutRTL())
+            aEditPos.X() += nButtonWidth;
+        else
+            aEditPos.X() += adjust_left;
         aEditPos.Y() += adjust_top;
         aButtonRect.SetPos( aEditPos );
     }
@@ -703,6 +713,8 @@ void GtkSalGraphics::PaintCombobox( GtkStateFlags flags, cairo_t *cr,
 
     Rectangle        aEditBoxRect( areaRect );
     aEditBoxRect.SetSize( Size( areaRect.GetWidth() - buttonRect.GetWidth(), aEditBoxRect.GetHeight() ) );
+    if (AllSettings::GetLayoutRTL())
+        aEditBoxRect.SetPos( Point( areaRect.Left() + buttonRect.GetWidth(), areaRect.Top() ) );
 
     arrowRect.SetSize( Size( (gint)(ARROW_SIZE),
                              (gint)(ARROW_SIZE) ) );
@@ -719,7 +731,10 @@ void GtkSalGraphics::PaintCombobox( GtkStateFlags flags, cairo_t *cr,
         {
             gtk_style_context_save(mpEntryStyle);
             gtk_style_context_set_state(mpEntryStyle, flags);
-            gtk_style_context_set_junction_sides(mpEntryStyle, GTK_JUNCTION_RIGHT);
+            if (AllSettings::GetLayoutRTL())
+                gtk_style_context_set_junction_sides(mpEntryStyle, GTK_JUNCTION_LEFT);
+            else
+                gtk_style_context_set_junction_sides(mpEntryStyle, GTK_JUNCTION_RIGHT);
 
             gtk_render_background(mpComboboxStyle, cr,
                                   0, 0,
@@ -727,12 +742,13 @@ void GtkSalGraphics::PaintCombobox( GtkStateFlags flags, cairo_t *cr,
             gtk_render_frame(mpComboboxStyle, cr,
                              0, 0,
                              areaRect.GetWidth(), areaRect.GetHeight());
-
             gtk_render_background(mpEntryStyle, cr,
-                                  0, 0,
+                                  (aEditBoxRect.Left() - areaRect.Left()),
+                                  (aEditBoxRect.Top() - areaRect.Top()),
                                   aEditBoxRect.GetWidth(), aEditBoxRect.GetHeight() );
             gtk_render_frame(mpEntryStyle, cr,
-                             0, 0,
+                             (aEditBoxRect.Left() - areaRect.Left()),
+                             (aEditBoxRect.Top() - areaRect.Top()),
                              aEditBoxRect.GetWidth(), aEditBoxRect.GetHeight() );
 
             gtk_style_context_restore(mpEntryStyle);
commit db6a9f71bc034b3a1e5905c58203aaa53d2d5291
Author: Noel Grandin <noel at peralex.com>
Date:   Thu Aug 20 11:14:34 2015 +0200

    XTransferable2 should be including XTransferable, not itself
    
    Change-Id: I5790c949354434fc3661520c9038fd90e1b182f4
    (cherry picked from commit 930c7fb43aa97d9e64769d5d04f3cda1d76f9cd4)
    Signed-off-by: Michael Stahl <mstahl at redhat.com>

diff --git a/offapi/com/sun/star/datatransfer/XTransferable2.idl b/offapi/com/sun/star/datatransfer/XTransferable2.idl
index 5ff7d58..f792a96 100644
--- a/offapi/com/sun/star/datatransfer/XTransferable2.idl
+++ b/offapi/com/sun/star/datatransfer/XTransferable2.idl
@@ -8,7 +8,7 @@
 #ifndef __com_sun_star_datatransfer_XTransferable2_idl__
 #define __com_sun_star_datatransfer_XTransferable2_idl__
 
-#include <com/sun/star/datatransfer/XTransferable2.idl>
+#include <com/sun/star/datatransfer/XTransferable.idl>
 
 module com { module sun { module star { module datatransfer {
 
commit 5b4da012874829e11d98a10aafaf49c61792706e
Author: Laurent Balland-Poirier <laurent.balland-poirier at laposte.net>
Date:   Wed Jun 17 15:15:07 2015 +0200

    tdf#76649 Skip NaN initial values for min and max
    
    min and max were initiated as aValuesX[0] which could be NaN
    test i before evaluating aValuesX[i]
    
    Change-Id: I0246913dcf427e59fd354321eeffa7c08c41c08d
    Reviewed-on: https://gerrit.libreoffice.org/17772
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/chart2/source/view/main/VDataSeries.cxx b/chart2/source/view/main/VDataSeries.cxx
index 043cbaa..18614b1 100644
--- a/chart2/source/view/main/VDataSeries.cxx
+++ b/chart2/source/view/main/VDataSeries.cxx
@@ -520,9 +520,13 @@ void VDataSeries::getMinMaxXValue(double& fMin, double& fMax) const
 
     if(aValuesX.getLength() > 0)
     {
-        fMax = fMin = aValuesX[0];
+        sal_Int32 i = 0;
+        while ( i < aValuesX.getLength() && ::rtl::math::isNan( aValuesX[i] ) )
+            i++;
+        if ( i < aValuesX.getLength() )
+            fMax = fMin = aValuesX[i++];
 
-        for (sal_Int32 i = 1; i < aValuesX.getLength(); i++)
+        for ( ; i < aValuesX.getLength(); i++)
         {
             const double aValue = aValuesX[i];
             if ( aValue > fMax)
commit c7724e73abaf2bfd1490cfeae1c8ab0244f126e7
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Aug 20 00:25:31 2015 +0200

    tdf#93451: svtools: don't commit SvtMenuOptions too early
    
    Surprisingly SvtMenuOptions_Impl::ImplCommit() does not actually write
    m_eMenuIcons for "ShowIconsInMenues" but something read out of
    Application::Settings(), which appears to be deliberate (i#95318).
    Whatever sets that does it after SetMenuIconsState() is called,
    so keep the SvtMenuOptions modified by not calling Commit().
    
    (regression from 765f6211b1371c1e40de386e715de6b3d1a8df86)
    
    Change-Id: I368b65589d16753d80a1b9e9cc7d7df59c0f53da
    (cherry picked from commit ce0bba5fc1090caa7fb80f1bcc6ce64f67f11238)
    Reviewed-on: https://gerrit.libreoffice.org/17865
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/svtools/source/config/menuoptions.cxx b/svtools/source/config/menuoptions.cxx
index 22dc5e6..32d54b2 100644
--- a/svtools/source/config/menuoptions.cxx
+++ b/svtools/source/config/menuoptions.cxx
@@ -128,7 +128,7 @@ class SvtMenuOptions_Impl : public ConfigItem
                         SetModified();
                         for ( ::std::list<Link<>>::const_iterator iter = aList.begin(); iter != aList.end(); ++iter )
                             iter->Call( this );
-                        Commit();
+                        // tdf#93451: don't Commit() here, it's too early
                     }
 
 
commit f763ca94f196aca4d90748d9b3af9b1dcdf13534
Author: andreask <kainz.a at gmail.com>
Date:   Tue Aug 18 01:30:30 2015 +0200

    Breeze: StartCenter icon size fixed to 32px tdf#93064 tdf#92242
    
    Change-Id: I3501c917f5916b49b7cda35b89cafcc27987d828
    Reviewed-on: https://gerrit.libreoffice.org/17820
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
    (cherry picked from commit 9eec11735cf929cbb5da72bc500e9ad1735c4bf3)
    Reviewed-on: https://gerrit.libreoffice.org/17838
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

diff --git a/icon-themes/breeze/framework/res/extension.png b/icon-themes/breeze/framework/res/extension.png
index 0495357..75fb1f8 100644
Binary files a/icon-themes/breeze/framework/res/extension.png and b/icon-themes/breeze/framework/res/extension.png differ
diff --git a/icon-themes/breeze/framework/res/folder_32.png b/icon-themes/breeze/framework/res/folder_32.png
index 898f4f2..0cdb329 100644
Binary files a/icon-themes/breeze/framework/res/folder_32.png and b/icon-themes/breeze/framework/res/folder_32.png differ
diff --git a/icon-themes/breeze/framework/res/info_26.png b/icon-themes/breeze/framework/res/info_26.png
index 7534201..6da1e8e 100644
Binary files a/icon-themes/breeze/framework/res/info_26.png and b/icon-themes/breeze/framework/res/info_26.png differ
diff --git a/icon-themes/breeze/framework/res/recent-documents.png b/icon-themes/breeze/framework/res/recent-documents.png
index 9e02125..fde5062 100644
Binary files a/icon-themes/breeze/framework/res/recent-documents.png and b/icon-themes/breeze/framework/res/recent-documents.png differ
diff --git a/icon-themes/breeze/framework/res/remote-documents.png b/icon-themes/breeze/framework/res/remote-documents.png
new file mode 100644
index 0000000..6e4f853
Binary files /dev/null and b/icon-themes/breeze/framework/res/remote-documents.png differ
diff --git a/icon-themes/breeze/framework/res/templates_32.png b/icon-themes/breeze/framework/res/templates_32.png
index b5adc50..efeb344 100644
Binary files a/icon-themes/breeze/framework/res/templates_32.png and b/icon-themes/breeze/framework/res/templates_32.png differ
diff --git a/icon-themes/breeze/res/odb_32_8.png b/icon-themes/breeze/res/odb_32_8.png
index a8105ff..f719738 100644
Binary files a/icon-themes/breeze/res/odb_32_8.png and b/icon-themes/breeze/res/odb_32_8.png differ
diff --git a/icon-themes/breeze/res/odf_32_8.png b/icon-themes/breeze/res/odf_32_8.png
index f90dabd..837f12d 100644
Binary files a/icon-themes/breeze/res/odf_32_8.png and b/icon-themes/breeze/res/odf_32_8.png differ
diff --git a/icon-themes/breeze/res/odg_32_8.png b/icon-themes/breeze/res/odg_32_8.png
index 64f043c..93a3083 100644
Binary files a/icon-themes/breeze/res/odg_32_8.png and b/icon-themes/breeze/res/odg_32_8.png differ
diff --git a/icon-themes/breeze/res/odp_32_8.png b/icon-themes/breeze/res/odp_32_8.png
index afcef4b..2c5deac 100644
Binary files a/icon-themes/breeze/res/odp_32_8.png and b/icon-themes/breeze/res/odp_32_8.png differ
diff --git a/icon-themes/breeze/res/ods_32_8.png b/icon-themes/breeze/res/ods_32_8.png
index de5253c..df3783e 100644
Binary files a/icon-themes/breeze/res/ods_32_8.png and b/icon-themes/breeze/res/ods_32_8.png differ
diff --git a/icon-themes/breeze/res/odt_32_8.png b/icon-themes/breeze/res/odt_32_8.png
index 4defc32..c9e1a13 100644
Binary files a/icon-themes/breeze/res/odt_32_8.png and b/icon-themes/breeze/res/odt_32_8.png differ
commit 4fc74bf7f550c9355ad6c6984432471216b5c18a
Author: Noel Grandin <noel at peralex.com>
Date:   Thu Jul 30 15:38:41 2015 +0200

    tdf#93410 - NPE while connecting to LibreOffice via Java UNO API
    
    The below commit fixes this as bug as a side-effect:
    
    fix use of TCP_NODELAY for localhost URP connections
    
    we implemented this logic in the C++ URP code a while back, but the Java
    code was not correctly updated.
    
    Reviewed-on: https://gerrit.libreoffice.org/17427
    Reviewed-by: Noel Grandin <noelgrandin at gmail.com>
    Tested-by: Noel Grandin <noelgrandin at gmail.com>
    (cherry picked from commit 9ffdcc76858bc01150727345de4dfd0ef40ed8c0)
    
    Change-Id: I377d7150f1adb69d6f86d9b4f3406163aaf85aea
    Reviewed-on: https://gerrit.libreoffice.org/17708
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
    Tested-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

diff --git a/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java b/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java
index 022f891..da33625 100644
--- a/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java
+++ b/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java
@@ -152,9 +152,12 @@ public final class socketAcceptor implements XAcceptor {
             }
             // we enable tcpNoDelay for loopback connections because
             // it can make a significant speed difference on linux boxes.
-            if (tcpNoDelay != null || ((InetSocketAddress)socket.getRemoteSocketAddress()).getAddress().isLoopbackAddress()) {
+            if (tcpNoDelay != null) {
                 socket.setTcpNoDelay(tcpNoDelay.booleanValue());
             }
+            else if (((InetSocketAddress)socket.getRemoteSocketAddress()).getAddress().isLoopbackAddress()) {
+                socket.setTcpNoDelay(true);
+            }
             return new SocketConnection(acceptingDescription, socket);
         }
         catch(IOException e) {
diff --git a/jurt/com/sun/star/lib/connections/socket/socketConnector.java b/jurt/com/sun/star/lib/connections/socket/socketConnector.java
index fc44639..c169b59 100644
--- a/jurt/com/sun/star/lib/connections/socket/socketConnector.java
+++ b/jurt/com/sun/star/lib/connections/socket/socketConnector.java
@@ -146,8 +146,10 @@ public final class socketConnector implements XConnector {
         try {
             // we enable tcpNoDelay for loopback connections because
             // it can make a significant speed difference on linux boxes.
-            if (desc.getTcpNoDelay() != null || isLoopbackAddress)
+            if (desc.getTcpNoDelay() != null)
                 socket.setTcpNoDelay(desc.getTcpNoDelay().booleanValue());
+            else if (isLoopbackAddress)
+                socket.setTcpNoDelay(true);
 
             con = new SocketConnection(connectionDescription, socket);
         } catch (IOException e) {
commit 8a2ddbeff52978336dc9173dacc0c0a8f292ce1a
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date:   Mon Jul 13 18:41:19 2015 +0200

    tdf#92256: Improved interop of INDIRECT function
    
    This is a combination of 12 commits from master branch:
    
    tdf#92256: ODF save/load syntax for string reference
    
    Related tdf#92256: map CONV_OOO to listbox item no.1
    
    tdf#92256: Introducing CONV_A1_XL_A1 address pseudoconvention
    
    tdf#92256: OOXML save/load syntax for string reference
    
    add unhandled case in switch
    
    that comment is not correct anymore
    
    don't generate invalid XLSX files
    
    tdf#92256: Handle case when string ref syntax is unknown
    
    tdf#92256: Make OOXML filter CONV_A1_XL_A1 aware too
    
    tdf#92256: Make sure ref syntax of Excel docs gets saved
    
    tdf#92256: Save ref syntax when different from native one
    
    tdf#92256: Don't force CalcA1 syntax on all !Microsoft xlsx docs
    
    Change-Id: I226d5644ce729f1311aefc9a8998b3a75633c334
    Reviewed-on: https://gerrit.libreoffice.org/17837
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

diff --git a/include/formula/grammar.hxx b/include/formula/grammar.hxx
index 4f6a2bc..618db98 100644
--- a/include/formula/grammar.hxx
+++ b/include/formula/grammar.hxx
@@ -43,7 +43,11 @@ public:
 
         CONV_LOTUS_A1,      /* external? 3d? A1.B2 <placeholder/> */
 
-        CONV_LAST   /* for loops, must always be last */
+        CONV_LAST,   /* for loops, must always be last */
+
+        // not a real address convention, a special case for INDIRECT function interpretation
+        // only -> try using CONV_OOO, failing that CONV_XL_A1
+        CONV_A1_XL_A1
     };
 
     //! CONV_UNSPECIFIED is a negative value!
diff --git a/oox/source/core/xmlfilterbase.cxx b/oox/source/core/xmlfilterbase.cxx
index 4ef16d0..13deec2 100644
--- a/oox/source/core/xmlfilterbase.cxx
+++ b/oox/source/core/xmlfilterbase.cxx
@@ -118,7 +118,8 @@ struct NamespaceIds: public rtl::StaticWithInit<
             "http://schemas.openxmlformats.org/markup-compatibility/2006",
             "http://schemas.openxmlformats.org/spreadsheetml/2006/main/v2",
             "http://schemas.microsoft.com/office/drawing/2008/diagram",
-            "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"
+            "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main",
+            "http://schemas.libreoffice.org/"
         };
 
         static const sal_Int32 namespaceIds[] = {
@@ -145,7 +146,8 @@ struct NamespaceIds: public rtl::StaticWithInit<
             NMSP_mce,
             NMSP_mceTest,
             NMSP_dsp,
-            NMSP_xls14Lst
+            NMSP_xls14Lst,
+            NMSP_loext
         };
 
         Sequence< beans::Pair< OUString, sal_Int32 > > aRet(SAL_N_ELEMENTS(namespaceIds));
diff --git a/oox/source/token/namespaces-strict.txt b/oox/source/token/namespaces-strict.txt
index 9359f8b..026fcfe 100644
--- a/oox/source/token/namespaces-strict.txt
+++ b/oox/source/token/namespaces-strict.txt
@@ -80,3 +80,6 @@ a14                     http://schemas.microsoft.com/office/drawingml/2010/main
 
 # xls14Lst for features introduced by excel 2010
 xls14Lst               http://schemas.microsoft.com/office/spreadsheetml/2009/9/main
+
+# LibreOffice's own extensions
+loext                  http://schemas.libreoffice.org/
diff --git a/oox/source/token/namespaces.hxx.tail b/oox/source/token/namespaces.hxx.tail
index de5cc21..24de645 100644
--- a/oox/source/token/namespaces.hxx.tail
+++ b/oox/source/token/namespaces.hxx.tail
@@ -55,6 +55,7 @@ inline sal_Int32 getNamespace( sal_Int32 nToken ) { return nToken & NMSP_MASK; }
 #define WPS_TOKEN( token )      OOX_TOKEN( wps, token )
 #define WPG_TOKEN( token )      OOX_TOKEN( wpg, token )
 #define W_TOKEN( token )        OOX_TOKEN( doc, token )
+#define LOEXT_TOKEN( token )    OOX_TOKEN( loext, token )
 
 
 
diff --git a/oox/source/token/namespaces.txt b/oox/source/token/namespaces.txt
index face9d6..2c61d60 100644
--- a/oox/source/token/namespaces.txt
+++ b/oox/source/token/namespaces.txt
@@ -80,3 +80,6 @@ a14                     http://schemas.microsoft.com/office/drawing/2010/main
 
 # xls14Lst for features introduced by excel 2010
 xls14Lst               http://schemas.microsoft.com/office/spreadsheetml/2009/9/main
+
+# LibreOffice's own extensions
+loext                  http://schemas.libreoffice.org/
diff --git a/oox/source/token/tokens.txt b/oox/source/token/tokens.txt
index c26e957..c5843fa 100644
--- a/oox/source/token/tokens.txt
+++ b/oox/source/token/tokens.txt
@@ -69,6 +69,8 @@ BroadcastTitle
 Broadcaster
 Button
 CF
+CalcA1
+CalcA1ExcelA1
 Camera
 Cancel
 Caption
@@ -141,6 +143,8 @@ Editor
 ElectronicSource
 Embed
 EnhancedMetaFile
+ExcelA1
+ExcelR1C1
 Extend
 Extension
 External
@@ -392,6 +396,7 @@ True
 Type
 Types
 UIObj
+Unspecified
 URI
 URL
 UpdateMode
@@ -2137,6 +2142,7 @@ exp
 explosion
 expression
 ext
+extCalcPr
 extLst
 extend
 extendable
@@ -3165,6 +3171,7 @@ lockWindows
 locked
 lockedCanvas
 lockrotationcenter
+loext
 log
 logBase
 lon
@@ -4954,6 +4961,7 @@ strikeH
 strikeTLBR
 strikeV
 string
+stringRefSyntax
 stringValue1
 stringValue2
 stripedRightArrow
diff --git a/sc/inc/calcconfig.hxx b/sc/inc/calcconfig.hxx
index d10154c..18aab21 100644
--- a/sc/inc/calcconfig.hxx
+++ b/sc/inc/calcconfig.hxx
@@ -43,6 +43,7 @@ struct SC_DLLPUBLIC ScCalcConfig
     formula::FormulaGrammar::AddressConvention meStringRefAddressSyntax;
     StringConversion meStringConversion;
     bool mbEmptyStringAsZero:1;
+    bool mbHasStringRefSyntax:1;
 
     bool mbOpenCLSubsetOnly:1;
     bool mbOpenCLAutoSelect:1;
@@ -59,6 +60,7 @@ struct SC_DLLPUBLIC ScCalcConfig
 
     void reset();
     void MergeDocumentSpecific( const ScCalcConfig& r );
+    void SetStringRefSyntax( formula::FormulaGrammar::AddressConvention eConv );
 
     bool operator== (const ScCalcConfig& r) const;
     bool operator!= (const ScCalcConfig& r) const;
diff --git a/sc/inc/unonames.hxx b/sc/inc/unonames.hxx
index d937775..b064995 100644
--- a/sc/inc/unonames.hxx
+++ b/sc/inc/unonames.hxx
@@ -511,6 +511,7 @@
 #define SC_UNO_INTEROPGRABBAG           "InteropGrabBag"
 #define SC_UNO_RECORDCHANGES            "RecordChanges"
 #define SC_UNO_ISRECORDCHANGESPROTECTED "IsRecordChangesProtected"
+#define SC_UNO_SYNTAXSTRINGREF          "SyntaxStringRef"
 
 
 //  document properties from FormModel
diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx
index 08026cb..5a84e56 100644
--- a/sc/qa/unit/ucalc_formula.cxx
+++ b/sc/qa/unit/ucalc_formula.cxx
@@ -4232,9 +4232,10 @@ void Test::testFuncINDIRECT()
 
     m_pDoc->CalcAll();
     {
-        // Default is to use the current formula syntax, which is Calc A1.
+        // Default is to use compatibility mode, accept both Calc A1 and
+        // Excel A1 syntax
         const OUString* aChecks[] = {
-            &aTest, &aRefErr, &aRefErr, &aTest
+            &aTest, &aTest, &aRefErr, &aTest
         };
 
         for (size_t i = 0; i < SAL_N_ELEMENTS(aChecks); ++i)
@@ -4245,7 +4246,7 @@ void Test::testFuncINDIRECT()
     }
 
     ScCalcConfig aConfig;
-    aConfig.meStringRefAddressSyntax = formula::FormulaGrammar::CONV_OOO;
+    aConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_OOO );
     m_pDoc->SetCalcConfig(aConfig);
     m_pDoc->CalcAll();
     {
@@ -4261,7 +4262,7 @@ void Test::testFuncINDIRECT()
         }
     }
 
-    aConfig.meStringRefAddressSyntax = formula::FormulaGrammar::CONV_XL_A1;
+    aConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_XL_A1 );
     m_pDoc->SetCalcConfig(aConfig);
     m_pDoc->CalcAll();
     {
@@ -4277,7 +4278,7 @@ void Test::testFuncINDIRECT()
         }
     }
 
-    aConfig.meStringRefAddressSyntax = formula::FormulaGrammar::CONV_XL_R1C1;
+    aConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_XL_R1C1 );
     m_pDoc->SetCalcConfig(aConfig);
     m_pDoc->CalcAll();
     {
diff --git a/sc/source/core/tool/calcconfig.cxx b/sc/source/core/tool/calcconfig.cxx
index 6fd4345..cc52ad7 100644
--- a/sc/source/core/tool/calcconfig.cxx
+++ b/sc/source/core/tool/calcconfig.cxx
@@ -23,7 +23,8 @@
 ScCalcConfig::ScCalcConfig() :
     meStringRefAddressSyntax(formula::FormulaGrammar::CONV_UNSPECIFIED),
     meStringConversion(StringConversion::LOCALE),     // old LibreOffice behavior
-    mbEmptyStringAsZero(false)
+    mbEmptyStringAsZero(false),
+    mbHasStringRefSyntax(false)
 {
     setOpenCLConfigToDefault();
 
@@ -85,6 +86,13 @@ void ScCalcConfig::MergeDocumentSpecific( const ScCalcConfig& r )
     mbEmptyStringAsZero      = r.mbEmptyStringAsZero;
     // INDIRECT ref syntax is per document.
     meStringRefAddressSyntax = r.meStringRefAddressSyntax;
+    mbHasStringRefSyntax      = r.mbHasStringRefSyntax;
+}
+
+void ScCalcConfig::SetStringRefSyntax( formula::FormulaGrammar::AddressConvention eConv )
+{
+    meStringRefAddressSyntax = eConv;
+    mbHasStringRefSyntax = true;
 }
 
 bool ScCalcConfig::operator== (const ScCalcConfig& r) const
@@ -92,6 +100,7 @@ bool ScCalcConfig::operator== (const ScCalcConfig& r) const
     return meStringRefAddressSyntax == r.meStringRefAddressSyntax &&
            meStringConversion == r.meStringConversion &&
            mbEmptyStringAsZero == r.mbEmptyStringAsZero &&
+           mbHasStringRefSyntax == r.mbHasStringRefSyntax &&
            mbOpenCLSubsetOnly == r.mbOpenCLSubsetOnly &&
            mbOpenCLAutoSelect == r.mbOpenCLAutoSelect &&
            maOpenCLDevice == r.maOpenCLDevice &&
@@ -127,6 +136,7 @@ std::ostream& operator<<(std::ostream& rStream, const ScCalcConfig& rConfig)
         "StringRefAddressSyntax=" << rConfig.meStringRefAddressSyntax << ","
         "StringConversion=" << StringConversionToString(rConfig.meStringConversion) << ","
         "EmptyStringAsZero=" << (rConfig.mbEmptyStringAsZero?"Y":"N") << ","
+        "HasStringRefSyntax=" << (rConfig.mbHasStringRefSyntax?"Y":"N") << ","
         "OpenCLSubsetOnly=" << (rConfig.mbOpenCLSubsetOnly?"Y":"N") << ","
         "OpenCLAutoSelect=" << (rConfig.mbOpenCLAutoSelect?"Y":"N") << ","
         "OpenCLDevice='" << rConfig.maOpenCLDevice << "',"
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index 5ef6893..ff8a990 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -7032,17 +7032,27 @@ void ScInterpreter::ScIndirect()
             // Use the current address syntax if unspecified.
             eConv = pDok->GetAddressConvention();
 
+        // either CONV_A1_XL_A1 was explicitly configured, or nothing at all
+        // was configured
+        bool bTryXlA1 = (eConv == FormulaGrammar::CONV_A1_XL_A1 ||
+                          !maCalcConfig.mbHasStringRefSyntax);
+
         if (nParamCount == 2 && 0.0 == ::rtl::math::approxFloor( GetDouble()))
         {
             // Overwrite the config and try Excel R1C1.
             eConv = FormulaGrammar::CONV_XL_R1C1;
+            bTryXlA1 = false;
         }
-        const ScAddress::Details aDetails( eConv, aPos );
+
+        const ScAddress::Details aDetails( bTryXlA1 ? FormulaGrammar::CONV_OOO : eConv, aPos );
+        const ScAddress::Details aDetailsXlA1( FormulaGrammar::CONV_XL_A1, aPos );
         SCTAB nTab = aPos.Tab();
         OUString sRefStr = GetString().getString();
         ScRefAddress aRefAd, aRefAd2;
         ScAddress::ExternalInfo aExtInfo;
-        if (ConvertDoubleRef(pDok, sRefStr, nTab, aRefAd, aRefAd2, aDetails, &aExtInfo))
+        if ( ConvertDoubleRef(pDok, sRefStr, nTab, aRefAd, aRefAd2, aDetails, &aExtInfo) ||
+             ( bTryXlA1 && ConvertDoubleRef(pDok, sRefStr, nTab, aRefAd,
+                                            aRefAd2, aDetailsXlA1, &aExtInfo) ) )
         {
             if (aExtInfo.mbExternal)
             {
@@ -7054,7 +7064,9 @@ void ScInterpreter::ScIndirect()
             else
                 PushDoubleRef( aRefAd, aRefAd2);
         }
-        else if (ConvertSingleRef(pDok, sRefStr, nTab, aRefAd, aDetails, &aExtInfo))
+        else if ( ConvertSingleRef(pDok, sRefStr, nTab, aRefAd, aDetails, &aExtInfo) ||
+                  ( bTryXlA1 && ConvertSingleRef (pDok, sRefStr, nTab, aRefAd,
+                                                  aDetailsXlA1, &aExtInfo) ) )
         {
             if (aExtInfo.mbExternal)
             {
diff --git a/sc/source/filter/excel/excdoc.cxx b/sc/source/filter/excel/excdoc.cxx
index b9788d7..98fc175 100644
--- a/sc/source/filter/excel/excdoc.cxx
+++ b/sc/source/filter/excel/excdoc.cxx
@@ -881,6 +881,19 @@ void ExcDocument::WriteXml( XclExpXmlStream& rStrm )
     if (rCaches.HasCaches())
         rCaches.SaveXml(rStrm);
 
+    const ScCalcConfig& rCalcConfig = GetDoc().GetCalcConfig();
+
+    // write if it has been read|imported or explicitly changed
+    // or if ref syntax isn't what would be native for our file format
+    // i.e. ExcelA1 in this case
+    if ( rCalcConfig.mbHasStringRefSyntax ||
+         (rCalcConfig.meStringRefAddressSyntax != formula::FormulaGrammar::CONV_XL_A1) )
+    {
+        XclExtLstRef xExtLst( new XclExtLst( GetRoot()  ) );
+        xExtLst->AddRecord( XclExpExtRef( new XclExpExtCalcPr( GetRoot(), rCalcConfig.meStringRefAddressSyntax ))  );
+        xExtLst->SaveXml(rStrm);
+    }
+
     rWorkbook->endElement( XML_workbook );
     rWorkbook.reset();
 }
diff --git a/sc/source/filter/excel/xeextlst.cxx b/sc/source/filter/excel/xeextlst.cxx
index 2639bec..b6c7818 100644
--- a/sc/source/filter/excel/xeextlst.cxx
+++ b/sc/source/filter/excel/xeextlst.cxx
@@ -361,6 +361,51 @@ void XclExpExtConditionalFormatting::SaveXml( XclExpXmlStream& rStrm )
     rWorksheet->endElementNS( XML_x14, XML_conditionalFormatting );
 }
 
+XclExpExtCalcPr::XclExpExtCalcPr( const XclExpRoot& rRoot, formula::FormulaGrammar::AddressConvention eConv ):
+    XclExpExt( rRoot ),
+    meConv( eConv )
+{
+    maURI = OString("{7626C862-2A13-11E5-B345-FEFF819CDC9F}");
+
+    switch (meConv)
+    {
+        case formula::FormulaGrammar::CONV_OOO:
+            maSyntax = OString("CalcA1");
+            break;
+        case formula::FormulaGrammar::CONV_XL_A1:
+            maSyntax = OString("ExcelA1");
+            break;
+        case formula::FormulaGrammar::CONV_XL_R1C1:
+            maSyntax = OString("ExcelR1C1");
+            break;
+        case formula::FormulaGrammar::CONV_A1_XL_A1:
+            maSyntax = OString("CalcA1ExcelA1");
+            break;
+        case formula::FormulaGrammar::CONV_UNSPECIFIED:
+        case formula::FormulaGrammar::CONV_ODF:
+        case formula::FormulaGrammar::CONV_XL_OOX:
+        case formula::FormulaGrammar::CONV_LOTUS_A1:
+        case formula::FormulaGrammar::CONV_LAST:
+            maSyntax = OString("Unspecified");
+            break;
+    }
+}
+
+void XclExpExtCalcPr::SaveXml( XclExpXmlStream& rStrm )
+{
+    sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream();
+    rWorksheet->startElement( XML_ext,
+                                FSNS( XML_xmlns, XML_loext ), "http://schemas.libreoffice.org/",
+                                XML_uri, maURI.getStr(),
+                                FSEND );
+
+    rWorksheet->singleElementNS( XML_loext, XML_extCalcPr,
+                                 XML_stringRefSyntax, maSyntax.getStr(),
+                                 FSEND );
+
+    rWorksheet->endElement( XML_ext );
+}
+
 XclExpExtCondFormat::XclExpExtCondFormat( const XclExpRoot& rRoot ):
     XclExpExt( rRoot )
 {
diff --git a/sc/source/filter/inc/extlstcontext.hxx b/sc/source/filter/inc/extlstcontext.hxx
index 598adbd..d77d51a 100644
--- a/sc/source/filter/inc/extlstcontext.hxx
+++ b/sc/source/filter/inc/extlstcontext.hxx
@@ -12,6 +12,7 @@
 
 #include "excelhandlers.hxx"
 #include "worksheetfragment.hxx"
+#include "workbookfragment.hxx"
 
 #include <boost/ptr_container/ptr_vector.hpp>
 
@@ -103,6 +104,27 @@ protected:
     virtual ::oox::core::ContextHandlerRef onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs ) SAL_OVERRIDE;
 };
 
+class ExtGlobalWorkbookContext : public WorkbookContextBase
+{
+public:
+    explicit ExtGlobalWorkbookContext( WorkbookContextBase& rFragment );
+
+protected:
+    virtual ::oox::core::ContextHandlerRef onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs ) SAL_OVERRIDE;
+    virtual void        onStartElement( const AttributeList& rAttribs ) SAL_OVERRIDE;
+
+private:
+};
+
+class ExtLstGlobalWorkbookContext : public WorkbookContextBase
+{
+public:
+    explicit ExtLstGlobalWorkbookContext( WorkbookFragment& rFragment );
+
+protected:
+    virtual ::oox::core::ContextHandlerRef onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs ) SAL_OVERRIDE;
+};
+
 } //namespace xls
 } //namespace oox
 
diff --git a/sc/source/filter/inc/xeextlst.hxx b/sc/source/filter/inc/xeextlst.hxx
index f148f83..fcb9a1d 100644
--- a/sc/source/filter/inc/xeextlst.hxx
+++ b/sc/source/filter/inc/xeextlst.hxx
@@ -14,12 +14,14 @@
 #include "xeroot.hxx"
 
 #include "colorscale.hxx"
+#include "formulaopt.hxx"
 
 #include <memory>
 
 enum XclExpExtType
 {
-    XclExpExtDataBarType
+    XclExpExtDataBarType,
+    XclExpExtDataFooType
 };
 
 struct XclExpExtCondFormatData
@@ -32,8 +34,6 @@ struct XclExpExtCondFormatData
 
 /**
  * Base class for ext entries. Extend this class to provide the needed functionality
- *
- * Right now the only supported subclass is XclExpExtCondFormat
  */
 class XclExpExt : public XclExpRecordBase, public XclExpRoot
 {
@@ -167,6 +167,19 @@ private:
     XclExpRecordList< XclExpExtConditionalFormatting > maCF;
 };
 
+class XclExpExtCalcPr : public XclExpExt
+{
+public:
+    XclExpExtCalcPr( const XclExpRoot& rRoot, formula::FormulaGrammar::AddressConvention eConv );
+    virtual void SaveXml( XclExpXmlStream& rStrm ) SAL_OVERRIDE;
+
+    virtual XclExpExtType GetType() SAL_OVERRIDE { return XclExpExtDataFooType; }
+
+private:
+    formula::FormulaGrammar::AddressConvention meConv;
+    OString maSyntax;
+};
+
 class XclExtLst : public XclExpRecordBase, public XclExpRoot
 {
 public:
diff --git a/sc/source/filter/oox/extlstcontext.cxx b/sc/source/filter/oox/extlstcontext.cxx
index 7371f99..f0980d5 100644
--- a/sc/source/filter/oox/extlstcontext.cxx
+++ b/sc/source/filter/oox/extlstcontext.cxx
@@ -249,6 +249,60 @@ ContextHandlerRef ExtLstGlobalContext::onCreateContext( sal_Int32 nElement, cons
     return this;
 }
 
+ExtGlobalWorkbookContext::ExtGlobalWorkbookContext( WorkbookContextBase& rFragment ):
+    WorkbookContextBase(rFragment)
+{
+}
+
+ContextHandlerRef ExtGlobalWorkbookContext::onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs )
+{
+    if (nElement == LOEXT_TOKEN(extCalcPr))
+    {
+        ScDocument* pDoc = &getScDocument();
+        sal_Int32 nToken = rAttribs.getToken( XML_stringRefSyntax, XML_CalcA1 );
+        ScCalcConfig aCalcConfig = pDoc->GetCalcConfig();
+
+        switch( nToken )
+        {
+             case XML_CalcA1:
+                aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_OOO );
+                break;
+             case XML_ExcelA1:
+                aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_XL_A1 );
+                break;
+             case XML_ExcelR1C1:
+                aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_XL_R1C1 );
+                break;
+             case XML_CalcA1ExcelA1:
+                aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_A1_XL_A1 );
+                break;
+             default:
+                aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_UNSPECIFIED );
+               break;
+        }
+        pDoc->SetCalcConfig(aCalcConfig);
+    }
+
+    return this;
+}
+
+void ExtGlobalWorkbookContext::onStartElement( const AttributeList& /*rAttribs*/ )
+{
+}
+
+ExtLstGlobalWorkbookContext::ExtLstGlobalWorkbookContext( WorkbookFragment& rFragment ):
+    WorkbookContextBase(rFragment)
+{
+}
+
+ContextHandlerRef ExtLstGlobalWorkbookContext::onCreateContext( sal_Int32 nElement, const AttributeList& )
+{
+    if (nElement == XLS_TOKEN( ext ))
+        return new ExtGlobalWorkbookContext( *this );
+
+    return this;
+}
+
 } //namespace oox
 } //namespace xls
 
diff --git a/sc/source/filter/oox/workbookfragment.cxx b/sc/source/filter/oox/workbookfragment.cxx
index 4b37d0f..06881c0 100644
--- a/sc/source/filter/oox/workbookfragment.cxx
+++ b/sc/source/filter/oox/workbookfragment.cxx
@@ -46,6 +46,7 @@
 #include "worksheethelper.hxx"
 #include "worksheetfragment.hxx"
 #include "sheetdatacontext.hxx"
+#include "extlstcontext.hxx"
 #include "officecfg/Office/Common.hxx"
 
 #include "document.hxx"
@@ -110,6 +111,8 @@ ContextHandlerRef WorkbookFragment::onCreateContext( sal_Int32 nElement, const A
                 case XLS_TOKEN( workbookPr ):           getWorkbookSettings().importWorkbookPr( rAttribs );     break;
                 case XLS_TOKEN( calcPr ):               getWorkbookSettings().importCalcPr( rAttribs );         break;
                 case XLS_TOKEN( oleSize ):              getViewSettings().importOleSize( rAttribs );            break;
+
+                case XLS_TOKEN( extLst ):               return new ExtLstGlobalWorkbookContext( *this );
             }
         break;
 
diff --git a/sc/source/filter/oox/workbookhelper.cxx b/sc/source/filter/oox/workbookhelper.cxx
index d264e56..fc080cc 100644
--- a/sc/source/filter/oox/workbookhelper.cxx
+++ b/sc/source/filter/oox/workbookhelper.cxx
@@ -533,18 +533,6 @@ void WorkbookGlobals::useInternalChartDataTable( bool bInternal )
 
 // private --------------------------------------------------------------------
 
-namespace {
-
-formula::FormulaGrammar::AddressConvention getConvention(css::uno::Reference<XDocumentProperties> xDocProps)
-{
-    if (xDocProps->getGenerator().startsWithIgnoreAsciiCase("Microsoft"))
-        return formula::FormulaGrammar::CONV_XL_A1;
-
-    return formula::FormulaGrammar::CONV_OOO;
-}
-
-}
-
 void WorkbookGlobals::initialize( bool bWorkbookFile )
 {
     maCellStyles = "CellStyles";
@@ -574,9 +562,13 @@ void WorkbookGlobals::initialize( bool bWorkbookFile )
 
     Reference< XDocumentPropertiesSupplier > xPropSupplier( mxDoc, UNO_QUERY);
     Reference< XDocumentProperties > xDocProps = xPropSupplier->getDocumentProperties();
-    ScCalcConfig aCalcConfig = mpDoc->GetCalcConfig();
-    aCalcConfig.meStringRefAddressSyntax = getConvention(xDocProps);
-    mpDoc->SetCalcConfig(aCalcConfig);
+
+    if (xDocProps->getGenerator().startsWithIgnoreAsciiCase("Microsoft"))
+    {
+        ScCalcConfig aCalcConfig = mpDoc->GetCalcConfig();
+        aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_XL_A1 ) ;
+        mpDoc->SetCalcConfig(aCalcConfig);
+    }
 
     mxDocImport.reset(new ScDocumentImport(*mpDoc));
 
diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx
index 2b82a92..13e9487 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.cxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx
@@ -46,6 +46,8 @@ formula::FormulaGrammar::AddressConvention toAddressConvention(sal_Int32 nPos)
             return formula::FormulaGrammar::CONV_XL_A1;
         case 3:
             return formula::FormulaGrammar::CONV_XL_R1C1;
+        case 4:
+            return formula::FormulaGrammar::CONV_A1_XL_A1;
         case 0:
         default:
             ;
@@ -54,6 +56,24 @@ formula::FormulaGrammar::AddressConvention toAddressConvention(sal_Int32 nPos)
     return formula::FormulaGrammar::CONV_UNSPECIFIED;
 }
 
+sal_Int32 toSelectedItem( formula::FormulaGrammar::AddressConvention eConv )
+{
+    switch (eConv)
+    {
+        case formula::FormulaGrammar::CONV_OOO:
+            return 1;
+        case formula::FormulaGrammar::CONV_XL_A1:
+            return 2;
+        case formula::FormulaGrammar::CONV_XL_R1C1:
+            return 3;
+        case formula::FormulaGrammar::CONV_A1_XL_A1:
+            return 4;
+        default:
+            ;
+    }
+    return 0;
+}
+
 }
 
 ScCalcOptionsDialog::ScCalcOptionsDialog(vcl::Window* pParent, const ScCalcConfig& rConfig)
@@ -79,7 +99,7 @@ ScCalcOptionsDialog::ScCalcOptionsDialog(vcl::Window* pParent, const ScCalcConfi
     mpEmptyAsZero->SetClickHdl(LINK(this, ScCalcOptionsDialog, AsZeroModifiedHdl));
 
     get(mpSyntax,"comboSyntaxRef");
-    mpSyntax->SelectEntryPos(rConfig.meStringRefAddressSyntax);
+    mpSyntax->SelectEntryPos( toSelectedItem(rConfig.meStringRefAddressSyntax) );
     mpSyntax->SetSelectHdl(LINK(this, ScCalcOptionsDialog, SyntaxModifiedHdl));
 
     get(mpUseOpenCL,"CBUseOpenCL");
@@ -208,7 +228,7 @@ IMPL_LINK(ScCalcOptionsDialog, ConversionModifiedHdl, ListBox*, pConv )
 
 IMPL_LINK(ScCalcOptionsDialog, SyntaxModifiedHdl, ListBox*, pSyntax)
 {
-    maConfig.meStringRefAddressSyntax = toAddressConvention(pSyntax->GetSelectEntryPos());
+    maConfig.SetStringRefSyntax(toAddressConvention(pSyntax->GetSelectEntryPos()));
     return 0;
 }
 
diff --git a/sc/source/ui/unoobj/confuno.cxx b/sc/source/ui/unoobj/confuno.cxx
index a56c36f..0ddaaa1 100644
--- a/sc/source/ui/unoobj/confuno.cxx
+++ b/sc/source/ui/unoobj/confuno.cxx
@@ -31,6 +31,7 @@
 
 #include <com/sun/star/beans/PropertyAttribute.hpp>
 #include <cppuhelper/supportsservice.hxx>
+#include <formula/grammar.hxx>
 #include <sfx2/printer.hxx>
 #include <xmloff/xmluconv.hxx>
 #include <rtl/ustrbuf.hxx>
@@ -75,6 +76,7 @@ static const SfxItemPropertyMapEntry* lcl_GetConfigPropertyMap()
         {OUString(SC_UNO_SHAREDOC),     0,  cppu::UnoType<bool>::get(),              0, 0},
         {OUString(SC_UNO_MODIFYPASSWORDINFO), 0,  cppu::UnoType<uno::Sequence< beans::PropertyValue >>::get(),              0, 0},
         {OUString(SC_UNO_EMBED_FONTS), 0,  cppu::UnoType<bool>::get(),              0, 0},
+        {OUString(SC_UNO_SYNTAXSTRINGREF), 0,  cppu::UnoType<sal_Int16>::get(),     0, 0},
         { OUString(), 0, css::uno::Type(), 0, 0 }
     };
     return aConfigPropertyMap_Impl;
@@ -297,6 +299,29 @@ void SAL_CALL ScDocumentConfiguration::setPropertyValue(
                 rDoc.SetIsUsingEmbededFonts(bVal);
             }
         }
+        else if ( aPropertyName == SC_UNO_SYNTAXSTRINGREF )
+        {
+            ScCalcConfig aCalcConfig = rDoc.GetCalcConfig();
+            sal_Int16 nUno = 0;
+
+            if( aValue >>= nUno )
+            {
+                switch (nUno)
+                {
+                    case 0: // CONV_OOO
+                    case 2: // CONV_XL_A1
+                    case 3: // CONV_XL_R1C1
+                    case 7: // CONV_A1_XL_A1
+                        aCalcConfig.SetStringRefSyntax( static_cast<formula::FormulaGrammar::AddressConvention>( nUno ) );
+                        break;
+                    default:
+                        aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_UNSPECIFIED );
+                        break;
+
+                }
+                rDoc.SetCalcConfig( aCalcConfig );
+            }
+        }
 
         else
         {
@@ -433,6 +458,39 @@ uno::Any SAL_CALL ScDocumentConfiguration::getPropertyValue( const OUString& aPr
         {
             aRet <<= rDoc.IsUsingEmbededFonts();
         }
+        else if ( aPropertyName == SC_UNO_SYNTAXSTRINGREF )
+        {
+            ScCalcConfig aCalcConfig = rDoc.GetCalcConfig();
+
+            // write if it has been read|imported or explicitly changed
+            // or if ref syntax isn't what would be native for our file format
+            // i.e. CalcA1 in this case
+            if ( aCalcConfig.mbHasStringRefSyntax ||
+                 (aCalcConfig.meStringRefAddressSyntax != formula::FormulaGrammar::CONV_OOO) )
+            {
+                formula::FormulaGrammar::AddressConvention aConv = aCalcConfig.meStringRefAddressSyntax;
+
+                switch (aConv)
+                {
+                    case formula::FormulaGrammar::CONV_OOO:
+                    case formula::FormulaGrammar::CONV_XL_A1:
+                    case formula::FormulaGrammar::CONV_XL_R1C1:
+                    case formula::FormulaGrammar::CONV_A1_XL_A1:
+                         aRet <<= static_cast<sal_Int16>( aConv );
+                         break;
+
+                    case formula::FormulaGrammar::CONV_UNSPECIFIED:
+                    case formula::FormulaGrammar::CONV_ODF:
+                    case formula::FormulaGrammar::CONV_XL_OOX:
+                    case formula::FormulaGrammar::CONV_LOTUS_A1:
+                    case formula::FormulaGrammar::CONV_LAST:
+                    {
+                        aRet <<= sal_Int16(9999);
+                        break;
+                    }
+                 }
+             }
+        }
 
         else
         {
diff --git a/sc/uiconfig/scalc/ui/formulacalculationoptions.ui b/sc/uiconfig/scalc/ui/formulacalculationoptions.ui
index 20cfab0..59641e6 100644
--- a/sc/uiconfig/scalc/ui/formulacalculationoptions.ui
+++ b/sc/uiconfig/scalc/ui/formulacalculationoptions.ui
@@ -86,6 +86,7 @@
                           <item id="1">Calc A1</item>
                           <item id="2">Excel A1</item>
                           <item id="3">Excel R1C1</item>
+                          <item id="4">Calc A1 | Excel A1</item>
                         </items>
                       </object>
                       <packing>
commit 188d3e4b576d6c98f84a6c01883620219d8feaa4
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Tue Aug 18 09:59:46 2015 +0200

    tdf#93096 sw: fix selection with keyboard outside current view
    
    Regression from commit c9175a1bd3249ad573ae6827bf19963a3ebe2fbc
    (SwViewShell::ImplEndAction: avoid direct PaintDesktop(), 2015-07-03),
    the problem is that while going via InvalidateWindows() is fine for the
    double-buffering case, it has side effects when painting directly, so
    revert back to the old code in that case.
    
    Change-Id: Ib1e3b143f5cfe2c6ab8b102a1a2064900282f136
    (cherry picked from commit 222f10e773ba51a19880be1b798990260c198147)
    Reviewed-on: https://gerrit.libreoffice.org/17835
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx
index 9cb6941..1b4b80d 100644
--- a/sw/source/core/view/viewsh.cxx
+++ b/sw/source/core/view/viewsh.cxx
@@ -405,7 +405,25 @@ void SwViewShell::ImplEndAction( const bool bIdleEnd )
                     }
                     if ( bPaint )
                     {
-                        InvalidateWindows(aRect.SVRect());
+                        if (GetWin() && GetWin()->SupportsDoubleBuffering())
+                            InvalidateWindows(aRect.SVRect());
+                        else
+                        {
+                            // #i75172# begin DrawingLayer paint
+                            // need to do begin/end DrawingLayer preparation for each single rectangle of the
+                            // repaint region. I already tried to prepare only once for the whole Region. This
+                            // seems to work (and does technically) but fails with transparent objects. Since the
+                            // region given to BeginDarwLayers() defines the clip region for DrawingLayer paint,
+                            // transparent objects in the single rectangles will indeed be painted multiple times.
+                            DLPrePaint2(vcl::Region(aRect.SVRect()));
+
+                            if ( bPaintsFromSystem )
+                                PaintDesktop(*GetOut(), aRect);
+                            pCurrentLayout->GetCurrShell()->InvalidateWindows(aRect.SVRect());
+
+                            // #i75172# end DrawingLayer paint
+                            DLPostPaint2(true);
+                        }
                     }
                     else
                         lcl_PaintTransparentFormControls(*this, aRect); // i#107365
commit eea238e5215fe3dd848e46130f1da42c2c4b87ad
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Aug 17 12:01:18 2015 +0200

    external/apr: Avoid dependency on system uuid lib
    
    ...which isn't even needed, as apr only uses APR_HAS_OS_UUID for apr_os_uuid_get
    (apr_portable.h), which is neither used internally in apr nor by either of the
    two clients of apr in LO, external/serf and ucb/source/ucp/webdav
    
    Change-Id: I2e9d1f2640df0a8125ae2840f54488e77656c3ec
    (cherry picked from commit aeafca133405e4a5fdbe253f8dcd2019d6b6b2a4)
    Signed-off-by: Michael Stahl <mstahl at redhat.com>

diff --git a/external/apr/UnpackedTarball_apr.mk b/external/apr/UnpackedTarball_apr.mk
index 5fa9d05..5f82b84 100644
--- a/external/apr/UnpackedTarball_apr.mk
+++ b/external/apr/UnpackedTarball_apr.mk
@@ -11,4 +11,10 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,apr))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,apr,$(APR_TARBALL)))
 
+$(eval $(call gb_UnpackedTarball_set_patchlevel,apr,0))
+
+$(eval $(call gb_UnpackedTarball_add_patches,apr, \
+    external/apr/uuid.patch \
+))
+
 # vim: set noet sw=4 ts=4:
diff --git a/external/apr/uuid.patch b/external/apr/uuid.patch
new file mode 100644
index 0000000..53c75f1
--- /dev/null
+++ b/external/apr/uuid.patch
@@ -0,0 +1,241 @@
+--- configure
++++ configure
+@@ -26343,235 +26343,9 @@
+ 
+ echo "${nl}Checking for OS UUID Support..."
+ 
+-for ac_header in uuid.h uuid/uuid.h sys/uuid.h
+-do :
+-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+-  cat >>confdefs.h <<_ACEOF
+-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+-_ACEOF
+- break
+-fi
+-
+-done
+-
+-
+-apr_revert_save_LIBS=$LIBS
+-
+-# Prefer the flavor(s) that live in libc;
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing uuid_create" >&5
+-$as_echo_n "checking for library containing uuid_create... " >&6; }
+-if ${ac_cv_search_uuid_create+:} false; then :
+-  $as_echo_n "(cached) " >&6
+-else
+-  ac_func_search_save_LIBS=$LIBS
+-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h.  */
+-
+-/* Override any GCC internal prototype to avoid an error.
+-   Use char because int might match the return type of a GCC
+-   builtin and then its argument prototype would still apply.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char uuid_create ();
+-int
+-main ()
+-{
+-return uuid_create ();
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-for ac_lib in '' uuid; do
+-  if test -z "$ac_lib"; then
+-    ac_res="none required"
+-  else
+-    ac_res=-l$ac_lib
+-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+-  fi
+-  if ac_fn_c_try_link "$LINENO"; then :
+-  ac_cv_search_uuid_create=$ac_res
+-fi
+-rm -f core conftest.err conftest.$ac_objext \
+-    conftest$ac_exeext
+-  if ${ac_cv_search_uuid_create+:} false; then :
+-  break
+-fi
+-done
+-if ${ac_cv_search_uuid_create+:} false; then :
+-
+-else
+-  ac_cv_search_uuid_create=no
+-fi
+-rm conftest.$ac_ext
+-LIBS=$ac_func_search_save_LIBS
+-fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_uuid_create" >&5
+-$as_echo "$ac_cv_search_uuid_create" >&6; }
+-ac_res=$ac_cv_search_uuid_create
+-if test "$ac_res" != no; then :
+-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+-
+-fi
+-
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing uuid_generate" >&5
+-$as_echo_n "checking for library containing uuid_generate... " >&6; }
+-if ${ac_cv_search_uuid_generate+:} false; then :
+-  $as_echo_n "(cached) " >&6
+-else
+-  ac_func_search_save_LIBS=$LIBS
+-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h.  */
+-
+-/* Override any GCC internal prototype to avoid an error.
+-   Use char because int might match the return type of a GCC
+-   builtin and then its argument prototype would still apply.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char uuid_generate ();
+-int
+-main ()
+-{
+-return uuid_generate ();
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-for ac_lib in '' uuid; do
+-  if test -z "$ac_lib"; then
+-    ac_res="none required"
+-  else
+-    ac_res=-l$ac_lib
+-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+-  fi
+-  if ac_fn_c_try_link "$LINENO"; then :
+-  ac_cv_search_uuid_generate=$ac_res
+-fi
+-rm -f core conftest.err conftest.$ac_objext \
+-    conftest$ac_exeext
+-  if ${ac_cv_search_uuid_generate+:} false; then :
+-  break
+-fi
+-done
+-if ${ac_cv_search_uuid_generate+:} false; then :
+-
+-else
+-  ac_cv_search_uuid_generate=no
+-fi
+-rm conftest.$ac_ext
+-LIBS=$ac_func_search_save_LIBS
+-fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_uuid_generate" >&5
+-$as_echo "$ac_cv_search_uuid_generate" >&6; }
+-ac_res=$ac_cv_search_uuid_generate
+-if test "$ac_res" != no; then :
+-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+-
+-fi
+-
+-if test "$ac_cv_search_uuid_create" = "none required" -o \
+-        "$ac_cv_search_uuid_generate" = "none required"; then
+- LIBS=$apr_revert_save_LIBS
+-fi
+-
+-for ac_func in uuid_create uuid_generate
+-do :
+-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+-  cat >>confdefs.h <<_ACEOF
+-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+-_ACEOF
+-
+-fi
+-done
+-
+-
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for os uuid usability" >&5
+-$as_echo_n "checking for os uuid usability... " >&6; }
+-if ${apr_cv_osuuid+:} false; then :
+-  $as_echo_n "(cached) " >&6
+-else
+-
+-# Ensure this test closely mirrors misc/unix/rand.c!
+-uuid_includes="
+-#if defined(HAVE_SYS_TYPES_H)
+-#include <sys/types.h>
+-#endif
+-#if defined(HAVE_UNISTD_H)
+-#include <unistd.h>
+-#endif
+-#if defined(HAVE_UUID_H)
+-#include <uuid.h>
+-#elif defined(HAVE_UUID_UUID_H)
+-#include <uuid/uuid.h>
+-#elif defined(HAVE_SYS_UUID_H)
+-#include <sys/uuid.h>
+-#endif
+-"
+- apr_cv_osuuid=no
+- if test $ac_cv_func_uuid_create = yes; then
+-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h.  */
+-$uuid_includes
+-int
+-main ()
+-{
+-
+-    uuid_t g;
+-    uint32_t s;
+-    uuid_create(&g, &s);
+-    if (s == uuid_s_ok) s = 0;
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_link "$LINENO"; then :
+-  apr_cv_osuuid=yes
+-else
+-  apr_cv_func_uuid_create=no
+-fi
+-rm -f core conftest.err conftest.$ac_objext \
+-    conftest$ac_exeext conftest.$ac_ext
+- fi
+- if test $ac_cv_func_uuid_generate = yes; then
+-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h.  */
+-$uuid_includes
+-int
+-main ()
+-{
+-
+-    uuid_t g;
+-    uuid_generate(g);
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_link "$LINENO"; then :
+-  apr_cv_osuuid=yes
+-else
+-  apr_cv_func_uuid_generate=no
+-fi
+-rm -f core conftest.err conftest.$ac_objext \
+-    conftest$ac_exeext conftest.$ac_ext
+- fi
+-
+-fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $apr_cv_osuuid" >&5
+-$as_echo "$apr_cv_osuuid" >&6; }
+-
+-if test $apr_cv_osuuid = yes; then
+-  osuuid="1"
+-else
+-  osuuid="0"
+-  LIBS=$apr_revert_save_LIBS
+-fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo no >&6; }
++osuuid="0"
+ 
+ 
+ 
commit 1da07a285902c0072ac33c371260da757f769fb8
Author: Eike Rathke <erack at redhat.com>
Date:   Tue Aug 18 11:33:44 2015 +0200

    Resolves: tdf#92749 invalidate lookup caches after initial hard recalc
    
    ... because the caches are not setup as listeners during when the
    document's hard recalc state is active.
    
    Change-Id: Ie7ec84ee64d046e3e55ce26b92824e94a2f660e9
    (cherry picked from commit f7e493229bd949066b4d8984dce7678b8687d1ae)
    Reviewed-on: https://gerrit.libreoffice.org/17829
    Reviewed-by: Norbert Thiebaud <nthiebaud at gmail.com>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index e00a5cc..153b77f 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -3780,6 +3780,14 @@ void ScDocument::CalcAll()
         if (*it)
             (*it)->CalcAll();
     ClearFormulaTree();
+
+    // In hard recalc state caches were not added as listeners, invalidate them
+    // so the next non-CalcAll() normal lookup will not be presented with
+    // outdated data.
+    /* TODO: come up with more detailed hard recalc states so we can
+     * differentiate between hard recalc after load and others. */
+    if (GetHardRecalcState())
+        ClearLookupCaches();
 }
 
 void ScDocument::CompileAll()
commit 7744d182656f999d65574b40197a12680cc3c3a0
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Mon Aug 17 09:13:12 2015 +0200

    tdf#93284 vcl: fix VirtualDevice leaks in the WMF filter
    
    We attempted to have 8884 VirtualDevices in parallel. This number is now
    12 after fixing the leaks.
    
    The original bugdoc has 135 images, 76 is enough to make Writer on
    Windows crash. The minimized document has the same WMF data for all the
    images, but still duplicated inside the ZIP container, so we trigger the
    resource limit, but the document is still just 99K.
    
    Change-Id: I4c6b3853eaf688302323daf67ff7b62dd64fc412
    (cherry picked from commit 047ebb1dadcc0219a268455f74fc03a23aa3d86d)
    Reviewed-on: https://gerrit.libreoffice.org/17825
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/qa/core/data/ooxml/pass/tdf93284.docx b/sw/qa/core/data/ooxml/pass/tdf93284.docx
new file mode 100755
index 0000000..aedc026
Binary files /dev/null and b/sw/qa/core/data/ooxml/pass/tdf93284.docx differ
diff --git a/vcl/source/filter/wmf/winmtf.cxx b/vcl/source/filter/wmf/winmtf.cxx
index 20e2b5c..c5d1cf9 100644
--- a/vcl/source/filter/wmf/winmtf.cxx
+++ b/vcl/source/filter/wmf/winmtf.cxx
@@ -236,7 +236,7 @@ WinMtfFontStyle::WinMtfFontStyle( LOGFONTW& rFont )
     {
         // #i117968# VirtualDevice is not thread safe, but filter is used in multithreading
         SolarMutexGuard aGuard;
-        VclPtrInstance< VirtualDevice > pVDev;
+        ScopedVclPtrInstance< VirtualDevice > pVDev;
         // converting the cell height into a font height
         aFont.SetSize( aFontSize );
         pVDev->SetFont( aFont );
@@ -1451,7 +1451,7 @@ void WinMtfOutput::DrawText( Point& rPosition, OUString& rText, long* pDXArry, b
     {
         // #i117968# VirtualDevice is not thread safe, but filter is used in multithreading
         SolarMutexGuard aGuard;
-        VclPtrInstance< VirtualDevice > pVDev;
+        ScopedVclPtrInstance< VirtualDevice > pVDev;
         sal_Int32 nTextWidth;
         pVDev->SetMapMode( MapMode( MAP_100TH_MM ) );
         pVDev->SetFont( maFont );
@@ -1499,7 +1499,7 @@ void WinMtfOutput::DrawText( Point& rPosition, OUString& rText, long* pDXArry, b
         {
             // #i117968# VirtualDevice is not thread safe, but filter is used in multithreading
             SolarMutexGuard aGuard;
-            VclPtrInstance< VirtualDevice > pVDev;
+            ScopedVclPtrInstance< VirtualDevice > pVDev;
             pDX = new long[ rText.getLength() ];
             pVDev->SetMapMode( MAP_100TH_MM );
             pVDev->SetFont( maLatestFont );
commit 8cfaf6ecefa05b086a016f72b29b0d03c4333696
Author: Szymon Kłos <eszkadev at gmail.com>
Date:   Fri Aug 14 12:42:58 2015 +0200

    tdf#93102 : resolved crash on enabling image contour
    
    Change-Id: I59a07a62573b8d472d15f8594473e8e8d1077589
    Reviewed-on: https://gerrit.libreoffice.org/17758
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    Signed-off-by: Michael Meeks <michael.meeks at collabora.com>

diff --git a/svx/source/dialog/_contdlg.cxx b/svx/source/dialog/_contdlg.cxx
index 3426ea3..47e783a 100644
--- a/svx/source/dialog/_contdlg.cxx
+++ b/svx/source/dialog/_contdlg.cxx
@@ -299,6 +299,8 @@ SvxSuperContourDlg::~SvxSuperContourDlg()
 
 void SvxSuperContourDlg::dispose()
 {
+    m_pContourWnd->SetUpdateLink( Link<>() );
+
     SvtMiscOptions aMiscOptions;
     aMiscOptions.RemoveListenerLink( LINK(this, SvxSuperContourDlg, MiscHdl) );
     m_pContourWnd.disposeAndClear();
commit 27cd7d52d3ab4446015738450c9a8a723475d03d
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Mon Aug 10 09:14:27 2015 +0200

    tdf#87922 SwDrawTextInfo::ApplyAutoColor: handle fill attributes
    
    With this, if page background is set to e.g. black, then automatic color
    of text is again white, not black.
    
    Change-Id: I8246fa4b7834f60872b0737f03906ccc86948cc1
    (cherry picked from commit d48d0e81971266ff4625721b0f069a62ec7014e2)
    Reviewed-on: https://gerrit.libreoffice.org/17814
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx
index 2aa8202..3d6b35bc 100644
--- a/sw/source/core/txtnode/fntcache.cxx
+++ b/sw/source/core/txtnode/fntcache.cxx
@@ -47,6 +47,7 @@
 #include <swmodule.hxx>
 #include <accessibilityoptions.hxx>
 #include <svtools/accessibilityoptions.hxx>
+#include <svx/sdr/attribute/sdrallfillattributeshelper.hxx>
 #include <doc.hxx>
 #include <editeng/fhgtitem.hxx>
 #include <docsh.hxx>
@@ -2521,6 +2522,7 @@ bool SwDrawTextInfo::ApplyAutoColor( vcl::Font* pFont )
         {
             // check if current background has a user defined setting
             const Color* pCol = GetFont() ? GetFont()->GetBackColor() : NULL;
+            Color aColor;
             if( ! pCol || COL_TRANSPARENT == pCol->GetColor() )
             {
                 const SvxBrushItem* pItem;
@@ -2537,6 +2539,14 @@ bool SwDrawTextInfo::ApplyAutoColor( vcl::Font* pFont )
                 ///     is a background brush and its color is *not* "no fill"/"auto fill".
                 if( GetFrm()->GetBackgroundBrush( aFillAttributes, pItem, pCol, aOrigBackRect, false ) )
                 {
+                    if (aFillAttributes.get() && aFillAttributes->isUsed())
+                    {
+                        // First see if fill atttributes provide a color.
+                        aColor = Color(aFillAttributes->getAverageColor(aGlobalRetoucheColor.getBColor()));
+                        pCol = &aColor;
+                    }
+
+                    // If not, then fall back to the old brush item.
                     if ( !pCol )
                     {
                         pCol = &pItem->GetColor();
commit abe92ba5388bab46ac1c27d58e4c89806f5320be
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Mon Aug 3 09:19:17 2015 +0200

    tdf#87924 DOCX import: rot=90 and vert=vert270 means no text rotation
    
    If the shape is rotated 90 degrees clockwise and the text is further
    rotated 270 degrees clockwise that means we shouldn't do anything with
    the text and the result will be correct.
    
    Also: cid#1315264 incorrect expression
    
    (cherry picked from commit dbfed66eebde65f5844a0f1a2cfe548ad4eda962 and
    1c09657c5c25cf941588610eeab653217399f9b5)
    
    Change-Id: I7c65319258136288520bd24fa2bf8e3c598b0878
    Reviewed-on: https://gerrit.libreoffice.org/17807
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/oox/source/shape/WpsContext.cxx b/oox/source/shape/WpsContext.cxx
index a22d6b8..657071b 100644
--- a/oox/source/shape/WpsContext.cxx
+++ b/oox/source/shape/WpsContext.cxx
@@ -13,6 +13,9 @@
 #include <drawingml/shapestylecontext.hxx>
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/beans/XPropertyState.hpp>
+#include <com/sun/star/drawing/HomogenMatrix3.hpp>
+#include <basegfx/tuple/b2dtuple.hxx>
+#include <svx/svdtrans.hxx>
 
 #include <boost/optional.hpp>
 
@@ -76,9 +79,33 @@ oox::core::ContextHandlerRef WpsContext::onCreateContext(sal_Int32 nElementToken
                 }
                 else
                 {
-                    comphelper::SequenceAsHashMap aCustomShapeGeometry(xPropertySet->getPropertyValue("CustomShapeGeometry"));
-                    aCustomShapeGeometry["TextPreRotateAngle"] = uno::makeAny(sal_Int32(-270));
-                    xPropertySet->setPropertyValue("CustomShapeGeometry", uno::makeAny(aCustomShapeGeometry.getAsConstPropertyValueList()));
+                    // Get the existing rotation of the shape.
+                    drawing::HomogenMatrix3 aMatrix;
+                    xPropertySet->getPropertyValue("Transformation") >>= aMatrix;
+                    basegfx::B2DHomMatrix aTransformation;
+                    aTransformation.set(0, 0, aMatrix.Line1.Column1);
+                    aTransformation.set(0, 1, aMatrix.Line1.Column2);
+                    aTransformation.set(0, 2, aMatrix.Line1.Column3);
+                    aTransformation.set(1, 0, aMatrix.Line1.Column1);
+                    aTransformation.set(1, 1, aMatrix.Line2.Column2);
+                    aTransformation.set(1, 2, aMatrix.Line3.Column3);
+                    aTransformation.set(2, 0, aMatrix.Line1.Column1);
+                    aTransformation.set(2, 1, aMatrix.Line2.Column2);
+                    aTransformation.set(2, 2, aMatrix.Line3.Column3);
+                    basegfx::B2DTuple aScale;
+                    basegfx::B2DTuple aTranslate;
+                    double fRotate = 0;
+                    double fShearX = 0;
+                    aTransformation.decompose(aScale, aTranslate, fRotate, fShearX);
+
+                    // If the text is not rotated the way the shape wants it already, set the angle.
+                    const sal_Int32 nRotation = -270;
+                    if (basegfx::rad2deg(fRotate) != static_cast<double>(NormAngle360(nRotation * 100)) / 100)
+                    {
+                        comphelper::SequenceAsHashMap aCustomShapeGeometry(xPropertySet->getPropertyValue("CustomShapeGeometry"));
+                        aCustomShapeGeometry["TextPreRotateAngle"] = uno::makeAny(nRotation);
+                        xPropertySet->setPropertyValue("CustomShapeGeometry", uno::makeAny(aCustomShapeGeometry.getAsConstPropertyValueList()));
+                    }
                 }
             }
 
diff --git a/sw/qa/extras/ooxmlimport/data/tdf87924.docx b/sw/qa/extras/ooxmlimport/data/tdf87924.docx
new file mode 100644
index 0000000..5265d66
Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/tdf87924.docx differ
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
index 8830582..291d982 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
@@ -2759,6 +2759,14 @@ DECLARE_OOXMLIMPORT_TEST(testTdf86374, "tdf86374.docx")
     CPPUNIT_ASSERT_EQUAL(text::SizeType::MIN, getProperty<sal_Int16>(xTableRows->getByIndex(0), "SizeType"));
 }
 
+DECLARE_OOXMLIMPORT_TEST(testTdf87924, "tdf87924.docx")
+{
+    uno::Reference<beans::XPropertySet> xPropertySet(getShape(1), uno::UNO_QUERY);
+    comphelper::SequenceAsHashMap aGeometry(xPropertySet->getPropertyValue("CustomShapeGeometry"));
+    // This was -270, the text rotation angle was set when it should not be rotated.
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), aGeometry["TextPreRotateAngle"].get<sal_Int32>());
+}
+
 #endif
 
 CPPUNIT_PLUGIN_IMPLEMENT();
commit 0dc3c0c3999685d1780ee28832b40346be757308
Author: Andras Timar <andras.timar at collabora.com>
Date:   Fri Aug 7 11:33:13 2015 +0200

    libodfgen bundled soname patch
    
    Reviewed-on: https://gerrit.libreoffice.org/17569
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    (cherry picked from commit cc22b245bee8b6d243c22f73b8715f12ebd03f88)
    
    Conflicts:
    	external/libodfgen/ExternalPackage_libodfgen.mk
    
    Change-Id: I09f0528420577e4b417ee4e39a52150777910d13
    Reviewed-on: https://gerrit.libreoffice.org/17797
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/external/libodfgen/ExternalPackage_libodfgen.mk b/external/libodfgen/ExternalPackage_libodfgen.mk
index 1708430..bd46be5 100644
--- a/external/libodfgen/ExternalPackage_libodfgen.mk
+++ b/external/libodfgen/ExternalPackage_libodfgen.mk
@@ -16,7 +16,7 @@ $(eval $(call gb_ExternalPackage_add_file,libodfgen,$(LIBO_LIB_FOLDER)/libodfgen
 else ifeq ($(OS),WNT)
 $(eval $(call gb_ExternalPackage_add_file,libodfgen,$(LIBO_LIB_FOLDER)/libodfgen-0.1.dll,src/.libs/libodfgen-0.1.dll))
 else ifeq ($(filter IOS ANDROID,$(OS)),)
-$(eval $(call gb_ExternalPackage_add_file,libodfgen,$(LIBO_LIB_FOLDER)/libodfgen-0.1.so.1,src/.libs/libodfgen-0.1.so.1.0.$(ODFGEN_VERSION_MICRO)))
+$(eval $(call gb_ExternalPackage_add_file,libodfgen,$(LIBO_LIB_FOLDER)/libodfgen-0.1-lo.so.1,src/.libs/libodfgen-0.1-lo.so.1.0.$(ODFGEN_VERSION_MICRO)))
 endif
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libodfgen/UnpackedTarball_libodfgen.mk b/external/libodfgen/UnpackedTarball_libodfgen.mk
index 32c8b36..1c002c8 100644
--- a/external/libodfgen/UnpackedTarball_libodfgen.mk
+++ b/external/libodfgen/UnpackedTarball_libodfgen.mk
@@ -27,4 +27,13 @@ $(eval $(call gb_UnpackedTarball_add_patches,libodfgen, \
 ))
 endif
 
+ifneq ($(OS),MACOSX)
+ifneq ($(OS),WNT)
+$(eval $(call gb_UnpackedTarball_add_patches,libodfgen, \
+    external/libodfgen/libodfgen-bundled-soname.patch.0 \
+))
+endif
+endif
+
+
 # vim: set noet sw=4 ts=4:
diff --git a/external/libodfgen/libodfgen-bundled-soname.patch.0 b/external/libodfgen/libodfgen-bundled-soname.patch.0
new file mode 100644
index 0000000..297cd303
--- /dev/null
+++ b/external/libodfgen/libodfgen-bundled-soname.patch.0
@@ -0,0 +1,11 @@
+--- src/Makefile.in.orig	2015-08-07 11:26:16.388774624 +0200
++++ src/Makefile.in	2015-08-07 11:27:01.428773852 +0200
+@@ -372,7 +372,7 @@
+ AM_CXXFLAGS = -I$(top_srcdir)/inc/ $(REVENGE_CFLAGS) $(DEBUG_CXXFLAGS) -DLIBODFGEN_BUILD
+ libodfgen_ at LIBODFGEN_MAJOR_VERSION@_ at LIBODFGEN_MINOR_VERSION@_la_LIBADD = @LIBODFGEN_WIN32_RESOURCE@ $(REVENGE_LIBS)
+ libodfgen_ at LIBODFGEN_MAJOR_VERSION@_ at LIBODFGEN_MINOR_VERSION@_la_DEPENDENCIES = @LIBODFGEN_WIN32_RESOURCE@
+-libodfgen_ at LIBODFGEN_MAJOR_VERSION@_ at LIBODFGEN_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined
++libodfgen_ at LIBODFGEN_MAJOR_VERSION@_ at LIBODFGEN_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined -release lo
+ libodfgen_ at LIBODFGEN_MAJOR_VERSION@_ at LIBODFGEN_MINOR_VERSION@_la_SOURCES = \
+ 	DocumentElement.cxx \
+ 	DocumentElement.hxx \
commit fbcd1f1af743d8bd2c0caf1297c9d69bf5fea066
Author: Andras Timar <andras.timar at collabora.com>
Date:   Fri Aug 7 12:02:04 2015 +0200

    librevenge bundled soname patch
    
    Reviewed-on: https://gerrit.libreoffice.org/17572
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    (cherry picked from commit 27ba1e316833671b1067fe8e6745530fa91c173d)
    
    Conflicts:
    	external/librevenge/ExternalPackage_librevenge.mk
    
    Change-Id: I8c55eb6eeca40faf8201af037f31a57ce9b64ac0
    Reviewed-on: https://gerrit.libreoffice.org/17798
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/external/librevenge/ExternalPackage_librevenge.mk b/external/librevenge/ExternalPackage_librevenge.mk
index 9766bfb..56a4df2 100644
--- a/external/librevenge/ExternalPackage_librevenge.mk
+++ b/external/librevenge/ExternalPackage_librevenge.mk
@@ -16,7 +16,7 @@ $(eval $(call gb_ExternalPackage_add_file,librevenge,$(LIBO_LIB_FOLDER)/libreven
 else ifeq ($(OS),WNT)
 $(eval $(call gb_ExternalPackage_add_file,librevenge,$(LIBO_LIB_FOLDER)/librevenge-0.0.dll,src/lib/.libs/librevenge-0.0.dll))
 else ifeq ($(filter IOS ANDROID,$(OS)),)
-$(eval $(call gb_ExternalPackage_add_file,librevenge,$(LIBO_LIB_FOLDER)/librevenge-0.0.so.0,src/lib/.libs/librevenge-0.0.so.0.0.2))
+$(eval $(call gb_ExternalPackage_add_file,librevenge,$(LIBO_LIB_FOLDER)/librevenge-0.0-lo.so.0,src/lib/.libs/librevenge-0.0-lo.so.0.0.2))
 endif
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/librevenge/UnpackedTarball_librevenge.mk b/external/librevenge/UnpackedTarball_librevenge.mk
index dabad6a..192faf4 100644
--- a/external/librevenge/UnpackedTarball_librevenge.mk
+++ b/external/librevenge/UnpackedTarball_librevenge.mk
@@ -21,4 +21,12 @@ $(eval $(call gb_UnpackedTarball_add_patches,librevenge, \
 endif
 endif
 
+ifneq ($(OS),MACOSX)
+ifneq ($(OS),WNT)
+$(eval $(call gb_UnpackedTarball_add_patches,librevenge, \
+    external/librevenge/librevenge-bundled-soname.patch.0 \
+))
+endif
+endif
+
 # vim: set noet sw=4 ts=4:
diff --git a/external/librevenge/librevenge-bundled-soname.patch.0 b/external/librevenge/librevenge-bundled-soname.patch.0
new file mode 100644
index 0000000..f959def
--- /dev/null
+++ b/external/librevenge/librevenge-bundled-soname.patch.0
@@ -0,0 +1,11 @@
+--- src/lib/Makefile.in.orig	2015-08-07 11:57:42.256742305 +0200
++++ src/lib/Makefile.in	2015-08-07 11:58:11.818741799 +0200
+@@ -470,7 +470,7 @@
+ 	-DLIBREVENGE_BUILD $(am__append_2)
+ librevenge_ at RVNG_MAJOR_VERSION@_ at RVNG_MINOR_VERSION@_la_LIBADD = @LIBREVENGE_WIN32_RESOURCE@
+ librevenge_ at RVNG_MAJOR_VERSION@_ at RVNG_MINOR_VERSION@_la_DEPENDENCIES = @LIBREVENGE_WIN32_RESOURCE@
+-librevenge_ at RVNG_MAJOR_VERSION@_ at RVNG_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic $(no_undefined)
++librevenge_ at RVNG_MAJOR_VERSION@_ at RVNG_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic $(no_undefined) -release lo
+ librevenge_ at RVNG_MAJOR_VERSION@_ at RVNG_MINOR_VERSION@_la_SOURCES = \
+ 	RVNGBinaryData.cpp \
+ 	RVNGMemoryStream.cpp \
commit fe3822025ea1df0f34454146578cee795216f2f0
Author: Andras Timar <andras.timar at collabora.com>
Date:   Fri Aug 7 11:09:01 2015 +0200

    libmwaw bundled soname patch
    
    Reviewed-on: https://gerrit.libreoffice.org/17568
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    (cherry picked from commit 0dc79f35aa3a373414c17f596ca4491a69083864)
    
    Conflicts:
    	external/libmwaw/ExternalPackage_libmwaw.mk
    
    Change-Id: Ibaba47be8aeefca7719d1ff335f551777130c6cd
    Reviewed-on: https://gerrit.libreoffice.org/17800
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/external/libmwaw/ExternalPackage_libmwaw.mk b/external/libmwaw/ExternalPackage_libmwaw.mk
index 97a6e6d..06342c2 100644
--- a/external/libmwaw/ExternalPackage_libmwaw.mk
+++ b/external/libmwaw/ExternalPackage_libmwaw.mk
@@ -16,7 +16,7 @@ $(eval $(call gb_ExternalPackage_add_file,libmwaw,$(LIBO_LIB_FOLDER)/libmwaw-0.3
 else ifeq ($(OS),WNT)
 $(eval $(call gb_ExternalPackage_add_file,libmwaw,$(LIBO_LIB_FOLDER)/libmwaw-0.3.dll,src/lib/.libs/libmwaw-0.3.dll))
 else ifeq ($(filter IOS ANDROID,$(OS)),)
-$(eval $(call gb_ExternalPackage_add_file,libmwaw,$(LIBO_LIB_FOLDER)/libmwaw-0.3.so.3,src/lib/.libs/libmwaw-0.3.so.3.0.$(MWAW_VERSION_MICRO)))
+$(eval $(call gb_ExternalPackage_add_file,libmwaw,$(LIBO_LIB_FOLDER)/libmwaw-0.3-lo.so.3,src/lib/.libs/libmwaw-0.3-lo.so.3.0.$(MWAW_VERSION_MICRO)))
 endif
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libmwaw/UnpackedTarball_libmwaw.mk b/external/libmwaw/UnpackedTarball_libmwaw.mk
index 7aeb99c..7751b38 100644
--- a/external/libmwaw/UnpackedTarball_libmwaw.mk
+++ b/external/libmwaw/UnpackedTarball_libmwaw.mk
@@ -21,6 +21,14 @@ $(eval $(call gb_UnpackedTarball_add_patches,libmwaw, \
 endif
 endif
 
+ifneq ($(OS),MACOSX)
+ifneq ($(OS),WNT)
+$(eval $(call gb_UnpackedTarball_add_patches,libmwaw, \
+    external/libmwaw/libmwaw-bundled-soname.patch.0 \
+))
+endif
+endif
+
 ifeq ($(SYSTEM_REVENGE),)
 $(eval $(call gb_UnpackedTarball_add_patches,libmwaw, \
     external/libmwaw/rpath.patch \
diff --git a/external/libmwaw/libmwaw-bundled-soname.patch.0 b/external/libmwaw/libmwaw-bundled-soname.patch.0
new file mode 100644
index 0000000..2abf77c
--- /dev/null
+++ b/external/libmwaw/libmwaw-bundled-soname.patch.0
@@ -0,0 +1,14 @@
+--- src/lib/Makefile.in.orig	2015-08-07 14:04:47.646611627 +0200
++++ src/lib/Makefile.in	2015-08-07 14:25:49.888589996 +0200
+@@ -418,8 +418,8 @@
+ 
+ AM_CXXFLAGS = -I$(top_srcdir)/inc $(REVENGE_CFLAGS) $(DEBUG_CXXFLAGS)
+ libmwaw_ at MWAW_MAJOR_VERSION@_ at MWAW_MINOR_VERSION@_la_LIBADD = $(REVENGE_LIBS) @LIBMWAW_WIN32_RESOURCE@
+-libmwaw_ at MWAW_MAJOR_VERSION@_ at MWAW_MINOR_VERSION@_la_DEPENDENCIES = @LIBMWAW_WIN32_RESOURCE@  
+-libmwaw_ at MWAW_MAJOR_VERSION@_ at MWAW_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic  -no-undefined
++libmwaw_ at MWAW_MAJOR_VERSION@_ at MWAW_MINOR_VERSION@_la_DEPENDENCIES = @LIBMWAW_WIN32_RESOURCE@
++libmwaw_ at MWAW_MAJOR_VERSION@_ at MWAW_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined -release lo
+ libmwaw_ at MWAW_MAJOR_VERSION@_ at MWAW_MINOR_VERSION@_la_SOURCES = \
+ 	libmwaw_internal.cxx		\
+ 	libmwaw_internal.hxx		\
+
commit 3e1fda760c366cdd5bf1f066bac797de76eabf7f
Author: Andras Timar <andras.timar at collabora.com>
Date:   Fri Aug 7 10:57:36 2015 +0200

    libetonyek bundled soname patch
    
    Reviewed-on: https://gerrit.libreoffice.org/17567
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    (cherry picked from commit 824e663cfbba436db32e4f2a20e3acbe275252e7)
    
    Conflicts:
    	external/libetonyek/ExternalPackage_libetonyek.mk
    
    Change-Id: Ib9ca5d65a493db7daa094b0dea3613637c4c184b
    Reviewed-on: https://gerrit.libreoffice.org/17799
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/external/libetonyek/ExternalPackage_libetonyek.mk b/external/libetonyek/ExternalPackage_libetonyek.mk
index 08f0a63b..9fbfff4 100644
--- a/external/libetonyek/ExternalPackage_libetonyek.mk
+++ b/external/libetonyek/ExternalPackage_libetonyek.mk
@@ -16,7 +16,7 @@ $(eval $(call gb_ExternalPackage_add_file,libetonyek,$(LIBO_LIB_FOLDER)/libetony
 else ifeq ($(OS),WNT)
 $(eval $(call gb_ExternalPackage_add_file,libetonyek,$(LIBO_LIB_FOLDER)/libetonyek-0.1.dll,src/lib/.libs/libetonyek-0.1.dll))
 else ifeq ($(filter IOS ANDROID,$(OS)),)
-$(eval $(call gb_ExternalPackage_add_file,libetonyek,$(LIBO_LIB_FOLDER)/libetonyek-0.1.so.1,src/lib/.libs/libetonyek-0.1.so.1.0.$(ETONYEK_VERSION_MICRO)))
+$(eval $(call gb_ExternalPackage_add_file,libetonyek,$(LIBO_LIB_FOLDER)/libetonyek-0.1-lo.so.1,src/lib/.libs/libetonyek-0.1-lo.so.1.0.$(ETONYEK_VERSION_MICRO)))
 endif
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libetonyek/UnpackedTarball_libetonyek.mk b/external/libetonyek/UnpackedTarball_libetonyek.mk
index dd536f8..7f0d653 100644
--- a/external/libetonyek/UnpackedTarball_libetonyek.mk
+++ b/external/libetonyek/UnpackedTarball_libetonyek.mk
@@ -22,6 +22,14 @@ $(eval $(call gb_UnpackedTarball_add_patches,libetonyek,\
 	external/libetonyek/0001-try-to-fix-build-on-Windows.patch.1 \
 ))
 
+ifneq ($(OS),MACOSX)
+ifneq ($(OS),WNT)
+$(eval $(call gb_UnpackedTarball_add_patches,libetonyek,\
+	external/libetonyek/libetonyek-bundled-soname.patch.0 \
+))
+endif
+endif
+
 ifeq ($(COM_GCC_IS_CLANG),TRUE)
 ifneq ($(filter -fsanitize=%,$(CC)),)
 $(eval $(call gb_UnpackedTarball_add_patches,libetonyek, \
diff --git a/external/libetonyek/libetonyek-bundled-soname.patch.0 b/external/libetonyek/libetonyek-bundled-soname.patch.0
new file mode 100644
index 0000000..301aa38
--- /dev/null
+++ b/external/libetonyek/libetonyek-bundled-soname.patch.0
@@ -0,0 +1,11 @@
+--- src/lib/Makefile.in.orig	2015-08-07 10:51:32.494810336 +0200
++++ src/lib/Makefile.in	2015-08-07 10:51:55.493809942 +0200
+@@ -463,7 +463,7 @@
+
+ libetonyek_ at ETONYEK_MAJOR_VERSION@_ at ETONYEK_MINOR_VERSION@_la_LIBADD = libetonyek_internal.la $(REVENGE_LIBS) $(XML_LIBS) $(ZLIB_LIBS) @LIBETONYEK_WIN32_RESOURCE@
+ libetonyek_ at ETONYEK_MAJOR_VERSION@_ at ETONYEK_MINOR_VERSION@_la_DEPENDENCIES = libetonyek_internal.la @LIBETONYEK_WIN32_RESOURCE@
+-libetonyek_ at ETONYEK_MAJOR_VERSION@_ at ETONYEK_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined
++libetonyek_ at ETONYEK_MAJOR_VERSION@_ at ETONYEK_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined -release lo
+ libetonyek_ at ETONYEK_MAJOR_VERSION@_ at ETONYEK_MINOR_VERSION@_la_SOURCES = \
+ 	EtonyekDocument.cpp
+
commit ce6f74dabb01c3ec7c1ac890b8ce0a117f34daa0
Author: László Németh <laszlo.nemeth at collabora.com>
Date:   Mon Aug 17 09:51:38 2015 +0200

    tdf#93114 insert character: add missing recalculate for font selection
    
    Fixing missing characters (only characters of the basic Control font
    showed by Insert special character dialog) and freezing (when
    LibreOffice tried to replace hundred of characters [missing from the
    chosen font] during scrolling in the insert special character dialog).
    
    Change-Id: I8fd5bd233f16572eb2b740a8f8e7e8608c19d06f
    Reviewed-on: https://gerrit.libreoffice.org/17792
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/svx/source/dialog/charmap.cxx b/svx/source/dialog/charmap.cxx
index 6a52644..3d616e9 100644
--- a/svx/source/dialog/charmap.cxx
+++ b/svx/source/dialog/charmap.cxx
@@ -340,6 +340,7 @@ void SvxShowCharSet::Paint( vcl::RenderContext& rRenderContext, const Rectangle&
 void SvxShowCharSet::SetFont( const vcl::Font& rFont )
 {
     Control::SetFont(rFont);
+    mbRecalculateFont = true;
     Invalidate();
 }
 
commit 36129595a3be269ea3619991c9ceac2ec6f0321a
Author: Andras Timar <andras.timar at collabora.com>
Date:   Thu Aug 6 21:37:36 2015 +0200

    libwpg bundled soname patch
    
    Reviewed-on: https://gerrit.libreoffice.org/17547
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    (cherry picked from commit 68279e04de33201b8f75b55ad8cac9deef3d044d)
    
    Conflicts:
    	external/libwpg/ExternalPackage_libwpg.mk
    
    Change-Id: Ied2f331000c83d696fb5dd662860c3b51b95c616
    Reviewed-on: https://gerrit.libreoffice.org/17796
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/external/libwpg/ExternalPackage_libwpg.mk b/external/libwpg/ExternalPackage_libwpg.mk
index c03a5cf..5c32687 100644
--- a/external/libwpg/ExternalPackage_libwpg.mk
+++ b/external/libwpg/ExternalPackage_libwpg.mk
@@ -16,7 +16,7 @@ $(eval $(call gb_ExternalPackage_add_file,libwpg,$(LIBO_LIB_FOLDER)/libwpg-0.3.3
 else ifeq ($(OS),WNT)
 $(eval $(call gb_ExternalPackage_add_file,libwpg,$(LIBO_LIB_FOLDER)/libwpg-0.3.dll,src/lib/.libs/libwpg-0.3.dll))
 else ifeq ($(filter IOS ANDROID,$(OS)),)
-$(eval $(call gb_ExternalPackage_add_file,libwpg,$(LIBO_LIB_FOLDER)/libwpg-0.3.so.3,src/lib/.libs/libwpg-0.3.so.3.0.0))
+$(eval $(call gb_ExternalPackage_add_file,libwpg,$(LIBO_LIB_FOLDER)/libwpg-0.3-lo.so.3,src/lib/.libs/libwpg-0.3-lo.so.3.0.0))
 endif
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libwpg/UnpackedTarball_libwpg.mk b/external/libwpg/UnpackedTarball_libwpg.mk
index d0b1e99..f470bdf 100644
--- a/external/libwpg/UnpackedTarball_libwpg.mk
+++ b/external/libwpg/UnpackedTarball_libwpg.mk
@@ -17,4 +17,12 @@ $(eval $(call gb_UnpackedTarball_add_patches,libwpg, \
     external/libwpg/rpath.patch \
 ))
 
+ifneq ($(OS),MACOSX)
+ifneq ($(OS),WNT)
+$(eval $(call gb_UnpackedTarball_add_patches,libwpg, \
+    external/libwpg/libwpg-bundled-soname.patch.0 \
+))
+endif
+endif
+
 # vim: set noet sw=4 ts=4:
diff --git a/external/libwpg/libwpg-bundled-soname.patch.0 b/external/libwpg/libwpg-bundled-soname.patch.0
new file mode 100644
index 0000000..4fef3c2
--- /dev/null
+++ b/external/libwpg/libwpg-bundled-soname.patch.0
@@ -0,0 +1,11 @@
+--- src/lib/Makefile.in.orig	2015-08-06 21:30:41.615633795 +0200
++++ src/lib/Makefile.in	2015-08-06 21:31:03.764633415 +0200
+@@ -357,7 +357,7 @@
+ AM_CXXFLAGS = -I$(top_srcdir)/inc $(REVENGE_CFLAGS) $(WPD_CFLAGS) $(DEBUG_CXXFLAGS) -DLIBWPG_BUILD=1
+ libwpg_ at WPG_MAJOR_VERSION@_ at WPG_MINOR_VERSION@_la_LIBADD = $(WPD_LIBS) $(REVENGE_LIBS) @LIBWPG_WIN32_RESOURCE@
+ libwpg_ at WPG_MAJOR_VERSION@_ at WPG_MINOR_VERSION@_la_DEPENDENCIES = @LIBWPG_WIN32_RESOURCE@
+-libwpg_ at WPG_MAJOR_VERSION@_ at WPG_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined
++libwpg_ at WPG_MAJOR_VERSION@_ at WPG_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined -release lo
+ libwpg_ at WPG_MAJOR_VERSION@_ at WPG_MINOR_VERSION@_la_SOURCES = \
+ 	WPGraphics.cpp \
+ 	WPGDashArray.cpp \
commit 153b3e7e3df8602dc1dd8da00e1f7bd03389c161
Author: Andras Timar <andras.timar at collabora.com>
Date:   Thu Aug 6 12:07:40 2015 +0200

    libwps bundled soname patch
    
    Reviewed-on: https://gerrit.libreoffice.org/17533
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    (cherry picked from commit fff1d5bdd087f72178321f47b649323013d933cf)
    
    Conflicts:
    	external/libwps/ExternalPackage_libwps.mk
    	external/libwps/UnpackedTarball_libwps.mk
    
    Change-Id: I6661ff49e25921ce11dc04fffab84cf5db3c95fe
    Reviewed-on: https://gerrit.libreoffice.org/17794
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/external/libwps/ExternalPackage_libwps.mk b/external/libwps/ExternalPackage_libwps.mk
index 034900c..24b00c6 100644
--- a/external/libwps/ExternalPackage_libwps.mk
+++ b/external/libwps/ExternalPackage_libwps.mk
@@ -16,7 +16,7 @@ $(eval $(call gb_ExternalPackage_add_file,libwps,$(LIBO_LIB_FOLDER)/libwps-0.4.4
 else ifeq ($(OS),WNT)
 $(eval $(call gb_ExternalPackage_add_file,libwps,$(LIBO_LIB_FOLDER)/libwps-0.4.dll,src/lib/.libs/libwps-0.4.dll))
 else ifeq ($(filter IOS ANDROID,$(OS)),)
-$(eval $(call gb_ExternalPackage_add_file,libwps,$(LIBO_LIB_FOLDER)/libwps-0.4.so.4,src/lib/.libs/libwps-0.4.so.4.0.$(WPS_VERSION_MICRO)))
+$(eval $(call gb_ExternalPackage_add_file,libwps,$(LIBO_LIB_FOLDER)/libwps-0.4-lo.so.4,src/lib/.libs/libwps-0.4-lo.so.4.0.$(WPS_VERSION_MICRO)))
 endif
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libwps/UnpackedTarball_libwps.mk b/external/libwps/UnpackedTarball_libwps.mk
index 77f1265..52d9ab3 100644
--- a/external/libwps/UnpackedTarball_libwps.mk
+++ b/external/libwps/UnpackedTarball_libwps.mk
@@ -19,4 +19,12 @@ $(eval $(call gb_UnpackedTarball_add_patches,libwps,\
 	$(if $(SYSTEM_REVENGE),,external/libwps/rpath.patch.0) \
 ))
 
+ifneq ($(OS),MACOSX)
+ifneq ($(OS),WNT)
+$(eval $(call gb_UnpackedTarball_add_patches,libwps,\
+	external/libwps/libwps-bundled-soname.patch.0 \
+))
+endif
+endif
+
 # vim: set noet sw=4 ts=4:
diff --git a/external/libwps/libwps-bundled-soname.patch.0 b/external/libwps/libwps-bundled-soname.patch.0
new file mode 100644
index 0000000..734cdc6
--- /dev/null
+++ b/external/libwps/libwps-bundled-soname.patch.0
@@ -0,0 +1,11 @@
+--- src/lib/Makefile.in.orig	2015-08-06 11:41:55.081239194 +0200
++++ src/lib/Makefile.in	2015-08-06 11:42:16.903238820 +0200
+@@ -369,7 +369,7 @@
+ AM_CXXFLAGS = -I$(top_srcdir)/inc $(REVENGE_CFLAGS) $(DEBUG_CXXFLAGS) -DBUILD_WPS=1
+ libwps_ at WPS_MAJOR_VERSION@_ at WPS_MINOR_VERSION@_la_LIBADD = $(REVENGE_LIBS) @LIBWPS_WIN32_RESOURCE@
+ libwps_ at WPS_MAJOR_VERSION@_ at WPS_MINOR_VERSION@_la_DEPENDENCIES = @LIBWPS_WIN32_RESOURCE@
+-libwps_ at WPS_MAJOR_VERSION@_ at WPS_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined
++libwps_ at WPS_MAJOR_VERSION@_ at WPS_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic -no-undefined -release lo
+ libwps_ at WPS_MAJOR_VERSION@_ at WPS_MINOR_VERSION@_la_SOURCES = \
+ 	libwps_internal.cpp	\
+ 	libwps_tools_win.h	\
commit f046bbd1364d55fbbad3f2a246fc948d37105df8
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Fri Jul 31 09:15:14 2015 +0200

    tdf#88986 sw: add missing XPropertyList pool items on TextFrame insertion
    
    Regression from commit 6e61ecd09679a66060f932835622821d39e92f01 (Merge
    back branch alg_writerframes to trunk, 2014-03-19), the problem was
    while SwFrameShell::Execute() was modified to put the various pool items
    related to fill types (colors, gradients, etc) to the item set of the
    dialog, the same was missing in SwTextShell::ExecInsert(), so colors
    were missing on inserting a new frame, but not when editing an existing
    one.
    
    Change-Id: Id009f914c1c3b6509e31a4887e32a00624678cf4
    (cherry picked from commit 6c3ca675509101732d3d878d6ceb6226026cd9ac)
    Reviewed-on: https://gerrit.libreoffice.org/17753
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/inc/drawdoc.hxx b/sw/inc/drawdoc.hxx
index 0e4ea36..bad9c0c 100644
--- a/sw/inc/drawdoc.hxx
+++ b/sw/inc/drawdoc.hxx
@@ -35,6 +35,8 @@ public:
 
     const SwDoc& GetDoc() const { return *m_pDoc; }
           SwDoc& GetDoc()       { return *m_pDoc; }
+    /// Put needed items for XPropertyList entries from the DrawModel.
+    void PutAreaListItems(SfxItemSet& rSet) const;
 
     virtual SdrPage* AllocPage(bool bMasterPage) SAL_OVERRIDE;
 
diff --git a/sw/source/core/draw/drawdoc.cxx b/sw/source/core/draw/drawdoc.cxx
index 6c7a0b1..efd0bb1 100644
--- a/sw/source/core/draw/drawdoc.cxx
+++ b/sw/source/core/draw/drawdoc.cxx
@@ -151,4 +151,12 @@ uno::Reference< uno::XInterface > SwDrawModel::createUnoModel()
     return xModel;
 }
 
+void SwDrawModel::PutAreaListItems(SfxItemSet& rSet) const
+{
+    rSet.Put(SvxColorListItem(GetColorList(), SID_COLOR_TABLE));
+    rSet.Put(SvxGradientListItem(GetGradientList(), SID_GRADIENT_LIST));
+    rSet.Put(SvxHatchListItem(GetHatchList(), SID_HATCH_LIST));
+    rSet.Put(SvxBitmapListItem(GetBitmapList(), SID_BITMAP_LIST));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/shells/frmsh.cxx b/sw/source/uibase/shells/frmsh.cxx
index d42f0e9..4868fdf 100644
--- a/sw/source/uibase/shells/frmsh.cxx
+++ b/sw/source/uibase/shells/frmsh.cxx
@@ -415,11 +415,7 @@ void SwFrameShell::Execute(SfxRequest &rReq)
                 //UUUU create needed items for XPropertyList entries from the DrawModel so that
                 // the Area TabPage can access them
                 const SwDrawModel* pDrawModel = rSh.GetView().GetDocShell()->GetDoc()->getIDocumentDrawModelAccess().GetDrawModel();
-
-                aSet.Put(SvxColorListItem(pDrawModel->GetColorList(), SID_COLOR_TABLE));
-                aSet.Put(SvxGradientListItem(pDrawModel->GetGradientList(), SID_GRADIENT_LIST));
-                aSet.Put(SvxHatchListItem(pDrawModel->GetHatchList(), SID_HATCH_LIST));
-                aSet.Put(SvxBitmapListItem(pDrawModel->GetBitmapList(), SID_BITMAP_LIST));
+                pDrawModel->PutAreaListItems(aSet);
 
                 const SwViewOption* pVOpt = rSh.GetViewOptions();
                 if(nSel & nsSelectionType::SEL_OLE)
diff --git a/sw/source/uibase/shells/textsh.cxx b/sw/source/uibase/shells/textsh.cxx
index 2cf10fe..6087187 100644
--- a/sw/source/uibase/shells/textsh.cxx
+++ b/sw/source/uibase/shells/textsh.cxx
@@ -114,6 +114,8 @@ using namespace ::com::sun::star;
 #include <table.hrc>
 #include <frmui.hrc>
 #include <unomid.h>
+#include <IDocumentDrawModelAccess.hxx>
+#include <drawdoc.hxx>
 #include <boost/scoped_ptr.hpp>
 
 SFX_IMPL_INTERFACE(SwTextShell, SwBaseShell)
@@ -579,11 +581,16 @@ void SwTextShell::ExecInsert(SfxRequest &rReq)
                 SID_ATTR_PAGE_SIZE,     SID_ATTR_PAGE_SIZE,
                 FN_SET_FRM_NAME,        FN_SET_FRM_NAME,
                 SID_HTML_MODE,          SID_HTML_MODE,
+                SID_COLOR_TABLE,        SID_BITMAP_LIST,
                 0
             };
 
             SfxItemSet aSet(GetPool(), aFrmAttrRange );
             aSet.Put(SfxUInt16Item(SID_HTML_MODE, ::GetHtmlMode(GetView().GetDocShell())));
+
+            // For the Area tab page.
+            GetShell().GetDoc()->getIDocumentDrawModelAccess().GetDrawModel()->PutAreaListItems(aSet);
+
             const SwRect &rPg = GetShell().GetAnyCurRect(RECT_PAGE);
             SwFormatFrmSize aFrmSize(ATT_VAR_SIZE, rPg.Width(), rPg.Height());
             aFrmSize.SetWhich(GetPool().GetWhich(SID_ATTR_PAGE_SIZE));
commit 97d69b9b0d0d7d6d69587a27ea108663ede4f1c6
Author: Andras Timar <andras.timar at collabora.com>
Date:   Thu Aug 6 21:51:28 2015 +0200

    libwpd bundled soname patch
    
    Reviewed-on: https://gerrit.libreoffice.org/17548
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    (cherry picked from commit 4284337d92420373f2e1bcb40c9513db94a73bca)
    
    Conflicts:
    	external/libwpd/ExternalPackage_libwpd.mk
    
    Change-Id: I25dee74be0391b56587b4cc3eb9599708446825d
    Reviewed-on: https://gerrit.libreoffice.org/17795
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/external/libwpd/ExternalPackage_libwpd.mk b/external/libwpd/ExternalPackage_libwpd.mk
index 51badef..ce22af0 100644
--- a/external/libwpd/ExternalPackage_libwpd.mk
+++ b/external/libwpd/ExternalPackage_libwpd.mk
@@ -16,7 +16,7 @@ $(eval $(call gb_ExternalPackage_add_file,libwpd,$(LIBO_LIB_FOLDER)/libwpd-0.10.
 else ifeq ($(OS),WNT)
 $(eval $(call gb_ExternalPackage_add_file,libwpd,$(LIBO_LIB_FOLDER)/libwpd-0.10.dll,src/lib/.libs/libwpd-0.10.dll))
 else ifeq ($(filter IOS ANDROID,$(OS)),)
-$(eval $(call gb_ExternalPackage_add_file,libwpd,$(LIBO_LIB_FOLDER)/libwpd-0.10.so.10,src/lib/.libs/libwpd-0.10.so.10.0.0))
+$(eval $(call gb_ExternalPackage_add_file,libwpd,$(LIBO_LIB_FOLDER)/libwpd-0.10-lo.so.10,src/lib/.libs/libwpd-0.10-lo.so.10.0.0))
 endif
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libwpd/UnpackedTarball_libwpd.mk b/external/libwpd/UnpackedTarball_libwpd.mk
index 9610dfb..7fb7c3b 100644
--- a/external/libwpd/UnpackedTarball_libwpd.mk
+++ b/external/libwpd/UnpackedTarball_libwpd.mk
@@ -18,4 +18,12 @@ $(eval $(call gb_UnpackedTarball_add_patches,libwpd,\
 	$(if $(SYSTEM_REVENGE),,external/libwpd/rpath.patch) \
 ))
 
+ifneq ($(OS),MACOSX)
+ifneq ($(OS),WNT)
+$(eval $(call gb_UnpackedTarball_add_patches,libwpd,\
+	external/libwpd/libwpd-bundled-soname.patch.0 \
+))
+endif
+endif
+
 # vim: set noet sw=4 ts=4:
diff --git a/external/libwpd/libwpd-bundled-soname.patch.0 b/external/libwpd/libwpd-bundled-soname.patch.0
new file mode 100644
index 0000000..04661f2
--- /dev/null
+++ b/external/libwpd/libwpd-bundled-soname.patch.0
@@ -0,0 +1,11 @@
+--- src/lib/Makefile.in.orig	2015-08-06 21:41:41.073622494 +0200
++++ src/lib/Makefile.in	2015-08-06 21:42:09.377622009 +0200
+@@ -429,7 +429,7 @@
+ AM_CXXFLAGS = -I$(top_srcdir)/inc $(REVENGE_CFLAGS) $(DEBUG_CXXFLAGS) -DLIBWPD_BUILD=1
+ libwpd_ at WPD_MAJOR_VERSION@_ at WPD_MINOR_VERSION@_la_LIBADD = $(REVENGE_LIBS) @LIBWPD_WIN32_RESOURCE@
+ libwpd_ at WPD_MAJOR_VERSION@_ at WPD_MINOR_VERSION@_la_DEPENDENCIES = @LIBWPD_WIN32_RESOURCE@
+-libwpd_ at WPD_MAJOR_VERSION@_ at WPD_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic $(no_undefined)
++libwpd_ at WPD_MAJOR_VERSION@_ at WPD_MINOR_VERSION@_la_LDFLAGS = $(version_info) -export-dynamic $(no_undefined) -release lo
+ libwpd_ at WPD_MAJOR_VERSION@_ at WPD_MINOR_VERSION@_la_SOURCES = \
+ 	libwpd_internal.cpp \
+ 	libwpd_math.cpp \
commit 03153d5c42040b92dd46a9160bb4064528aa1a15
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Aug 17 13:37:18 2015 +0200

    Resolves: tdf#93326 >Fill< to >F~ill<, >Ed~it Mode< to >E~dit Mode<
    
    in Edit menu ~d seems not to be used by any application.
    
    Change-Id: I55c58130e7e95dc3d22a254c41e0d09c7ae49583
    Reviewed-on: https://gerrit.libreoffice.org/17802
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
index c380155..c82ed03 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
@@ -1841,7 +1841,7 @@
       </node>
       <node oor:name=".uno:FillCellsMenu" oor:op="replace">
         <prop oor:name="Label" oor:type="xs:string">
-          <value xml:lang="en-US">Fill</value>
+          <value xml:lang="en-US">F~ill</value>
         </prop>
       </node>
       <node oor:name=".uno:CellContentsMenu" oor:op="replace">
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
index 7e2f00b..91aa011 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
@@ -2456,7 +2456,7 @@
       </node>
       <node oor:name=".uno:EditDoc" oor:op="replace">
         <prop oor:name="Label" oor:type="xs:string">
-          <value xml:lang="en-US">Ed~it Mode</value>
+          <value xml:lang="en-US">E~dit Mode</value>
         </prop>
         <prop oor:name="Properties" oor:type="xs:int">
           <value>9</value>
commit 935799098491746462c63759cf59dc8a728b9239
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Fri Aug 14 17:31:18 2015 +0200

    bin/run: fix LO_TRACE on Windows
    
    exedir has to be in the c:/foo form, instead of /cygdrive/c/foo,
    otherwise a native wrapper set by LO_TRACE won't understand it.
    
    With this, it's possible to use DrMemory on executables invoked by
    bin/run.
    
    Change-Id: I5332342fdbf7d9e4859360dd7fbd3d74c149b2dc
    (cherry picked from commit 6d78caf68cd63a671342e777bfe78721b424f4d6)
    Signed-off-by: Michael Stahl <mstahl at redhat.com>

diff --git a/bin/run b/bin/run
index c1b3f93..7823861 100755
--- a/bin/run
+++ b/bin/run
@@ -21,7 +21,7 @@ if uname | grep -i CYGWIN >/dev/null; then
         dir=$(realpath "${dir}/..")
     done
 
-    exedir="${dir}"/workdir/LinkTarget/Executable
+    exedir=$(cygpath -m "${dir}"/workdir/LinkTarget/Executable)
     export URE_BOOTSTRAP=file:///$(cygpath -m "${dir}")/instdir/program/fundamental.ini
     export PATH=${PATH:+$PATH:}"${dir}"/instdir/program
 
commit 9c2099cf6a2ca7f7cd741470a598603978ee7f90
Author: Eike Rathke <erack at redhat.com>
Date:   Sat Aug 15 00:47:03 2015 +0200

    Resolves: tdf#93358 resync attribute pattern that may have changed
    
    Change-Id: If3ce8feec940c7212fe467f39db868630522b17e
    (cherry picked from commit f089de7dc5c367a3123129b08a9050b3bacc4eba)
    Reviewed-on: https://gerrit.libreoffice.org/17765
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
    Tested-by: Markus Mohrhard <markus.mohrhard at googlemail.com>

diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx
index 566c139..bb6a37d 100644
--- a/sc/source/core/data/column2.cxx
+++ b/sc/source/core/data/column2.cxx
@@ -824,7 +824,18 @@ void ScColumn::GetOptimalHeight(
             }
 
             if (bStdOnly)
-                if (HasEditCells(nStart,nEnd,nEditPos))     // includes mixed script types
+            {
+                bool bHasEditCells = HasEditCells(nStart,nEnd,nEditPos);
+                // Call to HasEditCells() may change pattern due to
+                // calculation, => sync always.
+                // We don't know which row changed first, but as pPattern
+                // covered nStart to nEnd we can pick nStart. Worst case we
+                // have to repeat that for every row in range if every row
+                // changed.
+                pPattern = aIter.Resync( nStart, nStart, nEnd);
+                if (bHasEditCells && nEnd < nEditPos)
+                    bHasEditCells = false;              // run into that again
+                if (bHasEditCells)                      // includes mixed script types
                 {
                     if (nEditPos == nStart)
                     {
@@ -840,6 +851,7 @@ void ScColumn::GetOptimalHeight(
                         nEnd = nEditPos - 1;            // standard - part
                     }
                 }
+            }
 
             sc::SingleColumnSpanSet aSpanSet;
             aSpanSet.scan(*this, nStart, nEnd);
commit 83b00768ec8a68c6e2f1f910c98bcd2490e5e867
Author: Eike Rathke <erack at redhat.com>

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list