[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-4.2' - 48 commits - basic/source configure.ac connectivity/source cui/source editeng/source i18npool/source instsetoo_native/CustomTarget_install.mk officecfg/registry oox/source reportbuilder/java reportdesign/source sal/textenc sc/inc sc/sdi sc/source sd/sdi sd/source sd/uiconfig sfx2/source sfx2/uiconfig sot/source starmath/inc starmath/qa starmath/source svx/source sw/CppunitTest_sw_macros_test.mk sw/inc sw/qa sw/source wizards/source writerfilter/source xmloff/source

Andras Timar andras.timar at collabora.com
Mon Jun 2 10:04:09 PDT 2014


 basic/source/inc/namecont.hxx                                                             |    4 
 basic/source/inc/scriptcont.hxx                                                           |    1 
 basic/source/uno/namecont.cxx                                                             |   97 +++--
 basic/source/uno/scriptcont.cxx                                                           |    6 
 configure.ac                                                                              |    2 
 connectivity/source/drivers/firebird/ResultSet.cxx                                        |    2 
 connectivity/source/drivers/firebird/ResultSet.hxx                                        |   10 
 cui/source/options/optgdlg.cxx                                                            |    6 
 cui/source/options/optgdlg.hxx                                                            |    2 
 editeng/source/editeng/editdoc.cxx                                                        |   39 --
 editeng/source/editeng/editdoc.hxx                                                        |   17 
 editeng/source/editeng/impedit.hxx                                                        |    1 
 editeng/source/editeng/impedit4.cxx                                                       |   42 +-
 i18npool/source/breakiterator/breakiterator_unicode.cxx                                   |   22 -
 instsetoo_native/CustomTarget_install.mk                                                  |    2 
 officecfg/registry/data/org/openoffice/Office/UI/WriterFormWindowState.xcu                |   17 
 oox/source/vml/vmlinputstream.cxx                                                         |    2 
 reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormatValueUtility.java |   25 -
 reportdesign/source/filter/xml/xmlExport.cxx                                              |    4 
 sal/textenc/convertisciidevangari.tab                                                     |    4 
 sc/inc/sc.hrc                                                                             |    1 
 sc/sdi/cellsh.sdi                                                                         |    1 
 sc/sdi/scalc.sdi                                                                          |   25 +
 sc/source/core/data/column.cxx                                                            |    2 
 sc/source/core/data/column3.cxx                                                           |   45 --
 sc/source/core/data/document.cxx                                                          |    9 
 sc/source/core/data/dpgroup.cxx                                                           |    2 
 sc/source/core/data/formulacell.cxx                                                       |   17 
 sc/source/core/tool/address.cxx                                                           |   21 -
 sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx                               |    2 
 sc/source/ui/StatisticsDialogs/DescriptiveStatisticsDialog.cxx                            |    7 
 sc/source/ui/StatisticsDialogs/ExponentialSmoothingDialog.cxx                             |    2 
 sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx                              |    2 
 sc/source/ui/StatisticsDialogs/MovingAverageDialog.cxx                                    |    2 
 sc/source/ui/StatisticsDialogs/TableFillingAndNavigationTools.cxx                         |   22 -
 sc/source/ui/app/scdll.cxx                                                                |    2 
 sc/source/ui/dialogs/searchresults.cxx                                                    |  104 ++++-
 sc/source/ui/inc/TableFillingAndNavigationTools.hxx                                       |   14 
 sc/source/ui/inc/searchresults.hxx                                                        |   34 +
 sc/source/ui/view/cellsh1.cxx                                                             |   15 
 sc/source/ui/view/tabvwsh.cxx                                                             |    3 
 sc/source/ui/view/viewfun2.cxx                                                            |   14 
 sd/sdi/_docsh.sdi                                                                         |   15 
 sd/source/ui/animations/CustomAnimationCreateDialog.cxx                                   |    2 
 sd/source/ui/docshell/docshel3.cxx                                                        |  114 ++++++
 sd/source/ui/docshell/docshell.cxx                                                        |    6 
 sd/uiconfig/sdraw/menubar/menubar.xml                                                     |    2 
 sd/uiconfig/simpress/menubar/menubar.xml                                                  |    2 
 sfx2/source/bastyp/fltfnc.cxx                                                             |    4 
 sfx2/uiconfig/ui/documentinfopage.ui                                                      |  186 ++++------
 sot/source/base/formats.cxx                                                               |   36 -
 starmath/inc/ElementsDockingWindow.hxx                                                    |   11 
 starmath/qa/cppunit/test_nodetotextvisitors.cxx                                           |    1 
 starmath/source/ElementsDockingWindow.cxx                                                 |   99 ++++-
 starmath/source/parse.cxx                                                                 |    8 
 svx/source/svdraw/svdograf.cxx                                                            |    8 
 svx/source/tbxctrls/tbcontrl.cxx                                                          |    7 
 sw/CppunitTest_sw_macros_test.mk                                                          |   62 +--
 sw/inc/ndgrf.hxx                                                                          |    9 
 sw/qa/core/data/odt/fdo68983.odt                                                          |binary
 sw/qa/core/data/rtf/pass/fdo78900.rtf                                                     |   11 
 sw/qa/core/macros-test.cxx                                                                |   48 ++
 sw/qa/extras/ooxmlexport/data/fdo79008.docx                                               |binary
 sw/qa/extras/ooxmlexport/ooxmlexport.cxx                                                  |   12 
 sw/qa/extras/ooxmlimport/data/bnc875718.docx                                              |binary
 sw/qa/extras/ooxmlimport/ooxmlimport.cxx                                                  |   23 +
 sw/qa/extras/ww8export/data/fdo77454.doc                                                  |binary
 sw/qa/extras/ww8export/ww8export.cxx                                                      |   24 +
 sw/qa/extras/ww8import/data/bnc863018.doc                                                 |binary
 sw/qa/extras/ww8import/ww8import.cxx                                                      |   11 
 sw/source/core/fields/ddefld.cxx                                                          |    3 
 sw/source/core/graphic/ndgrf.cxx                                                          |   18 
 sw/source/core/text/txtdrop.cxx                                                           |    2 
 sw/source/core/unocore/unoframe.cxx                                                       |    1 
 sw/source/filter/ww8/wrtw8esh.cxx                                                         |   18 
 sw/source/filter/ww8/ww8graf.cxx                                                          |   39 +-
 sw/source/filter/ww8/ww8par.cxx                                                           |    8 
 sw/source/filter/ww8/ww8par.hxx                                                           |    4 
 sw/source/filter/ww8/ww8par2.cxx                                                          |   12 
 sw/source/filter/ww8/ww8par5.cxx                                                          |    2 
 sw/source/filter/ww8/ww8par6.cxx                                                          |   20 +
 sw/source/filter/xml/xmltexte.cxx                                                         |   10 
 sw/source/ui/shells/txtattr.cxx                                                           |    4 
 wizards/source/access2base/DoCmd.xba                                                      |    4 
 writerfilter/source/dmapper/DomainMapper_Impl.cxx                                         |   14 
 writerfilter/source/rtftok/rtfdocumentimpl.cxx                                            |   11 
 xmloff/source/draw/shapeexport.cxx                                                        |   11 
 87 files changed, 1044 insertions(+), 489 deletions(-)

New commits:
commit a62142e3edbaeb7b6b76198e248ec2592aa59074
Author: Andras Timar <andras.timar at collabora.com>
Date:   Mon Jun 2 19:01:17 2014 +0200

    Bump version to 4.2-5
    
    Change-Id: Id06410adcb9e0b7d7b4728561a0abfacceca4fa7

diff --git a/configure.ac b/configure.ac
index 4f6d9ba..0ec4aee 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ dnl in order to create a configure script.
 # several non-alphanumeric characters, those are split off and used only for the
 # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no idea.
 
-AC_INIT([LibreOffice],[4.2.10.4],[],[],[https://libreoffice-from-collabora.com/])
+AC_INIT([LibreOffice],[4.2.10.5],[],[],[https://libreoffice-from-collabora.com/])
 
 AC_PREREQ([2.59])
 
commit 65230ffbe1ec27575dd04751ea1bae684dd6ef7e
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Jan 28 20:45:20 2014 +0100

    fix bad cast in SvxStyleBox_Impl::StateChanged()
    
    This causes various JunitTest crashes on Windows, regression from
    887bc4dd3e62fe6dd19dc9d1c3ba273a5b21b5ec.
    
    Change-Id: Iab24e0d39375ac1e5ac63d32470dca1e54d518c5
    Reviewed-on: https://gerrit.libreoffice.org/9621
    Reviewed-by: Tor Lillqvist <tml at collabora.com>
    Tested-by: Tor Lillqvist <tml at collabora.com>

diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 91b6a66..5621dc1 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -598,7 +598,10 @@ void SvxStyleBox_Impl::UserDraw( const UserDrawEvent& rUDEvt )
                 Size aPixelSize( pDevice->LogicToPixel( aFontSize, pShell->GetMapUnit() ) );
 
                 // setup the font properties
-                Font aFont( pFontItem->GetFamilyName(), pFontItem->GetStyleName(), aPixelSize );
+                SvxFont aFont;
+                aFont.SetName(pFontItem->GetFamilyName());
+                aFont.SetStyleName(pFontItem->GetStyleName());
+                aFont.SetSize(aPixelSize);
 
                 const SfxPoolItem *pItem = aItemSet.GetItem( SID_ATTR_CHAR_WEIGHT );
                 if ( pItem )
@@ -634,7 +637,7 @@ void SvxStyleBox_Impl::UserDraw( const UserDrawEvent& rUDEvt )
 
                 pItem = aItemSet.GetItem( SID_ATTR_CHAR_CASEMAP );
                 if ( pItem )
-                    ((SvxFont &)aFont).SetCaseMap( static_cast< const SvxCaseMapItem* >( pItem )->GetCaseMap() );
+                    aFont.SetCaseMap(static_cast<const SvxCaseMapItem*>(pItem)->GetCaseMap());
 
                 pItem = aItemSet.GetItem( SID_ATTR_CHAR_EMPHASISMARK );
                 if ( pItem )
commit b5750c5980a0c833d2b7829838d5d9de24c7f025
Author: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
Date:   Mon Jun 2 11:49:05 2014 +0200

    don't limit the 0 → 1 replacement in release to deb
    
    since there are rpm-frontends that do their own version comparison that
    is different from rpm itself.
    
    Change-Id: Iddf38c14e7f48eec5d043de57e3404fcd9da24f7
    (cherry picked from commit 3d67e273cf8b210f2f80908dfa4f50be6acbcf5c)

diff --git a/instsetoo_native/CustomTarget_install.mk b/instsetoo_native/CustomTarget_install.mk
index 16b841c..ea03413 100644
--- a/instsetoo_native/CustomTarget_install.mk
+++ b/instsetoo_native/CustomTarget_install.mk
@@ -81,7 +81,7 @@ $(foreach pkgformat,$(5),\
 	-l $(subst $(WHITESPACE),$(COMMA),$(strip $(2))) \
 	-p LibreOffice$(if $(ENABLE_RELEASE_BUILD),,_Dev)$(3) \
 	-u $(instsetoo_OUT) \
-	-buildid $(if $(filter deb0,$(pkgformat)$(LIBO_VERSION_PATCH)),1,$(LIBO_VERSION_PATCH)) \
+	-buildid $(if $(filter deb0 rpm0,$(pkgformat)$(LIBO_VERSION_PATCH)),1,$(LIBO_VERSION_PATCH)) \
 	$(if $(filter WNT,$(OS)), \
 		-msitemplate $(dir $@)msi_templates \
 		-msilanguage $(dir $@)win_ulffiles \
commit 237f6ba3d59b3f70cfcdee63072e6d9f4159603e
Author: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
Date:   Wed May 21 17:37:33 2014 +0200

    fdo#70596 dependency problem with debian packages for master/dev builds
    
    debian packages don't cope with release number of 0, so use release 1
    for debian master/dev-packages
    
    Change-Id: Id91926322d13bddad3a39faccfee4e131d8956b0
    (cherry picked from commit a95d12b547e2635e10aa074fe42f12a0ea151163)

diff --git a/instsetoo_native/CustomTarget_install.mk b/instsetoo_native/CustomTarget_install.mk
index 2af27ac..16b841c 100644
--- a/instsetoo_native/CustomTarget_install.mk
+++ b/instsetoo_native/CustomTarget_install.mk
@@ -81,7 +81,7 @@ $(foreach pkgformat,$(5),\
 	-l $(subst $(WHITESPACE),$(COMMA),$(strip $(2))) \
 	-p LibreOffice$(if $(ENABLE_RELEASE_BUILD),,_Dev)$(3) \
 	-u $(instsetoo_OUT) \
-	-buildid $(LIBO_VERSION_PATCH) \
+	-buildid $(if $(filter deb0,$(pkgformat)$(LIBO_VERSION_PATCH)),1,$(LIBO_VERSION_PATCH)) \
 	$(if $(filter WNT,$(OS)), \
 		-msitemplate $(dir $@)msi_templates \
 		-msilanguage $(dir $@)win_ulffiles \
commit 8fd4af591e17cd1096c019adca49f04a6f9c71e4
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Sun Jun 1 03:45:34 2014 +0200

    don't add the changes toolbar to the forms window, fdo#76752
    
    Change-Id: I1a5d62b0995343a73fd8d6941f0fa380bb19e783
    Reviewed-on: https://gerrit.libreoffice.org/9605
    Reviewed-by: Maxim Monastirsky <momonasmon at gmail.com>
    Tested-by: Maxim Monastirsky <momonasmon at gmail.com>

diff --git a/officecfg/registry/data/org/openoffice/Office/UI/WriterFormWindowState.xcu b/officecfg/registry/data/org/openoffice/Office/UI/WriterFormWindowState.xcu
index 49f3fe3..7d02379 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/WriterFormWindowState.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/WriterFormWindowState.xcu
@@ -697,23 +697,6 @@
           <value>true</value>
         </prop>
       </node>
-      <node oor:name="private:resource/toolbar/changes" oor:op="replace">
-        <prop oor:name="UIName" oor:type="xs:string">
-          <value xml:lang="en-US">Changes</value>
-        </prop>
-        <prop oor:name="Docked" oor:type="xs:boolean">
-          <value>true</value>
-        </prop>
-        <prop oor:name="DockingArea" oor:type="xs:int">
-          <value>2</value>
-        </prop>
-        <prop oor:name="DockPos" oor:type="xs:string">
-          <value>0,0</value>
-        </prop>
-        <prop oor:name="Visible" oor:type="xs:boolean">
-          <value>true</value>
-        </prop>
-      </node>
     </node>
   </node>
 </oor:component-data>
commit 70f600c9f218a1e6ddbb3c50bc8cb1b4e7caf811
Author: Eike Rathke <erack at redhat.com>
Date:   Tue May 27 23:19:36 2014 +0200

    resolved fdo#70455 B1:SOMENAME is not a valid singleton reference
    
    (cherry picked from commit ac8532ce26e79453b3a969b956ebb7823c455131)
    
    Conflicts:
    	sc/source/core/tool/address.cxx
    
    Change-Id: Iac80d74a9ec6382a232fdc2f4b798e57dc643ad3
    Reviewed-on: https://gerrit.libreoffice.org/9515
    Tested-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>

diff --git a/sc/source/core/tool/address.cxx b/sc/source/core/tool/address.cxx
index 3ed6213..23bca38 100644
--- a/sc/source/core/tool/address.cxx
+++ b/sc/source/core/tool/address.cxx
@@ -876,6 +876,14 @@ lcl_a1_get_row( const sal_Unicode* p, ScAddress* pAddr, sal_uInt16* nFlags )
     return pEnd;
 }
 
+/// B:B or 2:2, but not B:2 or 2:B or B2:B or B:B2 or ...
+static bool isValidSingleton( sal_uInt16 nFlags, sal_uInt16 nFlags2 )
+{
+    bool bCols = (nFlags & SCA_VALID_COL) && ((nFlags & SCA_VALID_COL2) || (nFlags2 & SCA_VALID_COL));
+    bool bRows = (nFlags & SCA_VALID_ROW) && ((nFlags & SCA_VALID_ROW2) || (nFlags2 & SCA_VALID_ROW));
+    return (bCols && !bRows) || (!bCols && bRows);
+}
+
 static sal_uInt16
 lcl_ScRange_Parse_XL_A1( ScRange& r,
                          const sal_Unicode* p,
@@ -982,7 +990,7 @@ lcl_ScRange_Parse_XL_A1( ScRange& r,
     }
 
     p = tmp2;
-    p = lcl_eatWhiteSpace( p+1 );
+    p = lcl_eatWhiteSpace( p+1 );   // after ':'
     tmp1 = lcl_a1_get_col( p, &r.aEnd, &nFlags2 );
     if( !tmp1 && aEndTabName.isEmpty() )     // Probably the aEndTabName was specified after the first range
     {
@@ -995,16 +1003,17 @@ lcl_ScRange_Parse_XL_A1( ScRange& r,
                 r.aEnd.SetTab( nTab );
                 nFlags |= SCA_VALID_TAB2 | SCA_TAB2_3D | SCA_TAB2_ABSOLUTE;
             }
-            p = lcl_eatWhiteSpace( p+1 );
+            if (*p == '!' || *p == ':')
+                p = lcl_eatWhiteSpace( p+1 );
             tmp1 = lcl_a1_get_col( p, &r.aEnd, &nFlags2 );
         }
     }
-    if( !tmp1 ) // strange, but valid singleton
-        return nFlags;
+    if( !tmp1 ) // strange, but maybe valid singleton
+        return isValidSingleton( nFlags, nFlags2) ? nFlags : (nFlags & ~SCA_VALID);
 
     tmp2 = lcl_a1_get_row( tmp1, &r.aEnd, &nFlags2 );
-    if( !tmp2 ) // strange, but valid singleton
-        return nFlags;
+    if( !tmp2 ) // strange, but maybe valid singleton
+        return isValidSingleton( nFlags, nFlags2) ? nFlags : (nFlags & ~SCA_VALID);
 
     if ( *tmp2 != 0 )
     {
commit c1b1d6c74fa3a42428e84f2927800b53c6486116
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Fri May 30 14:47:49 2014 -0400

    fdo#79174: Use 3D address when the input and output are on different sheets.
    
    Also some cleanup, mostly to avoid storing separate address convention object,
    which is not really necessary.
    
    (cherry picked from commit 0ab538885d818a7b3706df48a625e2523a8ebbdf)
    
    Conflicts:
    	sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx
    	sc/source/ui/StatisticsDialogs/FTestDialog.cxx
    	sc/source/ui/StatisticsDialogs/TTestDialog.cxx
    	sc/source/ui/StatisticsDialogs/TableFillingAndNavigationTools.cxx
    	sc/source/ui/inc/TableFillingAndNavigationTools.hxx
    
    Change-Id: Id3e104043f08b6786de2e91d69361557b83890f9
    Reviewed-on: https://gerrit.libreoffice.org/9578
    Tested-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>

diff --git a/sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx b/sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx
index 0dc9971..920ca3c 100644
--- a/sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx
+++ b/sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx
@@ -106,7 +106,7 @@ ScRange ScAnalysisOfVarianceDialog::ApplyOutput(ScDocShell* pDocShell)
 {
     AddressWalkerWriter output(mOutputAddress, pDocShell, mDocument,
             formula::FormulaGrammar::mergeToGrammar( formula::FormulaGrammar::GRAM_ENGLISH, mAddressDetails.eConv));
-    FormulaTemplate aTemplate(mDocument, mAddressDetails);
+    FormulaTemplate aTemplate(mDocument);
 
     output.writeBoldString(SC_STRLOAD(RID_STATISTICS_DLGS, STR_ANOVA_SINGLE_FACTOR_LABEL));
     output.nextRow();
diff --git a/sc/source/ui/StatisticsDialogs/DescriptiveStatisticsDialog.cxx b/sc/source/ui/StatisticsDialogs/DescriptiveStatisticsDialog.cxx
index 1687773..e81d06b 100644
--- a/sc/source/ui/StatisticsDialogs/DescriptiveStatisticsDialog.cxx
+++ b/sc/source/ui/StatisticsDialogs/DescriptiveStatisticsDialog.cxx
@@ -85,7 +85,7 @@ ScRange ScDescriptiveStatisticsDialog::ApplyOutput(ScDocShell* pDocShell)
 {
     AddressWalkerWriter aOutput(mOutputAddress, pDocShell, mDocument,
             formula::FormulaGrammar::mergeToGrammar( formula::FormulaGrammar::GRAM_ENGLISH, mAddressDetails.eConv));
-    FormulaTemplate aTemplate(mDocument, mAddressDetails);
+    FormulaTemplate aTemplate(mDocument);
 
     boost::scoped_ptr<DataRangeIterator> pIterator;
     if (mGroupedBy == BY_COLUMN)
@@ -95,6 +95,9 @@ ScRange ScDescriptiveStatisticsDialog::ApplyOutput(ScDocShell* pDocShell)
 
     aOutput.nextColumn();
 
+    // Use explicit sheet name in case the input and output are on different sheets.
+    bool b3DAddress = mInputRange.aStart.Tab() != mOutputAddress.Tab();
+
     // Write column/row labels
     for( ; pIterator->hasNext(); pIterator->next() )
     {
@@ -129,7 +132,7 @@ ScRange ScDescriptiveStatisticsDialog::ApplyOutput(ScDocShell* pDocShell)
         for(sal_Int32 i = 0; lclCalcDefinitions[i].aFormula != NULL; i++)
         {
             aTemplate.setTemplate(lclCalcDefinitions[i].aFormula);
-            aTemplate.applyRange(strWildcardRange, pIterator->get());
+            aTemplate.applyRange(strWildcardRange, pIterator->get(), b3DAddress);
             aOutput.writeFormula(aTemplate.getTemplate());
             aOutput.nextRow();
         }
diff --git a/sc/source/ui/StatisticsDialogs/ExponentialSmoothingDialog.cxx b/sc/source/ui/StatisticsDialogs/ExponentialSmoothingDialog.cxx
index 6b20afd..37eadfb 100644
--- a/sc/source/ui/StatisticsDialogs/ExponentialSmoothingDialog.cxx
+++ b/sc/source/ui/StatisticsDialogs/ExponentialSmoothingDialog.cxx
@@ -54,7 +54,7 @@ ScRange ScExponentialSmoothingDialog::ApplyOutput(ScDocShell* pDocShell)
 {
     AddressWalkerWriter output(mOutputAddress, pDocShell, mDocument,
             formula::FormulaGrammar::mergeToGrammar( formula::FormulaGrammar::GRAM_ENGLISH, mAddressDetails.eConv));
-    FormulaTemplate aTemplate(mDocument, mAddressDetails);
+    FormulaTemplate aTemplate(mDocument);
 
     // Smoothing factor
     double aSmoothingFactor = mpSmoothingFactor->GetValue() / 100.0;
diff --git a/sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx b/sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx
index a5e5001..b02856f 100644
--- a/sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx
+++ b/sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx
@@ -76,7 +76,7 @@ ScRange ScMatrixComparisonGenerator::ApplyOutput(ScDocShell* pDocShell)
 {
     AddressWalkerWriter output(mOutputAddress, pDocShell, mDocument,
             formula::FormulaGrammar::mergeToGrammar( formula::FormulaGrammar::GRAM_ENGLISH, mAddressDetails.eConv));
-    FormulaTemplate aTemplate(mDocument, mAddressDetails);
+    FormulaTemplate aTemplate(mDocument);
 
     SCTAB inTab = mInputRange.aStart.Tab();
 
diff --git a/sc/source/ui/StatisticsDialogs/MovingAverageDialog.cxx b/sc/source/ui/StatisticsDialogs/MovingAverageDialog.cxx
index 85466de..759e42e 100644
--- a/sc/source/ui/StatisticsDialogs/MovingAverageDialog.cxx
+++ b/sc/source/ui/StatisticsDialogs/MovingAverageDialog.cxx
@@ -54,7 +54,7 @@ ScRange ScMovingAverageDialog::ApplyOutput(ScDocShell* pDocShell)
 {
     AddressWalkerWriter output(mOutputAddress, pDocShell, mDocument,
             formula::FormulaGrammar::mergeToGrammar( formula::FormulaGrammar::GRAM_ENGLISH, mAddressDetails.eConv));
-    FormulaTemplate aTemplate(mDocument, mAddressDetails);
+    FormulaTemplate aTemplate(mDocument);
 
     boost::scoped_ptr<DataRangeIterator> pIterator;
     if (mGroupedBy == BY_COLUMN)
diff --git a/sc/source/ui/StatisticsDialogs/TableFillingAndNavigationTools.cxx b/sc/source/ui/StatisticsDialogs/TableFillingAndNavigationTools.cxx
index c6935fe..31e7240 100644
--- a/sc/source/ui/StatisticsDialogs/TableFillingAndNavigationTools.cxx
+++ b/sc/source/ui/StatisticsDialogs/TableFillingAndNavigationTools.cxx
@@ -18,10 +18,7 @@
 
 #include "TableFillingAndNavigationTools.hxx"
 
-FormulaTemplate::FormulaTemplate(ScDocument* aDocument, ScAddress::Details aAddressDetails) :
-    mDocument(aDocument),
-    mAddressDetails(aAddressDetails)
-{}
+FormulaTemplate::FormulaTemplate(ScDocument* pDoc) : mpDoc(pDoc) {}
 
 void FormulaTemplate::setTemplate(OUString aTemplate)
 {
@@ -33,27 +30,30 @@ void FormulaTemplate::setTemplate(const char* aTemplate)
     mTemplate = OUString::createFromAscii(aTemplate);
 }
 
-OUString& FormulaTemplate::getTemplate()
+const OUString& FormulaTemplate::getTemplate()
 {
     return mTemplate;
 }
 
-void FormulaTemplate::applyRange(OUString aVariable, ScRange aRange)
+void FormulaTemplate::applyRange(const OUString& aVariable, const ScRange& aRange, bool b3D)
 {
-    OUString aString = aRange.Format(SCR_ABS, mDocument, mAddressDetails);
+    sal_uInt16 nFlag = b3D ? SCR_ABS_3D : SCR_ABS;
+    OUString aString = aRange.Format(nFlag, mpDoc, mpDoc->GetAddressConvention());
     mTemplate = mTemplate.replaceAll(aVariable, aString);
 }
 
-void FormulaTemplate::applyRangeList(OUString aVariable, ScRangeList aRangeList)
+void FormulaTemplate::applyRangeList(const OUString& aVariable, const ScRangeList& aRangeList, bool b3D)
 {
+    sal_uInt16 nFlag = b3D ? SCR_ABS_3D : SCR_ABS;
     OUString aString;
-    aRangeList.Format(aString, SCR_ABS, mDocument);
+    aRangeList.Format(aString, nFlag, mpDoc, mpDoc->GetAddressConvention());
     mTemplate = mTemplate.replaceAll(aVariable, aString);
 }
 
-void FormulaTemplate::applyAddress(OUString aVariable, ScAddress aAddress)
+void FormulaTemplate::applyAddress(const OUString& aVariable, const ScAddress& aAddress, bool b3D)
 {
-    OUString aString = aAddress.Format(SCR_ABS, mDocument, mAddressDetails);
+    sal_uInt16 nFlag = b3D ? SCA_ABS_3D : SCA_ABS;
+    OUString aString = aAddress.Format(nFlag, mpDoc, mpDoc->GetAddressConvention());
     mTemplate = mTemplate.replaceAll(aVariable, aString);
 }
 
diff --git a/sc/source/ui/inc/TableFillingAndNavigationTools.hxx b/sc/source/ui/inc/TableFillingAndNavigationTools.hxx
index ea9a309..d4bac06 100644
--- a/sc/source/ui/inc/TableFillingAndNavigationTools.hxx
+++ b/sc/source/ui/inc/TableFillingAndNavigationTools.hxx
@@ -25,17 +25,17 @@ class FormulaTemplate
 {
 private:
     OUString            mTemplate;
-    ScDocument*         mDocument;
-    ScAddress::Details  mAddressDetails;
+    ScDocument*         mpDoc;
+
 public:
-    FormulaTemplate(ScDocument* aDocument, ScAddress::Details aAddressDetails);
+    FormulaTemplate(ScDocument* pDoc);
 
     void        setTemplate(OUString aTemplate);
     void        setTemplate(const char* aTemplate);
-    OUString&   getTemplate();
-    void        applyRange(OUString aVariable, ScRange aRange);
-    void        applyRangeList(OUString aVariable, ScRangeList aRangeList);
-    void        applyAddress(OUString aVariable, ScAddress aAddress);
+    const OUString& getTemplate();
+    void        applyRange(const OUString& aVariable, const ScRange& aRange, bool b3D = true);
+    void        applyRangeList(const OUString& aVariable, const ScRangeList& aRangeList, bool b3D = true);
+    void        applyAddress(const OUString& aVariable, const ScAddress& aAddress, bool b3D = true);
     void        applyString(OUString aVariable, OUString aValue);
     void        applyNumber(OUString aVariable, sal_Int32 aValue);
 };
commit 13d7e7c0764ca77f0d22f998d436e3a21da28944
Author: Jean-Pierre Ledure <jp at ledure.be>
Date:   Sat May 31 12:11:28 2014 +0200

    Access2Base : bugs fixings in LO 4.3 retrofitted to 4.2
    
    1. Typo in OpenForm
    2. Find(Record/Next) error when search done in gridcontrol of subform
    
    Change-Id: I914c3da021a47ef0410e3b6be038e8e2bad8fa81
    Reviewed-on: https://gerrit.libreoffice.org/9598
    Reviewed-by: Lionel Elie Mamane <lionel at mamane.lu>
    Tested-by: Lionel Elie Mamane <lionel at mamane.lu>

diff --git a/wizards/source/access2base/DoCmd.xba b/wizards/source/access2base/DoCmd.xba
index 4f72c12..457d687 100644
--- a/wizards/source/access2base/DoCmd.xba
+++ b/wizards/source/access2base/DoCmd.xba
@@ -135,6 +135,7 @@ Dim vFindValue As Variant, oFindrecord As Object
 		If .FindRecord = 0 Then Goto Error_FindRecord
 		.FindRecord = 0
 		Set ofForm = getObject(.Form)
+		If ofForm._Type = OBJCONTROL Then Set ofForm = ofForm.Form		'	Bug Tombola
 		Set ocGrid = getObject(.GridControl)
 
 		'	Move cursor to the initial row. Operation based on last FindRecord, not on user interactions done inbetween
@@ -330,6 +331,7 @@ Dim oFindRecord As _FindParams
 					If vParentGrid.SubType <> CTLGRIDCONTROL Then Goto Error_Target
 					.GridControl = vParentGrid._Shortcut
 					ofParentForm = getObject(_getUpperShortcut(vParentGrid._Shortcut, vParentGrid._Name))
+					If ofParentForm._Type = OBJCONTROL Then Set ofParentForm = ofParentForm.Form		'	Bug Tombola
 					If IsNull(ofParentForm.DatabaseForm) Then Goto Error_DatabaseForm
 					.Target = ocTarget._Shortcut
 					Set vDataField = ocTarget.ControlModel.BoundField
@@ -798,7 +800,7 @@ Dim sFilter As String, oForm As Object, oFormsCollection As Object
 	With ofForm
 		Select Case pvDataMode
 			Case acFormAdd
-				.setAllowAdditions = True
+				.AllowAdditions = True
 				.AllowDeletions = False
 				.AllowEdits = False
 			Case acFormEdit
commit a2e8593ebc126cbecd7bf0be36b88d74d886adb5
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Sat May 31 05:44:16 2014 +0200

    fdo#73352 firebird don't claim to support interfaces one doesn't
    
    and then throw an exception when the interface is used
    
    Change-Id: Id5e2c852323d49f51ab55cf46ab54223cf8ccf03
    Reviewed-on: https://gerrit.libreoffice.org/9596
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/connectivity/source/drivers/firebird/ResultSet.cxx b/connectivity/source/drivers/firebird/ResultSet.cxx
index fa148bb..28042ee 100644
--- a/connectivity/source/drivers/firebird/ResultSet.cxx
+++ b/connectivity/source/drivers/firebird/ResultSet.cxx
@@ -756,6 +756,7 @@ void SAL_CALL OResultSet::cancel(  ) throw(RuntimeException)
 }
 
 //----- XWarningsSupplier UNSUPPORTED -----------------------------------------
+#if 0
 void SAL_CALL OResultSet::clearWarnings() throw(SQLException, RuntimeException)
 {
     ::dbtools::throwFunctionNotSupportedException("clearWarnings not supported in firebird",
@@ -768,6 +769,7 @@ Any SAL_CALL OResultSet::getWarnings() throw(SQLException, RuntimeException)
                                                   *this);
     return Any();
 }
+#endif
 
 //----- OIdPropertyArrayUsageHelper ------------------------------------------
 IPropertyArrayHelper* OResultSet::createArrayHelper() const
diff --git a/connectivity/source/drivers/firebird/ResultSet.hxx b/connectivity/source/drivers/firebird/ResultSet.hxx
index db68c06..6e70210 100644
--- a/connectivity/source/drivers/firebird/ResultSet.hxx
+++ b/connectivity/source/drivers/firebird/ResultSet.hxx
@@ -26,7 +26,7 @@
 
 #include <connectivity/FValue.hxx>
 #include <connectivity/OSubComponent.hxx>
-#include <cppuhelper/compbase8.hxx>
+#include <cppuhelper/compbase7.hxx>
 #include <comphelper/proparrhlp.hxx>
 #include <comphelper/propertycontainer.hxx>
 
@@ -39,7 +39,9 @@
 #include <com/sun/star/sdbc/XResultSet.hpp>
 #include <com/sun/star/sdbc/XRow.hpp>
 #include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
+#if 0
 #include <com/sun/star/sdbc/XWarningsSupplier.hpp>
+#endif
 
 namespace connectivity
 {
@@ -48,11 +50,13 @@ namespace connectivity
         /*
         **  OResultSet
         */
-        typedef ::cppu::WeakComponentImplHelper8<      ::com::sun::star::sdbc::XResultSet,
+        typedef ::cppu::WeakComponentImplHelper7<       ::com::sun::star::sdbc::XResultSet,
                                                         ::com::sun::star::sdbc::XRow,
                                                         ::com::sun::star::sdbc::XResultSetMetaDataSupplier,
                                                         ::com::sun::star::util::XCancellable,
+#if 0
                                                         ::com::sun::star::sdbc::XWarningsSupplier,
+#endif
                                                         ::com::sun::star::sdbc::XCloseable,
                                                         ::com::sun::star::sdbc::XColumnLocate,
                                                         ::com::sun::star::lang::XServiceInfo> OResultSet_BASE;
@@ -185,8 +189,10 @@ namespace connectivity
             // XCloseable
             virtual void SAL_CALL close(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
             // XWarningsSupplier
+#if 0
             virtual ::com::sun::star::uno::Any SAL_CALL getWarnings(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
             virtual void SAL_CALL clearWarnings(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
+#endif
 
             // XColumnLocate
             virtual sal_Int32 SAL_CALL findColumn(const ::rtl::OUString& columnName)
commit c79e77177da227f8bf889a6adca8dae594227e16
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat May 31 00:03:44 2014 +0200

    fdo#64956: editeng: fix RTF color table export
    
    The editengine RTF export produces this:
    {\colortbl\red255\green255\blue255;;}
    
    ... and then it proceeds to map COL_AUTO to \cf0 i.e. the "white" entry
    that is the result of erroneously writing out the 0th entry regardless
    of whether it is COL_AUTO or not.
    
    Fix the color table export to always put COL_AUTO first (as the Writer
    RTF export already does), and simplify the code a bit.
    
    (cherry picked from commit 55070972b32e719e4855855797263d6342a3625f)
    
    Conflicts:
    	editeng/source/editeng/editdoc.cxx
    	editeng/source/editeng/editdoc.hxx
    	editeng/source/editeng/impedit4.cxx
    
    Change-Id: Ia8ce19f387e3627a1b4a26bcc723edcf5b1ffdf8
    Reviewed-on: https://gerrit.libreoffice.org/9585
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/editeng/source/editeng/editdoc.cxx b/editeng/source/editeng/editdoc.cxx
index f02990b..7eb4398 100644
--- a/editeng/source/editeng/editdoc.cxx
+++ b/editeng/source/editeng/editdoc.cxx
@@ -3011,45 +3011,6 @@ bool CharAttribList::DbgCheckAttribs() const
 #endif
 
 
-SvxColorList::SvxColorList()
-{
-}
-
-SvxColorList::~SvxColorList()
-{
-    for ( size_t i = 0, n = aColorList.size(); i < n; ++i )
-        delete aColorList[ i ];
-    aColorList.clear();
-}
-
-size_t SvxColorList::GetId( const SvxColorItem& rColorItem )
-{
-    for ( size_t i = 0, n = aColorList.size(); i < n; ++i )
-        if ( *aColorList[ i ] == rColorItem )
-            return i;
-    DBG_WARNING( "Color not found: GetId()" );
-    return 0;
-}
-
-void SvxColorList::Insert( SvxColorItem* pItem, size_t nIndex )
-{
-    if ( nIndex >= aColorList.size() )
-    {
-        aColorList.push_back( pItem );
-    }
-    else
-    {
-        DummyColorList::iterator it = aColorList.begin();
-        ::std::advance( it, nIndex );
-        aColorList.insert( it, pItem );
-    }
-}
-
-SvxColorItem* SvxColorList::GetObject( size_t nIndex )
-{
-    return ( nIndex >= aColorList.size() ) ? NULL : aColorList[ nIndex ];
-}
-
 EditEngineItemPool::EditEngineItemPool( sal_Bool bPersistenRefCounts )
     : SfxItemPool( OUString( "EditEngineItemPool" ), EE_ITEMS_START, EE_ITEMS_END,
                     aItemInfos, 0, bPersistenRefCounts )
diff --git a/editeng/source/editeng/editdoc.hxx b/editeng/source/editeng/editdoc.hxx
index 40676d5..dd04503 100644
--- a/editeng/source/editeng/editdoc.hxx
+++ b/editeng/source/editeng/editdoc.hxx
@@ -131,23 +131,8 @@ public:
 
 //  ----------------------------------------------------------------------
 //  class SvxColorList
-//  ----------------------------------------------------------------------
-
-class SvxColorList
-{
-private:
-    typedef std::vector<SvxColorItem*> DummyColorList;
-    DummyColorList aColorList;
 
-public:
-            SvxColorList();
-            ~SvxColorList();
-
-    size_t  GetId( const SvxColorItem& rColor );
-    size_t  Count() { return aColorList.size(); };
-    void    Insert( SvxColorItem* pItem, size_t nIndex );
-    SvxColorItem* GetObject( size_t nIndex );
-};
+typedef std::vector<Color> SvxColorList;
 
 //  ----------------------------------------------------------------------
 //  class ItemList
diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx
index 31b72db..6efe921 100644
--- a/editeng/source/editeng/impedit.hxx
+++ b/editeng/source/editeng/impedit.hxx
@@ -76,7 +76,6 @@ DBG_NAMEEX( EditEngine )
 
 class EditView;
 class EditEngine;
-class SvxColorList;
 
 class SvxSearchItem;
 class SvxLRSpaceItem;
diff --git a/editeng/source/editeng/impedit4.cxx b/editeng/source/editeng/impedit4.cxx
index a0f54df..b4ff56e 100644
--- a/editeng/source/editeng/impedit4.cxx
+++ b/editeng/source/editeng/impedit4.cxx
@@ -431,30 +431,40 @@ sal_uInt32 ImpEditEngine::WriteRTF( SvStream& rOutput, EditSelection aSel )
 
     // Write out ColorList  ...
     SvxColorList aColorList;
+    // COL_AUTO should be the default color, always put it first
+    aColorList.push_back(COL_AUTO);
+    SvxColorItem const& rDefault(static_cast<SvxColorItem const&>(
+                aEditDoc.GetItemPool().GetDefaultItem(EE_CHAR_COLOR)));
+    if (rDefault.GetValue() != COL_AUTO) // is the default always AUTO?
+    {
+        aColorList.push_back(rDefault.GetValue());
+    }
     sal_uInt32 i = 0;
-    SvxColorItem* pColorItem = (SvxColorItem*)aEditDoc.GetItemPool().GetItem2( EE_CHAR_COLOR, i );
+    SvxColorItem const* pColorItem = static_cast<SvxColorItem const*>(
+            aEditDoc.GetItemPool().GetItem2( EE_CHAR_COLOR, i));
     while ( pColorItem )
     {
-        sal_uInt32 nPos = i;
-        if ( pColorItem->GetValue() == COL_AUTO )
-            nPos = 0;
-        aColorList.Insert( new SvxColorItem( *pColorItem ), nPos );
-        pColorItem = (SvxColorItem*)aEditDoc.GetItemPool().GetItem2( EE_CHAR_COLOR, ++i );
+        ++i;
+        if ( pColorItem->GetValue() != COL_AUTO )
+        {
+            aColorList.push_back(pColorItem->GetValue());
+        }
+        pColorItem = static_cast<SvxColorItem const*>(
+                aEditDoc.GetItemPool().GetItem2(EE_CHAR_COLOR, i));
     }
-    aColorList.Insert( new SvxColorItem( (const SvxColorItem&)aEditDoc.GetItemPool().GetDefaultItem( EE_CHAR_COLOR) ), i );
 
     rOutput << '{' << OOO_STRING_SVTOOLS_RTF_COLORTBL;
-    for ( j = 0; j < aColorList.Count(); j++ )
+    for ( j = 0; j < aColorList.size(); j++ )
     {
-        pColorItem = aColorList.GetObject( j );
-        if ( !j || ( pColorItem->GetValue() != COL_AUTO ) )
+        Color const color = aColorList[j];
+        if (color != COL_AUTO) // auto is represented by "empty" element
         {
             rOutput << OOO_STRING_SVTOOLS_RTF_RED;
-            rOutput.WriteNumber( static_cast<sal_uInt32>(pColorItem->GetValue().GetRed()) );
+            rOutput.WriteNumber( static_cast<sal_uInt32>(color.GetRed()) );
             rOutput << OOO_STRING_SVTOOLS_RTF_GREEN;
-            rOutput.WriteNumber( static_cast<sal_uInt32>(pColorItem->GetValue().GetGreen()) );
+            rOutput.WriteNumber( static_cast<sal_uInt32>(color.GetGreen()) );
             rOutput << OOO_STRING_SVTOOLS_RTF_BLUE;
-            rOutput.WriteNumber( static_cast<sal_uInt32>(pColorItem->GetValue().GetBlue()) );
+            rOutput.WriteNumber( static_cast<sal_uInt32>(color.GetBlue()) );
         }
         rOutput << ';';
     }
@@ -785,7 +795,11 @@ void ImpEditEngine::WriteItemAsRTF( const SfxPoolItem& rItem, SvStream& rOutput,
         break;
         case EE_CHAR_COLOR:
         {
-            sal_uInt32 n = rColorList.GetId( (const SvxColorItem&)rItem );
+            SvxColorList::const_iterator const iter = ::std::find(
+                    rColorList.begin(), rColorList.end(),
+                    static_cast<SvxColorItem const&>(rItem).GetValue());
+            assert(iter != rColorList.end());
+            sal_uInt32 const n = iter - rColorList.begin();
             rOutput << OOO_STRING_SVTOOLS_RTF_CF;
             rOutput.WriteNumber( n );
         }
commit 9bc93edccb3a739e06704d11dd9363e4227ab875
Author: Luboš Luňák <l.lunak at collabora.com>
Date:   Sat May 24 00:36:06 2014 +0200

    discard more header/footer stuff when discarding headers/footers (bnc#875718)
    
    782adba4d436c65cdf85d48f28486321873b15ed discards unneeded headers/footers,
    but only the text, not e.g. frames or fields. The test document therefore
    ends up with a frame with a page number inside the body text, because the text
    in the footer it should be anchored to was discarded. This commit fixes
    this by discarding more (although probably the whole header/footer
    shouldn't even be parsed to begin with).
    
    The test from b349d2483e1fe64316d87b55d0b3b4c8f2293e2e actually checked
    for this incorrect frame, so change that (the whole test is suspicious, as
    the end result is quite far away from what the original doc looks like).
    
    (cherry picked from commit 5510f563502168defa4ccfc54214d781a7c92868)
    Signed-off-by: Andras Timar <andras.timar at collabora.com>
    
    Conflicts:
    	sw/qa/extras/ooxmlexport/ooxmlexport.cxx
    	sw/qa/extras/ooxmlimport/ooxmlimport.cxx
    
    Change-Id: I2e7192e00237db1f030d0524c5667fe92c9e496b

diff --git a/sw/qa/extras/ooxmlimport/data/bnc875718.docx b/sw/qa/extras/ooxmlimport/data/bnc875718.docx
new file mode 100644
index 0000000..878a46f
Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/bnc875718.docx differ
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
index 6c2f3a7..7f7078c 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
@@ -1654,6 +1654,29 @@ DECLARE_OOXMLIMPORT_TEST(testFdo55381, "fdo55381.docx")
     CPPUNIT_ASSERT_EQUAL(sal_Int16(4), xCursor->getPage());
 }
 
+DECLARE_OOXMLIMPORT_TEST(testBnc875718, "bnc875718.docx")
+{
+    // The frame in the footer must not accidentally end up in the document body.
+    // The easiest way for this to test I've found is checking that
+    // xray ThisComponent.TextFrames.GetByIndex( index ).Anchor.Text.ImplementationName
+    // is not SwXBodyText but rather SwXHeadFootText
+    uno::Reference<text::XTextFramesSupplier> xTextFramesSupplier(mxComponent, uno::UNO_QUERY);
+    uno::Reference<container::XIndexAccess> xIndexAccess(xTextFramesSupplier->getTextFrames(), uno::UNO_QUERY);
+    for( int i = 0;
+         i < xIndexAccess->getCount();
+         ++i )
+    {
+        uno::Reference<text::XTextFrame> frame(xIndexAccess->getByIndex( i ), uno::UNO_QUERY);
+        uno::Reference<text::XTextRange> range(frame->getAnchor(), uno::UNO_QUERY);
+        uno::Reference<lang::XServiceInfo> text(range->getText(), uno::UNO_QUERY);
+        CPPUNIT_ASSERT_EQUAL( OUString( "SwXHeadFootText" ), text->getImplementationName());
+    }
+    // Also check that the footer contents are not in the body text.
+    uno::Reference<text::XTextDocument> textDocument(mxComponent, uno::UNO_QUERY);
+    uno::Reference<text::XText> text(textDocument->getText(), uno::UNO_QUERY);
+    CPPUNIT_ASSERT_EQUAL( OUString( "Text\n" ), text->getString());
+}
+
 #endif
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 9659627..893d93e 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -2291,6 +2291,8 @@ uno::Reference< beans::XPropertySet > DomainMapper_Impl::FindOrCreateFieldMaster
   -----------------------------------------------------------------------*/
 void DomainMapper_Impl::PushFieldContext()
 {
+    if(m_bDiscardHeaderFooter)
+        return;
 #ifdef DEBUG_DOMAINMAPPER
     dmapper_logger->element("pushFieldContext");
 #endif
@@ -2978,6 +2980,8 @@ void DomainMapper_Impl::handleToc
   -----------------------------------------------------------------------*/
 void DomainMapper_Impl::CloseFieldCommand()
 {
+    if(m_bDiscardHeaderFooter)
+        return;
 #ifdef DEBUG_DOMAINMAPPER
     dmapper_logger->element("closeFieldCommand");
 #endif
@@ -3658,6 +3662,8 @@ void DomainMapper_Impl::SetFieldFFData(FFDataHandler::Pointer_t pFFDataHandler)
   -----------------------------------------------------------------------*/
 void DomainMapper_Impl::PopFieldContext()
 {
+    if(m_bDiscardHeaderFooter)
+        return;
 #ifdef DEBUG_DOMAINMAPPER
     dmapper_logger->element("popFieldContext");
 #endif
@@ -3961,7 +3967,7 @@ void DomainMapper_Impl::RegisterFrameConversion(
 bool DomainMapper_Impl::ExecuteFrameConversion()
 {
     bool bRet = false;
-    if( m_xFrameStartRange.is() && m_xFrameEndRange.is() )
+    if( m_xFrameStartRange.is() && m_xFrameEndRange.is() && !m_bDiscardHeaderFooter )
     {
         bRet = true;
         try
@@ -3977,10 +3983,10 @@ bool DomainMapper_Impl::ExecuteFrameConversion()
             SAL_WARN( "writerfilter", "Exception caught when converting to frame: " + rEx.Message );
             bRet = false;
         }
-        m_xFrameStartRange = 0;
-        m_xFrameEndRange = 0;
-        m_aFrameProperties.realloc( 0 );
     }
+    m_xFrameStartRange = 0;
+    m_xFrameEndRange = 0;
+    m_aFrameProperties.realloc( 0 );
     return bRet;
 }
 
commit 46890f289592257673ba38b95cbd3759f09d04d7
Author: Eike Rathke <erack at redhat.com>
Date:   Tue May 27 19:28:36 2014 +0200

    do not replace a General format with a General format
    
    Found when investigating fdo#79228 which was caused by the ScPatternAttr
    change due to the number format being applied.
    
    Change-Id: Ieada557f5e194401a9ce255f26d71d36e0704f35
    (cherry picked from commit f68eed1518fe689fe8a535bebc8d2b6c9f257b9c)
    Reviewed-on: https://gerrit.libreoffice.org/9511
    Tested-by: Kohei Yoshida <libreoffice at kohei.us>
    Reviewed-by: Kohei Yoshida <libreoffice at kohei.us>

diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx
index 3f3b18b..d4324a3 100644
--- a/sc/source/core/data/formulacell.cxx
+++ b/sc/source/core/data/formulacell.cxx
@@ -1672,10 +1672,21 @@ void ScFormulaCell::InterpretTail( ScInterpretTailParameter eTailParam )
                 nFormatIndex = ScGlobal::GetStandardFormat(*pDocument->GetFormatTable(),
                         nFormatIndex, nFormatType);
 
-            // set number format explicitly
-            pDocument->SetNumberFormat( aPos, nFormatIndex );
+            // Do not replace a General format (which was the reason why
+            // mbNeedsNumberFormat was set) with a General format.
+            // 1. setting a format has quite some overhead in the
+            // ScPatternAttr/ScAttrArray handling, even if identical.
+            // 2. the General formats may be of different locales.
+            // XXX if mbNeedsNumberFormat was set even if the current format
+            // was not General then we'd have to obtain the current format here
+            // and check at least the types.
+            if ((nFormatIndex % SV_COUNTRY_LANGUAGE_OFFSET) != 0)
+            {
+                // set number format explicitly
+                pDocument->SetNumberFormat( aPos, nFormatIndex );
+                bChanged = true;
+            }
 
-            bChanged = true;
             mbNeedsNumberFormat = false;
         }
 
commit 35fe58f8dee2ed15cfa3e37a9a83fbc548813ca0
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu May 29 10:45:39 2014 +0100

    Resolves: fdo#79392 don't access after last row, when last row is max last row
    
    Change-Id: I06749af90bed6a43f3fb6b3b5ceb61d5fbbc7c02
    (cherry picked from commit a35d92197d850527bd294eb6197b5bf83109d5be)
    Reviewed-on: https://gerrit.libreoffice.org/9546
    Reviewed-by: Kohei Yoshida <libreoffice at kohei.us>
    Tested-by: Kohei Yoshida <libreoffice at kohei.us>

diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index c7b157e..c311e37 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -236,19 +236,22 @@ void ScColumn::DeleteRow( SCROW nStartRow, SCSIZE nSize )
 
     // Check if there are any cells below the end row that will get shifted.
     bool bShiftCells = false;
-    aPos = maCells.position(itCell, nEndRow+1);
-    itCell = aPos.first;
-    if (itCell->type == sc::element_type_empty)
+    if (nEndRow < MAXROWCOUNT-1) //only makes sense to do this if there *is* a row after the end row
     {
-        // This block is empty. See if there is any block that follows.
-        sc::CellStoreType::iterator itTest = itCell;
-        ++itTest;
-        if (itTest != maCells.end())
-            // Non-empty block follows -> cells that will get shifted.
+        aPos = maCells.position(itCell, nEndRow+1);
+        itCell = aPos.first;
+        if (itCell->type == sc::element_type_empty)
+        {
+            // This block is empty. See if there is any block that follows.
+            sc::CellStoreType::iterator itTest = itCell;
+            ++itTest;
+            if (itTest != maCells.end())
+                // Non-empty block follows -> cells that will get shifted.
+                bShiftCells = true;
+        }
+        else
             bShiftCells = true;
     }
-    else
-        bShiftCells = true;
 
     sc::SingleColumnSpanSet aNonEmptySpans;
     if (bShiftCells)
commit 3435ecb8ec2d06509a22df20c6c61e5cd391826e
Author: Thomas Arnhold <thomas at arnhold.org>
Date:   Wed May 28 08:57:54 2014 +0200

    Resolves: fdo#71616 Elements dock: Better display of scalable braces
    
    Change-Id: I2255be738aa2230b4102030891026f1f9ad2c38f
    Reviewed-on: https://gerrit.libreoffice.org/9525
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/starmath/source/ElementsDockingWindow.cxx b/starmath/source/ElementsDockingWindow.cxx
index 45672dd..aa49662 100644
--- a/starmath/source/ElementsDockingWindow.cxx
+++ b/starmath/source/ElementsDockingWindow.cxx
@@ -508,6 +508,33 @@ void SmElementsControl::addElements(const sal_uInt16 aElementsArray[][2], sal_uI
                 addElement("\"" + SM_RESSTR(STR_ALIGN_CENTER) + "\"", SM_RESSTR(aElementId), SM_RESSTR(aElementIdHelp));
             else if (aElementId == RID_ALIGNRX)
                 addElement("\"" + SM_RESSTR(STR_ALIGN_RIGHT) + "\"", SM_RESSTR(aElementId), SM_RESSTR(aElementIdHelp));
+
+            else if (aElementId == RID_SLRPARENTX)
+                addElement("left ( binom{<?>}{<?>} right ) ", SM_RESSTR(aElementId), SM_RESSTR(aElementIdHelp));
+            else if (aElementId == RID_SLRBRACKETX)
+                addElement("left [ binom{<?>}{<?>} right ] ", SM_RESSTR(aElementId), SM_RESSTR(aElementIdHelp));
+            else if (aElementId == RID_SLRDBRACKETX)
+                addElement("left ldbracket binom{<?>}{<?>} right rdbracket ", SM_RESSTR(aElementId), SM_RESSTR(aElementIdHelp));
+            else if (aElementId == RID_SLRBRACEX)
+                addElement("left lbrace binom{<?>}{<?>} right rbrace ", SM_RESSTR(aElementId), SM_RESSTR(aElementIdHelp));
+            else if (aElementId == RID_SLRANGLEX)
+                addElement("left langle binom{<?>}{<?>} right rangle ", SM_RESSTR(aElementId), SM_RESSTR(aElementIdHelp));
+            else if (aElementId == RID_SLRCEILX)
+                addElement("left lceil binom{<?>}{<?>} right rceil ", SM_RESSTR(aElementId), SM_RESSTR(aElementIdHelp));
+            else if (aElementId == RID_SLRFLOORX)
+                addElement("left lfloor binom{<?>}{<?>} right rfloor ", SM_RESSTR(aElementId), SM_RESSTR(aElementIdHelp));
+
+            else if (aElementId == RID_SLRLINEX)
+                addElement("left lline binom{<?>}{<?>} right rline ", SM_RESSTR(aElementId), SM_RESSTR(aElementIdHelp));
+            else if (aElementId == RID_SLRDLINEX)
+                addElement("left ldline binom{<?>}{<?>} right rdline ", SM_RESSTR(aElementId), SM_RESSTR(aElementIdHelp));
+            else if (aElementId == RID_SLMRANGLEXY)
+                addElement("left langle binom{<?>}{<?>} mline binom{<?>}{<?>} right rangle ", SM_RESSTR(aElementId), SM_RESSTR(aElementIdHelp));
+
+            else if (aElementId == RID_XOVERBRACEY)
+                addElement("{<?><?><?>} overbrace {<?>} ", SM_RESSTR(aElementId), SM_RESSTR(aElementIdHelp));
+            else if (aElementId == RID_XUNDERBRACEY)
+                addElement("{<?><?><?>} underbrace {<?>} ", SM_RESSTR(aElementId), SM_RESSTR(aElementIdHelp));
             else
                 addElement(SM_RESSTR(aElementId), SM_RESSTR(aElementId), SM_RESSTR(aElementIdHelp));
         }
commit 3abde35bea180277afaebdd64c4d5865acdf400c
Author: László Németh <nemeth at numbertext.org>
Date:   Thu May 29 08:35:07 2014 +0200

    fdo#79372 fix hyphenation (remove fdo#56392 fix, except hard hyphen part)
    
    Change-Id: Ia2f482fb7737e61cfc42966dbc7af6e1cdb3b41d
    Reviewed-on: https://gerrit.libreoffice.org/9544
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/i18npool/source/breakiterator/breakiterator_unicode.cxx b/i18npool/source/breakiterator/breakiterator_unicode.cxx
index 3bb2e3e..b2d99d2 100644
--- a/i18npool/source/breakiterator/breakiterator_unicode.cxx
+++ b/i18npool/source/breakiterator/breakiterator_unicode.cxx
@@ -372,29 +372,13 @@ LineBreakResults SAL_CALL BreakIterator_Unicode::getLineBreak(
         if (line.aBreakIterator->preceding(nStartPos + 1) == nStartPos) { //Line boundary break
             lbr.breakIndex = nStartPos;
             lbr.breakType = BreakType::WORDBOUNDARY;
-        } else if (hOptions.rHyphenator.is()) { //Hyphenation break
-            sal_Int32 boundary_with_punctuation = (line.aBreakIterator->next() != BreakIterator::DONE) ? line.aBreakIterator->current() : 0;
-            line.aBreakIterator->preceding(nStartPos + 1); // reset to check correct hyphenation of "word-word"
-
-            sal_Int32 nStartPosWordEnd = nStartPos;
-            while (line.aBreakIterator->current() < nStartPosWordEnd && u_ispunct((sal_uInt32)Text[nStartPosWordEnd])) // starting punctuation
-                nStartPosWordEnd --;
-
-            Boundary wBoundary = getWordBoundary( Text, nStartPosWordEnd, rLocale,
+        } else if (hOptions.rHyphenator.is()) { //Hyphenation break, FIXME: fdo#56392
+            Boundary wBoundary = getWordBoundary( Text, nStartPos, rLocale,
                 WordType::DICTIONARY_WORD, false);
-
-            nStartPosWordEnd = wBoundary.endPos;
-            while (nStartPosWordEnd < Text.getLength() && (u_ispunct((sal_uInt32)Text[nStartPosWordEnd]))) // ending punctuation
-                nStartPosWordEnd ++;
-            nStartPosWordEnd = nStartPosWordEnd - wBoundary.endPos;
-            if (hOptions.hyphenIndex - wBoundary.startPos < nStartPosWordEnd) nStartPosWordEnd = hOptions.hyphenIndex - wBoundary.startPos;
-#define SPACE 0x0020
-            while (boundary_with_punctuation > wBoundary.endPos && Text[--boundary_with_punctuation] == SPACE);
-            if (boundary_with_punctuation != 0) boundary_with_punctuation += 1 - wBoundary.endPos;
             uno::Reference< linguistic2::XHyphenatedWord > aHyphenatedWord;
             aHyphenatedWord = hOptions.rHyphenator->hyphenate(Text.copy(wBoundary.startPos,
                         wBoundary.endPos - wBoundary.startPos), rLocale,
-                    (sal_Int16) (hOptions.hyphenIndex - wBoundary.startPos - nStartPosWordEnd), hOptions.aHyphenationOptions);
+                    (sal_Int16) (hOptions.hyphenIndex - wBoundary.startPos), hOptions.aHyphenationOptions);
             if (aHyphenatedWord.is()) {
                 lbr.rHyphenatedWord = aHyphenatedWord;
                 if(wBoundary.startPos + aHyphenatedWord->getHyphenationPos() + 1 < nMinBreakPos )
commit fb1abe4af9ffcfb2e17f9b6d0cd9125b5cb0cd0c
Author: Andrzej Hunt <andrzej.hunt at collabora.com>
Date:   Wed May 28 18:43:37 2014 +0100

    fdo#78801 fdo#52547 Paste preference is image, then html, then text.
    
    c47db038f98aaf7aec3cbe57c4e5683591afa23e was an attempt to fix fdo#52547,
    i.e. to make sure that the actual image data was stored if an image was
    being pasted from a browser (where the clipboard contains both image data,
    but also an html construct which would instead embed the image from the
    web). However the new ordering inadvertently meant that strings would
    be preferred to html -- i.e. copying a mixture of text+image from a
    webpage would result in only the text being stored.
    
    The new ordering causes images copied from the browser to still have
    the actual image data stored (rather than a link in the case of the
    html being stored), but html is still preferred to plaint text.
    
    (This is primarily as a result of Firefox (and possibly other browsers)
    changing their clipboard to contain an html construct which links to the
    original image, in addition to the raw image data-- and html previously
    being preferred to images in the paste ordering meant that the linked
    version would be pasted by default, which is not the expected result
    when copying an image.)
    
    Change-Id: Ice9b37cf3dd25d8cdb0e04f19a6b2f3661018564
    (cherry picked from commit 538c13f3d1756f2d105115f64ab1bc0b7426eebc)
    Reviewed-on: https://gerrit.libreoffice.org/9533
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sot/source/base/formats.cxx b/sot/source/base/formats.cxx
index 8596333..1f20c24 100644
--- a/sot/source/base/formats.cxx
+++ b/sot/source/base/formats.cxx
@@ -857,20 +857,20 @@ static SotAction_Impl const aEXCHG_DEST_SWDOC_FREE_AREA_Copy[] =  \
         { SOT_FORMATSTR_ID_SD_OLE, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
         { SOT_FORMATSTR_ID_EMBED_SOURCE, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },     \
         { SOT_FORMATSTR_ID_EMBEDDED_OBJ, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },     \
+        { SOT_FORMAT_GDIMETAFILE, EXCHG_OUT_ACTION_INSERT_GDIMETAFILE | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
+        { SOT_FORMATSTR_ID_PNG, EXCHG_OUT_ACTION_INSERT_BITMAP | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
+        { SOT_FORMAT_BITMAP, EXCHG_OUT_ACTION_INSERT_BITMAP | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
+        { SOT_FORMATSTR_ID_HTML, EXCHG_OUT_ACTION_INSERT_HTML | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
+        { SOT_FORMATSTR_ID_HTML_NO_COMMENT, EXCHG_OUT_ACTION_INSERT_HTML | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
+        { SOT_FORMATSTR_ID_HTML_SIMPLE, EXCHG_OUT_ACTION_INSERT_HTML | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
         { SOT_FORMAT_RTF, EXCHG_IN_ACTION_COPY | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },                           \
         { SOT_FORMATSTR_ID_NETSCAPE_IMAGE, EXCHG_IN_ACTION_COPY | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },          \
         { SOT_FORMAT_STRING, EXCHG_OUT_ACTION_INSERT_STRING | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },              \
         { SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK, EXCHG_OUT_ACTION_INSERT_HYPERLINK | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
         { SOT_FORMATSTR_ID_FILEGRPDESCRIPTOR, EXCHG_OUT_ACTION_INSERT_HYPERLINK | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, FILEGRPDSC_ONLY_URL },\
         { SOT_FORMATSTR_ID_UNIFORMRESOURCELOCATOR, EXCHG_OUT_ACTION_INSERT_HYPERLINK | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
-        { SOT_FORMAT_GDIMETAFILE, EXCHG_OUT_ACTION_INSERT_GDIMETAFILE | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
-        { SOT_FORMATSTR_ID_PNG, EXCHG_OUT_ACTION_INSERT_BITMAP | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
-        { SOT_FORMAT_BITMAP, EXCHG_OUT_ACTION_INSERT_BITMAP | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
         { SOT_FORMATSTR_ID_EMBED_SOURCE_OLE, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 }, \
         { SOT_FORMATSTR_ID_EMBEDDED_OBJ_OLE, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 }, \
-        { SOT_FORMATSTR_ID_HTML, EXCHG_OUT_ACTION_INSERT_HTML | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
-        { SOT_FORMATSTR_ID_HTML_NO_COMMENT, EXCHG_OUT_ACTION_INSERT_HTML | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
-        { SOT_FORMATSTR_ID_HTML_SIMPLE, EXCHG_OUT_ACTION_INSERT_HTML | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
         { SOT_FORMATSTR_ID_LINK, EXCHG_OUT_ACTION_INSERT_DDE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },             \
         { SOT_FORMATSTR_ID_SVIM, EXCHG_OUT_ACTION_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },        \
         { 0xffff, 0, 0 }                                                          \
@@ -1036,18 +1036,18 @@ static SotAction_Impl const aEXCHG_DEST_SCDOC_FREE_AREA_Copy[] =  \
         { SOT_FORMATSTR_ID_EMBEDDED_OBJ, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },     \
         { SOT_FORMATSTR_ID_BIFF_5, EXCHG_IN_ACTION_COPY | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },                  \
         { SOT_FORMATSTR_ID_BIFF__5,EXCHG_IN_ACTION_COPY | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },                  \
-        { SOT_FORMAT_STRING, EXCHG_OUT_ACTION_INSERT_STRING | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },              \
-        { SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK, EXCHG_OUT_ACTION_INSERT_HYPERLINK | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
-        { SOT_FORMATSTR_ID_FILEGRPDESCRIPTOR, EXCHG_OUT_ACTION_INSERT_HYPERLINK | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, FILEGRPDSC_ONLY_URL },\
-        { SOT_FORMATSTR_ID_UNIFORMRESOURCELOCATOR, EXCHG_OUT_ACTION_INSERT_HYPERLINK | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
         { SOT_FORMAT_GDIMETAFILE, EXCHG_OUT_ACTION_INSERT_GDIMETAFILE | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
         { SOT_FORMATSTR_ID_PNG, EXCHG_OUT_ACTION_INSERT_BITMAP | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
         { SOT_FORMAT_BITMAP, EXCHG_OUT_ACTION_INSERT_BITMAP | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
-        { SOT_FORMATSTR_ID_EMBED_SOURCE_OLE, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 }, \
-        { SOT_FORMATSTR_ID_EMBEDDED_OBJ_OLE, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 }, \
         { SOT_FORMATSTR_ID_HTML, EXCHG_OUT_ACTION_INSERT_HTML | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
         { SOT_FORMATSTR_ID_HTML_NO_COMMENT, EXCHG_OUT_ACTION_INSERT_HTML | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
         { SOT_FORMATSTR_ID_HTML_SIMPLE, EXCHG_OUT_ACTION_INSERT_HTML | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
+        { SOT_FORMAT_STRING, EXCHG_OUT_ACTION_INSERT_STRING | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },              \
+        { SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK, EXCHG_OUT_ACTION_INSERT_HYPERLINK | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
+        { SOT_FORMATSTR_ID_FILEGRPDESCRIPTOR, EXCHG_OUT_ACTION_INSERT_HYPERLINK | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, FILEGRPDSC_ONLY_URL },\
+        { SOT_FORMATSTR_ID_UNIFORMRESOURCELOCATOR, EXCHG_OUT_ACTION_INSERT_HYPERLINK | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
+        { SOT_FORMATSTR_ID_EMBED_SOURCE_OLE, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 }, \
+        { SOT_FORMATSTR_ID_EMBEDDED_OBJ_OLE, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 }, \
         { SOT_FORMATSTR_ID_LINK, EXCHG_OUT_ACTION_INSERT_DDE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },             \
         { SOT_FORMATSTR_ID_SVIM, EXCHG_OUT_ACTION_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },        \
         { SOT_FORMATSTR_ID_BIFF_8, EXCHG_IN_ACTION_COPY | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },                  \
@@ -1126,18 +1126,18 @@ static SotAction_Impl const aEXCHG_DEST_SDDOC_FREE_AREA_Copy[] =  \
         { SOT_FORMATSTR_ID_SD_OLE, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
         { SOT_FORMATSTR_ID_EMBED_SOURCE, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },     \
         { SOT_FORMATSTR_ID_EMBEDDED_OBJ, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },     \
-        { SOT_FORMAT_STRING, EXCHG_OUT_ACTION_INSERT_STRING | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },              \
-        { SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK, EXCHG_OUT_ACTION_INSERT_HYPERLINK | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
-        { SOT_FORMATSTR_ID_FILEGRPDESCRIPTOR, EXCHG_OUT_ACTION_INSERT_HYPERLINK | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, FILEGRPDSC_ONLY_URL },\
-        { SOT_FORMATSTR_ID_UNIFORMRESOURCELOCATOR, EXCHG_OUT_ACTION_INSERT_HYPERLINK | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
         { SOT_FORMAT_GDIMETAFILE, EXCHG_OUT_ACTION_INSERT_GDIMETAFILE | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
         { SOT_FORMATSTR_ID_PNG, EXCHG_OUT_ACTION_INSERT_BITMAP | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
         { SOT_FORMAT_BITMAP, EXCHG_OUT_ACTION_INSERT_BITMAP | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
-          { SOT_FORMATSTR_ID_EMBED_SOURCE_OLE, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 }, \
-          { SOT_FORMATSTR_ID_EMBEDDED_OBJ_OLE, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 }, \
         { SOT_FORMATSTR_ID_HTML, EXCHG_OUT_ACTION_INSERT_HTML | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
         { SOT_FORMATSTR_ID_HTML_NO_COMMENT, EXCHG_OUT_ACTION_INSERT_HTML | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
         { SOT_FORMATSTR_ID_HTML_SIMPLE, EXCHG_OUT_ACTION_INSERT_HTML | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
+        { SOT_FORMAT_STRING, EXCHG_OUT_ACTION_INSERT_STRING | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },              \
+        { SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK, EXCHG_OUT_ACTION_INSERT_HYPERLINK | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
+        { SOT_FORMATSTR_ID_FILEGRPDESCRIPTOR, EXCHG_OUT_ACTION_INSERT_HYPERLINK | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, FILEGRPDSC_ONLY_URL },\
+        { SOT_FORMATSTR_ID_UNIFORMRESOURCELOCATOR, EXCHG_OUT_ACTION_INSERT_HYPERLINK | EXCHG_OUT_ACTION_FLAG_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },\
+        { SOT_FORMATSTR_ID_EMBED_SOURCE_OLE, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 }, \
+        { SOT_FORMATSTR_ID_EMBEDDED_OBJ_OLE, EXCHG_OUT_ACTION_INSERT_OLE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 }, \
         { SOT_FORMATSTR_ID_LINK, EXCHG_OUT_ACTION_INSERT_DDE | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },             \
         { SOT_FORMATSTR_ID_SVIM, EXCHG_OUT_ACTION_INSERT_IMAGEMAP | EXCHG_OUT_ACTION_FLAG_INSERT_TARGETURL, 0 },        \
         { 0xffff, 0, 0 }                                                          \
commit b24f369152142b9154e573740a43fbc6e24045ce
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed May 28 23:05:28 2014 +0200

    fdo#78737: sw: fix setting tab stops via ruler
    
    The SvxRuler binds the SID_ATTR_PARA_LRSPACE, and its indents and the
    positions of tab stops depend on the values it gets from there; in LO
    4.0 the value came from the SwView::StateTabWin() but now it comes from
    SwTextShell::GetAttrState(), and the difference is that the former does
    a special request to get the NumRule indents as LR-space.
    
    (regression from d02f75a8c36705924ddd6a5921fe3012fafce812)
    
    Change-Id: I548ce188655555f2473cb3973ce7aeb927d1a404
    (cherry picked from commit 7c8b2f10310f0f64b111afb3012e82e9c4a690ac)
    Reviewed-on: https://gerrit.libreoffice.org/9538
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/sw/source/ui/shells/txtattr.cxx b/sw/source/ui/shells/txtattr.cxx
index 706df62..7c71cde 100644
--- a/sw/source/ui/shells/txtattr.cxx
+++ b/sw/source/ui/shells/txtattr.cxx
@@ -506,7 +506,9 @@ void SwTextShell::GetAttrState(SfxItemSet &rSet)
     SwWrtShell &rSh = GetShell();
     SfxItemPool& rPool = GetPool();
     SfxItemSet aCoreSet(rPool, aTxtFmtCollSetRange);
-    rSh.GetCurAttr(aCoreSet); // Request *all* text attributes from the core.
+    // Request *all* text attributes from the core.
+    // fdo#78737: this is called from SvxRuler, which requires the list indents!
+    rSh.GetCurAttr(aCoreSet, /* bMergeIndentValuesOfNumRule = */ true);
 
     SfxWhichIter aIter(rSet);
     sal_uInt16 nSlot = aIter.FirstWhich();
commit c7aecc063f92f5aeee56adf1ca5caba19615b169
Author: Thomas Arnhold <thomas at arnhold.org>
Date:   Wed May 28 09:40:40 2014 +0200

    Related fdo#71616: Set correct BaseSize
    
    BaseSize has to be set in 100th mm, otherwise the scalable
    brackets are far too thin.
    
    See starmath/source/cfgitem.cxx:
    
    pFormat->SetBaseSize( Size(0, SmPtsTo100th_mm( nTmp16 )) );
    
    nTmp16 is 12pt -> 422 100th mm (at least for me). Let's reuse that.
    
    Change-Id: I69571ae002f790199ab423955b1635eda42096eb
    Reviewed-on: https://gerrit.libreoffice.org/9524
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/starmath/source/ElementsDockingWindow.cxx b/starmath/source/ElementsDockingWindow.cxx
index dc1a3bb..45672dd 100644
--- a/starmath/source/ElementsDockingWindow.cxx
+++ b/starmath/source/ElementsDockingWindow.cxx
@@ -211,7 +211,7 @@ SmElementsControl::SmElementsControl(Window *pParent, const ResId& rResId) :
     mbVerticalMode(true),
     mpScroll(new ScrollBar(this, WB_VERT))
 {
-    maFormat.SetBaseSize(PixelToLogic(Size(0, 24)));
+    maFormat.SetBaseSize(PixelToLogic(Size(0, SmPtsTo100th_mm(12))));
 
     mpScroll->SetScrollHdl( LINK(this, SmElementsControl, ScrollHdl) );
     mpScroll->Show();
commit 86c5aaeaa3a3cf187ace25dbdb47b3ab01bc0967
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue May 27 12:28:33 2014 +0100

    Resolves: fdo#79275 File Properties dialog’s layout is subpar
    
    Change-Id: I594d93c0630528841a1f243e6b6e9eda67b6138d
    (cherry picked from commit 9b47595a34c0b687cc02290b0a9cbf8508407082)
    Reviewed-on: https://gerrit.libreoffice.org/9507
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/sfx2/uiconfig/ui/documentinfopage.ui b/sfx2/uiconfig/ui/documentinfopage.ui
index d11de2e..fdf6a87 100644
--- a/sfx2/uiconfig/ui/documentinfopage.ui
+++ b/sfx2/uiconfig/ui/documentinfopage.ui
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.16.1 -->
 <interface>
-  <!-- interface-requires gtk+ 3.0 -->
+  <requires lib="gtk+" version="3.0"/>
   <object class="GtkGrid" id="DocumentInfoPage">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
@@ -52,7 +53,7 @@
       </object>
       <packing>
         <property name="left_attach">0</property>
-        <property name="top_attach">9</property>
+        <property name="top_attach">10</property>
         <property name="width">1</property>
         <property name="height">1</property>
       </packing>
@@ -68,7 +69,7 @@
       </object>
       <packing>
         <property name="left_attach">0</property>
-        <property name="top_attach">10</property>
+        <property name="top_attach">11</property>
         <property name="width">1</property>
         <property name="height">1</property>
       </packing>
@@ -84,7 +85,7 @@
       </object>
       <packing>
         <property name="left_attach">0</property>
-        <property name="top_attach">11</property>
+        <property name="top_attach">12</property>
         <property name="width">1</property>
         <property name="height">1</property>
       </packing>
@@ -100,7 +101,7 @@
       </object>
       <packing>
         <property name="left_attach">0</property>
-        <property name="top_attach">12</property>
+        <property name="top_attach">13</property>
         <property name="width">1</property>
         <property name="height">1</property>
       </packing>
@@ -146,7 +147,7 @@
       </object>
       <packing>
         <property name="left_attach">1</property>
-        <property name="top_attach">9</property>
+        <property name="top_attach">10</property>
         <property name="width">1</property>
         <property name="height">1</property>
       </packing>
@@ -161,7 +162,7 @@
       </object>
       <packing>
         <property name="left_attach">1</property>
-        <property name="top_attach">10</property>
+        <property name="top_attach">11</property>
         <property name="width">1</property>
         <property name="height">1</property>
       </packing>
@@ -176,7 +177,7 @@
       </object>
       <packing>
         <property name="left_attach">1</property>
-        <property name="top_attach">11</property>
+        <property name="top_attach">12</property>
         <property name="width">1</property>
         <property name="height">1</property>
       </packing>
@@ -191,18 +192,6 @@
       </object>
       <packing>
         <property name="left_attach">1</property>
-        <property name="top_attach">12</property>
-        <property name="width">1</property>
-        <property name="height">1</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkLabel" id="label26">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-      </object>
-      <packing>
-        <property name="left_attach">1</property>
         <property name="top_attach">13</property>
         <property name="width">1</property>
         <property name="height">1</property>
@@ -215,15 +204,14 @@
         <property name="can_focus">True</property>
         <property name="receives_default">False</property>
         <property name="no_show_all">True</property>
-        <property name="use_action_appearance">False</property>
         <property name="use_underline">True</property>
         <property name="xalign">0</property>
         <property name="draw_indicator">True</property>
       </object>
       <packing>
         <property name="left_attach">0</property>
-        <property name="top_attach">13</property>
-        <property name="width">1</property>
+        <property name="top_attach">14</property>
+        <property name="width">2</property>
         <property name="height">1</property>
       </packing>
     </child>
@@ -238,7 +226,7 @@
       </object>
       <packing>
         <property name="left_attach">2</property>
-        <property name="top_attach">13</property>
+        <property name="top_attach">14</property>
         <property name="width">1</property>
         <property name="height">1</property>
       </packing>
@@ -255,38 +243,7 @@
       </object>
       <packing>
         <property name="left_attach">2</property>
-        <property name="top_attach">9</property>
-        <property name="width">1</property>
-        <property name="height">1</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkLabel" id="templateft">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="xalign">0</property>
-        <property name="label" translatable="yes">Template:</property>
-        <property name="use_underline">True</property>
-        <property name="mnemonic_widget">showtemplate</property>
-      </object>
-      <packing>
-        <property name="left_attach">0</property>
-        <property name="top_attach">15</property>
-        <property name="width">1</property>
-        <property name="height">1</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkLabel" id="showtemplate">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="xalign">0</property>
-        <property name="selectable">True</property>
-        <property name="max_width_chars">56</property>
-      </object>
-      <packing>
-        <property name="left_attach">1</property>
-        <property name="top_attach">15</property>
+        <property name="top_attach">10</property>
         <property name="width">1</property>
         <property name="height">1</property>
       </packing>
@@ -342,11 +299,10 @@
       <object class="GtkLabel" id="showlocation">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
-        <property name="justify">left</property>
-        <property name="selectable">False</property>
-        <property name="max_width_chars">56</property>
-        <property name="wrap">True</property>
         <property name="hexpand">True</property>
+        <property name="xalign">0</property>
+        <property name="wrap">True</property>
+        <property name="max_width_chars">56</property>
       </object>
       <packing>
         <property name="left_attach">1</property>
@@ -404,102 +360,134 @@
       </packing>
     </child>
     <child>
-      <object class="GtkEntry" id="nameed">
+      <object class="GtkLabel" id="label2">
+        <property name="height_request">18</property>
         <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="valign">center</property>
-        <property name="hexpand">True</property>
-        <property name="invisible_char">•</property>
-        <property name="invisible_char_set">True</property>
+        <property name="can_focus">False</property>
       </object>
       <packing>
-        <property name="left_attach">1</property>
-        <property name="top_attach">1</property>
-        <property name="width">1</property>
+        <property name="left_attach">0</property>
+        <property name="top_attach">2</property>
+        <property name="width">3</property>
         <property name="height">1</property>
       </packing>
     </child>
     <child>
-      <object class="GtkImage" id="icon">
+      <object class="GtkLabel" id="label3">
+        <property name="height_request">18</property>
         <property name="visible">True</property>
         <property name="can_focus">False</property>
-        <property name="stock">gtk-missing-image</property>
       </object>
       <packing>
         <property name="left_attach">0</property>
-        <property name="top_attach">1</property>
-        <property name="width">1</property>
+        <property name="top_attach">6</property>
+        <property name="width">3</property>
         <property name="height">1</property>
       </packing>
     </child>
     <child>
-      <object class="GtkLabel" id="label2">
-        <property name="height_request">18</property>
+      <object class="GtkCheckButton" id="readonlycb">
+        <property name="label" translatable="yes">_Read-only</property>
+        <property name="use_action_appearance">False</property>
         <property name="visible">True</property>
-        <property name="can_focus">False</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">False</property>
+        <property name="use_underline">True</property>
+        <property name="xalign">0</property>
+        <property name="draw_indicator">True</property>
       </object>
       <packing>
-        <property name="left_attach">0</property>
-        <property name="top_attach">2</property>
-        <property name="width">3</property>
+        <property name="left_attach">2</property>
+        <property name="top_attach">3</property>
+        <property name="width">1</property>
         <property name="height">1</property>
       </packing>
     </child>
     <child>
-      <object class="GtkLabel" id="label3">
+      <object class="GtkLabel" id="label1">
         <property name="height_request">18</property>
         <property name="visible">True</property>
         <property name="can_focus">False</property>
       </object>
       <packing>
         <property name="left_attach">0</property>
-        <property name="top_attach">6</property>
+        <property name="top_attach">0</property>
         <property name="width">3</property>
         <property name="height">1</property>
       </packing>
     </child>
     <child>
-      <object class="GtkLabel" id="label4">
-        <property name="height_request">18</property>
+      <object class="GtkLabel" id="templateft">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="xalign">0</property>
+        <property name="label" translatable="yes">Template:</property>
+        <property name="use_underline">True</property>
+        <property name="mnemonic_widget">showtemplate</property>
       </object>
       <packing>
         <property name="left_attach">0</property>
-        <property name="top_attach">14</property>
-        <property name="width">3</property>
+        <property name="top_attach">9</property>
+        <property name="width">1</property>
         <property name="height">1</property>
       </packing>
     </child>
     <child>
-      <object class="GtkCheckButton" id="readonlycb">
-        <property name="label" translatable="yes">_Read-only</property>
-        <property name="use_action_appearance">False</property>
+      <object class="GtkLabel" id="showtemplate">
         <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">False</property>
-        <property name="use_action_appearance">False</property>
-        <property name="use_underline">True</property>
+        <property name="can_focus">False</property>
         <property name="xalign">0</property>
-        <property name="draw_indicator">True</property>
+        <property name="selectable">True</property>
+        <property name="max_width_chars">56</property>
       </object>
       <packing>
-        <property name="left_attach">2</property>
-        <property name="top_attach">3</property>
+        <property name="left_attach">1</property>
+        <property name="top_attach">9</property>
         <property name="width">1</property>
         <property name="height">1</property>
       </packing>
     </child>
     <child>
-      <object class="GtkLabel" id="label1">
-        <property name="height_request">18</property>
+      <object class="GtkGrid" id="grid1">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="valign">center</property>
+        <property name="hexpand">True</property>
+        <property name="column_spacing">12</property>
+        <child>
+          <object class="GtkImage" id="icon">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="valign">center</property>
+            <property name="stock">gtk-missing-image</property>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">0</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkEntry" id="nameed">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="valign">center</property>
+            <property name="hexpand">True</property>
+            <property name="invisible_char">•</property>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">0</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
+          </packing>
+        </child>
       </object>
       <packing>
         <property name="left_attach">0</property>
-        <property name="top_attach">0</property>
-        <property name="width">3</property>
+        <property name="top_attach">1</property>
+        <property name="width">2</property>
         <property name="height">1</property>
       </packing>
     </child>
commit 4d8ee97c27f9cb41f4d168c39ddf64793a906246
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue May 27 11:26:54 2014 +0100

    Resolves: fdo#77831 use classic token rules for user-defined char (%foo)
    
    Change-Id: Iebae064986ad722d445c8d654e39e338e104f021
    (cherry picked from commit 501e5b98ad39156cac465a161709ad38b89e3d63)
    Reviewed-on: https://gerrit.libreoffice.org/9497
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/starmath/qa/cppunit/test_nodetotextvisitors.cxx b/starmath/qa/cppunit/test_nodetotextvisitors.cxx
index 99ae4b2..ef95e8d 100644
--- a/starmath/qa/cppunit/test_nodetotextvisitors.cxx
+++ b/starmath/qa/cppunit/test_nodetotextvisitors.cxx
@@ -241,6 +241,7 @@ void Test::SimpleOperators()
     parseandparseagain("llint a", "Double curved integral");
     parseandparseagain("lllint a", "Triple curved integral");
     parseandparseagain("prod from {i=1} to {n} {(i+1)}", "Product with range");
+    ParseAndCheck("%Ux2135", "%Ux2135", "fdo#77831");
 }
 
 void Test::SimpleAttributes()
diff --git a/starmath/source/parse.cxx b/starmath/source/parse.cxx
index 98b579a..e503943 100644
--- a/starmath/source/parse.cxx
+++ b/starmath/source/parse.cxx
@@ -382,6 +382,12 @@ const sal_Int32 coContFlags =
     (coStartFlags & ~KParseTokens::IGNORE_LEADING_WS)
     | KParseTokens::TWO_DOUBLE_QUOTES_BREAK_STRING;
 
+// user-defined char continuing characters may be any alphanumeric or dot.
+const sal_Int32 coUserDefinedCharContFlags =
+    ((KParseTokens::ANY_LETTER_OR_NUMBER | KParseTokens::IGNORE_LEADING_WS | KParseTokens::ASC_DOT)
+        & ~KParseTokens::IGNORE_LEADING_WS)
+    | KParseTokens::TWO_DOUBLE_QUOTES_BREAK_STRING;
+
 // First character for numbers, may be any numeric or dot
 const sal_Int32 coNumStartFlags =
         KParseTokens::ASC_DIGIT |
@@ -651,7 +657,7 @@ void SmParser::NextToken()
                                 m_aBufferString, rnEndPos,
                                 KParseTokens::ANY_LETTER,
                                 aEmptyStr,
-                                coContFlags,
+                                coUserDefinedCharContFlags,
                                 aEmptyStr );
 
                         sal_Int32 nTmpStart = rnEndPos + aTmpRes.LeadingWhiteSpace;
commit 4e6516dac6ce42e70f60e86c4bcf53fbb30123a5
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed May 28 16:19:36 2014 +0100

    coverity#1078626 Missing break in switch
    
    Change-Id: I4b9b846049d9802a319b403e1f45734b7bd604f2
    (cherry picked from commit 4e3e1420af51f7776dceb6b2800b761e57ddfe63)
    Reviewed-on: https://gerrit.libreoffice.org/9529
    Tested-by: Kohei Yoshida <libreoffice at kohei.us>
    Reviewed-by: Kohei Yoshida <libreoffice at kohei.us>

diff --git a/sc/source/core/data/dpgroup.cxx b/sc/source/core/data/dpgroup.cxx
index e5da799..2936939 100644
--- a/sc/source/core/data/dpgroup.cxx
+++ b/sc/source/core/data/dpgroup.cxx
@@ -287,7 +287,7 @@ bool isDateInGroup(const ScDPItemData& rGroupItem, const ScDPItemData& rChildIte
             if (nGroupPart == com::sun::star::sheet::DataPilotFieldGroupBy::QUARTERS)
                 // months and quarters are both 1-based
                 return (nGroupValue - 1 == (nChildValue - 1) / 3);
-
+            break;
         case com::sun::star::sheet::DataPilotFieldGroupBy::DAYS:
             // a day is only contained in its quarter or month
             if (nGroupPart == com::sun::star::sheet::DataPilotFieldGroupBy::MONTHS ||
commit 59832b49a1abb05c67005512a9c8fce6d676a5a5
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Tue May 27 12:09:37 2014 +0200

    fdo#67935 "print on group change" acted as "print in first group instance"
    
    The "parent" group changed iff this is the first iteration of *this*
    group *or* *detail* *section*.
    
    The "parent" group's first iteration means that we are in the first
    value of the parent group (in other words, the *grand*-*parent* group
    changed).
    
    Change-Id: Ia4a798cb37db2f17e7deef1058b25795bfc02648
    Reviewed-on: https://gerrit.libreoffice.org/9498
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormatValueUtility.java b/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormatValueUtility.java
index eca94e6..b4c5180 100644
--- a/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormatValueUtility.java
+++ b/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormatValueUtility.java
@@ -44,6 +44,7 @@ import org.jfree.report.flow.layoutprocessor.LayoutControllerUtil;
 import org.jfree.report.flow.layoutprocessor.SectionLayoutController;
 import org.jfree.report.structure.Element;
 import org.jfree.report.structure.Group;
+import org.jfree.report.structure.DetailSection;
 
 import org.pentaho.reporting.libraries.formula.lvalues.ContextLookup;
 import org.pentaho.reporting.libraries.formula.lvalues.LValue;
@@ -257,14 +258,14 @@ public class FormatValueUtility
         return true;
     }
 
-    public static boolean isGroupChanged(LayoutController ref)
+    private static boolean isGroupChanged(LayoutController ref)
     {
         // search the group.
-        final SectionLayoutController slc = findGroup(ref);
+        final SectionLayoutController slc = findGroupOrDetail(ref);
         if (slc == null)
         {
-            // Always print the content of the report header and footer and
-            // the page header and footer.
+            // {Page, Report} × {Header, Footer} have no usable iteration count
+            // err on the side of showing them rather than not showing them
             return true;
         }
 
@@ -272,10 +273,9 @@ public class FormatValueUtility
         return slc.getIterationCount() == 0;
     }
 
-    public static SectionLayoutController findGroup(LayoutController ref)
+    private static SectionLayoutController findGroupOrDetail(LayoutController ref)
     {
         LayoutController parent = ref.getParent();
-        boolean skipNext = false;
         while (parent != null)
         {
             if (!(parent instanceof SectionLayoutController))
@@ -286,19 +286,8 @@ public class FormatValueUtility
             {
                 final SectionLayoutController slc = (SectionLayoutController) parent;
                 final Element element = slc.getElement();
-                if (element instanceof OfficeGroupSection)
+                if (!(element instanceof Group || element instanceof DetailSection))
                 {
-                    // This is a header or footer. So we take the next group instead.
-                    skipNext = true;
-                    parent = parent.getParent();
-                }
-                else if (!(element instanceof Group))
-                {
-                    parent = parent.getParent();
-                }
-                else if (skipNext)
-                {
-                    skipNext = false;
                     parent = parent.getParent();
                 }
                 else
commit f842569daef09c409f532d5ee5809589d7af0879
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Tue May 27 12:36:53 2014 +0200

    fdo#67937 "print on group change" defaults to TRUE
    
    Thus it needs to be saved when it is *false*.
    
    Change-Id: I01bae547afe71ede12fb852c1a9040b7e45bf7b9
    Reviewed-on: https://gerrit.libreoffice.org/9499
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/reportdesign/source/filter/xml/xmlExport.cxx b/reportdesign/source/filter/xml/xmlExport.cxx
index 7e5cc8b..cb0bc70 100644
--- a/reportdesign/source/filter/xml/xmlExport.cxx
+++ b/reportdesign/source/filter/xml/xmlExport.cxx
@@ -470,8 +470,8 @@ void ORptExport::exportFormatConditions(const Reference<XReportControlModel>& _x
 void ORptExport::exportReportElement(const Reference<XReportControlModel>& _xReportElement)
 {
     OSL_ENSURE(_xReportElement.is(),"_xReportElement is NULL -> GPF");
-    if ( _xReportElement->getPrintWhenGroupChange() )
-        AddAttribute(XML_NAMESPACE_REPORT, XML_PRINT_WHEN_GROUP_CHANGE, XML_TRUE );
+    if ( !_xReportElement->getPrintWhenGroupChange() )
+        AddAttribute(XML_NAMESPACE_REPORT, XML_PRINT_WHEN_GROUP_CHANGE, XML_FALSE );
 
     if ( !_xReportElement->getPrintRepeatedValues() )
         AddAttribute(XML_NAMESPACE_REPORT, XML_PRINT_REPEATED_VALUES,XML_FALSE);
commit 745c44f39daf642b474761486873fab8b53d7ca3
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue May 27 13:27:37 2014 +0200

    fdo#77454: sw: ww8 import: add heuristic to ignore mangled crop values
    
    Older versions of OOo/LO would mangle negative crop values on round-trip
    of WW8, which now (since the drawing-layer does not ignore them) causes
    the images to be rendered invisible; probably large factors don't make
    sense anyway, so ignore the crop if it's 50x the image size, which
    happens to work for the bugdoc.
    
    Change-Id: I9f36d37e3be27234554bc91e80bfe719b1ce86af
    (cherry picked from commit 7e91dd0a3885ac561aee9cf7907632677b9886c1)
    Reviewed-on: https://gerrit.libreoffice.org/9508
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/filter/ww8/ww8graf.cxx b/sw/source/filter/ww8/ww8graf.cxx
index 8051810..6a29887 100644
--- a/sw/source/filter/ww8/ww8graf.cxx
+++ b/sw/source/filter/ww8/ww8graf.cxx
@@ -1994,8 +1994,14 @@ void SwWW8ImplReader::MapWrapIntoFlyFmt(SvxMSDffImportRec* pRecord,
 static sal_Int32 lcl_ConvertCrop(sal_uInt32 const nCrop, sal_Int32 const nSize)
 {
     // cast to sal_Int32 to handle negative crop properly
-    return ((static_cast<sal_Int32>(nCrop) >> 16) * nSize)
-              + (((nCrop & 0xffff) * nSize) >> 16) ;
+    sal_Int32 const nIntegral(static_cast<sal_Int32>(nCrop) >> 16);
+    // fdo#77454: heuristic to detect mangled values written by old OOo/LO
+    if (abs(nIntegral) >= 50) // FIXME: what's a good cut-off?
+    {
+        SAL_INFO("sw.ww8", "ignoring suspiciously large crop: " << nIntegral);
+        return 0;
+    }
+    return (nIntegral * nSize) + (((nCrop & 0xffff) * nSize) >> 16);
 }
 
 void
commit 07dbf38ddafcfb9cb852a88f3f1005826847c5d4
Author: Thomas Arnhold <thomas at arnhold.org>
Date:   Tue May 27 23:19:53 2014 +0200

    Resolves: fdo#65583 Elements Dock window needs scroll bar
    
    Based on the patch on Bugzilla by
    Marcos Paulo de Souza <marcos.souza.org at gmail.com>
    
    Includes b521c754cba4ef96cf02e0d8913ffcf14fe168d4
    
    Conflicts:
    	starmath/source/ElementsDockingWindow.cxx
    
    Change-Id: I215b83894f228b1cc8908f98858b85c8d5378ddb
    Reviewed-on: https://gerrit.libreoffice.org/9526
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/starmath/inc/ElementsDockingWindow.hxx b/starmath/inc/ElementsDockingWindow.hxx
index ac2f3b4..2a726c4 100644
--- a/starmath/inc/ElementsDockingWindow.hxx
+++ b/starmath/inc/ElementsDockingWindow.hxx
@@ -16,11 +16,14 @@
  *   except in compliance with the License. You may obtain a copy of
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
+
 #ifndef INCLUDED_STARMATH_INC_ELEMENTSDOCKINGWINDOW_HXX
 #define INCLUDED_STARMATH_INC_ELEMENTSDOCKINGWINDOW_HXX
 
+#include <boost/scoped_ptr.hpp>
 #include <sfx2/dockwin.hxx>
 #include <svx/dlgctrl.hxx>
+#include <vcl/scrbar.hxx>
 
 #include <document.hxx>
 #include <node.hxx>
@@ -67,7 +70,6 @@ public:
 
 class SmElementsControl : public Control
 {
-
     static const sal_uInt16 aUnaryBinaryOperatorsList[][2];
     static const sal_uInt16 aRelationsList[][2];
     static const sal_uInt16 aSetOperations[][2];
@@ -95,6 +97,7 @@ class SmElementsControl : public Control
     SmElementList maElementList;
     Size          maMaxElementDimensions;
     bool          mbVerticalMode;
+    boost::scoped_ptr< ScrollBar > mpScroll;
 
     void addElement(OUString aElementVisual, OUString aElementSource, OUString aHelpText);
 
@@ -113,6 +116,9 @@ public:
     void setVerticalMode(bool bVertical);
 
     void SetSelectHdl(const Link& rLink)   { aSelectHdlLink = rLink; }
+
+    DECL_LINK( ScrollHdl, void* );
+    void DoScroll(long nDelta);
 };
 
 class SmElementsDockingWindow : public SfxDockingWindow
@@ -151,7 +157,6 @@ protected:
     virtual ~SmElementsDockingWindowWrapper();
 };
 
-
-#endif // _SYMBOLDOCKINGWINDOW_HXX_
+#endif // INCLUDED_STARMATH_INC_ELEMENTSDOCKINGWINDOW_HXX
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/starmath/source/ElementsDockingWindow.cxx b/starmath/source/ElementsDockingWindow.cxx
index eee6938..dc1a3bb 100644
--- a/starmath/source/ElementsDockingWindow.cxx
+++ b/starmath/source/ElementsDockingWindow.cxx
@@ -27,6 +27,7 @@
 
 #include <svl/stritem.hxx>
 #include <sfx2/dispatch.hxx>
+#include <vcl/settings.hxx>
 
 SV_DECL_REF(SmDocShell)
 SV_IMPL_REF(SmDocShell)
@@ -207,9 +208,13 @@ SmElementsControl::SmElementsControl(Window *pParent, const ResId& rResId) :
     Control(pParent, rResId),
     mpDocShell(new SmDocShell(SFXOBJECTSHELL_STD_NORMAL)),
     mpCurrentElement(NULL),
-    mbVerticalMode(true)
+    mbVerticalMode(true),
+    mpScroll(new ScrollBar(this, WB_VERT))
 {
     maFormat.SetBaseSize(PixelToLogic(Size(0, 24)));
+
+    mpScroll->SetScrollHdl( LINK(this, SmElementsControl, ScrollHdl) );
+    mpScroll->Show();
 }
 
 SmElementsControl::~SmElementsControl()
@@ -231,27 +236,34 @@ void SmElementsControl::Paint(const Rectangle&)
     SetLayoutMode( TEXT_LAYOUT_BIDI_LTR );
     SetDigitLanguage( LANGUAGE_ENGLISH );
 
+    bool bOldVisibleState = mpScroll->IsVisible();
+
+    sal_Int32 nScrollbarWidth = bOldVisibleState ? GetSettings().GetStyleSettings().GetScrollBarSize() : 0;
+
+    sal_Int32 nControlWidth = GetOutputSizePixel().Width() - nScrollbarWidth;
+    sal_Int32 nControlHeight = GetOutputSizePixel().Height();
+
     sal_Int32 boxX = maMaxElementDimensions.Width()  + 10;
     sal_Int32 boxY = maMaxElementDimensions.Height() + 10;
 
     sal_Int32 x = 0;
-    sal_Int32 y = 0;
+    sal_Int32 y = -mpScroll->GetThumbPos();
 
     sal_Int32 perLine = 0;
 
     if (mbVerticalMode)
-        perLine = GetOutputSizePixel().Height() / boxY;
+        perLine = nControlHeight / boxY;
     else
-        perLine = GetOutputSizePixel().Width()  / boxX;
+        perLine = nControlWidth / boxX;
 
     if(perLine <= 0) {
         perLine = 1;
     }
 
     if (mbVerticalMode)
-        boxY = GetOutputSizePixel().Height() / perLine;
+        boxY = nControlHeight / perLine;
     else
-        boxX = GetOutputSizePixel().Width() / perLine;
+        boxX = nControlWidth / perLine;
 
     for (sal_uInt16 i = 0; i < maElementList.size() ; i++)
     {
@@ -265,7 +277,7 @@ void SmElementsControl::Paint(const Rectangle&)
 
                 Rectangle aSelectionRectangle(
                     x+5-1, y+5,
-                    x+5+1, GetOutputSizePixel().Height() - 5);
+                    x+5+1, nControlHeight - 5);
 
                 DrawRect(PixelToLogic(aSelectionRectangle));
                 x += 10;
@@ -277,7 +289,7 @@ void SmElementsControl::Paint(const Rectangle&)
 
                 Rectangle aSelectionRectangle(
                     x+5,                              y+5-1,
-                    GetOutputSizePixel().Width() - 5, y+5+1);
+                    nControlWidth - 5, y+5+1);
 
                 DrawRect(PixelToLogic(aSelectionRectangle));
                 y += 10;
@@ -288,7 +300,7 @@ void SmElementsControl::Paint(const Rectangle&)
             Size aSizePixel = LogicToPixel(Size(element->getNode()->GetWidth(), element->getNode()->GetHeight()));
             if(mbVerticalMode)
             {
-                if ( y + boxY > GetOutputSizePixel().Height())
+                if ( y + boxY > nControlHeight)
                 {
                     x += boxX;
                     y = 0;
@@ -296,7 +308,7 @@ void SmElementsControl::Paint(const Rectangle&)
             }
             else
             {
-                if ( x + boxX > GetOutputSizePixel().Width())
+                if ( x + boxX > nControlWidth)
                 {
                     x = 0;
                     y += boxY;
@@ -326,6 +338,26 @@ void SmElementsControl::Paint(const Rectangle&)
         }
     }
 
+    sal_Int32 nTotalControlHeight = y + boxY + mpScroll->GetThumbPos();
+
+    if (nTotalControlHeight > GetOutputSizePixel().Height())
+    {
+        mpScroll->SetRangeMax(nTotalControlHeight);
+        mpScroll->SetPosSizePixel(Point(nControlWidth, 0), Size(nScrollbarWidth, nControlHeight));
+        mpScroll->SetVisibleSize(nControlHeight);
+        mpScroll->Show();
+    }
+    else
+    {
+        mpScroll->SetThumbPos(0);
+        mpScroll->Hide();
+    }
+
+    // If scrollbar visibility changed, we have to go through the
+    // calculation once more, see nScrollbarWidth
+    if (bOldVisibleState != mpScroll->IsVisible())
+        Invalidate();
+
     Pop();
 }
 
@@ -381,6 +413,22 @@ void SmElementsControl::MouseButtonDown(const MouseEvent& rMouseEvent)
     }
 }
 
+IMPL_LINK_NOARG( SmElementsControl, ScrollHdl )
+{
+    DoScroll(mpScroll->GetDelta());
+    return 0;
+}
+
+void SmElementsControl::DoScroll(long nDelta)
+{
+    Point aNewPoint = mpScroll->GetPosPixel();
+    Rectangle aRect(Point(), GetOutputSize());
+    aRect.Right() -= mpScroll->GetSizePixel().Width();
+    Scroll( 0, -nDelta, aRect );
+    mpScroll->SetPosPixel(aNewPoint);
+    Invalidate();
+}
+
 void SmElementsControl::addSeparator()
 {
     SmElementPointer pElement(new SmElementSeparator());
@@ -569,6 +617,8 @@ void SmElementsDockingWindow::ToggleFloatingMode()
 
     if (GetFloatingWindow())
         GetFloatingWindow()->SetMinOutputSizePixel( Size(100, 100) );
+
+    Invalidate();
 }
 
 void SmElementsDockingWindow::EndDocking( const Rectangle& rReactangle, sal_Bool bFloatMode)
commit 32b0b40da50f09412d10c9bdba4f088a145af63d
Author: Eike Rathke <erack at redhat.com>
Date:   Tue May 27 12:31:30 2014 +0200

    resolved rhbz#1101224 do not attempt to obtain names for NULL tabs
    
    This happened when the HTML export via clipboard tried to resolve
    conditional formats, where we have a temporary instance of a document
    containing only the sheet to be exported.
    
    Change-Id: Ic7498a1cab3eabede74773868287a2cc3edef052
    (cherry picked from commit 17979abf4fde202cae231be19a218be3fe27d04c)
    Reviewed-on: https://gerrit.libreoffice.org/9506
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 47164be..2ec7d68 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -259,9 +259,14 @@ std::vector<OUString> ScDocument::GetAllTableNames() const
     TableContainer::const_iterator it = maTabs.begin(), itEnd = maTabs.end();
     for (; it != itEnd; ++it)
     {
+        // Positions need to be preserved for ScCompiler and address convention
+        // context, so still push an empty string for NULL tabs.
         OUString aName;
-        const ScTable& rTab = **it;
-        rTab.GetName(aName);
+        if (*it)
+        {
+            const ScTable& rTab = **it;
+            rTab.GetName(aName);
+        }
         aNames.push_back(aName);
     }
 
commit 5e37d92f34382bdef0c5c8ffd505eb8f4f37f2d8
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue May 27 20:30:19 2014 +0200

    fdo#78332: sw: fix separators in SwDDEFieldType::PutValue()
    
    Setting 3 separators instead of 2 does not work.
    
    (regression from 263153842741d7ce21cc0bf1c5296a55a1138024)
    
    Change-Id: Id0b4649404b8a49a7f89a237c46106bce4e146ff
    (cherry picked from commit 747bcdc14386978f2a98a452e52c8dcc2459d319)
    Reviewed-on: https://gerrit.libreoffice.org/9513
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/core/fields/ddefld.cxx b/sw/source/core/fields/ddefld.cxx
index 9b0bf97..37d6f50 100644
--- a/sw/source/core/fields/ddefld.cxx
+++ b/sw/source/core/fields/ddefld.cxx
@@ -367,7 +367,8 @@ bool SwDDEFieldType::PutValue( const uno::Any& rVal, sal_uInt16 nWhichId )
             {
                 rVal >>= sToken;
             }
-            sNewCmd += sToken + OUString(sfx2::cTokenSeparator);
+            sNewCmd += (i < 2)
+                ? sToken + OUString(sfx2::cTokenSeparator) : sToken;
         }
         SetCmd( sNewCmd );
     }
commit 0c1cd81957ef4aa2436cca0d7a87d964703ec7b5
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Tue May 27 14:47:24 2014 -0400

    fdo#78976: Correct way to determine the end position for matrix check.
    
    Change-Id: Ifd6acd85a9bf33742cb62327a3b8a4320f35d0f3
    (cherry picked from commit 054213e86b8f3b1084474b0447cc7ffaf82178c5)
    Reviewed-on: https://gerrit.libreoffice.org/9512
    Reviewed-by: Eike Rathke <erack at redhat.com>
    Tested-by: Eike Rathke <erack at redhat.com>

diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx
index 9835a6d..5e5cf43 100644
--- a/sc/source/core/data/column.cxx
+++ b/sc/source/core/data/column.cxx
@@ -152,7 +152,7 @@ sal_uInt16 ScColumn::GetBlockMatrixEdges( SCROW nRow1, SCROW nRow2, sal_uInt16 n
         }
 
         size_t nRowsToRead = nRow2 - nRow + 1;
-        size_t nEnd = std::min(it->size, nRowsToRead);
+        size_t nEnd = std::min(it->size, nOffset+nRowsToRead); // last row + 1
         sc::formula_block::const_iterator itCell = sc::formula_block::begin(*it->data);
         std::advance(itCell, nOffset);
         for (size_t i = nOffset; i < nEnd; ++itCell, ++i)
commit c295ea7001feb2a8978c1871b424b73ac9210bc8
Author: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
Date:   Tue May 27 14:02:24 2014 +0200

    fix build-break on windows
    
    ae95cdd2a1708a8e9e114dd9bcf577f57f1f5af3 introduced a check, and did put
    it outside of a #if !defined(WNT) block...
    
    Change-Id: Id200c6f3161d0c6c611e0b1c293adbd060579cd7

diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
index b52f207..4a85aa2 100644

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list