[Libreoffice-commits] core.git: Branch 'distro/suse/suse-4.0' - 35 commits - boost/boost.ptree.patch boost/UnpackedTarball_boost.mk comphelper/inc configure.ac connectivity/source cui/source download.lst drawinglayer/source editeng/source extras/Package_extensions.mk libcdr/ExternalProject_libcdr.mk libcdr/libcdr-0.0.13.patch libcdr/prj libcdr/UnpackedTarball_cdr.mk librelogo/source oox/source reportbuilder/java reportdesign/source sc/Library_scfilt.mk sc/source sd/source svtools/inc svtools/source svx/source sw/inc sw/qa sw/source vcl/generic vcl/inc vcl/source vcl/unx writerfilter/source xmloff/source

Miklos Vajna vmiklos at suse.cz
Tue May 7 04:21:29 PDT 2013


 boost/UnpackedTarball_boost.mk                                                                |    2 
 boost/boost.ptree.patch                                                                       |   11 
 comphelper/inc/comphelper/classids.hxx                                                        |    6 
 configure.ac                                                                                  |    2 
 connectivity/source/parse/sqlnode.cxx                                                         |    9 
 cui/source/inc/macroass.hxx                                                                   |    1 
 cui/source/tabpages/macroass.cxx                                                              |   31 +-
 download.lst                                                                                  |    4 
 drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx                                    |    2 
 editeng/source/editeng/impedit3.cxx                                                           |   49 ++-
 editeng/source/items/frmitems.cxx                                                             |    3 
 extras/Package_extensions.mk                                                                  |   12 
 libcdr/ExternalProject_libcdr.mk                                                              |    6 
 libcdr/UnpackedTarball_cdr.mk                                                                 |    6 
 libcdr/libcdr-0.0.13.patch                                                                    |   12 
 libcdr/prj/build.lst                                                                          |    2 
 librelogo/source/LibreLogo/LibreLogo.py                                                       |   10 
 oox/source/export/chartexport.cxx                                                             |   17 -
 oox/source/export/drawingml.cxx                                                               |   15 +
 oox/source/export/shapes.cxx                                                                  |   19 +
 reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/TableCellLayoutController.java |    5 
 reportdesign/source/core/api/FixedLine.cxx                                                    |    5 
 reportdesign/source/core/api/FixedText.cxx                                                    |    5 
 reportdesign/source/core/api/FormattedField.cxx                                               |    3 
 reportdesign/source/core/api/ImageControl.cxx                                                 |    5 
 reportdesign/source/core/api/ReportDefinition.cxx                                             |    4 
 reportdesign/source/core/api/Shape.cxx                                                        |    5 
 sc/Library_scfilt.mk                                                                          |    1 
 sc/source/filter/orcus/xmlcontext.cxx                                                         |   34 ++
 sc/source/ui/vba/vbarange.cxx                                                                 |    2 
 sc/source/ui/view/drawview.cxx                                                                |    3 
 sd/source/ui/animations/CustomAnimationDialog.cxx                                             |   19 -
 svtools/inc/svtools/treelistbox.hxx                                                           |    1 
 svtools/source/contnr/treelistbox.cxx                                                         |   30 +-
 svx/source/svdraw/svdobj.cxx                                                                  |   12 
 sw/inc/acmplwrd.hxx                                                                           |   17 -
 sw/qa/extras/ww8export/data/fdo42144.odt                                                      |binary
 sw/qa/extras/ww8export/ww8export.cxx                                                          |    9 
 sw/source/core/doc/acmplwrd.cxx                                                               |   42 ---
 sw/source/core/unocore/unotext.cxx                                                            |    3 
 sw/source/filter/writer/wrtswtbl.cxx                                                          |   12 
 sw/source/filter/ww8/wrtw8sty.cxx                                                             |    2 
 sw/source/filter/xml/xmltbli.cxx                                                              |   18 +
 sw/source/filter/xml/xmltbli.hxx                                                              |    3 
 sw/source/ui/docvw/PostItMgr.cxx                                                              |    2 
 sw/source/ui/docvw/edtwin.cxx                                                                 |  125 ----------
 vcl/generic/glyphs/gcach_layout.cxx                                                           |   15 -
 vcl/inc/unx/salinst.h                                                                         |   10 
 vcl/source/gdi/outdev.cxx                                                                     |    9 
 vcl/unx/generic/dtrans/X11_service.cxx                                                        |    2 
 vcl/unx/gtk/window/gtkframe.cxx                                                               |   38 +--
 writerfilter/source/dmapper/NumberingManager.cxx                                              |    3 
 xmloff/source/draw/shapeexport.cxx                                                            |    3 
 53 files changed, 373 insertions(+), 293 deletions(-)

New commits:
commit c0c38e90b1003d72b7ddfaddd923ee39d910c0cb
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Mon May 6 13:01:27 2013 +0200

    fdo#42144 WW8 export: avoid writing pointless empty footers
    
    Regression from 1348288905ffa75d3634eee4392ba4660d28cdb9 (mismerge, I
    guess), when header was enabled, actually empty footer was exported,
    even in case footer was disabled.
    
    (cherry picked from commit 4144cd5a851466778004af9de98dbcfb019067bb)
    
    Conflicts:
    	sw/qa/extras/ww8export/ww8export.cxx
    
    Change-Id: Ied55dc2a9f0faef87689c07935a47db384d37e1a
    Reviewed-on: https://gerrit.libreoffice.org/3797
    Reviewed-by: Bosdonnat Cedric <cedric.bosdonnat at free.fr>
    Tested-by: Bosdonnat Cedric <cedric.bosdonnat at free.fr>

diff --git a/sw/qa/extras/ww8export/data/fdo42144.odt b/sw/qa/extras/ww8export/data/fdo42144.odt
new file mode 100644
index 0000000..be94900
Binary files /dev/null and b/sw/qa/extras/ww8export/data/fdo42144.odt differ
diff --git a/sw/qa/extras/ww8export/ww8export.cxx b/sw/qa/extras/ww8export/ww8export.cxx
index 679f765..6ed1ccd 100644
--- a/sw/qa/extras/ww8export/ww8export.cxx
+++ b/sw/qa/extras/ww8export/ww8export.cxx
@@ -42,6 +42,7 @@ public:
     void testFdo45724();
     void testFdo46020();
     void testFirstHeaderFooter();
+    void testFdo42144();
 
     CPPUNIT_TEST_SUITE(Test);
 #if !defined(MACOSX) && !defined(WNT)
@@ -60,6 +61,7 @@ void Test::run()
         {"fdo45724.odt", &Test::testFdo45724},
         {"fdo46020.odt", &Test::testFdo46020},
         {"first-header-footer.doc", &Test::testFirstHeaderFooter},
+        {"fdo42144.odt", &Test::testFdo42144},
     };
     for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i)
     {
@@ -139,6 +141,13 @@ void Test::testFirstHeaderFooter()
     CPPUNIT_ASSERT_EQUAL(OUString("Even page footer 2"),  parseDump("/root/page[6]/footer/txt/text()"));
 }
 
