[ooo-build-commit] .: 2 commits - patches/apply.pl.in patches/dev300 patches/evo2 patches/gstreamer patches/mono patches/unittesting patches/vba

Fridrich Strba fridrich at kemper.freedesktop.org
Wed Mar 3 08:58:59 PST 2010


 patches/apply.pl.in                                             |    4 
 patches/dev300/2005-express-stl-remove.diff                     |  180 
 patches/dev300/build-java-target-extensions.diff                |    2 
 patches/dev300/build-java-target.diff                           |   58 
 patches/dev300/buildfix-x86-64-visibility-workaround.diff       |    4 
 patches/dev300/calc-english-func-names-sc.diff                  |   66 
 patches/dev300/calc-enhanced-merge-cells-sc.diff                |  684 -
 patches/dev300/calc-filter-by-date-strip-time.diff              |  184 
 patches/dev300/calc-filter-xml-free-context.diff                |   10 
 patches/dev300/calc-find-replace-empty-cells-sc.diff            |   36 
 patches/dev300/calc-formula-variable-separators-sc.diff         |  234 
 patches/dev300/calc-html-csv-import-force-text-cell.diff        |  108 
 patches/dev300/calc-jump-on-formula-ref-offapi.diff             |   16 
 patches/dev300/calc-jump-on-formula-ref-sc.diff                 |  142 
 patches/dev300/calc-jump-on-formula-ref-vcl.diff                |   42 
 patches/dev300/calc-ods-export-no-more-ushort.diff              |   34 
 patches/dev300/calc-ods-sheet-protection-sc.diff                |  418 
 patches/dev300/calc-perf-flat-segment-tree.diff                 |   40 
 patches/dev300/calc-perf-ods-import-properties.diff             |  146 
 patches/dev300/calc-perf-page-and-manual-breaks.diff            | 1368 +-
 patches/dev300/calc-perf-table-hidden-flags.diff                |  706 -
 patches/dev300/calc-selection-fixed-cursor.diff                 |  143 
 patches/dev300/calc-string-number-decimal.diff                  |   22 
 patches/dev300/calc-subtotal-function-update.diff               |   42 
 patches/dev300/calc-xls-import-slanted-border-oox.diff          |   29 
 patches/dev300/calc-xls-import-slanted-border-sc.diff           |   23 
 patches/dev300/chart-highlight-selection-fix.diff               |   12 
 patches/dev300/chart-subtitle-xls-export.diff                   |   26 
 patches/dev300/configure-fix-lpsolve-depends.diff               |    8 
 patches/dev300/cws-koheicsvimport-sc.diff                       |    4 
 patches/dev300/default-no-startup-wizard.diff                   |   12 
 patches/dev300/desktop-disable-startup-registration.diff        |   18 
 patches/dev300/external-apm-header.diff                         |  194 
 patches/dev300/fit-list-to-size-popup.diff                      |  180 
 patches/dev300/g++44-debug.diff                                 |   50 
 patches/dev300/go-oo-splash.diff                                |    8 
 patches/dev300/go-oo-team.diff                                  |   45 
 patches/dev300/ia64-nss.diff                                    |   26 
 patches/dev300/kde4-oxygen-icons.diff                           |  140 
 patches/dev300/kde4_vcl_fixes.diff                              |  482 
 patches/dev300/layout-disable-experimental.diff                 |   14 
 patches/dev300/link-as-needed.diff                              |  108 
 patches/dev300/linkoo-dev300.diff                               |    2 
 patches/dev300/novell-win32-agfa-monotype-fonts.diff            |   32 
 patches/dev300/novell-win32-odma.diff                           |  795 -
 patches/dev300/oox-calc-export-sotstorage-init.diff             |   27 
 patches/dev300/oox-custom-shape-polygons.diff                   |   78 
 patches/dev300/oox-fix-list-style-apply.diff                    |   21 
 patches/dev300/oox-pptx-export-para-linespacing.diff            |   26 
 patches/dev300/oox-pptx-import-fix-layout.diff                  |   37 
 patches/dev300/oox-pptx-import-fix-transition-auto-advance.diff |   32 
 patches/dev300/oox-smartart-import.diff                         |  765 -
 patches/dev300/oox-tokenmap.string.h.diff                       |    6 
 patches/dev300/oox-xlsx-import-fix-connector-shape.diff         |   30 
 patches/dev300/optional-outplace-ole.diff                       |  326 
 patches/dev300/pptx-filter-as-a-separate-lib.diff               |  119 
 patches/dev300/pptx-fix-connector-crash.diff                    |   32 
 patches/dev300/pptx-gfx-layout-fix.diff                         |   89 
 patches/dev300/redirect-extensions.diff                         |   40 
 patches/dev300/sc-cellformat-icon-toggle.diff                   |  222 
 patches/dev300/sc-overwrite-char-font-attrs.diff                |  548 -
 patches/dev300/sc-print-selected-sheets.diff                    |   81 
 patches/dev300/sfx2-pre-and-postprocess-during-save-load.diff   |   29 
 patches/dev300/slideshow-sound.diff                             |   68 
 patches/dev300/solenv-installer-cleaner-paths.diff              |   36 
 patches/dev300/statusbar-fancy-modified-status-svx.diff         |   42 
 patches/dev300/svtools-emf-fix.diff                             |  225 
 patches/dev300/svx-customshapes-NOOPTFILES.diff                 |   13 
 patches/dev300/svx-text-rotation-fix.diff                       |    6 
 patches/dev300/sw-collapse-empty-table-par-like-html.diff       |  116 
 patches/dev300/sw-no-macro-recorder-in-ui.diff                  |   44 
 patches/dev300/sw-table-join-fix-i99267.diff                    |   18 
 patches/dev300/testtool-more-defaults.diff                      |    6 
 patches/dev300/toolkit-layout-gcc-4.3.2-hack.diff               |   14 
 patches/dev300/ui-desktop-integration.diff                      |   89 
 patches/dev300/unxsplash-rework.diff                            |  241 
 patches/dev300/vbahelper-optionality-fix.diff                   |   53 
 patches/dev300/vcl-better-fallback.diff                         |   12 
 patches/dev300/webdav-locking.diff                              |  849 -
 patches/dev300/wiki-publisher-no-license.diff                   |    8 
 patches/dev300/wmf-mm-text.diff                                 |  102 
 patches/dev300/wpsimport-writerperfect.diff                     |    4 
 patches/dev300/xlsx-filter-as-a-separate-lib-guards.diff        |  164 
 patches/dev300/xlsx-shared-import-and-export.diff               |  202 
 patches/dev300/xlsx-snapshot.diff                               |  709 -
 patches/dev300/xmloff_dis26300_conformance.diff                 |  262 
 patches/evo2/buildfix-evo1-vs-evo2.diff                         |   13 
 patches/gstreamer/gstreamer-config-office.diff                  |   32 
 patches/gstreamer/gstreamer-solenv.diff                         |   11 
 patches/mono/buildfix-testtool-disabled.diff                    |   18 
 patches/mono/mono-climaker-bridgetest.diff                      |   14 
 patches/mono/mono-scp2.diff                                     |   72 
 patches/unittesting/unittesting-vcl.diff                        |   12 
 patches/vba/cws-vbasupportdev300.diff                           | 5143 +++-------
 94 files changed, 7585 insertions(+), 10418 deletions(-)

New commits:
commit f36ea4d07093f0251456110fa5c787159bf8ea89
Author: Fridrich Strba <fridrich.strba at bluewin.ch>
Date:   Wed Mar 3 17:54:32 2010 +0100

    Defuzzing the patches for the GoOoWin32 distro.
    
    * patches/dev300/2005-express-stl-remove.diff:
    * patches/dev300/go-oo-splash.diff:

diff --git a/patches/dev300/2005-express-stl-remove.diff b/patches/dev300/2005-express-stl-remove.diff
index 7247546..de26179 100644
--- a/patches/dev300/2005-express-stl-remove.diff
+++ b/patches/dev300/2005-express-stl-remove.diff
@@ -1,150 +1,150 @@
---- canvas/source/tools/page.cxx	2006-09-17 04:26:19.000000000 +0100
-+++ canvas/source/tools/page.cxx	2006-11-09 21:41:56.062500000 +0000
-@@ -96,7 +96,11 @@ namespace canvas
- 		// currently be deleted. in either case, simply
- 		// remove the reference from our internal storage.
- 		FragmentContainer_t::iterator it(
+--- canvas/source/tools/page.cxx.old	2009-10-07 15:06:51.000000000 +0200
++++ canvas/source/tools/page.cxx	2010-03-03 17:50:44.000000000 +0100
+@@ -91,7 +91,11 @@ namespace canvas
+         // currently be deleted. in either case, simply
+         // remove the reference from our internal storage.
+         FragmentContainer_t::iterator it(
 +#if defined(_MSC_VER) && (_MSC_VER > 1310) && (_MSC_VER < 1500)
 +			remove(
 +#else
- 			std::remove(
+             std::remove(
 +#endif
- 				mpFragments.begin(),mpFragments.end(),pFragment));
- 		mpFragments.erase(it,mpFragments.end());
- 	}
---- canvas/source/tools/pagemanager.cxx	2006-09-17 04:26:32.000000000 +0100
-+++ canvas/source/tools/pagemanager.cxx	2006-11-09 21:43:24.765625000 +0000
-@@ -100,7 +100,11 @@ namespace canvas
- 		// erase the reference to the given fragment from our
- 		// internal container.
- 		FragmentContainer_t::iterator it(
+                 mpFragments.begin(),mpFragments.end(),pFragment));
+         mpFragments.erase(it,mpFragments.end());
+     }
+--- canvas/source/tools/pagemanager.cxx.old	2009-10-07 15:06:51.000000000 +0200
++++ canvas/source/tools/pagemanager.cxx	2010-03-03 17:50:44.000000000 +0100
+@@ -95,7 +95,11 @@ namespace canvas
+         // erase the reference to the given fragment from our
+         // internal container.
+         FragmentContainer_t::iterator it(
 +#if defined(_MSC_VER) && (_MSC_VER > 1310) && (_MSC_VER < 1500)
 +			remove(
 +#else
- 			std::remove(
+             std::remove(
 +#endif
- 				maFragments.begin(),maFragments.end(),pFragment));
- 		maFragments.erase(it,maFragments.end());
+                 maFragments.begin(),maFragments.end(),pFragment));
+         maFragments.erase(it,maFragments.end());
  
---- dbaccess/source/ui/querydesign/QueryTabWinUndoAct.hxx	2006-07-10 16:41:24.000000000 +0100
-+++ dbaccess/source/ui/querydesign/QueryTabWinUndoAct.hxx	2006-11-09 21:54:50.109375000 +0000
-@@ -83,7 +83,11 @@ namespace dbaui
- 		void InsertConnection( OTableConnection* pConnection ) { m_vTableConnection.push_back(pConnection); }
- 		void RemoveConnection( OTableConnection* pConnection ) 
- 		{ 
+--- dbaccess/source/ui/querydesign/QueryTabWinUndoAct.hxx.old	2009-10-07 15:06:13.000000000 +0200
++++ dbaccess/source/ui/querydesign/QueryTabWinUndoAct.hxx	2010-03-03 17:50:44.000000000 +0100
+@@ -78,7 +78,11 @@ namespace dbaui
+         void InsertConnection( OTableConnection* pConnection ) { m_vTableConnection.push_back(pConnection); }
+         void RemoveConnection( OTableConnection* pConnection ) 
+         { 
 +#if defined(_MSC_VER) && (_MSC_VER > 1310) && (_MSC_VER < 1500)
 +			m_vTableConnection.erase(remove(m_vTableConnection.begin(),m_vTableConnection.end(),pConnection),m_vTableConnection.end());
 +#else
- 			m_vTableConnection.erase(::std::remove(m_vTableConnection.begin(),m_vTableConnection.end(),pConnection),m_vTableConnection.end());
+             m_vTableConnection.erase(::std::remove(m_vTableConnection.begin(),m_vTableConnection.end(),pConnection),m_vTableConnection.end());
 +#endif
- 		}
- 	};
+         }
+     };
  
---- dbaccess/source/ui/querydesign/JoinController.cxx	2006-09-17 08:20:17.000000000 +0100
-+++ dbaccess/source/ui/querydesign/JoinController.cxx	2006-11-09 21:52:57.781250000 +0000
-@@ -436,7 +436,11 @@ void OJoinController::SaveTabWinsPosSize
+--- dbaccess/source/ui/querydesign/JoinController.cxx.old	2009-10-08 16:17:07.000000000 +0200
++++ dbaccess/source/ui/querydesign/JoinController.cxx	2010-03-03 17:50:44.000000000 +0100
+@@ -426,7 +426,11 @@ void OJoinController::SaveTabWinsPosSize
  // -----------------------------------------------------------------------------
  void OJoinController::removeConnectionData(const TTableConnectionData::value_type& _pData)
  {
 +#if defined(_MSC_VER) && (_MSC_VER > 1310) && (_MSC_VER < 1500)
 +	m_vTableConnectionData.erase( remove(m_vTableConnectionData.begin(),m_vTableConnectionData.end(),_pData),m_vTableConnectionData.end());
 +#else
- 	m_vTableConnectionData.erase( ::std::remove(m_vTableConnectionData.begin(),m_vTableConnectionData.end(),_pData),m_vTableConnectionData.end());
+     m_vTableConnectionData.erase( ::std::remove(m_vTableConnectionData.begin(),m_vTableConnectionData.end(),_pData),m_vTableConnectionData.end());
 +#endif
  }
  // -----------------------------------------------------------------------------
  void OJoinController::describeSupportedFeatures()
---- dbaccess/source/ui/querydesign/QueryTableView.cxx	2006-09-17 08:23:21.000000000 +0100
-+++ dbaccess/source/ui/querydesign/QueryTableView.cxx	2006-11-09 21:57:24.671875000 +0000
-@@ -379,8 +379,11 @@ void OQueryTableView::ReSync()
- 			pTabWin->clearListBox();
- 			delete pTabWin;
- 			arrInvalidTables.push_back(pData->GetAliasName());
+--- dbaccess/source/ui/querydesign/QueryTableView.cxx.old	2009-10-08 16:17:07.000000000 +0200
++++ dbaccess/source/ui/querydesign/QueryTableView.cxx	2010-03-03 17:50:44.000000000 +0100
+@@ -373,8 +373,11 @@ void OQueryTableView::ReSync()
+             pTabWin->clearListBox();
+             delete pTabWin;
+             arrInvalidTables.push_back(pData->GetAliasName());
 -
 +#if defined(_MSC_VER) && (_MSC_VER > 1310) && (_MSC_VER < 1500)
 +			pTabWinDataList->erase( remove(pTabWinDataList->begin(),pTabWinDataList->end(),*aIter) ,pTabWinDataList->end());
 +#else
- 			pTabWinDataList->erase( ::std::remove(pTabWinDataList->begin(),pTabWinDataList->end(),*aIter) ,pTabWinDataList->end());
+             pTabWinDataList->erase( ::std::remove(pTabWinDataList->begin(),pTabWinDataList->end(),*aIter) ,pTabWinDataList->end());
 +#endif
- 			continue;
- 		}
+             continue;
+         }
  
-@@ -409,7 +412,11 @@ void OQueryTableView::ReSync()
+@@ -402,7 +405,11 @@ void OQueryTableView::ReSync()
  
- 		if (bInvalid)
- 		{	// nein -> Pech gehabt, die Connection faellt weg
+         if (bInvalid)
+         {	// nein -> Pech gehabt, die Connection faellt weg
 +#if defined(_MSC_VER) && (_MSC_VER > 1310) && (_MSC_VER < 1500)
 +			pTabConnDataList->erase( remove(pTabConnDataList->begin(),pTabConnDataList->end(),*aConIter) ,pTabConnDataList->end());
 +#else
- 			pTabConnDataList->erase( ::std::remove(pTabConnDataList->begin(),pTabConnDataList->end(),*aConIter) ,pTabConnDataList->end());
+             pTabConnDataList->erase( ::std::remove(pTabConnDataList->begin(),pTabConnDataList->end(),*aConIter) ,pTabConnDataList->end());
 +#endif
- 			continue;
- 		}
+             continue;
+         }
  
