[Libreoffice-commits] .: patches/dev300
Michael Meeks
michael at kemper.freedesktop.org
Fri Mar 25 10:41:39 PDT 2011
patches/dev300/apply | 23
patches/dev300/piece-sfx2.diff | 43 -
patches/dev300/piece-sw.diff | 23
patches/dev300/piece-vbahelper.diff | 24
patches/dev300/sc-speed-html-import-sizing.diff | 139 ----
patches/dev300/sc-speed-html-import.diff | 247 --------
patches/dev300/svx-speed-editeng.diff | 117 ---
patches/dev300/unit-comphelper.diff | 703 ------------------------
patches/dev300/unit-deliver.diff | 198 ------
patches/dev300/unit-sc.diff | 244 --------
10 files changed, 1 insertion(+), 1760 deletions(-)
New commits:
commit 1f5c51f199f73defab6fa883c72b7bff4d79d15a
Author: Michael Meeks <michael.meeks at novell.com>
Date: Fri Mar 25 17:40:37 2011 +0000
remove verified obsolete patches
diff --git a/patches/dev300/apply b/patches/dev300/apply
index 0462ba3..f9b65e9 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -29,8 +29,7 @@ Win32Common : Common, Defaults, Win32Only, CliMonoCommon, CliComponent, NotDebia
# Experimental sections
Experimental: VBAUntested, ArkOnlyExperimental, \
UnUsedButNotYetRemovedFromGit, WebDAV, \
- PostgreSQL, SELinux, \
- UnitBootstrap, RadioButtons, WWInProgress, \
+ PostgreSQL, SELinux, RadioButtons, WWInProgress, \
KDE4Experimental, MinGW, CalcExperimental, \
OOXMLExportExperimental, CrossWin32Patches, AutoLayout, \
WriterNavigation \
@@ -1490,13 +1489,6 @@ sc-standard-filter-options.diff, i#35579, michael
# Saves and loads the standard filters in ods
sc-standard-filter-options-ods-hack.diff, i#35579, jonp
-# accelerate calc HTML import from it's horribly turgid state
-# removes an N^2 algorithm, and saves 8 bn cycles for a small
-# HTML file for me.
-sc-speed-html-import.diff, i#100827, michael
-sc-speed-html-import-sizing.diff, i#100827, michael
-svx-speed-editeng.diff, i#100827, michael
-
# localize fails with duplicated symlinks
transex3-localize-find.diff, i#102296, pmladek
@@ -1621,16 +1613,6 @@ unittesting-xmloff.diff
unittesting-xmlscript.diff
unittesting-xmlsecurity.diff
-[ UnitBootstrap ]
-SectionOwner => michael
-SectionIssue => i#86525
-
-# initial cut at a unit testing framework
-unit-deliver.diff
-unit-comphelper.diff
-unit-sc.diff
-
-
[ OxygenOfficePalettes ]
palette-enhanced-arrow.diff
## palette-enhanced-color.diff
@@ -1976,7 +1958,6 @@ piece-target.diff
piece-icons.diff
piece-startup.diff
piece-basic.diff
-piece-sfx2.diff
piece-svx.diff
piece-vcl.diff
# zipintro is not kind to us ...
@@ -2013,9 +1994,7 @@ piece-setup_native.diff
piece-jvmfwk.diff
piece-forms.diff
piece-apache-commons.diff
-piece-vbahelper.diff
piece-sc.diff
-piece-sw.diff
piece-xmerge.diff
piece-packimages.diff
piece-automation.diff
diff --git a/patches/dev300/piece-sfx2.diff b/patches/dev300/piece-sfx2.diff
deleted file mode 100644
index 58b89d9..0000000
--- a/patches/dev300/piece-sfx2.diff
+++ /dev/null
@@ -1,43 +0,0 @@
---- solenv/inc/extension_post.mk.old 2010-07-19 11:41:49.000000000 +0200
-+++ solenv/inc/extension_post.mk 2010-07-19 11:43:56.000000000 +0200
-@@ -30,6 +30,8 @@ EXTENSION_TARGET:=$(ZIP9TARGETN)
- .SOURCE.xcu : $(MISC)/$(EXTNAME)/merge $(MISC)/$(EXTNAME)/registry/data $(MISC)/$(COMPONENT_SHARED_CONFIG)_in/merge $(MISC)/$(COMPONENT_SHARED_CONFIG)_in/registry/data $(COMPONENT_CONFIGDIR) .
- .SOURCE.xcs : $(MISC)/$(EXTNAME)/registry $(MISC)/$(EXTNAME)/registry/schema .
-
-+LICENSEDIR*=$(OO_INSTDIR)
-+
- fixme=$(MISC)/$(EXTNAME)/merge/$(MISC)
- fixme2=$(fixme:n)
-
-@@ -145,9 +147,9 @@ $(DESCRIPTION) $(PHONYDESC) : $(DESCRIPT
- # may not fit...
- .IF "$(CUSTOM_LICENSE)"==""
- .IF "$(GUI)" == "WNT"
--PACKLICDEPS=$(SOLARBINDIR)/osl/license.txt
-+PACKLICDEPS=$(LICENSEDIR)/license.txt
- .ELSE # "$(GUI)" == "WNT"
--PACKLICDEPS=$(SOLARBINDIR)/osl/LICENSE
-+PACKLICDEPS=$(LICENSEDIR)/LICENSE
- .ENDIF # "$(GUI)" == "WNT"
- .ELSE # "$(CUSTOM_LICENSE)" == ""
- PACKLICDEPS=$(CUSTOM_LICENSE)
---- sfx2/workben/custompanel/makefile.mk.old 2010-06-18 10:32:12.000000000 +0200
-+++ sfx2/workben/custompanel/makefile.mk 2010-07-19 11:52:10.000000000 +0200
-@@ -33,6 +33,8 @@ ENABLE_EXCEPTIONS=TRUE
- LIBTARGET=NO
- EXTENSIONNAME:=custom-tool-panel
-
-+LICENSEDIR=$(SOLARPIECE)$/$(INPATH)$/bin$/osl
-+
- # --- Settings -----------------------------------------------------
-
- .INCLUDE : settings.mk
-@@ -67,7 +69,7 @@ SHL1STDLIBS= \
- $(SALHELPERLIB) \
- $(CPPUHELPERLIB)
-
--SHL1VERSIONMAP=$(SOLARSRC)/solenv/src/component.map
-+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
- SHL1LIBS= $(LIB1TARGET)
- SHL1DEF= $(MISC)/$(SHL1TARGET).def
- SHL1RPATH= OXT
diff --git a/patches/dev300/piece-sw.diff b/patches/dev300/piece-sw.diff
deleted file mode 100644
index cf8b9ab..0000000
--- a/patches/dev300/piece-sw.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- sw/source/ui/vba/makefile.mk.old 2009-03-02 18:24:23.000000000 +0100
-+++ sw/source/ui/vba/makefile.mk 2009-03-02 18:43:15.000000000 +0100
-@@ -80,7 +80,7 @@ ALLTAR : \
-
- $(SLOFILES) : $(MISC)$/$(TARGET).don
-
--$(MISC)$/$(TARGET).don : $(SOLARBINDIR)$/oovbaapi.rdb
-- +$(CPPUMAKER) -O$(INCCOM)$/$(TARGET) -BUCR $(SOLARBINDIR)$/oovbaapi.rdb -X$(SOLARBINDIR)$/types.rdb && echo > $@
-+$(MISC)$/$(TARGET).don : $(SPLITINSTALLDIR)$/oovbaapi.rdb
-+ +$(CPPUMAKER) -O$(INCCOM)$/$(TARGET) -BUCR $(SPLITINSTALLDIR)$/oovbaapi.rdb -X$(SOLARBINDIR)$/types.rdb && echo > $@
- echo $@
-
---- sw/uiconfig/layout/layout.mk.old1 2009-10-23 21:23:59.000000000 +0200
-+++ sw/uiconfig/layout/layout.mk 2009-10-23 21:24:26.000000000 +0200
-@@ -1,7 +1,7 @@
- # TODO: move to solenv/inc
- # copies: sw/uiconfig/layout svx/uiconfig/layout
-
--TRALAY=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/tralay
-+TRALAY=$(AUGMENT_LIBRARY_PATH) tralay
- XML_DEST=$(DLLDEST)
- XML_LANGS=$(alllangiso)
-
diff --git a/patches/dev300/piece-vbahelper.diff b/patches/dev300/piece-vbahelper.diff
deleted file mode 100644
index 21c17ea..0000000
--- a/patches/dev300/piece-vbahelper.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- vbahelper/source/vbahelper/makefile.mk.old 2010-07-20 14:46:30.000000000 +0200
-+++ vbahelper/source/vbahelper/makefile.mk 2010-07-20 15:42:35.000000000 +0200
-@@ -71,7 +71,7 @@ ALLTAR : \
-
- $(SLOFILES) : $(MISC)$/$(TARGET).don
-
--$(MISC)$/$(TARGET).don : $(SOLARBINDIR)$/oovbaapi.rdb
-- +$(CPPUMAKER) -O$(INCCOM)$/$(TARGET) -BUCR $(SOLARBINDIR)$/oovbaapi.rdb -X$(SOLARBINDIR)$/types.rdb && echo > $@
-+$(MISC)$/$(TARGET).don : $(SOLARPIECE)$/$(INPATH)$/bin$/oovbaapi.rdb
-+ +$(CPPUMAKER) -O$(INCCOM)$/$(TARGET) -BUCR $(SOLARPIECE)$/$(INPATH)$/bin$/oovbaapi.rdb -X$(SOLARBINDIR)$/types.rdb && echo > $@
- echo $@
-
---- vbahelper/source/msforms/makefile.mk.old 2010-07-20 14:46:30.000000000 +0200
-+++ vbahelper/source/msforms/makefile.mk 2010-07-20 15:40:44.000000000 +0200
-@@ -71,7 +71,7 @@ ALLTAR : \
-
- $(SLOFILES) : $(MISC)$/$(TARGET).don
-
--$(MISC)$/$(TARGET).don : $(SOLARBINDIR)$/oovbaapi.rdb
-- +$(CPPUMAKER) -O$(INCCOM)$/$(TARGET) -BUCR $(SOLARBINDIR)$/oovbaapi.rdb -X$(SOLARBINDIR)$/types.rdb && echo > $@
-+$(MISC)$/$(TARGET).don : $(SOLARPIECE)$/$(INPATH)$/bin$/oovbaapi.rdb
-+ +$(CPPUMAKER) -O$(INCCOM)$/$(TARGET) -BUCR $(SOLARPIECE)$/$(INPATH)$/bin$/oovbaapi.rdb -X$(SOLARBINDIR)$/types.rdb && echo > $@
- echo $@
-
diff --git a/patches/dev300/sc-speed-html-import-sizing.diff b/patches/dev300/sc-speed-html-import-sizing.diff
deleted file mode 100644
index 81ff7b9..0000000
--- a/patches/dev300/sc-speed-html-import-sizing.diff
+++ /dev/null
@@ -1,139 +0,0 @@
-diff -ur /opt/OpenOffice/svn-HEAD/build/ooo310-m4/sc/source/filter/html/htmlpars.cxx sc/source/filter/html/htmlpars.cxx
---- sc/source/filter/html/htmlpars.cxx
-+++ sc/source/filter/html/htmlpars.cxx
-@@ -2233,16 +2323,54 @@
-
- SCCOLROW ScHTMLTable::GetDocSize( ScHTMLOrient eOrient, SCCOLROW nCellPos ) const
- {
-- const ScSizeVec& rSizes = maSizes[ eOrient ];
-- return (static_cast< size_t >( nCellPos ) < rSizes.size()) ? rSizes[ nCellPos ] : 0;
-+ /* const ScSizeVec& rSizes = maSizes[ eOrient ];
-+ SCCOLROW nSize = (static_cast< size_t >( nCellPos ) < rSizes.size()) ? rSizes[ nCellPos ] : 0; */
-+
-+ const ScCumlSizeVec& rCSizes = maCumlSizes[ eOrient ];
-+
-+ if( static_cast< size_t >( nCellPos ) >= rCSizes.size() )
-+ return 0;
-+
-+ SCCOLROW nLastSize = 0;
-+ if( nCellPos > 0 )
-+ nLastSize = rCSizes[ nCellPos - 1 ];
-+ SCCOLROW nRealSize = rCSizes[ nCellPos ] - nLastSize;
-+/* if( nSize != nRealSize )
-+ {
-+ fprintf (stderr, "Size discrepancy at %d (%d vs %d)\n",
-+ (int)nCellPos, (int) nSize, (int) nRealSize);
-+ fprintf (stderr, "Table: ");
-+ for (size_t i = 0; i < rCSizes.size(); i++)
-+ fprintf (stderr, "%d ", rCSizes[i]);
-+ fprintf (stderr, "\n");
-+ for (size_t i = 0; i < rSizes.size(); i++)
-+ fprintf (stderr, "%d ", rSizes[i]);
-+ fprintf (stderr, "\n");
-+ }*/
-+ return nRealSize;
- }
-
- SCCOLROW ScHTMLTable::GetDocSize( ScHTMLOrient eOrient, SCCOLROW nCellBegin, SCCOLROW nCellEnd ) const
- {
-- SCCOLROW nSize = 0;
-+/* SCCOLROW nSize = 0;
- for( SCCOLROW nCellPos = nCellBegin; nCellPos < nCellEnd; ++nCellPos )
-- nSize += GetDocSize( eOrient, nCellPos );
-- return nSize;
-+ nSize += GetDocSize( eOrient, nCellPos ); */
-+
-+ const ScCumlSizeVec& rCSizes = maCumlSizes[ eOrient ];
-+ SCCOLROW nFirstSize = 0;
-+ if( nCellBegin > 0 )
-+ nFirstSize = rCSizes[ nCellBegin - 1 ];
-+ SCCOLROW nLastSize = 0;
-+ if( nCellEnd > 0 )
-+ nLastSize = rCSizes[ nCellEnd - 1 ];
-+ SCCOLROW nRealSize = nLastSize - nFirstSize;
-+
-+ /* if( nSize != nRealSize )
-+ {
-+ fprintf (stderr, "Multi-range size discrepancy at %d->before %d (%d vs %d)\n",
-+ (int)nCellBegin, (int)nCellEnd, (int) nSize, (int) nRealSize);
-+ } */
-+ return nRealSize;
- }
-
- SCCOLROW ScHTMLTable::GetDocSize( ScHTMLOrient eOrient ) const
-@@ -2559,11 +2702,49 @@
-
- void ScHTMLTable::SetDocSize( ScHTMLOrient eOrient, SCCOLROW nCellPos, SCCOLROW nSize )
- {
-- ScSizeVec& rSizes = maSizes[ eOrient ];
-+/* ScSizeVec& rSizes = maSizes[ eOrient ];
- if( static_cast< size_t >( nCellPos ) >= rSizes.size() )
- rSizes.resize( static_cast< size_t >( nCellPos + 1 ), 1 ); // expand with minimum height/width == 1
- if( rSizes[ nCellPos ] < nSize )
-- rSizes[ nCellPos ] = nSize;
-+ rSizes[ nCellPos ] = nSize; */
-+
-+ ScCumlSizeVec& rCSizes = maCumlSizes[ eOrient ];
-+ size_t oldSize = rCSizes.size();
-+ if( static_cast< size_t >( nCellPos ) >= rCSizes.size() )
-+ {
-+ rCSizes.resize( static_cast< size_t >( nCellPos + 1 ), 1 ); // expand with minimum height/width == 1
-+
-+ // Fill out the expansion with the correct cumulative sizes
-+ SCCOLROW lastSize = 0;
-+ if( oldSize > 0 )
-+ lastSize = rCSizes[ oldSize - 1 ];
-+ for( size_t i = oldSize; i < rCSizes.size(); i++ )
-+ rCSizes[ i ] = ++lastSize;
-+ }
-+
-+ // insert and shuffle everyone along a bit.
-+ // the common case is of no items to shuffle.
-+ {
-+ SCCOLROW nLastSize = 0;
-+ if( nCellPos > 0 )
-+ nLastSize = rCSizes[ nCellPos - 1 ];
-+
-+ SCCOLROW curSize = rCSizes[ nCellPos ] - nLastSize;
-+ if( curSize < nSize )
-+ {
-+ for( size_t i = nCellPos; i < rCSizes.size(); i++ )
-+ rCSizes[ i ] += nSize - curSize;
-+ }
-+ }
-+/* if (getenv ("INSSIZE")) {
-+ fprintf (stderr, "Table: ");
-+ for (size_t i = 0; i < rCSizes.size(); i++)
-+ fprintf (stderr, "%d ", rCSizes[i]);
-+ fprintf (stderr, "\n");
-+ for (size_t i = 0; i < rSizes.size(); i++)
-+ fprintf (stderr, "%d ", rSizes[i]);
-+ fprintf (stderr, "\n");
-+ }*/
- }
-
- void ScHTMLTable::CalcNeededDocSize(
-
-diff -ur /opt/OpenOffice/svn-HEAD/build/ooo310-m4/sc/source/filter/inc/htmlpars.hxx sc/source/filter/inc/htmlpars.hxx
---- sc/source/filter/inc/htmlpars.hxx
-+++ sc/source/filter/inc/htmlpars.hxx
-@@ -461,7 +463,8 @@
- private:
- typedef ::std::auto_ptr< ScHTMLTableMap > ScHTMLTableMapPtr;
- typedef ::std::auto_ptr< SfxItemSet > SfxItemSetPtr;
-- typedef ::std::vector< SCCOLROW > ScSizeVec;
-+// typedef ::std::vector< SCCOLROW > ScSizeVec;
-+ typedef ::std::vector< SCCOLROW > ScCumlSizeVec;
- typedef ::std::list< ScHTMLEntry* > ScHTMLEntryList;
- typedef ::std::map< ScHTMLPos, ScHTMLEntryList > ScHTMLEntryMap;
- typedef ::std::auto_ptr< ScHTMLEntry > ScHTMLEntryPtr;
-@@ -543,7 +546,8 @@
- ScHTMLEntryMap maEntryMap; /// List of entries for each cell.
- ScHTMLEntryList* mpCurrEntryList; /// Current entry list from map for faster access.
- ScHTMLEntryPtr mpCurrEntry; /// Working entry, not yet inserted in a list.
-- ScSizeVec maSizes[ 2 ]; /// Calc cell count of each HTML table column/row.
-+// ScSizeVec maSizes[ 2 ]; /// non-cumulative cell count of each HTML table column/row.
-+ ScCumlSizeVec maCumlSizes[ 2 ]; /// Cumulative cell count of each HTML table column/row.
- ScHTMLSize maSize; /// Size of the table.
- ScHTMLPos maCurrCell; /// Address of current cell to fill.
- ScHTMLPos maDocBasePos; /// Resulting base address in a Calc document.
diff --git a/patches/dev300/sc-speed-html-import.diff b/patches/dev300/sc-speed-html-import.diff
deleted file mode 100644
index 13beea6..0000000
--- a/patches/dev300/sc-speed-html-import.diff
+++ /dev/null
@@ -1,247 +0,0 @@
-diff -u -r source/pristine.filter/html/htmlpars.cxx source/filter/html/htmlpars.cxx
---- sc/source/filter/html/htmlpars.cxx
-+++ sc/source/filter/html/htmlpars.cxx
-@@ -72,6 +72,100 @@
-
- using namespace ::com::sun::star;
-
-+/*
-+ * Table to track which cells are used, and hence locked,
-+ * replacing old, horribly slow ScRangeList with N^2 behavior.
-+ */
-+class ScHTMLLockTable {
-+protected:
-+ struct ScAddressHashFunc : public std::unary_function< const ScAddress &, size_t >
-+ {
-+ size_t operator() (const ScAddress &addr) const
-+ {
-+ return static_cast< UINT16 >( addr.Row() ) ^ (static_cast< UINT8 >( addr.Col() ) << 16);
-+ }
-+ };
-+ std::hash_map<ScAddress, bool, ScAddressHashFunc> maIndividualCells;
-+ ScRangeList maRangeList;
-+public:
-+ ScHTMLLockTable()
-+ { }
-+ ~ScHTMLLockTable()
-+ { }
-+
-+ bool IsEmpty( const ScAddress &rAddr ) const
-+ {
-+ if( maIndividualCells.find( rAddr ) != maIndividualCells.end() )
-+ return false;
-+ return maRangeList.Find( rAddr ) == NULL;
-+ }
-+
-+ void AddRange( const ScRange &rRange )
-+ {
-+ if( rRange.aStart == rRange.aEnd )
-+ {
-+#if 0
-+ fprintf( stderr, "Single cell\n");
-+#endif
-+ maIndividualCells.insert( std::pair<ScAddress, bool>( rRange.aStart, true ) );
-+ }
-+ else
-+ {
-+#if 0
-+ fprintf (stderr, "Multi-cell: %d, %d -> %d, %d\n",
-+ (int) rRange.aStart.Col(), (int) rRange.aStart.Row(),
-+ (int) rRange.aEnd.Col(), (int) rRange.aEnd.Row()); */
-+#endif
-+ maRangeList.Append( rRange );
-+ }
-+ }
-+ ScHTMLSize GetSpan( const ScAddress &rAddr ) const
-+ {
-+ if( maIndividualCells.find( rAddr ) != maIndividualCells.end() )
-+ return ScHTMLSize (1, 1);
-+
-+ ScRange *pRange = maRangeList.Find( rAddr );
-+ if( pRange == NULL )
-+ return ScHTMLSize (1, 1);
-+
-+ return ScHTMLSize( pRange->aEnd.Col() - pRange->aStart.Col() + 1,
-+ pRange->aEnd.Row() - pRange->aStart.Row() + 1 );
-+ }
-+ sal_uInt32 Count() const
-+ {
-+ return maRangeList.Count();
-+ }
-+ void AppendRange( ScAddress aPos, const ScHTMLSize &rSpanSize,
-+ ScRange &rInsertedRange)
-+ {
-+ while( !IsEmpty( aPos ) )
-+ aPos.IncCol();
-+
-+ rInsertedRange = ScRange( aPos );
-+ rInsertedRange.aEnd.Move( rSpanSize.mnCols - 1, rSpanSize.mnRows - 1, 0 );
-+
-+ // Scan horizontally to find ranges that vertically overlap with us
-+ // and shrink them to move them up - this applies only to ranges,
-+ // individual cells will be to the left and/or above us and can't
-+ // be handled here...
-+ if( maRangeList.Intersects( rInsertedRange ) )
-+ {
-+ // This is a highly uncommon case:
-+ // we care only about ranges above us, thus use a lame algorithm:
-+ // check each cell in the first row, and shrink upwards.
-+ for( ScAddress aAddr( aPos ); aAddr.Col() < rInsertedRange.aEnd.Col(); aAddr.IncCol() )
-+ {
-+ ScRange *pRange;
-+ if( ( pRange = maRangeList.Find( aAddr ) ) != NULL )
-+ pRange->aEnd.SetRow( aPos.Row() - 1 );
-+ }
-+
-+ }
-+
-+ AddRange (rInsertedRange);
-+ }
-+};
-+
-
- SV_IMPL_VARARR_SORT( ScHTMLColOffset, ULONG );
-
-@@ -1971,6 +2061,7 @@
- mpParentTable( &rParentTable ),
- maTableId( rParentTable.maTableId.mrnUnusedId ),
- maTableItemSet( rParentTable.GetCurrItemSet() ),
-+ mpLockTable( new ScHTMLLockTable() ),
- mrEditEngine( rParentTable.mrEditEngine ),
- mrEEParseList( rParentTable.mrEEParseList ),
- mpCurrEntryList( 0 ),
-@@ -2010,6 +2101,7 @@
- mpParentTable( 0 ),
- maTableId( rnUnusedId ),
- maTableItemSet( rPool ),
-+ mpLockTable( new ScHTMLLockTable() ),
- mrEditEngine( rEditEngine ),
- mrEEParseList( rEEParseList ),
- mpCurrEntryList( 0 ),
-@@ -2028,6 +2120,7 @@
-
- ScHTMLTable::~ScHTMLTable()
- {
-+ delete mpLockTable;
- }
-
- const SfxItemSet& ScHTMLTable::GetCurrItemSet() const
-@@ -2038,10 +2131,7 @@
-
- ScHTMLSize ScHTMLTable::GetSpan( const ScHTMLPos& rCellPos ) const
- {
-- ScHTMLSize aSpan( 1, 1 );
-- if( ScRange* pRange = maLockList.Find( rCellPos.MakeAddr() ) )
-- aSpan.Set( pRange->aEnd.Col() - pRange->aStart.Col() + 1, pRange->aEnd.Row() - pRange->aStart.Row() + 1 );
-- return aSpan;
-+ return mpLockTable->GetSpan( rCellPos.MakeAddr() );
- }
-
- ScHTMLTable* ScHTMLTable::FindNestedTable( ScHTMLTableId nTableId ) const
-@@ -2435,24 +2525,12 @@
-
- void ScHTMLTable::InsertNewCell( const ScHTMLSize& rSpanSize )
- {
-- ScRange* pRange;
-+ ScRange aNewRange;
-+ mpLockTable->AppendRange( maCurrCell.MakeAddr(), rSpanSize, aNewRange );
-
-- // find an unused cell
-- while( (pRange = maLockList.Find( maCurrCell.MakeAddr() )) != 0 )
-- maCurrCell.mnCol = pRange->aEnd.Col() + 1;
-+ maCurrCell.mnCol = aNewRange.aStart.Col();
- mpCurrEntryList = &maEntryMap[ maCurrCell ];
-
-- // try to find collisions, shrink existing ranges
-- SCCOL nColEnd = maCurrCell.mnCol + rSpanSize.mnCols;
-- for( ScAddress aAddr( maCurrCell.MakeAddr() ); aAddr.Col() < nColEnd; aAddr.IncCol() )
-- if( (pRange = maLockList.Find( aAddr )) != 0 )
-- pRange->aEnd.SetRow( maCurrCell.mnRow - 1 );
--
-- // insert the new range into the lock list
-- ScRange aNewRange( maCurrCell.MakeAddr() );
-- aNewRange.aEnd.Move( rSpanSize.mnCols - 1, rSpanSize.mnRows - 1, 0 );
-- maLockList.Append( aNewRange );
--
- // adjust table size
- maSize.mnCols = ::std::max< SCCOL >( maSize.mnCols, aNewRange.aEnd.Col() + 1 );
- maSize.mnRows = ::std::max< SCROW >( maSize.mnRows, aNewRange.aEnd.Row() + 1 );
-@@ -2474,6 +2552,35 @@
- ImplDataOff();
- if( mbRowOn )
- {
-+#if 0
-+ if (maCurrCell.mnRow > 0) {
-+ // Try and back-merge the lock-list to avoid N^2 lookups
-+ SCCOL nColIdx = Min (0, maCurrCell.mnCol - 1);
-+ ScAddress aLastAddr = maCurrCell.MakeAddr();
-+ ScAddress aThisAddr = maCurrCell.MakeAddr();
-+ aLastAddr.IncRow( -1 );
-+ aLastAddr.SetCol( nColIdx );
-+ aThisAddr.SetCol( nColIdx );
-+ ScRange *pLastRange = maLockList.Find (aLastAddr);
-+ ScRange *pThisRange = maLockList.Find (aThisAddr);
-+ if (!pLastRange)
-+ fprintf (stderr, "Last : null\n");
-+ else
-+ fprintf (stderr, "Last: %d, %d -> %d, %d\n",
-+ pLastRange->aStart.Col(), pLastRange->aStart.Row(),
-+ pLastRange->aEnd.Col(), pLastRange->aEnd.Row());
-+ if (!pThisRange)
-+ fprintf (stderr, "This : null\n");
-+ else
-+ fprintf (stderr, "This: %d, %d -> %d, %d\n",
-+ pThisRange->aStart.Col(), pThisRange->aStart.Row(),
-+ pThisRange->aEnd.Col(), pThisRange->aEnd.Row());
-+ fprintf (stderr, "Lock list: %d long\n", maLockList.Count());
-+ }
-+ if (mpLockTable->Count() > 0)
-+ fprintf (stderr, "Lock list: %d long\n", (int)mpLockTable->Count());
-+#endif
-+
- mpRowItemSet.reset();
- ++maCurrCell.mnRow;
- mbRowOn = mbDataOn = false;
-@@ -2594,15 +2699,15 @@
- {
- for( aAddr.SetCol( 0 ); aAddr.Col() < maSize.mnCols; aAddr.IncCol() )
- {
-- if( !maLockList.Find( aAddr ) )
-+ if( mpLockTable->IsEmpty( aAddr ) )
- {
- // create a range for the lock list (used to calc. cell span)
- ScRange aRange( aAddr );
- do
- aRange.aEnd.IncCol();
-- while( (aRange.aEnd.Col() < maSize.mnCols) && !maLockList.Find( aRange.aEnd ) );
-+ while( (aRange.aEnd.Col() < maSize.mnCols) && mpLockTable->IsEmpty( aRange.aEnd ) );
- aRange.aEnd.IncCol( -1 );
-- maLockList.Append( aRange );
-+ mpLockTable->AddRange( aRange );
-
- // insert a dummy entry
- ScHTMLEntryPtr pEntry = CreateEntry();
-
-
-diff -u -r source/pristine.filter/inc/htmlpars.hxx source/filter/inc/htmlpars.hxx
---- sc/source/filter/inc/htmlpars.hxx
-+++ sc/source/filter/inc/htmlpars.hxx
-@@ -334,6 +334,8 @@
-
- // ----------------------------------------------------------------------------
-
-+class ScHTMLLockTable;
-+
- class ScHTMLTableMap;
-
- /** Stores data for one table in an HTML document.
-@@ -543,7 +545,7 @@
- SfxItemSet maTableItemSet; /// Items for the entire table.
- SfxItemSetPtr mpRowItemSet; /// Items for the current table row.
- SfxItemSetPtr mpDataItemSet; /// Items for the current cell.
-- ScRangeList maLockList; /// Locked cells (needed for merged cells).
-+ ScHTMLLockTable *mpLockTable; /// Locked cells (needed for merged cells).
- EditEngine& mrEditEngine; /// Edit engine (from ScEEParser).
- ScEEParseList& mrEEParseList; /// List that owns the parse entries (from ScEEParser).
- ScHTMLEntryMap maEntryMap; /// List of entries for each cell.
-
diff --git a/patches/dev300/svx-speed-editeng.diff b/patches/dev300/svx-speed-editeng.diff
deleted file mode 100644
index 38f6947..0000000
--- a/patches/dev300/svx-speed-editeng.diff
+++ /dev/null
@@ -1,117 +0,0 @@
-diff -u -r /opt/OpenOffice/svn-HEAD/build/ooo310-m4/svx/source/editeng/editdoc2.cxx svx/source/editeng/editdoc2.cxx
---- svx/source/editeng/editdoc2.cxx
-+++ svx/source/editeng/editdoc2.cxx
-@@ -324,10 +324,42 @@
- DBG_ASSERT( aLineList[ aLineList.Count()-1 ]->GetEnd() == pNode->Len(), "CorrectLines: Ende stimmt nicht!" );
- }
-
-+// Shared reverse lookup acceleration pieces ...
-+
-+static USHORT FastGetPos( const VoidPtr *pPtrArray, USHORT nPtrArrayLen,
-+ VoidPtr pPtr, USHORT &rLastPos )
-+{
-+ // Through certain filter code-paths we do a lot of appends, which in
-+ // turn call GetPos - creating some N^2 nightmares. If we have a
-+ // non-trivially large list, do a few checks from the end first.
-+ if( rLastPos > 16 )
-+ {
-+ USHORT nEnd;
-+ if (rLastPos > nPtrArrayLen - 2)
-+ nEnd = nPtrArrayLen;
-+ else
-+ nEnd = rLastPos + 2;
-+
-+ for( USHORT nIdx = rLastPos - 2; nIdx < nEnd; nIdx++ )
-+ {
-+ if( pPtrArray[ nIdx ] == pPtr )
-+ {
-+ rLastPos = nIdx;
-+ return nIdx;
-+ }
-+ }
-+ }
-+ // The world's lamest linear search from svarray ...
-+ for( USHORT nIdx = 0; nIdx < nPtrArrayLen; nIdx++ )
-+ if (pPtrArray[ nIdx ] == pPtr )
-+ return rLastPos = nIdx;
-+ return USHRT_MAX;
-+}
-+
- // -------------------------------------------------------------------------
- // class ParaPortionList
- // -------------------------------------------------------------------------
--ParaPortionList::ParaPortionList()
-+ParaPortionList::ParaPortionList() : nLastCache( 0 )
- {
- }
-
-@@ -336,6 +368,20 @@
- Reset();
- }
-
-+USHORT ParaPortionList::GetPos( const ParaPortionPtr &rPtr ) const
-+{
-+ return FastGetPos( reinterpret_cast<const VoidPtr *>( GetData() ),
-+ Count(), static_cast<VoidPtr>( rPtr ),
-+ ((ParaPortionList *)this)->nLastCache );
-+}
-+
-+USHORT ContentList::GetPos( const ContentNodePtr &rPtr ) const
-+{
-+ return FastGetPos( reinterpret_cast<const VoidPtr *>( GetData() ),
-+ Count(), static_cast<VoidPtr>( rPtr ),
-+ ((ContentList *)this)->nLastCache );
-+}
-+
- void ParaPortionList::Reset()
- {
- for ( USHORT nPortion = 0; nPortion < Count(); nPortion++ )
-diff -u -r /opt/OpenOffice/svn-HEAD/build/ooo310-m4/svx/source/editeng/editdoc.cxx svx/source/editeng/editdoc.cxx
---- /opt/OpenOffice/svn-HEAD/build/ooo310-m4/svx/source/editeng/editdoc.cxx 2009-02-26 08:39:48.000000000 +0000
-+++ svx/source/editeng/editdoc.cxx 2009-04-06 14:04:09.000000000 +0100
-@@ -258,7 +258,7 @@
- 4035, 4036, 4037, 4038
- };
-
--SV_IMPL_PTRARR( ContentList, ContentNode* );
-+SV_IMPL_PTRARR( DummyContentList, ContentNode* );
- SV_IMPL_VARARR( ScriptTypePosInfos, ScriptTypePosInfo );
- SV_IMPL_VARARR( WritingDirectionInfos, WritingDirectionInfo );
- // SV_IMPL_VARARR( ExtraCharInfos, ExtraCharInfo );
-diff -u -r /opt/OpenOffice/svn-HEAD/build/ooo310-m4/svx/source/editeng/editdoc.hxx svx/source/editeng/editdoc.hxx
---- /opt/OpenOffice/svn-HEAD/build/ooo310-m4/svx/source/editeng/editdoc.hxx 2009-02-26 08:39:48.000000000 +0000
-+++ svx/source/editeng/editdoc.hxx 2009-04-06 14:03:23.000000000 +0100
-@@ -285,7 +285,15 @@
- };
-
- typedef ContentNode* ContentNodePtr;
--SV_DECL_PTRARR( ContentList, ContentNodePtr, 0, 4 )
-+SV_DECL_PTRARR( DummyContentList, ContentNodePtr, 0, 4 )
-+
-+class ContentList : public DummyContentList
-+{
-+ USHORT nLastCache;
-+public:
-+ ContentList() : DummyContentList( 0, 4 ), nLastCache(0) {}
-+ USHORT GetPos( const ContentNodePtr &rPtr ) const;
-+};
-
- // -------------------------------------------------------------------------
- // class EditPaM
-@@ -612,6 +620,7 @@
- // -------------------------------------------------------------------------
- class ParaPortionList : public DummyParaPortionList
- {
-+ USHORT nLastCache;
- public:
- ParaPortionList();
- ~ParaPortionList();
-@@ -623,6 +632,8 @@
- inline ParaPortion* SaveGetObject( USHORT nPos ) const
- { return ( nPos < Count() ) ? GetObject( nPos ) : 0; }
-
-+ USHORT GetPos( const ParaPortionPtr &rPtr ) const;
-+
- // temporaer:
- void DbgCheck( EditDoc& rDoc );
- };
diff --git a/patches/dev300/unit-comphelper.diff b/patches/dev300/unit-comphelper.diff
deleted file mode 100644
index 51e2270..0000000
--- a/patches/dev300/unit-comphelper.diff
+++ /dev/null
@@ -1,703 +0,0 @@
-? comphelper/unxlngi6.pro.nodebug
-? comphelper/inc/comphelper/unitbootstrap.hxx
-? comphelper/source/unit
-Index: comphelper/prj/build.lst
-===================================================================
-RCS file: /cvs/util/comphelper/prj/build.lst,v
-retrieving revision 1.11
-diff -u -p -u -r1.11 build.lst
---- comphelper/prj/build.lst 30 Oct 2006 09:31:48 -0000 1.11
-+++ comphelper/prj/build.lst 20 Feb 2008 16:54:49 -0000
-@@ -8,6 +8,7 @@ ph comphelper\source\processfactory nma
- ph comphelper\source\property nmake - all ph_property ph_inc NULL
- ph comphelper\source\streaming nmake - all ph_streaming ph_inc NULL
- ph comphelper\source\compare nmake - all ph_compare ph_inc NULL
-+ph comphelper\source\unit nmake - all ph_unit ph_inc NULL
- ph comphelper\source\officeinstdir nmake - all ph_officeinstdir ph_inc NULL
- ph comphelper\source\xml nmake - all ph_xml NULL
--ph comphelper\util nmake - all ph_util ph_container ph_evtatmgr ph_misc ph_procfact ph_property ph_streaming ph_compare ph_officeinstdir ph_xml NULL
-+ph comphelper\util nmake - all ph_util ph_container ph_evtatmgr ph_misc ph_procfact ph_property ph_streaming ph_compare ph_officeinstdir ph_xml ph_unit NULL
-Index: comphelper/prj/d.lst
-===================================================================
-RCS file: /cvs/util/comphelper/prj/d.lst,v
-retrieving revision 1.13
-diff -u -p -u -r1.13 d.lst
---- comphelper/prj/d.lst 24 Oct 2006 13:42:28 -0000 1.13
-+++ comphelper/prj/d.lst 20 Feb 2008 16:54:49 -0000
-@@ -12,3 +12,10 @@ mkdir: %_DEST%\inc%_EXT%\comphelper
- mkdir: %_DEST%\inc%_EXT%\cppuhelper
- ..\inc\comphelper\extract.hxx %_DEST%\inc%_EXT%\cppuhelper\extract.hxx
- ..\version.mk %_DEST%\inc%_EXT%\comphelper\version.mk
-+
-+mkdir: %_DEST%\xml%_EXT%\unit-skel
-+mkdir: %_DEST%\xml%_EXT%\unit-skel\data
-+mkdir: %_DEST%\xml%_EXT%\unit-skel\data\org
-+mkdir: %_DEST%\xml%_EXT%\unit-skel\data\org\openoffice
-+..\source\unit\configmgrrc %_DEST%\xml%_EXT%\unit-skel\configmgrrc
-+..\source\unit\Setup.xcu %_DEST%\xml%_EXT%\unit-skel\data\org\openoffice\Setup.xcu
-Index: comphelper/util/makefile.mk
-===================================================================
-RCS file: /cvs/util/comphelper/util/makefile.mk,v
-retrieving revision 1.13
-diff -u -p -u -r1.13 makefile.mk
---- comphelper/util/makefile.mk 20 Sep 2007 16:40:40 -0000 1.13
-+++ comphelper/util/makefile.mk 20 Feb 2008 16:54:49 -0000
-@@ -74,6 +74,23 @@ SHL1DEF= $(MISC)$/$(SHL1TARGET).def
- DEF1NAME= $(SHL1TARGET)
- DEFLIB1NAME=$(TARGET)
-
-+# unit test helper library
-+
-+SHL2TARGET=unitbootstrap
-+SHL2STDLIBS= \
-+ $(SALLIB) \
-+ $(SALHELPERLIB) \
-+ $(CPPUHELPERLIB) \
-+ $(CPPULIB) \
-+ $(COMPHELPERLIB)
-+SHL2DEPN=
-+SHL2IMPLIB= i$(SHL2_TARGET)
-+SHL2USE_EXPORTS=ordinal
-+SHL2LIBS= $(SLB)$/unitbootstrap.lib
-+# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-+# DEF1NAME= $(SHL1TARGET)
-+# DEFLIB1NAME=$(TARGET)
-+
- # --- Targets ----------------------------------
-
- .INCLUDE : target.mk
---- /dev/null 2007-09-21 22:50:58.000000000 +0100
-+++ comphelper/source/unit/unitbootstrap.cxx 2008-02-20 16:59:30.000000000 +0000
-@@ -0,0 +1,121 @@
-+// To debug me use:
-+// $ export ENVCFGFLAGS='-me -ti -tw -tp -td'
-+
-+#include "sal/config.h"
-+#include <cstdlib>
-+#include "com/sun/star/beans/XPropertySet.hpp"
-+#include "com/sun/star/lang/XComponent.hpp"
-+#include "com/sun/star/lang/XMultiComponentFactory.hpp"
-+#include "com/sun/star/lang/XMultiServiceFactory.hpp"
-+#include "com/sun/star/uno/Any.hxx"
-+#include "com/sun/star/uno/Reference.hxx"
-+#include "com/sun/star/uno/XComponentContext.hpp"
-+#include "cppuhelper/component_context.hxx"
-+#include "cppuhelper/servicefactory.hxx"
-+#include "comphelper/processfactory.hxx"
-+#include "osl/file.hxx"
-+#include "osl/thread.h"
-+#include "osl/process.h"
-+#include "rtl/string.h"
-+#include "rtl/bootstrap.h"
-+#include "rtl/ustring.h"
-+#include "rtl/ustring.hxx"
-+#include "sal/types.h"
-+#include "osl/file.hxx"
-+#include "comphelper/unitbootstrap.hxx"
-+
-+namespace css = com::sun::star;
-+
-+static void
-+setBootstrap (const char *pKey, rtl::OUString aValue)
-+{
-+ rtl::OUString aKey = rtl::OUString::createFromAscii( pKey );
-+ rtl_bootstrap_set( aKey.pData, aValue.pData );
-+}
-+
-+static rtl::OUString pathToURL(rtl::OUString aPath)
-+{
-+ rtl::OUString aURL;
-+ if (osl::FileBase::getFileURLFromSystemPath(aPath, aURL) != osl::FileBase::E_None)
-+ std::abort();
-+ return aURL;
-+}
-+
-+// Do all those exciting things to make the tests actually work ...
-+UnitBootstrap::UnitBootstrap(const char *pSetup)
-+{
-+ // parse params ...
-+ char const * f = pSetup;
-+ rtl::OUString args (f, rtl_str_getLength(f), osl_getThreadTextEncoding());
-+ sal_Int32 i = args.indexOf('#');
-+ if (i < 0)
-+ std::abort();
-+ rtl::OUString aRDB(args.copy(0, i));
-+ rtl::OUString aUserDir(args.copy(i + 1));
-+
-+ fprintf (stderr, "RDB: '%s'\n",
-+ rtl::OUStringToOString (aRDB, RTL_TEXTENCODING_UTF8).getStr());
-+ fprintf (stderr, "UserDir: '%s'\n",
-+ rtl::OUStringToOString (aUserDir, RTL_TEXTENCODING_UTF8).getStr());
-+
-+ rtl_uString *curWd = NULL;
-+ osl_getProcessWorkingDir( &curWd );
-+
-+ rtl::OUString aBase (curWd);
-+
-+ // Unless you do this, obviously you don't want your paths to be correct
-+ // or file access to work properly
-+ setBootstrap ("BaseInstallation", aBase);
-+ setBootstrap ("CFG_INIFILE", pathToURL (aUserDir) + rtl::OUString::createFromAscii( "/configmgrrc" ) );
-+ setBootstrap ("UserInstallation", pathToURL (aUserDir));
-+
-+ rtl::OUString aSolver = (rtl::OUString::createFromAscii(getenv("SOLARVER")) +
-+ rtl::OUString::createFromAscii("/") +
-+ rtl::OUString::createFromAscii(getenv("INPATH")));
-+ // Used in configmgrrc to locate the xml config
-+ setBootstrap ("SOLVER", pathToURL (aSolver));
-+
-+ // Force vcl to be headless on Unix
-+ putenv ((char *)(new rtl::OString("SAL_USE_VCLPLUGIN=svp"))->getStr());
-+ putenv ((char *)(new rtl::OString("OOO_FORCE_DESKTOP=none"))->getStr());
-+
-+ css::uno::Reference< css::beans::XPropertySet > xFactory(
-+ cppu::createRegistryServiceFactory(aRDB), css::uno::UNO_QUERY_THROW);
-+ css::uno::Reference< css::uno::XComponentContext > xContext(
-+ xFactory->getPropertyValue(
-+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultContext"))),
-+ css::uno::UNO_QUERY_THROW);
-+
-+ rtl::OUString regurl = rtl::OUString();
-+ cppu::ContextEntry_Init entry(
-+ rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM(
-+ "/modules/com.sun.star.configuration/bootstrap/Strata")),
-+ css::uno::makeAny(
-+ rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM(
-+ "com.sun.star.comp.configuration.backend.LocalStratum:"))
-+ + regurl));
-+ mxContext = cppu::createComponentContext(&entry, 1, xContext);
-+ if (!mxContext.is())
-+ std::abort();
-+
-+ css::uno::Reference< css::lang::XMultiComponentFactory > xMCF (
-+ mxContext->getServiceManager(), css::uno::UNO_QUERY_THROW);
-+ xMCF->createInstanceWithContext(
-+ rtl::OUString::createFromAscii(
-+ "com.sun.star.configuration.ConfigurationProvider"),
-+ mxContext);
-+
-+ mxMSF = css::uno::Reference< css::lang::XMultiServiceFactory >(
-+ mxContext->getServiceManager(), css::uno::UNO_QUERY );
-+ comphelper::setProcessServiceFactory( mxMSF );
-+}
-+
-+UnitBootstrap::~UnitBootstrap()
-+{
-+ css::uno::Reference< css::lang::XComponent >(
-+ mxMSF, css::uno::UNO_QUERY_THROW)->dispose();
-+ css::uno::Reference< css::lang::XComponent >(
-+ mxContext, css::uno::UNO_QUERY_THROW)->dispose();
-+}
---- /dev/null 2007-09-21 22:50:58.000000000 +0100
-+++ comphelper/source/unit/makefile.mk 2008-02-20 16:49:55.000000000 +0000
-@@ -0,0 +1,55 @@
-+#*************************************************************************
-+#
-+# OpenOffice.org - a multi-platform office productivity suite
-+#
-+# $RCSfile: makefile.mk,v $
-+#
-+# $Revision: 1.3 $
-+#
-+# last change: $Author: rt $ $Date: 2005/09/08 02:44:02 $
-+#
-+# The Contents of this file are made available subject to
-+# the terms of GNU Lesser General Public License Version 2.1.
-+#
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2005 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+# Lesser General Public License for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#*************************************************************************
-+
-+PRJ=..$/..
-+PRJINC=..$/..$/inc
-+PRJNAME=comphelper
-+TARGET=unitbootstrap
-+
-+ENABLE_EXCEPTIONS=TRUE
-+
-+# --- Settings ----------------------------------
-+
-+.INCLUDE : settings.mk
-+.INCLUDE : $(PRJ)$/util$/makefile.pmk
-+
-+# --- Files -------------------------------------
-+
-+SLOFILES=$(SLO)$/unitbootstrap.obj
-+
-+# --- Targets ----------------------------------
-+
-+.INCLUDE : target.mk
-+
---- /dev/null 2007-09-21 22:50:58.000000000 +0100
-+++ comphelper/source/unit/Setup.xcu 2008-02-20 16:57:42.000000000 +0000
-@@ -0,0 +1,376 @@
-+<?xml version="1.0"?>
-+<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:install="http://openoffice.org/2004/installation" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" oor:name="Setup" oor:package="org.openoffice">
-+ <node oor:name="Product">
-+ <prop oor:name="ooName">
-+ <value>OpenOffice.org</value>
-+ </prop>
-+ <prop oor:name="ooSetupVersion">
-+ <value>2.4</value>
-+ </prop>
-+ <prop oor:name="ooSetupVersionAboutBox">
-+ <value>2.4.0</value>
-+ </prop>
-+ <prop oor:name="ooSetupExtension">
-+ <value></value>
-+ </prop>
-+ <prop oor:name="ooXMLFileFormatVersion">
-+ <value>1.0</value>
-+ </prop>
-+ <prop oor:name="ooXMLFileFormatName">
-+ <value>OpenOffice.org</value>
-+ </prop>
-+ <prop oor:name="ooOpenSourceContext">
-+ <value>1</value>
-+ </prop>
-+ </node>
-+ <node oor:name="Office">
-+ <prop oor:name="ooSetupInstCompleted">
-+ <value>false</value>
-+ </prop>
-+ <prop oor:name="ooSetupShowIntro">
-+ <value>true</value>
-+ </prop>
-+ <node oor:name="Factories">
-+ <node oor:name="com.sun.star.text.WebDocument" oor:op="replace">
-+ <prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true">
-+ <value>com.sun.star.text.WebDocument</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryCommandConfigRef">
-+ <value>WriterCommands</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true">
-+ <value>HTML</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryDefaultFilter">
-+ <value>HTML</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true">
-+ <value>private:factory/swriter/web</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryWindowAttributes">
-+ <value/>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryIcon">
-+ <value>12</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryTemplateFile">
-+ <value/>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryShortName">
-+ <value>sweb</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryUIName">
-+ <value>Writer/Web</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryWindowStateConfigRef">
-+ <value>WriterWebWindowState</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryCmdCategoryConfigRef">
-+ <value>GenericCategories</value>
-+ </prop>
-+ </node>
-+ <node oor:name="com.sun.star.frame.Bibliography" oor:op="replace">
-+ <prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryDefaultFilter" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryCommandConfigRef">
-+ <value>BibliographyCommands</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryShortName">
-+ <value>sbibliography</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryWindowStateConfigRef">
-+ <value>BibliographyWindowState</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryCmdCategoryConfigRef">
-+ <value>GenericCategories</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryUIName">
-+ <value>Bibliography</value>
-+ </prop>
-+ </node>
-+ <node oor:name="com.sun.star.script.BasicIDE" oor:op="replace">
-+ <prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryDefaultFilter" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryCommandConfigRef">
-+ <value>BasicIDECommands</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryShortName">
-+ <value>BasicIDE</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryWindowStateConfigRef">
-+ <value>BasicIDEWindowState</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryCmdCategoryConfigRef">
-+ <value>GenericCategories</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryUIName">
-+ <value>Basic</value>
-+ </prop>
-+ </node>
-+ <node oor:name="com.sun.star.frame.StartModule" oor:op="replace">
-+ <prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryDefaultFilter" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryCommandConfigRef">
-+ <value>StartModuleCommands</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryShortName">
-+ <value>StartModule</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryWindowStateConfigRef">
-+ <value>StartModuleWindowState</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryCmdCategoryConfigRef">
-+ <value>GenericCategories</value>
-+ </prop>
-+ </node>
-+ <node oor:name="com.sun.star.chart2.ChartDocument" oor:op="replace">
-+ <prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true">
-+ <value>com.sun.star.chart2.ChartDocument</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryCommandConfigRef">
-+ <value>ChartCommands</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true">
-+ <value>chart8</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/>
-+ <prop oor:name="ooSetupFactoryDefaultFilter">
-+ <value>chart8</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true">
-+ <value>private:factory/schart</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryWindowAttributes">
-+ <value/>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryIcon">
-+ <value>13</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryTemplateFile">
-+ <value/>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryShortName">
-+ <value>schart</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryUIName">
-+ <value>Chart</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryWindowStateConfigRef">
-+ <value>ChartWindowState</value>
-+ </prop>
-+ <prop oor:name="ooSetupFactoryCmdCategoryConfigRef">
-+ <value>GenericCategories</value>
-+ </prop>
-+ </node>
-+ </node>
-+ </node>
-+ <node oor:name="L10N"/>
-+ <node oor:name="Configuration">
-+ <prop oor:name="TransferUserSettingsOnce" oor:type="xs:boolean">
-+ <value>true</value>
-+ </prop>
-+ </node>
-+ <node oor:name="Migration">
-+ <prop oor:name="SupportedVersions">
-+ <value oor:separator=",">
-+ StarOffice 7, OpenOffice.org 1.1, StarSuite 7
-+ </value>
-+ </prop>
-+ <node oor:name="MigrationSteps">
-+ <node oor:name="Datasources" oor:op="replace">
-+ <prop oor:name="MigrationService">
-+ <value>com.sun.star.comp.sdb.DataSourceMigration</value>
-+ </prop>
-+ <prop oor:name="ServiceConfigComponents">
-+ <value>org.openoffice.Office.DataAccess</value>
-+ </prop>
-+ <prop oor:name="IncludedFiles">
-+ <value>.*/database/biblio/biblio\.dbf</value>
-+ </prop>
-+ <prop oor:name="ExcludedFiles"/>
-+ <prop oor:name="IncludedNodes">
-+ <value>
-+ org.openoffice.Office.DataAccess
-+ </value>
-+ </prop>
-+ <prop oor:name="ExcludedNodes">
-+ <value>
-+ org.openoffice.Office.DataAccess/Bibliography
-+ org.openoffice.Office.DataAccess/ConnectionPool
-+ org.openoffice.Office.DataAccess/DataSources
-+ org.openoffice.Office.DataAccess/DriverManager
-+ </value>
-+ </prop>
-+ </node>
-+ <node oor:name="Deployment" oor:op="replace">
-+ <prop oor:name="MigrationService">
-+ <value>com.sun.star.comp.deployment.migration.Migration_2_0</value>
-+ </prop>
-+ </node>
-+ <node oor:name="Inet" oor:op="replace">
-+ <prop oor:name="IncludedNodes">
-+ <value>org.openoffice.Inet
-+ </value>
-+ </prop>
-+ </node>
-+ <node oor:name="Java" oor:op="replace">
-+ <prop oor:name="MigrationService">
-+ <value>com.sun.star.migration.Java</value>
-+ </prop>
-+ <prop oor:name="ServiceConfigComponents">
-+ <value>org.openoffice.Office.Java</value>
-+ </prop>
-+ </node>
-+ <node oor:name="Basic" oor:op="replace">
-+ <prop oor:name="MigrationService">
-+ <value>com.sun.star.migration.Basic</value>
-+ </prop>
-+ </node>
-+ <node oor:name="Autocorrection" oor:op="replace">
-+ <prop oor:name="MigrationService">
-+ <value>com.sun.star.migration.Autocorrection</value>
-+ </prop>
-+ </node>
-+ <node oor:name="UserProfile" oor:op="replace">
-+ <prop oor:name="IncludedNodes">
-+ <value>org.openoffice.UserProfile</value>
-+ </prop>
-+ </node>
-+ <node oor:name="Common" oor:op="replace">
-+ <prop oor:name="IncludedFiles">
-+ <value>
-+ .*/autotext/.*
-+ .*/config/.*\.so[bcdegh]
-+ .*/gallery/.*
-+ .*/template/.*
-+ </value>
-+ </prop>
-+ <prop oor:name="IncludedNodes">
-+ <value>
-+ org.openoffice.Office.Common/Accessibility
-+ org.openoffice.Office.Common/Accessibility/AutoDetectSystemHC
-+ org.openoffice.Office.Common/AddXMLToStrorage
-+ org.openoffice.Office.Common/AsianLayout
-+ org.openoffice.Office.Common/AutoCorrect
-+ org.openoffice.Office.Common/Cache
-+ org.openoffice.Office.Common/ExternalMailer/Program
-+ org.openoffice.Office.Common/Filter
-+ org.openoffice.Office.Common/Font
-+ org.openoffice.Office.Common/Gallery
-+ org.openoffice.Office.Common/Help
-+ org.openoffice.Office.Common/History
-+ org.openoffice.Office.Common/I18N
-+ org.openoffice.Office.Common/InternalMSExport
-+ org.openoffice.Office.Common/Load
-+ org.openoffice.Office.Common/Misc/Form/ControlPilotsEnabled
-+ org.openoffice.Office.Common/Misc/PluginsEnabled
-+ org.openoffice.Office.Common/Misc/SymbolSet
-+ org.openoffice.Office.Common/Misc/UseSystemFileDialog
-+ org.openoffice.Office.Common/Misc/SymbolStyle
-+ org.openoffice.Office.Common/OfficeObjects
-+ org.openoffice.Office.Common/Passwords
-+ org.openoffice.Office.Common/Print/PrintingModifiesDocument
-+ org.openoffice.Office.Common/Print/Warning
-+ org.openoffice.Office.Common/PrintVectorize
-+ org.openoffice.Office.Common/Save
-+ org.openoffice.Office.Common/SearchOptions
-+ org.openoffice.Office.Common/SearchOptionsJapanese
-+ org.openoffice.Office.Common/Undo
-+ org.openoffice.Office.Common/View/Dialog/Dialog/MiddleMouseButton
-+ org.openoffice.Office.Common/View/Dialog/MousePositioning
-+ org.openoffice.Office.Common/View/Localization
-+ org.openoffice.Office.Common/View/Menu
-+ org.openoffice.Office.Common/_3D_Engine
-+ </value>
-+ </prop>
-+ <prop oor:name="ExcludedNodes">
-+ <value>
-+ org.openoffice.Office.Common/Filter/PDF
-+ org.openoffice.Office.Common/_3D_Engine/OpenGL
-+ </value>
-+ </prop>
-+ </node>
-+ <node oor:name="Calc" oor:op="replace">
-+ <prop oor:name="IncludedNodes">
-+ <value>org.openoffice.Office.Calc</value>
-+ </prop>
-+ </node>
-+ <node oor:name="Chart" oor:op="replace">
-+ <prop oor:name="IncludedNodes">
-+ <value>org.openoffice.Office.Chart/DefaultColor</value>
-+ </prop>
-+ </node>
-+ <node oor:name="Draw" oor:op="replace">
-+ <prop oor:name="IncludedNodes">
-+ <value>org.openoffice.Office.Draw</value>
-+ </prop>
-+ </node>
-+ <node oor:name="Impress" oor:op="replace">
-+ <prop oor:name="IncludedNodes">
-+ <value>org.openoffice.Office.Impress</value>
-+ </prop>
-+ </node>
-+ <node oor:name="Labels" oor:op="replace">
-+ <prop oor:name="IncludedNodes">
-+ <value>org.openoffice.Office.Labels</value>
-+ </prop>
-+ </node>
-+ <node oor:name="Linguistic" oor:op="replace">
-+ <prop oor:name="IncludedFiles">
-+ <value>.*/wordbook/.*</value>
-+ </prop>
-+ <prop oor:name="IncludedNodes">
-+ <value>org.openoffice.Office.Linguistic</value>
-+ </prop>
-+ <prop oor:name="ExcludedNodes">
-+ <value>
-+ org.openoffice.Office.Linguistic/ServiceManager
-+ </value>
-+ </prop>
-+ </node>
-+ <node oor:name="Math" oor:op="replace">
-+ <prop oor:name="IncludedNodes">
-+ <value>org.openoffice.Office.Math</value>
-+ </prop>
-+ </node>
-+ <node oor:name="Security" oor:op="replace">
-+ <prop oor:name="IncludedNodes">
-+ <value>org.openoffice.Office.Security</value>
-+ </prop>
-+ </node>
-+ <node oor:name="Setup" oor:op="replace">
-+ <prop oor:name="IncludedNodes">
-+ <value>org.openoffice.Office.Setup/L10N</value>
-+ </prop>
-+ </node>
-+ <node oor:name="UI" oor:op="replace">
-+ <prop oor:name="IncludedNodes">
-+ <value>org.openoffice.Office.UI/ColorScheme</value>
-+ </prop>
-+ </node>
-+ <node oor:name="Writer" oor:op="replace">
-+ <prop oor:name="IncludedNodes">
-+ <value>
-+ org.openoffice.Office.Writer
-+ org.openoffice.Office.WriterWeb
-+ </value>
-+ </prop>
-+ <prop oor:name="ExcludedNodes">
-+ <value>
-+ org.openoffice.Office.Writer/Wizard
-+ </value>
-+ </prop>
-+ </node>
-+ </node>
-+ </node>
-+</oor:component-data>
---- /dev/null 2007-09-21 22:50:58.000000000 +0100
-+++ comphelper/source/unit/configmgrrc 2008-02-20 11:02:31.000000000 +0000
-@@ -0,0 +1,22 @@
-+[Bootstrap]
-+CFG_ServerType=uno
-+BootstrapFile=$ORIGIN/bootstraprc
-+VersionFile=$ORIGIN/versionrc
-+UnoFile=$ORIGIN/unorc
-+BaseInstallation=${$BootstrapFile:BaseInstallation}
-+UserInstallation=${$BootstrapFile:UserInstallation}
-+CFG_SchemaVersion=${$VersionFile:buildid}
-+CFG_SchemaDataUrl=$SOLVER/xml/registry/schema
-+CFG_DefaultLayerUrls=$SOLVER/xml/registry
-+CFG_CacheDisposeDelay=900
-+CFG_CacheDisposeInterval=60
-+CFG_CacheWriteInterval=2
-+CFG_UserLayerUrl=$UserInstallation
-+CFG_CacheUrl=$UserInstallation/cache
-+CFG_DefaultLayerUrl=$SOLVER/xml/registry
-+CFG_BackendService=com.sun.star.comp.configuration.backend.MultiStratumBackend
-+CFG_SchemaSupplier=com.sun.star.comp.configuration.backend.LocalSchemaSupplier
-+CFG_LocalDataSvc=com.sun.star.comp.configuration.backend.LocalStratum
-+CFG_LocalModuleDataSvc=com.sun.star.comp.configuration.backend.LocalMultiStratum
-+# CFG_Strata=${CFG_LocalDataSvc}:$CFG_DefaultLayerUrl;?com.sun.star.comp.configuration.backend.SystemIntegration:;?com.sun.star.comp.configuration.backend.PolicyLayerBackend:;${CFG_LocalDataSvc}:$CFG_UserLayerUrl
-+CFG_Strata=${CFG_LocalDataSvc}:$CFG_DefaultLayerUrl;${CFG_LocalDataSvc}:$CFG_UserLayerUrl
---- /dev/null 2007-09-21 22:50:58.000000000 +0100
-+++ comphelper/source/unit/README 2008-02-20 16:56:45.000000000 +0000
-@@ -0,0 +1 @@
-+This includes pieces required to bootstrap a unit test from a build tree, cf. prj/d.lst
-Index: solenv/inc/libs.mk
-===================================================================
-RCS file: /cvs/tools/solenv/inc/libs.mk,v
-retrieving revision 1.123
-diff -u -p -r1.123 libs.mk
---- solenv/inc/libs.mk 12 Dec 2007 13:15:14 -0000 1.123
-+++ solenv/inc/libs.mk 20 Feb 2008 17:01:35 -0000
-@@ -69,6 +69,7 @@ SALHELPERLIB=-luno_salhelper$(COMID)
- XMLSCRIPTLIB =-lxcr$(OFFICEUPD)$(DLLPOSTFIX)
- .INCLUDE .IGNORE : comphelper$/version.mk
- COMPHELPERLIB=-lcomphelp$(COMPHLP_MAJOR)$(COMID)
-+UNITBOOTSTRAPLIB=-lunitbootstrap
- CONNECTIVITYLIB=-lconnectivity
- LDAPBERLIB=-lldapber
- TOOLSLIBST=-latools
-@@ -349,6 +351,7 @@ GPC3RDLIB=gpc.lib
- SALHELPERLIB=isalhelper.lib
- XMLSCRIPTLIB=ixcr.lib
- COMPHELPERLIB=icomphelp.lib
-+UNITBOOTSTRAPLIB=iunitbootstrap.lib
- CONNECTIVITYLIB=connectivity.lib
- LDAPBERLIB=ldapber.lib
- CPPULIB=icppu.lib
---- /dev/null 2007-09-21 22:50:58.000000000 +0100
-+++ comphelper/inc/comphelper/unitbootstrap.hxx 2008-02-20 17:10:41.000000000 +0000
-@@ -0,0 +1,19 @@
-+#ifndef UNIT_BOOTSTRAP_HXX
-+#define UNIT_BOOTSTRAP_HXX
-+
-+#include "comphelper/comphelperdllapi.h"
-+#include "com/sun/star/lang/XMultiServiceFactory.hpp"
-+#include "com/sun/star/uno/XComponentContext.hpp"
-+
-+class COMPHELPER_DLLPUBLIC UnitBootstrap
-+{
-+ com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > mxContext;
-+ com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > mxMSF;
-+ public:
-+ UnitBootstrap(const char *pSetup);
-+ ~UnitBootstrap();
-+ com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >
-+ getMSF() { return mxMSF; }
-+};
-+
-+#endif // UNIT_BOOTSTRAP_HXX
diff --git a/patches/dev300/unit-deliver.diff b/patches/dev300/unit-deliver.diff
deleted file mode 100644
index 207f61e..0000000
--- a/patches/dev300/unit-deliver.diff
+++ /dev/null
@@ -1,198 +0,0 @@
-Index: solenv/bin/deliver.pl
-===================================================================
-RCS file: /cvs/tools/solenv/bin/deliver.pl,v
-retrieving revision 1.124
-diff -u -p -u -r1.124 deliver.pl
---- solenv/bin/deliver.pl 26 Nov 2007 19:00:17 -0000 1.124
-+++ solenv/bin/deliver.pl 22 Feb 2008 23:23:53 -0000
-@@ -40,6 +40,8 @@ eval 'exec perl -wS $0 ${1+"$@"}'
- # deliver.pl - copy from module output tree to solver
- #
-
-+use lib ("$ENV{SOLARENV}/bin/modules");
-+
- use Cwd;
- use File::Basename;
- use File::Copy;
-@@ -47,6 +49,9 @@ use File::DosGlob 'glob';
- use File::Path;
- use File::Spec;
-
-+# for component registration ...
-+use installer::globals;
-+
- #### script id #####
-
- ( $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/;
-@@ -695,12 +700,16 @@ sub glob_and_copy
- my $touch = shift;
-
- my @copy_files = @{glob_line($from, $to)};
-+ my @register = ();
-
- for (my $i = 0; $i <= $#copy_files; $i++) {
- next if filter_out($copy_files[$i][0]); # apply copy filter
-- copy_if_newer($copy_files[$i][0], $copy_files[$i][1], $touch)
-+ copy_if_newer($copy_files[$i][0], $copy_files[$i][1], $touch, \@register)
- ? $files_copied++ : $files_unchanged++;
- }
-+ for my $comp (@register) {
-+ register_component ($comp);
-+ }
- }
-
- sub is_unstripped {
-@@ -757,6 +766,119 @@ sub strip_target {
- return $rc;
- };
-
-+# start evil cut/paste from bin/modules/installer/servicesfile.pm ...
-+
-+################################################################
-+# Generating a file url from a path
-+################################################################
-+
-+sub remove_ending_pathseparator
-+{
-+ my ( $stringref ) = @_;
-+
-+ $$stringref =~ s/\Q$installer::globals::separator\E\s*$//;
-+}
-+
-+sub make_file_url
-+{
-+ my ( $path ) = @_;
-+
-+ my $fileurl = "";
-+
-+ # removing ending slash/backslash
-+
-+ remove_ending_pathseparator(\$path);
-+
-+ if ($installer::globals::iswin)
-+ {
-+ $path =~ s/\\/\//g;
-+ $fileurl = "file\:\/\/\/" . $path;
-+ }
-+ else
-+ {
-+ $fileurl = "file\:\/\/" . $path;
-+ }
-+
-+ return $fileurl;
-+}
-+
-+################################################################
-+# Helper routine to change cygwin (POSIX) path to DOS notation
-+# if needed
-+################################################################
-+sub fix_cygwin_path
-+{
-+ my ( $path ) = @_;
-+
-+ if ( $installer::globals::iswin eq 1 && $ENV{'USE_SHELL'} ne "4nt" && $installer::globals::wrapcmd eq "" )
-+ {
-+ $path = qx{cygpath -m "$path"};
-+ chomp($path);
-+ }
-+
-+ return $path;
-+}
-+
-+sub get_regcomp()
-+{
-+ my $searchname;
-+ if ($installer::globals::isunix) { $searchname = "regcomp"; }
-+ else { $searchname = "regcomp.exe"; }
-+ return $searchname;
-+}
-+
-+sub register_queue ($$)
-+{
-+ my $queue = shift;
-+ my $component = shift;
-+
-+ # Try to register all libraries
-+ $component =~ /\.(so|dylib|dll)/ || return;
-+ push @$queue, $component;
-+}
-+
-+sub register_component ($)
-+{
-+ my $component = shift;
-+
-+ my $servicesfile = "$dest/lib$ext/unit-$module.rdb";
-+ my @regcompoutput = ();
-+ my $regcomp = get_regcomp();
-+
-+ my $filestring = make_file_url($component);
-+
-+ my $systemcall = "$installer::globals::wrapcmd $regcomp " .
-+ "-register -r " . fix_cygwin_path($servicesfile) .
-+ " -c " . $installer::globals::quote . $filestring . $installer::globals::quote .
-+ " -wop 2\>\&1 |";
-+
-+ open (REG, "$systemcall");
-+ while (<REG>) {push(@regcompoutput, $_); }
-+ close (REG);
-+
-+ my $returnvalue = $?; # $? contains the return value of the systemcall
-+
-+ print "command: $systemcall";
-+ print "output: @regcompoutput";
-+
-+ # cf. cpputools/source/registercomponent/registercomponent.cxx
-+ if ($returnvalue == 256) {
-+ # has no component_ methods (?)
-+ print "non component: $component\n" if !$opt_silent;
-+# print "command: $systemcall";
-+# print "output: @regcompoutput";
-+ return;
-+ } elsif ($returnvalue == 0) {
-+ print "registered component: $component\n" if !$opt_silent;
-+ } elsif (!$opt_silent) {
-+ print "Warning: registration failed abnormally with code: $returnvalue\n";
-+# print "command: $systemcall";
-+# print "output: @regcompoutput";
-+ }
-+}
-+
-+# evil cut/paste from bin/modules/installer/servicesfile.pm ends ...
-+
- sub copy_if_newer
- {
- # return 0 if file is unchanged ( for whatever reason )
-@@ -764,6 +886,7 @@ sub copy_if_newer
- my $from = shift;
- my $to = shift;
- my $touch = shift;
-+ my $register = shift;
- my $from_stat_ref;
- my $rc = 0;
-
-@@ -788,6 +911,7 @@ sub copy_if_newer
- # hard link if possible
- if( link($from, $to) ){
- print "LINK: $from -> $to\n" if !$opt_silent;
-+ register_queue ($register, $to);
- return 1;
- }
- }
-@@ -841,6 +965,9 @@ sub copy_if_newer
- system("macosx-create-bundle", "$to=$from.app") if ( -d "$from.app" );
- system("ranlib", "$to" ) if ( $to =~ /\.a/ );
- }
-+
-+ # register each component as it is delivered into a tests .rdb
-+ register_queue ($register, $to);
- return 1;
- }
- else {
-@@ -854,6 +981,7 @@ sub copy_if_newer
- print_error("directory '$destdir' does not exist", 0);
- }
- }
-+
- unlink($temp_file);
- return 0;
- }
diff --git a/patches/dev300/unit-sc.diff b/patches/dev300/unit-sc.diff
deleted file mode 100644
index f29fbf8..0000000
--- a/patches/dev300/unit-sc.diff
+++ /dev/null
@@ -1,244 +0,0 @@
---- /dev/null 2007-09-21 22:50:58.000000000 +0100
-+++ sc/qa/unit/ucalc.cxx 2008-02-21 11:02:00.000000000 +0000
-@@ -0,0 +1,131 @@
-+// TODO ...
-+// Remove: Foo killed exception ! and re-test ...
-+// deliver.pl
-+// don't call regcomp if we don't have it.
-+
-+#include "sal/config.h"
-+#include <comphelper/unitbootstrap.hxx>
-+#include "vcl/svapp.hxx"
-+#include <scdll.hxx>
-+#include <document.hxx>
-+#include <compiler.hxx>
-+#include "cppunit/simpleheader.hxx"
-+
-+#define CATCH_FAIL(msg) \
-+ catch (const css::uno::Exception &e) { \
-+ t_print ("msg '%s'\n", rtl::OUStringToOString (e.Message, RTL_TEXTENCODING_UTF8).getStr()); \
-+ CPPUNIT_FAIL( msg ); \
-+ throw; \
-+ }
-+
-+class Test: public CppUnit::TestFixture {
-+ UnitBootstrap *mpUnitBootstrap;
-+public:
-+ Test();
-+ virtual ~Test();
-+
-+ // per-test init/teardown
-+ // virtual void setUp();
-+ // virtual void tearDown();
-+
-+ // tests
-+ void createDocument();
-+ void testCompiler();
-+
-+ CPPUNIT_TEST_SUITE(Test);
-+ CPPUNIT_TEST(createDocument);
-+ CPPUNIT_TEST(testCompiler);
-+ CPPUNIT_TEST_SUITE_END();
-+
-+private:
-+};
-+
-+//void Test::setUp()
-+Test::Test()
-+{
-+ fprintf (stderr, "Setup\n");
-+ mpUnitBootstrap = new UnitBootstrap(getForwardString());
-+
-+ InitVCL (mpUnitBootstrap->getMSF());
-+
-+ ScDLL::Init();
-+}
-+
-+//void Test::tearDown()
-+Test::~Test()
-+{
-+ fprintf (stderr, "tear down\n");
-+ DeInitVCL ();
-+
-+ delete mpUnitBootstrap;
-+}
-+
-+static ScDocument *createSimpleDoc()
-+{
-+ ScDocument *doc = new ScDocument();
-+
-+ rtl::OUString aTabName = rtl::OUString::createFromAscii ("foo");
-+ CPPUNIT_ASSERT_MESSAGE ("failed to insert sheet",
-+ doc->InsertTab (0, aTabName));
-+
-+ return doc;
-+}
-+
-+void Test::createDocument()
-+{
-+ ScDocument *doc = createSimpleDoc();
-+
-+ double val = 1;
-+ doc->SetValue (0, 0, 0, val);
-+ doc->SetValue (0, 1, 0, val);
-+ doc->SetString (0, 2, 0, rtl::OUString::createFromAscii ("=SUM(A1:A2)"));
-+ doc->CalcAll();
-+ double result;
-+ doc->GetValue (0, 2, 0, result);
-+ fprintf (stderr, "one plus one = %g\n", result);
-+ CPPUNIT_ASSERT_MESSAGE ("calculation failed", result == 2.0);
-+
-+ delete doc;
-+}
-+
-+void Test::testCompiler()
-+{
-+ ScDocument *doc = createSimpleDoc();
-+ ScAddress aA1;
-+ ScCompiler *pComp = new ScCompiler (doc, aA1);
-+
-+ static const struct {
-+ const char *pStr;
-+ ScAddress::Convention eConv;
-+ bool bValid;
-+ } tests[] = {
-+// OO.o style
-+ { "=SUM(A1:A2)", ScAddress::CONV_OOO, true },
-+ { "=SUM(A1:A2;A1:A2)", ScAddress::CONV_OOO, true },
-+// R1C1 tests
-+ { "=SUM(R1C1:R2C2)", ScAddress::CONV_XL_R1C1, true },
-+ { "=SUM(R-1C-1:R-2C-2)", ScAddress::CONV_XL_R1C1, false },
-+ };
-+
-+ pComp->SetCompileEnglish (true);
-+ for (unsigned int i = 0; i < sizeof (tests) / sizeof(tests[0]); i++)
-+ {
-+ ScTokenArray *pToks = pComp->CompileString
-+ (rtl::OUString::createFromAscii (tests[i].pStr), tests[i].eConv);
-+ if (!pToks->GetError() != !!tests[i].bValid)
-+ {
-+ t_print ("unexpected parsing %s with formula '%s'\n",
-+ tests[i].bValid ? "failure" : "success",
-+ tests[i].pStr);
-+ CPPUNIT_ASSERT_MESSAGE ("unexpected parsing error", false);
-+ }
-+ delete pToks;
-+ }
-+
-+ delete pComp;
-+ delete doc;
-+}
-+
-+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test, "alltests");
-+
-+NOADDITIONAL;
---- /dev/null 2007-09-21 22:50:58.000000000 +0100
-+++ sc/qa/unit/export.map 2007-11-23 13:57:51.000000000 +0000
-@@ -0,0 +1,7 @@
-+UDK_3.0 {
-+ global:
-+ registerAllTestFunction;
-+
-+ local:
-+ *;
-+};
---- /dev/null 2007-09-21 22:50:58.000000000 +0100
-+++ sc/qa/unit/makefile.mk 2008-02-22 18:24:04.000000000 +0000
-@@ -0,0 +1,97 @@
-+#*************************************************************************
-+#
-+# OpenOffice.org - a multi-platform office productivity suite
-+#
-+# $RCSfile: makefile.mk,v $
-+#
-+# $Revision: 1.2 $
-+#
-+# last change: $Author: ihi $ $Date: 2007/11/23 13:58:12 $
-+#
-+# The Contents of this file are made available subject to
-+# the terms of GNU Lesser General Public License Version 2.1.
-+#
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2007 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+# Lesser General Public License for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#*************************************************************************
-+
-+PRJ := ..$/..
-+PRJNAME := configmgr
-+TARGET := qa_unit
-+
-+ENABLE_EXCEPTIONS := TRUE
-+
-+.INCLUDE: settings.mk
-+
-+DLLPRE = # no leading "lib" on .so files
-+
-+SHL1TARGET = $(TARGET)
-+SHL1OBJS = $(SLO)$/ucalc.obj
-+SHL1STDLIBS= \
-+ $(BASICLIB) \
-+ $(SFXLIB) \
-+ $(SVTOOLLIB) \
-+ $(SVLLIB) \
-+ $(SVXLIB) \
-+ $(GOODIESLIB) \
-+ $(BASEGFXLIB) \
-+ $(VCLLIB) \
-+ $(CPPULIB) \
-+ $(CPPUHELPERLIB) \
-+ $(COMPHELPERLIB) \
-+ $(UCBHELPERLIB) \
-+ $(TKLIB) \
-+ $(VOSLIB) \
-+ $(SALLIB) \
-+ $(TOOLSLIB) \
-+ $(I18NUTILLIB) \
-+ $(I18NISOLANGLIB) \
-+ $(UNOTOOLSLIB) \
-+ $(SOTLIB) \
-+ $(XMLOFFLIB) \
-+ $(DBTOOLSLIB) \
-+ $(AVMEDIALIB) \
-+ $(CPPUNITLIB) \
-+ $(UNITBOOTSTRAPLIB)
-+SHL1IMPLIB = i$(SHL1TARGET)
-+SHL1LIBS=$(SLB)$/scalc3.lib $(SLB)$/scalc3c.lib
-+SHL1VERSIONMAP = export.map
-+DEF1NAME = $(SHL1TARGET)
-+
-+.INCLUDE: target.mk
-+
-+ALLTAR: test
-+
-+USERDIR=$(OUT)$/unit
-+
-+$(USERDIR):
-+ $(RM) -rf $(USERDIR)
-+ $(COPY) $(COPYRECURSE) $(SOLARXMLDIR)$/unit-skel $(USERDIR)
-+
-+$(USERDIR)$/$(TARGET).rdb $(USERDIR)$/mergelist .ERRREMOVE: $(USERDIR)
-+ echo "$(USERDIR)$/$(TARGET).rdb / $(SOLARBINDIR)$/types.rdb " > $(USERDIR)$/mergelist
-+ $(FIND) $(SOLARLIBDIR) -name "unit-*.rdb" >> $(USERDIR)$/mergelist
-+ regmerge @$(USERDIR)$/mergelist
-+
-+test .PHONY: $(SHL1TARGETN) $(USERDIR)$/$(TARGET).rdb
-+ testshl2 $(SHL1TARGETN) -forward "$(USERDIR)$/$(TARGET).rdb#$(USERDIR)"
-+ $(RM) -rf $(USERDIR)
-+
More information about the Libreoffice-commits
mailing list