+void Test::testFdo42144()
+{
+    // Footer wasn't disabled -- instead empty footer was exported.
+    uno::Reference<beans::XPropertySet> xStyle(getStyles("PageStyles")->getByName(DEFAULT_STYLE), uno::UNO_QUERY);
+    CPPUNIT_ASSERT_EQUAL(false, bool(getProperty<sal_Bool>(xStyle, "FooterIsOn")));
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(Test);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sw/source/filter/ww8/wrtw8sty.cxx b/sw/source/filter/ww8/wrtw8sty.cxx
index f002c1f..d837181 100644
--- a/sw/source/filter/ww8/wrtw8sty.cxx
+++ b/sw/source/filter/ww8/wrtw8sty.cxx
@@ -1182,7 +1182,7 @@ void WW8_WrPlcSepx::OutHeaderFooter( WW8Export& rWrt, bool bHeader,
     else if ( rWrt.bWrtWW8 )
     {
         pTxtPos->Append( rCpPos );
-        if (rWrt.bHasHdr && nBreakCode!=0)
+        if ((bHeader? rWrt.bHasHdr : rWrt.bHasFtr) && nBreakCode!=0)
         {
             rWrt.WriteStringAsPara( aEmptyStr ); // Empty paragraph for empty header/footer
             rWrt.WriteStringAsPara( aEmptyStr ); // a CR that WW8 needs for end of the stream
commit 9411d4d56374a55777019d58c1e7f45767662707
Author: Faisal M. Al-Otaibi <fmalotaibi at kacst.edu.sa>
Date:   Sun May 5 09:49:30 2013 +0300

    fdo#63878 fix the zoom problem when the sheet are RTL
    
    Change-Id: Ie451b7a84b5481e9209c5b6d6d439844de5082fd
    Reviewed-on: https://gerrit.libreoffice.org/3789
    Reviewed-by: Eike Rathke <erack at redhat.com>
    Tested-by: Eike Rathke <erack at redhat.com>
    (cherry picked from commit 5bff7f52075eb3ffe931d1779681262e1820a859)
    
    Signed-off-by: Eike Rathke <erack at redhat.com>

diff --git a/sc/source/ui/view/drawview.cxx b/sc/source/ui/view/drawview.cxx
index 6900932..7e4555d 100644
--- a/sc/source/ui/view/drawview.cxx
+++ b/sc/source/ui/view/drawview.cxx
@@ -791,6 +791,9 @@ void ScDrawView::SyncForGrid( SdrObject* pObj )
         Point aCurPos =  pViewData->GetScrPos(  aOldStt.Col(), aOldStt.Row(), eWhich, sal_True );
         Point aCurPosHmm = pGridWin->PixelToLogic(aCurPos, aDrawMode );
         Point aGridOff = ( aCurPosHmm - aOldPos );
+        // fdo#63878 Fix the X position for RTL Sheet
+        if( aGridOff.getX() < 0 )
+            aGridOff.setX( aCurPosHmm.getX() + aOldPos.getX() );
         pObj->SetGridOffset( aGridOff );
     }
 }
commit 9679b6abb7a44bd11c6d7b440b4d99323f7e651a
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Fri May 3 18:09:15 2013 +0200

    fdo#48056 treat report chart as draw chart
    
    Change-Id: I0a716b4339747f1994e5c8710e15474807aea4a2
    Reviewed-on: https://gerrit.libreoffice.org/3767
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
    Tested-by: Miklos Vajna <vmiklos at suse.cz>

diff --git a/comphelper/inc/comphelper/classids.hxx b/comphelper/inc/comphelper/classids.hxx
index 416715b..4a16e44 100644
--- a/comphelper/inc/comphelper/classids.hxx
+++ b/comphelper/inc/comphelper/classids.hxx
@@ -405,6 +405,12 @@
 // #110743#
 #define BF_SO3_SCH_CLASSID  BF_SO3_SCH_CLASSID_50
 
+// Report chart
+
+#define SO3_RPTCH_CLASSID \
+    0x80243D39, 0x6741, 0x46C5, 0x92, 0x6E, 0x06, \
+    0x91, 0x64, 0xFF, 0x87, 0xBB
+
 /****************************************************
 * StarImage
 ****************************************************/
diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx
index a4c71b4..c7d812b 100644
--- a/xmloff/source/draw/shapeexport.cxx
+++ b/xmloff/source/draw/shapeexport.cxx
@@ -1079,7 +1079,8 @@ void XMLShapeExport::ImpCalcShapeType(const uno::Reference< drawing::XShape >& x
                         rtl::OUString sCLSID;
                         if(xPropSet->getPropertyValue(OUString("CLSID")) >>= sCLSID)
                         {
-                            if (sCLSID.equals(mrExport.GetChartExport()->getChartCLSID()))
+                            if (sCLSID.equals(mrExport.GetChartExport()->getChartCLSID()) ||
+                                sCLSID.equals(rtl::OUString( SvGlobalName( SO3_RPTCH_CLASSID ).GetHexName())))
                             {
                                 eShapeType = XmlShapeTypeDrawChartShape;
                             }
commit c3b9aa0992887363ae771910b6a4942aab6f67dc
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Fri May 3 17:47:24 2013 +0200

    fdo#48056 revert part of return "correct name for shapetype"
    
    Keep hardcoded values as *fallback* only, but trust m_aProps.aComponent.m_xShape->getShapeType when present.
    
    Change-Id: I5a024a9bc5f87d226ab3c857817dfe91ad975acb
    Reviewed-on: https://gerrit.libreoffice.org/3766
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
    Tested-by: Miklos Vajna <vmiklos at suse.cz>
    Reviewed-by: Miklos Vajna <vmiklos at suse.cz>

diff --git a/reportdesign/source/core/api/FixedLine.cxx b/reportdesign/source/core/api/FixedLine.cxx
index 51dff9d..f211053 100644
--- a/reportdesign/source/core/api/FixedLine.cxx
+++ b/reportdesign/source/core/api/FixedLine.cxx
@@ -526,7 +526,10 @@ void SAL_CALL OFixedLine::setSize( const awt::Size& aSize ) throw (beans::Proper
 // XShapeDescriptor
 ::rtl::OUString SAL_CALL OFixedLine::getShapeType(  ) throw (uno::RuntimeException)
 {
-   return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.ControlShape"));
+    ::osl::MutexGuard aGuard(m_aMutex);
+    if ( m_aProps.aComponent.m_xShape.is() )
+        return m_aProps.aComponent.m_xShape->getShapeType();
+    return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.ControlShape"));
 }
 // -----------------------------------------------------------------------------
 ::rtl::OUString SAL_CALL OFixedLine::getHyperLinkURL() throw (uno::RuntimeException, beans::UnknownPropertyException)
diff --git a/reportdesign/source/core/api/FixedText.cxx b/reportdesign/source/core/api/FixedText.cxx
index 2d127a1..215b89c 100644
--- a/reportdesign/source/core/api/FixedText.cxx
+++ b/reportdesign/source/core/api/FixedText.cxx
@@ -321,7 +321,10 @@ void SAL_CALL OFixedText::setSize( const awt::Size& aSize ) throw (beans::Proper
 // XShapeDescriptor
 ::rtl::OUString SAL_CALL OFixedText::getShapeType(  ) throw (uno::RuntimeException)
 {
-   return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.ControlShape"));
+    ::osl::MutexGuard aGuard(m_aMutex);
+    if ( m_aProps.aComponent.m_xShape.is() )
+        return m_aProps.aComponent.m_xShape->getShapeType();
+    return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.ControlShape"));
 }
 // -----------------------------------------------------------------------------
 // -----------------------------------------------------------------------------
diff --git a/reportdesign/source/core/api/FormattedField.cxx b/reportdesign/source/core/api/FormattedField.cxx
index a05fc55..9b47924 100644
--- a/reportdesign/source/core/api/FormattedField.cxx
+++ b/reportdesign/source/core/api/FormattedField.cxx
@@ -364,6 +364,9 @@ void SAL_CALL OFormattedField::setSize( const awt::Size& aSize ) throw (beans::P
 // XShapeDescriptor
 ::rtl::OUString SAL_CALL OFormattedField::getShapeType(  ) throw (uno::RuntimeException)
 {
+    ::osl::MutexGuard aGuard(m_aMutex);
+    if ( m_aProps.aComponent.m_xShape.is() )
+        return m_aProps.aComponent.m_xShape->getShapeType();
    return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.ControlShape"));
 }
 // -----------------------------------------------------------------------------
diff --git a/reportdesign/source/core/api/ImageControl.cxx b/reportdesign/source/core/api/ImageControl.cxx
index 99081f7..8c71eb7 100644
--- a/reportdesign/source/core/api/ImageControl.cxx
+++ b/reportdesign/source/core/api/ImageControl.cxx
@@ -458,7 +458,10 @@ void SAL_CALL OImageControl::setSize( const awt::Size& aSize ) throw (beans::Pro
 // XShapeDescriptor
 ::rtl::OUString SAL_CALL OImageControl::getShapeType(  ) throw (uno::RuntimeException)
 {
-   return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.ControlShape"));
+    ::osl::MutexGuard aGuard(m_aMutex);
+    if ( m_aProps.aComponent.m_xShape.is() )
+        return m_aProps.aComponent.m_xShape->getShapeType();
+    return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.ControlShape"));
 }
 // -----------------------------------------------------------------------------
 ::sal_Int16 SAL_CALL OImageControl::getScaleMode() throw (uno::RuntimeException)
diff --git a/reportdesign/source/core/api/ReportDefinition.cxx b/reportdesign/source/core/api/ReportDefinition.cxx
index 1ae1719..1825836 100644
--- a/reportdesign/source/core/api/ReportDefinition.cxx
+++ b/reportdesign/source/core/api/ReportDefinition.cxx
@@ -2432,6 +2432,10 @@ void SAL_CALL OReportDefinition::setSize( const awt::Size& aSize ) throw (beans:
 // XShapeDescriptor
 ::rtl::OUString SAL_CALL OReportDefinition::getShapeType(  ) throw (uno::RuntimeException)
 {
+    ::osl::MutexGuard aGuard(m_aMutex);
+    ::connectivity::checkDisposed(ReportDefinitionBase::rBHelper.bDisposed);
+    if ( m_aProps->m_xShape.is() )
+        return m_aProps->m_xShape->getShapeType();
    return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.OLE2Shape"));
 }
 // -----------------------------------------------------------------------------
diff --git a/reportdesign/source/core/api/Shape.cxx b/reportdesign/source/core/api/Shape.cxx
index d57fb95..f5db00a 100644
--- a/reportdesign/source/core/api/Shape.cxx
+++ b/reportdesign/source/core/api/Shape.cxx
@@ -414,7 +414,10 @@ void SAL_CALL OShape::setSize( const awt::Size& aSize ) throw (beans::PropertyVe
 // XShapeDescriptor
 ::rtl::OUString SAL_CALL OShape::getShapeType(  ) throw (uno::RuntimeException)
 {
-   return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.CustomShape"));
+    ::osl::MutexGuard aGuard(m_aMutex);
+    if ( m_aProps.aComponent.m_xShape.is() )
+        return m_aProps.aComponent.m_xShape->getShapeType();
+    return OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.CustomShape"));
 }
 // -----------------------------------------------------------------------------
 ::sal_Int32 SAL_CALL OShape::getZOrder() throw (uno::RuntimeException)
commit 71f6188660b88510182e772f0dca50d6d04208d8
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Mon May 6 01:11:36 2013 +0200

    map full transparent solid fill to no fill, fdo#64224
    
    (cherry picked from commit 6e2292b3cdd032edff21f0016b7f61e9bb420699)
    
    Change-Id: I9ec33b347647bfcd6c1411c4db7af51ca597dc8e
    Signed-off-by: Miklos Vajna <vmiklos at suse.cz>

diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 611dcbe..d68ff6b 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -1503,6 +1503,15 @@ void DrawingML::WriteFill( Reference< XPropertySet > xPropSet )
     if( aFillStyle == FillStyle_HATCH )
         return;
 
+    if ( aFillStyle == FillStyle_SOLID && GetProperty( xPropSet, OUString("FillTransparence") ) )
+    {
+        // map full transparent background to no fill
+        sal_Int16 nVal = 0;
+        xPropSet->getPropertyValue( "FillTransparence" ) >>= nVal;
+        if ( nVal == 100 )
+            aFillStyle = FillStyle_NONE;
+    }
+
     switch( aFillStyle )
     {
     case ::com::sun::star::drawing::FillStyle_SOLID :
commit 29d303b7430e90ab5d81c8217ff357bef351868a
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sun May 5 21:35:07 2013 +0200

    let us be explicit about default values
    
    Different MSO versions behave differently in respect to the default
    values. 2007 is not compliant to OOXML and is what our export filter
    expects, 2010+ are compliant to OOXML and therefore our charts look
    awful.
    
    Change-Id: If301d878a1603ed9835884cfbb9ed9c902526ba0
    (cherry picked from commit 93abb2082ad3cae1432d69b65a89dace6646785a)
    Reviewed-on: https://gerrit.libreoffice.org/3793
    Reviewed-by: Miklos Vajna <vmiklos at suse.cz>
    Tested-by: Miklos Vajna <vmiklos at suse.cz>

diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 4eefc90..611dcbe 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -1500,8 +1500,7 @@ void DrawingML::WriteFill( Reference< XPropertySet > xPropSet )
     FillStyle aFillStyle( FillStyle_NONE );
     xPropSet->getPropertyValue( S( "FillStyle" ) ) >>= aFillStyle;
 
-    if( aFillStyle == FillStyle_NONE ||
-        aFillStyle == FillStyle_HATCH )
+    if( aFillStyle == FillStyle_HATCH )
         return;
 
     switch( aFillStyle )
@@ -1515,6 +1514,9 @@ void DrawingML::WriteFill( Reference< XPropertySet > xPropSet )
     case ::com::sun::star::drawing::FillStyle_BITMAP :
         WriteBlipFill( xPropSet, S( "FillBitmapURL" ) );
         break;
+    case ::com::sun::star::drawing::FillStyle_NONE:
+        mpFS->singleElementNS( XML_a, XML_noFill, FSEND );
+        break;
     default:
         ;
     }
commit 992f74f446f68000f06c6ae801646a90ac3c2ad5
Author: Eike Rathke <erack at redhat.com>
Date:   Fri May 3 00:19:59 2013 +0200

    adapt to ICU patch https://ssl.icu-project.org/trac/ticket/10107
    
    do not call LayoutEngine::reset()
    
    Calling reset() disposes everything the LayoutEngine knows in its
    current state. While this may have prevented some obscure crash during
    exit in the past (call was added 2003-03-27), it definitely leads to a
    crash if the updated LayoutEngine "patch"
    http://download.icu-project.org/files/icu4c/51.1/icu-51-layout-fix-10107.tgz
    is applied as that sets fGlyphStorage=NULL (it doesn't delete
    LEGlyphStorage though and thus may leak, but that patch is in the wild
    now) and a later call to mpIcuLE->layoutChars() tries to access
    fGlyphStorage->...() if mpIcuLE is reused.
    
    For the patch mentioned see
    http://site.icu-project.org/download/51#TOC-Known-Issues and
    http://bugs.icu-project.org/trac/ticket/10107
    
    Change-Id: I1b8f5c446c174d7d12b896b3ecd2a266645e8abc
    (cherry picked from commit 7de7267f4cfcb455aabb09053c7ed681d4591867)
    
    implemented IcuFontFromServerFont::getFontTable(LETag,size_t&)
    
    so that ICU versions trying to call
    LEFontInstance::getFontTable(LETag,size_t&) actually call it instead of
    IcuFontFromServerFont::getFontTable(LETag)
    
    See http://site.icu-project.org/download/51#TOC-Known-Issues
    "NOTE: Applications must implement LEFontInstance::getFontTable(LETag,
    size_t &length)  in their LEFontInstance subclasses, so that ICU can
    properly bounds-check font tables."
    
    See also https://ssl.icu-project.org/trac/ticket/10107
    
    (cherry picked from commit 428bde3591ff2fd2195097040dbe1480f1f4210f)
    
    Conflicts:
    	vcl/generic/glyphs/gcach_layout.cxx
    
    Change-Id: Ic20b7e8dda4e84734eb6de0ccba82b0dea481d55
    Reviewed-on: https://gerrit.libreoffice.org/3755
    Reviewed-by: Miklos Vajna <vmiklos at suse.cz>
    Tested-by: Miklos Vajna <vmiklos at suse.cz>

diff --git a/vcl/generic/glyphs/gcach_layout.cxx b/vcl/generic/glyphs/gcach_layout.cxx
index a9f373e..f0d38c6 100644
--- a/vcl/generic/glyphs/gcach_layout.cxx
+++ b/vcl/generic/glyphs/gcach_layout.cxx
@@ -103,6 +103,7 @@ public:
                             : mrServerFont( rFont )
                             {}
 
+    virtual const void*     getFontTable(LETag tableTag, size_t &length) const;
     virtual const void*     getFontTable(LETag tableTag) const;
     virtual le_int32        getUnitsPerEM() const;
     virtual float           getXPixelsPerEm() const;
@@ -124,7 +125,7 @@ public:
 
 // -----------------------------------------------------------------------
 
-const void* IcuFontFromServerFont::getFontTable( LETag nICUTableTag ) const
+const void* IcuFontFromServerFont::getFontTable( LETag nICUTableTag, size_t & rLength ) const
 {
     char pTagName[5];
     pTagName[0] = (char)(nICUTableTag >> 24);
@@ -133,9 +134,10 @@ const void* IcuFontFromServerFont::getFontTable( LETag nICUTableTag ) const
     pTagName[3] = (char)(nICUTableTag);
     pTagName[4] = 0;
 
-    sal_uLong nLength;
+    sal_uLong nLength = 0;
     const unsigned char* pBuffer = mrServerFont.GetTable( pTagName, &nLength );
-    SAL_INFO("vcl", "IcuGetTable(\"" << pTagName << "\") => " << pBuffer);
+    rLength = static_cast<size_t>(nLength);
+    SAL_INFO("vcl", "IcuGetTable(\"" << pTagName << "\") => " << pBuffer << ", len=" << rLength);
     SAL_INFO(
         "vcl",
         "font( h=" << mrServerFont.GetFontSelData().mnHeight << ", \""
@@ -143,6 +145,12 @@ const void* IcuFontFromServerFont::getFontTable( LETag nICUTableTag ) const
     return pBuffer;
 }
 
+const void* IcuFontFromServerFont::getFontTable( LETag nICUTableTag ) const
+{
+    size_t nLength = 0;
+    return getFontTable( nICUTableTag, nLength);
+}
+
 // -----------------------------------------------------------------------
 
 le_int32 IcuFontFromServerFont::getUnitsPerEM() const
@@ -412,7 +420,6 @@ bool IcuLayoutEngine::layout(ServerFontLayout& rLayout, ImplLayoutArgs& rArgs)
         mpIcuLE->getGlyphs( pIcuGlyphs, rcIcu );
         mpIcuLE->getCharIndices( pCharIndices, rcIcu );
         mpIcuLE->getGlyphPositions( &pGlyphPositions->fX, rcIcu );
-        mpIcuLE->reset(); // TODO: get rid of this, PROBLEM: crash at exit when removed
         if( LE_FAILURE(rcIcu) )
             return false;
 
commit fc3f74ea5140071675c08b09780473f983ed2bc2
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri May 3 17:17:10 2013 +0100

    fdo#62797 fix macro assign dialog
    
    Which was empty of contents e.g. from autotext->macro...
    
    because of 5d84af7e83404f22d3c9cd0b0bb88fb84d0550e7
    "fdo#57553: Picture dialog Macro tab page: lazily init"
    
    which was because of bd2c14ec78a7549d4a19738154cdd5ea890f61c4
    "we have to have all tabpages in all modes now"
    
    which was because we need to create all tabpages in order to determine their
    size for layout.
    
        Change-Id: I01fe03abf3e4582e87927729286a21d0bac7037c
    
    Change-Id: Ic662f6a927225b56820ccebf135b82ab1631974d
    Signed-off-by: Andras Timar <atimar at suse.com>

diff --git a/cui/source/inc/macroass.hxx b/cui/source/inc/macroass.hxx
index b7477422..11185dd 100644
--- a/cui/source/inc/macroass.hxx
+++ b/cui/source/inc/macroass.hxx
@@ -69,6 +69,7 @@ public:
     virtual void                PageCreated (SfxAllItemSet aSet);
     using TabPage::ActivatePage; // FIXME WTF is this nonsense?
     virtual void                ActivatePage( const SfxItemSet& );
+    void                        LaunchFillGroup();
 
     // --------- inherit from the base -------------
     virtual sal_Bool                FillItemSet( SfxItemSet& rSet );
diff --git a/cui/source/tabpages/macroass.cxx b/cui/source/tabpages/macroass.cxx
index e91d3fb..4e20432 100644
--- a/cui/source/tabpages/macroass.cxx
+++ b/cui/source/tabpages/macroass.cxx
@@ -216,6 +216,16 @@ sal_Bool _SfxMacroTabPage::FillItemSet( SfxItemSet& rSet )
     return sal_False;
 }
 
+void _SfxMacroTabPage::LaunchFillGroup()
+{
+    if (!mpImpl->maFillGroupTimer.GetTimeoutHdl().IsSet())
+    {
+        mpImpl->maFillGroupTimer.SetTimeoutHdl( STATIC_LINK( this, _SfxMacroTabPage, TimeOut_Impl ) );
+        mpImpl->maFillGroupTimer.SetTimeout( 0 );
+        mpImpl->maFillGroupTimer.Start();
+    }
+}
+
 void _SfxMacroTabPage::ActivatePage( const SfxItemSet& )
 {
     // fdo#57553 lazily init script providers, because it is annoying if done
@@ -223,13 +233,9 @@ void _SfxMacroTabPage::ActivatePage( const SfxItemSet& )
     if (!mpImpl->m_bDummyActivated)
     {
         mpImpl->m_bDummyActivated = true;
+        return;
     }
-    else if (!mpImpl->maFillGroupTimer.GetTimeoutHdl().IsSet())
-    {
-        mpImpl->maFillGroupTimer.SetTimeoutHdl( STATIC_LINK( this, _SfxMacroTabPage, TimeOut_Impl ) );
-        mpImpl->maFillGroupTimer.SetTimeout( 0 );
-        mpImpl->maFillGroupTimer.Start();
-    }
+    LaunchFillGroup();
 }
 
 void _SfxMacroTabPage::PageCreated (SfxAllItemSet aSet)
@@ -481,17 +487,26 @@ SfxMacroTabPage::SfxMacroTabPage( Window* pParent, const ResId& rResId, const Re
     ScriptChanged();
 }
 
+namespace
+{
+    SfxMacroTabPage* CreateSfxMacroTabPage( Window* pParent, const SfxItemSet& rAttrSet )
+    {
+        return new SfxMacroTabPage( pParent, CUI_RES( RID_SVXPAGE_EVENTASSIGN ), NULL, rAttrSet );
+    }
+}
+
 SfxTabPage* SfxMacroTabPage::Create( Window* pParent, const SfxItemSet& rAttrSet )
 {
-    return new SfxMacroTabPage( pParent, CUI_RES( RID_SVXPAGE_EVENTASSIGN ), NULL, rAttrSet );
+    return CreateSfxMacroTabPage(pParent, rAttrSet);
 }
 
 SfxMacroAssignDlg::SfxMacroAssignDlg( Window* pParent, const Reference< XFrame >& rxDocumentFrame, const SfxItemSet& rSet )
     : SfxSingleTabDialog( pParent, rSet, 0 )
 {
-    SfxTabPage* pPage = SfxMacroTabPage::Create( this, rSet );
+    SfxMacroTabPage* pPage = CreateSfxMacroTabPage(this, rSet);
     pPage->SetFrame( rxDocumentFrame );
     SetTabPage( pPage );
+    pPage->LaunchFillGroup();
 }
 
 SfxMacroAssignDlg::~SfxMacroAssignDlg()
commit 3ddb334512f5e4763447ca4ed50054418f6874b8
Author: Riccardo Magliocchetti <riccardo.magliocchetti at gmail.com>
Date:   Sat May 4 19:24:40 2013 +0200

    configure: don't enable ENABLE_NPAPI_FROM_BROWSER with --enable-headless
    
    This fix a build error since otherwise X libraries are required
    Backport of 759cc27530a5f58b43721f2d760c9429561a12fd
    
    Change-Id: Iba718969dca90563ba9e60aa16944e6de67c7141
    Reviewed-on: https://gerrit.libreoffice.org/3786
    Reviewed-by: Andras Timar <atimar at suse.com>
    Tested-by: Andras Timar <atimar at suse.com>

diff --git a/configure.ac b/configure.ac
index 326a2c6..92f0cfa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -8418,7 +8418,7 @@ dnl ===================================================================
 dnl Check for NPAPI interface to plug browser plugins into LibreOffice documents
 dnl ===================================================================
 AC_MSG_CHECKING([whether to plug browser plugins into LibreOffice documents])
-if test "$_os" != Android -a "$_os" != iOS
+if test "$_os" != Android -a "$_os" != iOS -a "$enable_headless" != yes
 then
     AC_MSG_RESULT([yes])
     ENABLE_NPAPI_FROM_BROWSER=YES
commit f9e0e980ce04d1b5ab1ef57dcaab10ad74dbf7b4
Author: Kalman Szalai - KAMI <kami911 at gmail.com>
Date:   Sun May 5 08:00:04 2013 +0200

    Copy extensions as extensions to the solver
    
    Change-Id: I7eb75450f42c895e58920b5b8c58d7a9eb4cb580

diff --git a/extras/Package_extensions.mk b/extras/Package_extensions.mk
index 37205a5..39f0c8d 100644
--- a/extras/Package_extensions.mk
+++ b/extras/Package_extensions.mk
@@ -27,22 +27,22 @@ ifneq ($(NUMBERTEXT_EXTENSION_PACK),)
 $(eval $(call gb_Package_add_file,extras_extensions,bin/numbertext.oxt,$(NUMBERTEXT_EXTENSION_PACK)))
 endif
 ifneq ($(SUNTEMPLATES_DE_PACK),)
-$(eval $(call gb_Package_add_file,extras_extensions,bin/Sun-ODF-Template-Pack-de,$(SUNTEMPLATES_DE_PACK)))
+$(eval $(call gb_Package_add_file,extras_extensions,bin/Sun-ODF-Template-Pack-de.oxt,$(SUNTEMPLATES_DE_PACK)))
 endif
 ifneq ($(SUNTEMPLATES_EN_US_PACK),)
-$(eval $(call gb_Package_add_file,extras_extensions,bin/Sun-ODF-Template-Pack-en-US,$(SUNTEMPLATES_EN_US_PACK)))
+$(eval $(call gb_Package_add_file,extras_extensions,bin/Sun-ODF-Template-Pack-en-US.oxt,$(SUNTEMPLATES_EN_US_PACK)))
 endif
 ifneq ($(SUNTEMPLATES_ES_PACK),)
-$(eval $(call gb_Package_add_file,extras_extensions,bin/Sun-ODF-Template-Pack-es,$(SUNTEMPLATES_ES_PACK)))
+$(eval $(call gb_Package_add_file,extras_extensions,bin/Sun-ODF-Template-Pack-es.oxt,$(SUNTEMPLATES_ES_PACK)))
 endif
 ifneq ($(SUNTEMPLATES_FR_PACK),)
-$(eval $(call gb_Package_add_file,extras_extensions,bin/Sun-ODF-Template-Pack-fr,$(SUNTEMPLATES_FR_PACK)))
+$(eval $(call gb_Package_add_file,extras_extensions,bin/Sun-ODF-Template-Pack-fr.oxt,$(SUNTEMPLATES_FR_PACK)))
 endif
 ifneq ($(SUNTEMPLATES_HU_PACK),)
-$(eval $(call gb_Package_add_file,extras_extensions,bin/Sun-ODF-Template-Pack-hu,$(SUNTEMPLATES_HU_PACK)))
+$(eval $(call gb_Package_add_file,extras_extensions,bin/Sun-ODF-Template-Pack-hu.oxt,$(SUNTEMPLATES_HU_PACK)))
 endif
 ifneq ($(SUNTEMPLATES_IT_PACK),)
-$(eval $(call gb_Package_add_file,extras_extensions,bin/Sun-ODF-Template-Pack-it,$(SUNTEMPLATES_IT_PACK)))
+$(eval $(call gb_Package_add_file,extras_extensions,bin/Sun-ODF-Template-Pack-it.oxt,$(SUNTEMPLATES_IT_PACK)))
 endif
 ifneq ($(TYPO_EXTENSION_PACK),)
 $(eval $(call gb_Package_add_file,extras_extensions,bin/typo.oxt,$(TYPO_EXTENSION_PACK)))
commit 51f5a7925301ab907ff3a36ec2b3c6072eec700b
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Fri May 3 17:42:12 2013 +0200

    fdo#64150 don't segfault when there is no line
    
    Change-Id: Iab36de3d407925cdb0e092afae457907f0261b3e
    Reviewed-on: https://gerrit.libreoffice.org/3765
    Reviewed-by: Thorsten Behrens <tbehrens at suse.com>
    Tested-by: Thorsten Behrens <tbehrens at suse.com>

diff --git a/editeng/source/items/frmitems.cxx b/editeng/source/items/frmitems.cxx
index 35c04bb..275ef73f 100644
--- a/editeng/source/items/frmitems.cxx
+++ b/editeng/source/items/frmitems.cxx
@@ -1966,7 +1966,8 @@ bool SvxBoxItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
                 for (int n(0); n != SAL_N_ELEMENTS(aBorders); ++n)
                 {
                     editeng::SvxBorderLine* pLine = const_cast< editeng::SvxBorderLine* >( GetLine( aBorders[n] ) );
-                    pLine->SetWidth( nWidth );
+                    if( pLine )
+                        pLine->SetWidth( nWidth );
                 }
             }
             return sal_True;
commit 0ea76f882968f5da8e5b71e9840e2dbae263e6ff
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Fri May 3 11:46:58 2013 +0200

    SwPostItMgr::Delete: fix crash when layout is not yet ready
    
    pPostIt is 0 when we have a large document, and the layout is not yet
    ready for a later part of the document, having a comment. Just don't try
    to delete such comments, better than a crash.
    
    (cherry picked from commit 9a7641451dad5c73a936de5361aa3c3f148132d0)
    
    Change-Id: I5fd5c908bc7b1feba926214863e84391b9037484
    Reviewed-on: https://gerrit.libreoffice.org/3757
    Reviewed-by: Bosdonnat Cedric <cedric.bosdonnat at free.fr>
    Tested-by: Bosdonnat Cedric <cedric.bosdonnat at free.fr>

diff --git a/sw/source/ui/docvw/PostItMgr.cxx b/sw/source/ui/docvw/PostItMgr.cxx
index 7f67fb0..4a37c00 100644
--- a/sw/source/ui/docvw/PostItMgr.cxx
+++ b/sw/source/ui/docvw/PostItMgr.cxx
@@ -1169,7 +1169,7 @@ void SwPostItMgr::Delete(String aAuthor)
     aTmp.reserve( mvPostItFlds.size() );
     for(std::list<SwSidebarItem*>::iterator pPostIt = mvPostItFlds.begin(); pPostIt!= mvPostItFlds.end() ; ++pPostIt)
     {
-        if ((*pPostIt)->GetFmtFld() && ((*pPostIt)->pPostIt->GetAuthor() == aAuthor) )
+        if ((*pPostIt)->GetFmtFld() && (*pPostIt)->pPostIt && ((*pPostIt)->pPostIt->GetAuthor() == aAuthor) )
             aTmp.push_back( (*pPostIt)->GetFmtFld() );
     }
     for(std::vector<SwFmtFld*>::iterator i = aTmp.begin(); i!= aTmp.end() ; ++i)
commit 02c199da3055a4393c934fb0a9c3723ec01669b5
Author: Michael Meeks <michael.meeks at suse.com>
Date:   Thu May 2 16:21:35 2013 +0100

    fdo#64048 - fix calc/VBA clearcontents regression.
    
    Change-Id: Id0c07507810ec1db41359f39dee804364fd37ecd
    Reviewed-on: https://gerrit.libreoffice.org/3744
    Reviewed-by: Noel Power <noel.power at suse.com>
    Tested-by: Noel Power <noel.power at suse.com>

diff --git a/sc/source/ui/vba/vbarange.cxx b/sc/source/ui/vba/vbarange.cxx
index e1b62fb..ef1adde 100644
--- a/sc/source/ui/vba/vbarange.cxx
+++ b/sc/source/ui/vba/vbarange.cxx
@@ -1646,7 +1646,7 @@ void SAL_CALL
 ScVbaRange::ClearContents() throw (uno::RuntimeException)
 {
     using namespace ::com::sun::star::sheet::CellFlags;
-    sal_Int32 nFlags = VALUE | DATETIME | STRING | FORMULA | HARDATTR | EDITATTR | FORMATTED;
+    sal_Int32 nFlags = VALUE | DATETIME | STRING | FORMULA;
     ClearContents( nFlags, true );
 }
 
commit 626966831c5f1fa70abc9b69e3a2b2486cc3e130
Author: Zhe Wang <wangzcdl at apache.org>
Date:   Mon Jun 25 05:04:59 2012 +0000

    for #120049#(cherry picked from commit 9b4e6064f9598c834a9c36c39932f3e326419d44)
    
    Signed-off-by: Michael Meeks <michael.meeks at suse.com>

diff --git a/sd/source/ui/animations/CustomAnimationDialog.cxx b/sd/source/ui/animations/CustomAnimationDialog.cxx
index 64dc36c..d356078 100644
--- a/sd/source/ui/animations/CustomAnimationDialog.cxx
+++ b/sd/source/ui/animations/CustomAnimationDialog.cxx
@@ -2325,15 +2325,20 @@ void CustomAnimationTextAnimTabPage::update( STLPropertySet* pSet )
                 pSet->setPropertyValue( nHandleTextGroupingAuto, makeAny( fTextGroupingAuto ) );
         }
     }
+    //bug 120049
+    //[crash] Aoo crash when modify the "Random effects" animation effect's trigger condition to "Start effect on click of" .
+    //If this control is disabled, we should ignore its value
+    if (maCBXAnimateForm.IsEnabled())
+    {
+        sal_Bool bAnimateForm = maCBXAnimateForm.IsChecked();
+        sal_Bool bOldAnimateForm = !bAnimateForm;
 
-    sal_Bool bAnimateForm = maCBXAnimateForm.IsChecked();
-    sal_Bool bOldAnimateForm = !bAnimateForm;
-
-    if(mpSet->getPropertyState( nHandleAnimateForm ) != STLPropertyState_AMBIGUOUS)
-        mpSet->getPropertyValue( nHandleAnimateForm ) >>= bOldAnimateForm;
+        if(mpSet->getPropertyState( nHandleAnimateForm ) != STLPropertyState_AMBIGUOUS)
+            mpSet->getPropertyValue( nHandleAnimateForm ) >>= bOldAnimateForm;
 
-    if( bAnimateForm != bOldAnimateForm )
-        pSet->setPropertyValue( nHandleAnimateForm, makeAny( bAnimateForm ) );
+        if( bAnimateForm != bOldAnimateForm )
+            pSet->setPropertyValue( nHandleAnimateForm, makeAny( bAnimateForm ) );
+    }
 }
 
 void CustomAnimationTextAnimTabPage::updateControlStates()
commit 2e8a941f57292c92e15314001ed70ad31435c7aa
Author: Fridrich Å trba <fridrich.strba at bluewin.ch>
Date:   Thu May 2 12:57:40 2013 +0200

    Fix out-of-bonds Sequence access in NumberingManager with page numbering
    
    Change-Id: Ib35fcee1605215fb22ae9838b29fe1d8be5eaf58
    (cherry picked from commit 4314e6548356a5d2f1dc45e2aa501e37bd5a794e)
    Reviewed-on: https://gerrit.libreoffice.org/3739
    Reviewed-by: Bosdonnat Cedric <cedric.bosdonnat at free.fr>
    Tested-by: Bosdonnat Cedric <cedric.bosdonnat at free.fr>

diff --git a/writerfilter/source/dmapper/NumberingManager.cxx b/writerfilter/source/dmapper/NumberingManager.cxx
index 470cb0c..0cd9138 100644
--- a/writerfilter/source/dmapper/NumberingManager.cxx
+++ b/writerfilter/source/dmapper/NumberingManager.cxx
@@ -492,7 +492,8 @@ uno::Sequence< uno::Sequence< beans::PropertyValue > > ListDef::GetPropertyValue
 
     // Merge the results of [2] in [1]
     sal_Int32 nThisCount = aThis.getLength( );
-    for ( sal_Int32 i = 0; i < nThisCount; i++ )
+    sal_Int32 nAbstractCount = aAbstract.getLength( );
+    for ( sal_Int32 i = 0; i < nThisCount && i < nAbstractCount; i++ )
     {
         uno::Sequence< beans::PropertyValue > level = aThis[i];
         if ( level.hasElements() )
commit f187302463e76b4d253458d3fbbfafca1f9167de
Author: Michael Meeks <michael.meeks at suse.com>
Date:   Thu May 2 11:22:41 2013 +0100

    fdo#60549 - pptx export presentation as well as draw shape objects.
    
    Change-Id: Ibe6e0b9fa55bab7a7d02e55560c1db4c8ed84132
    Signed-off-by: Muthu Subramanian <sumuthu at suse.com>

diff --git a/oox/source/export/shapes.cxx b/oox/source/export/shapes.cxx
index 87b8e55..af43620 100644
--- a/oox/source/export/shapes.cxx
+++ b/oox/source/export/shapes.cxx
@@ -826,11 +826,18 @@ void ShapeExport::WriteGraphicObjectShapePart( Reference< XShape > xShape, Graph
 
     if( NonEmptyText( xShape ) )
     {
-        WriteTextShape( xShape );
+        // avoid treating all 'IsPresentationObject' objects as having text.
+        Reference< XSimpleText > xText( xShape, UNO_QUERY );
 
-        //DBG(dump_pset(mXPropSet));
+        if( xText.is() && xText->getString().getLength() )
+        {
+            DBG(printf("graphicObject: wrote only text\n"));
 
-        return;
+            WriteTextShape( xShape );
+
+            //DBG(dump_pset(mXPropSet));
+            return;
+        }
     }
 
     DBG(printf("graphicObject without text\n"));
@@ -1126,6 +1133,12 @@ static const NameToConvertMapType& lcl_GetConverters()
     shape_converters[ "com.sun.star.drawing.OLE2Shape" ]                = &ShapeExport::WriteOLE2Shape;
     shape_converters[ "com.sun.star.drawing.TableShape" ]               = &ShapeExport::WriteTableShape;
     shape_converters[ "com.sun.star.drawing.TextShape" ]                = &ShapeExport::WriteTextShape;
+
+    shape_converters[ "com.sun.star.presentation.GraphicObjectShape" ]  = &ShapeExport::WriteGraphicObjectShape;
+    shape_converters[ "com.sun.star.presentation.OLE2Shape" ]           = &ShapeExport::WriteOLE2Shape;
+    shape_converters[ "com.sun.star.presentation.TableShape" ]          = &ShapeExport::WriteTableShape;
+    shape_converters[ "com.sun.star.presentation.TextShape" ]           = &ShapeExport::WriteTextShape;
+
     shape_converters[ "com.sun.star.presentation.DateTimeShape" ]       = &ShapeExport::WriteTextShape;
     shape_converters[ "com.sun.star.presentation.FooterShape" ]         = &ShapeExport::WriteTextShape;
     shape_converters[ "com.sun.star.presentation.HeaderShape" ]         = &ShapeExport::WriteTextShape;
commit 5db719e55bbe4ef58de22f5ee510c59d555b0817
Author: László Németh <nemeth at numbertext.org>
Date:   Tue Apr 30 12:30:00 2013 +0200

    fdo#64082 logo: fix hide/showturtle
    
    Change-Id: I1aa1152940697f6390155871c0128519211abddd
    Reviewed-on: https://gerrit.libreoffice.org/3696
    Reviewed-by: Miklos Vajna <vmiklos at suse.cz>
    Tested-by: Miklos Vajna <vmiklos at suse.cz>

diff --git a/librelogo/source/LibreLogo/LibreLogo.py b/librelogo/source/LibreLogo/LibreLogo.py
index 2fa250d..2231646 100644
--- a/librelogo/source/LibreLogo/LibreLogo.py
+++ b/librelogo/source/LibreLogo/LibreLogo.py
@@ -456,7 +456,7 @@ def __initialize__():
         _.doc.CurrentController.select(shape)
         shape.FillColor, transparence = __splitcolor__(_.areacolor)
         shape.LineColor, shape.LineTransparence = __splitcolor__(_.pencolor)
-    else:
+    elif shape.Visible:
         _.areacolor = shape.FillColor + (int(255.0 * shape.FillTransparence/100) << 24)
         _.pencolor = shape.LineColor + (int(255.0 * shape.LineTransparence/100) << 24)
         if shape.LineWidth != round((1 + _.pen * 2) * __PT_TO_TWIP__ / __MM10_TO_TWIP__) and shape.LineWidth != round(__LINEWIDTH__ / __MM10_TO_TWIP__):
@@ -513,7 +513,7 @@ def __visible__(shape, visible = -1): # for OOo 3.2 compatibility
 
 def hideturtle():
     turtle = __getshape__(__TURTLE__)
-    if turtle:
+    if turtle and turtle.Visible:
         z = turtle.getPosition()
         z = __Point__(z.X + turtle.BoundRect.Width / 2.0, z.Y + turtle.BoundRect.Height / 2.0)
         turtle.PolyPolygon = __TURTLESHAPE__[1]
@@ -524,7 +524,7 @@ def hideturtle():
 
 def showturtle():
     turtle = __getshape__(__TURTLE__)
-    if turtle:
+    if turtle and not turtle.Visible:
         if not turtle.Parent:
             _.drawpage.add(turtle)
         z = turtle.getPosition()
@@ -532,12 +532,12 @@ def showturtle():
         turtle.PolyPolygon, turtle.RotateAngle = __TURTLESHAPE__[0], r
         z = __Point__(z.X - turtle.BoundRect.Width / 2.0, z.Y - turtle.BoundRect.Height / 2.0) 
         turtle.setPosition(z)
+        __visible__(turtle, True)
         pencolor(_.pencolor)
         fillcolor(_.areacolor)
         pensize(_.pensize/__PT_TO_TWIP__)
-        __visible__(turtle, True)
         _.doc.CurrentController.select(__getshape__(__TURTLE__))
-    else:
+    elif not turtle:
         __initialize__()
 
 def left(arg=None):
commit ea45a11fe308f679bd10e1a3d86f77872d479c00
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Mon Apr 29 16:33:24 2013 +0200

    c:varyColor is true by default in Excel
    
    And another step closer to opening my test file correctly in Excel.
    
    Change-Id: Ib6aa8ddb2f2792513c7263d86865e08fe5f1483d
    (cherry picked from commit 81b9d431678bc270e7592e9bedb81d2d445e2122)
    Reviewed-on: https://gerrit.libreoffice.org/3686
    Reviewed-by: Kohei Yoshida <kohei.yoshida at suse.de>
    Tested-by: Kohei Yoshida <kohei.yoshida at suse.de>

diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx
index 5d11695..b7736d5 100644
--- a/oox/source/export/chartexport.cxx
+++ b/oox/source/export/chartexport.cxx
@@ -1341,6 +1341,10 @@ void ChartExport::exportScatterChart( Reference< chart2::XChartType > xChartType
             XML_val, scatterStyle,
             FSEND );
 
+    pFS->singleElement( FSNS( XML_c, XML_varyColors ),
+            XML_val, "0",
+            FSEND );
+
     // FIXME: should export xVal and yVal
     sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y;
     exportSeries( xChartType, nAttachedAxis );
commit 43380be6341811f077e6f73c38ebf7a01bbc6209
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Mon Apr 29 16:12:33 2013 +0200

    c:delete is true by default in Excel
    
    One step closer to opening my simple test file correctly in Excel.
    
    Change-Id: I1bfa76a46081ba478e44d8d90d8a91790a9a9ff3
    (cherry picked from commit 6ddd7fccdc8fc292200e581dbc4e456ec86cef47)
    Reviewed-on: https://gerrit.libreoffice.org/3685
    Reviewed-by: Kohei Yoshida <kohei.yoshida at suse.de>
    Tested-by: Kohei Yoshida <kohei.yoshida at suse.de>

diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx
index 5211a76..5d11695 100644
--- a/oox/source/export/chartexport.cxx
+++ b/oox/source/export/chartexport.cxx
@@ -2084,13 +2084,9 @@ void ChartExport::_exportAxis(
             OUString ("Visible")) >>=  bVisible;
     }
 
-    if( !bVisible )
-    {
-        // other value?
-        pFS->singleElement( FSNS( XML_c, XML_delete ),
-            XML_val, "1",
+    pFS->singleElement( FSNS( XML_c, XML_delete ),
+            XML_val, bVisible ? "0" : "1",
             FSEND );
-    }
 
     // FIXME: axPos, need to check the property "ReverseDirection"
     pFS->singleElement( FSNS( XML_c, XML_axPos ),
commit d65114eeea2a3c454883f4e7cabaa8b0e9b108a1
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Mon Apr 29 00:12:07 2013 +0200

    change order to allow validation of chart part
    
    My simple test file is finally valid but is still now shown in Excel.
    There must be another bug in our exporter.
    
    Change-Id: Ib55e5b32edc3a556e9081b3008df539275dc289b
    (cherry picked from commit e81d0c400c02a87d7fa492dbc5ac9f7921167920)
    Reviewed-on: https://gerrit.libreoffice.org/3657
    Reviewed-by: Kohei Yoshida <kohei.yoshida at suse.de>
    Tested-by: Kohei Yoshida <kohei.yoshida at suse.de>

diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx
index 37abe5d..5211a76 100644
--- a/oox/source/export/chartexport.cxx
+++ b/oox/source/export/chartexport.cxx
@@ -2187,6 +2187,9 @@ void ChartExport::_exportAxis(
             XML_val, sTickLblPos,
             FSEND );
 
+    // shape properties
+    exportShapeProps( xAxisProp );
+
     pFS->singleElement( FSNS( XML_c, XML_crossAx ),
             XML_val, I32S( aAxisIdPair.nCrossAx ),
             FSEND );
@@ -2281,8 +2284,6 @@ void ChartExport::_exportAxis(
             FSEND );
     }
 
-    // shape properties
-    exportShapeProps( xAxisProp );
     // TODO: text properties
 
     pFS->endElement( FSNS( XML_c, nAxisType ) );
commit db9012ecfb2d1358a5866cdd1a411ddfc4c2665b
Author: David Tardon <dtardon at redhat.com>
Date:   Fri Apr 26 17:22:31 2013 +0200

    fdo#53163 fix hatching for objects with curves
    
    B2DPolyPolygon can contain Bezier curves, but that is not taken into
    account when drawing the hatching in OutputDevice::ImplDrawHatch. The
    poly-polygon is adapted already when creating metafile, because the
    information about the poly-polygon containing curves is then lost
    somewhere in the process. At least, when I do the adaptation in
    OutputDevice::ImplDrawHatch, it has no effect and the hatching in the
    produced PDF is still wrong.
    
    Change-Id: Ibec9d6aceb23da986fe2d2414dc2e7fd4bf835b4
    (cherry picked from commit 092fa33f22bbdcb74c3533750158db1724971878)
    Reviewed-on: https://gerrit.libreoffice.org/3660
    Reviewed-by: Thorsten Behrens <tbehrens at suse.com>
    Tested-by: Thorsten Behrens <tbehrens at suse.com>

diff --git a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
index ada69e6..2127686 100644
--- a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
@@ -1493,7 +1493,7 @@ namespace drawinglayer
 
                     // #i111954# do NOT use decomposition, but use direct VCL-command
                     // process(rCandidate.get2DDecomposition(getViewInformation2D()));
-                    const PolyPolygon aToolsPolyPolygon(aLocalPolyPolygon);
+                    const PolyPolygon aToolsPolyPolygon(basegfx::tools::adaptiveSubdivideByAngle(aLocalPolyPolygon));
                     const HatchStyle aHatchStyle(
                         attribute::HATCHSTYLE_SINGLE == rFillHatchAttribute.getStyle() ? HATCH_SINGLE :
                         attribute::HATCHSTYLE_DOUBLE == rFillHatchAttribute.getStyle() ? HATCH_DOUBLE :
commit 5f712e2c6ef552068e83266a534272a103725d6c
Author: Michael Meeks <michael.meeks at suse.com>
Date:   Mon Apr 29 18:06:27 2013 +0100

    fdo#62336 - fix horribly coupled table rendering code to not crash.
    
    Change-Id: Ie0c5f39f6265e38534a6d0c9743877eef79e5954
    Reviewed-on: https://gerrit.libreoffice.org/3687
    Reviewed-by: Fridrich Strba <fridrich at documentfoundation.org>
    Tested-by: Fridrich Strba <fridrich at documentfoundation.org>

diff --git a/sw/source/filter/writer/wrtswtbl.cxx b/sw/source/filter/writer/wrtswtbl.cxx
index 55afa3c..4699005 100644
--- a/sw/source/filter/writer/wrtswtbl.cxx
+++ b/sw/source/filter/writer/wrtswtbl.cxx
@@ -404,6 +404,10 @@ sal_Bool SwWriteTable::ShouldExpandSub(const SwTableBox *pBox, sal_Bool /*bExpan
     return !pBox->GetSttNd() && nDepth > 0;
 }
 
+// FIXME: the degree of coupling between this method and
+// FillTableRowsCols which is called immediately afterwards
+// is -extremely- unpleasant and potentially problematic.
+
 void SwWriteTable::CollectTableRowsCols( long nStartRPos,
                                            sal_uInt32 nStartCPos,
                                            long nParentLineHeight,
@@ -747,10 +751,16 @@ SwWriteTable::SwWriteTable(const SwTableLines& rLines, long nWidth,
     // Erstmal die Tabellen-Struktur festlegen. Hinter der Tabelle ist in
     // jedem Fall eine Spalte zu Ende
     SwWriteTableCol *pCol = new SwWriteTableCol( nParentWidth );
+    bUseLayoutHeights = true;
     aCols.insert( pCol );
     CollectTableRowsCols( 0, 0, 0, nParentWidth, rLines, nMaxDepth - 1 );
 
-    // Und jetzt mit leben fuellen
+    // FIXME: awfully GetLineHeight writes to this in its first call
+    // and proceeds to return a rather odd number fdo#62336, we have to
+    // behave identically since the code in FillTableRowsCols duplicates
+    // and is highly coupled to CollectTableRowsCols - sadly.
+    bUseLayoutHeights = true;
+    // And now fill with life
     FillTableRowsCols( 0, 0, 0, 0, 0, nParentWidth, rLines, 0, nMaxDepth - 1, static_cast< sal_uInt16 >(nNumOfRowsToRepeat) );
 
     // Einige Twip-Werte an Pixel-Grenzen anpassen
commit aae230a987272bc13d1f4df26ab3170b396a2566
Author: Luke Deller <luke at deller.id.au>
Date:   Thu Apr 25 00:00:54 2013 +1000

    fdo#60910: discard UNO shape object in SdrObject::SetPage
    
    The creation of the UNO shape in SdrObject::getUnoShape is influenced
    by pPage, so when the page changes we need to discard the cached UNO
    shape so that a new one will be created with the new page.
    
    Change-Id: Id37593fe5578afe06cd967bf0b0b7d56922fe4af
    Reviewed-on: https://gerrit.libreoffice.org/3662
    Reviewed-by: David Tardon <dtardon at redhat.com>
    Tested-by: David Tardon <dtardon at redhat.com>

diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx
index 1d8a833..2c7d531 100644
--- a/svx/source/svdraw/svdobj.cxx
+++ b/svx/source/svdraw/svdobj.cxx
@@ -567,12 +567,24 @@ SdrObjList* SdrObject::GetObjList() const
 
 void SdrObject::SetPage(SdrPage* pNewPage)
 {
+    SdrModel* pOldModel = pModel;
+    SdrPage* pOldPage = pPage;
+
     pPage=pNewPage;
     if (pPage!=NULL) {
         SdrModel* pMod=pPage->GetModel();
         if (pMod!=pModel && pMod!=NULL) {
             SetModel(pMod);
         }}
+
+    // The creation of the UNO shape in SdrObject::getUnoShape is influenced
+    // by pPage, so when the page changes we need to discard the cached UNO
+    // shape so that a new one will be created.
+    // If the page is changing to another page with the same model, we
+    // assume they create compatible UNO shape objects so we shouldn't have
+    // to invalidate.
+    if (pOldPage != pPage && !(pOldPage && pPage && pOldModel == pModel))
+        setUnoShape(NULL);
 }
 
 SdrPage* SdrObject::GetPage() const
commit 2e5ff958092587ee2b742aa3eb70a64e867497a2
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Apr 25 14:04:56 2013 +0100

    Resolves: fdo#63802 return true if we have known empty context
    
    i.e. false for "we can't provide context", and true for
    "we can provide context, even if there isn't any"
    
    Still looks to me that there's a bug in the si-phonetic-dynamic
    im (or something in the stack) that assumes that returning
    false once means it will always return false and give up
    for ever
    
    fix indent while I'm at it
    
    also let si-phonetic-dynamic survive libreoffice losing focus and regain it
    cycle and still use surrounding text. It should be safe to report that we can
    provide surrounding text but there isn't any during the time window when there
    is no focus window, because the focus in event was received but it hasn't
    arrived yet because that happens on a postuserevent.
    
    (cherry picked from commit 21fb092398fb21256b0e546e7f38c5e6de4654f2)
    
    Change-Id: I0481c42208953f2a0618aaed7b0d9e9f3e7bda07
    Reviewed-on: https://gerrit.libreoffice.org/3608
    Reviewed-by: Miklos Vajna <vmiklos at suse.cz>
    Tested-by: Miklos Vajna <vmiklos at suse.cz>

diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx
index 61d3f78..d783e95 100644
--- a/vcl/unx/gtk/window/gtkframe.cxx
+++ b/vcl/unx/gtk/window/gtkframe.cxx
@@ -4234,13 +4234,9 @@ uno::Reference<accessibility::XAccessibleEditableText>
     return uno::Reference< accessibility::XAccessibleEditableText >();
 }
 
-static uno::Reference<accessibility::XAccessibleEditableText> lcl_GetxText()
+static uno::Reference<accessibility::XAccessibleEditableText> lcl_GetxText(Window *pFocusWin)
 {
     uno::Reference<accessibility::XAccessibleEditableText> xText;
-    Window* pFocusWin = ImplGetSVData()->maWinData.mpFocusWin;
-    if (!pFocusWin)
-        return xText;
-
     try
     {
         uno::Reference< accessibility::XAccessible > xAccessible( pFocusWin->GetAccessible( true ) );
@@ -4249,36 +4245,40 @@ static uno::Reference<accessibility::XAccessibleEditableText> lcl_GetxText()
     }
     catch(const uno::Exception& e)
     {
-        g_warning( "Exception in getting input method surrounding text" );
+        SAL_WARN( "vcl.gtk", "Exception in getting input method surrounding text: " << e.Message);
     }
     return xText;
 }
 
 gboolean GtkSalFrame::IMHandler::signalIMRetrieveSurrounding( GtkIMContext* pContext, gpointer /*im_handler*/ )
 {
-    uno::Reference<accessibility::XAccessibleEditableText> xText = lcl_GetxText();
+    Window *pFocusWin = Application::GetFocusWindow();
+    if (!pFocusWin)
+        return true;
 
+    uno::Reference<accessibility::XAccessibleEditableText> xText = lcl_GetxText(pFocusWin);
     if (xText.is())
     {
         sal_uInt32 nPosition = xText->getCaretPosition();
-        rtl::OUString sAllText = xText->getText();
-        if (sAllText.isEmpty())
-            return sal_False;
-    rtl::OString sUTF = rtl::OUStringToOString(sAllText, RTL_TEXTENCODING_UTF8);
-    rtl::OUString sCursorText(sAllText.copy(0, nPosition));
-    gtk_im_context_set_surrounding(pContext, sUTF.getStr(), sUTF.getLength(),
-        rtl::OUStringToOString(sCursorText, RTL_TEXTENCODING_UTF8).getLength());
-    return sal_True;
+        OUString sAllText = xText->getText();
+        OString sUTF = OUStringToOString(sAllText, RTL_TEXTENCODING_UTF8);
+        OUString sCursorText(sAllText.copy(0, nPosition));
+        gtk_im_context_set_surrounding(pContext, sUTF.getStr(), sUTF.getLength(),
+            OUStringToOString(sCursorText, RTL_TEXTENCODING_UTF8).getLength());
+        return true;
     }
 
-    return sal_False;
+    return false;
 }
 
 gboolean GtkSalFrame::IMHandler::signalIMDeleteSurrounding( GtkIMContext*, gint offset, gint nchars,
     gpointer /*im_handler*/ )
 {
-    uno::Reference<accessibility::XAccessibleEditableText> xText = lcl_GetxText();
+    Window *pFocusWin = Application::GetFocusWindow();
+    if (!pFocusWin)
+        return true;
 
+    uno::Reference<accessibility::XAccessibleEditableText> xText = lcl_GetxText(pFocusWin);
     if (xText.is())
     {
         sal_uInt32 nPosition = xText->getCaretPosition();
@@ -4293,10 +4293,10 @@ gboolean GtkSalFrame::IMHandler::signalIMDeleteSurrounding( GtkIMContext*, gint
             nDeleteEnd = xText->getCharacterCount();
 
         xText->deleteText(nDeletePos, nDeleteEnd);
-        return sal_True;
+        return true;
     }
 
-    return sal_False;
+    return false;
 }
 
 Size GtkSalDisplay::GetScreenSize( int nDisplayScreen )
commit 10ee085f1ab2608de4b262672408c9d1a6867273
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Wed Apr 24 14:56:00 2013 +0200

    fdo#33091 a NULL value of float type is not NaN
    
    but it is *still* NULL.
    
    This was initially done to "fix" i#108092,
    but i#112652 comment 13 suggests this may have been fixed more cleanly.
    
    Change-Id: I2b76af2182715bc489cb89dd45d6b77d5038b506
    Reviewed-on: https://gerrit.libreoffice.org/3599
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    Tested-by: Michael Stahl <mstahl at redhat.com>

diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/TableCellLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/TableCellLayoutController.java
index 1489098..9f0340a 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/TableCellLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/TableCellLayoutController.java
@@ -73,11 +73,6 @@ public class TableCellLayoutController extends SectionLayoutController
             {
                 FormatValueUtility.applyValueForCell(value.getValue(), attributeMap, valueType);
             }
-            else if ( "float".equals(valueType))
-            {
-                attributeMap.setAttribute(OfficeNamespaces.OFFICE_NS,
-                    FormatValueUtility.VALUE, "NaN");
-            }
             // #i114108#: except on form elements, the only value-type that can
             // occur without an accomanying value attribute is "string"
             else if (!"string".equals(valueType))
commit 42b02005250843d413ed1a098099bc6e44c62c3c
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Apr 25 20:21:43 2013 +0100

    fix scrolling performance of listboxes with hundreds of entries
    
    make it approximately infinitely faster
    
    a) add a method AdjustEntryHeightAndRecalc that just does AdjustEntryHeight and
    RecalcViewData and replace all the places that do the two of those together
    with that utility
    
    b) in our SetFont now only call AdjustEntryHeightAndRecalc if the new font is
    different to the old font, ignoring color which doesn't have a bearing on row
    size.
    
    c) where we originally called SetFont(GetFont()), which would have triggered
    AdjustEntryHeightAndRecalc, now call the new AdjustEntryHeightAndRecalc
    explicitly.
    
    The performance problem apparently a regression from
    ac7acb0ab1329913b0cec79790adcde0263960be where we seem to now end up drawing on
    ourself and calling SetFont on ourself rather than on a pImpl without an
    overridden SetFont. So when we redraw on scrolling we triggered a cascade of
    calculations and force text layout of every row.
    
    (cherry picked from commit 3b6e61c3968a4aaec0b594803219961f3fcc9232)
    
    Conflicts:
    	include/svtools/treelistbox.hxx
    
    Change-Id: I3c284c360f06ac383e8c38045fc4c2946f505b35
    Reviewed-on: https://gerrit.libreoffice.org/3611
    Reviewed-by: Tor Lillqvist <tml at iki.fi>
    Tested-by: Tor Lillqvist <tml at iki.fi>

diff --git a/svtools/inc/svtools/treelistbox.hxx b/svtools/inc/svtools/treelistbox.hxx
index ba678ae..d259088 100644
--- a/svtools/inc/svtools/treelistbox.hxx
+++ b/svtools/inc/svtools/treelistbox.hxx
@@ -580,6 +580,7 @@ protected:
     sal_Bool        AreChildrenTransient() const;
     void            SetChildrenNotTransient();
 
+    void            AdjustEntryHeightAndRecalc( const Font& rFont );
 public:
 
     void                SetExtendedWinBits( ExtendedWinBits _nBits );
diff --git a/svtools/source/contnr/treelistbox.cxx b/svtools/source/contnr/treelistbox.cxx
index b6c9613..2fe94e7 100644
--- a/svtools/source/contnr/treelistbox.cxx
+++ b/svtools/source/contnr/treelistbox.cxx
@@ -1510,7 +1510,10 @@ void SvTreeListBox::InitTreeView()
 
     mbContextBmpExpanded = true;
     nContextBmpWidthMax = 0;
+
     SetFont( GetFont() );
+    AdjustEntryHeightAndRecalc( GetFont() );
+
     SetSpaceBetweenEntries( 0 );
     SetLineColor();
     InitSettings( sal_True, sal_True, sal_True );
@@ -2575,15 +2578,32 @@ void SvTreeListBox::SetExpandedNodeBmp( const Image& rBmp )
 void SvTreeListBox::SetFont( const Font& rFont )
 {
     DBG_CHKTHIS(SvTreeListBox,0);
+
     Font aTempFont( rFont );
+    Font aOrigFont( GetFont() );
     aTempFont.SetTransparent( sal_True );
+    if (aTempFont == aOrigFont)
+        return;
     Control::SetFont( aTempFont );
-    AdjustEntryHeight( aTempFont );
+
+    aTempFont.SetColor(aOrigFont.GetColor());
+    aTempFont.SetFillColor(aOrigFont.GetFillColor());
+    aTempFont.SetTransparent(aOrigFont.IsTransparent());
+
+    if (aTempFont == aOrigFont)
+        return;
+
+    AdjustEntryHeightAndRecalc( GetFont() );
+}
+
+void SvTreeListBox::AdjustEntryHeightAndRecalc( const Font& rFont )
+{
+    DBG_CHKTHIS(SvTreeListBox,0);
+    AdjustEntryHeight( rFont );
     // always invalidate, else things go wrong in SetEntryHeight
     RecalcViewData();
 }
 
-
 void SvTreeListBox::Paint( const Rectangle& rRect )
 {
     DBG_CHKTHIS(SvTreeListBox,0);
@@ -2626,8 +2646,7 @@ void SvTreeListBox::SetSpaceBetweenEntries( short nOffsLogic )
         nEntryHeight = nEntryHeight - nEntryHeightOffs;
         nEntryHeightOffs = (short)nOffsLogic;
         nEntryHeight = nEntryHeight + nOffsLogic;
-        AdjustEntryHeight( GetFont() );
-        RecalcViewData();
+        AdjustEntryHeightAndRecalc( GetFont() );
         pImp->SetEntryHeight( nEntryHeight );
     }
 }
@@ -3842,8 +3861,7 @@ void SvTreeListBox::InitSettings(sal_Bool bFont,sal_Bool bForeground,sal_Bool bB
         aFont = rStyleSettings.GetFieldFont();
         aFont.SetColor( rStyleSettings.GetWindowTextColor() );
         SetPointFont( aFont );
-        AdjustEntryHeight( aFont );
-        RecalcViewData();
+        AdjustEntryHeightAndRecalc( aFont );
     }
 
     if( bForeground || bFont )
commit 720166c2b38910f339e713bf07d244c81eca8e69
Author: Fridrich Å trba <fridrich.strba at bluewin.ch>
Date:   Thu Apr 25 12:17:17 2013 +0200

    Belts and braces for crash in null pointer dereference
    
    Change-Id: I17fa205f16929b913084c8eee320a73416b1eda0
    (cherry picked from commit d34a159010fc24e13613058d25a9d6b56f7855bd)
    Reviewed-on: https://gerrit.libreoffice.org/3605
    Reviewed-by: Michael Meeks <michael.meeks at suse.com>
    Tested-by: Michael Meeks <michael.meeks at suse.com>

diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx
index 004e7af..77b44f4 100644
--- a/sw/source/core/unocore/unotext.cxx
+++ b/sw/source/core/unocore/unotext.cxx
@@ -1626,7 +1626,8 @@ throw (lang::IllegalArgumentException, uno::RuntimeException)
             SwTableNode * pStartTableNode(pStartStartNode->FindTableNode());
             // Is it the same table start node than the end?
             SwTableNode *const pEndStartTableNode(pEndStartNode->FindTableNode());
-            while (pEndStartTableNode->GetIndex() < pStartTableNode->GetIndex())
+            while (pEndStartTableNode && pStartTableNode &&
+                   pEndStartTableNode->GetIndex() < pStartTableNode->GetIndex())
             {
                 SwStartNode* pStartStartTableNode = pStartTableNode->StartOfSectionNode();
                 pStartTableNode = pStartStartTableNode->FindTableNode();
commit b1065a611e7a961bd3acc5b9e340c3ceb2b92115
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Tue Apr 23 15:27:47 2013 +0200

    fdo#62643 sw: fix autocomplate wrt. adding to a partially finished word
    
    This partially reverts commits 1eee77f2c2b4fa5f693708218c74a8f3909649a6
    and 51f9e894f46e718200a14bcd61e9e44c64bc5396.
    
    (cherry picked from commit d92932744fdbaa78cec8dd8b991d5f442f6eef4b)
    
    Conflicts:
    	sw/source/core/doc/acmplwrd.cxx
    	sw/source/ui/docvw/edtwin.cxx
    
    Change-Id: Ie6a1202e139a0eb30cac482a2bb528ef70c7797f
    Reviewed-on: https://gerrit.libreoffice.org/3580
    Reviewed-by: Fridrich Strba <fridrich at documentfoundation.org>
    Tested-by: Fridrich Strba <fridrich at documentfoundation.org>

diff --git a/sw/inc/acmplwrd.hxx b/sw/inc/acmplwrd.hxx
index 52a3777..7b2f40b 100644
--- a/sw/inc/acmplwrd.hxx
+++ b/sw/inc/acmplwrd.hxx
@@ -68,21 +68,8 @@ public:
 
     void CheckChangedList(const editeng::SortedAutoCompleteStrings& rNewLst);
 
-    // Resets the current position within the tree to its root node.
-    void returnToRoot();
-
-    // Advances to a given node within the AutoComplete tree.
-    void gotoNode(OUString sNode);
-
-    // Advances from the current position towards the node keyed with cKey.
-    void advance(const sal_Unicode cKey);
-
-    // Goes back one char within the tree, except if the current node is already the root node.
-    void goBack();
-
-    // Returns all words matching a given prefix aMatch. If bIgnoreCurrentPos is set, the current
-    // position within the tree is ignored and replaced by aMatch.
-    bool GetWordsMatching(String aMatch, std::vector<String>& aWords, bool bIgnoreCurrentPos) const;
+    // Returns all words matching a given prefix aMatch.
+    bool GetWordsMatching(String aMatch, std::vector<String>& aWords) const;
 };
 
 
diff --git a/sw/source/core/doc/acmplwrd.cxx b/sw/source/core/doc/acmplwrd.cxx
index 8548545..3588290 100644
--- a/sw/source/core/doc/acmplwrd.cxx
+++ b/sw/source/core/doc/acmplwrd.cxx
@@ -346,44 +346,16 @@ void SwAutoCompleteWord::SetMinWordLen( sal_uInt16 n )
     nMinWrdLen = n;
 }
 
-// Resets the current position within the tree to its root node.
-void SwAutoCompleteWord::returnToRoot()
-{
-    m_LookupTree->returnToRoot();
-}
-
-// Advances to a given node within the AutoComplete tree.
-void SwAutoCompleteWord::gotoNode(OUString sNode)
-{
-    m_LookupTree->gotoNode( sNode );
-}
-
-// Advances from the current position towards the node keyed with cKey.
-void SwAutoCompleteWord::advance(const sal_Unicode cKey)
-{
-    m_LookupTree->advance( cKey );
-}
-
-// Goes back one char within the tree, except if the current node is already the root node.
-void SwAutoCompleteWord::goBack()
-{
-    m_LookupTree->goBack();
-}
-
-// Returns all words matching a given prefix aMatch. If bIgnoreCurrentPos is set, the current
-// position within the tree is ignored and replaced by aMatch.
-bool SwAutoCompleteWord::GetWordsMatching(String aMatch, std::vector<String>& aWords, bool bIgnoreCurrentPos) const
+/** Return all words matching a given prefix
+ *
+ *  @param aMatch the prefix to search for
+ *  @param aWords the words to search in
+ */
+bool SwAutoCompleteWord::GetWordsMatching(String aMatch, std::vector<String>& aWords) const
 {
     OUString aStringRoot = OUString( aMatch );
 
-    // The lookup tree already contains the information about the root keyword in most cases. Only if we don't trust that
-    // information (e.g. if we need some autocompletion for a place other than the main writing area), the location within
-    // the tree needs to be refreshed.
-    if (bIgnoreCurrentPos)
-    {
-        m_LookupTree->gotoNode( aStringRoot );
-    }
-
+    m_LookupTree->gotoNode( aStringRoot );
     OUString aAutocompleteWord = m_LookupTree->suggestAutoCompletion();
     if (aAutocompleteWord.isEmpty())
     {
diff --git a/sw/source/ui/docvw/edtwin.cxx b/sw/source/ui/docvw/edtwin.cxx
index 1529566..2c76999 100644
--- a/sw/source/ui/docvw/edtwin.cxx
+++ b/sw/source/ui/docvw/edtwin.cxx
@@ -280,7 +280,7 @@ struct QuickHelpData
     }
 
     // Fills internal structures with hopefully helpful information.
-    void FillStrArr( SwWrtShell& rSh, const String& rWord, bool bIgnoreCurrentPos );
+    void FillStrArr( SwWrtShell& rSh, const String& rWord );
     void SortAndFilter();
 };
 
@@ -1497,19 +1497,6 @@ void SwEditWin::KeyInput(const KeyEvent &rKEvt)
     sal_Bool bStopKeyInputTimer = sal_True;
     String sFmlEntry;
 
-    enum SW_AutoCompleteAction { ACA_NoOp,            // No maintenance operation required for AutoComplete tree
-                                 ACA_ReturnToRoot,    // Input of a char marking the end of a word, like '.', ' ', etc.
-                                 ACA_SingleCharInput,
-                                 ACA_SingleBackspace,
-                                 ACA_Refresh };       // Refresh AutoComplete information completely.
-
-    // Do refresh by default to gracefully handle all unimplemented special cases.
-    SW_AutoCompleteAction eAutoCompleteAction = ACA_Refresh;
-    // TODO: Make sure eAutoCompleteAction is set to something other than ACA_Refresh to increase performance.
-
-    // Stores input char in case ACA_SingleCharInput is used. Defaults to aCh to avoid compiler warning.
-    sal_Unicode aSingleCharInput = aCh;
-
     enum SW_KeyState { KS_Start,
                        KS_CheckKey, KS_InsChar, KS_InsTab,
                        KS_NoNum, KS_NumOff, KS_NumOrNoNum, KS_NumDown, KS_NumUp,
@@ -1692,10 +1679,6 @@ KEYINPUT_CHECKTABLE:
                     break;
 
                 case KEY_LEFT:
-                {
-                    eAutoCompleteAction = ACA_ReturnToRoot;
-                }
-                // No break;
                 case KEY_LEFT | KEY_MOD1:
                 {
                     sal_Bool bMod1 = 0 != (rKeyCode.GetModifier() & KEY_MOD1);
@@ -1718,10 +1701,6 @@ KEYINPUT_CHECKTABLE:
                 }
                     goto KEYINPUT_CHECKTABLE_INSDEL;
                 case KEY_UP:
-                {
-                    eAutoCompleteAction = ACA_ReturnToRoot;
-                }
-                // No break;
                 case KEY_UP | KEY_MOD1:
                 {
                     sal_Bool bMod1 = 0 != (rKeyCode.GetModifier() & KEY_MOD1);
@@ -1738,10 +1717,6 @@ KEYINPUT_CHECKTABLE:
                 }
                     goto KEYINPUT_CHECKTABLE_INSDEL;
                 case KEY_DOWN:
-                {
-                    eAutoCompleteAction = ACA_ReturnToRoot;
-                }
-                // No break;
                 case KEY_DOWN | KEY_MOD1:
                 {
                     sal_Bool bMod1 = 0 != (rKeyCode.GetModifier() & KEY_MOD1);
@@ -1789,7 +1764,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
                     {
                         if (rSh.IsInFrontOfLabel() && rSh.NumOrNoNum(sal_False))
                             eKeyState = KS_NumOrNoNum;
-                        eAutoCompleteAction = ACA_NoOp;
                     }
                     else
                     {
@@ -1807,7 +1781,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
                         bTblIsColMode = sal_True;
                         aKeyInputTimer.Start();
                         bStopKeyInputTimer = sal_False;
-                        eAutoCompleteAction = ACA_NoOp;
                     }
                     break;
                 case KEY_INSERT | KEY_MOD2:
@@ -1819,7 +1792,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
                         bTblIsColMode = sal_True;
                         aKeyInputTimer.Start();
                         bStopKeyInputTimer = sal_False;
-                        eAutoCompleteAction = ACA_NoOp;
                     }
                     break;
 
@@ -1858,7 +1830,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
                         else
                             eNextKeyState = eKeyState, eKeyState = KS_CheckAutoCorrect;
                     }
-                    eAutoCompleteAction = ACA_ReturnToRoot;
                 }
                 break;
                 case KEY_RETURN | KEY_MOD2:     // ALT-Return
@@ -1867,7 +1838,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
                         eKeyState = KS_NoNum;
                     else if( rSh.CanSpecialInsert() )
                         eKeyState = KS_SpecialInsert;
-                    eAutoCompleteAction = ACA_ReturnToRoot;
                 }
                 break;
                 case KEY_BACKSPACE:
@@ -1892,11 +1862,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
                             bDone = rSh.TryRemoveIndent();
                         }
 
-                        if ( bOnlyBackspaceKey )
-                        {
-                            eAutoCompleteAction = ACA_SingleBackspace;
-                        }
-
                         if (bDone)
                             eKeyState = KS_End;
                         else
@@ -1975,7 +1940,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
                         nDir = MOVE_RIGHT_BIG;
                         eTblChgMode = nsTblChgWidthHeightType::WH_FLAG_INSDEL | nsTblChgWidthHeightType::WH_COL_RIGHT;
                         nTblChgSize = pModOpt->GetTblVInsert();
-                        eAutoCompleteAction = ACA_ReturnToRoot;
                         goto KEYINPUT_CHECKTABLE_INSDEL;
                     }
                 case KEY_TAB:
@@ -2091,7 +2055,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
                         {
                             eKeyState = KS_InsTab;
                         }
-                        eAutoCompleteAction = ACA_NoOp;
                     }
                     break;
 
@@ -2111,7 +2074,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
                         {
                             eKeyState = KS_EnterDrawHandleMode;
                         }
-                        eAutoCompleteAction = ACA_NoOp;
                     }
                     break;
                     case KEY_F2 :
@@ -2122,7 +2084,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
                             eKeyState = KS_GoIntoFly;
                         else if((nSelectionType & nsSelectionType::SEL_DRW))
                             eKeyState = KS_GoIntoDrawing;
-                        eAutoCompleteAction = ACA_NoOp;
                     }
                     break;
                 }
@@ -2172,7 +2133,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
                     }
                     break;
                 }
-                eAutoCompleteAction = ACA_NoOp;
             }
             break;
 
@@ -2192,7 +2152,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
                         FlushInBuffer();
                         break;
                 }
-                eAutoCompleteAction = ACA_NoOp;
             }
             break;
 
@@ -2254,25 +2213,12 @@ KEYINPUT_CHECKTABLE_INSDEL:
                         Window::KeyInput( aKeyEvent );
                     }
                 }
-                if( bNormalChar )
-                {
-                    if ( aCh == ' ' )
-                    {
-                        eAutoCompleteAction = ACA_ReturnToRoot;
-                    }
-                    else
-                    {
-                        eAutoCompleteAction = ACA_SingleCharInput;
-                        aSingleCharInput = aCh;
-                    }
-                }
             }
             break;
         case KS_LaunchOLEObject:
         {
             rSh.LaunchOLEObj();
             eKeyState = KS_End;
-            eAutoCompleteAction = ACA_NoOp;
         }
         break;
         case KS_GoIntoFly:
@@ -2282,7 +2228,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
             rView.AttrChangedNotify(&rSh);
             rSh.MoveSection( fnSectionCurr, fnSectionEnd );
             eKeyState = KS_End;
-            eAutoCompleteAction = ACA_NoOp;
         }
         break;
         case KS_GoIntoDrawing:
@@ -2295,7 +2240,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
                     ((SwDrawTextShell*)rView.GetCurShell())->Init();
             }
             eKeyState = KS_End;
-            eAutoCompleteAction = ACA_NoOp;
         }
         break;
         case KS_EnterDrawHandleMode:
@@ -2305,7 +2249,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
 
             ((SdrHdlList&)rHdlList).TravelFocusHdl(bForward);
             eKeyState = KS_End;
-            eAutoCompleteAction = ACA_NoOp;
         }
         break;
         case KS_InsTab:
@@ -2317,7 +2260,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
                 break;
             }
             aCh = '\t';
-            eAutoCompleteAction = ACA_ReturnToRoot;
             // no break!
         case KS_InsChar:
             if (rSh.GetChar(sal_False)==CH_TXT_ATR_FORMELEMENT)
@@ -2422,8 +2364,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
                 rSh.AutoCorrect( *pACorr, static_cast< sal_Unicode >('\0') );
             }
             eKeyState = eNextKeyState;