-@@ -961,7 +968,11 @@ void OQueryTableView::HideTabWin( OQuery
+@@ -936,7 +943,11 @@ void OQueryTableView::HideTabWin( OQuery
  
- 		// die Daten zum TabWin muessen auch aus meiner Verantwortung entlassen werden
- 		TTableWindowData* pTabWinDataList = m_pView->getController().getTableWindowData();
+         // die Daten zum TabWin muessen auch aus meiner Verantwortung entlassen werden
+         TTableWindowData* pTabWinDataList = m_pView->getController().getTableWindowData();
 +#if defined(_MSC_VER) && (_MSC_VER > 1310) && (_MSC_VER < 1500)
 +		pTabWinDataList->erase( remove(pTabWinDataList->begin(),pTabWinDataList->end(),pTabWin->GetData()),pTabWinDataList->end());
 +#else
- 		pTabWinDataList->erase( ::std::remove(pTabWinDataList->begin(),pTabWinDataList->end(),pTabWin->GetData()),pTabWinDataList->end());
+         pTabWinDataList->erase( ::std::remove(pTabWinDataList->begin(),pTabWinDataList->end(),pTabWin->GetData()),pTabWinDataList->end());
 +#endif
- 			// NICHT loeschen, da ja das TabWin selber - das noch lebt - sie auch noch braucht
- 			// Entweder geht es irgendwann wieder in meine Verantwortung ueber, (ueber ShowTabWin), dann fuege ich
- 			// auch die Daten wieder ein, oder die Undo-Action, die im Augenblick die alleinige Verantwortung fuer das Fenster
---- dbaccess/source/ui/relationdesign/RelationTableView.cxx	2006-09-17 08:28:33.000000000 +0100
-+++ dbaccess/source/ui/relationdesign/RelationTableView.cxx	2006-11-09 22:15:03.406250000 +0000
-@@ -189,8 +189,11 @@ void ORelationTableView::ReSync()
- 			pTabWin->clearListBox();
- 			delete pTabWin;
- 			arrInvalidTables.push_back(pData->GetTableName());
+             // NICHT loeschen, da ja das TabWin selber - das noch lebt - sie auch noch braucht
+             // Entweder geht es irgendwann wieder in meine Verantwortung ueber, (ueber ShowTabWin), dann fuege ich
+             // auch die Daten wieder ein, oder die Undo-Action, die im Augenblick die alleinige Verantwortung fuer das Fenster
+--- dbaccess/source/ui/relationdesign/RelationTableView.cxx.old	2009-10-08 16:17:07.000000000 +0200
++++ dbaccess/source/ui/relationdesign/RelationTableView.cxx	2010-03-03 17:50:44.000000000 +0100
+@@ -149,8 +149,11 @@ void ORelationTableView::ReSync()
+             pTabWin->clearListBox();
+             delete pTabWin;
+             arrInvalidTables.push_back(pData->GetTableName());
 -
 +#if defined(_MSC_VER) && (_MSC_VER > 1310) && (_MSC_VER < 1500)
 +			pTabWinDataList->erase( remove(pTabWinDataList->begin(),pTabWinDataList->end(),*aIter) ,pTabWinDataList->end());
 +#else
- 			pTabWinDataList->erase( ::std::remove(pTabWinDataList->begin(),pTabWinDataList->end(),*aIter) ,pTabWinDataList->end());
+             pTabWinDataList->erase( ::std::remove(pTabWinDataList->begin(),pTabWinDataList->end(),*aIter) ,pTabWinDataList->end());
 +#endif
- 			continue;
- 		}
+             continue;
+         }
  
-@@ -220,7 +223,11 @@ void ORelationTableView::ReSync()
+@@ -179,7 +182,11 @@ void ORelationTableView::ReSync()
  
- 			if (bInvalid)
- 			{	// nein -> Pech gehabt, die Connection faellt weg
+             if (bInvalid)
+             {	// nein -> Pech gehabt, die Connection faellt weg
 +#if defined(_MSC_VER) && (_MSC_VER > 1310) && (_MSC_VER < 1500)
 +				pTabConnDataList->erase( remove(pTabConnDataList->begin(),pTabConnDataList->end(),*aConIter),pTabConnDataList->end() );
 +#else
- 				pTabConnDataList->erase( ::std::remove(pTabConnDataList->begin(),pTabConnDataList->end(),*aConIter),pTabConnDataList->end() );
+                 pTabConnDataList->erase( ::std::remove(pTabConnDataList->begin(),pTabConnDataList->end(),*aConIter),pTabConnDataList->end() );
 +#endif
- 				continue;
- 			}
- 		}
---- svx/source/accessibility/AccessibleControlShape.cxx	2006-09-17 04:59:45.000000000 +0100
-+++ svx/source/accessibility/AccessibleControlShape.cxx	2006-11-09 21:58:43.921875000 +0000
-@@ -520,7 +520,11 @@ Sequence< Type > SAL_CALL AccessibleCont
- 		Type aThisRoundType = *pBegin;
- 		if ( ++pBegin != pEnd )
- 		{
+                 continue;
+             }
+         } // if ( !arrInvalidTables.empty() )
+--- svx/source/accessibility/AccessibleControlShape.cxx.old	2009-10-07 15:07:00.000000000 +0200
++++ svx/source/accessibility/AccessibleControlShape.cxx	2010-03-03 17:50:44.000000000 +0100
+@@ -473,7 +473,11 @@ Sequence< Type > SAL_CALL AccessibleCont
+         Type aThisRoundType = *pBegin;
+         if ( ++pBegin != pEnd )
+         {
 +#if defined(_MSC_VER) && (_MSC_VER > 1310) && (_MSC_VER < 1500)
 +			pEnd = remove( pBegin, pEnd, aThisRoundType );
 +#else
- 			pEnd = ::std::remove( pBegin, pEnd, aThisRoundType );
+             pEnd = ::std::remove( pBegin, pEnd, aThisRoundType );
 +#endif
- 			// now all types between begin and (the old) end which equal aThisRoundType
- 			// are moved behind the new end
- 		}
---- connectivity/source/drivers/odbcbase/OStatement.cxx	2006-09-17 04:07:43.000000000 +0100
-+++ connectivity/source/drivers/odbcbase/OStatement.cxx	2006-11-09 21:44:59.703125000 +0000
-@@ -199,7 +199,11 @@ Sequence< Type > SAL_CALL OStatement_Bas
- 	Sequence< Type > aOldTypes = OStatement_BASE::getTypes();
- 	if ( m_pConnection && !m_pConnection->isAutoRetrievingEnabled() )
- 	{
+             // now all types between begin and (the old) end which equal aThisRoundType
+             // are moved behind the new end
+         }
+--- connectivity/source/drivers/odbcbase/OStatement.cxx.old	2009-10-19 13:28:09.000000000 +0200
++++ connectivity/source/drivers/odbcbase/OStatement.cxx	2010-03-03 17:50:44.000000000 +0100
+@@ -170,7 +170,11 @@ Sequence< Type > SAL_CALL OStatement_Bas
+     Sequence< Type > aOldTypes = OStatement_BASE::getTypes();
+     if ( m_pConnection && !m_pConnection->isAutoRetrievingEnabled() )
+     {
 +#if defined(_MSC_VER) && (_MSC_VER > 1310) && (_MSC_VER < 1500)
 +		remove(aOldTypes.getArray(),aOldTypes.getArray() + aOldTypes.getLength(),
 +#else
- 		::std::remove(aOldTypes.getArray(),aOldTypes.getArray() + aOldTypes.getLength(),
+         ::std::remove(aOldTypes.getArray(),aOldTypes.getArray() + aOldTypes.getLength(),
 +#endif
- 						::getCppuType( (const Reference< XGeneratedResultSet > *)0 ));
- 		aOldTypes.realloc(aOldTypes.getLength() - 1);
- 	}
+                         ::getCppuType( (const Reference< XGeneratedResultSet > *)0 ));
+         aOldTypes.realloc(aOldTypes.getLength() - 1);
+     }
diff --git a/patches/dev300/go-oo-splash.diff b/patches/dev300/go-oo-splash.diff
index 5f6d9f7..37d043b 100644
--- a/patches/dev300/go-oo-splash.diff
+++ b/patches/dev300/go-oo-splash.diff
@@ -1,7 +1,7 @@
---- instsetoo_native/util/openoffice.lst.old	2009-06-23 10:08:31.000000000 +0200
-+++ instsetoo_native/util/openoffice.lst	2009-07-01 17:02:43.000000000 +0200
-@@ -24,10 +24,10 @@ Globals
- 			LIBRARYVERSION 9.1.1
+--- instsetoo_native/util/openoffice.lst.old	2010-03-03 17:50:21.000000000 +0100
++++ instsetoo_native/util/openoffice.lst	2010-03-03 17:50:36.000000000 +0100
+@@ -25,10 +25,10 @@ Globals
+             POOLPRODUCT 1
              REGISTRATION_HOST https://registration2.services.openoffice.org/RegistrationWeb
  			REGISTRATIONURL http://survey.services.openoffice.org/user/index.php
 -			PROGRESSBARCOLOR 4,68,155
commit d91410b81a02ce9b970ebd838fda0b28f6d8a5f8
Author: Fridrich Strba <fridrich.strba at bluewin.ch>
Date:   Wed Mar 3 17:23:57 2010 +0100

    Force --fuzz=0 option and defuzz patches for SUSE configuration
    
    * patches/apply.pl.in: force --fuzz=0 if not --defuzz is specified
    
    * patches/dev300/build-java-target-extensions.diff:
    * patches/dev300/build-java-target.diff:
    * patches/dev300/buildfix-x86-64-visibility-workaround.diff:
    * patches/dev300/calc-english-func-names-sc.diff:
    * patches/dev300/calc-enhanced-merge-cells-sc.diff:
    * patches/dev300/calc-filter-by-date-strip-time.diff:
    * patches/dev300/calc-filter-xml-free-context.diff:
    * patches/dev300/calc-find-replace-empty-cells-sc.diff:
    * patches/dev300/calc-formula-variable-separators-sc.diff:
    * patches/dev300/calc-html-csv-import-force-text-cell.diff:
    * patches/dev300/calc-jump-on-formula-ref-offapi.diff:
    * patches/dev300/calc-jump-on-formula-ref-sc.diff:
    * patches/dev300/calc-jump-on-formula-ref-vcl.diff:
    * patches/dev300/calc-ods-export-no-more-ushort.diff:
    * patches/dev300/calc-ods-sheet-protection-sc.diff:
    * patches/dev300/calc-perf-flat-segment-tree.diff:
    * patches/dev300/calc-perf-ods-import-properties.diff:
    * patches/dev300/calc-perf-page-and-manual-breaks.diff:
    * patches/dev300/calc-perf-table-hidden-flags.diff:
    * patches/dev300/calc-selection-fixed-cursor.diff:
    * patches/dev300/calc-string-number-decimal.diff:
    * patches/dev300/calc-subtotal-function-update.diff:
    * patches/dev300/calc-xls-import-slanted-border-oox.diff:
    * patches/dev300/calc-xls-import-slanted-border-sc.diff:
    * patches/dev300/chart-highlight-selection-fix.diff:
    * patches/dev300/chart-subtitle-xls-export.diff:
    * patches/dev300/configure-fix-lpsolve-depends.diff:
    * patches/dev300/cws-koheicsvimport-sc.diff:
    * patches/dev300/default-no-startup-wizard.diff:
    * patches/dev300/desktop-disable-startup-registration.diff:
    * patches/dev300/external-apm-header.diff:
    * patches/dev300/fit-list-to-size-popup.diff:
    * patches/dev300/g++44-debug.diff:
    * patches/dev300/go-oo-team.diff:
    * patches/dev300/ia64-nss.diff:
    * patches/dev300/kde4-oxygen-icons.diff:
    * patches/dev300/kde4_vcl_fixes.diff:
    * patches/dev300/layout-disable-experimental.diff:
    * patches/dev300/link-as-needed.diff:
    * patches/dev300/linkoo-dev300.diff:
    * patches/dev300/novell-win32-agfa-monotype-fonts.diff:
    * patches/dev300/novell-win32-odma.diff:
    * patches/dev300/oox-calc-export-sotstorage-init.diff:
    * patches/dev300/oox-custom-shape-polygons.diff:
    * patches/dev300/oox-fix-list-style-apply.diff:
    * patches/dev300/oox-pptx-export-para-linespacing.diff:
    * patches/dev300/oox-pptx-import-fix-layout.diff:
    * patches/dev300/oox-pptx-import-fix-transition-auto-advance.diff:
    * patches/dev300/oox-smartart-import.diff:
    * patches/dev300/oox-tokenmap.string.h.diff:
    * patches/dev300/oox-xlsx-import-fix-connector-shape.diff:
    * patches/dev300/optional-outplace-ole.diff:
    * patches/dev300/pptx-filter-as-a-separate-lib.diff:
    * patches/dev300/pptx-fix-connector-crash.diff:
    * patches/dev300/pptx-gfx-layout-fix.diff:
    * patches/dev300/redirect-extensions.diff:
    * patches/dev300/sc-cellformat-icon-toggle.diff:
    * patches/dev300/sc-overwrite-char-font-attrs.diff:
    * patches/dev300/sc-print-selected-sheets.diff:
    * patches/dev300/sfx2-pre-and-postprocess-during-save-load.diff:
    * patches/dev300/slideshow-sound.diff:
    * patches/dev300/solenv-installer-cleaner-paths.diff:
    * patches/dev300/statusbar-fancy-modified-status-svx.diff:
    * patches/dev300/svtools-emf-fix.diff:
    * patches/dev300/svx-customshapes-NOOPTFILES.diff:
    * patches/dev300/svx-text-rotation-fix.diff:
    * patches/dev300/sw-collapse-empty-table-par-like-html.diff:
    * patches/dev300/sw-no-macro-recorder-in-ui.diff:
    * patches/dev300/sw-table-join-fix-i99267.diff:
    * patches/dev300/testtool-more-defaults.diff:
    * patches/dev300/toolkit-layout-gcc-4.3.2-hack.diff:
    * patches/dev300/ui-desktop-integration.diff:
    * patches/dev300/unxsplash-rework.diff:
    * patches/dev300/vbahelper-optionality-fix.diff:
    * patches/dev300/vcl-better-fallback.diff:
    * patches/dev300/webdav-locking.diff:
    * patches/dev300/wiki-publisher-no-license.diff:
    * patches/dev300/wmf-mm-text.diff:
    * patches/dev300/wpsimport-writerperfect.diff:
    * patches/dev300/xlsx-filter-as-a-separate-lib-guards.diff:
    * patches/dev300/xlsx-shared-import-and-export.diff:
    * patches/dev300/xlsx-snapshot.diff:
    * patches/dev300/xmloff_dis26300_conformance.diff:
    * patches/evo2/buildfix-evo1-vs-evo2.diff:
    * patches/gstreamer/gstreamer-config-office.diff:
    * patches/gstreamer/gstreamer-solenv.diff:
    * patches/mono/buildfix-testtool-disabled.diff:
    * patches/mono/mono-climaker-bridgetest.diff:
    * patches/mono/mono-scp2.diff:
    * patches/unittesting/unittesting-vcl.diff:
    * patches/vba/cws-vbasupportdev300.diff: defuzz patches

