summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--editors/openoffice-3-devel/Makefile4
-rw-r--r--editors/openoffice-3-devel/distinfo6
-rw-r--r--editors/openoffice-3-devel/files/patch-i7176023
-rw-r--r--editors/openoffice-3-devel/files/patch-i7184830
-rw-r--r--editors/openoffice-3-devel/files/patch-i7197715
-rw-r--r--editors/openoffice-3-devel/files/patch-i7223611
-rw-r--r--editors/openoffice-3-devel/files/patch-i72372331
-rw-r--r--editors/openoffice.org-2-devel/Makefile4
-rw-r--r--editors/openoffice.org-2-devel/distinfo6
-rw-r--r--editors/openoffice.org-2-devel/files/patch-i7176023
-rw-r--r--editors/openoffice.org-2-devel/files/patch-i7184830
-rw-r--r--editors/openoffice.org-2-devel/files/patch-i7197715
-rw-r--r--editors/openoffice.org-2-devel/files/patch-i7223611
-rw-r--r--editors/openoffice.org-2-devel/files/patch-i72372331
-rw-r--r--editors/openoffice.org-3-devel/Makefile4
-rw-r--r--editors/openoffice.org-3-devel/distinfo6
-rw-r--r--editors/openoffice.org-3-devel/files/patch-i7176023
-rw-r--r--editors/openoffice.org-3-devel/files/patch-i7184830
-rw-r--r--editors/openoffice.org-3-devel/files/patch-i7197715
-rw-r--r--editors/openoffice.org-3-devel/files/patch-i7223611
-rw-r--r--editors/openoffice.org-3-devel/files/patch-i72372331
-rw-r--r--editors/openoffice.org-vcltesttool/Makefile4
-rw-r--r--editors/openoffice.org-vcltesttool/distinfo6
-rw-r--r--editors/openoffice.org-vcltesttool/files/patch-i7176023
-rw-r--r--editors/openoffice.org-vcltesttool/files/patch-i7184830
-rw-r--r--editors/openoffice.org-vcltesttool/files/patch-i7197715
-rw-r--r--editors/openoffice.org-vcltesttool/files/patch-i7223611
-rw-r--r--editors/openoffice.org-vcltesttool/files/patch-i72372331
28 files changed, 1388 insertions, 292 deletions
diff --git a/editors/openoffice-3-devel/Makefile b/editors/openoffice-3-devel/Makefile
index f011aca5a37f..5a0f5c95cea3 100644
--- a/editors/openoffice-3-devel/Makefile
+++ b/editors/openoffice-3-devel/Makefile
@@ -71,10 +71,10 @@ IGNORE= install lang/perl5.8 then try again
.endif
CODELINE= 680
-MILESTONE?= 195
+MILESTONE?= 196
OOOTAG?= SRC680_m${MILESTONE}
OOOSRC?= OOo_${OOOTAG}_source${EXTRACT_SUFX}
-SNAPDATE= 20061124
+SNAPDATE= 20061207
INSTALLATION_BASEDIR?= openoffice.org-${OOOTAG}
EXECBASE?= openoffice.org-${OOOTAG}
DIST_SUBDIR= openoffice.org2.0
diff --git a/editors/openoffice-3-devel/distinfo b/editors/openoffice-3-devel/distinfo
index d0e6e3462077..eb1da4056a56 100644
--- a/editors/openoffice-3-devel/distinfo
+++ b/editors/openoffice-3-devel/distinfo
@@ -1,6 +1,6 @@
-MD5 (openoffice.org2.0/OOo_SRC680_m195_source.tar.bz2) = 1ba55cdc451442df436e57d4cc367e3c
-SHA256 (openoffice.org2.0/OOo_SRC680_m195_source.tar.bz2) = b134076f201ab55a0aaafda55d338801e6571d5c0ec2bb615e4948ca0622265c
-SIZE (openoffice.org2.0/OOo_SRC680_m195_source.tar.bz2) = 263554482
+MD5 (openoffice.org2.0/OOo_SRC680_m196_source.tar.bz2) = 3814528e518342a63be679537bfd1a47
+SHA256 (openoffice.org2.0/OOo_SRC680_m196_source.tar.bz2) = 233c99f0b3e0ed7bd1dd2d49f867de77fbd1b628a33b3ba276828297b1effbaa
+SIZE (openoffice.org2.0/OOo_SRC680_m196_source.tar.bz2) = 263576602
MD5 (openoffice.org2.0/unowinreg.dll) = e3a0b76dcd876f3d721ee7183729153d
SHA256 (openoffice.org2.0/unowinreg.dll) = f563e522922133db9340b0306711c2d8767cc3481dd9e7d9b0d059906d12653c
SIZE (openoffice.org2.0/unowinreg.dll) = 6144
diff --git a/editors/openoffice-3-devel/files/patch-i71760 b/editors/openoffice-3-devel/files/patch-i71760
deleted file mode 100644
index ddbb3c732062..000000000000
--- a/editors/openoffice-3-devel/files/patch-i71760
+++ /dev/null
@@ -1,23 +0,0 @@
-Index: toolkit/source/controls/unocontrolcontainer.cxx
-===================================================================
-RCS file: /cvs/gsl/toolkit/source/controls/unocontrolcontainer.cxx,v
-retrieving revision 1.16
-diff -u -r1.16 unocontrolcontainer.cxx
---- toolkit/source/controls/unocontrolcontainer.cxx 14 Nov 2006 12:28:48 -0000 1.16
-+++ toolkit/source/controls/unocontrolcontainer.cxx 20 Nov 2006 05:23:48 -0000
-@@ -185,13 +185,13 @@
- @throw uno::RuntimeException
- if no free identifier can be found
- */
-- ControlIdentifier UnoControlHolderList::impl_getFreeIdentifier_throw();
-+ ControlIdentifier impl_getFreeIdentifier_throw();
-
- /** finds a free name
- @throw uno::RuntimeException
- if no free name can be found
- */
-- ::rtl::OUString UnoControlHolderList::impl_getFreeName_throw();
-+ ::rtl::OUString impl_getFreeName_throw();
- };
-
- //------------------------------------------------------------------------
diff --git a/editors/openoffice-3-devel/files/patch-i71848 b/editors/openoffice-3-devel/files/patch-i71848
deleted file mode 100644
index 053048ec6f71..000000000000
--- a/editors/openoffice-3-devel/files/patch-i71848
+++ /dev/null
@@ -1,30 +0,0 @@
---- svx/source/msfilter/msdffimp.cxx 2006-11-22
-11:22:41.000000000 +0100
-+++ svx/source/msfilter/msdffimp.cxx 2006-11-22
-11:52:34.000000000 +0100
-@@ -3516,7 +3516,7 @@
- Scale( rPoly[ nPolyNum ] );
- }
-
--void SvxMSDffManager::ScaleEmu( long& rVal ) const
-+void SvxMSDffManager::ScaleEmu( sal_Int32& rVal ) const
- {
- rVal = BigMulDiv( rVal, nEmuMul, nEmuDiv );
- }
-
-
---- svx/source/svdraw/svdtxhdl.cxx 2006-11-22
-11:22:43.000000000 +0100
-+++ svx/source/svdraw/svdtxhdl.cxx 2006-11-22
-11:53:00.000000000 +0100
-@@ -183,7 +183,7 @@
- rOutliner.Clear();
- rOutliner.SetPaperSize(Size(LONG_MAX,LONG_MAX));
- rOutliner.SetText(*pPara);
-- sal_uInt32 nCnt(Min(aContourPolyPolygon.count(), rOutliner.GetParagraphCount()));
-+ sal_uInt32 nCnt(Min(aContourPolyPolygon.count(), (sal_uInt32)rOutliner.GetParagraphCount()));
-
- if ( nCnt == 1 ) bToLastPoint = TRUE;
- else bToLastPoint = FALSE;
-
-
diff --git a/editors/openoffice-3-devel/files/patch-i71977 b/editors/openoffice-3-devel/files/patch-i71977
deleted file mode 100644
index 3feddab4bcd8..000000000000
--- a/editors/openoffice-3-devel/files/patch-i71977
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: sd/inc/CustomAnimationPreset.hxx
-===================================================================
-RCS file: /cvs/graphics/sd/inc/CustomAnimationPreset.hxx,v
-retrieving revision 1.3
-diff -u -r1.3 CustomAnimationPreset.hxx
---- sd/inc/CustomAnimationPreset.hxx 9 Sep 2005 02:50:54 -0000 1.3
-+++ sd/inc/CustomAnimationPreset.hxx 5 Dec 2006 08:01:01 -0000
-@@ -56,6 +56,7 @@
- #include <CustomAnimationEffect.hxx>
- #endif
-
-+#include <hash_map>
-
- namespace sd {
-
diff --git a/editors/openoffice-3-devel/files/patch-i72236 b/editors/openoffice-3-devel/files/patch-i72236
new file mode 100644
index 000000000000..3b4d0d4db93b
--- /dev/null
+++ b/editors/openoffice-3-devel/files/patch-i72236
@@ -0,0 +1,11 @@
+--- svtools/source/items1/stylepool.cxx 2006-12-10 20:59:39.000000000 +0100
++++ svtools/source/items1/stylepool.cxx 2006-12-10 20:59:57.000000000 +0100
+@@ -187,7 +187,7 @@
+
+ ::rtl::OUString StylePool::nameOf( SfxItemSet_Pointer_t pSet )
+ {
+- return ::rtl::OUString::valueOf( reinterpret_cast<sal_Int32>( pSet.get() ), 16 );
++ return ::rtl::OUString::valueOf( reinterpret_cast<sal_IntPtr>( pSet.get() ), 16 );
+ }
+
+ // class StylePoolImpl organized a tree-structure where every node represents a SfxItemSet.
diff --git a/editors/openoffice-3-devel/files/patch-i72372 b/editors/openoffice-3-devel/files/patch-i72372
new file mode 100644
index 000000000000..081bc0887742
--- /dev/null
+++ b/editors/openoffice-3-devel/files/patch-i72372
@@ -0,0 +1,331 @@
+Index: shlib.cxx
+===================================================================
+RCS file: /cvs/udk/cppuhelper/source/shlib.cxx,v
+retrieving revision 1.25
+diff -u -r1.25 shlib.cxx
+--- cppuhelper/source/shlib.cxx 1 Dec 2006 17:18:35 -0000 1.25
++++ cppuhelper/source/shlib.cxx 8 Dec 2006 16:31:16 -0000
+@@ -311,7 +311,6 @@
+ pSym = osl_getFunctionSymbol( lib, aGetEnvName.pData );
+ if (pSym != 0)
+ {
+- uno_Environment * pCurrentEnv = 0;
+ uno_Environment * pEnv = 0;
+
+ const sal_Char * pEnvTypeName = 0;
+@@ -319,17 +318,6 @@
+ &pEnvTypeName, &pEnv );
+ OUString aEnvTypeName( OUString::createFromAscii( pEnvTypeName ) );
+
+- if (! pEnv)
+- {
+- uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
+- }
+- if (pEnv)
+- {
+- OUString aCppEnvTypeName =
+- OUSTR(CPPU_CURRENT_LANGUAGE_BINDING_NAME);
+- uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
+- }
+-
+ OUString aGetFactoryName = OUSTR(COMPONENT_GETFACTORY);
+ pSym = osl_getFunctionSymbol( lib, aGetFactoryName.pData );
+ if (pSym != 0)
+@@ -337,59 +325,97 @@
+ OString aImplName(
+ OUStringToOString( rImplName, RTL_TEXTENCODING_ASCII_US ) );
+
+- if (pEnv && pCurrentEnv)
++ if (pEnv == NULL &&aEnvTypeName.equalsAsciiL(
++ RTL_CONSTASCII_STRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME)))
++ {
++ XInterface * pRet =
++ (XInterface *) (*((component_getFactoryFunc) pSym))(
++ aImplName.getStr(), xMgr.get(), xKey.get() );
++ if (pRet)
++ {
++ xRet = pRet;
++ pRet->release();
++ }
++ else
++ {
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": cannot get factory of demanded "
++ "implementation: ");
++ aExcMsg += OStringToOUString(
++ aImplName, RTL_TEXTENCODING_ASCII_US );
++ }
++ }
++ else
+ {
+- Mapping aCurrent2Env( pCurrentEnv, pEnv );
+- Mapping aEnv2Current( pEnv, pCurrentEnv );
++ if (!pEnv)
++ uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
+
+- if (aCurrent2Env.is() && aEnv2Current.is())
++ uno_Environment * pCurrentEnv = 0;
++ if (pEnv)
+ {
+- void * pSMgr = aCurrent2Env.mapInterface(
+- xMgr.get(), ::getCppuType( &xMgr ) );
+- void * pKey = aCurrent2Env.mapInterface(
+- xKey.get(), ::getCppuType( &xKey ) );
+-
+- void * pSSF =
+- (*((component_getFactoryFunc) pSym))(
+- aImplName.getStr(), pSMgr, pKey );
+-
+- if (pKey)
+- {
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pKey );
+- }
+- if (pSMgr)
+- {
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pSMgr );
+- }
++ OUString aCppEnvTypeName =
++ OUSTR(CPPU_CURRENT_LANGUAGE_BINDING_NAME);
++ uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
++ }
++
++
++ if (pEnv && pCurrentEnv)
++ {
++ Mapping aCurrent2Env( pCurrentEnv, pEnv );
++ Mapping aEnv2Current( pEnv, pCurrentEnv );
+
+- if (pSSF)
++ if (aCurrent2Env.is() && aEnv2Current.is())
+ {
+- aEnv2Current.mapInterface(
+- reinterpret_cast< void ** >( &xRet ),
+- pSSF, ::getCppuType( &xRet ) );
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pSSF );
++ void * pSMgr = aCurrent2Env.mapInterface(
++ xMgr.get(), ::getCppuType( &xMgr ) );
++ void * pKey = aCurrent2Env.mapInterface(
++ xKey.get(), ::getCppuType( &xKey ) );
++
++ void * pSSF =
++ (*((component_getFactoryFunc) pSym))(
++ aImplName.getStr(), pSMgr, pKey );
++
++ if (pKey)
++ {
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pKey );
++ }
++ if (pSMgr)
++ {
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pSMgr );
++ }
++
++ if (pSSF)
++ {
++ aEnv2Current.mapInterface(
++ reinterpret_cast< void ** >( &xRet ),
++ pSSF, ::getCppuType( &xRet ) );
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pSSF );
++ }
++ else
++ {
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": cannot get factory of "
++ "demanded implementation: ");
++ aExcMsg += OStringToOUString(
++ aImplName, RTL_TEXTENCODING_ASCII_US );
++ }
+ }
+ else
+ {
+- aExcMsg = aModulePath;
+- aExcMsg += OUSTR(": cannot get factory of "
+- "demanded implementation: ");
+- aExcMsg += OStringToOUString(
+- aImplName, RTL_TEXTENCODING_ASCII_US );
++ aExcMsg =
++ OUSTR("cannot get uno mappings: C++ <=> UNO!");
+ }
+ }
+ else
+ {
+- aExcMsg =
+- OUSTR("cannot get uno mappings: C++ <=> UNO!");
++ aExcMsg = OUSTR("cannot get uno environments!");
+ }
+- }
+- else
+- {
+- aExcMsg = OUSTR("cannot get uno environments!");
++
++ if (pCurrentEnv)
++ (*pCurrentEnv->release)( pCurrentEnv );
+ }
+ }
+ else
+@@ -401,8 +427,6 @@
+
+ if (pEnv)
+ (*pEnv->release)( pEnv );
+- if (pCurrentEnv)
+- (*pCurrentEnv->release)( pCurrentEnv );
+ }
+ else
+ {
+@@ -463,7 +487,6 @@
+ pSym = osl_getFunctionSymbol( lib, aGetEnvName.pData );
+ if (pSym != 0)
+ {
+- uno_Environment * pCurrentEnv = 0;
+ uno_Environment * pEnv = 0;
+
+ const sal_Char * pEnvTypeName = 0;
+@@ -471,65 +494,92 @@
+ &pEnvTypeName, &pEnv );
+ OUString aEnvTypeName( OUString::createFromAscii( pEnvTypeName ) );
+
+- if (! pEnv)
+- {
+- uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
+- }
+- if (pEnv)
+- {
+- OUString aCppEnvTypeName =
+- OUSTR(CPPU_CURRENT_LANGUAGE_BINDING_NAME);
+- uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
+- }
+-
+ OUString aWriteInfoName = OUSTR(COMPONENT_WRITEINFO);
+ pSym = osl_getFunctionSymbol( lib, aWriteInfoName.pData );
+ if (pSym != 0)
+ {
+- if (pEnv && pCurrentEnv)
++ if (pEnv == NULL && aEnvTypeName.equalsAsciiL(
++ RTL_CONSTASCII_STRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME)))
++ {
++ if (xKey.is())
++ {
++ bRet = (*((component_writeInfoFunc) pSym))(
++ xMgr.get(), xKey.get() );
++ if (! bRet)
++ {
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": component_writeInfo() returned "
++ "false!");
++ }
++ }
++ else
++ {
++ // key is mandatory
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": registry is mandatory to invoke "
++ "component_writeInfo()!");
++ }
++ }
++ else
+ {
+- Mapping aCurrent2Env( pCurrentEnv, pEnv );
+- if (aCurrent2Env.is())
++ if (!pEnv)
++ uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
++
++ uno_Environment * pCurrentEnv = 0;
++ if (pEnv)
+ {
+- void * pSMgr = aCurrent2Env.mapInterface(
+- xMgr.get(), ::getCppuType( &xMgr ) );
+- void * pKey = aCurrent2Env.mapInterface(
+- xKey.get(), ::getCppuType( &xKey ) );
+- if (pKey)
++ OUString aCppEnvTypeName =
++ OUSTR(CPPU_CURRENT_LANGUAGE_BINDING_NAME);
++ uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
++ }
++
++ if (pEnv && pCurrentEnv)
++ {
++ Mapping aCurrent2Env( pCurrentEnv, pEnv );
++ if (aCurrent2Env.is())
+ {
+- bRet = (*((component_writeInfoFunc) pSym))(
+- pSMgr, pKey );
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pKey );
+- if (! bRet)
++ void * pSMgr = aCurrent2Env.mapInterface(
++ xMgr.get(), ::getCppuType( &xMgr ) );
++ void * pKey = aCurrent2Env.mapInterface(
++ xKey.get(), ::getCppuType( &xKey ) );
++ if (pKey)
++ {
++ bRet = (*((component_writeInfoFunc) pSym))(
++ pSMgr, pKey );
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pKey );
++ if (! bRet)
++ {
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": component_writeInfo() "
++ "returned false!");
++ }
++ }
++ else
+ {
++ // key is mandatory
+ aExcMsg = aModulePath;
+- aExcMsg += OUSTR(": component_writeInfo() "
+- "returned false!");
++ aExcMsg += OUSTR(": registry is mandatory to invoke"
++ " component_writeInfo()!");
++ }
++
++ if (pSMgr)
++ {
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pSMgr );
+ }
+ }
+ else
+ {
+- // key is mandatory
+- aExcMsg = aModulePath;
+- aExcMsg += OUSTR(": registry is mandatory to invoke"
+- " component_writeInfo()!");
+- }
+-
+- if (pSMgr)
+- {
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pSMgr );
++ aExcMsg = OUSTR("cannot get uno mapping: C++ <=> UNO!");
+ }
+ }
+ else
+ {
+- aExcMsg = OUSTR("cannot get uno mapping: C++ <=> UNO!");
++ aExcMsg = OUSTR("cannot get uno environments!");
+ }
+- }
+- else
+- {
+- aExcMsg = OUSTR("cannot get uno environments!");
++ if (pCurrentEnv)
++ (*pCurrentEnv->release)( pCurrentEnv );
+ }
+ }
+ else
+@@ -541,8 +591,6 @@
+
+ if (pEnv)
+ (*pEnv->release)( pEnv );
+- if (pCurrentEnv)
+- (*pCurrentEnv->release)( pCurrentEnv );
+ }
+ else
+ {
diff --git a/editors/openoffice.org-2-devel/Makefile b/editors/openoffice.org-2-devel/Makefile
index f011aca5a37f..5a0f5c95cea3 100644
--- a/editors/openoffice.org-2-devel/Makefile
+++ b/editors/openoffice.org-2-devel/Makefile
@@ -71,10 +71,10 @@ IGNORE= install lang/perl5.8 then try again
.endif
CODELINE= 680
-MILESTONE?= 195
+MILESTONE?= 196
OOOTAG?= SRC680_m${MILESTONE}
OOOSRC?= OOo_${OOOTAG}_source${EXTRACT_SUFX}
-SNAPDATE= 20061124
+SNAPDATE= 20061207
INSTALLATION_BASEDIR?= openoffice.org-${OOOTAG}
EXECBASE?= openoffice.org-${OOOTAG}
DIST_SUBDIR= openoffice.org2.0
diff --git a/editors/openoffice.org-2-devel/distinfo b/editors/openoffice.org-2-devel/distinfo
index d0e6e3462077..eb1da4056a56 100644
--- a/editors/openoffice.org-2-devel/distinfo
+++ b/editors/openoffice.org-2-devel/distinfo
@@ -1,6 +1,6 @@
-MD5 (openoffice.org2.0/OOo_SRC680_m195_source.tar.bz2) = 1ba55cdc451442df436e57d4cc367e3c
-SHA256 (openoffice.org2.0/OOo_SRC680_m195_source.tar.bz2) = b134076f201ab55a0aaafda55d338801e6571d5c0ec2bb615e4948ca0622265c
-SIZE (openoffice.org2.0/OOo_SRC680_m195_source.tar.bz2) = 263554482
+MD5 (openoffice.org2.0/OOo_SRC680_m196_source.tar.bz2) = 3814528e518342a63be679537bfd1a47
+SHA256 (openoffice.org2.0/OOo_SRC680_m196_source.tar.bz2) = 233c99f0b3e0ed7bd1dd2d49f867de77fbd1b628a33b3ba276828297b1effbaa
+SIZE (openoffice.org2.0/OOo_SRC680_m196_source.tar.bz2) = 263576602
MD5 (openoffice.org2.0/unowinreg.dll) = e3a0b76dcd876f3d721ee7183729153d
SHA256 (openoffice.org2.0/unowinreg.dll) = f563e522922133db9340b0306711c2d8767cc3481dd9e7d9b0d059906d12653c
SIZE (openoffice.org2.0/unowinreg.dll) = 6144
diff --git a/editors/openoffice.org-2-devel/files/patch-i71760 b/editors/openoffice.org-2-devel/files/patch-i71760
deleted file mode 100644
index ddbb3c732062..000000000000
--- a/editors/openoffice.org-2-devel/files/patch-i71760
+++ /dev/null
@@ -1,23 +0,0 @@
-Index: toolkit/source/controls/unocontrolcontainer.cxx
-===================================================================
-RCS file: /cvs/gsl/toolkit/source/controls/unocontrolcontainer.cxx,v
-retrieving revision 1.16
-diff -u -r1.16 unocontrolcontainer.cxx
---- toolkit/source/controls/unocontrolcontainer.cxx 14 Nov 2006 12:28:48 -0000 1.16
-+++ toolkit/source/controls/unocontrolcontainer.cxx 20 Nov 2006 05:23:48 -0000
-@@ -185,13 +185,13 @@
- @throw uno::RuntimeException
- if no free identifier can be found
- */
-- ControlIdentifier UnoControlHolderList::impl_getFreeIdentifier_throw();
-+ ControlIdentifier impl_getFreeIdentifier_throw();
-
- /** finds a free name
- @throw uno::RuntimeException
- if no free name can be found
- */
-- ::rtl::OUString UnoControlHolderList::impl_getFreeName_throw();
-+ ::rtl::OUString impl_getFreeName_throw();
- };
-
- //------------------------------------------------------------------------
diff --git a/editors/openoffice.org-2-devel/files/patch-i71848 b/editors/openoffice.org-2-devel/files/patch-i71848
deleted file mode 100644
index 053048ec6f71..000000000000
--- a/editors/openoffice.org-2-devel/files/patch-i71848
+++ /dev/null
@@ -1,30 +0,0 @@
---- svx/source/msfilter/msdffimp.cxx 2006-11-22
-11:22:41.000000000 +0100
-+++ svx/source/msfilter/msdffimp.cxx 2006-11-22
-11:52:34.000000000 +0100
-@@ -3516,7 +3516,7 @@
- Scale( rPoly[ nPolyNum ] );
- }
-
--void SvxMSDffManager::ScaleEmu( long& rVal ) const
-+void SvxMSDffManager::ScaleEmu( sal_Int32& rVal ) const
- {
- rVal = BigMulDiv( rVal, nEmuMul, nEmuDiv );
- }
-
-
---- svx/source/svdraw/svdtxhdl.cxx 2006-11-22
-11:22:43.000000000 +0100
-+++ svx/source/svdraw/svdtxhdl.cxx 2006-11-22
-11:53:00.000000000 +0100
-@@ -183,7 +183,7 @@
- rOutliner.Clear();
- rOutliner.SetPaperSize(Size(LONG_MAX,LONG_MAX));
- rOutliner.SetText(*pPara);
-- sal_uInt32 nCnt(Min(aContourPolyPolygon.count(), rOutliner.GetParagraphCount()));
-+ sal_uInt32 nCnt(Min(aContourPolyPolygon.count(), (sal_uInt32)rOutliner.GetParagraphCount()));
-
- if ( nCnt == 1 ) bToLastPoint = TRUE;
- else bToLastPoint = FALSE;
-
-
diff --git a/editors/openoffice.org-2-devel/files/patch-i71977 b/editors/openoffice.org-2-devel/files/patch-i71977
deleted file mode 100644
index 3feddab4bcd8..000000000000
--- a/editors/openoffice.org-2-devel/files/patch-i71977
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: sd/inc/CustomAnimationPreset.hxx
-===================================================================
-RCS file: /cvs/graphics/sd/inc/CustomAnimationPreset.hxx,v
-retrieving revision 1.3
-diff -u -r1.3 CustomAnimationPreset.hxx
---- sd/inc/CustomAnimationPreset.hxx 9 Sep 2005 02:50:54 -0000 1.3
-+++ sd/inc/CustomAnimationPreset.hxx 5 Dec 2006 08:01:01 -0000
-@@ -56,6 +56,7 @@
- #include <CustomAnimationEffect.hxx>
- #endif
-
-+#include <hash_map>
-
- namespace sd {
-
diff --git a/editors/openoffice.org-2-devel/files/patch-i72236 b/editors/openoffice.org-2-devel/files/patch-i72236
new file mode 100644
index 000000000000..3b4d0d4db93b
--- /dev/null
+++ b/editors/openoffice.org-2-devel/files/patch-i72236
@@ -0,0 +1,11 @@
+--- svtools/source/items1/stylepool.cxx 2006-12-10 20:59:39.000000000 +0100
++++ svtools/source/items1/stylepool.cxx 2006-12-10 20:59:57.000000000 +0100
+@@ -187,7 +187,7 @@
+
+ ::rtl::OUString StylePool::nameOf( SfxItemSet_Pointer_t pSet )
+ {
+- return ::rtl::OUString::valueOf( reinterpret_cast<sal_Int32>( pSet.get() ), 16 );
++ return ::rtl::OUString::valueOf( reinterpret_cast<sal_IntPtr>( pSet.get() ), 16 );
+ }
+
+ // class StylePoolImpl organized a tree-structure where every node represents a SfxItemSet.
diff --git a/editors/openoffice.org-2-devel/files/patch-i72372 b/editors/openoffice.org-2-devel/files/patch-i72372
new file mode 100644
index 000000000000..081bc0887742
--- /dev/null
+++ b/editors/openoffice.org-2-devel/files/patch-i72372
@@ -0,0 +1,331 @@
+Index: shlib.cxx
+===================================================================
+RCS file: /cvs/udk/cppuhelper/source/shlib.cxx,v
+retrieving revision 1.25
+diff -u -r1.25 shlib.cxx
+--- cppuhelper/source/shlib.cxx 1 Dec 2006 17:18:35 -0000 1.25
++++ cppuhelper/source/shlib.cxx 8 Dec 2006 16:31:16 -0000
+@@ -311,7 +311,6 @@
+ pSym = osl_getFunctionSymbol( lib, aGetEnvName.pData );
+ if (pSym != 0)
+ {
+- uno_Environment * pCurrentEnv = 0;
+ uno_Environment * pEnv = 0;
+
+ const sal_Char * pEnvTypeName = 0;
+@@ -319,17 +318,6 @@
+ &pEnvTypeName, &pEnv );
+ OUString aEnvTypeName( OUString::createFromAscii( pEnvTypeName ) );
+
+- if (! pEnv)
+- {
+- uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
+- }
+- if (pEnv)
+- {
+- OUString aCppEnvTypeName =
+- OUSTR(CPPU_CURRENT_LANGUAGE_BINDING_NAME);
+- uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
+- }
+-
+ OUString aGetFactoryName = OUSTR(COMPONENT_GETFACTORY);
+ pSym = osl_getFunctionSymbol( lib, aGetFactoryName.pData );
+ if (pSym != 0)
+@@ -337,59 +325,97 @@
+ OString aImplName(
+ OUStringToOString( rImplName, RTL_TEXTENCODING_ASCII_US ) );
+
+- if (pEnv && pCurrentEnv)
++ if (pEnv == NULL &&aEnvTypeName.equalsAsciiL(
++ RTL_CONSTASCII_STRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME)))
++ {
++ XInterface * pRet =
++ (XInterface *) (*((component_getFactoryFunc) pSym))(
++ aImplName.getStr(), xMgr.get(), xKey.get() );
++ if (pRet)
++ {
++ xRet = pRet;
++ pRet->release();
++ }
++ else
++ {
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": cannot get factory of demanded "
++ "implementation: ");
++ aExcMsg += OStringToOUString(
++ aImplName, RTL_TEXTENCODING_ASCII_US );
++ }
++ }
++ else
+ {
+- Mapping aCurrent2Env( pCurrentEnv, pEnv );
+- Mapping aEnv2Current( pEnv, pCurrentEnv );
++ if (!pEnv)
++ uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
+
+- if (aCurrent2Env.is() && aEnv2Current.is())
++ uno_Environment * pCurrentEnv = 0;
++ if (pEnv)
+ {
+- void * pSMgr = aCurrent2Env.mapInterface(
+- xMgr.get(), ::getCppuType( &xMgr ) );
+- void * pKey = aCurrent2Env.mapInterface(
+- xKey.get(), ::getCppuType( &xKey ) );
+-
+- void * pSSF =
+- (*((component_getFactoryFunc) pSym))(
+- aImplName.getStr(), pSMgr, pKey );
+-
+- if (pKey)
+- {
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pKey );
+- }
+- if (pSMgr)
+- {
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pSMgr );
+- }
++ OUString aCppEnvTypeName =
++ OUSTR(CPPU_CURRENT_LANGUAGE_BINDING_NAME);
++ uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
++ }
++
++
++ if (pEnv && pCurrentEnv)
++ {
++ Mapping aCurrent2Env( pCurrentEnv, pEnv );
++ Mapping aEnv2Current( pEnv, pCurrentEnv );
+
+- if (pSSF)
++ if (aCurrent2Env.is() && aEnv2Current.is())
+ {
+- aEnv2Current.mapInterface(
+- reinterpret_cast< void ** >( &xRet ),
+- pSSF, ::getCppuType( &xRet ) );
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pSSF );
++ void * pSMgr = aCurrent2Env.mapInterface(
++ xMgr.get(), ::getCppuType( &xMgr ) );
++ void * pKey = aCurrent2Env.mapInterface(
++ xKey.get(), ::getCppuType( &xKey ) );
++
++ void * pSSF =
++ (*((component_getFactoryFunc) pSym))(
++ aImplName.getStr(), pSMgr, pKey );
++
++ if (pKey)
++ {
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pKey );
++ }
++ if (pSMgr)
++ {
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pSMgr );
++ }
++
++ if (pSSF)
++ {
++ aEnv2Current.mapInterface(
++ reinterpret_cast< void ** >( &xRet ),
++ pSSF, ::getCppuType( &xRet ) );
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pSSF );
++ }
++ else
++ {
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": cannot get factory of "
++ "demanded implementation: ");
++ aExcMsg += OStringToOUString(
++ aImplName, RTL_TEXTENCODING_ASCII_US );
++ }
+ }
+ else
+ {
+- aExcMsg = aModulePath;
+- aExcMsg += OUSTR(": cannot get factory of "
+- "demanded implementation: ");
+- aExcMsg += OStringToOUString(
+- aImplName, RTL_TEXTENCODING_ASCII_US );
++ aExcMsg =
++ OUSTR("cannot get uno mappings: C++ <=> UNO!");
+ }
+ }
+ else
+ {
+- aExcMsg =
+- OUSTR("cannot get uno mappings: C++ <=> UNO!");
++ aExcMsg = OUSTR("cannot get uno environments!");
+ }
+- }
+- else
+- {
+- aExcMsg = OUSTR("cannot get uno environments!");
++
++ if (pCurrentEnv)
++ (*pCurrentEnv->release)( pCurrentEnv );
+ }
+ }
+ else
+@@ -401,8 +427,6 @@
+
+ if (pEnv)
+ (*pEnv->release)( pEnv );
+- if (pCurrentEnv)
+- (*pCurrentEnv->release)( pCurrentEnv );
+ }
+ else
+ {
+@@ -463,7 +487,6 @@
+ pSym = osl_getFunctionSymbol( lib, aGetEnvName.pData );
+ if (pSym != 0)
+ {
+- uno_Environment * pCurrentEnv = 0;
+ uno_Environment * pEnv = 0;
+
+ const sal_Char * pEnvTypeName = 0;
+@@ -471,65 +494,92 @@
+ &pEnvTypeName, &pEnv );
+ OUString aEnvTypeName( OUString::createFromAscii( pEnvTypeName ) );
+
+- if (! pEnv)
+- {
+- uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
+- }
+- if (pEnv)
+- {
+- OUString aCppEnvTypeName =
+- OUSTR(CPPU_CURRENT_LANGUAGE_BINDING_NAME);
+- uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
+- }
+-
+ OUString aWriteInfoName = OUSTR(COMPONENT_WRITEINFO);
+ pSym = osl_getFunctionSymbol( lib, aWriteInfoName.pData );
+ if (pSym != 0)
+ {
+- if (pEnv && pCurrentEnv)
++ if (pEnv == NULL && aEnvTypeName.equalsAsciiL(
++ RTL_CONSTASCII_STRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME)))
++ {
++ if (xKey.is())
++ {
++ bRet = (*((component_writeInfoFunc) pSym))(
++ xMgr.get(), xKey.get() );
++ if (! bRet)
++ {
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": component_writeInfo() returned "
++ "false!");
++ }
++ }
++ else
++ {
++ // key is mandatory
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": registry is mandatory to invoke "
++ "component_writeInfo()!");
++ }
++ }
++ else
+ {
+- Mapping aCurrent2Env( pCurrentEnv, pEnv );
+- if (aCurrent2Env.is())
++ if (!pEnv)
++ uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
++
++ uno_Environment * pCurrentEnv = 0;
++ if (pEnv)
+ {
+- void * pSMgr = aCurrent2Env.mapInterface(
+- xMgr.get(), ::getCppuType( &xMgr ) );
+- void * pKey = aCurrent2Env.mapInterface(
+- xKey.get(), ::getCppuType( &xKey ) );
+- if (pKey)
++ OUString aCppEnvTypeName =
++ OUSTR(CPPU_CURRENT_LANGUAGE_BINDING_NAME);
++ uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
++ }
++
++ if (pEnv && pCurrentEnv)
++ {
++ Mapping aCurrent2Env( pCurrentEnv, pEnv );
++ if (aCurrent2Env.is())
+ {
+- bRet = (*((component_writeInfoFunc) pSym))(
+- pSMgr, pKey );
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pKey );
+- if (! bRet)
++ void * pSMgr = aCurrent2Env.mapInterface(
++ xMgr.get(), ::getCppuType( &xMgr ) );
++ void * pKey = aCurrent2Env.mapInterface(
++ xKey.get(), ::getCppuType( &xKey ) );
++ if (pKey)
++ {
++ bRet = (*((component_writeInfoFunc) pSym))(
++ pSMgr, pKey );
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pKey );
++ if (! bRet)
++ {
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": component_writeInfo() "
++ "returned false!");
++ }
++ }
++ else
+ {
++ // key is mandatory
+ aExcMsg = aModulePath;
+- aExcMsg += OUSTR(": component_writeInfo() "
+- "returned false!");
++ aExcMsg += OUSTR(": registry is mandatory to invoke"
++ " component_writeInfo()!");
++ }
++
++ if (pSMgr)
++ {
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pSMgr );
+ }
+ }
+ else
+ {
+- // key is mandatory
+- aExcMsg = aModulePath;
+- aExcMsg += OUSTR(": registry is mandatory to invoke"
+- " component_writeInfo()!");
+- }
+-
+- if (pSMgr)
+- {
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pSMgr );
++ aExcMsg = OUSTR("cannot get uno mapping: C++ <=> UNO!");
+ }
+ }
+ else
+ {
+- aExcMsg = OUSTR("cannot get uno mapping: C++ <=> UNO!");
++ aExcMsg = OUSTR("cannot get uno environments!");
+ }
+- }
+- else
+- {
+- aExcMsg = OUSTR("cannot get uno environments!");
++ if (pCurrentEnv)
++ (*pCurrentEnv->release)( pCurrentEnv );
+ }
+ }
+ else
+@@ -541,8 +591,6 @@
+
+ if (pEnv)
+ (*pEnv->release)( pEnv );
+- if (pCurrentEnv)
+- (*pCurrentEnv->release)( pCurrentEnv );
+ }
+ else
+ {
diff --git a/editors/openoffice.org-3-devel/Makefile b/editors/openoffice.org-3-devel/Makefile
index f011aca5a37f..5a0f5c95cea3 100644
--- a/editors/openoffice.org-3-devel/Makefile
+++ b/editors/openoffice.org-3-devel/Makefile
@@ -71,10 +71,10 @@ IGNORE= install lang/perl5.8 then try again
.endif
CODELINE= 680
-MILESTONE?= 195
+MILESTONE?= 196
OOOTAG?= SRC680_m${MILESTONE}
OOOSRC?= OOo_${OOOTAG}_source${EXTRACT_SUFX}
-SNAPDATE= 20061124
+SNAPDATE= 20061207
INSTALLATION_BASEDIR?= openoffice.org-${OOOTAG}
EXECBASE?= openoffice.org-${OOOTAG}
DIST_SUBDIR= openoffice.org2.0
diff --git a/editors/openoffice.org-3-devel/distinfo b/editors/openoffice.org-3-devel/distinfo
index d0e6e3462077..eb1da4056a56 100644
--- a/editors/openoffice.org-3-devel/distinfo
+++ b/editors/openoffice.org-3-devel/distinfo
@@ -1,6 +1,6 @@
-MD5 (openoffice.org2.0/OOo_SRC680_m195_source.tar.bz2) = 1ba55cdc451442df436e57d4cc367e3c
-SHA256 (openoffice.org2.0/OOo_SRC680_m195_source.tar.bz2) = b134076f201ab55a0aaafda55d338801e6571d5c0ec2bb615e4948ca0622265c
-SIZE (openoffice.org2.0/OOo_SRC680_m195_source.tar.bz2) = 263554482
+MD5 (openoffice.org2.0/OOo_SRC680_m196_source.tar.bz2) = 3814528e518342a63be679537bfd1a47
+SHA256 (openoffice.org2.0/OOo_SRC680_m196_source.tar.bz2) = 233c99f0b3e0ed7bd1dd2d49f867de77fbd1b628a33b3ba276828297b1effbaa
+SIZE (openoffice.org2.0/OOo_SRC680_m196_source.tar.bz2) = 263576602
MD5 (openoffice.org2.0/unowinreg.dll) = e3a0b76dcd876f3d721ee7183729153d
SHA256 (openoffice.org2.0/unowinreg.dll) = f563e522922133db9340b0306711c2d8767cc3481dd9e7d9b0d059906d12653c
SIZE (openoffice.org2.0/unowinreg.dll) = 6144
diff --git a/editors/openoffice.org-3-devel/files/patch-i71760 b/editors/openoffice.org-3-devel/files/patch-i71760
deleted file mode 100644
index ddbb3c732062..000000000000
--- a/editors/openoffice.org-3-devel/files/patch-i71760
+++ /dev/null
@@ -1,23 +0,0 @@
-Index: toolkit/source/controls/unocontrolcontainer.cxx
-===================================================================
-RCS file: /cvs/gsl/toolkit/source/controls/unocontrolcontainer.cxx,v
-retrieving revision 1.16
-diff -u -r1.16 unocontrolcontainer.cxx
---- toolkit/source/controls/unocontrolcontainer.cxx 14 Nov 2006 12:28:48 -0000 1.16
-+++ toolkit/source/controls/unocontrolcontainer.cxx 20 Nov 2006 05:23:48 -0000
-@@ -185,13 +185,13 @@
- @throw uno::RuntimeException
- if no free identifier can be found
- */
-- ControlIdentifier UnoControlHolderList::impl_getFreeIdentifier_throw();
-+ ControlIdentifier impl_getFreeIdentifier_throw();
-
- /** finds a free name
- @throw uno::RuntimeException
- if no free name can be found
- */
-- ::rtl::OUString UnoControlHolderList::impl_getFreeName_throw();
-+ ::rtl::OUString impl_getFreeName_throw();
- };
-
- //------------------------------------------------------------------------
diff --git a/editors/openoffice.org-3-devel/files/patch-i71848 b/editors/openoffice.org-3-devel/files/patch-i71848
deleted file mode 100644
index 053048ec6f71..000000000000
--- a/editors/openoffice.org-3-devel/files/patch-i71848
+++ /dev/null
@@ -1,30 +0,0 @@
---- svx/source/msfilter/msdffimp.cxx 2006-11-22
-11:22:41.000000000 +0100
-+++ svx/source/msfilter/msdffimp.cxx 2006-11-22
-11:52:34.000000000 +0100
-@@ -3516,7 +3516,7 @@
- Scale( rPoly[ nPolyNum ] );
- }
-
--void SvxMSDffManager::ScaleEmu( long& rVal ) const
-+void SvxMSDffManager::ScaleEmu( sal_Int32& rVal ) const
- {
- rVal = BigMulDiv( rVal, nEmuMul, nEmuDiv );
- }
-
-
---- svx/source/svdraw/svdtxhdl.cxx 2006-11-22
-11:22:43.000000000 +0100
-+++ svx/source/svdraw/svdtxhdl.cxx 2006-11-22
-11:53:00.000000000 +0100
-@@ -183,7 +183,7 @@
- rOutliner.Clear();
- rOutliner.SetPaperSize(Size(LONG_MAX,LONG_MAX));
- rOutliner.SetText(*pPara);
-- sal_uInt32 nCnt(Min(aContourPolyPolygon.count(), rOutliner.GetParagraphCount()));
-+ sal_uInt32 nCnt(Min(aContourPolyPolygon.count(), (sal_uInt32)rOutliner.GetParagraphCount()));
-
- if ( nCnt == 1 ) bToLastPoint = TRUE;
- else bToLastPoint = FALSE;
-
-
diff --git a/editors/openoffice.org-3-devel/files/patch-i71977 b/editors/openoffice.org-3-devel/files/patch-i71977
deleted file mode 100644
index 3feddab4bcd8..000000000000
--- a/editors/openoffice.org-3-devel/files/patch-i71977
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: sd/inc/CustomAnimationPreset.hxx
-===================================================================
-RCS file: /cvs/graphics/sd/inc/CustomAnimationPreset.hxx,v
-retrieving revision 1.3
-diff -u -r1.3 CustomAnimationPreset.hxx
---- sd/inc/CustomAnimationPreset.hxx 9 Sep 2005 02:50:54 -0000 1.3
-+++ sd/inc/CustomAnimationPreset.hxx 5 Dec 2006 08:01:01 -0000
-@@ -56,6 +56,7 @@
- #include <CustomAnimationEffect.hxx>
- #endif
-
-+#include <hash_map>
-
- namespace sd {
-
diff --git a/editors/openoffice.org-3-devel/files/patch-i72236 b/editors/openoffice.org-3-devel/files/patch-i72236
new file mode 100644
index 000000000000..3b4d0d4db93b
--- /dev/null
+++ b/editors/openoffice.org-3-devel/files/patch-i72236
@@ -0,0 +1,11 @@
+--- svtools/source/items1/stylepool.cxx 2006-12-10 20:59:39.000000000 +0100
++++ svtools/source/items1/stylepool.cxx 2006-12-10 20:59:57.000000000 +0100
+@@ -187,7 +187,7 @@
+
+ ::rtl::OUString StylePool::nameOf( SfxItemSet_Pointer_t pSet )
+ {
+- return ::rtl::OUString::valueOf( reinterpret_cast<sal_Int32>( pSet.get() ), 16 );
++ return ::rtl::OUString::valueOf( reinterpret_cast<sal_IntPtr>( pSet.get() ), 16 );
+ }
+
+ // class StylePoolImpl organized a tree-structure where every node represents a SfxItemSet.
diff --git a/editors/openoffice.org-3-devel/files/patch-i72372 b/editors/openoffice.org-3-devel/files/patch-i72372
new file mode 100644
index 000000000000..081bc0887742
--- /dev/null
+++ b/editors/openoffice.org-3-devel/files/patch-i72372
@@ -0,0 +1,331 @@
+Index: shlib.cxx
+===================================================================
+RCS file: /cvs/udk/cppuhelper/source/shlib.cxx,v
+retrieving revision 1.25
+diff -u -r1.25 shlib.cxx
+--- cppuhelper/source/shlib.cxx 1 Dec 2006 17:18:35 -0000 1.25
++++ cppuhelper/source/shlib.cxx 8 Dec 2006 16:31:16 -0000
+@@ -311,7 +311,6 @@
+ pSym = osl_getFunctionSymbol( lib, aGetEnvName.pData );
+ if (pSym != 0)
+ {
+- uno_Environment * pCurrentEnv = 0;
+ uno_Environment * pEnv = 0;
+
+ const sal_Char * pEnvTypeName = 0;
+@@ -319,17 +318,6 @@
+ &pEnvTypeName, &pEnv );
+ OUString aEnvTypeName( OUString::createFromAscii( pEnvTypeName ) );
+
+- if (! pEnv)
+- {
+- uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
+- }
+- if (pEnv)
+- {
+- OUString aCppEnvTypeName =
+- OUSTR(CPPU_CURRENT_LANGUAGE_BINDING_NAME);
+- uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
+- }
+-
+ OUString aGetFactoryName = OUSTR(COMPONENT_GETFACTORY);
+ pSym = osl_getFunctionSymbol( lib, aGetFactoryName.pData );
+ if (pSym != 0)
+@@ -337,59 +325,97 @@
+ OString aImplName(
+ OUStringToOString( rImplName, RTL_TEXTENCODING_ASCII_US ) );
+
+- if (pEnv && pCurrentEnv)
++ if (pEnv == NULL &&aEnvTypeName.equalsAsciiL(
++ RTL_CONSTASCII_STRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME)))
++ {
++ XInterface * pRet =
++ (XInterface *) (*((component_getFactoryFunc) pSym))(
++ aImplName.getStr(), xMgr.get(), xKey.get() );
++ if (pRet)
++ {
++ xRet = pRet;
++ pRet->release();
++ }
++ else
++ {
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": cannot get factory of demanded "
++ "implementation: ");
++ aExcMsg += OStringToOUString(
++ aImplName, RTL_TEXTENCODING_ASCII_US );
++ }
++ }
++ else
+ {
+- Mapping aCurrent2Env( pCurrentEnv, pEnv );
+- Mapping aEnv2Current( pEnv, pCurrentEnv );
++ if (!pEnv)
++ uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
+
+- if (aCurrent2Env.is() && aEnv2Current.is())
++ uno_Environment * pCurrentEnv = 0;
++ if (pEnv)
+ {
+- void * pSMgr = aCurrent2Env.mapInterface(
+- xMgr.get(), ::getCppuType( &xMgr ) );
+- void * pKey = aCurrent2Env.mapInterface(
+- xKey.get(), ::getCppuType( &xKey ) );
+-
+- void * pSSF =
+- (*((component_getFactoryFunc) pSym))(
+- aImplName.getStr(), pSMgr, pKey );
+-
+- if (pKey)
+- {
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pKey );
+- }
+- if (pSMgr)
+- {
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pSMgr );
+- }
++ OUString aCppEnvTypeName =
++ OUSTR(CPPU_CURRENT_LANGUAGE_BINDING_NAME);
++ uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
++ }
++
++
++ if (pEnv && pCurrentEnv)
++ {
++ Mapping aCurrent2Env( pCurrentEnv, pEnv );
++ Mapping aEnv2Current( pEnv, pCurrentEnv );
+
+- if (pSSF)
++ if (aCurrent2Env.is() && aEnv2Current.is())
+ {
+- aEnv2Current.mapInterface(
+- reinterpret_cast< void ** >( &xRet ),
+- pSSF, ::getCppuType( &xRet ) );
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pSSF );
++ void * pSMgr = aCurrent2Env.mapInterface(
++ xMgr.get(), ::getCppuType( &xMgr ) );
++ void * pKey = aCurrent2Env.mapInterface(
++ xKey.get(), ::getCppuType( &xKey ) );
++
++ void * pSSF =
++ (*((component_getFactoryFunc) pSym))(
++ aImplName.getStr(), pSMgr, pKey );
++
++ if (pKey)
++ {
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pKey );
++ }
++ if (pSMgr)
++ {
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pSMgr );
++ }
++
++ if (pSSF)
++ {
++ aEnv2Current.mapInterface(
++ reinterpret_cast< void ** >( &xRet ),
++ pSSF, ::getCppuType( &xRet ) );
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pSSF );
++ }
++ else
++ {
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": cannot get factory of "
++ "demanded implementation: ");
++ aExcMsg += OStringToOUString(
++ aImplName, RTL_TEXTENCODING_ASCII_US );
++ }
+ }
+ else
+ {
+- aExcMsg = aModulePath;
+- aExcMsg += OUSTR(": cannot get factory of "
+- "demanded implementation: ");
+- aExcMsg += OStringToOUString(
+- aImplName, RTL_TEXTENCODING_ASCII_US );
++ aExcMsg =
++ OUSTR("cannot get uno mappings: C++ <=> UNO!");
+ }
+ }
+ else
+ {
+- aExcMsg =
+- OUSTR("cannot get uno mappings: C++ <=> UNO!");
++ aExcMsg = OUSTR("cannot get uno environments!");
+ }
+- }
+- else
+- {
+- aExcMsg = OUSTR("cannot get uno environments!");
++
++ if (pCurrentEnv)
++ (*pCurrentEnv->release)( pCurrentEnv );
+ }
+ }
+ else
+@@ -401,8 +427,6 @@
+
+ if (pEnv)
+ (*pEnv->release)( pEnv );
+- if (pCurrentEnv)
+- (*pCurrentEnv->release)( pCurrentEnv );
+ }
+ else
+ {
+@@ -463,7 +487,6 @@
+ pSym = osl_getFunctionSymbol( lib, aGetEnvName.pData );
+ if (pSym != 0)
+ {
+- uno_Environment * pCurrentEnv = 0;
+ uno_Environment * pEnv = 0;
+
+ const sal_Char * pEnvTypeName = 0;
+@@ -471,65 +494,92 @@
+ &pEnvTypeName, &pEnv );
+ OUString aEnvTypeName( OUString::createFromAscii( pEnvTypeName ) );
+
+- if (! pEnv)
+- {
+- uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
+- }
+- if (pEnv)
+- {
+- OUString aCppEnvTypeName =
+- OUSTR(CPPU_CURRENT_LANGUAGE_BINDING_NAME);
+- uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
+- }
+-
+ OUString aWriteInfoName = OUSTR(COMPONENT_WRITEINFO);
+ pSym = osl_getFunctionSymbol( lib, aWriteInfoName.pData );
+ if (pSym != 0)
+ {
+- if (pEnv && pCurrentEnv)
++ if (pEnv == NULL && aEnvTypeName.equalsAsciiL(
++ RTL_CONSTASCII_STRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME)))
++ {
++ if (xKey.is())
++ {
++ bRet = (*((component_writeInfoFunc) pSym))(
++ xMgr.get(), xKey.get() );
++ if (! bRet)
++ {
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": component_writeInfo() returned "
++ "false!");
++ }
++ }
++ else
++ {
++ // key is mandatory
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": registry is mandatory to invoke "
++ "component_writeInfo()!");
++ }
++ }
++ else
+ {
+- Mapping aCurrent2Env( pCurrentEnv, pEnv );
+- if (aCurrent2Env.is())
++ if (!pEnv)
++ uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
++
++ uno_Environment * pCurrentEnv = 0;
++ if (pEnv)
+ {
+- void * pSMgr = aCurrent2Env.mapInterface(
+- xMgr.get(), ::getCppuType( &xMgr ) );
+- void * pKey = aCurrent2Env.mapInterface(
+- xKey.get(), ::getCppuType( &xKey ) );
+- if (pKey)
++ OUString aCppEnvTypeName =
++ OUSTR(CPPU_CURRENT_LANGUAGE_BINDING_NAME);
++ uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
++ }
++
++ if (pEnv && pCurrentEnv)
++ {
++ Mapping aCurrent2Env( pCurrentEnv, pEnv );
++ if (aCurrent2Env.is())
+ {
+- bRet = (*((component_writeInfoFunc) pSym))(
+- pSMgr, pKey );
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pKey );
+- if (! bRet)
++ void * pSMgr = aCurrent2Env.mapInterface(
++ xMgr.get(), ::getCppuType( &xMgr ) );
++ void * pKey = aCurrent2Env.mapInterface(
++ xKey.get(), ::getCppuType( &xKey ) );
++ if (pKey)
++ {
++ bRet = (*((component_writeInfoFunc) pSym))(
++ pSMgr, pKey );
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pKey );
++ if (! bRet)
++ {
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": component_writeInfo() "
++ "returned false!");
++ }
++ }
++ else
+ {
++ // key is mandatory
+ aExcMsg = aModulePath;
+- aExcMsg += OUSTR(": component_writeInfo() "
+- "returned false!");
++ aExcMsg += OUSTR(": registry is mandatory to invoke"
++ " component_writeInfo()!");
++ }
++
++ if (pSMgr)
++ {
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pSMgr );
+ }
+ }
+ else
+ {
+- // key is mandatory
+- aExcMsg = aModulePath;
+- aExcMsg += OUSTR(": registry is mandatory to invoke"
+- " component_writeInfo()!");
+- }
+-
+- if (pSMgr)
+- {
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pSMgr );
++ aExcMsg = OUSTR("cannot get uno mapping: C++ <=> UNO!");
+ }
+ }
+ else
+ {
+- aExcMsg = OUSTR("cannot get uno mapping: C++ <=> UNO!");
++ aExcMsg = OUSTR("cannot get uno environments!");
+ }
+- }
+- else
+- {
+- aExcMsg = OUSTR("cannot get uno environments!");
++ if (pCurrentEnv)
++ (*pCurrentEnv->release)( pCurrentEnv );
+ }
+ }
+ else
+@@ -541,8 +591,6 @@
+
+ if (pEnv)
+ (*pEnv->release)( pEnv );
+- if (pCurrentEnv)
+- (*pCurrentEnv->release)( pCurrentEnv );
+ }
+ else
+ {
diff --git a/editors/openoffice.org-vcltesttool/Makefile b/editors/openoffice.org-vcltesttool/Makefile
index f011aca5a37f..5a0f5c95cea3 100644
--- a/editors/openoffice.org-vcltesttool/Makefile
+++ b/editors/openoffice.org-vcltesttool/Makefile
@@ -71,10 +71,10 @@ IGNORE= install lang/perl5.8 then try again
.endif
CODELINE= 680
-MILESTONE?= 195
+MILESTONE?= 196
OOOTAG?= SRC680_m${MILESTONE}
OOOSRC?= OOo_${OOOTAG}_source${EXTRACT_SUFX}
-SNAPDATE= 20061124
+SNAPDATE= 20061207
INSTALLATION_BASEDIR?= openoffice.org-${OOOTAG}
EXECBASE?= openoffice.org-${OOOTAG}
DIST_SUBDIR= openoffice.org2.0
diff --git a/editors/openoffice.org-vcltesttool/distinfo b/editors/openoffice.org-vcltesttool/distinfo
index d0e6e3462077..eb1da4056a56 100644
--- a/editors/openoffice.org-vcltesttool/distinfo
+++ b/editors/openoffice.org-vcltesttool/distinfo
@@ -1,6 +1,6 @@
-MD5 (openoffice.org2.0/OOo_SRC680_m195_source.tar.bz2) = 1ba55cdc451442df436e57d4cc367e3c
-SHA256 (openoffice.org2.0/OOo_SRC680_m195_source.tar.bz2) = b134076f201ab55a0aaafda55d338801e6571d5c0ec2bb615e4948ca0622265c
-SIZE (openoffice.org2.0/OOo_SRC680_m195_source.tar.bz2) = 263554482
+MD5 (openoffice.org2.0/OOo_SRC680_m196_source.tar.bz2) = 3814528e518342a63be679537bfd1a47
+SHA256 (openoffice.org2.0/OOo_SRC680_m196_source.tar.bz2) = 233c99f0b3e0ed7bd1dd2d49f867de77fbd1b628a33b3ba276828297b1effbaa
+SIZE (openoffice.org2.0/OOo_SRC680_m196_source.tar.bz2) = 263576602
MD5 (openoffice.org2.0/unowinreg.dll) = e3a0b76dcd876f3d721ee7183729153d
SHA256 (openoffice.org2.0/unowinreg.dll) = f563e522922133db9340b0306711c2d8767cc3481dd9e7d9b0d059906d12653c
SIZE (openoffice.org2.0/unowinreg.dll) = 6144
diff --git a/editors/openoffice.org-vcltesttool/files/patch-i71760 b/editors/openoffice.org-vcltesttool/files/patch-i71760
deleted file mode 100644
index ddbb3c732062..000000000000
--- a/editors/openoffice.org-vcltesttool/files/patch-i71760
+++ /dev/null
@@ -1,23 +0,0 @@
-Index: toolkit/source/controls/unocontrolcontainer.cxx
-===================================================================
-RCS file: /cvs/gsl/toolkit/source/controls/unocontrolcontainer.cxx,v
-retrieving revision 1.16
-diff -u -r1.16 unocontrolcontainer.cxx
---- toolkit/source/controls/unocontrolcontainer.cxx 14 Nov 2006 12:28:48 -0000 1.16
-+++ toolkit/source/controls/unocontrolcontainer.cxx 20 Nov 2006 05:23:48 -0000
-@@ -185,13 +185,13 @@
- @throw uno::RuntimeException
- if no free identifier can be found
- */
-- ControlIdentifier UnoControlHolderList::impl_getFreeIdentifier_throw();
-+ ControlIdentifier impl_getFreeIdentifier_throw();
-
- /** finds a free name
- @throw uno::RuntimeException
- if no free name can be found
- */
-- ::rtl::OUString UnoControlHolderList::impl_getFreeName_throw();
-+ ::rtl::OUString impl_getFreeName_throw();
- };
-
- //------------------------------------------------------------------------
diff --git a/editors/openoffice.org-vcltesttool/files/patch-i71848 b/editors/openoffice.org-vcltesttool/files/patch-i71848
deleted file mode 100644
index 053048ec6f71..000000000000
--- a/editors/openoffice.org-vcltesttool/files/patch-i71848
+++ /dev/null
@@ -1,30 +0,0 @@
---- svx/source/msfilter/msdffimp.cxx 2006-11-22
-11:22:41.000000000 +0100
-+++ svx/source/msfilter/msdffimp.cxx 2006-11-22
-11:52:34.000000000 +0100
-@@ -3516,7 +3516,7 @@
- Scale( rPoly[ nPolyNum ] );
- }
-
--void SvxMSDffManager::ScaleEmu( long& rVal ) const
-+void SvxMSDffManager::ScaleEmu( sal_Int32& rVal ) const
- {
- rVal = BigMulDiv( rVal, nEmuMul, nEmuDiv );
- }
-
-
---- svx/source/svdraw/svdtxhdl.cxx 2006-11-22
-11:22:43.000000000 +0100
-+++ svx/source/svdraw/svdtxhdl.cxx 2006-11-22
-11:53:00.000000000 +0100
-@@ -183,7 +183,7 @@
- rOutliner.Clear();
- rOutliner.SetPaperSize(Size(LONG_MAX,LONG_MAX));
- rOutliner.SetText(*pPara);
-- sal_uInt32 nCnt(Min(aContourPolyPolygon.count(), rOutliner.GetParagraphCount()));
-+ sal_uInt32 nCnt(Min(aContourPolyPolygon.count(), (sal_uInt32)rOutliner.GetParagraphCount()));
-
- if ( nCnt == 1 ) bToLastPoint = TRUE;
- else bToLastPoint = FALSE;
-
-
diff --git a/editors/openoffice.org-vcltesttool/files/patch-i71977 b/editors/openoffice.org-vcltesttool/files/patch-i71977
deleted file mode 100644
index 3feddab4bcd8..000000000000
--- a/editors/openoffice.org-vcltesttool/files/patch-i71977
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: sd/inc/CustomAnimationPreset.hxx
-===================================================================
-RCS file: /cvs/graphics/sd/inc/CustomAnimationPreset.hxx,v
-retrieving revision 1.3
-diff -u -r1.3 CustomAnimationPreset.hxx
---- sd/inc/CustomAnimationPreset.hxx 9 Sep 2005 02:50:54 -0000 1.3
-+++ sd/inc/CustomAnimationPreset.hxx 5 Dec 2006 08:01:01 -0000
-@@ -56,6 +56,7 @@
- #include <CustomAnimationEffect.hxx>
- #endif
-
-+#include <hash_map>
-
- namespace sd {
-
diff --git a/editors/openoffice.org-vcltesttool/files/patch-i72236 b/editors/openoffice.org-vcltesttool/files/patch-i72236
new file mode 100644
index 000000000000..3b4d0d4db93b
--- /dev/null
+++ b/editors/openoffice.org-vcltesttool/files/patch-i72236
@@ -0,0 +1,11 @@
+--- svtools/source/items1/stylepool.cxx 2006-12-10 20:59:39.000000000 +0100
++++ svtools/source/items1/stylepool.cxx 2006-12-10 20:59:57.000000000 +0100
+@@ -187,7 +187,7 @@
+
+ ::rtl::OUString StylePool::nameOf( SfxItemSet_Pointer_t pSet )
+ {
+- return ::rtl::OUString::valueOf( reinterpret_cast<sal_Int32>( pSet.get() ), 16 );
++ return ::rtl::OUString::valueOf( reinterpret_cast<sal_IntPtr>( pSet.get() ), 16 );
+ }
+
+ // class StylePoolImpl organized a tree-structure where every node represents a SfxItemSet.
diff --git a/editors/openoffice.org-vcltesttool/files/patch-i72372 b/editors/openoffice.org-vcltesttool/files/patch-i72372
new file mode 100644
index 000000000000..081bc0887742
--- /dev/null
+++ b/editors/openoffice.org-vcltesttool/files/patch-i72372
@@ -0,0 +1,331 @@
+Index: shlib.cxx
+===================================================================
+RCS file: /cvs/udk/cppuhelper/source/shlib.cxx,v
+retrieving revision 1.25
+diff -u -r1.25 shlib.cxx
+--- cppuhelper/source/shlib.cxx 1 Dec 2006 17:18:35 -0000 1.25
++++ cppuhelper/source/shlib.cxx 8 Dec 2006 16:31:16 -0000
+@@ -311,7 +311,6 @@
+ pSym = osl_getFunctionSymbol( lib, aGetEnvName.pData );
+ if (pSym != 0)
+ {
+- uno_Environment * pCurrentEnv = 0;
+ uno_Environment * pEnv = 0;
+
+ const sal_Char * pEnvTypeName = 0;
+@@ -319,17 +318,6 @@
+ &pEnvTypeName, &pEnv );
+ OUString aEnvTypeName( OUString::createFromAscii( pEnvTypeName ) );
+
+- if (! pEnv)
+- {
+- uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
+- }
+- if (pEnv)
+- {
+- OUString aCppEnvTypeName =
+- OUSTR(CPPU_CURRENT_LANGUAGE_BINDING_NAME);
+- uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
+- }
+-
+ OUString aGetFactoryName = OUSTR(COMPONENT_GETFACTORY);
+ pSym = osl_getFunctionSymbol( lib, aGetFactoryName.pData );
+ if (pSym != 0)
+@@ -337,59 +325,97 @@
+ OString aImplName(
+ OUStringToOString( rImplName, RTL_TEXTENCODING_ASCII_US ) );
+
+- if (pEnv && pCurrentEnv)
++ if (pEnv == NULL &&aEnvTypeName.equalsAsciiL(
++ RTL_CONSTASCII_STRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME)))
++ {
++ XInterface * pRet =
++ (XInterface *) (*((component_getFactoryFunc) pSym))(
++ aImplName.getStr(), xMgr.get(), xKey.get() );
++ if (pRet)
++ {
++ xRet = pRet;
++ pRet->release();
++ }
++ else
++ {
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": cannot get factory of demanded "
++ "implementation: ");
++ aExcMsg += OStringToOUString(
++ aImplName, RTL_TEXTENCODING_ASCII_US );
++ }
++ }
++ else
+ {
+- Mapping aCurrent2Env( pCurrentEnv, pEnv );
+- Mapping aEnv2Current( pEnv, pCurrentEnv );
++ if (!pEnv)
++ uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
+
+- if (aCurrent2Env.is() && aEnv2Current.is())
++ uno_Environment * pCurrentEnv = 0;
++ if (pEnv)
+ {
+- void * pSMgr = aCurrent2Env.mapInterface(
+- xMgr.get(), ::getCppuType( &xMgr ) );
+- void * pKey = aCurrent2Env.mapInterface(
+- xKey.get(), ::getCppuType( &xKey ) );
+-
+- void * pSSF =
+- (*((component_getFactoryFunc) pSym))(
+- aImplName.getStr(), pSMgr, pKey );
+-
+- if (pKey)
+- {
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pKey );
+- }
+- if (pSMgr)
+- {
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pSMgr );
+- }
++ OUString aCppEnvTypeName =
++ OUSTR(CPPU_CURRENT_LANGUAGE_BINDING_NAME);
++ uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
++ }
++
++
++ if (pEnv && pCurrentEnv)
++ {
++ Mapping aCurrent2Env( pCurrentEnv, pEnv );
++ Mapping aEnv2Current( pEnv, pCurrentEnv );
+
+- if (pSSF)
++ if (aCurrent2Env.is() && aEnv2Current.is())
+ {
+- aEnv2Current.mapInterface(
+- reinterpret_cast< void ** >( &xRet ),
+- pSSF, ::getCppuType( &xRet ) );
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pSSF );
++ void * pSMgr = aCurrent2Env.mapInterface(
++ xMgr.get(), ::getCppuType( &xMgr ) );
++ void * pKey = aCurrent2Env.mapInterface(
++ xKey.get(), ::getCppuType( &xKey ) );
++
++ void * pSSF =
++ (*((component_getFactoryFunc) pSym))(
++ aImplName.getStr(), pSMgr, pKey );
++
++ if (pKey)
++ {
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pKey );
++ }
++ if (pSMgr)
++ {
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pSMgr );
++ }
++
++ if (pSSF)
++ {
++ aEnv2Current.mapInterface(
++ reinterpret_cast< void ** >( &xRet ),
++ pSSF, ::getCppuType( &xRet ) );
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pSSF );
++ }
++ else
++ {
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": cannot get factory of "
++ "demanded implementation: ");
++ aExcMsg += OStringToOUString(
++ aImplName, RTL_TEXTENCODING_ASCII_US );
++ }
+ }
+ else
+ {
+- aExcMsg = aModulePath;
+- aExcMsg += OUSTR(": cannot get factory of "
+- "demanded implementation: ");
+- aExcMsg += OStringToOUString(
+- aImplName, RTL_TEXTENCODING_ASCII_US );
++ aExcMsg =
++ OUSTR("cannot get uno mappings: C++ <=> UNO!");
+ }
+ }
+ else
+ {
+- aExcMsg =
+- OUSTR("cannot get uno mappings: C++ <=> UNO!");
++ aExcMsg = OUSTR("cannot get uno environments!");
+ }
+- }
+- else
+- {
+- aExcMsg = OUSTR("cannot get uno environments!");
++
++ if (pCurrentEnv)
++ (*pCurrentEnv->release)( pCurrentEnv );
+ }
+ }
+ else
+@@ -401,8 +427,6 @@
+
+ if (pEnv)
+ (*pEnv->release)( pEnv );
+- if (pCurrentEnv)
+- (*pCurrentEnv->release)( pCurrentEnv );
+ }
+ else
+ {
+@@ -463,7 +487,6 @@
+ pSym = osl_getFunctionSymbol( lib, aGetEnvName.pData );
+ if (pSym != 0)
+ {
+- uno_Environment * pCurrentEnv = 0;
+ uno_Environment * pEnv = 0;
+
+ const sal_Char * pEnvTypeName = 0;
+@@ -471,65 +494,92 @@
+ &pEnvTypeName, &pEnv );
+ OUString aEnvTypeName( OUString::createFromAscii( pEnvTypeName ) );
+
+- if (! pEnv)
+- {
+- uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
+- }
+- if (pEnv)
+- {
+- OUString aCppEnvTypeName =
+- OUSTR(CPPU_CURRENT_LANGUAGE_BINDING_NAME);
+- uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
+- }
+-
+ OUString aWriteInfoName = OUSTR(COMPONENT_WRITEINFO);
+ pSym = osl_getFunctionSymbol( lib, aWriteInfoName.pData );
+ if (pSym != 0)
+ {
+- if (pEnv && pCurrentEnv)
++ if (pEnv == NULL && aEnvTypeName.equalsAsciiL(
++ RTL_CONSTASCII_STRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME)))
++ {
++ if (xKey.is())
++ {
++ bRet = (*((component_writeInfoFunc) pSym))(
++ xMgr.get(), xKey.get() );
++ if (! bRet)
++ {
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": component_writeInfo() returned "
++ "false!");
++ }
++ }
++ else
++ {
++ // key is mandatory
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": registry is mandatory to invoke "
++ "component_writeInfo()!");
++ }
++ }
++ else
+ {
+- Mapping aCurrent2Env( pCurrentEnv, pEnv );
+- if (aCurrent2Env.is())
++ if (!pEnv)
++ uno_getEnvironment( &pEnv, aEnvTypeName.pData, 0 );
++
++ uno_Environment * pCurrentEnv = 0;
++ if (pEnv)
+ {
+- void * pSMgr = aCurrent2Env.mapInterface(
+- xMgr.get(), ::getCppuType( &xMgr ) );
+- void * pKey = aCurrent2Env.mapInterface(
+- xKey.get(), ::getCppuType( &xKey ) );
+- if (pKey)
++ OUString aCppEnvTypeName =
++ OUSTR(CPPU_CURRENT_LANGUAGE_BINDING_NAME);
++ uno_getEnvironment( &pCurrentEnv, aCppEnvTypeName.pData, 0 );
++ }
++
++ if (pEnv && pCurrentEnv)
++ {
++ Mapping aCurrent2Env( pCurrentEnv, pEnv );
++ if (aCurrent2Env.is())
+ {
+- bRet = (*((component_writeInfoFunc) pSym))(
+- pSMgr, pKey );
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pKey );
+- if (! bRet)
++ void * pSMgr = aCurrent2Env.mapInterface(
++ xMgr.get(), ::getCppuType( &xMgr ) );
++ void * pKey = aCurrent2Env.mapInterface(
++ xKey.get(), ::getCppuType( &xKey ) );
++ if (pKey)
++ {
++ bRet = (*((component_writeInfoFunc) pSym))(
++ pSMgr, pKey );
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pKey );
++ if (! bRet)
++ {
++ aExcMsg = aModulePath;
++ aExcMsg += OUSTR(": component_writeInfo() "
++ "returned false!");
++ }
++ }
++ else
+ {
++ // key is mandatory
+ aExcMsg = aModulePath;
+- aExcMsg += OUSTR(": component_writeInfo() "
+- "returned false!");
++ aExcMsg += OUSTR(": registry is mandatory to invoke"
++ " component_writeInfo()!");
++ }
++
++ if (pSMgr)
++ {
++ (*pEnv->pExtEnv->releaseInterface)(
++ pEnv->pExtEnv, pSMgr );
+ }
+ }
+ else
+ {
+- // key is mandatory
+- aExcMsg = aModulePath;
+- aExcMsg += OUSTR(": registry is mandatory to invoke"
+- " component_writeInfo()!");
+- }
+-
+- if (pSMgr)
+- {
+- (*pEnv->pExtEnv->releaseInterface)(
+- pEnv->pExtEnv, pSMgr );
++ aExcMsg = OUSTR("cannot get uno mapping: C++ <=> UNO!");
+ }
+ }
+ else
+ {
+- aExcMsg = OUSTR("cannot get uno mapping: C++ <=> UNO!");
++ aExcMsg = OUSTR("cannot get uno environments!");
+ }
+- }
+- else
+- {
+- aExcMsg = OUSTR("cannot get uno environments!");
++ if (pCurrentEnv)
++ (*pCurrentEnv->release)( pCurrentEnv );
+ }
+ }
+ else
+@@ -541,8 +591,6 @@
+
+ if (pEnv)
+ (*pEnv->release)( pEnv );
+- if (pCurrentEnv)
+- (*pCurrentEnv->release)( pCurrentEnv );
+ }
+ else
+ {