-            if ( eAutoCompleteAction == ACA_Refresh )
-                eAutoCompleteAction = ACA_NoOp;
         }
         break;
 
@@ -2545,7 +2485,6 @@ KEYINPUT_CHECKTABLE_INSDEL:
                             pACorr->GetSwFlags().bAutoCmpltAppendBlanc;
                 }
                 rSh.EndUndo( UNDO_END );
-                eAutoCompleteAction = ACA_ReturnToRoot;
             }
             break;
 
@@ -2635,66 +2574,26 @@ KEYINPUT_CHECKTABLE_INSDEL:
         bTblInsDelMode = sal_False;
     }
 
-    bool bInsertBufferedChars = bFlushBuffer && aInBuffer.Len();
-    bool bAutoCompleteEnabled = pACfg && pACorr && ( pACfg->IsAutoTextTip() || pACorr->GetSwFlags().bAutoCompleteWords );
-    bool bGotWord = false;
-    String sPrefix;
-
     // in case the buffered characters are inserted
-    if( bInsertBufferedChars )
+    if( bFlushBuffer && aInBuffer.Len() )
     {
         // bFlushCharBuffer was not resetted here
         // why not?
         sal_Bool bSave = bFlushCharBuffer;
         FlushInBuffer();
         bFlushCharBuffer = bSave;
-    }
 