diff --git a/patches/apply.pl.in b/patches/apply.pl.in
index 4400a3f..9b7055e 100755
--- a/patches/apply.pl.in
+++ b/patches/apply.pl.in
@@ -1297,7 +1297,9 @@ if ($dry_run || $add_developer || $find_unused || $statistic) {
 	# nasty path mess
 	$patch_cmd = "$patch_dir/../../bin/defuzzpatch";
 	-f $patch_cmd || die "no defuzz patch command $patch_cmd";
-    }
+    } else {
+	$patch_args = " --fuzz=0 $patch_args";
+	}
 
     if (is_old_patch_version()) {
 	$patch_cmd = 'sed \'s/^\(@.*\)\r$/\1/\' | ' . $patch_cmd;
diff --git a/patches/dev300/build-java-target-extensions.diff b/patches/dev300/build-java-target-extensions.diff
index 553b937..cea268b 100644
--- a/patches/dev300/build-java-target-extensions.diff
+++ b/patches/dev300/build-java-target-extensions.diff
@@ -23,7 +23,7 @@
 --- tomcat/makefile.mk.old	2008-06-24 12:13:43.000000000 +0200
 +++ tomcat/makefile.mk	2008-08-25 16:21:06.000000000 +0200
 @@ -52,7 +52,12 @@ ADDITIONAL_FILES = jakarta-servletapi-5/
- PATCH_FILE_NAME=tomcat.patch
+ PATCH_FILES=tomcat.patch
  
  BUILD_DIR=jakarta-servletapi-5
 +
diff --git a/patches/dev300/build-java-target.diff b/patches/dev300/build-java-target.diff
index 024888b..1246e14 100644
--- a/patches/dev300/build-java-target.diff
+++ b/patches/dev300/build-java-target.diff
@@ -1,6 +1,6 @@
---- configure.in.old	2009-04-06 20:56:26.000000000 +0200
-+++ configure.in	2009-04-06 20:57:09.000000000 +0200
-@@ -575,6 +575,17 @@ AC_ARG_WITH(java,
+--- configure.in.old	2010-03-03 16:59:22.000000000 +0100
++++ configure.in	2010-03-03 16:59:22.000000000 +0100
+@@ -579,6 +579,17 @@ AC_ARG_WITH(java,
                            no support for Java components, applets, accessibility
                            or XML filters. 
  ], if test "$withval" = "yes"; then WITH_JAVA=java; else WITH_JAVA=$withval; fi, WITH_JAVA=java)
@@ -18,7 +18,7 @@
  AC_ARG_ENABLE(gcjaot,
  [  --enable-gcjaot         Build with[[out]] using Ahead of Time java compilation
                            support to speed up buildsi by compiling the jars also
-@@ -2733,6 +2744,44 @@ else
+@@ -2946,6 +2957,44 @@ else
     JAVA_HOME=NO_JAVA_HOME ; export JAVA_HOME
  fi
  
@@ -63,7 +63,7 @@
  dnl ===================================================================
  dnl Checks for javac
  dnl ===================================================================
-@@ -2793,6 +2842,17 @@ if test "$SOLAR_JAVA" != ""; then
+@@ -3006,6 +3055,17 @@ if test "$SOLAR_JAVA" != ""; then
  fi
  AC_SUBST(JAVACISGCJ)
  
@@ -81,7 +81,7 @@
  dnl ===================================================================
  dnl Checks for javadoc
  dnl ===================================================================
-@@ -3007,6 +3067,8 @@ fi
+@@ -3220,6 +3280,8 @@ fi
  AC_SUBST(JAVA_HOME)
  AC_SUBST(JDK)
  AC_SUBST(JAVAFLAGS)
@@ -90,9 +90,9 @@
  AC_SUBST(JAVAINTERPRETER)
  AC_SUBST(JAVACOMPILER)
  AC_SUBST(JAVAAOTCOMPILER)
---- set_soenv.in.javatarget~	2008-07-07 19:57:41.109846862 +0200
-+++ set_soenv.in	2008-07-07 20:04:44.665095643 +0200
-@@ -1842,6 +1842,7 @@ ToFile( "DMAKEROOT",         $DMAKEROOT,
+--- set_soenv.in.old	2010-03-03 16:59:08.000000000 +0100
++++ set_soenv.in	2010-03-03 16:59:22.000000000 +0100
+@@ -1769,6 +1769,7 @@ ToFile( "DMAKEROOT",         $DMAKEROOT,
  if ( $JDK ne "gcj" ) {
     ToFile( "CLASSPATH",         $CLASSPATH,         "e" );
     ToFile( "XCLASSPATH",        $XCLASSPATH,        "e" );
@@ -100,7 +100,7 @@
  }
  else {
     ToFile( "JAVACISGCJ",       '@JAVACISGCJ@',      "e" );
-@@ -1852,6 +1853,8 @@ if ( $GUI eq "UNX" ) {
+@@ -1780,6 +1781,8 @@ if ( '@JDK@' ne '' )
  { 
     ToFile( "JDK",             "@JDK@",           "e" );
     ToFile( "JAVAFLAGS",             "@JAVAFLAGS@",           "e" );
@@ -109,10 +109,10 @@
     ToFile( "JAVAINTERPRETER", PathFormat("@JAVAINTERPRETER@"), "e" );
     ToFile( "JAVACOMPILER",    PathFormat("@JAVACOMPILER@"), "e" );
     ToFile( "JAVAAOTCOMPILER", PathFormat("@JAVAAOTCOMPILER@"), "e" );
---- solenv/inc/antsettings.mk.old	2008-04-10 19:33:24.000000000 +0200
-+++ solenv/inc/antsettings.mk	2008-08-25 13:52:31.000000000 +0200
-@@ -44,6 +44,18 @@ PATH!:=$(ANT_HOME)$/bin$(PATH_SEPERATOR)
- ANT*:=$(ANT_HOME)$/bin$/ant
+--- solenv/inc/antsettings.mk.old	2009-10-08 16:17:46.000000000 +0200
++++ solenv/inc/antsettings.mk	2010-03-03 16:59:22.000000000 +0100
+@@ -48,6 +48,18 @@ PATH!:=$(ANT_HOME)/bin:$(PATH)
+ ANT*:=$(ANT_HOME)/bin/ant
  ANT_BUILDFILE*=build.xml
  
 +.IF "$(ANT_COMPILER_FLAGS)"==""
@@ -130,7 +130,7 @@
  .IF "$(ANT_DEBUG)"==""
  .IF "$(debug)"==""
  ANT_DEBUG=off
-@@ -65,21 +77,12 @@ JAVA_HOME=
+@@ -69,21 +81,12 @@ JAVA_HOME=
  .EXPORT : JAVA_HOME
  .ENDIF
  
@@ -156,9 +156,9 @@
  .ELSE # No java
  ANT=
  ANT_FLAGS=
---- solenv/inc/settings.mk.javatarget~	2008-07-07 19:57:31.071845803 +0200
-+++ solenv/inc/settings.mk	2008-07-07 20:04:44.669096361 +0200
-@@ -157,6 +157,9 @@ JAVAI:=$(JAVAINTERPRETER)
+--- solenv/inc/settings.mk.old	2010-03-03 16:44:07.000000000 +0100
++++ solenv/inc/settings.mk	2010-03-03 16:59:22.000000000 +0100
+@@ -163,6 +163,9 @@ JAVAI:=$(JAVAINTERPRETER)
  .IF "$(JAVACISGCJ)" == "yes"
  JAVAC+=--encoding=UTF-8 -O2 -fno-assert -Wno-deprecated -C
  .ENDIF
@@ -168,19 +168,19 @@
  
  #classpath and response
  .IF "$(JDK)" == "J++"
---- hsqldb/makefile.mk.old	2008-05-14 11:31:19.000000000 +0200
-+++ hsqldb/makefile.mk	2008-08-25 16:11:36.000000000 +0200
-@@ -67,7 +67,7 @@ JAVA_HOME=
- .EXPORT : JAVA_HOME
- BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar
+--- hsqldb/makefile.mk.old	2009-10-21 11:50:17.000000000 +0200
++++ hsqldb/makefile.mk	2010-03-03 16:59:22.000000000 +0100
+@@ -69,7 +69,7 @@ BUILD_ACTION=$(ANT) -Dbuild.label="build
+ .IF "$(debug)"!=""
+ BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.debug="on" -f $(ANT_BUILDFILE) jar
  .ELSE
 -BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -f $(ANT_BUILDFILE) jar
 +BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar
  .ENDIF
+ .ENDIF
  
- .ENDIF # $(SOLAR_JAVA)!= ""
---- rhino/makefile.mk.old	2008-04-11 09:01:54.000000000 +0200
-+++ rhino/makefile.mk	2008-08-25 16:15:08.000000000 +0200
+--- rhino/makefile.mk.old	2009-10-08 16:18:04.000000000 +0200
++++ rhino/makefile.mk	2010-03-03 16:59:22.000000000 +0100
 @@ -55,7 +55,7 @@ JAVA_HOME=
  .EXPORT : JAVA_HOME
  BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj jar
@@ -190,9 +190,9 @@
  .ENDIF
  
  # --- Targets ------------------------------------------------------
---- qadevOOo/makefile.mk.old	2009-02-12 14:55:56.000000000 +0100
-+++ qadevOOo/makefile.mk	2009-02-17 17:19:53.000000000 +0100
-@@ -48,7 +48,7 @@ TST:
+--- qadevOOo/makefile.mk.old	2009-10-08 16:17:37.000000000 +0200
++++ qadevOOo/makefile.mk	2010-03-03 16:59:22.000000000 +0100
+@@ -47,7 +47,7 @@ TST:
  
  .IF "$(SOLAR_JAVA)"=="TRUE"	
  .IF "$(ANT_HOME)"!="NO_ANT_HOME"
diff --git a/patches/dev300/buildfix-x86-64-visibility-workaround.diff b/patches/dev300/buildfix-x86-64-visibility-workaround.diff
index bf88b92..16521a9 100644
--- a/patches/dev300/buildfix-x86-64-visibility-workaround.diff
+++ b/patches/dev300/buildfix-x86-64-visibility-workaround.diff
@@ -38,8 +38,8 @@
 +ToFile( "HAVE_GCC_VISIBILITY_BROKEN",
 +		"@HAVE_GCC_VISIBILITY_BROKEN@", "e" );
  ToFile( "HAVE_LD_HASH_STYLE","@HAVE_LD_HASH_STYLE@","e" );
- ToFile( "CXX",               $CXX,               "e" );
- ToFile( "MINGWCXX",          "@MINGWCXX@",       "e" );
+ ToFile( "HAVE_LD_BSYMBOLIC_FUNCTIONS",
+ 		"@HAVE_LD_BSYMBOLIC_FUNCTIONS@","e" );
 Index: unxlng.mk
 ===================================================================
 --- solenv/inc/unxlng.mk	(Revision 276754)
diff --git a/patches/dev300/calc-english-func-names-sc.diff b/patches/dev300/calc-english-func-names-sc.diff
index 1f334d5..07d4815 100644
--- a/patches/dev300/calc-english-func-names-sc.diff
+++ b/patches/dev300/calc-english-func-names-sc.diff
@@ -1,7 +1,5 @@
-diff --git sc/inc/docoptio.hxx sc/inc/docoptio.hxx
-index e95a9d0..43fd868 100644
---- sc/inc/docoptio.hxx
-+++ sc/inc/docoptio.hxx
+--- sc/inc/docoptio.hxx.old	2010-03-03 17:00:15.000000000 +0100
++++ sc/inc/docoptio.hxx	2010-03-03 17:00:16.000000000 +0100
 @@ -56,6 +56,7 @@ class SC_DLLPUBLIC ScDocOptions
      BOOL   bDoAutoSpell;			// Auto-Spelling
      BOOL   bLookUpColRowNames;		// Spalten-/Zeilenbeschriftungen automagisch suchen
@@ -20,7 +18,7 @@ index e95a9d0..43fd868 100644
      void SetFormulaSepArg(const ::rtl::OUString& rSep) { aFormulaSepArg = rSep; }
      ::rtl::OUString GetFormulaSepArg() const { return aFormulaSepArg; }
  
-@@ -142,6 +146,7 @@ inline void ScDocOptions::CopyTo(ScDocOptions& rOpt)
+@@ -142,6 +146,7 @@ inline void ScDocOptions::CopyTo(ScDocOp
      rOpt.bDoAutoSpell			= bDoAutoSpell;
      rOpt.bLookUpColRowNames		= bLookUpColRowNames;
      rOpt.bFormulaRegexEnabled   = bFormulaRegexEnabled;
@@ -28,7 +26,7 @@ index e95a9d0..43fd868 100644
      rOpt.eFormulaGrammar        = eFormulaGrammar;
      rOpt.aFormulaSepArg         = aFormulaSepArg;
      rOpt.aFormulaSepArrayRow    = aFormulaSepArrayRow;
-@@ -165,6 +170,7 @@ inline const ScDocOptions& ScDocOptions::operator=( const ScDocOptions& rCpy )
+@@ -165,6 +170,7 @@ inline const ScDocOptions& ScDocOptions:
      bDoAutoSpell		= rCpy.bDoAutoSpell;
      bLookUpColRowNames	= rCpy.bLookUpColRowNames;
      bFormulaRegexEnabled= rCpy.bFormulaRegexEnabled;
@@ -36,7 +34,7 @@ index e95a9d0..43fd868 100644
      eFormulaGrammar     = rCpy.eFormulaGrammar;
      aFormulaSepArg      = rCpy.aFormulaSepArg;
      aFormulaSepArrayRow = rCpy.aFormulaSepArrayRow;
-@@ -191,6 +197,7 @@ inline int ScDocOptions::operator==( const ScDocOptions& rOpt ) const
+@@ -191,6 +197,7 @@ inline int ScDocOptions::operator==( con
              &&	rOpt.bDoAutoSpell			== bDoAutoSpell
              &&	rOpt.bLookUpColRowNames		== bLookUpColRowNames
              &&  rOpt.bFormulaRegexEnabled   == bFormulaRegexEnabled
@@ -44,11 +42,9 @@ index e95a9d0..43fd868 100644
              &&  rOpt.eFormulaGrammar        == eFormulaGrammar
              &&  rOpt.aFormulaSepArg         == aFormulaSepArg
              &&  rOpt.aFormulaSepArrayRow    == aFormulaSepArrayRow
-diff --git sc/source/core/data/documen3.cxx sc/source/core/data/documen3.cxx
-index d8e4101..8e40f9c 100644
---- sc/source/core/data/documen3.cxx
-+++ sc/source/core/data/documen3.cxx
-@@ -1748,12 +1748,33 @@ const ScDocOptions& ScDocument::GetDocOptions() const
+--- sc/source/core/data/documen3.cxx.old	2010-03-03 16:59:19.000000000 +0100
++++ sc/source/core/data/documen3.cxx	2010-03-03 17:00:16.000000000 +0100
+@@ -1748,12 +1748,33 @@ const ScDocOptions& ScDocument::GetDocOp
  void ScDocument::SetDocOptions( const ScDocOptions& rOpt )
  {
      DBG_ASSERT( pDocOptions, "No DocOptions! :-(" );
@@ -82,11 +78,9 @@ index d8e4101..8e40f9c 100644
      // Update the separators.
      ScCompiler::UpdateSeparatorsNative(
          rOpt.GetFormulaSepArg(), rOpt.GetFormulaSepArrayCol(), rOpt.GetFormulaSepArrayRow());
-diff --git sc/source/core/tool/docoptio.cxx sc/source/core/tool/docoptio.cxx
-index f4c744e..ab7909f 100644
---- sc/source/core/tool/docoptio.cxx
-+++ sc/source/core/tool/docoptio.cxx
-@@ -106,6 +106,7 @@ ScDocOptions::ScDocOptions( const ScDocOptions& rCpy )
+--- sc/source/core/tool/docoptio.cxx.old	2010-03-03 17:00:15.000000000 +0100
++++ sc/source/core/tool/docoptio.cxx	2010-03-03 17:00:16.000000000 +0100
+@@ -106,6 +106,7 @@ ScDocOptions::ScDocOptions( const ScDocO
              bDoAutoSpell( rCpy.bDoAutoSpell ),
              bLookUpColRowNames( rCpy.bLookUpColRowNames ),
              bFormulaRegexEnabled( rCpy.bFormulaRegexEnabled ),
@@ -101,8 +95,8 @@ index f4c744e..ab7909f 100644
 +    bUseEnglishFuncName = false;
      eFormulaGrammar     = ::formula::FormulaGrammar::GRAM_NATIVE;
  
-     ResetFormulaSeparators(aFormulaSepArg, aFormulaSepArrayCol, aFormulaSepArrayRow);
-@@ -277,10 +279,11 @@ SfxPoolItem* __EXPORT ScTpCalcItem::Clone( SfxItemPool * ) const
+     ResetFormulaSeparators();
+@@ -277,10 +279,11 @@ SfxPoolItem* __EXPORT ScTpCalcItem::Clon
  
  #define CFGPATH_FORMULA     "Office.Calc/Formula"
  #define SCFORMULAOPT_GRAMMAR           0
@@ -118,7 +112,7 @@ index f4c744e..ab7909f 100644
  
  #define CFGPATH_DOCLAYOUT	"Office.Calc/Layout/Other"
  
-@@ -318,6 +321,7 @@ Sequence<OUString> ScDocCfg::GetFormulaPropertyNames()
+@@ -318,6 +321,7 @@ Sequence<OUString> ScDocCfg::GetFormulaP
  	static const char* aPropNames[] =
  	{
          "Syntax/Grammar",             // SCFORMULAOPT_GRAMMAR       
@@ -140,7 +134,7 @@ index f4c744e..ab7909f 100644
                  case SCFORMULAOPT_SEP_ARG:
                  {
                      OUString aSep;
-@@ -588,6 +599,12 @@ IMPL_LINK( ScDocCfg, FormulaCommitHdl, void *, EMPTYARG )
+@@ -588,6 +599,12 @@ IMPL_LINK( ScDocCfg, FormulaCommitHdl, v
                  pValues[nProp] <<= nVal;
              }
              break;
@@ -153,10 +147,8 @@ index f4c744e..ab7909f 100644
              case SCFORMULAOPT_SEP_ARG:
                  pValues[nProp] <<= GetFormulaSepArg();
              break;
-diff --git sc/source/ui/inc/optdlg.hrc sc/source/ui/inc/optdlg.hrc
-index 5767bfb..2481244 100644
---- sc/source/ui/inc/optdlg.hrc
-+++ sc/source/ui/inc/optdlg.hrc
+--- sc/source/ui/inc/optdlg.hrc.old	2010-03-03 16:59:16.000000000 +0100
++++ sc/source/ui/inc/optdlg.hrc	2010-03-03 17:00:16.000000000 +0100
 @@ -199,11 +199,12 @@
  #define FL_FORMULA_OPTIONS        80
  #define FT_FORMULA_SYNTAX         81
@@ -178,10 +170,8 @@ index 5767bfb..2481244 100644
 +#define FT_FORMULA_SEP_ARRAY_C    89
 +#define ED_FORMULA_SEP_ARRAY_C    90
 +#define BTN_FORMULA_SEP_RESET     91
-diff --git sc/source/ui/inc/tpformula.hxx sc/source/ui/inc/tpformula.hxx
-index 054655e..856dcae 100644
---- sc/source/ui/inc/tpformula.hxx
-+++ sc/source/ui/inc/tpformula.hxx
+--- sc/source/ui/inc/tpformula.hxx.old	2010-03-03 16:59:12.000000000 +0100
++++ sc/source/ui/inc/tpformula.hxx	2010-03-03 17:00:16.000000000 +0100
 @@ -72,6 +72,7 @@ private:
      FixedLine maFlFormulaOpt;
      FixedText maFtFormulaSyntax;
@@ -190,11 +180,9 @@ index 054655e..856dcae 100644
  
      FixedLine  maFlFormulaSeps;
      FixedText  maFtSepFuncArg;  
-diff --git sc/source/ui/optdlg/tpformula.cxx sc/source/ui/optdlg/tpformula.cxx
-index 0c1d143..b462efc 100644
---- sc/source/ui/optdlg/tpformula.cxx
-+++ sc/source/ui/optdlg/tpformula.cxx
-@@ -59,6 +59,7 @@ ScTpFormulaOptions::ScTpFormulaOptions(Window* pParent, const SfxItemSet& rCoreA
+--- sc/source/ui/optdlg/tpformula.cxx.old	2010-03-03 16:59:12.000000000 +0100
++++ sc/source/ui/optdlg/tpformula.cxx	2010-03-03 17:00:16.000000000 +0100
+@@ -59,6 +59,7 @@ ScTpFormulaOptions::ScTpFormulaOptions(W
      maFlFormulaOpt(this, ScResId(FL_FORMULA_OPTIONS)),
      maFtFormulaSyntax(this, ScResId(FT_FORMULA_SYNTAX)),
      maLbFormulaSyntax(this, ScResId(LB_FORMULA_SYNTAX)),
@@ -202,7 +190,7 @@ index 0c1d143..b462efc 100644
      maFlFormulaSeps(this, ScResId(FL_FORMULA_SEPS)),
      maFtSepFuncArg(this, ScResId(FT_FORMULA_SEP_ARG)),
      maEdSepFuncArg(this, ScResId(ED_FORMULA_SEP_ARG)),
-@@ -234,7 +235,7 @@ BOOL ScTpFormulaOptions::FillItemSet(SfxItemSet& rCoreSet)
+@@ -234,7 +235,7 @@ BOOL ScTpFormulaOptions::FillItemSet(Sfx
      }
  
      mpNewOptions->SetFormulaSyntax(eGram);
@@ -211,7 +199,7 @@ index 0c1d143..b462efc 100644
      mpNewOptions->SetFormulaSepArg(maEdSepFuncArg.GetText());
      mpNewOptions->SetFormulaSepArrayCol(maEdSepArrayCol.GetText());
      mpNewOptions->SetFormulaSepArrayRow(maEdSepArrayRow.GetText());
-@@ -266,6 +267,8 @@ void ScTpFormulaOptions::Reset(const SfxItemSet& /*rCoreSet*/)
+@@ -266,6 +267,8 @@ void ScTpFormulaOptions::Reset(const Sfx
              maLbFormulaSyntax.SelectEntryPos(0);
      }
      
@@ -220,10 +208,8 @@ index 0c1d143..b462efc 100644
      OUString aSep = mpNewOptions->GetFormulaSepArg();
      OUString aSepArrayRow = mpNewOptions->GetFormulaSepArrayRow();
      OUString aSepArrayCol = mpNewOptions->GetFormulaSepArrayCol();
-diff --git sc/source/ui/src/optdlg.src sc/source/ui/src/optdlg.src
-index 78f7864..616345b 100644
---- sc/source/ui/src/optdlg.src
-+++ sc/source/ui/src/optdlg.src
+--- sc/source/ui/src/optdlg.src.old	2010-03-03 16:59:16.000000000 +0100
++++ sc/source/ui/src/optdlg.src	2010-03-03 17:00:16.000000000 +0100
 @@ -218,16 +218,23 @@ TabPage RID_SCPAGE_FORMULA
          };
      };
diff --git a/patches/dev300/calc-enhanced-merge-cells-sc.diff b/patches/dev300/calc-enhanced-merge-cells-sc.diff
index 3320a3b..ac11a32 100644
--- a/patches/dev300/calc-enhanced-merge-cells-sc.diff
+++ b/patches/dev300/calc-enhanced-merge-cells-sc.diff
@@ -1,24 +1,22 @@
-diff --git sc/source/ui/docshell/docfunc.cxx sc/source/ui/docshell/docfunc.cxx
-index 123a716..fde95e5 100644
---- sc/source/ui/docshell/docfunc.cxx
-+++ sc/source/ui/docshell/docfunc.cxx
-@@ -67,6 +67,7 @@
- #include "attrib.hxx"
+--- sc/source/ui/docshell/docfunc.cxx.old	2010-03-03 16:44:04.000000000 +0100
++++ sc/source/ui/docshell/docfunc.cxx	2010-03-03 16:59:13.000000000 +0100
+@@ -62,6 +62,7 @@
+ #include "dociter.hxx"
  #include "autoform.hxx"
  #include "cell.hxx"
 +#include "cellmergeoption.hxx"
  #include "detdata.hxx"
  #include "detfunc.hxx"
  #include "docpool.hxx"
-@@ -101,6 +102,7 @@
- #include "tabprotection.hxx"
+@@ -97,6 +98,7 @@
+ #include "clipparam.hxx"
  
  #include <memory>
 +#include <set>
  
  using namespace com::sun::star;
  using ::com::sun::star::uno::Sequence;
-@@ -1693,7 +1693,11 @@ BOOL ScDocFunc::InsertCells( const ScRange& rRange, const ScMarkData* pTabMark,
+@@ -1665,7 +1667,11 @@ BOOL ScDocFunc::InsertCells( const ScRan
                      default:
                          break;
                  }
@@ -31,7 +29,7 @@ index 123a716..fde95e5 100644
              }
              qIncreaseRange.pop_back();
          }
-@@ -1742,7 +1746,10 @@ BOOL ScDocFunc::InsertCells( const ScRange& rRange, const ScMarkData* pTabMark,
+@@ -1714,7 +1720,10 @@ BOOL ScDocFunc::InsertCells( const ScRan
              while( !qIncreaseRange.empty() )
              {
                  ScRange aRange = qIncreaseRange.back();
@@ -43,7 +41,7 @@ index 123a716..fde95e5 100644
                  qIncreaseRange.pop_back();
              }
  
-@@ -2180,7 +2187,10 @@ BOOL ScDocFunc::DeleteCells( const ScRange& rRange, const ScMarkData* pTabMark,
+@@ -2152,7 +2161,10 @@ BOOL ScDocFunc::DeleteCells( const ScRan
  
          if( !pDoc->HasAttrib( aRange, HASATTR_OVERLAPPED | HASATTR_MERGED ) )
          {
@@ -55,7 +53,7 @@ index 123a716..fde95e5 100644
          }
          qDecreaseRange.pop_back();
      }
-@@ -3974,86 +3976,110 @@ BOOL ScDocFunc::FillAuto( ScRange& rRange, const ScMarkData* pTabMark, FillDir e
+@@ -4149,86 +4161,110 @@ BOOL ScDocFunc::FillAuto( ScRange& rRang
  
  //------------------------------------------------------------------------
  
@@ -64,14 +62,8 @@ index 123a716..fde95e5 100644
  {
 +    using ::std::set;
 +
- 	ScDocShellModificator aModificator( rDocShell );
- 
--	ScDocument* pDoc = rDocShell.GetDocument();
--	SCCOL nStartCol = rRange.aStart.Col();
--	SCROW nStartRow = rRange.aStart.Row();
--	SCCOL nEndCol = rRange.aEnd.Col();
--	SCROW nEndRow = rRange.aEnd.Row();
--	SCTAB nTab = rRange.aStart.Tab();
+     ScDocShellModificator aModificator( rDocShell );
+ 
 +    SCCOL nStartCol = rOption.mnStartCol;
 +    SCROW nStartRow = rOption.mnStartRow;
 +    SCCOL nEndCol = rOption.mnEndCol;
@@ -82,22 +74,26 @@ index 123a716..fde95e5 100644
 +        return TRUE;
 +    }
 +
-+    ScDocument* pDoc = rDocShell.GetDocument();
+     ScDocument* pDoc = rDocShell.GetDocument();
+-    SCCOL nStartCol = rRange.aStart.Col();
+-    SCROW nStartRow = rRange.aStart.Row();
+-    SCCOL nEndCol = rRange.aEnd.Col();
+-    SCROW nEndRow = rRange.aEnd.Row();
+-    SCTAB nTab = rRange.aStart.Tab();
 +    set<SCTAB>::const_iterator itrBeg = rOption.maTabs.begin(), itrEnd = rOption.maTabs.end();
 +    SCTAB nTab1 = *itrBeg, nTab2 = *rOption.maTabs.rbegin();
  
- 	if (bRecord && !pDoc->IsUndoEnabled())
- 		bRecord = FALSE;
+     if (bRecord && !pDoc->IsUndoEnabled())
+         bRecord = FALSE;
  
--	ScEditableTester aTester( pDoc, nTab, nStartCol, nStartRow, nEndCol, nEndRow );
--	if (!aTester.IsEditable())
--	{
--		if (!bApi)
--			rDocShell.ErrorMessage(aTester.GetMessageId());
--		return FALSE;
--	}
+-    ScEditableTester aTester( pDoc, nTab, nStartCol, nStartRow, nEndCol, nEndRow );
+-    if (!aTester.IsEditable())
 +    for (set<SCTAB>::const_iterator itr = itrBeg; itr != itrEnd; ++itr)
-+    {
+     {
+-        if (!bApi)
+-            rDocShell.ErrorMessage(aTester.GetMessageId());
+-        return FALSE;
+-    }
 +        ScEditableTester aTester( pDoc, *itr, nStartCol, nStartRow, nEndCol, nEndRow );
 +        if (!aTester.IsEditable())
 +        {
@@ -106,11 +102,10 @@ index 123a716..fde95e5 100644
 +            return FALSE;
 +        }
  
--	if ( nStartCol == nEndCol && nStartRow == nEndRow )
--	{
--		// nichts zu tun
--		return TRUE;
--	}
+-    if ( nStartCol == nEndCol && nStartRow == nEndRow )
+-    {
+-        // nichts zu tun
+-        return TRUE;
 +        if ( pDoc->HasAttrib( nStartCol, nStartRow, *itr, nEndCol, nEndRow, *itr,
 +                                HASATTR_MERGED | HASATTR_OVERLAPPED ) )
 +        {
@@ -119,20 +114,23 @@ index 123a716..fde95e5 100644
 +                rDocShell.ErrorMessage(STR_MSSG_MERGECELLS_0);
 +            return FALSE;
 +        }
-+    }
+     }
  
--	if ( pDoc->HasAttrib( nStartCol, nStartRow, nTab, nEndCol, nEndRow, nTab,
--							HASATTR_MERGED | HASATTR_OVERLAPPED ) )
--	{
--		// "Zusammenfassen nicht verschachteln !"
--		if (!bApi)
--			rDocShell.ErrorMessage(STR_MSSG_MERGECELLS_0);
--		return FALSE;
--	}
+-    if ( pDoc->HasAttrib( nStartCol, nStartRow, nTab, nEndCol, nEndRow, nTab,
+-                            HASATTR_MERGED | HASATTR_OVERLAPPED ) )
 +    ScDocument* pUndoDoc = NULL;
 +    bool bNeedContentsUndo = false;
 +    for (set<SCTAB>::const_iterator itr = itrBeg; itr != itrEnd; ++itr)
-+    {
+     {
+-        // "Zusammenfassen nicht verschachteln !"
+-        if (!bApi)
+-            rDocShell.ErrorMessage(STR_MSSG_MERGECELLS_0);
+-        return FALSE;
+-    }
+-
+-    BOOL bNeedContents = bContents &&
+-            ( !pDoc->IsBlockEmpty( nTab, nStartCol,nStartRow+1, nStartCol,nEndRow, true ) ||
+-              !pDoc->IsBlockEmpty( nTab, nStartCol+1,nStartRow, nEndCol,nEndRow, true ) );
 +        SCTAB nTab = *itr;
 +        bool bNeedContents = bContents &&
 +                ( !pDoc->IsBlockEmpty( nTab, nStartCol,nStartRow+1, nStartCol,nEndRow, true ) ||
@@ -146,9 +144,14 @@ index 123a716..fde95e5 100644
 +                for( aPos.SetRow( nStartRow ); !bHasNotes && (aPos.Row() <= nEndRow); aPos.IncRow() )
 +                    bHasNotes = ((aPos.Col() != nStartCol) || (aPos.Row() != nStartRow)) && (pDoc->GetNote( aPos ) != 0);
  
--	BOOL bNeedContents = bContents &&
--			( !pDoc->IsBlockEmpty( nTab, nStartCol,nStartRow+1, nStartCol,nEndRow, true ) ||
--			  !pDoc->IsBlockEmpty( nTab, nStartCol+1,nStartRow, nEndCol,nEndRow, true ) );
+-    ScDocument* pUndoDoc = 0;
+-    if (bRecord)
+-    {
+-        // test if the range contains other notes which also implies that we need an undo document
+-        bool bHasNotes = false;
+-        for( ScAddress aPos( nStartCol, nStartRow, nTab ); !bHasNotes && (aPos.Col() <= nEndCol); aPos.IncCol() )
+-            for( aPos.SetRow( nStartRow ); !bHasNotes && (aPos.Row() <= nEndRow); aPos.IncRow() )
+-                bHasNotes = ((aPos.Col() != nStartCol) || (aPos.Row() != nStartRow)) && (pDoc->GetNote( aPos ) != 0);
 +            if (bNeedContents || bHasNotes || rOption.mbCenter)
 +            {
 +                if (!pUndoDoc)
@@ -164,35 +167,28 @@ index 123a716..fde95e5 100644
 +                pDoc->BeginDrawUndo();
 +        }
  
--    ScDocument* pUndoDoc = 0;
--	if (bRecord)
--	{
--        // test if the range contains other notes which also implies that we need an undo document
--        bool bHasNotes = false;
--        for( ScAddress aPos( nStartCol, nStartRow, nTab ); !bHasNotes && (aPos.Col() <= nEndCol); aPos.IncCol() )
--            for( aPos.SetRow( nStartRow ); !bHasNotes && (aPos.Row() <= nEndRow); aPos.IncRow() )
--                bHasNotes = ((aPos.Col() != nStartCol) || (aPos.Row() != nStartRow)) && (pDoc->GetNote( aPos ) != 0);
+-        if (bNeedContents || bHasNotes)
 +        if (bNeedContents)
 +            pDoc->DoMergeContents( nTab, nStartCol,nStartRow, nEndCol,nEndRow );
 +        pDoc->DoMerge( nTab, nStartCol,nStartRow, nEndCol,nEndRow );
 +	
 +        if (rOption.mbCenter)
-+        {
-+            pDoc->ApplyAttr( nStartCol, nStartRow, nTab, SvxHorJustifyItem( SVX_HOR_JUSTIFY_CENTER, ATTR_HOR_JUSTIFY ) );
-+            pDoc->ApplyAttr( nStartCol, nStartRow, nTab, SvxVerJustifyItem( SVX_VER_JUSTIFY_CENTER, ATTR_VER_JUSTIFY ) );
-+        }
- 
--		if (bNeedContents || bHasNotes)
--		{
--			pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
--			pUndoDoc->InitUndo( pDoc, nTab, nTab );
+         {
+-            pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+-            pUndoDoc->InitUndo( pDoc, nTab, nTab );
 -            // note captions are collected by drawing undo
--			pDoc->CopyToDocument( nStartCol, nStartRow, nTab, nEndCol, nEndRow, nTab,
+-            pDoc->CopyToDocument( nStartCol, nStartRow, nTab, nEndCol, nEndRow, nTab,
 -                                    IDF_ALL|IDF_NOCAPTIONS, FALSE, pUndoDoc );
--		}
++            pDoc->ApplyAttr( nStartCol, nStartRow, nTab, SvxHorJustifyItem( SVX_HOR_JUSTIFY_CENTER, ATTR_HOR_JUSTIFY ) );
++            pDoc->ApplyAttr( nStartCol, nStartRow, nTab, SvxVerJustifyItem( SVX_VER_JUSTIFY_CENTER, ATTR_VER_JUSTIFY ) );
+         }
 -        if( bHasNotes )
 -            pDoc->BeginDrawUndo();
--	}
+-    }
+ 
+-    if (bNeedContents)
+-        pDoc->DoMergeContents( nTab, nStartCol,nStartRow, nEndCol,nEndRow );
+-    pDoc->DoMerge( nTab, nStartCol,nStartRow, nEndCol,nEndRow );
 +        if ( !AdjustRowHeight( ScRange( 0,nStartRow,nTab, MAXCOL,nEndRow,nTab ) ) )
 +            rDocShell.PostPaint( nStartCol, nStartRow, nTab,
 +                                 nEndCol, nEndRow, nTab, PAINT_GRID );
@@ -202,13 +198,10 @@ index 123a716..fde95e5 100644
 +            pDoc->SetDirty(aRange);
 +        }
  
--	if (bNeedContents)
--		pDoc->DoMergeContents( nTab, nStartCol,nStartRow, nEndCol,nEndRow );
--	pDoc->DoMerge( nTab, nStartCol,nStartRow, nEndCol,nEndRow );
+-    if( bRecord )
 +        bNeedContentsUndo |= bNeedContents;
 +    }
- 
--    if( bRecord )
++
 +    if (pUndoDoc)
      {
 -        SdrUndoGroup* pDrawUndo = pDoc->GetDrawLayer() ? pDoc->GetDrawLayer()->GetCalcUndo() : 0;
@@ -220,53 +213,50 @@ index 123a716..fde95e5 100644
 +            new ScUndoMerge(&rDocShell, rOption, bNeedContentsUndo, pUndoDoc, pDrawUndo) );
      }
  
--	if ( !AdjustRowHeight( ScRange( 0,nStartRow,nTab, MAXCOL,nEndRow,nTab ) ) )
--		rDocShell.PostPaint( nStartCol, nStartRow, nTab,
--											nEndCol, nEndRow, nTab, PAINT_GRID );
--	if (bNeedContents)
--		pDoc->SetDirty( rRange );
- 	aModificator.SetDocumentModified();
+-    if ( !AdjustRowHeight( ScRange( 0,nStartRow,nTab, MAXCOL,nEndRow,nTab ) ) )
+-        rDocShell.PostPaint( nStartCol, nStartRow, nTab,
+-                                            nEndCol, nEndRow, nTab, PAINT_GRID );
+-    if (bNeedContents)
+-        pDoc->SetDirty( rRange );
+     aModificator.SetDocumentModified();
  
- 	SfxBindings* pBindings = rDocShell.GetViewBindings();
-@@ -4069,49 +4095,81 @@ BOOL ScDocFunc::MergeCells( const ScRange& rRange, BOOL bContents, BOOL bRecord,
+     SfxBindings* pBindings = rDocShell.GetViewBindings();
+@@ -4244,49 +4280,81 @@ BOOL ScDocFunc::MergeCells( const ScRang
  
  BOOL ScDocFunc::UnmergeCells( const ScRange& rRange, BOOL bRecord, BOOL bApi )
  {
--	ScDocShellModificator aModificator( rDocShell );
+-    ScDocShellModificator aModificator( rDocShell );
 +    ScCellMergeOption aOption(rRange.aStart.Col(), rRange.aStart.Row(), rRange.aEnd.Col(), rRange.aEnd.Row());
 +    SCTAB nTab1 = rRange.aStart.Tab(), nTab2 = rRange.aEnd.Tab();
 +    for (SCTAB i = nTab1; i <= nTab2; ++i)
 +        aOption.maTabs.insert(i);
- 
++
 +    return UnmergeCells(aOption, bRecord, bApi);
 +}
 +
 +bool ScDocFunc::UnmergeCells( const ScCellMergeOption& rOption, BOOL bRecord, BOOL bApi )
 +{
 +    using ::std::set;
-+
+ 
 +    if (rOption.maTabs.empty())
 +        // Nothing to unmerge.
 +        return true;
 +
 +	ScDocShellModificator aModificator( rDocShell );
- 	ScDocument* pDoc = rDocShell.GetDocument();
--	SCTAB nTab = rRange.aStart.Tab();
- 
- 	if (bRecord && !pDoc->IsUndoEnabled())
- 		bRecord = FALSE;
- 
--	if ( pDoc->HasAttrib( rRange, HASATTR_MERGED ) )
--	{
--		ScRange aExtended = rRange;
--		pDoc->ExtendMerge( aExtended );
--		ScRange aRefresh = aExtended;
--		pDoc->ExtendOverlapped( aRefresh );
+     ScDocument* pDoc = rDocShell.GetDocument();
+-    SCTAB nTab = rRange.aStart.Tab();
+ 
+     if (bRecord && !pDoc->IsUndoEnabled())
+         bRecord = FALSE;
+ 
+-    if ( pDoc->HasAttrib( rRange, HASATTR_MERGED ) )
 +    ScDocument* pUndoDoc = NULL;
 +    bool bBeep = false;
 +    for (set<SCTAB>::const_iterator itr = rOption.maTabs.begin(), itrEnd = rOption.maTabs.end();
 +          itr != itrEnd; ++itr)
-+    {
+     {
+-        ScRange aExtended = rRange;
+-        pDoc->ExtendMerge( aExtended );
 +        SCTAB nTab = *itr;
 +        ScRange aRange = rOption.getSingleRange(nTab);
 +        if ( !pDoc->HasAttrib(aRange, HASATTR_MERGED) )
@@ -274,62 +264,52 @@ index 123a716..fde95e5 100644
 +            bBeep = true;
 +            continue;
 +        }
- 
--		if (bRecord)
--		{
--			ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
--			pUndoDoc->InitUndo( pDoc, nTab, nTab );
--			pDoc->CopyToDocument( aExtended, IDF_ATTRIB, FALSE, pUndoDoc );
--			rDocShell.GetUndoManager()->AddUndoAction(
--				new ScUndoRemoveMerge( &rDocShell, rRange, pUndoDoc ) );
--		}
++
 +        ScRange aExtended = aRange;
 +        pDoc->ExtendMerge(aExtended);
-+        ScRange aRefresh = aExtended;
+         ScRange aRefresh = aExtended;
+-        pDoc->ExtendOverlapped( aRefresh );
 +        pDoc->ExtendOverlapped(aRefresh);
  
--		const SfxPoolItem& rDefAttr = pDoc->GetPool()->GetDefaultItem( ATTR_MERGE );
--		ScPatternAttr aPattern( pDoc->GetPool() );
--		aPattern.GetItemSet().Put( rDefAttr );
--		pDoc->ApplyPatternAreaTab( rRange.aStart.Col(), rRange.aStart.Row(),
--									rRange.aEnd.Col(), rRange.aEnd.Row(), nTab,
--									aPattern );
-+        if (bRecord)
-+        {
+         if (bRecord)
+         {
+-            ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+-            pUndoDoc->InitUndo( pDoc, nTab, nTab );
+-            pDoc->CopyToDocument( aExtended, IDF_ATTRIB, FALSE, pUndoDoc );
+-            rDocShell.GetUndoManager()->AddUndoAction(
+-                new ScUndoRemoveMerge( &rDocShell, rRange, pUndoDoc ) );
 +            if (!pUndoDoc)
 +            {
 +                pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
 +                pUndoDoc->InitUndo(pDoc, *rOption.maTabs.begin(), *rOption.maTabs.rbegin());
 +            }
 +            pDoc->CopyToDocument(aExtended, IDF_ATTRIB, FALSE, pUndoDoc);
-+        }
+         }
  
--		pDoc->RemoveFlagsTab( aExtended.aStart.Col(), aExtended.aStart.Row(),
--								aExtended.aEnd.Col(), aExtended.aEnd.Row(), nTab,
--								SC_MF_HOR | SC_MF_VER );
-+        const SfxPoolItem& rDefAttr = pDoc->GetPool()->GetDefaultItem( ATTR_MERGE );
-+        ScPatternAttr aPattern( pDoc->GetPool() );
-+        aPattern.GetItemSet().Put( rDefAttr );
+         const SfxPoolItem& rDefAttr = pDoc->GetPool()->GetDefaultItem( ATTR_MERGE );
+         ScPatternAttr aPattern( pDoc->GetPool() );
+         aPattern.GetItemSet().Put( rDefAttr );
+-        pDoc->ApplyPatternAreaTab( rRange.aStart.Col(), rRange.aStart.Row(),
+-                                    rRange.aEnd.Col(), rRange.aEnd.Row(), nTab,
+-                                    aPattern );
 +        pDoc->ApplyPatternAreaTab( aRange.aStart.Col(), aRange.aStart.Row(),
 +                                   aRange.aEnd.Col(), aRange.aEnd.Row(), nTab,
 +                                   aPattern );
  
--		pDoc->ExtendMerge( aRefresh, TRUE, FALSE );
-+        pDoc->RemoveFlagsTab( aExtended.aStart.Col(), aExtended.aStart.Row(),
+         pDoc->RemoveFlagsTab( aExtended.aStart.Col(), aExtended.aStart.Row(),
+-                                aExtended.aEnd.Col(), aExtended.aEnd.Row(), nTab,
+-                                SC_MF_HOR | SC_MF_VER );
 +                              aExtended.aEnd.Col(), aExtended.aEnd.Row(), nTab,
 +                              SC_MF_HOR | SC_MF_VER );
  
--		if ( !AdjustRowHeight( aExtended ) )
--			rDocShell.PostPaint( aExtended, PAINT_GRID );
--		aModificator.SetDocumentModified();
--	}
--	else if (!bApi)
--		Sound::Beep();		//! FALSE zurueck???
-+        pDoc->ExtendMerge( aRefresh, TRUE, FALSE );
-+
-+        if ( !AdjustRowHeight( aExtended ) )
-+            rDocShell.PostPaint( aExtended, PAINT_GRID );
-+    }
+         pDoc->ExtendMerge( aRefresh, TRUE, FALSE );
+ 
+         if ( !AdjustRowHeight( aExtended ) )
+             rDocShell.PostPaint( aExtended, PAINT_GRID );
+-        aModificator.SetDocumentModified();
+     }
+-    else if (!bApi)
+-        Sound::Beep();		//! FALSE zurueck???
 +    if (bBeep && !bApi)
 +        Sound::Beep();
 +
@@ -340,13 +320,10 @@ index 123a716..fde95e5 100644
 +    }
 +    aModificator.SetDocumentModified();
  
- 	return TRUE;
+     return TRUE;
  }
-diff --git sc/source/ui/inc/cellmergeoption.hxx sc/source/ui/inc/cellmergeoption.hxx
-new file mode 100644
-index 0000000..2e2dff2
---- /dev/null
-+++ sc/source/ui/inc/cellmergeoption.hxx
+--- sc/source/ui/inc/cellmergeoption.hxx.old	2010-03-03 16:59:13.000000000 +0100
++++ sc/source/ui/inc/cellmergeoption.hxx	2010-03-03 16:59:13.000000000 +0100
 @@ -0,0 +1,60 @@
 +/*************************************************************************
 + *
@@ -408,11 +385,9 @@ index 0000000..2e2dff2
 +
 +
 +#endif
-diff --git sc/source/ui/inc/docfunc.hxx sc/source/ui/inc/docfunc.hxx
-index 8490bab..9976230 100644
---- sc/source/ui/inc/docfunc.hxx
-+++ sc/source/ui/inc/docfunc.hxx
-@@ -49,6 +49,7 @@ class ScBaseCell;
+--- sc/source/ui/inc/docfunc.hxx.old	2010-03-03 16:44:04.000000000 +0100
++++ sc/source/ui/inc/docfunc.hxx	2010-03-03 16:59:13.000000000 +0100
+@@ -48,6 +48,7 @@ class ScBaseCell;
  class ScTokenArray;
  struct ScTabOpParam;
  class ScTableProtection;
@@ -420,23 +395,21 @@ index 8490bab..9976230 100644
  
  // ---------------------------------------------------------------------------
  
-@@ -172,9 +173,10 @@ public:
+@@ -171,9 +172,10 @@ public:
  
- 	BOOL			ResizeMatrix( const ScRange& rOldRange, const ScAddress& rNewEnd, BOOL bApi );
+     BOOL			ResizeMatrix( const ScRange& rOldRange, const ScAddress& rNewEnd, BOOL bApi );
  
--	BOOL			MergeCells( const ScRange& rRange, BOOL bContents,
+-    BOOL			MergeCells( const ScRange& rRange, BOOL bContents,
 +	BOOL			MergeCells( const ScCellMergeOption& rOption, BOOL bContents,
- 								BOOL bRecord, BOOL bApi );
--	BOOL			UnmergeCells( const ScRange& rRange, BOOL bRecord, BOOL bApi );
+                                 BOOL bRecord, BOOL bApi );
+-    BOOL			UnmergeCells( const ScRange& rRange, BOOL bRecord, BOOL bApi );
 + 	BOOL			UnmergeCells( const ScRange& rRange, BOOL bRecord, BOOL bApi );
 +	bool			UnmergeCells( const ScCellMergeOption& rOption, BOOL bRecord, BOOL bApi );
  
      BOOL            SetNewRangeNames( ScRangeName* pNewRanges, BOOL bApi );     // takes ownership of pNewRanges
- 	BOOL			ModifyRangeNames( const ScRangeName& rNewRanges, BOOL bApi );
-diff --git sc/source/ui/inc/undoblk.hxx sc/source/ui/inc/undoblk.hxx
-index 31932fd..2320502 100644
---- sc/source/ui/inc/undoblk.hxx
-+++ sc/source/ui/inc/undoblk.hxx
+     BOOL			ModifyRangeNames( const ScRangeName& rNewRanges, BOOL bApi );
+--- sc/source/ui/inc/undoblk.hxx.old	2010-03-03 16:59:11.000000000 +0100
++++ sc/source/ui/inc/undoblk.hxx	2010-03-03 16:59:13.000000000 +0100
 @@ -34,6 +34,7 @@
  #include "markdata.hxx"
  #include "viewutil.hxx"
@@ -445,21 +418,21 @@ index 31932fd..2320502 100644
  
  #include "cell.hxx"
  
-@@ -454,10 +455,8 @@ class ScUndoMerge: public ScSimpleUndo
+@@ -455,10 +456,8 @@ class ScUndoMerge: public ScSimpleUndo
  {
  public:
- 					TYPEINFO();
--					ScUndoMerge( ScDocShell* pNewDocShell,
--								 SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
--								 SCCOL nEndX,   SCROW nEndY,   SCTAB nEndZ,
+                     TYPEINFO();
+-                    ScUndoMerge( ScDocShell* pNewDocShell,
+-                                 SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
+-                                 SCCOL nEndX,   SCROW nEndY,   SCTAB nEndZ,
 -                                 bool bMergeContents, ScDocument* pUndoDoc, SdrUndoAction* pDrawUndo );
 +                    ScUndoMerge( ScDocShell* pNewDocShell, const ScCellMergeOption& rOption,
 +                                 bool bMergeContents, ScDocument* pUndoDoc, SdrUndoAction* pDrawUndo);
- 	virtual 		~ScUndoMerge();
+     virtual 		~ScUndoMerge();
  
- 	virtual void	Undo();
-@@ -468,7 +467,7 @@ public:
- 	virtual String	GetComment() const;
+     virtual void	Undo();
+@@ -469,7 +468,7 @@ public:
+     virtual String	GetComment() const;
  
  private:
 -    ScRange         maRange;
@@ -467,89 +440,82 @@ index 31932fd..2320502 100644
      bool            mbMergeContents;        // Merge contents in Redo().
      ScDocument*		mpUndoDoc;              // wenn Daten zusammengefasst
      SdrUndoAction*  mpDrawUndo;
-@@ -920,7 +919,7 @@ class ScUndoRemoveMerge: public ScBlockUndo
+@@ -950,7 +949,7 @@ class ScUndoRemoveMerge: public ScBlockU
  public:
- 					TYPEINFO();
- 					ScUndoRemoveMerge( ScDocShell* pNewDocShell,
--									   const ScRange& rArea,
+                     TYPEINFO();
+                     ScUndoRemoveMerge( ScDocShell* pNewDocShell,
+-                                       const ScRange& rArea,
 +									   const ScCellMergeOption& rOption,
- 									   ScDocument* pNewUndoDoc );
- 	virtual 		~ScUndoRemoveMerge();
+                                        ScDocument* pNewUndoDoc );
+     virtual 		~ScUndoRemoveMerge();
  
-@@ -932,6 +931,9 @@ public:
- 	virtual String	GetComment() const;
+@@ -962,6 +961,9 @@ public:
+     virtual String	GetComment() const;
  
  private:
 +    void            SetCurTab();
 +
 +    ScCellMergeOption maOption;
- 	ScDocument*		pUndoDoc;
+     ScDocument*		pUndoDoc;
  };
  
-diff --git sc/source/ui/inc/viewfunc.hxx sc/source/ui/inc/viewfunc.hxx
-index 1f5102e..051a705 100644
---- sc/source/ui/inc/viewfunc.hxx
-+++ sc/source/ui/inc/viewfunc.hxx
+--- sc/source/ui/inc/viewfunc.hxx.old	2010-03-03 16:44:04.000000000 +0100
++++ sc/source/ui/inc/viewfunc.hxx	2010-03-03 16:59:13.000000000 +0100
 @@ -242,7 +242,7 @@ public:
- 	BOOL			TestMergeCells();
- 	BOOL			TestRemoveMerge();
+     BOOL			TestMergeCells();
+     BOOL			TestRemoveMerge();
  
--	BOOL			MergeCells( BOOL bApi, BOOL& rDoContents, BOOL bRecord = TRUE );
+-    BOOL			MergeCells( BOOL bApi, BOOL& rDoContents, BOOL bRecord = TRUE );
 +	BOOL			MergeCells( BOOL bApi, BOOL& rDoContents, BOOL bRecord = TRUE, BOOL bCenter = FALSE );
- 	BOOL			RemoveMerge( BOOL bRecord = TRUE );
- 
- 	void			FillSimple( FillDir eDir, BOOL bRecord = TRUE );
-diff --git sc/source/ui/undo/undoblk.cxx sc/source/ui/undo/undoblk.cxx
-index 5b3e219..fe2c7bc 100644
---- sc/source/ui/undo/undoblk.cxx
-+++ sc/source/ui/undo/undoblk.cxx
-@@ -66,6 +66,7 @@
- #include "undoolk.hxx"
+     BOOL			RemoveMerge( BOOL bRecord = TRUE );
+ 
+     void			FillSimple( FillDir eDir, BOOL bRecord = TRUE );
+--- sc/source/ui/undo/undoblk.cxx.old	2009-10-08 16:17:09.000000000 +0200
++++ sc/source/ui/undo/undoblk.cxx	2010-03-03 16:59:13.000000000 +0100
+@@ -67,6 +67,7 @@
+ #include "clipparam.hxx"
  #include "sc.hrc"
  
 +#include <set>
  
  // STATIC DATA -----------------------------------------------------------
  
-@@ -2066,8 +2067,9 @@ BOOL __EXPORT ScUndoRemoveBreaks::CanRepeat(SfxRepeatTarget& rTarget) const
+@@ -2054,8 +2055,9 @@ BOOL __EXPORT ScUndoRemoveBreaks::CanRep
  //
  
  ScUndoRemoveMerge::ScUndoRemoveMerge( ScDocShell* pNewDocShell,
--									   const ScRange& rArea, ScDocument* pNewUndoDoc ) :
--	ScBlockUndo( pNewDocShell, rArea, SC_UNDO_SIMPLE ),
+-                                       const ScRange& rArea, ScDocument* pNewUndoDoc ) :
+-    ScBlockUndo( pNewDocShell, rArea, SC_UNDO_SIMPLE ),
 +                                      const ScCellMergeOption& rOption, ScDocument* pNewUndoDoc ) :
 +	ScBlockUndo( pNewDocShell, rOption.getFirstSingleRange(), SC_UNDO_SIMPLE ),
 +    maOption(rOption),
- 	pUndoDoc( pNewUndoDoc )
+     pUndoDoc( pNewUndoDoc )
  {
  }
-@@ -2084,66 +2086,78 @@ String __EXPORT ScUndoRemoveMerge::GetComment() const
+@@ -2072,66 +2074,78 @@ String __EXPORT ScUndoRemoveMerge::GetCo
  
  void __EXPORT ScUndoRemoveMerge::Undo()
  {
--	BeginUndo();
+-    BeginUndo();
 -
--	ScDocument* pDoc = pDocShell->GetDocument();
+-    ScDocument* pDoc = pDocShell->GetDocument();
+-
+-    ScRange aExtended = aBlockRange;
+-    pUndoDoc->ExtendMerge( aExtended );
 +    using ::std::set;
  
--	ScRange aExtended = aBlockRange;
--	pUndoDoc->ExtendMerge( aExtended );
+-    pDoc->DeleteAreaTab( aExtended, IDF_ATTRIB );
+-    pUndoDoc->CopyToDocument( aExtended, IDF_ATTRIB, FALSE, pDoc );
 +    SetCurTab();
 +    BeginUndo();
  
--	pDoc->DeleteAreaTab( aExtended, IDF_ATTRIB );
--	pUndoDoc->CopyToDocument( aExtended, IDF_ATTRIB, FALSE, pDoc );
-+    ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
- 
--	BOOL bDidPaint = FALSE;
--	ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
--	if ( pViewShell )
--	{
--		pViewShell->SetTabNo( aExtended.aStart.Tab() );
--		bDidPaint = pViewShell->AdjustRowHeight( aExtended.aStart.Row(), aExtended.aEnd.Row() );
--	}
--	if (!bDidPaint)
--		ScUndoUtil::PaintMore( pDocShell, aExtended );
+-    BOOL bDidPaint = FALSE;
+     ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
+-    if ( pViewShell )
+-    {
+-        pViewShell->SetTabNo( aExtended.aStart.Tab() );
+-        bDidPaint = pViewShell->AdjustRowHeight( aExtended.aStart.Row(), aExtended.aEnd.Row() );
++
 +	ScDocument* pDoc = pDocShell->GetDocument();
 +    for (set<SCTAB>::const_iterator itr = maOption.maTabs.begin(), itrEnd = maOption.maTabs.end();
 +          itr != itrEnd; ++itr)
@@ -567,9 +533,11 @@ index 5b3e219..fe2c7bc 100644
 +        }
 +        if (!bDidPaint)
 +            ScUndoUtil::PaintMore(pDocShell, aRange);
-+    }
+     }
+-    if (!bDidPaint)
+-        ScUndoUtil::PaintMore( pDocShell, aExtended );
  
- 	EndUndo();
+     EndUndo();
  }
  
  void __EXPORT ScUndoRemoveMerge::Redo()
@@ -577,42 +545,30 @@ index 5b3e219..fe2c7bc 100644
 +    using ::std::set;
 +
 +    SetCurTab();
- 	BeginRedo();
- 
--	SCTAB nTab = aBlockRange.aStart.Tab();
- 	ScDocument* pDoc = pDocShell->GetDocument();
--	ScRange aExtended = aBlockRange;
--	pDoc->ExtendMerge( aExtended );
--	ScRange aRefresh = aExtended;
--	pDoc->ExtendOverlapped( aRefresh );
--
--	//	ausfuehren
+     BeginRedo();
+ 
+-    SCTAB nTab = aBlockRange.aStart.Tab();
+     ScDocument* pDoc = pDocShell->GetDocument();
+-    ScRange aExtended = aBlockRange;
+-    pDoc->ExtendMerge( aExtended );
+-    ScRange aRefresh = aExtended;
+-    pDoc->ExtendOverlapped( aRefresh );
 -
--	const SfxPoolItem& rDefAttr = pDoc->GetPool()->GetDefaultItem( ATTR_MERGE );
--	ScPatternAttr aPattern( pDoc->GetPool() );
--	aPattern.GetItemSet().Put( rDefAttr );
--	pDoc->ApplyPatternAreaTab( aBlockRange.aStart.Col(), aBlockRange.aStart.Row(),
--								aBlockRange.aEnd.Col(), aBlockRange.aEnd.Row(), nTab,
--								aPattern );
+-    //	ausfuehren
 -
--	pDoc->RemoveFlagsTab( aExtended.aStart.Col(), aExtended.aStart.Row(),
--							aExtended.aEnd.Col(), aExtended.aEnd.Row(), nTab,
--							SC_MF_HOR | SC_MF_VER );
+-    const SfxPoolItem& rDefAttr = pDoc->GetPool()->GetDefaultItem( ATTR_MERGE );
+-    ScPatternAttr aPattern( pDoc->GetPool() );
+-    aPattern.GetItemSet().Put( rDefAttr );
+-    pDoc->ApplyPatternAreaTab( aBlockRange.aStart.Col(), aBlockRange.aStart.Row(),
+-                                aBlockRange.aEnd.Col(), aBlockRange.aEnd.Row(), nTab,
+-                                aPattern );
 -
--	pDoc->ExtendMerge( aRefresh, TRUE, FALSE );
--
--	//	Paint
+-    pDoc->RemoveFlagsTab( aExtended.aStart.Col(), aExtended.aStart.Row(),
+-                            aExtended.aEnd.Col(), aExtended.aEnd.Row(), nTab,
+-                            SC_MF_HOR | SC_MF_VER );
 +    ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
  
--	BOOL bDidPaint = FALSE;
--	ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
--	if ( pViewShell )
--	{
--		pViewShell->SetTabNo( aExtended.aStart.Tab() );
--		bDidPaint = pViewShell->AdjustRowHeight( aExtended.aStart.Row(), aExtended.aEnd.Row() );
--	}
--	if (!bDidPaint)
--		ScUndoUtil::PaintMore( pDocShell, aExtended );
+-    pDoc->ExtendMerge( aRefresh, TRUE, FALSE );
 +    for (set<SCTAB>::const_iterator itr = maOption.maTabs.begin(), itrEnd = maOption.maTabs.end();
 +          itr != itrEnd; ++itr)
 +    {
@@ -634,9 +590,16 @@ index 5b3e219..fe2c7bc 100644
 +                              SC_MF_HOR | SC_MF_VER );
 +    
 +        pDoc->ExtendMerge(aRange, TRUE, FALSE);
-+
+ 
+-    //	Paint
 +        //	Paint
-+
+ 
+-    BOOL bDidPaint = FALSE;
+-    ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
+-    if ( pViewShell )
+-    {
+-        pViewShell->SetTabNo( aExtended.aStart.Tab() );
+-        bDidPaint = pViewShell->AdjustRowHeight( aExtended.aStart.Row(), aExtended.aEnd.Row() );
 +        BOOL bDidPaint = FALSE;
 +        if ( pViewShell )
 +        {
@@ -645,12 +608,14 @@ index 5b3e219..fe2c7bc 100644
 +        }
 +        if (!bDidPaint)
 +            ScUndoUtil::PaintMore(pDocShell, aRange);
-+    }
+     }
+-    if (!bDidPaint)
+-        ScUndoUtil::PaintMore( pDocShell, aExtended );
  
- 	EndRedo();
+     EndRedo();
  }
-@@ -2159,6 +2173,13 @@ BOOL __EXPORT ScUndoRemoveMerge::CanRepeat(SfxRepeatTarget& rTarget) const
- 	return (rTarget.ISA(ScTabViewTarget));
+@@ -2147,6 +2161,13 @@ BOOL __EXPORT ScUndoRemoveMerge::CanRepe
+     return (rTarget.ISA(ScTabViewTarget));
  }
  
 +void ScUndoRemoveMerge::SetCurTab()
@@ -663,10 +628,8 @@ index 5b3e219..fe2c7bc 100644
  // -----------------------------------------------------------------------
  //
  //		nur Umrandung setzen, per ScRangeList (StarOne)
-diff --git sc/source/ui/undo/undoblk3.cxx sc/source/ui/undo/undoblk3.cxx
-index 5521813..f3f006c 100644
---- sc/source/ui/undo/undoblk3.cxx
-+++ sc/source/ui/undo/undoblk3.cxx
+--- sc/source/ui/undo/undoblk3.cxx.old	2010-03-03 16:59:11.000000000 +0100
++++ sc/source/ui/undo/undoblk3.cxx	2010-03-03 16:59:13.000000000 +0100
 @@ -34,6 +34,7 @@
  // INCLUDE -------------------------------------------------------------------
  
@@ -675,53 +638,66 @@ index 5521813..f3f006c 100644
  #include <svx/boxitem.hxx>
  #include <svx/srchitem.hxx>
  #include <svx/linkmgr.hxx>
-@@ -814,14 +815,12 @@ BOOL __EXPORT ScUndoAutoFill::CanRepeat(SfxRepeatTarget& rTarget) const
+@@ -801,14 +802,12 @@ BOOL __EXPORT ScUndoAutoFill::CanRepeat(
  
  //----------------------------------------------------------------------------
  
 -ScUndoMerge::ScUndoMerge( ScDocShell* pNewDocShell,
--							SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
--							SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
+-                            SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
+-                            SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
 -                            bool bMergeContents, ScDocument* pUndoDoc, SdrUndoAction* pDrawUndo )
 +ScUndoMerge::ScUndoMerge( ScDocShell* pNewDocShell, const ScCellMergeOption& rOption,
 +                          bool bMergeContents, ScDocument* pUndoDoc, SdrUndoAction* pDrawUndo )
- 		//
- 	:	ScSimpleUndo( pNewDocShell ),
- 		//
--		maRange( nStartX, nStartY, nStartZ, nEndX, nEndY, nEndZ ),
+         //
+     :	ScSimpleUndo( pNewDocShell ),
+         //
+-        maRange( nStartX, nStartY, nStartZ, nEndX, nEndY, nEndZ ),
 +        maOption(rOption),
          mbMergeContents( bMergeContents ),
          mpUndoDoc( pUndoDoc ),
          mpDrawUndo( pDrawUndo )
-@@ -850,51 +849,77 @@ String ScUndoMerge::GetComment() const
+@@ -837,51 +836,77 @@ String ScUndoMerge::GetComment() const
  
  void ScUndoMerge::DoChange( bool bUndo ) const
  {
--	ScDocument* pDoc = pDocShell->GetDocument();
+-    ScDocument* pDoc = pDocShell->GetDocument();
+-
+-    ScUndoUtil::MarkSimpleBlock( pDocShell, maRange );
 +    using ::std::set;
  
--	ScUndoUtil::MarkSimpleBlock( pDocShell, maRange );
-+    if (maOption.maTabs.empty())
-+        // Nothing to do.
-+        return;
- 
--	if (bUndo)
+-    if (bUndo)
 -        // remove merge (contents are copied back below from undo document)
--		pDoc->RemoveMerge( maRange.aStart.Col(), maRange.aStart.Row(), maRange.aStart.Tab() );
--	else
+-        pDoc->RemoveMerge( maRange.aStart.Col(), maRange.aStart.Row(), maRange.aStart.Tab() );
+-    else
 -        // repeat merge, but do not remove note captions (will be done by drawing redo below)
 -/*!*/	pDoc->DoMerge( maRange.aStart.Tab(),
--					   maRange.aStart.Col(), maRange.aStart.Row(),
+-                       maRange.aStart.Col(), maRange.aStart.Row(),
 -                       maRange.aEnd.Col(),   maRange.aEnd.Row(), false );
-+    ScDocument* pDoc = pDocShell->GetDocument();
-+    ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
++    if (maOption.maTabs.empty())
++        // Nothing to do.
++        return;
  
 -    // undo -> copy back deleted contents
--	if (bUndo && mpUndoDoc)
+-    if (bUndo && mpUndoDoc)
 -    {
 -        pDoc->DeleteAreaTab( maRange, IDF_CONTENTS|IDF_NOCAPTIONS );
 -        mpUndoDoc->CopyToDocument( maRange, IDF_ALL|IDF_NOCAPTIONS, FALSE, pDoc );
 -    }
+-
+-    // redo -> merge contents again
+-    else if (!bUndo && mbMergeContents)
+-    {
+-/*!*/   pDoc->DoMergeContents( maRange.aStart.Tab(),
+-                               maRange.aStart.Col(), maRange.aStart.Row(),
+-                               maRange.aEnd.Col(),   maRange.aEnd.Row()   );
+-    }
++    ScDocument* pDoc = pDocShell->GetDocument();
++    ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
+ 
+-    if (bUndo)
+-        DoSdrUndoAction( mpDrawUndo, pDoc );
+-    else
+-        RedoSdrUndoAction( mpDrawUndo );
 +    ScRange aCurRange = maOption.getSingleRange(pDocShell->GetCurTab());                          
 +    ScUndoUtil::MarkSimpleBlock(pDocShell, aCurRange);                                            
 +                                                                                                  
@@ -731,12 +707,12 @@ index 5521813..f3f006c 100644
 +        SCTAB nTab = *itr;                                                                        
 +        ScRange aRange = maOption.getSingleRange(nTab);                                           
  
--    // redo -> merge contents again
--    else if (!bUndo && mbMergeContents)
+-    BOOL bDidPaint = FALSE;
+-    ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
+-    if ( pViewShell )
 -    {
--/*!*/   pDoc->DoMergeContents( maRange.aStart.Tab(),
--							   maRange.aStart.Col(), maRange.aStart.Row(),
--							   maRange.aEnd.Col(),   maRange.aEnd.Row()   );
+-        pViewShell->SetTabNo( maRange.aStart.Tab() );
+-        bDidPaint = pViewShell->AdjustRowHeight( maRange.aStart.Row(), maRange.aEnd.Row() );
 +        if (bUndo)
 +            // remove merge (contents are copied back below from undo document)
 +            pDoc->RemoveMerge( aRange.aStart.Col(), aRange.aStart.Row(), aRange.aStart.Tab() );
@@ -789,31 +765,16 @@ index 5521813..f3f006c 100644
 +            ScUndoUtil::PaintMore(pDocShell, aRange);
      }
  
--    if (bUndo)
--        DoSdrUndoAction( mpDrawUndo, pDoc );
--    else
--        RedoSdrUndoAction( mpDrawUndo );
--
--	BOOL bDidPaint = FALSE;
--	ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
--	if ( pViewShell )
--	{
--		pViewShell->SetTabNo( maRange.aStart.Tab() );
--		bDidPaint = pViewShell->AdjustRowHeight( maRange.aStart.Row(), maRange.aEnd.Row() );
--	}
--
--	if (!bDidPaint)
--		ScUndoUtil::PaintMore( pDocShell, maRange );
+-    if (!bDidPaint)
+-        ScUndoUtil::PaintMore( pDocShell, maRange );
 -
--	ShowTable( maRange );
+-    ShowTable( maRange );
 +	ShowTable(aCurRange);
  }
  
  
-diff --git sc/source/ui/unoobj/cellsuno.cxx sc/source/ui/unoobj/cellsuno.cxx
-index c2eb810..d4cfb42 100644
---- sc/source/ui/unoobj/cellsuno.cxx
-+++ sc/source/ui/unoobj/cellsuno.cxx
+--- sc/source/ui/unoobj/cellsuno.cxx.old	2010-03-03 16:44:07.000000000 +0100
++++ sc/source/ui/unoobj/cellsuno.cxx	2010-03-03 16:59:13.000000000 +0100
 @@ -71,6 +71,7 @@
  #include <com/sun/star/text/WritingMode2.hpp>
  
@@ -822,28 +783,25 @@ index c2eb810..d4cfb42 100644
  #include "cellsuno.hxx"
  #include "cursuno.hxx"
  #include "textuno.hxx"
-@@ -5404,10 +5405,14 @@ void SAL_CALL ScCellRangeObj::merge( sal_Bool bMerge ) throw(uno::RuntimeExcepti
- 	if ( pDocSh )
- 	{
- 		ScDocFunc aFunc(*pDocSh);
+@@ -5334,10 +5335,14 @@ void SAL_CALL ScCellRangeObj::merge( sal
+     if ( pDocSh )
+     {
+         ScDocFunc aFunc(*pDocSh);
 +        ScCellMergeOption aMergeOption(
 +            aRange.aStart.Col(), aRange.aStart.Row(), 
 +            aRange.aEnd.Col(), aRange.aEnd.Row(), false);
 +        aMergeOption.maTabs.insert(aRange.aStart.Tab());
- 		if ( bMerge )
--			aFunc.MergeCells( aRange, FALSE, TRUE, TRUE );
+         if ( bMerge )
+-            aFunc.MergeCells( aRange, FALSE, TRUE, TRUE );
 +			aFunc.MergeCells( aMergeOption, FALSE, TRUE, TRUE );
- 		else
--			aFunc.UnmergeCells( aRange, TRUE, TRUE );
+         else
+-            aFunc.UnmergeCells( aRange, TRUE, TRUE );
 +			aFunc.UnmergeCells( aMergeOption, TRUE, TRUE );
  
- 		//!	Fehler abfangen?
- 	}
-diff --git sc/source/ui/view/cellmergeoption.cxx sc/source/ui/view/cellmergeoption.cxx
-new file mode 100644
-index 0000000..ed6b8cb
---- /dev/null
-+++ sc/source/ui/view/cellmergeoption.cxx
+         //!	Fehler abfangen?
+     }
+--- sc/source/ui/view/cellmergeoption.cxx.old	2010-03-03 16:59:13.000000000 +0100
++++ sc/source/ui/view/cellmergeoption.cxx	2010-03-03 16:59:13.000000000 +0100
 @@ -0,0 +1,74 @@
 +/*************************************************************************
 + *
@@ -919,11 +877,9 @@ index 0000000..ed6b8cb
 +
 +    return getSingleRange(nTab);
 +}
-diff --git sc/source/ui/view/cellsh3.cxx sc/source/ui/view/cellsh3.cxx
-index 57309e3..c689fa1 100644
---- sc/source/ui/view/cellsh3.cxx
-+++ sc/source/ui/view/cellsh3.cxx
-@@ -772,6 +772,7 @@ void ScCellShell::Execute( SfxRequest& rReq )
+--- sc/source/ui/view/cellsh3.cxx.old	2009-10-08 16:17:09.000000000 +0200
++++ sc/source/ui/view/cellsh3.cxx	2010-03-03 16:59:13.000000000 +0100
+@@ -772,6 +772,7 @@ void ScCellShell::Execute( SfxRequest& r
              {
                  // test whether to merge or to split
                  bool bMerge = false;
@@ -931,7 +887,7 @@ index 57309e3..c689fa1 100644
                  switch( nSlot )
                  {
                      case FID_MERGE_ON:
-@@ -782,6 +783,7 @@ void ScCellShell::Execute( SfxRequest& rReq )
+@@ -782,6 +783,7 @@ void ScCellShell::Execute( SfxRequest& r
                      break;
                      case FID_MERGE_TOGGLE:
                      {
@@ -939,7 +895,7 @@ index 57309e3..c689fa1 100644
                          SfxPoolItem* pItem = 0;
                          if( rBindings.QueryState( nSlot, pItem ) >= SFX_ITEM_DEFAULT )
                              bMerge = !static_cast< SfxBoolItem* >( pItem )->GetValue();
-@@ -802,7 +804,7 @@ void ScCellShell::Execute( SfxRequest& rReq )
+@@ -802,7 +804,7 @@ void ScCellShell::Execute( SfxRequest& r
                          bMoveContents = ((const SfxBoolItem*)pItem)->GetValue();
                      }
  
@@ -948,23 +904,19 @@ index 57309e3..c689fa1 100644
                      {
                          if (!bApi && bMoveContents)             // "ja" im Dialog geklickt
                              rReq.AppendItem( SfxBoolItem( nSlot, bMoveContents ) );
-diff --git sc/source/ui/view/makefile.mk sc/source/ui/view/makefile.mk
-index 48395f3..46b8122 100644
---- sc/source/ui/view/makefile.mk
-+++ sc/source/ui/view/makefile.mk
-@@ -100,6 +100,7 @@ SLOFILES =  \
-         $(SLO)$/output3.obj \
+--- sc/source/ui/view/makefile.mk.old	2010-03-03 16:44:04.000000000 +0100
++++ sc/source/ui/view/makefile.mk	2010-03-03 16:59:14.000000000 +0100
+@@ -101,6 +101,7 @@ SLOFILES =  \
+         $(SLO)$/overlayobject.obj \
          $(SLO)$/gridmerg.obj \
          $(SLO)$/invmerge.obj \
 +        $(SLO)$/cellmergeoption.obj \
          $(SLO)$/select.obj \
          $(SLO)$/olinewin.obj \
          $(SLO)$/hintwin.obj \
-diff --git sc/source/ui/view/viewfun2.cxx sc/source/ui/view/viewfun2.cxx
-index c563b9a..d6fd25d 100644
---- sc/source/ui/view/viewfun2.cxx
-+++ sc/source/ui/view/viewfun2.cxx
-@@ -70,6 +70,7 @@ using namespace com::sun::star;
+--- sc/source/ui/view/viewfun2.cxx.old	2010-03-03 16:44:04.000000000 +0100
++++ sc/source/ui/view/viewfun2.cxx	2010-03-03 16:59:14.000000000 +0100
+@@ -65,6 +65,7 @@
  #include "attrib.hxx"
  #include "autoform.hxx"
  #include "cell.hxx"					// EnterAutoSum
@@ -972,18 +924,18 @@ index c563b9a..d6fd25d 100644
  #include "compiler.hxx"
  #include "docfunc.hxx"
  #include "docpool.hxx"
-@@ -1087,7 +1088,7 @@ BOOL ScViewFunc::TestMergeCells()			// Vorab-Test (fuer Menue)
+@@ -1082,7 +1083,7 @@ BOOL ScViewFunc::TestMergeCells()			// V
  
  //----------------------------------------------------------------------------
  
 -BOOL ScViewFunc::MergeCells( BOOL bApi, BOOL& rDoContents, BOOL bRecord )
 +BOOL ScViewFunc::MergeCells( BOOL bApi, BOOL& rDoContents, BOOL bRecord, BOOL bCenter )
  {
- 	//	Editable- und Verschachtelungs-Abfrage muss vorneweg sein (auch in DocFunc),
- 	//	damit dann nicht die Inhalte-QueryBox kommt
-@@ -1130,10 +1131,26 @@ BOOL ScViewFunc::MergeCells( BOOL bApi, BOOL& rDoContents, BOOL bRecord )
- 		return FALSE;
- 	}
+     //	Editable- und Verschachtelungs-Abfrage muss vorneweg sein (auch in DocFunc),
+     //	damit dann nicht die Inhalte-QueryBox kommt
+@@ -1125,10 +1126,26 @@ BOOL ScViewFunc::MergeCells( BOOL bApi,
+         return FALSE;
+     }
  
 +    // Check for the contents of all selected tables.
 +    bool bAskDialog = false;
@@ -1002,24 +954,24 @@ index c563b9a..d6fd25d 100644
 +            bAskDialog = true;
 +    }
 +
- 	BOOL bOk = TRUE;
+     BOOL bOk = TRUE;
  
--	if ( !pDoc->IsBlockEmpty( nStartTab, nStartCol,nStartRow+1, nStartCol,nEndRow, true ) ||
--		 !pDoc->IsBlockEmpty( nStartTab, nStartCol+1,nStartRow, nEndCol,nEndRow, true ) )
+-    if ( !pDoc->IsBlockEmpty( nStartTab, nStartCol,nStartRow+1, nStartCol,nEndRow, true ) ||
+-         !pDoc->IsBlockEmpty( nStartTab, nStartCol+1,nStartRow, nEndCol,nEndRow, true ) )
 +    if (bAskDialog)
- 	{
- 		if (!bApi)
- 		{
-@@ -1153,7 +1170,7 @@ BOOL ScViewFunc::MergeCells( BOOL bApi, BOOL& rDoContents, BOOL bRecord )
- 	if (bOk)
- 	{
- 		HideCursor();
--		bOk = pDocSh->GetDocFunc().MergeCells( aMarkRange, rDoContents, bRecord, bApi );
+     {
+         if (!bApi)
+         {
+@@ -1148,7 +1165,7 @@ BOOL ScViewFunc::MergeCells( BOOL bApi,
+     if (bOk)
+     {
+         HideCursor();
+-        bOk = pDocSh->GetDocFunc().MergeCells( aMarkRange, rDoContents, bRecord, bApi );
 +		bOk = pDocSh->GetDocFunc().MergeCells( aMergeOption, rDoContents, bRecord, bApi );
- 		ShowCursor();
+         ShowCursor();
  
- 		if (bOk)
-@@ -1189,6 +1206,32 @@ BOOL ScViewFunc::TestRemoveMerge()
+         if (bOk)
+@@ -1184,6 +1201,32 @@ BOOL ScViewFunc::TestRemoveMerge()
  
  //----------------------------------------------------------------------------
  
@@ -1051,16 +1003,16 @@ index c563b9a..d6fd25d 100644
 +
  BOOL ScViewFunc::RemoveMerge( BOOL bRecord )
  {
- 	ScRange aRange;
-@@ -1200,12 +1243,39 @@ BOOL ScViewFunc::RemoveMerge( BOOL bRecord )
+     ScRange aRange;
+@@ -1195,12 +1238,39 @@ BOOL ScViewFunc::RemoveMerge( BOOL bReco
      }
- 	else if (GetViewData()->GetSimpleArea( aRange ) == SC_MARK_SIMPLE)
- 	{
+     else if (GetViewData()->GetSimpleArea( aRange ) == SC_MARK_SIMPLE)
+     {
 +        ScDocument* pDoc = GetViewData()->GetDocument();
          ScRange aExtended( aRange );
 -        GetViewData()->GetDocument()->ExtendMerge( aExtended );
 +        pDoc->ExtendMerge( aExtended );
- 		ScDocShell* pDocSh = GetViewData()->GetDocShell();
+         ScDocShell* pDocSh = GetViewData()->GetDocShell();
 +        const ScMarkData& rMark = GetViewData()->GetMarkData();
 +        SCTAB nTabCount = pDoc->GetTableCount();
 +        ScCellMergeOption aOption(aRange.aStart.Col(), aRange.aStart.Row(), aRange.aEnd.Col(), aRange.aEnd.Row());
@@ -1087,17 +1039,15 @@ index c563b9a..d6fd25d 100644
 +        }
 +        while (bExtended);
  
- 		HideCursor();
--		BOOL bOk = pDocSh->GetDocFunc().UnmergeCells( aRange, bRecord, FALSE );
+         HideCursor();
+-        BOOL bOk = pDocSh->GetDocFunc().UnmergeCells( aRange, bRecord, FALSE );
 +		BOOL bOk = pDocSh->GetDocFunc().UnmergeCells(aOption, bRecord, FALSE );
 +        aExtended = aOption.getFirstSingleRange();
          MarkRange( aExtended );
- 		ShowCursor();
+         ShowCursor();
  
-diff --git sc/uiconfig/scalc/menubar/menubar.xml sc/uiconfig/scalc/menubar/menubar.xml
-index 118fac7..322d448 100644
---- sc/uiconfig/scalc/menubar/menubar.xml
-+++ sc/uiconfig/scalc/menubar/menubar.xml
+--- sc/uiconfig/scalc/menubar/menubar.xml.old	2010-03-03 16:44:04.000000000 +0100
++++ sc/uiconfig/scalc/menubar/menubar.xml	2010-03-03 16:59:14.000000000 +0100
 @@ -218,7 +218,13 @@
                      <menu:menuitem menu:id=".uno:SetTabBgColor"/>
                  </menu:menupopup>
diff --git a/patches/dev300/calc-filter-by-date-strip-time.diff b/patches/dev300/calc-filter-by-date-strip-time.diff
index 53fc5b3..1319830 100644
--- a/patches/dev300/calc-filter-by-date-strip-time.diff
+++ b/patches/dev300/calc-filter-by-date-strip-time.diff
@@ -1,8 +1,6 @@
-diff --git sc/inc/column.hxx sc/inc/column.hxx
-index 47417c3..11f2955 100644
---- sc/inc/column.hxx
-+++ sc/inc/column.hxx
-@@ -379,7 +379,7 @@ public:
+--- sc/inc/column.hxx.old	2010-03-03 16:59:11.000000000 +0100
++++ sc/inc/column.hxx	2010-03-03 16:59:11.000000000 +0100
+@@ -378,7 +378,7 @@ public:
                  /// Including current, may return -1
      SCsROW		GetNextUnprotected( SCROW nRow, BOOL bUp ) const;
  
@@ -11,10 +9,8 @@ index 47417c3..11f2955 100644
      BOOL		GetDataEntries(SCROW nRow, TypedScStrCollection& rStrings, BOOL bLimit);
  
  //UNUSED2008-05  SCROW		NoteCount( SCROW nMaxRow = MAXROW ) const;
-diff --git sc/inc/dbcolect.hxx sc/inc/dbcolect.hxx
-index 1346b12..edd5a09 100644
---- sc/inc/dbcolect.hxx
-+++ sc/inc/dbcolect.hxx
+--- sc/inc/dbcolect.hxx.old	2010-03-03 16:59:10.000000000 +0100
++++ sc/inc/dbcolect.hxx	2010-03-03 16:59:11.000000000 +0100
 @@ -88,6 +88,7 @@ private:
      SCCOLROW		nQueryField[MAXQUERY];
      ScQueryOp		eQueryOp[MAXQUERY];
@@ -23,11 +19,9 @@ index 1346b12..edd5a09 100644
      String*			pQueryStr[MAXQUERY];
      double			nQueryVal[MAXQUERY];
      ScQueryConnect  eQueryConnect[MAXQUERY];
-diff --git sc/inc/document.hxx sc/inc/document.hxx
-index 06b3fbe..ddb87fa 100644
---- sc/inc/document.hxx
-+++ sc/inc/document.hxx
-@@ -1379,9 +1379,9 @@ public:
+--- sc/inc/document.hxx.old	2010-03-03 16:59:11.000000000 +0100
++++ sc/inc/document.hxx	2010-03-03 16:59:11.000000000 +0100
+@@ -1394,9 +1394,9 @@ public:
      void 			GetUpperCellString(SCCOL nCol, SCROW nRow, SCTAB nTab, String& rStr);
  
      BOOL			GetFilterEntries( SCCOL nCol, SCROW nRow, SCTAB nTab,
@@ -39,11 +33,9 @@ index 06b3fbe..ddb87fa 100644
      BOOL			GetDataEntries( SCCOL nCol, SCROW nRow, SCTAB nTab,
                                  TypedScStrCollection& rStrings, BOOL bLimit = FALSE );
      BOOL			GetFormulaEntries( TypedScStrCollection& rStrings );
-diff --git sc/inc/global.hxx sc/inc/global.hxx
-index cc2e078..de5be83 100644
---- sc/inc/global.hxx
-+++ sc/inc/global.hxx
-@@ -791,6 +791,7 @@ struct ScQueryEntry
+--- sc/inc/global.hxx.old	2010-03-03 16:44:03.000000000 +0100
++++ sc/inc/global.hxx	2010-03-03 16:59:11.000000000 +0100
+@@ -797,6 +797,7 @@ struct ScQueryEntry
  {
      BOOL			bDoQuery;
      BOOL			bQueryByString;
@@ -51,11 +43,9 @@ index cc2e078..de5be83 100644
      SCCOLROW		nField;
      ScQueryOp		eOp;
      ScQueryConnect  eConnect;
-diff --git sc/inc/table.hxx sc/inc/table.hxx
-index 597baf3..d623a9c 100644
---- sc/inc/table.hxx
-+++ sc/inc/table.hxx
-@@ -638,8 +638,8 @@ public:
+--- sc/inc/table.hxx.old	2010-03-03 16:59:11.000000000 +0100
++++ sc/inc/table.hxx	2010-03-03 16:59:11.000000000 +0100
+@@ -643,8 +643,8 @@ public:
      SCSIZE		Query(ScQueryParam& rQueryParam, BOOL bKeepSub);
      BOOL		CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
  
@@ -66,11 +56,9 @@ index 597baf3..d623a9c 100644
      BOOL		GetDataEntries(SCCOL nCol, SCROW nRow, TypedScStrCollection& rStrings, BOOL bLimit);
  
      BOOL		HasColHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow );
-diff --git sc/source/core/data/column3.cxx sc/source/core/data/column3.cxx
-index 242c5c0..560801d 100644
---- sc/source/core/data/column3.cxx
-+++ sc/source/core/data/column3.cxx
-@@ -1470,8 +1470,9 @@ BOOL ScColumn::SetString( SCROW nRow, SCTAB nTabP, const String& rString,
+--- sc/source/core/data/column3.cxx.old	2010-03-03 16:44:02.000000000 +0100
++++ sc/source/core/data/column3.cxx	2010-03-03 16:59:11.000000000 +0100
+@@ -1470,8 +1470,9 @@ BOOL ScColumn::SetString( SCROW nRow, SC
  }
  
  
@@ -81,7 +69,7 @@ index 242c5c0..560801d 100644
      SvNumberFormatter* pFormatter = pDocument->GetFormatTable();
      String aString;
      SCROW nRow = 0;
-@@ -1507,6 +1508,18 @@ void ScColumn::GetFilterEntries(SCROW nStartRow, SCROW nEndRow, TypedScStrCollec
+@@ -1507,6 +1508,18 @@ void ScColumn::GetFilterEntries(SCROW nS
                      nValue = 0.0;
              }
  
@@ -100,7 +88,7 @@ index 242c5c0..560801d 100644
              pData = new TypedStrData( aString, nValue, SC_STRTYPE_VALUE );
          }
  #if 0 // DR
-@@ -1525,6 +1538,8 @@ void ScColumn::GetFilterEntries(SCROW nStartRow, SCROW nEndRow, TypedScStrCollec
+@@ -1525,6 +1538,8 @@ void ScColumn::GetFilterEntries(SCROW nS
  
          ++nIndex;
      }
@@ -109,11 +97,9 @@ index 242c5c0..560801d 100644
  }
  
  //
-diff --git sc/source/core/data/documen3.cxx sc/source/core/data/documen3.cxx
-index a0b524f..68e4383 100644
---- sc/source/core/data/documen3.cxx
-+++ sc/source/core/data/documen3.cxx
-@@ -1255,7 +1255,8 @@ BOOL ScDocument::HasRowHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol,
+--- sc/source/core/data/documen3.cxx.old	2009-10-19 13:27:16.000000000 +0200
++++ sc/source/core/data/documen3.cxx	2010-03-03 16:59:11.000000000 +0100
+@@ -1260,7 +1260,8 @@ BOOL ScDocument::HasRowHeader( SCCOL nSt
  //	GetFilterEntries - Eintraege fuer AutoFilter-Listbox
  //
  
@@ -123,7 +109,7 @@ index a0b524f..68e4383 100644
  {
      if ( ValidTab(nTab) && pTab[nTab] && pDBCollection )
      {
-@@ -1292,11 +1293,11 @@ BOOL ScDocument::GetFilterEntries( SCCOL nCol, SCROW nRow, SCTAB nTab, TypedScSt
+@@ -1297,11 +1298,11 @@ BOOL ScDocument::GetFilterEntries( SCCOL
  
              if ( bFilter )
              {
@@ -137,7 +123,7 @@ index a0b524f..68e4383 100644
              }
  
              return TRUE;
-@@ -1311,11 +1312,11 @@ BOOL ScDocument::GetFilterEntries( SCCOL nCol, SCROW nRow, SCTAB nTab, TypedScSt
+@@ -1316,11 +1317,11 @@ BOOL ScDocument::GetFilterEntries( SCCOL
  //
  
  BOOL ScDocument::GetFilterEntriesArea( SCCOL nCol, SCROW nStartRow, SCROW nEndRow,
@@ -151,11 +137,9 @@ index a0b524f..68e4383 100644
          return TRUE;
      }
  
-diff --git sc/source/core/data/global2.cxx sc/source/core/data/global2.cxx
-index f71b842..c9b2e3e 100644
---- sc/source/core/data/global2.cxx
-+++ sc/source/core/data/global2.cxx
-@@ -145,30 +145,32 @@ BOOL ScImportParam::operator==( const ScImportParam& rOther ) const
+--- sc/source/core/data/global2.cxx.old	2010-03-03 16:44:03.000000000 +0100
++++ sc/source/core/data/global2.cxx	2010-03-03 16:59:11.000000000 +0100
+@@ -145,30 +145,32 @@ BOOL ScImportParam::operator==( const Sc
  //------------------------------------------------------------------------
  // struct ScQueryParam:
  
@@ -171,9 +155,19 @@ index f71b842..c9b2e3e 100644
 +    nVal(0.0),
 +    pSearchParam(NULL),
 +    pSearchText(NULL)
-+{
-+}
-+
+ {
+-    bDoQuery		= FALSE;
+-    bQueryByString	= FALSE;
+-    eOp				= SC_EQUAL;
+-    eConnect		= SC_AND;
+-    nField			= 0;
+-    nVal			= 0.0;
+-    pStr			= new String;
+-    pSearchParam	= NULL;
+-    pSearchText		= NULL;
+ }
+ 
+-ScQueryEntry::ScQueryEntry(const ScQueryEntry& r)
 +ScQueryEntry::ScQueryEntry(const ScQueryEntry& r) :
 +    bDoQuery(r.bDoQuery),
 +    bQueryByString(r.bQueryByString),
@@ -186,19 +180,6 @@ index f71b842..c9b2e3e 100644
 +    pSearchParam(NULL),
 +    pSearchText(NULL)
  {
--    bDoQuery		= FALSE;
--    bQueryByString	= FALSE;
--    eOp				= SC_EQUAL;
--    eConnect		= SC_AND;
--    nField			= 0;
--    nVal			= 0.0;
--    pStr			= new String;
--    pSearchParam	= NULL;
--    pSearchText		= NULL;
--}
--
--ScQueryEntry::ScQueryEntry(const ScQueryEntry& r)
--{
 -    bDoQuery		= r.bDoQuery;
 -    bQueryByString	= r.bQueryByString;
 -    eOp				= r.eOp;
@@ -211,7 +192,7 @@ index f71b842..c9b2e3e 100644
  }
  
  ScQueryEntry::~ScQueryEntry()
-@@ -185,6 +187,7 @@ ScQueryEntry& ScQueryEntry::operator=( const ScQueryEntry& r )
+@@ -185,6 +187,7 @@ ScQueryEntry& ScQueryEntry::operator=( c
  {
      bDoQuery		= r.bDoQuery;
      bQueryByString	= r.bQueryByString;
@@ -227,7 +208,7 @@ index f71b842..c9b2e3e 100644
      eOp				= SC_EQUAL;
      eConnect		= SC_AND;
      nField			= 0;
-@@ -223,6 +227,7 @@ BOOL ScQueryEntry::operator==( const ScQueryEntry& r ) const
+@@ -223,6 +227,7 @@ BOOL ScQueryEntry::operator==( const ScQ
  {
      return bDoQuery			== r.bDoQuery
          && bQueryByString	== r.bQueryByString
@@ -235,12 +216,9 @@ index f71b842..c9b2e3e 100644
          && eOp				== r.eOp
          && eConnect			== r.eConnect
          && nField			== r.nField
-diff --git sc/source/core/data/table3.cxx sc/source/core/data/table3.cxx
-index 7dffb3d..7067799 100644
---- sc/source/core/data/table3.cxx
-+++ sc/source/core/data/table3.cxx
-@@ -60,7 +60,8 @@
- #include "progress.hxx"
+--- sc/source/core/data/table3.cxx.old	2010-03-03 16:59:10.000000000 +0100
++++ sc/source/core/data/table3.cxx	2010-03-03 16:59:11.000000000 +0100
+@@ -61,6 +61,7 @@
  #include "cellform.hxx"
  #include "postit.hxx"
  #include "queryparam.hxx"
@@ -248,7 +226,7 @@ index 7dffb3d..7067799 100644
  
  #include <vector>
  
-@@ -1143,6 +1144,20 @@ BOOL ScTable::ValidQuery(SCROW nRow, const ScQueryParam& rParam,
+@@ -1144,6 +1145,20 @@ BOOL ScTable::ValidQuery(SCROW nRow, con
              }
              else
                  nCellVal = GetValue( static_cast<SCCOL>(rEntry.nField), nRow );
@@ -269,7 +247,7 @@ index 7dffb3d..7067799 100644
              switch (rEntry.eOp)
              {
                  case SC_EQUAL :
-@@ -1930,12 +1945,13 @@ BOOL ScTable::HasRowHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL /* nEndCol *
+@@ -1931,12 +1946,13 @@ BOOL ScTable::HasRowHeader( SCCOL nStart
      return TRUE;
  }
  
@@ -286,7 +264,7 @@ index 7dffb3d..7067799 100644
  {
      // remove the entry for this column from the query parameter
      ScQueryParam aParam( rParam );
-@@ -1953,15 +1969,18 @@ void ScTable::GetFilteredFilterEntries( SCCOL nCol, SCROW nRow1, SCROW nRow2, co
+@@ -1954,15 +1970,18 @@ void ScTable::GetFilteredFilterEntries(
  
      BOOL* pSpecial = new BOOL[nEntryCount];
      lcl_PrepareQuery( pDocument, this, aParam, pSpecial );
@@ -307,11 +285,9 @@ index 7dffb3d..7067799 100644
      delete[] pSpecial;
  }
  
-diff --git sc/source/core/tool/dbcolect.cxx sc/source/core/tool/dbcolect.cxx
-index 162fcbd..9ed2645 100644
---- sc/source/core/tool/dbcolect.cxx
-+++ sc/source/core/tool/dbcolect.cxx
-@@ -158,6 +158,7 @@ ScDBData::ScDBData( const ScDBData& rData ) :
+--- sc/source/core/tool/dbcolect.cxx.old	2010-03-03 16:59:10.000000000 +0100
++++ sc/source/core/tool/dbcolect.cxx	2010-03-03 16:59:11.000000000 +0100
+@@ -159,6 +159,7 @@ ScDBData::ScDBData( const ScDBData& rDat
          nQueryField[i]		= rData.nQueryField[i];
          eQueryOp[i]			= rData.eQueryOp[i];
          bQueryByString[i]	= rData.bQueryByString[i];
@@ -319,7 +295,7 @@ index 162fcbd..9ed2645 100644
          pQueryStr[i]		= new String( *(rData.pQueryStr[i]) );
          nQueryVal[i]		= rData.nQueryVal[i];
          eQueryConnect[i]	= rData.eQueryConnect[i];
-@@ -248,6 +249,7 @@ ScDBData& ScDBData::operator= (const ScDBData& rData)
+@@ -249,6 +250,7 @@ ScDBData& ScDBData::operator= (const ScD
          nQueryField[i]		= rData.nQueryField[i];
          eQueryOp[i]			= rData.eQueryOp[i];
          bQueryByString[i]	= rData.bQueryByString[i];
@@ -327,7 +303,7 @@ index 162fcbd..9ed2645 100644
          *pQueryStr[i]		= *rData.pQueryStr[i];
          nQueryVal[i]		= rData.nQueryVal[i];
          eQueryConnect[i]	= rData.eQueryConnect[i];
-@@ -518,6 +520,7 @@ void ScDBData::GetQueryParam( ScQueryParam& rQueryParam ) const
+@@ -519,6 +521,7 @@ void ScDBData::GetQueryParam( ScQueryPar
          rEntry.nField = nQueryField[i];
          rEntry.eOp = eQueryOp[i];
          rEntry.bQueryByString = bQueryByString[i];
@@ -335,7 +311,7 @@ index 162fcbd..9ed2645 100644
          *rEntry.pStr = *pQueryStr[i];
          rEntry.nVal = nQueryVal[i];
          rEntry.eConnect = eQueryConnect[i];
-@@ -549,6 +552,7 @@ void ScDBData::SetQueryParam(const ScQueryParam& rQueryParam)
+@@ -550,6 +553,7 @@ void ScDBData::SetQueryParam(const ScQue
          nQueryField[i] = rEntry.nField;
          eQueryOp[i] = rEntry.eOp;
          bQueryByString[i] = rEntry.bQueryByString;
@@ -343,11 +319,9 @@ index 162fcbd..9ed2645 100644
          *pQueryStr[i] = *rEntry.pStr;
          nQueryVal[i] = rEntry.nVal;
          eQueryConnect[i] = rEntry.eConnect;
-diff --git sc/source/ui/dbgui/filtdlg.cxx sc/source/ui/dbgui/filtdlg.cxx
-index 4a2d4d4..4f56adb 100644
---- sc/source/ui/dbgui/filtdlg.cxx
-+++ sc/source/ui/dbgui/filtdlg.cxx
-@@ -451,24 +451,27 @@ void ScFilterDlg::UpdateValueList( USHORT nList )
+--- sc/source/ui/dbgui/filtdlg.cxx.old	2009-10-08 16:17:09.000000000 +0200
++++ sc/source/ui/dbgui/filtdlg.cxx	2010-03-03 16:59:11.000000000 +0100
+@@ -451,24 +451,27 @@ void ScFilterDlg::UpdateValueList( USHOR
              SCCOL nColumn = theQueryData.nCol1 + static_cast<SCCOL>(nFieldSelPos) - 1;
              if (!pEntryLists[nColumn])
              {
@@ -377,7 +351,7 @@ index 4a2d4d4..4f56adb 100644
                  TypedStrData* pHdrEntry = aHdrColl[0];
                  if ( pHdrEntry )
                  {
-@@ -1064,7 +1067,8 @@ IMPL_LINK( ScFilterDlg, ValModifyHdl, ComboBox*, pEd )
+@@ -1064,7 +1067,8 @@ IMPL_LINK( ScFilterDlg, ValModifyHdl, Co
                  static_cast<SCCOL>(nField) - 1) : static_cast<SCCOL>(0);
             
              ScQueryOp eOp  = (ScQueryOp)pLbCond->GetSelectEntryPos();
@@ -387,11 +361,9 @@ index 4a2d4d4..4f56adb 100644
  
          }
      }		
-diff --git sc/source/ui/dbgui/pfiltdlg.cxx sc/source/ui/dbgui/pfiltdlg.cxx
-index 35bfc35..42c2c26 100644
---- sc/source/ui/dbgui/pfiltdlg.cxx
-+++ sc/source/ui/dbgui/pfiltdlg.cxx
-@@ -352,11 +352,12 @@ void ScPivotFilterDlg::UpdateValueList( USHORT nList )
+--- sc/source/ui/dbgui/pfiltdlg.cxx.old	2009-10-07 15:06:14.000000000 +0200
++++ sc/source/ui/dbgui/pfiltdlg.cxx	2010-03-03 16:59:11.000000000 +0100
+@@ -352,11 +352,12 @@ void ScPivotFilterDlg::UpdateValueList(
                  SCROW	nFirstRow	= theQueryData.nRow1;
                  SCROW	nLastRow	= theQueryData.nRow2;
                  nFirstRow++;
@@ -405,10 +377,8 @@ index 35bfc35..42c2c26 100644
              }
  
              TypedScStrCollection* pColl = pEntryLists[nColumn];
-diff --git sc/source/ui/inc/filtdlg.hxx sc/source/ui/inc/filtdlg.hxx
-index c418e82..7409b5a 100644
---- sc/source/ui/inc/filtdlg.hxx
-+++ sc/source/ui/inc/filtdlg.hxx
+--- sc/source/ui/inc/filtdlg.hxx.old	2009-10-08 16:17:09.000000000 +0200
++++ sc/source/ui/inc/filtdlg.hxx	2010-03-03 16:59:11.000000000 +0100
 @@ -167,6 +167,7 @@ private:
      ListBox*			aFieldLbArr[4];
      ListBox*			aCondLbArr[4];
@@ -417,11 +387,9 @@ index c418e82..7409b5a 100644
      BOOL                bRefreshExceptQuery[MAXQUERY];
      USHORT				nFieldCount;
      BOOL				bRefInputMode;
-diff --git sc/source/ui/inc/gridwin.hxx sc/source/ui/inc/gridwin.hxx
-index 4013e1a..aae0353 100644
---- sc/source/ui/inc/gridwin.hxx
-+++ sc/source/ui/inc/gridwin.hxx
-@@ -218,7 +218,7 @@ private:
+--- sc/source/ui/inc/gridwin.hxx.old	2010-03-03 16:44:05.000000000 +0100
++++ sc/source/ui/inc/gridwin.hxx	2010-03-03 16:59:11.000000000 +0100
+@@ -219,7 +219,7 @@ private:
  
      BOOL 			IsAutoFilterActive( SCCOL nCol, SCROW nRow, SCTAB nTab );
      void			ExecFilter( ULONG nSel, SCCOL nCol, SCROW nRow,
@@ -430,11 +398,9 @@ index 4013e1a..aae0353 100644
      void			FilterSelect( ULONG nSel );
  
      void			ExecDataSelect( SCCOL nCol, SCROW nRow, const String& rStr );
-diff --git sc/source/ui/view/gridwin.cxx sc/source/ui/view/gridwin.cxx
-index b547e2c..6fc33d5 100644
---- sc/source/ui/view/gridwin.cxx
-+++ sc/source/ui/view/gridwin.cxx
-@@ -170,6 +170,7 @@ private:
+--- sc/source/ui/view/gridwin.cxx.old	2010-03-03 16:59:09.000000000 +0100
++++ sc/source/ui/view/gridwin.cxx	2010-03-03 16:59:11.000000000 +0100
+@@ -173,6 +173,7 @@ private:
      BOOL			bInit;
      BOOL			bCancelled;
      BOOL            bInSelect;
@@ -442,7 +408,7 @@ index b547e2c..6fc33d5 100644
      ULONG			nSel;
      ScFilterBoxMode	eMode;
  
-@@ -193,6 +194,8 @@ public:
+@@ -196,6 +197,8 @@ public:
      BOOL            IsInInit() const        { return bInit; }
      void			SetCancelled()			{ bCancelled = TRUE; }
      BOOL            IsInSelect() const      { return bInSelect; }
@@ -451,7 +417,7 @@ index b547e2c..6fc33d5 100644
  };
  
  //-------------------------------------------------------------------
-@@ -208,6 +211,7 @@ ScFilterListBox::ScFilterListBox( Window* pParent, ScGridWindow* pGrid,
+@@ -211,6 +214,7 @@ ScFilterListBox::ScFilterListBox( Window
      bInit( TRUE ),
      bCancelled( FALSE ),
      bInSelect( FALSE ),
@@ -459,7 +425,7 @@ index b547e2c..6fc33d5 100644
      nSel( 0 ),
      eMode( eNewMode )
  {
-@@ -912,7 +916,9 @@ void ScGridWindow::DoAutoFilterMenue( SCCOL nCol, SCROW nRow, BOOL bDataSelect )
+@@ -916,7 +920,9 @@ void ScGridWindow::DoAutoFilterMenue( SC
          pFilterBox->SetSeparatorPos( nDefCount - 1 );
  
          //	get list entries
@@ -470,7 +436,7 @@ index b547e2c..6fc33d5 100644
  
          //	check widths of numerical entries (string entries are not included)
          //	so all numbers are completely visible
-@@ -1122,7 +1128,7 @@ void ScGridWindow::FilterSelect( ULONG nSel )
+@@ -1126,7 +1132,7 @@ void ScGridWindow::FilterSelect( ULONG n
              ExecDataSelect( nCol, nRow, aString );
              break;
          case SC_FILTERBOX_FILTER:
@@ -479,7 +445,7 @@ index b547e2c..6fc33d5 100644
              break;
          case SC_FILTERBOX_SCENARIO:
              pViewData->GetView()->UseScenario( aString );
-@@ -1155,7 +1161,7 @@ void ScGridWindow::ExecDataSelect( SCCOL nCol, SCROW nRow, const String& rStr )
+@@ -1159,7 +1165,7 @@ void ScGridWindow::ExecDataSelect( SCCOL
  
  void ScGridWindow::ExecFilter( ULONG nSel,
                                 SCCOL nCol, SCROW nRow,
@@ -488,7 +454,7 @@ index b547e2c..6fc33d5 100644
  {
      SCTAB nTab = pViewData->GetTabNo();
      ScDocument* pDoc = pViewData->GetDocument();
-@@ -1227,6 +1233,7 @@ void ScGridWindow::ExecFilter( ULONG nSel,

... etc. - the rest is truncated


More information about the ooo-build-commit mailing list