[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