-    // maintain AutoComplete tree
-    if( bAutoCompleteEnabled )
-    {
-        // avoid unnecessary calls to GetPrevAutoCorrWord
-        if( (bInsertBufferedChars && bNormalChar) || eAutoCompleteAction == ACA_Refresh )
-        {
-            bGotWord = rSh.GetPrevAutoCorrWord( *pACorr, sPrefix );
-        }
-
-        SwAutoCompleteWord& rACList = rSh.GetAutoCompleteWords();
-
-        switch( eAutoCompleteAction )
+        // maybe show Tip-Help
+        String sWord;
+        if( bNormalChar && pACfg && pACorr &&
+            ( pACfg->IsAutoTextTip() ||
+              pACorr->GetSwFlags().bAutoCompleteWords ) &&
+            rSh.GetPrevAutoCorrWord( *pACorr, sWord ) )
         {
-            case ACA_NoOp:
-                // do nothing
-            break;
-
-            case ACA_ReturnToRoot:
-                rACList.returnToRoot();
-            break;
-
-            case ACA_SingleCharInput:
-                rACList.advance( aSingleCharInput );
-            break;
-
-            case ACA_SingleBackspace:
-                rACList.goBack();
-            break;
-
-            case ACA_Refresh:
-            {
-                if( sPrefix.Len() > 0 )
-                    rACList.gotoNode( sPrefix );
-                else
-                    rACList.returnToRoot();
-            }
-            break;
+            ShowAutoTextCorrectQuickHelp(sWord, pACfg, pACorr);
         }
     }
 
-    if( bInsertBufferedChars && bNormalChar && bAutoCompleteEnabled && bGotWord )
-    {
-        ShowAutoTextCorrectQuickHelp( sPrefix, pACfg, pACorr );
-    }
-
     // get the word count dialog to update itself
     SwWordCountWrapper *pWrdCnt = (SwWordCountWrapper*)GetView().GetViewFrame()->GetChildWindow(SwWordCountWrapper::GetChildWindowId());
     if( pWrdCnt )
@@ -5779,7 +5678,7 @@ void QuickHelpData::Stop( SwWrtShell& rSh )
     ClearCntnt();
 }
 
-void QuickHelpData::FillStrArr( SwWrtShell& rSh, const String& rWord, bool bIgnoreCurrentPos )
+void QuickHelpData::FillStrArr( SwWrtShell& rSh, const String& rWord )
 {
     enum Capitalization { CASE_LOWER, CASE_UPPER, CASE_SENTENCE, CASE_OTHER };
 
@@ -5847,7 +5746,7 @@ void QuickHelpData::FillStrArr( SwWrtShell& rSh, const String& rWord, bool bIgno
     const SwAutoCompleteWord& rACList = rSh.GetAutoCompleteWords();
     std::vector<String> strings;
 
-    if ( rACList.GetWordsMatching( rWord, strings, bIgnoreCurrentPos ) )
+    if ( rACList.GetWordsMatching( rWord, strings ) )
     {
         for (unsigned int i= 0; i<strings.size(); i++)
         {
@@ -5925,7 +5824,7 @@ void SwEditWin::ShowAutoTextCorrectQuickHelp(
                     pACorr->GetSwFlags().bAutoCmpltShowAsTip;
 
         // Get the neccessary data to show help text.
-        pQuickHlpData->FillStrArr( rSh, rWord, bFromIME );
+        pQuickHlpData->FillStrArr( rSh, rWord );
     }
 
 
commit 155bfc9803759e54b770e6d90eaef812999f9d77
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Wed Apr 24 16:19:56 2013 +0200

    More places where we can suppress output.
    
    Change-Id: Ib316bf40bb9b9afeb5fbdf9281f2d3b9539e346f

diff --git a/vcl/source/gdi/outdev.cxx b/vcl/source/gdi/outdev.cxx
index d34cea9..2f4cf0c 100644
--- a/vcl/source/gdi/outdev.cxx
+++ b/vcl/source/gdi/outdev.cxx
@@ -2175,8 +2175,8 @@ void OutputDevice::DrawPolyPolygon( const basegfx::B2DPolyPolygon& rB2DPolyPoly
 
 void OutputDevice::ImpDrawPolyPolygonWithB2DPolyPolygon(const basegfx::B2DPolyPolygon& rB2DPolyPoly)
 {
-    // AW: Do NOT paint empty PolyPolygons
-    if(!rB2DPolyPoly.count())
+    // Do not paint empty PolyPolygons
+    if(!rB2DPolyPoly.count() || !IsDeviceOutputNecessary())
         return;
 
     // we need a graphics
@@ -2306,9 +2306,8 @@ void OutputDevice::DrawPolyLine(
         mpMetaFile->AddAction( new MetaPolyLineAction( aToolsPolygon, aLineInfo ) );
     }
 
-
-    // AW: Do NOT paint empty PolyPolygons
-    if(!rB2DPolygon.count())
+    // Do not paint empty PolyPolygons
+    if(!rB2DPolygon.count() || !IsDeviceOutputNecessary())
         return;
 
     // we need a graphics
commit 5e64777d0813a31539e43ddb821eabf5407a3544
Author: László Németh <nemeth at numbertext.org>
Date:   Wed Apr 24 00:21:03 2013 +0200

    fdo#63711 Calc: fix Catalan and Hungarian hyphenation
    
    Change-Id: Ib9b3a63ad48ab9a8c109a97f4053c0fc4aca8a28
    Reviewed-on: https://gerrit.libreoffice.org/3591
    Reviewed-by: Fridrich Strba <fridrich at documentfoundation.org>
    Tested-by: Fridrich Strba <fridrich at documentfoundation.org>

diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx
index bcd3695..5fd8362 100644
--- a/editeng/source/editeng/impedit3.cxx
+++ b/editeng/source/editeng/impedit3.cxx
@@ -1748,6 +1748,9 @@ void ImpEditEngine::ImpBreakLine( ParaPortion* pParaPortion, EditLine* pLine, Te
     sal_Bool bHangingPunctuation = sal_False;
     sal_Unicode cAlternateReplChar = 0;
     sal_Unicode cAlternateExtraChar = 0;
+    sal_Bool bAltFullLeft = sal_False;
+    sal_Bool bAltFullRight = sal_False;
+    sal_uInt32 nAltDelChar = 0;
 
     if ( ( nMaxBreakPos < ( nMax + pLine->GetStart() ) ) && ( pNode->GetChar( nMaxBreakPos ) == ' ' ) )
     {
@@ -1853,29 +1856,38 @@ void ImpEditEngine::ImpBreakLine( ParaPortion* pParaPortion, EditLine* pLine, Te
                         }
                         else
                         {
-                            String aAlt( xHyphWord->getHyphenatedWord() );
-
-                            // We expect the two cases, which might exist now:
+                            // TODO: handle all alternative hyphenations (see hyphen-1.2.8/tests/unicode.*)
+                            OUString aAlt( xHyphWord->getHyphenatedWord() );
+                            OUString aWord2(aWord);
+                            OUString aAltLeft(aAlt.copy(0, _nWordLen));
+                            OUString aAltRight(aAlt.copy(_nWordLen));
+                            bAltFullLeft = aWord2.startsWith(aAltLeft);
+                            bAltFullRight = aWord2.endsWith(aAltRight);
+                            nAltDelChar = aWord2.getLength() - aAlt.getLength() + (1 - bAltFullLeft) + (1 - bAltFullRight);
+
+                            // NOTE: improved for other cases, see fdo#63711
+
+                            // We expect[ed] the two cases:
                             // 1) packen becomes pak-ken
                             // 2) Schiffahrt becomes Schiff-fahrt
                             // In case 1, a character has to be replaced
                             // in case 2 a character is added.
                             // The identification is complicated by long
                             // compound words because the Hyphenator separates
-                            // all position of the word.
+                            // all position of the word. [This is not true for libhyphen.]
                             // "Schiffahrtsbrennesseln" -> "Schifffahrtsbrennnesseln"
                  // We can thus actually not directly connect the index of the
                             // AlternativeWord to aWord. The whole issue will be simplified
                             // by a function in the  Hyphenator as soon as AMA builds this in...
                             sal_uInt16 nAltStart = _nWordLen - 1;
-                            sal_uInt16 nTxtStart = nAltStart - (aAlt.Len() - aWord.Len());
+                            sal_uInt16 nTxtStart = nAltStart - (aAlt.getLength() - aWord.Len());
                             sal_uInt16 nTxtEnd = nTxtStart;
                             sal_uInt16 nAltEnd = nAltStart;
 
                             // The regions between the nStart and nEnd is the
                             // difference between alternative and original string.
-                            while( nTxtEnd < aWord.Len() && nAltEnd < aAlt.Len() &&
-                                   aWord.GetChar(nTxtEnd) != aAlt.GetChar(nAltEnd) )
+                            while( nTxtEnd < aWord.Len() && nAltEnd < aAlt.getLength() &&
+                                   aWord.GetChar(nTxtEnd) != aAlt[nAltEnd] )
                             {
                                 ++nTxtEnd;
                                 ++nAltEnd;
@@ -1883,7 +1895,7 @@ void ImpEditEngine::ImpBreakLine( ParaPortion* pParaPortion, EditLine* pLine, Te
 
                             // If a character is added, then we notice it now:
                             if( nAltEnd > nTxtEnd && nAltStart == nAltEnd &&
-                                aWord.GetChar( nTxtEnd ) == aAlt.GetChar(nAltEnd) )
+                                aWord.GetChar( nTxtEnd ) == aAlt[nAltEnd] )
                             {
                                 ++nAltEnd;
                                 ++nTxtStart;
@@ -1893,13 +1905,13 @@ void ImpEditEngine::ImpBreakLine( ParaPortion* pParaPortion, EditLine* pLine, Te
                             DBG_ASSERT( ( nAltEnd - nAltStart ) == 1, "Alternate: Wrong assumption!" );
 
                             if ( nTxtEnd > nTxtStart )
-                                cAlternateReplChar = aAlt.GetChar( nAltStart );
+                                cAlternateReplChar = aAlt[nAltStart];
                             else
-                                cAlternateExtraChar = aAlt.GetChar( nAltStart );
+                                cAlternateExtraChar = aAlt[nAltStart];
 
                             bHyphenated = sal_True;
                             nBreakPos = nWordStart + nTxtStart;
-                            if ( cAlternateReplChar )
+                            if ( cAlternateReplChar || aAlt.getLength() < aWord2.getLength() || !bAltFullRight) // also for "oma-tje", "re-eel"
                                 nBreakPos++;
                         }
                     }
@@ -1947,21 +1959,16 @@ void ImpEditEngine::ImpBreakLine( ParaPortion* pParaPortion, EditLine* pLine, Te
         TextPortion* pHyphPortion = new TextPortion( 0 );
         pHyphPortion->GetKind() = PORTIONKIND_HYPHENATOR;
         String aHyphText(rtl::OUString(CH_HYPH));
-        if ( cAlternateReplChar )
+        if ( (cAlternateReplChar || cAlternateExtraChar) && bAltFullRight ) // alternation after the break doesn't supported
         {
             TextPortion* pPrev = pParaPortion->GetTextPortions()[nEndPortion];
             DBG_ASSERT( pPrev && pPrev->GetLen(), "Hyphenate: Prev portion?!" );
-            pPrev->SetLen( pPrev->GetLen() - 1 );
-            pHyphPortion->SetLen( 1 );
-            pHyphPortion->SetExtraValue( cAlternateReplChar );
+            pPrev->SetLen( pPrev->GetLen() - nAltDelChar );
+            pHyphPortion->SetLen( nAltDelChar );
+            if (cAlternateReplChar && !bAltFullLeft) pHyphPortion->SetExtraValue( cAlternateReplChar );
             // Correct width of the portion above:
             pPrev->GetSize().Width() =
-                pLine->GetCharPosArray()[ nBreakPos-1 - pLine->GetStart() - 1 ];
-        }
-        else if ( cAlternateExtraChar )
-        {
-            pHyphPortion->SetExtraValue( cAlternateExtraChar );
-            aHyphText.Insert( rtl::OUString(cAlternateExtraChar), 0 );
+                pLine->GetCharPosArray()[ nBreakPos-1 - pLine->GetStart() - nAltDelChar ];
         }
 
         // Determine the width of the Hyph-Portion:
commit 5d6f6aa198e2181a594ffb63981c048c45411fa8
Author: Kohei Yoshida <kohei.yoshida at gmail.com>
Date:   Mon Apr 22 18:05:53 2013 -0400

    fdo#61820: Avoid crasher when file URL contains unicode bytes.
    
    This is a cherry-pick of 6374df20c2a8378209cce21c0e9689e65b8bd9a2.
    
    Credit goes to Isamu Mogi for pin-pointing exactly what caused the crash
    and which commit fixed it on master.
    
    Change-Id: Ic5653c76c8c7d8eb8798a9c4ae0cbc43f0e946e4
    Reviewed-on: https://gerrit.libreoffice.org/3581
    Reviewed-by: Eike Rathke <erack at redhat.com>
    Reviewed-by: Fridrich Strba <fridrich at documentfoundation.org>
    Tested-by: Fridrich Strba <fridrich at documentfoundation.org>

diff --git a/sc/Library_scfilt.mk b/sc/Library_scfilt.mk
index bdb99ca..0a849da 100644
--- a/sc/Library_scfilt.mk
+++ b/sc/Library_scfilt.mk
@@ -58,6 +58,7 @@ $(eval $(call gb_Library_use_libraries,scfilt,\
 	svxcore \
 	tk \
 	tl \
+	ucbhelper \
 	utl \
 	vcl \
 	i18nisolang1 \
diff --git a/sc/source/filter/orcus/xmlcontext.cxx b/sc/source/filter/orcus/xmlcontext.cxx
index ecbf35b..001c8f9 100644
--- a/sc/source/filter/orcus/xmlcontext.cxx
+++ b/sc/source/filter/orcus/xmlcontext.cxx
@@ -14,6 +14,7 @@
 
 #include "svtools/treelistbox.hxx"
 #include "svtools/treelistentry.hxx"
+#include "ucbhelper/content.hxx"
 
 #include <orcus/spreadsheet/import_interface.hpp>
 #include <orcus/xml_structure_tree.hpp>
@@ -21,7 +22,14 @@
 #include <orcus/orcus_xml.hpp>
 #include <orcus/global.hpp>
 
+#include <com/sun/star/ucb/XCommandEnvironment.hpp>
+
 #include <string>
+#include <sstream>
+
+#define BUFFER_SIZE 4096
+
+using namespace com::sun::star;
 
 namespace {
 
@@ -143,6 +151,26 @@ public:
     }
 };
 
+void loadContentFromURL(const OUString& rURL, std::string& rStrm)
+{
+    ucbhelper::Content aContent(
+        rURL, uno::Reference<ucb::XCommandEnvironment>(), comphelper::getProcessComponentContext());
+    uno::Reference<io::XInputStream> xStrm = aContent.openStream();
+
+    std::ostringstream aStrmBuf;
+    uno::Sequence<sal_Int8> aBytes;
+    size_t nBytesRead = 0;
+    do
+    {
+        nBytesRead = xStrm->readBytes(aBytes, BUFFER_SIZE);
+        const sal_Int8* p = aBytes.getConstArray();
+        aStrmBuf << std::string(p, p + nBytesRead);
+    }
+    while (nBytesRead == BUFFER_SIZE);
+
+    rStrm = aStrmBuf.str();
+}
+
 }
 
 ScOrcusXMLContextImpl::ScOrcusXMLContextImpl(ScDocument& rDoc, const OUString& rPath) :
@@ -154,12 +182,8 @@ bool ScOrcusXMLContextImpl::loadXMLStructure(SvTreeListBox& rTreeCtrl, ScOrcusXM
 {
     rParam.maUserDataStore.clear();
 
-    OString aSysPath = ScOrcusFiltersImpl::toSystemPath(maPath);
-    const char* path = aSysPath.getStr();
-
-    // TODO: Use our own stream loading call instead of one from orcus.
     std::string aStrm;
-    orcus::load_file_content(path, aStrm);
+    loadContentFromURL(maPath, aStrm);
 
     if (aStrm.empty())
         return false;
commit 86da39ecaaf2a018de2de95ceb452a96b0e0acc8
Author: Olivier Ploton <olivier.ploton at univ-tours.fr>
Date:   Wed Dec 12 22:04:38 2012 +0100

    Base: fix incorrect field removal in criterion inside query design view
    
    Includes following master commits:
    
    commit 6536d0eb4f56e64c9b74b358642e3ee1e39353e5
    Author: Lionel Elie Mamane <lionel at mamane.lu>
    Date:   Tue Apr 23 06:44:57 2013 +0200
    
        reword comment
    
    commit 5143e162f81ec64db4ed2b11a3a79183c4901c79
    Author: Lionel Elie Mamane <lionel at mamane.lu>
    Date:   Tue Apr 23 06:44:42 2013 +0200
    
        isEmpty() instead of getLength()==0
    
    commit f0c38b6355333c0bbb02e52a732f04ab0d519ecf
    Author: Olivier Ploton <olivier.ploton at univ-tours.fr>
    Date:   Wed Dec 12 22:04:38 2012 +0100
    
        Base: fix incorrect field removal in criterion inside query design view
    
    Change-Id: I2fedae672c24a269fca3dfc1bacc66fd53fc61af
    Signed-off-by: Miklos Vajna <vmiklos at suse.cz>

diff --git a/connectivity/source/parse/sqlnode.cxx b/connectivity/source/parse/sqlnode.cxx
index 73fd510..4704b74 100644
--- a/connectivity/source/parse/sqlnode.cxx
+++ b/connectivity/source/parse/sqlnode.cxx
@@ -463,8 +463,13 @@ void OSQLParseNode::impl_parseNodeToString_throw(::rtl::OUStringBuffer& rString,
             if (rParam.xField.is() && SQL_ISRULE(pSubTree,subquery))
                 aNewParam.xField = NULL;
 
-            // if there is a field given we don't display the fieldname, if there is any
-            if (rParam.xField.is() && SQL_ISRULE(pSubTree,column_ref))
+            // When we are building a criterion inside a query view,
+            // simplify criterion display by removing:
+            //   "currentFieldName"
+            //   "currentFieldName" =
+            // but only at the very beginning of the criterion
+            // (not embedded deep in the expression).
+            if (rString.getLength() == 0 && rParam.xField.is() && SQL_ISRULE(pSubTree,column_ref))
             {
                 sal_Bool bFilter = sal_False;
                 // retrieve the fields name
commit 76c389ec5bfe85cb9b60bf8c7f6ceb55ca88d96e
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Apr 23 00:17:03 2013 +0200

    fdo#62147: sw: ODF import: apply styles in cells with string-value
    
    Apply the table-cell-style to paragraphs inside the table cell
    for cells with value-type="string" and office:string-value attribute.
    This should complete commit 1b5839f49c07beb6fbde6c7370a5636d22f9ab77.
    
    Change-Id: Ief34de1e7c5087906ea597ce3ca96e020f6eebe6
    (cherry picked from commit 84217e299724b8ee80dff63cb561b4bae0f44835)
    Reviewed-on: https://gerrit.libreoffice.org/3575
    Reviewed-by: Miklos Vajna <vmiklos at suse.cz>
    Tested-by: Miklos Vajna <vmiklos at suse.cz>

diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx
index 9ffba48..6cd2cdc 100644
--- a/sw/source/filter/xml/xmltbli.cxx
+++ b/sw/source/filter/xml/xmltbli.cxx
@@ -589,8 +589,11 @@ SwXMLTableCellContext_Impl::~SwXMLTableCellContext_Impl()
 
 inline void SwXMLTableCellContext_Impl::_InsertContent()
 {
+    SwStartNode const*const pStartNode( GetTable()->InsertTableSection(0,
+            (m_bHasStringValue && m_bValueTypeIsString &&
+             !aStyleName.isEmpty()) ? & aStyleName : 0) );
     GetTable()->InsertCell( aStyleName, nRowSpan, nColSpan,
-                            GetTable()->InsertTableSection(),
+                            pStartNode,
                             mXmlId,
                             NULL, bProtect, &sFormula, bHasValue, fValue,
             (m_bHasStringValue && m_bValueTypeIsString) ? &m_StringValue : 0);
@@ -2883,12 +2886,14 @@ void SwXMLTableContext::MakeTable( SwTableBox *pBox, sal_Int32 nW )
 }
 
 const SwStartNode *SwXMLTableContext::InsertTableSection(
-                                            const SwStartNode *pPrevSttNd )
+        const SwStartNode *const pPrevSttNd,
+        OUString const*const pStringValueStyleName)
 {
     // The topmost table is the only table that maintains the two members
     // pBox1 and bFirstSection.
     if( xParentTable.Is() )
-        return ((SwXMLTableContext *)&xParentTable)->InsertTableSection( pPrevSttNd );
+        return static_cast<SwXMLTableContext *>(&xParentTable)
+                    ->InsertTableSection(pPrevSttNd, pStringValueStyleName);
 
     const SwStartNode *pStNd;
     Reference<XUnoTunnel> xCrsrTunnel( GetImport().GetTextImport()->GetCursor(),
@@ -2943,6 +2948,13 @@ const SwStartNode *SwXMLTableContext::InsertTableSection(
         }
     }
 
+    if (pStringValueStyleName)
+    {   // fdo#62147: apply style to paragraph on string-value cell
+        GetImport().GetTextImport()->SetStyleAndAttrs( GetImport(),
+            GetImport().GetTextImport()->GetCursor(), *pStringValueStyleName,
+            true, false, -1, false); // parameters same as sCellParaStyleName
+    }
+
     return pStNd;
 }
 
diff --git a/sw/source/filter/xml/xmltbli.hxx b/sw/source/filter/xml/xmltbli.hxx
index e9854cc..cfd886b 100644
--- a/sw/source/filter/xml/xmltbli.hxx
+++ b/sw/source/filter/xml/xmltbli.hxx
@@ -186,7 +186,8 @@ public:
     void InsertRepRows( sal_uInt32 nCount );
     const SwXMLTableCell_Impl *GetCell( sal_uInt32 nRow, sal_uInt32 nCol ) const;
     SwXMLTableCell_Impl *GetCell( sal_uInt32 nRow, sal_uInt32 nCol );
-    const SwStartNode *InsertTableSection( const SwStartNode *pPrevSttNd=0 );
+    const SwStartNode *InsertTableSection(const SwStartNode *pPrevSttNd = 0,
+                                  OUString const* pStringValueStyleName = 0);
 
     virtual void EndElement();
 
commit 87229186a70cdf28dac35c89228d9473b5e1059c
Author: Fridrich Å trba <fridrich.strba at bluewin.ch>
Date:   Mon Apr 22 14:58:58 2013 +0200

    Uploading LGM2013 version of libcdr
    
    (cherry picked from commit 4757ffcc5cea1d627f57e551b7af0b39c8e40b47)
    
    Conflicts:
    	libcdr/ExternalProject_libcdr.mk
    
    Change-Id: Icdf57cb8a40256b4a474ededd3ba030bd79497f4
    
    Trying to fix a boost::property_tree::json_parser error on windows
    
    (cherry picked from commit 41d2b58b1ed5c1c4a1ca6ab3e6d7c4f15874d3a3)
    
    Conflicts:
    	boost/UnpackedTarball_boost.mk
    
    Change-Id: Iea3ec9a56eb008c6a0729a151b392f1e62925720
    
    Trying to avoid linking with boost on Windows
    
    Change-Id: Ic0c538dfad88f850d95f417f2741ef7dba7fc5e4
    (cherry picked from commit 1e392ea7a0d1504f701f9fed1492e64a78a65339)
    Reviewed-on: https://gerrit.libreoffice.org/3559
    Reviewed-by: Michael Meeks <michael.meeks at suse.com>
    Tested-by: Michael Meeks <michael.meeks at suse.com>

diff --git a/boost/UnpackedTarball_boost.mk b/boost/UnpackedTarball_boost.mk
index 4db9aef..b7c22f5 100644
--- a/boost/UnpackedTarball_boost.mk
+++ b/boost/UnpackedTarball_boost.mk
@@ -52,6 +52,8 @@ boost_patches += boost_1_44_0-clang-warnings.patch
 # in GCC-4.7 experimental":
 boost_patches += boost_1_44_0-gthreads.patch
 
+boost_patches += boost.ptree.patch
+
 $(eval $(call gb_UnpackedTarball_UnpackedTarball,boost))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,boost,$(BOOST_TARBALL)))
diff --git a/boost/boost.ptree.patch b/boost/boost.ptree.patch
new file mode 100644
index 0000000..3fa98d8
--- /dev/null
+++ b/boost/boost.ptree.patch
@@ -0,0 +1,11 @@
+--- misc/build/boost_1_44_0/boost/property_tree/detail/json_parser_read.hpp	2013-04-22 18:22:16.961642320 +0200
++++ misc/build/boost_1_44_0/boost/property_tree/detail/json_parser_read.hpp	2013-04-22 18:22:59.991632602 +0200
+@@ -102,7 +102,7 @@
+             void operator()(It b, It e) const
+             {
+                 BOOST_ASSERT(c.stack.size() >= 1);
+-                c.stack.back()->push_back(std::make_pair(c.name, Str(b, e)));
++                c.stack.back()->push_back(std::make_pair(c.name, Ptree(Str(b, e))));
+                 c.name.clear();
+                 c.string.clear();
+             }
diff --git a/download.lst b/download.lst
index 36c4fe9..0763d61 100644
--- a/download.lst
+++ b/download.lst
@@ -1,5 +1,5 @@
-CDR_MD5SUM := 6db2c96a4ae5977da8b84893c1441038
-export CDR_TARBALL := libcdr-0.0.12.tar.bz2
+CDR_MD5SUM := 75700c61b3a8e7d49a1f04c62048ff00
+export CDR_TARBALL := libcdr-0.0.13.tar.bz2
 MSPUB_MD5SUM := 881c4628ec5f54d47f35d5d19e335662
 export MSPUB_TARBALL := libmspub-0.0.5.tar.bz2
 VISIO_MD5SUM := 2f638cf6f92cec59c9205ac3cbf1702e
diff --git a/libcdr/ExternalProject_libcdr.mk b/libcdr/ExternalProject_libcdr.mk
index 9193c3c..d7e7693 100644
--- a/libcdr/ExternalProject_libcdr.mk
+++ b/libcdr/ExternalProject_libcdr.mk
@@ -26,6 +26,7 @@ ifeq ($(OS)$(COM),WNTMSC)
 ifeq ($(VCVER),90)
 $(call gb_ExternalProject_get_state_target,libcdr,build) :
 	cd $(EXTERNAL_WORKDIR)/build/win32 \
+	&& export BOOST_INCLUDE_DIR=$(OUTDIR)/inc/external \
 	&& export LIBWPD_INCLUDE_DIR=$(OUTDIR)/inc/external \
 	&& export LIBWPG_INCLUDE_DIR=$(OUTDIR)/inc/external \
 	&& export LCMS2_INCLUDE_DIR=$(call gb_UnpackedTarball_get_dir,lcms2/include) \
@@ -36,6 +37,7 @@ $(call gb_ExternalProject_get_state_target,libcdr,build) :
 else ifeq ($(VCVER),100)
 $(call gb_ExternalProject_get_state_target,libcdr,build) :
 	cd $(EXTERNAL_WORKDIR)/build/win32 \
+	&& export BOOST_INCLUDE_DIR=$(OUTDIR)/inc/external \
 	&& export LIBWPD_INCLUDE_DIR=$(OUTDIR)/inc/external \
 	&& export LIBWPG_INCLUDE_DIR=$(OUTDIR)/inc/external \
 	&& export LCMS2_INCLUDE_DIR=$(call gb_UnpackedTarball_get_dir,lcms2/include) \
@@ -46,6 +48,7 @@ $(call gb_ExternalProject_get_state_target,libcdr,build) :
 else
 $(call gb_ExternalProject_get_state_target,libcdr,build) :
 	cd $(EXTERNAL_WORKDIR)/build/win32 \
+	&& export BOOST_INCLUDE_DIR=$(OUTDIR)/inc/external \
 	&& export LIBWPD_INCLUDE_DIR=$(OUTDIR)/inc/external \
 	&& export LIBWPG_INCLUDE_DIR=$(OUTDIR)/inc/external \
 	&& export LCMS2_INCLUDE_DIR=$(call gb_UnpackedTarball_get_dir,lcms2/include) \
@@ -62,7 +65,7 @@ $(call gb_ExternalProject_get_state_target,libcdr,build) :
 	&& export PKG_CONFIG="" \
 	&& export ICU_LIBS=" " \
 	$(if $(filter NO,$(SYSTEM_ICU)),&& export ICU_CFLAGS="-I$(OUTDIR)/inc/external") \
-	$(if $(filter YES,$(SYSTEM_ICU)),&& ICU_CFLAGS=" ") \
+	$(if $(filter YES,$(SYSTEM_ICU)),&& export ICU_CFLAGS=" ") \
 	&& ./configure \
 		--with-pic \
 		--enable-static \
@@ -70,6 +73,7 @@ $(call gb_ExternalProject_get_state_target,libcdr,build) :
 		--without-docs \
 		--disable-debug \
 		--disable-werror \
+		$(if $(filter NO,$(SYSTEM_BOOST)),CXXFLAGS=-I$(OUTDIR)/inc/external) \
 		$(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
 	&& (cd $(EXTERNAL_WORKDIR)/src/lib && $(MAKE)) \
 	&& touch $@
diff --git a/libcdr/UnpackedTarball_cdr.mk b/libcdr/UnpackedTarball_cdr.mk
index be1e7d7..a4a427d 100644
--- a/libcdr/UnpackedTarball_cdr.mk
+++ b/libcdr/UnpackedTarball_cdr.mk
@@ -11,4 +11,10 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,cdr))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,cdr,$(CDR_TARBALL)))
 
+$(eval $(call gb_UnpackedTarball_set_patchlevel,cdr,1))
+
+$(eval $(call gb_UnpackedTarball_add_patches,cdr,\
+       libcdr/libcdr-0.0.13.patch \
+))
+
 # vim: set noet sw=4 ts=4:
diff --git a/libcdr/libcdr-0.0.13.patch b/libcdr/libcdr-0.0.13.patch
new file mode 100644
index 0000000..29b2b28
--- /dev/null
+++ b/libcdr/libcdr-0.0.13.patch
@@ -0,0 +1,12 @@
+--- a/src/lib/CDRParser.cpp
++++ b/src/lib/CDRParser.cpp
+@@ -32,6 +32,9 @@
+ #include <string.h>
+ #include <sstream>
+ #include <set>
++#ifndef BOOST_ALL_NO_LIB
++#define BOOST_ALL_NO_LIB 1
++#endif
+ #include <boost/property_tree/json_parser.hpp>
+ #include <boost/property_tree/ptree.hpp>
+ #include <boost/spirit/include/classic.hpp>
diff --git a/libcdr/prj/build.lst b/libcdr/prj/build.lst
index 6c1552e..bbeb2ce 100644
--- a/libcdr/prj/build.lst
+++ b/libcdr/prj/build.lst
@@ -1,2 +1,2 @@
-cdr	libcdr	: libwpd libwpg ICU:icu LCMS2:lcms2 ZLIB:zlib soltools NULL
+cdr	libcdr	: libwpd libwpg BOOST:boost ICU:icu LCMS2:lcms2 ZLIB:zlib soltools NULL
 cdr	libcdr\prj	nmake	-	all	cdr_libcdr NULL
commit 0e3cec6b72a7c37a5c591431b3ea86fdb70ad33e
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Apr 22 16:21:57 2013 +0200

    rhbz#954991 Avoid static data (causing trouble at exit)
    
    (cherry picked from commit aa1aedb2a0ef97cb6110f18a1de86abc8dbcd304)
    Conflicts:
    	vcl/inc/unx/salinst.h
    	vcl/unx/generic/dtrans/X11_service.cxx
    
    Change-Id: Ifc8275276811ba24b62f93096e7cb98a5dbf658c
    Reviewed-on: https://gerrit.libreoffice.org/3556
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    Tested-by: Michael Stahl <mstahl at redhat.com>


... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list