aboutsummaryrefslogtreecommitdiff
path: root/editors
diff options
context:
space:
mode:
authorMaho Nakata <maho@FreeBSD.org>2007-05-26 21:45:56 +0000
committerMaho Nakata <maho@FreeBSD.org>2007-05-26 21:45:56 +0000
commit29381266f86029d8ad1e548327aecca1ec9af88f (patch)
treefdc20504c2ab832600a1017f5f529f534556d1ad /editors
parenta9c5e9e9aa5f9ded6a1dab4a3694aaf1bd452d9b (diff)
downloadports-29381266f86029d8ad1e548327aecca1ec9af88f.tar.gz
ports-29381266f86029d8ad1e548327aecca1ec9af88f.zip
0. update to SRC680_m213.
1. A fix for patch-i76141, missing libxml2 patch. libxmlsec part is now reordered correctly [1]. 2. Remove patch-i65462 and add patch from i76159 instead [1]. 3. DISTDIR is moved to openoffice.org2 instead of openoffice.org2.0 [1]. 4. FreeBSD bridge part should sync with sixtyfour11. patch-i76969 [1]. 5. unxfbsd.mk: sync with newer unxlngi6.mk. patch-i76969 [1]. 6. Add a new knob WITH_VBA, enables VBA interop. 7. Use gcc4.2 for build. 8. Remove WITH_GNUGCJ knob for while. 9. Drop amd64 for while. Submitted by: jkim [1]
Notes
Notes: svn path=/head/; revision=191943
Diffstat (limited to 'editors')
-rw-r--r--editors/openoffice-3-devel/Makefile74
-rw-r--r--editors/openoffice-3-devel/distinfo27
-rw-r--r--editors/openoffice-3-devel/files/Makefile.knobs17
-rw-r--r--editors/openoffice-3-devel/files/cws-npower7.diff1833
-rw-r--r--editors/openoffice-3-devel/files/patch-i6546224
-rw-r--r--editors/openoffice-3-devel/files/patch-i7570816
-rw-r--r--editors/openoffice-3-devel/files/patch-i76141808
-rw-r--r--editors/openoffice-3-devel/files/patch-i7632017
-rw-r--r--editors/openoffice-3-devel/files/patch-i76968642
-rw-r--r--editors/openoffice-3-devel/files/patch-i7696940
-rw-r--r--editors/openoffice-3-devel/files/patch-i7761557
-rw-r--r--editors/openoffice-3-devel/files/patch-i7779311
-rw-r--r--editors/openoffice-3-devel/files/patch-i7782945
-rw-r--r--editors/openoffice.org-2-devel/Makefile74
-rw-r--r--editors/openoffice.org-2-devel/distinfo27
-rw-r--r--editors/openoffice.org-2-devel/files/Makefile.knobs17
-rw-r--r--editors/openoffice.org-2-devel/files/cws-npower7.diff1833
-rw-r--r--editors/openoffice.org-2-devel/files/patch-i6546224
-rw-r--r--editors/openoffice.org-2-devel/files/patch-i7570816
-rw-r--r--editors/openoffice.org-2-devel/files/patch-i76141808
-rw-r--r--editors/openoffice.org-2-devel/files/patch-i7632017
-rw-r--r--editors/openoffice.org-2-devel/files/patch-i76968642
-rw-r--r--editors/openoffice.org-2-devel/files/patch-i7696940
-rw-r--r--editors/openoffice.org-2-devel/files/patch-i7761557
-rw-r--r--editors/openoffice.org-2-devel/files/patch-i7779311
-rw-r--r--editors/openoffice.org-2-devel/files/patch-i7782945
-rw-r--r--editors/openoffice.org-3-devel/Makefile74
-rw-r--r--editors/openoffice.org-3-devel/distinfo27
-rw-r--r--editors/openoffice.org-3-devel/files/Makefile.knobs17
-rw-r--r--editors/openoffice.org-3-devel/files/cws-npower7.diff1833
-rw-r--r--editors/openoffice.org-3-devel/files/patch-i6546224
-rw-r--r--editors/openoffice.org-3-devel/files/patch-i7570816
-rw-r--r--editors/openoffice.org-3-devel/files/patch-i76141808
-rw-r--r--editors/openoffice.org-3-devel/files/patch-i7632017
-rw-r--r--editors/openoffice.org-3-devel/files/patch-i76968642
-rw-r--r--editors/openoffice.org-3-devel/files/patch-i7696940
-rw-r--r--editors/openoffice.org-3-devel/files/patch-i7761557
-rw-r--r--editors/openoffice.org-3-devel/files/patch-i7779311
-rw-r--r--editors/openoffice.org-3-devel/files/patch-i7782945
-rw-r--r--editors/openoffice.org-vcltesttool/Makefile74
-rw-r--r--editors/openoffice.org-vcltesttool/distinfo27
-rw-r--r--editors/openoffice.org-vcltesttool/files/Makefile.knobs17
-rw-r--r--editors/openoffice.org-vcltesttool/files/cws-npower7.diff1833
-rw-r--r--editors/openoffice.org-vcltesttool/files/patch-i6546224
-rw-r--r--editors/openoffice.org-vcltesttool/files/patch-i7570816
-rw-r--r--editors/openoffice.org-vcltesttool/files/patch-i76141808
-rw-r--r--editors/openoffice.org-vcltesttool/files/patch-i7632017
-rw-r--r--editors/openoffice.org-vcltesttool/files/patch-i76968642
-rw-r--r--editors/openoffice.org-vcltesttool/files/patch-i7696940
-rw-r--r--editors/openoffice.org-vcltesttool/files/patch-i7761557
-rw-r--r--editors/openoffice.org-vcltesttool/files/patch-i7779311
-rw-r--r--editors/openoffice.org-vcltesttool/files/patch-i7782945
52 files changed, 11340 insertions, 3104 deletions
diff --git a/editors/openoffice-3-devel/Makefile b/editors/openoffice-3-devel/Makefile
index e89a244101ec..72f808b2d022 100644
--- a/editors/openoffice-3-devel/Makefile
+++ b/editors/openoffice-3-devel/Makefile
@@ -7,10 +7,9 @@
PORTNAME?= openoffice.org
PORTVERSION?= 2.3.${SNAPDATE}
-PORTREVISION= 1
CATEGORIES+= editors java
-MASTER_SITES+= http://openoffice.lunarshells.com/sources/ \
- http://ooopackages.good-day.net/pub/OpenOffice.org/sources/ \
+MASTER_SITES+= http://ooopackages.good-day.net/pub/OpenOffice.org/sources/ \
+ http://openoffice.lunarshells.com/sources/ \
http://ooopackages.good-day.net/pub/OpenOffice.org/cws/:cws \
ftp://ftp.cs.man.ac.uk/pub/toby/gpc/:gpc \
${MASTER_SITE_APACHE:S,%SUBDIR%/,ant/binaries/:antbin,} \
@@ -21,9 +20,6 @@ DISTFILES+= ${OOOSRC} unowinreg.dll:unowinreg
.if defined(WITH_GPC)
DISTFILES+= gpc231.tar.Z:gpc
.endif
-.if defined(WITH_GNUGCJ)
-DISTFILES+= ${ANT_DISTFILE}:antbin
-.endif
EXTRACT_ONLY= ${OOOSRC}
MAINTAINER= openoffice@FreeBSD.org
@@ -53,38 +49,34 @@ USE_PERL5= yes
USE_BZIP2= yes
WITHOUT_CPU_CFLAGS= true
-.if !defined(WITH_GNUGCJ)
USE_JAVA= yes
JAVA_VERSION= 1.4+
JAVA_BUILD= jdk
JAVA_VENDOR= freebsd bsdjava
-.endif
.include <bsd.port.pre.mk>
.include <${FILESDIR}/Makefile.localized>
-ONLY_FOR_ARCHS= i386 amd64
+ONLY_FOR_ARCHS= i386 #amd64
.if ${ARCH} == amd64
-GCC_TARGET= x86_64-portbld-freebsd${OSREL}
FREEBSD_ENV_SET= FreeBSDAMDEnv.Set
.else
-GCC_TARGET= ${ARCH}-portbld-freebsd${OSREL}
FREEBSD_ENV_SET= FreeBSDX86Env.Set
.endif
CODELINE= 680
-MILESTONE?= 211
+MILESTONE?= 213
OOOTAG?= SRC680_m${MILESTONE}
OOOSRC?= OOo_${OOOTAG}_source${EXTRACT_SUFX}
-SNAPDATE= 20070428
+SNAPDATE= 20070525
INSTALLATION_BASEDIR?= openoffice.org-${OOOTAG}
EXECBASE?= openoffice.org-${OOOTAG}
.if defined(WITH_CWS)
INSTALLATION_BASEDIR= openoffice.org-${OOOTAG}-${WITH_CWS}
EXECBASE= openoffice.org-${OOOTAG}-${WITH_CWS}
.endif
-DIST_SUBDIR= openoffice.org2.0
+DIST_SUBDIR= openoffice.org2
SIMPLEOSVER= ${OSREL:C/\.//g}
.if ${ARCH} == amd64
PACKAGE_BASENAME= OOo_${OOOTAG}_${OPSYS}${SIMPLEOSVER}X86_64
@@ -103,39 +95,13 @@ PKGNAMESUFFIX= -${LANG_SUFFIX}
RUN_DEPENDS+= ${LOCALBASE}/share/icons/hicolor/index.theme:${PORTSDIR}/misc/hicolor-icon-theme
-.if defined(WITH_GNUGCJ)
-GCCVER=41
-BUILD_DEPENDS+= ${LOCALBASE}/libdata/ldconfig/gcc41-withgcjawt:${PORTSDIR}/lang/gcc41-withgcjawt
-BUILD_DEPENDS+= ${LOCALBASE}/lib/jvm/java-gcj41/bin/java:${PORTSDIR}/java/java-gcj-compat
-RUN_DEPENDS+= ${LOCALBASE}/libdata/ldconfig/gcc41-withgcjawt:${PORTSDIR}/lang/gcc41-withgcjawt
-RUN_DEPENDS+= ${LOCALBASE}/lib/jvm/java-gcj41/bin/java:${PORTSDIR}/java/java-gcj-compat
-.else
-.if ${ARCH} == amd64
-GCCVER=41
-BUILD_DEPENDS+= gcc41:${PORTSDIR}/lang/gcc41
-RUN_DEPENDS+= gcc41:${PORTSDIR}/lang/gcc41
-.else
-GCCVER=34
-BUILD_DEPENDS+= gcc-ooo:${PORTSDIR}/lang/gcc-ooo
-.endif
-.endif
-
+USE_GCC= 4.2
.if defined(WITH_CCACHE)
BUILD_DEPENDS+= ccache:${PORTSDIR}/devel/ccache
CCACHE_PREFIX= ccache
-.else
-CCACHE_PREFIX=
-.endif
-.if (${GCCVER} == 41)
-CC= gcc41
-CXX= g++41
-.endif
-.if (${GCCVER} == 34)
-CC= gcc-ooo
-CXX= g++-ooo
-.endif
CC:= ${CCACHE_PREFIX} ${CC}
CXX:= ${CCACHE_PREFIX} ${CXX}
+.endif
BUILD_DEPENDS+= zip:${PORTSDIR}/archivers/zip \
unzip:${PORTSDIR}/archivers/unzip \
@@ -144,14 +110,7 @@ BUILD_DEPENDS+= zip:${PORTSDIR}/archivers/zip \
${SITE_PERL}/Archive/Zip.pm:${PORTSDIR}/archivers/p5-Archive-Zip \
bison2:${PORTSDIR}/devel/bison2 \
imake:${X_IMAKE_PORT}
-.if defined(WITH_GNUGCJ)
-LIB_DEPENDS+= xslt.2:${PORTSDIR}/textproc/libxslt
-LIB_DEPENDS+= xml2.5:${PORTSDIR}/textproc/libxml2
-ANT_DISTFILE= apache-ant-${ANT_VERSION}-bin.tar.bz2
-ANT_VERSION= 1.6.5
-.else
BUILD_DEPENDS+= ant:${PORTSDIR}/devel/apache-ant
-.endif
.if !defined(WITH_GPC)
LIB_DEPENDS+= art_lgpl_2:${PORTSDIR}/graphics/libart_lgpl
.endif
@@ -162,28 +121,20 @@ CONFIGURE_WRKSRC= ${WRKSRC}/config_office
TCSH?= /bin/tcsh
PKGMESSAGE= ${WRKDIR}/pkg-message
NUMOFPROCESSES?= 1
-.if defined(WITH_GNUGCJ)
-CONFIGURE_ENV+= PATH="${LOCALBASE}/lib/jvm/java-gcj41/bin:${PATH}"
-.endif
CONFIGURE_ARGS+= --with-gnu-cp=${LOCALBASE}/bin/gcp \
--with-gnu-patch=${LOCALBASE}/bin/gpatch \
--enable-crashdump=yes \
--enable-symbols=SMALL
-.if ${ARCH} == amd64 || ${GCCVER} == 41
+.if ${ARCH} == amd64
WITHOUT_MOZILLA= yes
.endif
-.if (${GCCVER} == 41)
-LIB_DEPENDS+= boost_regex:${PORTSDIR}/devel/boost
-CONFIGURE_ARGS+= --with-system-boost=yes #i58343#
-.endif
+#LIB_DEPENDS+= boost_regex:${PORTSDIR}/devel/boost
+#CONFIGURE_ARGS+= --with-system-boost=yes #i58343#
.if (${OSVERSION} <= 602102)
EXTRA_PATCHES+= ${FILESDIR}/rtld-workaround-i66667
.endif
-.if defined(WITH_GNUGCJ)
-EXTRA_PATCHES+= ${FILESDIR}/gcj-fbsdworkaround
-.endif
.if !defined(WITH_SYSTEM_FREETYPE) && defined(WITH_TTF_BYTECODE_ENABLED)
EXTRA_PATCHES+= ${FILESDIR}/optpatch-freetype
.endif
@@ -214,9 +165,6 @@ post-extract:
.if defined(WITH_CWS)
cd ${WRKSRC} ; ${TAR} xvfz ${DISTDIR}/${DIST_SUBDIR}/${CWSARCHIVE}
.endif
-.if defined(WITH_GNUGCJ)
- @cd ${WRKDIR} ; ${CAT} ${DISTDIR}/${DIST_SUBDIR}/${ANT_DISTFILE} | ${BZIP2_CMD} -d | ${TAR} xf -
-.endif
.if defined(WITH_GPC)
@cd ${WRKDIR} ; ${CAT} ${DISTDIR}/${DIST_SUBDIR}/gpc231.tar.Z | ${TAR} xfz -
@${CP} ${WRKDIR}/gpc231/gpc.c ${WRKSRC}/external/gpc/
diff --git a/editors/openoffice-3-devel/distinfo b/editors/openoffice-3-devel/distinfo
index 66910c96a1a5..b95fc19e9a46 100644
--- a/editors/openoffice-3-devel/distinfo
+++ b/editors/openoffice-3-devel/distinfo
@@ -1,15 +1,12 @@
-MD5 (openoffice.org2.0/OOo_SRC680_m211_source.tar.bz2) = 1a45342987e7b9137da1fca8ec1a763a
-SHA256 (openoffice.org2.0/OOo_SRC680_m211_source.tar.bz2) = 8321544ec8d9f74ec7a620dcbee6dbf447713c86548a539eb7ce05e8f1ddeaa6
-SIZE (openoffice.org2.0/OOo_SRC680_m211_source.tar.bz2) = 272054401
-MD5 (openoffice.org2.0/unowinreg.dll) = e3a0b76dcd876f3d721ee7183729153d
-SHA256 (openoffice.org2.0/unowinreg.dll) = f563e522922133db9340b0306711c2d8767cc3481dd9e7d9b0d059906d12653c
-SIZE (openoffice.org2.0/unowinreg.dll) = 6144
-MD5 (openoffice.org2.0/gpc231.tar.Z) = fdb06fdb5a4670b172f9fb738b717be9
-SHA256 (openoffice.org2.0/gpc231.tar.Z) = c1265948554a9882fe8342ecc9ccbdb423321a572a5a6b56f7dfad389540da4e
-SIZE (openoffice.org2.0/gpc231.tar.Z) = 27917
-MD5 (openoffice.org2.0/apache-ant-1.6.5-bin.tar.bz2) = 26031ee1a2fd248ad0cc2e7f17c44c39
-SHA256 (openoffice.org2.0/apache-ant-1.6.5-bin.tar.bz2) = d463b8259cb199cd26799c817756c73e4e7808b0cf915f86841ac9779e0f9936
-SIZE (openoffice.org2.0/apache-ant-1.6.5-bin.tar.bz2) = 6743024
-MD5 (openoffice.org2.0/mozilla-source-1.7.5.tar.gz) = d3f3528b6c5eade402ed058207cffa14
-SHA256 (openoffice.org2.0/mozilla-source-1.7.5.tar.gz) = 3e252bab95ecad3016b72fa594e0c44b9633d8c7b6af187e088a092019b56445
-SIZE (openoffice.org2.0/mozilla-source-1.7.5.tar.gz) = 38721366
+MD5 (openoffice.org2/OOo_SRC680_m213_source.tar.bz2) = 7120d049a1aa1801205d574abd1c77fd
+SHA256 (openoffice.org2/OOo_SRC680_m213_source.tar.bz2) = 1f8edbecfa3e9c2122c2f3a0acbcd4c52620a86e5b1c06d93b04cce34b49ca7d
+SIZE (openoffice.org2/OOo_SRC680_m213_source.tar.bz2) = 270389079
+MD5 (openoffice.org2/unowinreg.dll) = e3a0b76dcd876f3d721ee7183729153d
+SHA256 (openoffice.org2/unowinreg.dll) = f563e522922133db9340b0306711c2d8767cc3481dd9e7d9b0d059906d12653c
+SIZE (openoffice.org2/unowinreg.dll) = 6144
+MD5 (openoffice.org2/gpc231.tar.Z) = fdb06fdb5a4670b172f9fb738b717be9
+SHA256 (openoffice.org2/gpc231.tar.Z) = c1265948554a9882fe8342ecc9ccbdb423321a572a5a6b56f7dfad389540da4e
+SIZE (openoffice.org2/gpc231.tar.Z) = 27917
+MD5 (openoffice.org2/mozilla-source-1.7.5.tar.gz) = d3f3528b6c5eade402ed058207cffa14
+SHA256 (openoffice.org2/mozilla-source-1.7.5.tar.gz) = 3e252bab95ecad3016b72fa594e0c44b9633d8c7b6af187e088a092019b56445
+SIZE (openoffice.org2/mozilla-source-1.7.5.tar.gz) = 38721366
diff --git a/editors/openoffice-3-devel/files/Makefile.knobs b/editors/openoffice-3-devel/files/Makefile.knobs
index 231af9477271..deb2059d1b29 100644
--- a/editors/openoffice-3-devel/files/Makefile.knobs
+++ b/editors/openoffice-3-devel/files/Makefile.knobs
@@ -2,10 +2,11 @@
# Whom: Maho Nakata <maho@FreeBSD.org>
# $FreeBSD$
-.if !defined(WITH_GNUGCJ)
CONFIGURE_ARGS+= --with-jdk-home="${JAVA_HOME}" --with-ant-home="${LOCALBASE}/share/java/apache-ant"
-.else
-CONFIGURE_ARGS+= --with-jdk-home="${LOCALBASE}/lib/jvm/java-gcj41" --with-java=gij --with-ant-home="${WRKDIR}/apache-ant-${ANT_VERSION}"
+
+.if defined(WITH_VBA)
+CONFIGURE_ARGS+= --enable-vba --with-vba-package-format="builtin"
+EXTRA_PATCHES+= ${FILESDIR}/cws-npower7.diff
.endif
.if defined(WITH_KDE)
@@ -92,6 +93,11 @@ pre-fetch:
@${ECHO} "You can compile OOo without gnome VFS support with"
@${ECHO} "make -DWITHOUT_GNOMEVFS"
.endif
+.if !defined(WITH_VBA)
+ @${ECHO}
+ @${ECHO} "You can compile OOo with VBA support with"
+ @${ECHO} "make -DWITH_VBA"
+.endif
.if !defined(WITH_SYSTEM_FREETYPE)
@${ECHO}
@${ECHO} "You can compile OOo with freetype2 from ports with"
@@ -120,11 +126,6 @@ pre-fetch:
@${ECHO} "zh-CN zh-TW zu"
@${ECHO} "Default: en-US"
.endif
-.if !defined(WITH_GNUGCJ)
- @${ECHO}
- @${ECHO} "You can compile OOo with GNU GCJ instead of SUN's JDK with"
- @${ECHO} "make -DWITH_GNUGCJ"
-.endif
.if !defined(WITH_CUPS)
@${ECHO}
@${ECHO} "You can compile OOo with CUPS support with"
diff --git a/editors/openoffice-3-devel/files/cws-npower7.diff b/editors/openoffice-3-devel/files/cws-npower7.diff
new file mode 100644
index 000000000000..cf8ccac2d39e
--- /dev/null
+++ b/editors/openoffice-3-devel/files/cws-npower7.diff
@@ -0,0 +1,1833 @@
+cvs diff: Diffing basic
+cvs diff: Diffing basic/inc
+cvs diff: Diffing basic/inc/basic
+Index: basic/inc/basic/basmgr.hxx
+===================================================================
+RCS file: /cvs/script/basic/inc/basic/basmgr.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.12.1
+diff -u -p -r1.2 -r1.2.12.1
+--- basic/inc/basic/basmgr.hxx 11 Apr 2007 12:50:02 -0000 1.2
++++ basic/inc/basic/basmgr.hxx 2 May 2007 09:44:21 -0000 1.2.12.1
+@@ -167,6 +167,7 @@ private:
+ String aName;
+ String maStorageName;
+ BOOL bBasMgrModified;
++ BOOL mbDocMgr;
+
+ BasicManagerImpl* mpImpl;
+
+@@ -190,8 +191,8 @@ protected:
+
+ public:
+ TYPEINFO();
+- BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBASIC* pParentFromStdLib = NULL, String* pLibPath = NULL );
+- BasicManager( StarBASIC* pStdLib, String* pLibPath = NULL );
++ BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBASIC* pParentFromStdLib = NULL, String* pLibPath = NULL, BOOL bDocMgr = FALSE );
++ BasicManager( StarBASIC* pStdLib, String* pLibPath = NULL, BOOL bDocMgr = FALSE );
+
+ /** deletes the given BasicManager instance
+
+Index: basic/inc/basic/sbstar.hxx
+===================================================================
+RCS file: /cvs/script/basic/inc/basic/sbstar.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.12.1
+diff -u -p -r1.2 -r1.2.12.1
+--- basic/inc/basic/sbstar.hxx 11 Apr 2007 12:52:47 -0000 1.2
++++ basic/inc/basic/sbstar.hxx 2 May 2007 09:44:21 -0000 1.2.12.1
+@@ -81,6 +81,7 @@ class StarBASIC : public SbxObject
+ Link aBreakHdl; // Breakpoint-Handler
+ BOOL bNoRtl; // TRUE: RTL nicht durchsuchen
+ BOOL bBreak; // TRUE: Break, sonst Step
++ BOOL bDocBasic;
+ BasicLibInfo* pLibInfo; // Infoblock fuer Basic-Manager
+ SbLanguageMode eLanguageMode; // LanguageMode des Basic-Objekts
+ protected:
+@@ -104,7 +105,7 @@ public:
+ SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_BASIC,1);
+ TYPEINFO();
+
+- StarBASIC( StarBASIC* pParent = NULL );
++ StarBASIC( StarBASIC* pParent = NULL, BOOL bIsDocBasic = FALSE );
+
+ // #51727 SetModified ueberladen, damit der Modified-
+ // Zustand nicht an den Parent weitergegeben wird.
+@@ -203,6 +204,7 @@ public:
+ static void StaticEnableReschedule( BOOL bReschedule );
+
+ SbxObjectRef getRTL( void ) { return pRtl; }
++ BOOL IsDocBasic() { return bDocBasic; }
+ };
+
+ #ifndef __SB_SBSTARBASICREF_HXX
+Index: basic/inc/basic/sbx.hxx
+===================================================================
+RCS file: /cvs/script/basic/inc/basic/sbx.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.12.1
+diff -u -p -r1.2 -r1.2.12.1
+--- basic/inc/basic/sbx.hxx 11 Apr 2007 12:53:21 -0000 1.2
++++ basic/inc/basic/sbx.hxx 2 May 2007 09:44:42 -0000 1.2.12.1
+@@ -263,6 +263,7 @@ class SbxDimArray : public SbxArray
+ SbxDim* pFirst, *pLast; // Links fuer Dimension-Tabelle
+ short nDim; // Anzahl Dimensionen
+ void AddDimImpl32( INT32, INT32, BOOL bAllowSize0 );
++ bool mbHasFixedSize;
+ protected:
+ USHORT Offset( const short* );
+ UINT32 Offset32( const INT32* );
+@@ -302,6 +303,8 @@ public:
+ void AddDim32( INT32, INT32 );
+ void unoAddDim32( INT32, INT32 );
+ BOOL GetDim32( INT32, INT32&, INT32& ) const;
++ bool hasFixedSize() { return mbHasFixedSize; };
++ void setHasFixedSize( bool bHasFixedSize ) {mbHasFixedSize = bHasFixedSize; };
+ };
+
+ #endif
+cvs diff: Diffing basic/inc/pch
+cvs diff: Diffing basic/prj
+cvs diff: Diffing basic/source
+cvs diff: Diffing basic/source/app
+cvs diff: Diffing basic/source/basmgr
+Index: basic/source/basmgr/basicmanagerrepository.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/basmgr/basicmanagerrepository.cxx,v
+retrieving revision 1.4
+retrieving revision 1.4.14.1
+diff -u -p -r1.4 -r1.4.14.1
+--- basic/source/basmgr/basicmanagerrepository.cxx 15 Mar 2007 15:37:48 -0000 1.4
++++ basic/source/basmgr/basicmanagerrepository.cxx 2 May 2007 09:44:21 -0000 1.4.14.1
+@@ -491,7 +491,7 @@ namespace basic
+ SotStorageRef xDummyStor = new SotStorage( ::rtl::OUString() );
+ pBasicManager = new BasicManager( *xDummyStor, String() /* TODO/LATER: xStorage */,
+ pAppBasic,
+- &aAppBasicDir );
++ &aAppBasicDir, TRUE );
+ if ( pBasicManager->HasErrors() )
+ {
+ // handle errors
+@@ -517,7 +517,7 @@ namespace basic
+ // create new BASIC-manager
+ StarBASIC* pBasic = new StarBASIC( pAppBasic );
+ pBasic->SetFlag( SBX_EXTSEARCH );
+- pBasicManager = new BasicManager( pBasic );
++ pBasicManager = new BasicManager( pBasic, NULL, TRUE );
+ }
+
+ // knit the containers with the BasicManager
+Index: basic/source/basmgr/basmgr.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/basmgr/basmgr.cxx,v
+retrieving revision 1.39
+retrieving revision 1.39.2.1
+diff -u -p -r1.39 -r1.39.2.1
+--- basic/source/basmgr/basmgr.cxx 26 Apr 2007 08:32:47 -0000 1.39
++++ basic/source/basmgr/basmgr.cxx 2 May 2007 09:44:21 -0000 1.39.2.1
+@@ -685,7 +685,7 @@ void BasicLibInfo::CalcRelStorageName( c
+ else
+ SetRelStorageName( String() );
+ }
+-BasicManager::BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBASIC* pParentFromStdLib, String* pLibPath )
++BasicManager::BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBASIC* pParentFromStdLib, String* pLibPath, BOOL bDocMgr ) : mbDocMgr( bDocMgr )
+ {
+ DBG_CTOR( BasicManager, 0 );
+
+@@ -714,7 +714,7 @@ BasicManager::BasicManager( SotStorage&
+ if ( !pStdLib )
+ {
+ // Sollte eigentlich nie passieren, aber dann wenigstens nicht abstuerzen...
+- pStdLib = new StarBASIC;
++ pStdLib = new StarBASIC( NULL, mbDocMgr );
+ BasicLibInfo* pStdLibInfo = pLibs->GetObject( 0 );
+ if ( !pStdLibInfo )
+ pStdLibInfo = CreateLibInfo();
+@@ -895,7 +895,7 @@ void BasicManager::SetLibraryContainerIn
+ InsertGlobalUNOConstant( "DialogLibraries", makeAny( mpImpl->maContainerInfo.mxDialogCont ) );
+ }
+
+-BasicManager::BasicManager( StarBASIC* pSLib, String* pLibPath )
++BasicManager::BasicManager( StarBASIC* pSLib, String* pLibPath, BOOL bDocMgr ) : mbDocMgr( bDocMgr )
+ {
+ DBG_CTOR( BasicManager, 0 );
+ Init();
+@@ -936,7 +936,7 @@ void BasicManager::ImpMgrNotLoaded( cons
+
+ // Eine STD-Lib erzeugen, sonst macht es Peng!
+ BasicLibInfo* pStdLibInfo = CreateLibInfo();
+- pStdLibInfo->SetLib( new StarBASIC );
++ pStdLibInfo->SetLib( new StarBASIC( NULL, mbDocMgr ) );
+ StarBASICRef xStdLib = pStdLibInfo->GetLib();
+ xStdLib->SetName( String::CreateFromAscii(szStdLibName) );
+ pStdLibInfo->SetLibName( String::CreateFromAscii(szStdLibName) );
+@@ -948,7 +948,7 @@ void BasicManager::ImpMgrNotLoaded( cons
+ void BasicManager::ImpCreateStdLib( StarBASIC* pParentFromStdLib )
+ {
+ BasicLibInfo* pStdLibInfo = CreateLibInfo();
+- StarBASIC* pStdLib = new StarBASIC( pParentFromStdLib );
++ StarBASIC* pStdLib = new StarBASIC( pParentFromStdLib, mbDocMgr );
+ pStdLibInfo->SetLib( pStdLib );
+ pStdLib->SetName( String::CreateFromAscii(szStdLibName) );
+ pStdLibInfo->SetLibName( String::CreateFromAscii(szStdLibName) );
+@@ -1237,7 +1237,7 @@ BOOL BasicManager::ImpLoadLibary( BasicL
+ if ( !bInfosOnly )
+ {
+ if ( !pLibInfo->GetLib().Is() )
+- pLibInfo->SetLib( new StarBASIC( GetStdLib() ) );
++ pLibInfo->SetLib( new StarBASIC( GetStdLib(), mbDocMgr ) );
+ xBasicStream->SetBufferSize( 1024 );
+ xBasicStream->Seek( STREAM_SEEK_TO_BEGIN );
+ bLoaded = ImplLoadBasic( *xBasicStream, pLibInfo->GetLibRef() );
+@@ -1660,7 +1660,7 @@ StarBASIC* BasicManager::CreateLib( cons
+ return 0;
+
+ BasicLibInfo* pLibInfo = CreateLibInfo();
+- StarBASIC* pNew = new StarBASIC( GetStdLib() );
++ StarBASIC* pNew = new StarBASIC( GetStdLib(), mbDocMgr );
+ GetStdLib()->Insert( pNew );
+ pNew->SetFlag( SBX_EXTSEARCH | SBX_DONTSTORE );
+ pLibInfo->SetLib( pNew );
+@@ -1718,7 +1718,7 @@ StarBASIC* BasicManager::CreateLibForLib
+ return 0;
+
+ BasicLibInfo* pLibInfo = CreateLibInfo();
+- StarBASIC* pNew = new StarBASIC( GetStdLib() );
++ StarBASIC* pNew = new StarBASIC( GetStdLib(), mbDocMgr );
+ GetStdLib()->Insert( pNew );
+ pNew->SetFlag( SBX_EXTSEARCH | SBX_DONTSTORE );
+ pLibInfo->SetLib( pNew );
+cvs diff: Diffing basic/source/classes
+Index: basic/source/classes/sb.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/classes/sb.cxx,v
+retrieving revision 1.31
+retrieving revision 1.31.2.1
+diff -u -p -r1.31 -r1.31.2.1
+--- basic/source/classes/sb.cxx 26 Apr 2007 08:33:02 -0000 1.31
++++ basic/source/classes/sb.cxx 2 May 2007 09:44:21 -0000 1.31.2.1
+@@ -660,8 +660,8 @@ SbModule* SbClassFactory::FindClass( con
+
+ ////////////////////////////////////////////////////////////////////////////
+
+-StarBASIC::StarBASIC( StarBASIC* p )
+- : SbxObject( String( RTL_CONSTASCII_USTRINGPARAM("StarBASIC") ) )
++StarBASIC::StarBASIC( StarBASIC* p, BOOL bIsDocBasic )
++ : SbxObject( String( RTL_CONSTASCII_USTRINGPARAM("StarBASIC") ) ), bDocBasic( bIsDocBasic )
+ {
+ SetParent( p );
+ pLibInfo = NULL;
+Index: basic/source/classes/sbunoobj.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/classes/sbunoobj.cxx,v
+retrieving revision 1.46
+retrieving revision 1.46.6.5
+diff -u -p -r1.46 -r1.46.6.5
+--- basic/source/classes/sbunoobj.cxx 29 Jan 2007 15:05:07 -0000 1.46
++++ basic/source/classes/sbunoobj.cxx 9 May 2007 15:49:15 -0000 1.46.6.5
+@@ -110,6 +110,9 @@ using namespace rtl;
+ #include<runtime.hxx>
+
+ #include<math.h>
++#include <hash_map>
++#include <com/sun/star/reflection/XTypeDescriptionEnumerationAccess.hpp>
++#include <com/sun/star/reflection/XConstantsTypeDescription.hpp>
+
+ TYPEINIT1(SbUnoMethod,SbxMethod)
+ TYPEINIT1(SbUnoProperty,SbxProperty)
+@@ -130,6 +133,7 @@ static String ID_DBG_METHODS( RTL_CONSTA
+ static String aIllegalArgumentExceptionName
+ ( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.lang.IllegalArgumentException" ) );
+ static OUString aSeqLevelStr( RTL_CONSTASCII_USTRINGPARAM("[]") );
++static OUString defaultNameSpace( RTL_CONSTASCII_USTRINGPARAM("org.openoffice") );
+
+ // Gets the default property for an uno object. Note: There is some
+ // redirection built in. The property name specifies the name
+@@ -1510,6 +1514,50 @@ String getBasicObjectTypeName( SbxObject
+ return aName;
+ }
+
++bool checkUnoObjectType( SbUnoObject* pUnoObj,
++ const String& aClass )
++{
++ bool result = false;
++ Any aToInspectObj = pUnoObj->getUnoAny();
++ TypeClass eType = aToInspectObj.getValueType().getTypeClass();
++ if( eType != TypeClass_INTERFACE )
++ return false;
++ const Reference< XInterface > x = *(Reference< XInterface >*)aToInspectObj.getValue();
++ Reference< XTypeProvider > xTypeProvider( x, UNO_QUERY );
++ if( xTypeProvider.is() )
++ {
++ Sequence< Type > aTypeSeq = xTypeProvider->getTypes();
++ const Type* pTypeArray = aTypeSeq.getConstArray();
++ UINT32 nIfaceCount = aTypeSeq.getLength();
++ for( UINT32 j = 0 ; j < nIfaceCount ; j++ )
++ {
++ const Type& rType = pTypeArray[j];
++
++ Reference<XIdlClass> xClass = TypeToIdlClass( rType );
++ if( !xClass.is() )
++ {
++ DBG_ERROR("failed to get XIdlClass for type");
++ break;
++ }
++ OUString sClassName = xClass->getName();
++ OSL_TRACE("Checking if object implements %s",
++ OUStringToOString( defaultNameSpace + aClass,
++ RTL_TEXTENCODING_UTF8 ).getStr() );
++ // although interfaces in the org.openoffice.vba namespace
++ // obey the idl rules and have a leading X, in basic we
++ // want to be able to do something like
++ // 'dim wrkbooks as WorkBooks'
++ // so test assumes the 'X' has been dropped
++ sal_Int32 indexLastDot = sClassName.lastIndexOf('.');
++ if ( indexLastDot > -1 && sClassName.copy( indexLastDot + 1).equalsIgnoreAsciiCase( OUString( RTL_CONSTASCII_USTRINGPARAM("X") ) + aClass ) )
++ {
++ result = true;
++ break;
++ }
++ }
++ }
++ return result;
++}
+
+ // Dbg-Hilfsmethode zum Auslesen der in einem Object implementierten Interfaces
+ String Impl_GetSupportedInterfaces( SbUnoObject* pUnoObj )
+@@ -3066,6 +3114,83 @@ void RTL_Impl_EqualUnoObjects( StarBASIC
+ refVar->PutBool( TRUE );
+ }
+
++typedef std::hash_map< OUString, std::vector< OUString >, OUStringHash, ::std::equal_to< OUString > > ModuleHash;
++
++
++// helper wrapper function to interact with TypeProvider and
++// XTypeDescriptionEnumerationAccess.
++// if it fails for whatever reason
++// returned Reference<> be null e.g. .is() will be false
++
++Reference< XTypeDescriptionEnumeration >
++getTypeDescriptorEnumeration( const OUString& sSearchRoot,
++ const Sequence< TypeClass >& types, TypeDescriptionSearchDepth depth )
++{
++ Reference< XTypeDescriptionEnumeration > xEnum;
++ Reference< XTypeDescriptionEnumerationAccess> xTypeEnumAccess( getTypeProvider_Impl(), UNO_QUERY );
++ if ( xTypeEnumAccess.is() )
++ {
++ try
++ {
++ xEnum = xTypeEnumAccess->createTypeDescriptionEnumeration(
++ sSearchRoot, types, depth );
++ }
++ catch( NoSuchTypeNameException& /*nstne*/ ) {}
++ catch( InvalidTypeNameException& /*nstne*/ ) {}
++ }
++ return xEnum;
++}
++
++typedef std::hash_map< OUString, Any, OUStringHash, ::std::equal_to< OUString > > VBAConstantsHash;
++
++SbxVariable* getVBAConstant( const String& rName )
++{
++ SbxVariable* pConst = NULL;
++ static VBAConstantsHash aConstCache;
++ static bool isInited = false;
++ if ( !isInited )
++ {
++ Sequence< TypeClass > types(1);
++ types[ 0 ] = TypeClass_CONSTANTS;
++ Reference< XTypeDescriptionEnumeration > xEnum = getTypeDescriptorEnumeration( defaultNameSpace, types, TypeDescriptionSearchDepth_INFINITE );
++
++ if ( !xEnum.is() )
++ return NULL;
++
++ while ( xEnum->hasMoreElements() )
++ {
++ Reference< XConstantsTypeDescription > xConstants( xEnum->nextElement(), UNO_QUERY );
++ if ( xConstants.is() )
++ {
++ Sequence< Reference< XConstantTypeDescription > > aConsts = xConstants->getConstants();
++ Reference< XConstantTypeDescription >* pSrc = aConsts.getArray();
++ sal_Int32 nLen = aConsts.getLength();
++ for ( sal_Int32 index =0; index<nLen; ++pSrc, ++index )
++ {
++ Reference< XConstantTypeDescription >& rXConst =
++ *pSrc;
++ OUString sFullName = rXConst->getName();
++ sal_Int32 indexLastDot = sFullName.lastIndexOf('.');
++ OUString sLeafName;
++ if ( indexLastDot > -1 )
++ sLeafName = sFullName.copy( indexLastDot + 1);
++ aConstCache[ sLeafName.toAsciiLowerCase() ] = rXConst->getConstantValue();
++ }
++ }
++ }
++ isInited = true;
++ }
++ OUString sKey( rName );
++ VBAConstantsHash::const_iterator it = aConstCache.find( sKey.toAsciiLowerCase() );
++ if ( it != aConstCache.end() )
++ {
++ pConst = new SbxVariable( SbxVARIANT );
++ pConst->SetName( rName );
++ unoToSbxValue( pConst, it->second );
++ }
++ return pConst;
++}
++
+ // Funktion, um einen globalen Bezeichner im
+ // UnoScope zu suchen und fuer Sbx zu wrappen
+ SbxVariable* findUnoClass( const String& rName )
+Index: basic/source/classes/sbxmod.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/classes/sbxmod.cxx,v
+retrieving revision 1.36
+retrieving revision 1.36.42.3
+diff -u -p -r1.36 -r1.36.42.3
+--- basic/source/classes/sbxmod.cxx 3 Nov 2006 15:10:25 -0000 1.36
++++ basic/source/classes/sbxmod.cxx 2 May 2007 09:44:42 -0000 1.36.42.3
+@@ -166,7 +166,8 @@ static const char* strListBasicKeyWords[
+ "integer",
+ "is",
+ "let",
+- "lib"
++ "lib",
++ "like",
+ "line",
+ "line input",
+ "local",
+@@ -544,7 +545,8 @@ void SbModule::SetSource32( const ::rtl:
+ if( eCurTok == OPTION )
+ {
+ eCurTok = aTok.Next();
+- if( eCurTok == COMPATIBLE )
++ if( eCurTok == COMPATIBLE
++ || ( ( eCurTok == VBASUPPORT ) && ( aTok.Next() == NUMBER ) && ( aTok.GetDbl()== 1 ) ) )
+ aTok.SetCompatible( true );
+ }
+ }
+@@ -756,7 +758,10 @@ USHORT SbModule::Run( SbMethod* pMeth )
+ pRt->pNext->block();
+ pINST->pRun = pRt;
+ if ( SbiRuntime ::isVBAEnabled() )
++ {
+ pINST->EnableCompatibility( TRUE );
++ pRt->SetVBAEnabled( true );
++ }
+ while( pRt->Step() ) {}
+ if( pRt->pNext )
+ pRt->pNext->unblock();
+cvs diff: Diffing basic/source/comp
+Index: basic/source/comp/codegen.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/codegen.cxx,v
+retrieving revision 1.16
+retrieving revision 1.16.42.1
+diff -u -p -r1.16 -r1.16.42.1
+--- basic/source/comp/codegen.cxx 3 Nov 2006 15:11:02 -0000 1.16
++++ basic/source/comp/codegen.cxx 2 May 2007 09:45:21 -0000 1.16.42.1
+@@ -135,7 +135,7 @@ void SbiCodeGen::Save()
+ // OPTION EXPLICIT-Flag uebernehmen
+ if( pParser->bExplicit )
+ p->SetFlag( SBIMG_EXPLICIT );
+- if( pParser->bVBASupportOn )
++ if( pParser->IsVBASupportOn() )
+ p->SetFlag( SBIMG_VBASUPPORT );
+
+ int nIfaceCount = 0;
+Index: basic/source/comp/dim.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/dim.cxx,v
+retrieving revision 1.26
+retrieving revision 1.26.42.2
+diff -u -p -r1.26 -r1.26.42.2
+--- basic/source/comp/dim.cxx 1 Nov 2006 16:13:55 -0000 1.26
++++ basic/source/comp/dim.cxx 2 May 2007 09:44:56 -0000 1.26.42.2
+@@ -203,6 +203,10 @@ void SbiParser::DefVar( SbiOpcode eOp, B
+ if( eCurTok == GLOBAL )
+ bPersistantGlobal = TRUE;
+ }
++ // behavior in VBA is that a module scope variable's lifetime is
++ // tied to the document. e.g. a module scope variable is global
++ if( GetBasic()->IsDocBasic() && bVBASupportOn && !pProc )
++ bPersistantGlobal = TRUE;
+ // PRIVATE ist Synonym fuer DIM
+ // _CONST_?
+ BOOL bConst = FALSE;
+@@ -334,7 +338,7 @@ void SbiParser::DefVar( SbiOpcode eOp, B
+ {
+ case SbGLOBAL: eOp2 = bPersistantGlobal ? _GLOBAL_P : _GLOBAL;
+ goto global;
+- case SbPUBLIC: eOp2 = _PUBLIC;
++ case SbPUBLIC: eOp2 = bPersistantGlobal ? _PUBLIC_P : _PUBLIC;
+ // AB 9.7.97, #40689, kein eigener Opcode mehr
+ /*
+ if( bStatic )
+@@ -439,7 +443,14 @@ void SbiParser::DefVar( SbiOpcode eOp, B
+ {
+ SbiExpression aExpr( this, *pDef, NULL );
+ aExpr.Gen();
+- aGen.Gen( _ERASE );
++ if ( bVBASupportOn )
++ // delete the array but
++ // clear the variable ( this
++ // allows the processing of
++ // the param to happen as normal without errors ( ordinary ERASE just clears the array )
++ aGen.Gen( _ERASE_CLEAR );
++ else
++ aGen.Gen( _ERASE );
+ }
+ else if( eOp == _REDIMP )
+ {
+Index: basic/source/comp/exprnode.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/exprnode.cxx,v
+retrieving revision 1.16
+retrieving revision 1.16.48.1
+diff -u -p -r1.16 -r1.16.48.1
+--- basic/source/comp/exprnode.cxx 12 Oct 2006 14:34:58 -0000 1.16
++++ basic/source/comp/exprnode.cxx 16 Feb 2007 17:14:15 -0000 1.16.48.1
+@@ -244,7 +244,7 @@ void SbiExprNode::CollectBits()
+
+ void SbiExprNode::FoldConstants()
+ {
+- if( IsOperand() ) return;
++ if( IsOperand() || eTok == LIKE ) return;
+ pLeft->FoldConstants();
+ if( pRight )
+ {
+Index: basic/source/comp/parser.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/parser.cxx,v
+retrieving revision 1.19
+retrieving revision 1.19.42.2
+diff -u -p -r1.19 -r1.19.42.2
+--- basic/source/comp/parser.cxx 2 Nov 2006 16:32:13 -0000 1.19
++++ basic/source/comp/parser.cxx 2 May 2007 09:45:21 -0000 1.19.42.2
+@@ -152,7 +152,6 @@ SbiParser::SbiParser( StarBASIC* pb, SbM
+ bSingleLineIf =
+ bExplicit = FALSE;
+ bClassModule = FALSE;
+- bVBASupportOn = FALSE;
+ pPool = &aPublics;
+ for( short i = 0; i < 26; i++ )
+ eDefTypes[ i ] = SbxVARIANT; // Kein expliziter Defaulttyp
+@@ -609,7 +608,12 @@ void SbiParser::Set()
+ // ( its necessary for vba objects where set is object
+ // specific and also doesn't involve processing default params )
+ if( pDef->GetTypeId() )
+- aGen.Gen( _SETCLASS, pDef->GetTypeId() );
++ {
++ if ( bVBASupportOn )
++ aGen.Gen( _VBASETCLASS, pDef->GetTypeId() );
++ else
++ aGen.Gen( _SETCLASS, pDef->GetTypeId() );
++ }
+ else
+ {
+ if ( bVBASupportOn )
+Index: basic/source/comp/scanner.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/scanner.cxx,v
+retrieving revision 1.23
+retrieving revision 1.23.42.1
+diff -u -p -r1.23 -r1.23.42.1
+--- basic/source/comp/scanner.cxx 2 Nov 2006 11:02:47 -0000 1.23
++++ basic/source/comp/scanner.cxx 2 May 2007 09:45:21 -0000 1.23.42.1
+@@ -53,6 +53,7 @@
+ #include <unotools/charclass.hxx>
+ #endif
+
++#include <runtime.hxx>
+
+ SbiScanner::SbiScanner( const ::rtl::OUString& rBuf, StarBASIC* p ) : aBuf( rBuf )
+ {
+@@ -76,6 +77,7 @@ SbiScanner::SbiScanner( const ::rtl::OUS
+ bSymbol =
+ bUsedForHilite =
+ bCompatible =
++ bVBASupportOn =
+ bPrevLineExtentsComment = FALSE;
+ bHash =
+ bErrors = TRUE;
+@@ -424,7 +426,11 @@ BOOL SbiScanner::NextSym()
+ if( *pLine != cSep || cSep == ']' ) break;
+ } else aError = cSep, GenError( SbERR_EXPECTED );
+ }
+- aSym = aLine.copy( n, nCol - n - 1 );
++ // If VBA Interop then doen't eat the [] chars
++ if ( cSep == ']' && bVBASupportOn )
++ aSym = aLine.copy( n - 1, nCol - n + 1);
++ else
++ aSym = aLine.copy( n, nCol - n - 1 );
+ // Doppelte Stringbegrenzer raus
+ String s( cSep );
+ s += cSep;
+Index: basic/source/comp/token.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/token.cxx,v
+retrieving revision 1.21
+retrieving revision 1.21.48.1
+diff -u -p -r1.21 -r1.21.48.1
+--- basic/source/comp/token.cxx 12 Oct 2006 14:28:11 -0000 1.21
++++ basic/source/comp/token.cxx 16 Feb 2007 17:14:15 -0000 1.21.48.1
+@@ -130,6 +130,7 @@ static TokenTable aTokTable_Basic [] = {
+ { IS, "Is" },
+ { LET, "Let" },
+ { LIB, "Lib" },
++ { LIKE, "Like" },
+ { LINE, "Line" },
+ { LINEINPUT,"Line Input" },
+ { LOCAL, "Local" },
+cvs diff: Diffing basic/source/inc
+Index: basic/source/inc/opcodes.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/opcodes.hxx,v
+retrieving revision 1.11
+retrieving revision 1.11.42.3
+diff -u -p -r1.11 -r1.11.42.3
+--- basic/source/inc/opcodes.hxx 2 Nov 2006 16:32:24 -0000 1.11
++++ basic/source/inc/opcodes.hxx 2 May 2007 09:45:22 -0000 1.11.42.3
+@@ -99,6 +99,7 @@ enum SbiOpcode {
+ _REDIMP_ERASE, // Copies array to be later used by REDIM PRESERVE before erasing it
+ _INITFOREACH,
+ _VBASET, // VBA-like Set
++ _ERASE_CLEAR, // Erase array and clear variable
+ SbOP0_END,
+
+ // Alle Opcodes mit einem Operanden
+@@ -132,6 +133,7 @@ enum SbiOpcode {
+ _BASED, // TOS wird um BASE erhoeht, BASE davor gepusht (+base)
+ // Typanpassung im Argv
+ _ARGTYP, // Letzten Parameter in Argv konvertieren (+Typ)
++ _VBASETCLASS, // VBA-like Set
+ SbOP1_END,
+
+ // Alle Opcodes mit zwei Operanden
+@@ -164,6 +166,7 @@ enum SbiOpcode {
+ _FIND_G, // Sucht globale Variable mit Spezialbehandlung wegen _GLOBAL_P
+ _DCREATE_REDIMP, // Objekt-Array redimensionieren (+StringId+StringID)
+ _FIND_CM, // Search inside a class module (CM) to enable global search in time
++ _PUBLIC_P, // Module global Variable (persisted between calls)(+StringID+Typ)
+ SbOP2_END
+
+ };
+Index: basic/source/inc/parser.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/parser.hxx,v
+retrieving revision 1.10
+retrieving revision 1.10.42.1
+diff -u -p -r1.10 -r1.10.42.1
+--- basic/source/inc/parser.hxx 1 Nov 2006 16:15:58 -0000 1.10
++++ basic/source/inc/parser.hxx 2 May 2007 09:45:22 -0000 1.10.42.1
+@@ -94,7 +94,6 @@ public:
+ BOOL bText; // OPTION COMPARE TEXT
+ BOOL bExplicit; // TRUE: OPTION EXPLICIT
+ BOOL bClassModule; // TRUE: OPTION ClassModule
+- BOOL bVBASupportOn; // TRUE: OPTION VBASupport 1 otherwise default False
+ IfaceVector aIfaceVector; // Holds all interfaces implemented by a class module
+ SbxDataType eDefTypes[26]; // DEFxxx-Datentypen
+
+Index: basic/source/inc/runtime.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/runtime.hxx,v
+retrieving revision 1.33
+retrieving revision 1.33.42.4
+diff -u -p -r1.33 -r1.33.42.4
+--- basic/source/inc/runtime.hxx 2 Nov 2006 16:32:35 -0000 1.33
++++ basic/source/inc/runtime.hxx 2 May 2007 09:44:56 -0000 1.33.42.4
+@@ -360,6 +360,7 @@ class SbiRuntime
+ BOOL bError; // TRUE: Fehler behandeln
+ BOOL bInError; // TRUE: in einem Fehler-Handler
+ BOOL bBlocked; // TRUE: blocked by next call level, #i48868
++ BOOL bVBAEnabled;
+ USHORT nFlags; // Debugging-Flags
+ SbError nError; // letzter Fehler
+ USHORT nOps; // Opcode-Zaehler
+@@ -429,6 +430,8 @@ class SbiRuntime
+ // #115829
+ bool implIsClass( SbxObject* pObj, const String& aClass );
+
++ void StepSETCLASS_impl( UINT32 nOp1, bool bHandleDflt = false );
++
+ // Die nachfolgenden Routinen werden vom Single Stepper
+ // gerufen und implementieren die einzelnen Opcodes
+ void StepNOP(), StepEXP(), StepMUL(), StepDIV();
+@@ -447,7 +450,7 @@ class SbiRuntime
+ void StepNOERROR(), StepCHANNEL(), StepCHANNEL0(), StepPRINT();
+ void StepPRINTF(), StepWRITE(), StepRENAME(), StepPROMPT();
+ void StepRESTART(), StepEMPTY(), StepLEAVE();
+- void StepLSET(), StepRSET(), StepREDIMP_ERASE();
++ void StepLSET(), StepRSET(), StepREDIMP_ERASE(), StepERASE_CLEAR();
+ // Alle Opcodes mit einem Operanden
+ void StepLOADNC( UINT32 ), StepLOADSC( UINT32 ), StepLOADI( UINT32 );
+ void StepARGN( UINT32 ), StepBASED( UINT32 ), StepPAD( UINT32 );
+@@ -455,11 +458,11 @@ class SbiRuntime
+ void StepJUMPF( UINT32 ), StepONJUMP( UINT32 );
+ void StepGOSUB( UINT32 ), StepRETURN( UINT32 );
+ void StepTESTFOR( UINT32 ), StepCASETO( UINT32 ), StepERRHDL( UINT32 );
+- void StepRESUME( UINT32 ), StepSETCLASS( UINT32 ), StepTESTCLASS( UINT32 ), StepLIB( UINT32 );
++ void StepRESUME( UINT32 ), StepSETCLASS( UINT32 ), StepVBASETCLASS( UINT32 ), StepTESTCLASS( UINT32 ), StepLIB( UINT32 );
+ bool checkClass_Impl( const SbxVariableRef& refVal, const String& aClass, bool bRaiseErrors );
+ void StepCLOSE( UINT32 ), StepPRCHAR( UINT32 ), StepARGTYP( UINT32 );
+ // Alle Opcodes mit zwei Operanden
+- void StepRTL( UINT32, UINT32 ), StepPUBLIC( UINT32, UINT32 );
++ void StepRTL( UINT32, UINT32 ), StepPUBLIC( UINT32, UINT32 ), StepPUBLIC_P( UINT32, UINT32 );
+ void StepPUBLIC_Impl( UINT32, UINT32, bool bUsedForClassModule );
+ void StepFIND( UINT32, UINT32 ), StepELEM( UINT32, UINT32 );
+ void StepGLOBAL( UINT32, UINT32 ), StepLOCAL( UINT32, UINT32 );
+@@ -472,6 +475,7 @@ class SbiRuntime
+ void StepDCREATE_REDIMP(UINT32,UINT32), StepDCREATE_IMPL(UINT32,UINT32);
+ void StepFIND_CM( UINT32, UINT32 );
+ public:
++ void SetVBAEnabled( bool bEnabled ) { bVBAEnabled = bEnabled; };
+ USHORT GetImageFlag( USHORT n ) const;
+ USHORT GetBase();
+ xub_StrLen nLine,nCol1,nCol2; // aktuelle Zeile, Spaltenbereich
+Index: basic/source/inc/scanner.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/scanner.hxx,v
+retrieving revision 1.10
+retrieving revision 1.10.176.1
+diff -u -p -r1.10 -r1.10.176.1
+--- basic/source/inc/scanner.hxx 29 Sep 2005 18:41:38 -0000 1.10
++++ basic/source/inc/scanner.hxx 2 May 2007 09:45:22 -0000 1.10.176.1
+@@ -79,7 +79,8 @@ protected:
+ BOOL bHash; // TRUE: # eingelesen
+ BOOL bError; // TRUE: Fehler generieren
+ BOOL bUsedForHilite; // TRUE: Nutzung fuer Highlighting
+- BOOL bCompatible; // TRUE: OPTION Compatible
++ BOOL bCompatible; // TRUE: OPTION Compatibl
++ BOOL bVBASupportOn; // TRUE: OPTION VBASupport 1 otherwise default False
+ BOOL bPrevLineExtentsComment; // TRUE: Previous line is comment and ends on "... _"
+
+ void GenError( SbError );
+@@ -91,6 +92,8 @@ public:
+ BOOL IsHash() { return bHash; }
+ BOOL IsCompatible() { return bCompatible; }
+ void SetCompatible( bool b ) { bCompatible = b; } // #118206
++ BOOL IsVBASupportOn() { return bVBASupportOn; }
++ void SetVBASupportOn( bool b ) { bVBASupportOn = b; }
+ BOOL WhiteSpace() { return bSpaces; }
+ short GetErrors() { return nErrors; }
+ short GetLine() { return nLine; }
+cvs diff: Diffing basic/source/runtime
+Index: basic/source/runtime/runtime.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/runtime.cxx,v
+retrieving revision 1.35
+retrieving revision 1.35.6.4
+diff -u -p -r1.35 -r1.35.6.4
+--- basic/source/runtime/runtime.cxx 29 Jan 2007 15:05:41 -0000 1.35
++++ basic/source/runtime/runtime.cxx 2 May 2007 09:44:22 -0000 1.35.6.4
+@@ -153,6 +153,7 @@ SbiRuntime::pStep0 SbiRuntime::aStep0[]
+ &SbiRuntime::StepREDIMP_ERASE,// Copy array object for REDIMP
+ &SbiRuntime::StepINITFOREACH,// Init for each loop
+ &SbiRuntime::StepVBASET,// vba-like set statement
++ &SbiRuntime::StepERASE_CLEAR,// vba-like set statement
+ };
+
+ SbiRuntime::pStep1 SbiRuntime::aStep1[] = { // Alle Opcodes mit einem Operanden
+@@ -181,6 +182,7 @@ SbiRuntime::pStep1 SbiRuntime::aStep1[]
+ &SbiRuntime::StepLIB, // Lib fuer Declare-Call (+StringId)
+ &SbiRuntime::StepBASED, // TOS wird um BASE erhoeht, BASE davor gepusht
+ &SbiRuntime::StepARGTYP, // Letzten Parameter in Argv konvertieren (+Typ)
++ &SbiRuntime::StepVBASETCLASS,// vba-like set statement
+ };
+
+ SbiRuntime::pStep2 SbiRuntime::aStep2[] = {// Alle Opcodes mit zwei Operanden
+@@ -209,6 +211,7 @@ SbiRuntime::pStep2 SbiRuntime::aStep2[]
+ &SbiRuntime::StepFIND_G, // Sucht globale Variable mit Spezialbehandlung wegen _GLOBAL_P
+ &SbiRuntime::StepDCREATE_REDIMP, // Objekt-Array redimensionieren (+StringID+StringID)
+ &SbiRuntime::StepFIND_CM, // Search inside a class module (CM) to enable global search in time
++ &SbiRuntime::StepPUBLIC_P, // Search inside a class module (CM) to enable global search in time
+ };
+
+
+@@ -538,6 +541,7 @@ SbiRuntime::SbiRuntime( SbModule* pm, Sb
+ #endif
+ pRefSaveList = NULL;
+ pItemStoreList = NULL;
++ bVBAEnabled = isVBAEnabled();
+ }
+
+ SbiRuntime::~SbiRuntime()
+Index: basic/source/runtime/step0.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/step0.cxx,v
+retrieving revision 1.28
+retrieving revision 1.27.42.7
+diff -u -p -r1.28 -r1.27.42.7
+--- basic/source/runtime/step0.cxx 26 Apr 2007 08:33:37 -0000 1.28
++++ basic/source/runtime/step0.cxx 2 May 2007 09:45:35 -0000 1.27.42.7
+@@ -49,7 +49,11 @@
+ #include <sb.hrc>
+ #include <basrid.hxx>
+ #include "sbunoobj.hxx"
++#include "image.hxx"
+ #include <com/sun/star/uno/Any.hxx>
++#include <com/sun/star/util/SearchOptions.hdl>
++#include <vcl/svapp.hxx>
++#include <unotools/textsearch.hxx>
+
+ #include <algorithm>
+
+@@ -64,7 +68,6 @@ void SbiRuntime::StepArith( SbxOperator
+ TOSMakeTemp();
+ SbxVariable* p2 = GetTOS();
+
+- bool bVBAInterop = SbiRuntime::isVBAEnabled();
+
+ // This could & should be moved to the MakeTempTOS() method in runtime.cxx
+ // In the code which this is cut'npaste from there is a check for a ref
+@@ -74,7 +77,7 @@ void SbiRuntime::StepArith( SbxOperator
+ // here we alway seem to have a refcount of 1. Also it seems that
+ // MakeTempTOS is called for other operation, so I hold off for now
+ // until I have a better idea
+- if ( bVBAInterop
++ if ( bVBAEnabled
+ && ( p2->GetType() == SbxOBJECT || p2->GetType() == SbxVARIANT )
+ )
+ {
+@@ -110,6 +113,40 @@ void SbiRuntime::StepCompare( SbxOperato
+ {
+ SbxVariableRef p1 = PopVar();
+ SbxVariableRef p2 = PopVar();
++
++ // Make sure objects with default params have
++ // values ( and type ) set as appropriate
++ SbxDataType p1Type = p1->GetType();
++ SbxDataType p2Type = p2->GetType();
++ if ( p1Type == p2Type )
++ {
++ if ( p1Type == SbxEMPTY )
++ {
++ p1->Broadcast( SBX_HINT_DATAWANTED );
++ p2->Broadcast( SBX_HINT_DATAWANTED );
++ }
++ // if both sides are an object and have default props
++ // then we need to use the default props
++ // we don't need to worry if only one side ( lhs, rhs ) is an
++ // object ( object side will get coerced to correct type in
++ // Compare )
++ else if ( p1Type == SbxOBJECT )
++ {
++ SbxVariable* pDflt = getDefaultProp( p1 );
++ if ( pDflt )
++ {
++ p1 = pDflt;
++ p1->Broadcast( SBX_HINT_DATAWANTED );
++ }
++ pDflt = getDefaultProp( p2 );
++ if ( pDflt )
++ {
++ p2 = pDflt;
++ p2->Broadcast( SBX_HINT_DATAWANTED );
++ }
++ }
++
++ }
+ #ifndef WIN
+ static SbxVariable* pTRUE = NULL;
+ static SbxVariable* pFALSE = NULL;
+@@ -166,9 +203,116 @@ void SbiRuntime::StepGT() { StepCompare
+ void SbiRuntime::StepLE() { StepCompare( SbxLE ); }
+ void SbiRuntime::StepGE() { StepCompare( SbxGE ); }
+
++namespace
++{
++ bool NeedEsc(sal_Unicode cCode)
++ {
++ String sEsc(RTL_CONSTASCII_USTRINGPARAM(".^$+\\|{}()"));
++ return (STRING_NOTFOUND != sEsc.Search(cCode));
++ }
++
++ String VBALikeToRegexp(const String &rIn)
++ {
++ String sResult;
++ const sal_Unicode *start = rIn.GetBuffer();
++ const sal_Unicode *end = start + rIn.Len();
++
++ int seenright = 0;
++
++ sResult.Append('^');
++
++ while (start < end)
++ {
++ switch (*start)
++ {
++ case '?':
++ sResult.Append('.');
++ start++;
++ break;
++ case '*':
++ sResult.Append(String(RTL_CONSTASCII_USTRINGPARAM(".*")));
++ start++;
++ break;
++ case '#':
++ sResult.Append(String(RTL_CONSTASCII_USTRINGPARAM("[0-9]")));
++ start++;
++ break;
++ case ']':
++ sResult.Append('\\');
++ sResult.Append(*start++);
++ break;
++ case '[':
++ sResult.Append(*start++);
++ seenright = 0;
++ while (start < end && !seenright)
++ {
++ switch (*start)
++ {
++ case '[':
++ case '?':
++ case '*':
++ sResult.Append('\\');
++ sResult.Append(*start);
++ break;
++ case ']':
++ sResult.Append(*start);
++ seenright = 1;
++ break;
++ case '!':
++ sResult.Append('^');
++ break;
++ default:
++ if (NeedEsc(*start))
++ sResult.Append('\\');
++ sResult.Append(*start);
++ break;
++ }
++ start++;
++ }
++ break;
++ default:
++ if (NeedEsc(*start))
++ sResult.Append('\\');
++ sResult.Append(*start++);
++ }
++ }
++
++ sResult.Append('$');
++
++ return sResult;
++ }
++}
++
+ void SbiRuntime::StepLIKE()
+ {
+- StarBASIC::FatalError( SbERR_NOT_IMPLEMENTED );
++ SbxVariableRef refVar1 = PopVar();
++ SbxVariableRef refVar2 = PopVar();
++
++ String pattern = VBALikeToRegexp(refVar1->GetString());
++ String value = refVar2->GetString();
++
++ com::sun::star::util::SearchOptions aSearchOpt;
++
++ aSearchOpt.algorithmType = com::sun::star::util::SearchAlgorithms_REGEXP;
++
++ aSearchOpt.Locale = Application::GetSettings().GetLocale();
++ aSearchOpt.searchString = pattern;
++
++ int bTextMode(1);
++ bool bCompatibility = ( pINST && pINST->IsCompatibility() );
++ if( bCompatibility )
++ bTextMode = GetImageFlag( SBIMG_COMPARETEXT );
++
++ if( bTextMode )
++ aSearchOpt.transliterateFlags |= com::sun::star::i18n::TransliterationModules_IGNORE_CASE;
++
++ SbxVariable* pRes = new SbxVariable;
++ utl::TextSearch aSearch(aSearchOpt);
++ xub_StrLen nStart=0, nEnd=value.Len();
++ int bRes = aSearch.SearchFrwrd(value, &nStart, &nEnd);
++ pRes->PutBool( bRes != 0 );
++
++ PushVar( pRes );
+ }
+
+ // TOS und TOS-1 sind beides Objektvariable und enthalten den selben Pointer
+@@ -244,14 +388,13 @@ void SbiRuntime::StepPUT()
+ n = refVar->GetFlags();
+ refVar->SetFlag( SBX_WRITE );
+ }
+- bool bVBAInterop = SbiRuntime::isVBAEnabled();
+
+ // if left side arg is an object or variant and right handside isn't
+ // either an object or a variant then try and see if a default
+ // property exists.
+ // to use e.g. Range{"A1") = 34
+ // could equate to Range("A1").Value = 34
+- if ( bVBAInterop )
++ if ( bVBAEnabled )
+ {
+ if ( refVar->GetType() == SbxOBJECT )
+ {
+@@ -269,7 +412,7 @@ void SbiRuntime::StepPUT()
+
+ *refVar = *refVal;
+ // lhs is a property who's value is currently null
+- if ( !bVBAInterop || ( bVBAInterop && refVar->GetType() != SbxEMPTY ) )
++ if ( !bVBAEnabled || ( bVBAEnabled && refVar->GetType() != SbxEMPTY ) )
+ // #67607 Uno-Structs kopieren
+ checkUnoStructCopy( refVal, refVar );
+ if( bFlagsChanged )
+@@ -402,7 +545,7 @@ void SbiRuntime::StepSET()
+ {
+ SbxVariableRef refVal = PopVar();
+ SbxVariableRef refVar = PopVar();
+- StepSET_Impl( refVal, refVar, SbiRuntime::isVBAEnabled() ); // this is really assigment
++ StepSET_Impl( refVal, refVar, bVBAEnabled ); // this is really assigment
+ }
+
+ void SbiRuntime::StepVBASET()
+@@ -525,6 +668,8 @@ void SbiRuntime::DimImpl( SbxVariableRef
+ if( ub < lb )
+ Error( SbERR_OUT_OF_RANGE ), ub = lb;
+ pArray->AddDim32( lb, ub );
++ if ( lb != ub )
++ pArray->setHasFixedSize( true );
+ }
+ }
+ else
+@@ -693,27 +838,51 @@ void SbiRuntime::StepREDIMP_ERASE()
+ refVar->SetType( SbxEMPTY );
+ }
+
++void lcl_clearImpl( SbxVariableRef& refVar, SbxDataType& eType )
++{
++ USHORT nSavFlags = refVar->GetFlags();
++ refVar->ResetFlag( SBX_FIXED );
++ refVar->SetType( SbxDataType(eType & 0x0FFF) );
++ refVar->SetFlags( nSavFlags );
++ refVar->Clear();
++}
+
+-// Variable loeschen
+-// TOS = Variable
+-
+-void SbiRuntime::StepERASE()
++void lcl_eraseImpl( SbxVariableRef& refVar, bool bVBAEnabled )
+ {
+- SbxVariableRef refVar = PopVar();
+ SbxDataType eType = refVar->GetType();
+ if( eType & SbxARRAY )
+ {
++ if ( bVBAEnabled )
++ {
++ SbxBase* pElemObj = refVar->GetObject();
++ SbxDimArray* pDimArray = PTR_CAST(SbxDimArray,pElemObj);
++ bool bClearValues = true;
++ if( pDimArray )
++ {
++ if ( pDimArray->hasFixedSize() )
++ {
++ // Clear all Value(s)
++ pDimArray->SbxArray::Clear();
++ bClearValues = false;
++ }
++ else
++ pDimArray->Clear(); // clear Dims
++ }
++ if ( bClearValues )
++ {
++ SbxArray* pArray = PTR_CAST(SbxArray,pElemObj);
++ if ( pArray )
++ pArray->Clear();
++ }
++ }
++ else
+ // AB 2.4.1996
+ // Arrays haben bei Erase nach VB ein recht komplexes Verhalten. Hier
+ // werden zunaechst nur die Typ-Probleme bei REDIM (#26295) beseitigt:
+ // Typ hart auf den Array-Typ setzen, da eine Variable mit Array
+ // SbxOBJECT ist. Bei REDIM entsteht dann ein SbxOBJECT-Array und
+ // der ursruengliche Typ geht verloren -> Laufzeitfehler
+- USHORT nSavFlags = refVar->GetFlags();
+- refVar->ResetFlag( SBX_FIXED );
+- refVar->SetType( SbxDataType(eType & 0x0FFF) );
+- refVar->SetFlags( nSavFlags );
+- refVar->Clear();
++ lcl_clearImpl( refVar, eType );
+ }
+ else
+ if( refVar->IsFixed() )
+@@ -722,6 +891,23 @@ void SbiRuntime::StepERASE()
+ refVar->SetType( SbxEMPTY );
+ }
+
++// Variable loeschen
++// TOS = Variable
++
++void SbiRuntime::StepERASE()
++{
++ SbxVariableRef refVar = PopVar();
++ lcl_eraseImpl( refVar, bVBAEnabled );
++}
++
++void SbiRuntime::StepERASE_CLEAR()
++{
++ SbxVariableRef refVar = PopVar();
++ lcl_eraseImpl( refVar, bVBAEnabled );
++ SbxDataType eType = refVar->GetType();
++ lcl_clearImpl( refVar, eType );
++}
++
+ // Einrichten eines Argvs
+ // nOp1 bleibt so -> 1. Element ist Returnwert
+
+Index: basic/source/runtime/step1.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/step1.cxx,v
+retrieving revision 1.16
+retrieving revision 1.16.42.1
+diff -u -p -r1.16 -r1.16.42.1
+--- basic/source/runtime/step1.cxx 3 Nov 2006 15:10:48 -0000 1.16
++++ basic/source/runtime/step1.cxx 27 Feb 2007 18:29:10 -0000 1.16.42.1
+@@ -44,6 +44,9 @@
+ #include "image.hxx"
+ #include "sbunoobj.hxx"
+
++bool checkUnoObjectType( SbUnoObject* refVal,
++ const String& aClass );
++
+ // Laden einer numerischen Konstanten (+ID)
+
+ void SbiRuntime::StepLOADNC( UINT32 nOp1 )
+@@ -476,9 +479,18 @@ bool SbiRuntime::checkClass_Impl( const
+ {
+ if( !implIsClass( pObj, aClass ) )
+ {
+- if( bRaiseErrors )
+- Error( SbERR_INVALID_USAGE_OBJECT );
+- bOk = false;
++ if ( bVBAEnabled && pObj->IsA( TYPE(SbUnoObject) ) )
++ {
++ SbUnoObject* pUnoObj = PTR_CAST(SbUnoObject,pObj);
++ bOk = checkUnoObjectType( pUnoObj, aClass );
++ }
++ else
++ bOk = false;
++ if ( !bOk )
++ {
++ if( bRaiseErrors )
++ Error( SbERR_INVALID_USAGE_OBJECT );
++ }
+ }
+ else
+ {
+@@ -490,14 +502,17 @@ bool SbiRuntime::checkClass_Impl( const
+ }
+ else
+ {
+- if( bRaiseErrors )
+- Error( SbERR_NEEDS_OBJECT );
+- bOk = false;
++ if ( !bVBAEnabled )
++ {
++ if( bRaiseErrors )
++ Error( SbERR_NEEDS_OBJECT );
++ bOk = false;
++ }
+ }
+ return bOk;
+ }
+
+-void SbiRuntime::StepSETCLASS( UINT32 nOp1 )
++void SbiRuntime::StepSETCLASS_impl( UINT32 nOp1, bool bHandleDflt )
+ {
+ SbxVariableRef refVal = PopVar();
+ SbxVariableRef refVar = PopVar();
+@@ -505,7 +520,17 @@ void SbiRuntime::StepSETCLASS( UINT32 nO
+
+ bool bOk = checkClass_Impl( refVal, aClass, true );
+ if( bOk )
+- StepSET_Impl( refVal, refVar );
++ StepSET_Impl( refVal, refVar, bHandleDflt ); // don't do handle dflt prop for a "proper" set
++}
++
++void SbiRuntime::StepVBASETCLASS( UINT32 nOp1 )
++{
++ StepSETCLASS_impl( nOp1, false );
++}
++
++void SbiRuntime::StepSETCLASS( UINT32 nOp1 )
++{
++ StepSETCLASS_impl( nOp1, true );
+ }
+
+ void SbiRuntime::StepTESTCLASS( UINT32 nOp1 )
+Index: basic/source/runtime/step2.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/step2.cxx,v
+retrieving revision 1.29
+retrieving revision 1.27.42.5
+diff -u -p -r1.29 -r1.27.42.5
+--- basic/source/runtime/step2.cxx 27 Apr 2007 09:16:12 -0000 1.29
++++ basic/source/runtime/step2.cxx 2 May 2007 09:44:56 -0000 1.27.42.5
+@@ -54,6 +54,8 @@
+ using namespace com::sun::star::container;
+ using namespace com::sun::star::lang;
+
++SbxVariable* getVBAConstant( const String& rName );
++
+ const static String aThisComponent( RTL_CONSTASCII_USTRINGPARAM("ThisComponent") );
+ const static String aVBAHook( RTL_CONSTASCII_USTRINGPARAM( "VBAGlobals" ) );
+ // i#i68894#
+@@ -113,8 +115,6 @@ SbxVariable* SbiRuntime::FindElement
+ ( SbxObject* pObj, UINT32 nOp1, UINT32 nOp2, SbError nNotFound, BOOL bLocal )
+ {
+
+- bool bIsVBAInterOp = SbiRuntime::isVBAEnabled();
+-
+ SbxVariable* pElem = NULL;
+ if( !pObj )
+ {
+@@ -126,6 +126,24 @@ SbxVariable* SbiRuntime::FindElement
+ BOOL bFatalError = FALSE;
+ SbxDataType t = (SbxDataType) nOp2;
+ String aName( pImg->GetString( static_cast<short>( nOp1 & 0x7FFF ) ) );
++ bool bIsVBAInterOp = SbiRuntime::isVBAEnabled();
++ // Hacky capture of Evaluate [] syntax
++ // this should be tackled I feel at the pcode level
++ if ( bIsVBAInterOp && aName.Search('[') == 0 )
++ {
++ // emulate pcode here
++ StepARGC();
++ // psuedo StepLOADSC
++ String sArg = aName.Copy( 1, aName.Len() - 2 );
++ SbxVariable* p = new SbxVariable;
++ p->PutString( sArg );
++ PushVar( p );
++ //
++ StepARGV();
++ nOp1 = nOp1 | 0x8000; // indicate params are present
++ aName = String::CreateFromAscii("Evaluate");
++ }
++
+ if( bLocal )
+ pElem = refLocals->Find( aName, SbxCLASS_DONTCARE );
+ if( !pElem )
+@@ -156,25 +174,24 @@ SbxVariable* SbiRuntime::FindElement
+
+ // i#i68894# if VBAInterOp favour searching vba globals
+ // over searching for uno classess
+- if ( bIsVBAInterOp )
++ if ( bVBAEnabled )
+ {
+ // Try Find in VBA symbols space
+ pElem = VBAFind( aName, SbxCLASS_DONTCARE );
+ if ( pElem )
+ bSetName = false; // don't overwrite uno name
++ else
++ pElem = getVBAConstant( aName );
+ }
+- else
+- {
+- // #72382 VORSICHT! Liefert jetzt wegen unbekannten
+- // Modulen IMMER ein Ergebnis!
+- SbxVariable* pUnoClass = findUnoClass( aName );
+- if( pUnoClass )
+- {
+- pElem = new SbxVariable( t );
+- SbxValues aRes( SbxOBJECT );
+- aRes.pObj = pUnoClass;
+- pElem->SbxVariable::Put( aRes );
+- }
++ // #72382 VORSICHT! Liefert jetzt wegen unbekannten
++ // Modulen IMMER ein Ergebnis!
++ SbxVariable* pUnoClass = findUnoClass( aName );
++ if( pUnoClass )
++ {
++ pElem = new SbxVariable( t );
++ SbxValues aRes( SbxOBJECT );
++ aRes.pObj = pUnoClass;
++ pElem->SbxVariable::Put( aRes );
+ }
+
+ // #62939 Wenn eine Uno-Klasse gefunden wurde, muss
+@@ -523,7 +540,7 @@ SbxVariable* SbiRuntime::CheckArray( Sbx
+ {
+ Reference< XInterface > x = *(Reference< XInterface >*)aAny.getValue();
+ Reference< XIndexAccess > xIndexAccess( x, UNO_QUERY );
+- if ( !SbiRuntime::isVBAEnabled() )
++ if ( !bVBAEnabled )
+ {
+ // Haben wir Index-Access?
+ if( xIndexAccess.is() )
+@@ -1121,6 +1138,14 @@ void SbiRuntime::StepPUBLIC( UINT32 nOp1
+ StepPUBLIC_Impl( nOp1, nOp2, false );
+ }
+
++void SbiRuntime::StepPUBLIC_P( UINT32 nOp1, UINT32 nOp2 )
++{
++ // Creates module variable that isn't reinitialised when
++ // between invocations ( for VBASupport & document basic only )
++ if( pMod->pImage->bFirstInit )
++ StepPUBLIC( nOp1, nOp2 );
++}
++
+ // Einrichten einer globalen Variablen (+StringID+Typ)
+
+ void SbiRuntime::StepGLOBAL( UINT32 nOp1, UINT32 nOp2 )
+cvs diff: Diffing basic/source/sample
+cvs diff: Diffing basic/source/sbx
+Index: basic/source/sbx/sbxarray.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/sbx/sbxarray.cxx,v
+retrieving revision 1.6
+retrieving revision 1.6.48.3
+diff -u -p -r1.6 -r1.6.48.3
+--- basic/source/sbx/sbxarray.cxx 12 Oct 2006 14:31:56 -0000 1.6
++++ basic/source/sbx/sbxarray.cxx 27 Apr 2007 14:32:16 -0000 1.6.48.3
+@@ -40,6 +40,7 @@
+ #include <tools/stream.hxx>
+ #endif
+ #include "sbx.hxx"
++#include "runtime.hxx"
+ #include <vector>
+ using namespace std;
+
+@@ -593,7 +594,7 @@ void SbxArray::PutDirect( SbxVariable* p
+ //
+ //////////////////////////////////////////////////////////////////////////
+
+-SbxDimArray::SbxDimArray( SbxDataType t ) : SbxArray( t )
++SbxDimArray::SbxDimArray( SbxDataType t ) : SbxArray( t ), mbHasFixedSize( false )
+ {
+ pFirst = pLast = NULL;
+ nDim = 0;
+@@ -618,6 +619,7 @@ SbxDimArray& SbxDimArray::operator=( con
+ AddDim32( p->nLbound, p->nUbound );
+ p = p->pNext;
+ }
++ this->mbHasFixedSize = rArray.mbHasFixedSize;
+ }
+ return *this;
+ }
+@@ -793,7 +795,7 @@ void SbxDimArray::Put32( SbxVariable* p,
+
+ UINT32 SbxDimArray::Offset32( SbxArray* pPar )
+ {
+- if( nDim == 0 || !pPar )
++ if( nDim == 0 || !pPar || ( ( nDim != ( pPar->Count() - 1 ) ) && SbiRuntime::isVBAEnabled() ) )
+ {
+ SetError( SbxERR_BOUNDS ); return 0;
+ }
+Index: basic/source/sbx/sbxvalue.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/sbx/sbxvalue.cxx,v
+retrieving revision 1.8
+retrieving revision 1.8.48.1
+diff -u -p -r1.8 -r1.8.48.1
+--- basic/source/sbx/sbxvalue.cxx 12 Oct 2006 14:34:49 -0000 1.8
++++ basic/source/sbx/sbxvalue.cxx 16 Feb 2007 17:08:55 -0000 1.8.48.1
+@@ -64,7 +64,7 @@
+ #include "sbx.hxx"
+ #include "sbxconv.hxx"
+ #include <math.h>
+-
++#include "runtime.hxx"
+ // AB 29.10.99 Unicode
+ #ifndef _USE_NO_NAMESPACE
+ using namespace rtl;
+@@ -1125,6 +1125,8 @@ BOOL SbxValue::Convert( SbxDataType eTo
+
+ BOOL SbxValue::Compute( SbxOperator eOp, const SbxValue& rOp )
+ {
++ bool bVBAInterop = SbiRuntime::isVBAEnabled();
++
+ SbxDataType eThisType = GetType();
+ SbxDataType eOpType = rOp.GetType();
+ SbxError eOld = GetError();
+@@ -1138,14 +1140,16 @@ BOOL SbxValue::Compute( SbxOperator eOp,
+ else if( eThisType == SbxNULL || eOpType == SbxNULL )
+ SetType( SbxNULL );
+ // Sonderregel 2: Ist ein Operand Empty, ist das Ergebnis der 2. Operand
+- else if( eThisType == SbxEMPTY )
++ else if( eThisType == SbxEMPTY
++ && !bVBAInterop
++ )
+ *this = rOp;
+ // 13.2.96: Nicht schon vor Get auf SbxEMPTY pruefen
+ else
+ {
+ SbxValues aL, aR;
+ bool bDecimal = false;
+- if( eThisType == SbxSTRING || eOp == SbxCAT )
++ if( eThisType == SbxSTRING || eOp == SbxCAT || ( bVBAInterop && ( eOpType == SbxSTRING ) && ( eOp == SbxPLUS ) ) )
+ {
+ if( eOp == SbxCAT || eOp == SbxPLUS )
+ {
+@@ -1203,7 +1207,10 @@ BOOL SbxValue::Compute( SbxOperator eOp,
+ if( rOp.Get( aR ) )
+ {
+ if( rOp.GetType() == SbxEMPTY )
+- goto Lbl_OpIsEmpty;
++ {
++ if ( !bVBAInterop || ( bVBAInterop && ( eOp != SbxNOT ) ) )
++ goto Lbl_OpIsEmpty;
++ }
+ if( Get( aL ) ) switch( eOp )
+ {
+ case SbxIDIV:
+@@ -1392,7 +1399,10 @@ BOOL SbxValue::Compute( SbxOperator eOp,
+ if( rOp.Get( aR ) )
+ {
+ if( rOp.GetType() == SbxEMPTY )
+- goto Lbl_OpIsEmpty;
++ {
++ if ( !bVBAInterop || ( bVBAInterop && ( eOp != SbxNEG ) ) )
++ goto Lbl_OpIsEmpty;
++ }
+ if( Get( aL ) )
+ {
+ switch( eOp )
+@@ -1442,6 +1452,8 @@ Lbl_OpIsEmpty:
+
+ BOOL SbxValue::Compare( SbxOperator eOp, const SbxValue& rOp ) const
+ {
++ bool bVBAInterop = SbiRuntime::isVBAEnabled();
++
+ BOOL bRes = FALSE;
+ SbxError eOld = GetError();
+ if( eOld != SbxERR_OK )
+@@ -1458,10 +1470,13 @@ BOOL SbxValue::Compare( SbxOperator eOp,
+ // Sonderregel 2: Wenn beide Variant sind und einer ist numerisch,
+ // und der andere ein String, ist num < str
+ else if( !IsFixed() && !rOp.IsFixed()
+- && ( rOp.GetType() == SbxSTRING && GetType() != SbxSTRING && IsNumeric() ) )
++ && ( rOp.GetType() == SbxSTRING && GetType() != SbxSTRING && IsNumeric() ) && !bVBAInterop
++ )
+ bRes = BOOL( eOp == SbxLT || eOp == SbxLE || eOp == SbxNE );
+ else if( !IsFixed() && !rOp.IsFixed()
+- && ( GetType() == SbxSTRING && rOp.GetType() != SbxSTRING && rOp.IsNumeric() ) )
++ && ( GetType() == SbxSTRING && rOp.GetType() != SbxSTRING && rOp.IsNumeric() )
++&& !bVBAInterop
++ )
+ bRes = BOOL( eOp == SbxGT || eOp == SbxGE || eOp == SbxNE );
+ else
+ {
+cvs diff: Diffing basic/source/uno
+cvs diff: Diffing basic/util
+cvs diff: Diffing basic/util/defs
+cvs diff: Diffing basic/win
+cvs diff: Diffing basic/win/res
+cvs diff: Diffing basic/workben
+cvs diff: Diffing config_office
+Index: config_office/configure.in
+===================================================================
+RCS file: /cvs/tools/config_office/configure.in,v
+retrieving revision 1.201
+retrieving revision 1.201.2.1
+diff -u -p -r1.201 -r1.201.2.1
+--- config_office/configure.in 25 Apr 2007 15:53:53 -0000 1.201
++++ config_office/configure.in 3 May 2007 11:09:38 -0000 1.201.2.1
+@@ -41,20 +41,21 @@ AC_ARG_ENABLE(lockdown,
+ [ --enable-lockdown Enables the gconf integration work in OOo
+ ],,)
+ AC_ARG_ENABLE(vba,
+-[ --enable-vba Enables the vba compatibility feature
++[ --disable-vba disables the vba compatibility feature
+ ],,)
+ AC_ARG_WITH(vba-package-format,
+ [ --with-vba-package-format specify package format for vba compatibility api.
+- Default "builtin" means the api component and
++ Specifying "builtin" means the api component and
+ associated type library are part of the installation set.
+- Specifying "extsn" creates an uno extension that is
++ Specifying "extn" creates an uno extension that is
+ part of the installation set ( located in the program
+ directory ) that MUST be optionly registered using
+ either the unopkg executeable or the extension manager
+ gui.
+-
+- Usage: --with-package-format="builtin" or
+- --with-package-format="extsn"
++
++ Note: "extn" is the defualt.
++ Usage: --with-vba-package-format="builtin" or
++ --with-vba-package-format="extn"
+ ],,)
+ AC_ARG_ENABLE(pch,
+ [ --enable-pch Enables the use of precompiledr C/C++ header files
+@@ -1605,13 +1606,13 @@ fi
+ dnl ===================================================================
+ dnl Check if we are to enable vba macro interoperability feature
+ dnl ===================================================================
+-AC_MSG_CHECKING([whether to enable vba feature])
+-if test -n "$enable_vba" && test "$enable_vba" = "yes"; then
++AC_MSG_CHECKING([whether to disable vba feature])
++if test -n "$enable_vba" && test "$enable_vba" = "no"; then
+ AC_MSG_RESULT([yes])
+- ENABLE_VBA=YES
+-else
+ ENABLE_VBA=NO
++else
+ AC_MSG_RESULT([no])
++ ENABLE_VBA=YES
+ fi
+ AC_SUBST(ENABLE_VBA)
+
+@@ -1630,11 +1631,14 @@ if test "$ENABLE_VBA" = "YES"; then
+ fi
+
+ else
+- VBA_EXTENSION=NO
+- AC_MSG_RESULT([build into installset])
++ VBA_EXTENSION=YES
++ AC_MSG_RESULT([defaulting to build as uno extension])
+ fi
+- AC_SUBST(VBA_EXTENSION)
++else
++ VBA_EXTENSION=NO
+ fi
++AC_SUBST(VBA_EXTENSION)
++
+ dnl ===================================================================
+ dnl Check the whether vba need to be delivered as an uno package or part
+ dnl of the install
+cvs diff: Diffing config_office/guw
+cvs diff: Diffing sc
+cvs diff: Diffing sc/addin
+cvs diff: Diffing sc/addin/datefunc
+cvs diff: Diffing sc/addin/inc
+cvs diff: Diffing sc/addin/rot13
+cvs diff: Diffing sc/addin/util
+cvs diff: Diffing sc/inc
+cvs diff: Diffing sc/inc/pch
+cvs diff: Diffing sc/prj
+cvs diff: Diffing sc/qa
+cvs diff: Diffing sc/qa/complex
+cvs diff: Diffing sc/qa/complex/dataPilot
+cvs diff: Diffing sc/qa/complex/dataPilot/interfaceTests
+cvs diff: Diffing sc/qa/complex/dataPilot/interfaceTests/beans
+cvs diff: Diffing sc/qa/complex/dataPilot/interfaceTests/container
+cvs diff: Diffing sc/qa/complex/dataPilot/interfaceTests/sheet
+cvs diff: Diffing sc/qa/complex/sc
+cvs diff: Diffing sc/qa/unoapi
+cvs diff: Diffing sc/qa/unoapi/testdocuments
+cvs diff: Diffing sc/sdi
+cvs diff: Diffing sc/source
+cvs diff: Diffing sc/source/core
+cvs diff: Diffing sc/source/core/data
+cvs diff: Diffing sc/source/core/inc
+cvs diff: Diffing sc/source/core/src
+cvs diff: Diffing sc/source/core/tool
+cvs diff: Diffing sc/source/filter
+cvs diff: Diffing sc/source/filter/dif
+cvs diff: Diffing sc/source/filter/excel
+cvs diff: Diffing sc/source/filter/ftools
+cvs diff: Diffing sc/source/filter/html
+cvs diff: Diffing sc/source/filter/inc
+cvs diff: Diffing sc/source/filter/lotus
+cvs diff: Diffing sc/source/filter/qpro
+cvs diff: Diffing sc/source/filter/rtf
+cvs diff: Diffing sc/source/filter/starcalc
+cvs diff: Diffing sc/source/filter/xcl97
+cvs diff: Diffing sc/source/filter/xml
+cvs diff: Diffing sc/source/ui
+cvs diff: Diffing sc/source/ui/Accessibility
+cvs diff: Diffing sc/source/ui/app
+cvs diff: Diffing sc/source/ui/attrdlg
+cvs diff: Diffing sc/source/ui/cctrl
+cvs diff: Diffing sc/source/ui/dbgui
+cvs diff: Diffing sc/source/ui/docshell
+cvs diff: Diffing sc/source/ui/drawfunc
+cvs diff: Diffing sc/source/ui/formdlg
+cvs diff: Diffing sc/source/ui/inc
+cvs diff: Diffing sc/source/ui/miscdlgs
+cvs diff: Diffing sc/source/ui/namedlg
+cvs diff: Diffing sc/source/ui/navipi
+cvs diff: Diffing sc/source/ui/optdlg
+cvs diff: Diffing sc/source/ui/pagedlg
+cvs diff: Diffing sc/source/ui/src
+cvs diff: Diffing sc/source/ui/styleui
+cvs diff: Diffing sc/source/ui/undo
+cvs diff: Diffing sc/source/ui/unoobj
+cvs diff: Diffing sc/source/ui/vba
+Index: sc/source/ui/vba/vbaapplication.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaapplication.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -u -p -r1.2 -r1.2.2.1
+--- sc/source/ui/vba/vbaapplication.cxx 25 Apr 2007 16:00:39 -0000 1.2
++++ sc/source/ui/vba/vbaapplication.cxx 18 May 2007 12:38:29 -0000 1.2.2.1
+@@ -293,7 +293,7 @@ void SAL_CALL
+ ScVbaApplication::setStatusBar( const uno::Any& _statusbar ) throw (uno::RuntimeException)
+ {
+ rtl::OUString sText;
+- sal_Bool bDefault;
++ sal_Bool bDefault = sal_False;
+ uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
+ uno::Reference< task::XStatusIndicatorSupplier > xStatusIndicatorSupplier( xModel->getCurrentController(), uno::UNO_QUERY_THROW );
+ uno::Reference< task::XStatusIndicator > xStatusIndicator( xStatusIndicatorSupplier->getStatusIndicator(), uno::UNO_QUERY_THROW );
+@@ -426,7 +426,7 @@ ScVbaApplication::GoTo( const uno::Any&
+
+ if( Scroll.hasValue() )
+ {
+- sal_Bool aScroll;
++ sal_Bool aScroll = sal_False;
+ if( Scroll >>= aScroll )
+ {
+ bScroll = aScroll;
+Index: sc/source/ui/vba/vbahelper.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbahelper.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -u -p -r1.2 -r1.2.2.1
+--- sc/source/ui/vba/vbahelper.hxx 25 Apr 2007 16:07:33 -0000 1.2
++++ sc/source/ui/vba/vbahelper.hxx 3 May 2007 11:16:34 -0000 1.2.2.1
+@@ -38,8 +38,8 @@
+ #include <com/sun/star/frame/XModel.hpp>
+ #include <docsh.hxx>
+
+-#define css com::sun::star
+-#define oo org::openoffice
++namespace css = ::com::sun::star;
++
+ namespace org
+ {
+ namespace openoffice
+@@ -69,6 +69,8 @@ namespace org
+ }
+ }
+
++namespace oo = org::openoffice;
++
+ #ifdef DEBUG
+ # define SC_VBA_FIXME(a) OSL_TRACE( a )
+ # define SC_VBA_STUB() SC_VBA_FIXME(( "%s - stubbed\n", __FUNCTION__ ))
+Index: sc/source/ui/vba/vbarange.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbarange.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -u -p -r1.2 -r1.2.2.1
+--- sc/source/ui/vba/vbarange.cxx 25 Apr 2007 16:10:29 -0000 1.2
++++ sc/source/ui/vba/vbarange.cxx 18 May 2007 12:38:29 -0000 1.2.2.1
+@@ -487,7 +487,7 @@ CellValueSetter::processValue( const uno
+ {
+ case uno::TypeClass_BOOLEAN:
+ {
+- sal_Bool bState;
++ sal_Bool bState = sal_False;
+ if ( aValue >>= bState )
+ {
+ uno::Reference< table::XCellRange > xRange( xCell, uno::UNO_QUERY_THROW );
+@@ -2318,7 +2318,7 @@ ScVbaRange::setHidden( const uno::Any& _
+ return;
+ }
+
+- sal_Bool bHidden;
++ sal_Bool bHidden = sal_False;
+ if ( !(_hidden >>= bHidden) )
+ throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Failed to extract param for Hidden property" ) ), uno::Reference< uno::XInterface >() );
+
+Index: sc/source/ui/vba/vbaworksheets.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaworksheets.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -u -p -r1.2 -r1.2.2.1
+--- sc/source/ui/vba/vbaworksheets.cxx 25 Apr 2007 16:14:08 -0000 1.2
++++ sc/source/ui/vba/vbaworksheets.cxx 17 May 2007 16:12:07 -0000 1.2.2.1
+@@ -227,7 +227,7 @@ ScVbaWorksheets::getVisible() throw (uno
+ void SAL_CALL
+ ScVbaWorksheets::setVisible( const uno::Any& _visible ) throw (uno::RuntimeException)
+ {
+- sal_Bool bState;
++ sal_Bool bState = sal_False;
+ if ( _visible >>= bState )
+ {
+ uno::Reference< container::XEnumeration > xEnum( createEnumeration(), uno::UNO_QUERY_THROW );
+cvs diff: Diffing sc/source/ui/view
+cvs diff: Diffing sc/uiconfig
+cvs diff: Diffing sc/uiconfig/scalc
+cvs diff: Diffing sc/uiconfig/scalc/accelerator
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/de
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/en-GB
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/en-US
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/es
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/fr
+cvs diff: Diffing sc/uiconfig/scalc/menubar
+cvs diff: Diffing sc/uiconfig/scalc/statusbar
+cvs diff: Diffing sc/uiconfig/scalc/toolbar
+cvs diff: Diffing sc/util
+Index: sc/util/makefile.mk
+===================================================================
+RCS file: /cvs/sc/sc/util/makefile.mk,v
+retrieving revision 1.39
+retrieving revision 1.39.2.1
+diff -u -p -r1.39 -r1.39.2.1
+--- sc/util/makefile.mk 25 Apr 2007 16:15:20 -0000 1.39
++++ sc/util/makefile.mk 3 May 2007 09:00:47 -0000 1.39.2.1
+@@ -278,6 +278,7 @@ DEF9NAME=$(SHL9TARGET)
+
+ SHL9STDLIBS= \
+ $(CPPUHELPERLIB) \
++ $(VCLLIB) \
+ $(CPPULIB) \
+ $(COMPHELPERLIB) \
+ $(SVLIB) \
+@@ -294,6 +295,12 @@ SHL9STDLIBS= \
+ SHL9DEPN=$(SHL1TARGETN) $(SHL8TARGETN)
+ SHL9LIBS=$(SLB)$/$(TARGET_VBA).lib
+
++.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC"
++ LIBCOMPNAME=$(LOCAL_COMMON_OUT)$/lib/lib$(SHL9TARGET)$(DLLPOST)
++.ELSE
++ LIBCOMPNAME=$(COMMONBIN)$/$(SHL9TARGET)$(DLLPOST)
++.ENDIF
++
+ .ENDIF
+
+
+cvs diff: Diffing sc/util/defs
+cvs diff: Diffing sc/workben
+cvs diff: Diffing sc/xml
+cvs diff: Diffing svx
+cvs diff: Diffing svx/doc
+cvs diff: Diffing svx/doc/UML
+cvs diff: Diffing svx/inc
+cvs diff: Diffing svx/inc/pch
+cvs diff: Diffing svx/inc/svx
+cvs diff: Diffing svx/inc/svx/sdr
+cvs diff: Diffing svx/inc/svx/sdr/animation
+cvs diff: Diffing svx/inc/svx/sdr/contact
+cvs diff: Diffing svx/inc/svx/sdr/event
+cvs diff: Diffing svx/inc/svx/sdr/mixer
+cvs diff: Diffing svx/inc/svx/sdr/overlay
+cvs diff: Diffing svx/inc/svx/sdr/properties
+cvs diff: Diffing svx/prj
+cvs diff: Diffing svx/qa
+cvs diff: Diffing svx/qa/unoapi
+cvs diff: Diffing svx/qa/unoapi/testdocuments
+cvs diff: Diffing svx/res
+cvs diff: Diffing svx/sdi
+cvs diff: Diffing svx/source
+cvs diff: Diffing svx/source/accessibility
+cvs diff: Diffing svx/source/customshapes
+cvs diff: Diffing svx/source/dialog
+cvs diff: Diffing svx/source/editeng
+cvs diff: Diffing svx/source/engine3d
+cvs diff: Diffing svx/source/fmcomp
+cvs diff: Diffing svx/source/form
+cvs diff: Diffing svx/source/gallery2
+cvs diff: Diffing svx/source/gengal
+cvs diff: Diffing svx/source/inc
+cvs diff: Diffing svx/source/init
+cvs diff: Diffing svx/source/intro
+cvs diff: Diffing svx/source/items
+cvs diff: Diffing svx/source/mnuctrls
+cvs diff: Diffing svx/source/msfilter
+Index: svx/source/msfilter/svxmsbas.cxx
+===================================================================
+RCS file: /cvs/graphics/svx/source/msfilter/svxmsbas.cxx,v
+retrieving revision 1.20
+retrieving revision 1.20.4.1
+diff -u -p -r1.20 -r1.20.4.1
+--- svx/source/msfilter/svxmsbas.cxx 25 Apr 2007 16:18:00 -0000 1.20
++++ svx/source/msfilter/svxmsbas.cxx 2 May 2007 09:16:56 -0000 1.20.4.1
+@@ -368,8 +368,14 @@ BOOL SvxImportMSVBasic::ImportCode_Impl(
+ break;
+ }
+ static ::rtl::OUString sVBAOption( RTL_CONSTASCII_USTRINGPARAM( "Option VBASupport 1\n" ) );
++ static ::rtl::OUString sClassOption( RTL_CONSTASCII_USTRINGPARAM( "Option ClassModule\n" ) );
+ if ( !bAsComment )
++ {
+ modeTypeComment = modeTypeComment + sVBAOption;
++ if ( mType == Class )
++ modeTypeComment = modeTypeComment + sClassOption;
++
++ }
+
+ String sModule(sBasicModule); //#i52606# no need to split Macros in 64KB blocks any more!
+ String sTemp;
+cvs diff: Diffing svx/source/options
+cvs diff: Diffing svx/source/outliner
+cvs diff: Diffing svx/source/sdr
+cvs diff: Diffing svx/source/sdr/animation
+cvs diff: Diffing svx/source/sdr/contact
+cvs diff: Diffing svx/source/sdr/event
+cvs diff: Diffing svx/source/sdr/mixer
+cvs diff: Diffing svx/source/sdr/overlay
+cvs diff: Diffing svx/source/sdr/properties
+cvs diff: Diffing svx/source/src
+cvs diff: Diffing svx/source/stbctrls
+cvs diff: Diffing svx/source/svdraw
+cvs diff: Diffing svx/source/svrtf
+cvs diff: Diffing svx/source/svxlink
+cvs diff: Diffing svx/source/tbxctrls
+cvs diff: Diffing svx/source/toolbars
+cvs diff: Diffing svx/source/unodialogs
+cvs diff: Diffing svx/source/unodialogs/inc
+cvs diff: Diffing svx/source/unodialogs/textconversiondlgs
+cvs diff: Diffing svx/source/unodraw
+cvs diff: Diffing svx/source/unoedit
+cvs diff: Diffing svx/source/unogallery
+cvs diff: Diffing svx/source/xml
+cvs diff: Diffing svx/source/xoutdev
+cvs diff: Diffing svx/uiconfig
+cvs diff: Diffing svx/uiconfig/accelerator
+cvs diff: Diffing svx/uiconfig/accelerator/en-US
+cvs diff: Diffing svx/uiconfig/accelerator/es
+cvs diff: Diffing svx/util
+cvs diff: Diffing svx/util/defs
+cvs diff: Diffing svx/workben
+cvs diff: Diffing svx/workben/msview
+cvs diff: Diffing svx/xml
+cvs diff: Diffing scp2
+cvs diff: Diffing scp2/inc
+cvs diff: Diffing scp2/macros
+cvs diff: Diffing scp2/prj
+cvs diff: Diffing scp2/source
+cvs diff: Diffing scp2/source/activex
+cvs diff: Diffing scp2/source/base
+cvs diff: Diffing scp2/source/calc
+cvs diff: Diffing scp2/source/canvas
+cvs diff: Diffing scp2/source/crashrep
+cvs diff: Diffing scp2/source/draw
+cvs diff: Diffing scp2/source/gnome
+cvs diff: Diffing scp2/source/graphicfilter
+cvs diff: Diffing scp2/source/impress
+cvs diff: Diffing scp2/source/javafilter
+cvs diff: Diffing scp2/source/kde
+cvs diff: Diffing scp2/source/lingu
+cvs diff: Diffing scp2/source/math
+cvs diff: Diffing scp2/source/onlineupdate
+cvs diff: Diffing scp2/source/ooo
+Index: scp2/source/ooo/file_ooo.scp
+===================================================================
+RCS file: /cvs/installation/scp2/source/ooo/file_ooo.scp,v
+retrieving revision 1.188
+retrieving revision 1.188.2.1
+diff -u -p -r1.188 -r1.188.2.1
+--- scp2/source/ooo/file_ooo.scp 25 Apr 2007 16:18:52 -0000 1.188
++++ scp2/source/ooo/file_ooo.scp 3 May 2007 11:09:39 -0000 1.188.2.1
+@@ -1830,6 +1830,13 @@ File gid_File_Rdb_TypesVba
+ Styles = (PACKED, OVERWRITE, PATCH);
+ Name = "oovbaapi.rdb";
+ End
++#else
++File gid_File_ExtnVba
++ TXT_FILE_BODY;
++ Dir = gid_Dir_Program;
++ Styles = (PACKED, OVERWRITE, PATCH);
++ Name = "vbaapi.oxt";
++End
+ #endif
+ #endif
+
+cvs diff: Diffing scp2/source/python
+cvs diff: Diffing scp2/source/quickstart
+cvs diff: Diffing scp2/source/sdkoo
+cvs diff: Diffing scp2/source/testtool
+cvs diff: Diffing scp2/source/ure
+cvs diff: Diffing scp2/source/winexplorerext
+cvs diff: Diffing scp2/source/writer
+cvs diff: Diffing scp2/source/xsltfilter
+cvs diff: Diffing scp2/util
diff --git a/editors/openoffice-3-devel/files/patch-i65462 b/editors/openoffice-3-devel/files/patch-i65462
deleted file mode 100644
index 34a8a569562a..000000000000
--- a/editors/openoffice-3-devel/files/patch-i65462
+++ /dev/null
@@ -1,24 +0,0 @@
-Re-add #i64906# workaround. The root cause of the crash is #i65462#.
-Also see #i65004# for more information.
-
---- sal/osl/unx/security.c 14 Mar 2007 08:28:11 -0000 1.24
-+++ sal/osl/unx/security.c 6 Apr 2007 05:59:15 -0000
-@@ -76,6 +76,10 @@
- static sal_Bool SAL_CALL osl_psz_getConfigDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax);
-
- static oslSecurityImpl * newSecurityImpl(size_t * bufSize) {
-+#if defined (MACOSX) || defined (FREEBSD)
-+ /* #i64906#: sysconf(_SC_GETPW_R_SIZE_MAX) returns -1 on Mac OS X and FreeBSD */
-+ size_t n = 1024;
-+#else
- long m;
- size_t n;
- errno = 0;
-@@ -95,6 +99,7 @@
- OSL_ASSERT(m >= 0 && (unsigned long) m < SIZE_MAX);
- n = (size_t) m;
- }
-+#endif
- if (n <= SIZE_MAX - offsetof(oslSecurityImpl, m_buffer)) {
- *bufSize = n;
- n += offsetof(oslSecurityImpl, m_buffer);
diff --git a/editors/openoffice-3-devel/files/patch-i75708 b/editors/openoffice-3-devel/files/patch-i75708
deleted file mode 100644
index 1fc8565c4fd4..000000000000
--- a/editors/openoffice-3-devel/files/patch-i75708
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: basctl/source/basicide/scriptdocument.cxx
-===================================================================
-RCS file: /cvs/script/basctl/source/basicide/scriptdocument.cxx,v
-retrieving revision 1.2
-diff -u -r1.2 scriptdocument.cxx
---- basctl/source/basicide/scriptdocument.cxx 15 Mar 2007 15:59:30 -0000 1.2
-+++ basctl/source/basicide/scriptdocument.cxx 25 Mar 2007 21:09:03 -0000
-@@ -921,7 +921,7 @@
- //--------------------------------------------------------------------
- sal_Int32 ScriptDocument::hashCode() const
- {
-- return reinterpret_cast< sal_Int32 >( m_pImpl->getObjectShell() );
-+ return reinterpret_cast< sal_IntPtr >( m_pImpl->getObjectShell() );
- }
-
- //--------------------------------------------------------------------
diff --git a/editors/openoffice-3-devel/files/patch-i76141 b/editors/openoffice-3-devel/files/patch-i76141
index 1698b377a94f..6b1bfcaf860b 100644
--- a/editors/openoffice-3-devel/files/patch-i76141
+++ b/editors/openoffice-3-devel/files/patch-i76141
@@ -316,6 +316,181 @@
--- misc/build/libwpd-0.8.8/src/lib/WP1Part.cpp 2007-01-13 00:18:52.000000000 +0100
***************
+--- libxml2/libxml2-2.6.17.patch 26 Mar 2007 12:25:19 -0000 1.5
++++ libxml2/libxml2-2.6.17.patch 3 May 2007 17:31:33 -0000
+@@ -34,6 +34,74 @@
+ fi
+ echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+ ***************
++*** 8547,8553 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 8547,8553 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
++*** 12266,12272 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 12266,12272 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
++*** 15436,15442 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 15436,15442 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
++*** 17804,17810 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 17804,17810 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 26339,26347 ****
+
+ echo "$as_me:$LINENO: checking for setsockopt" >&5
+--- libxmlsec/xmlsec1-1.2.6.patch 27 Mar 2007 09:36:38 -0000 1.19
++++ libxmlsec/xmlsec1-1.2.6.patch 3 May 2007 18:12:52 -0000
+@@ -158,6 +158,23 @@
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ ***************
++*** 7778,7784 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 7779,7785 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 9046,9052 ****
+ ;;
+ esac
+@@ -215,6 +232,23 @@
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+ ***************
++*** 11497,11503 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 11498,11504 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 13259,13269 ****
+ lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
+ ;;
+@@ -257,6 +291,23 @@
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ ***************
++*** 14667,14673 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 14668,14674 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 15607,15617 ****
+ lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
+ ;;
+@@ -316,6 +367,23 @@
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ ***************
++*** 17035,17041 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 17036,17042 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 24598,24604 ****
+ fi
+
--- moz/mozilla-source-1.7.5.patch.orig Fri Apr 27 15:23:29 2007
+++ moz/mozilla-source-1.7.5.patch Fri Apr 27 15:32:07 2007
@@ -266,6 +266,23 @@
@@ -540,31 +715,6 @@
***************
*** 1 ****
! dummy
---- sablot/Sablot-0.52.patch 19 Jun 2006 17:27:11 -0000 1.20
-+++ sablot/Sablot-0.52.patch 5 Apr 2007 00:24:32 -0000
-@@ -632,3 +632,22 @@
- };
- return cnt;
- }
-+*** misc/Sablot-0.52/tools/ltconfig Fri Apr 13 05:50:59 2001
-+--- misc/build/Sablot-0.52/tools/ltconfig Wed Apr 4 20:22:37 2007
-+***************
-+*** 1887,1893 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case "$version_type" in
-+ freebsd-elf*)
-+--- 1887,1893 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case "$version_type" in
-+ freebsd-elf*)
--- sndfile/libsndfile-1.0.9.patch 3 Feb 2006 17:31:46 -0000 1.3
+++ sndfile/libsndfile-1.0.9.patch 5 Apr 2007 00:31:26 -0000
@@ -83,6 +83,23 @@
@@ -708,611 +858,3 @@
diff -uprN misc/vigra1.4.0/include/vigra/array_vector.hxx misc/build/vigra1.4.0/include/vigra/array_vector.hxx
--- misc/vigra1.4.0/include/vigra/array_vector.hxx 2005-12-21 05:53:30.000000000 +0100
+++ misc/build/vigra1.4.0/include/vigra/array_vector.hxx 2006-08-31 12:08:15.172679000 +0200
-
-
-Index: libxmlsec/xmlsec1-1.2.6.patch
-===================================================================
-RCS file: /cvs/external/libxmlsec/xmlsec1-1.2.6.patch,v
-retrieving revision 1.19
-diff -u -r1.19 xmlsec1-1.2.6.patch
---- libxmlsec/xmlsec1-1.2.6.patch 27 Mar 2007 09:36:38 -0000 1.19
-+++ libxmlsec/xmlsec1-1.2.6.patch 28 Apr 2007 23:12:51 -0000
-@@ -1,5 +1,5 @@
--*** misc/xmlsec1-1.2.6/apps/Makefile.in Thu Aug 26 08:00:30 2004
----- misc/build/xmlsec1-1.2.6/apps/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/apps/Makefile.in Thu Aug 26 15:00:30 2004
-+--- misc/build/xmlsec1-1.2.6/apps/Makefile.in Sun Apr 29 08:10:05 2007
- ***************
- *** 370,376 ****
- $(CRYPTO_DEPS) \
-@@ -17,8 +17,8 @@
-
- .SUFFIXES:
- .SUFFIXES: .c .lo .o .obj
--*** misc/xmlsec1-1.2.6/configure Thu Aug 26 08:00:34 2004
----- misc/build/xmlsec1-1.2.6/configure Tue Mar 27 11:26:19 2007
-+*** misc/xmlsec1-1.2.6/configure Thu Aug 26 15:00:34 2004
-+--- misc/build/xmlsec1-1.2.6/configure Sun Apr 29 08:10:06 2007
- ***************
- *** 463,469 ****
- # include <unistd.h>
-@@ -158,6 +158,23 @@
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- ***************
-+*** 7778,7784 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+--- 7779,7785 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+***************
- *** 9046,9052 ****
- ;;
- esac
-@@ -215,6 +232,23 @@
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
- ***************
-+*** 11497,11503 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+--- 11498,11504 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+***************
- *** 13259,13269 ****
- lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
- ;;
-@@ -257,6 +291,23 @@
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- ***************
-+*** 14667,14673 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+--- 14668,14674 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+***************
- *** 15607,15617 ****
- lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
- ;;
-@@ -316,6 +367,23 @@
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- ***************
-+*** 17035,17041 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+--- 17036,17042 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+***************
- *** 24598,24604 ****
- fi
-
-@@ -2379,8 +2447,8 @@
- s,@XMLSEC_NO_SHA1_TRUE@,$XMLSEC_NO_SHA1_TRUE,;t t
- s,@XMLSEC_NO_SHA1_FALSE@,$XMLSEC_NO_SHA1_FALSE,;t t
- s,@XMLSEC_NO_SHA1@,$XMLSEC_NO_SHA1,;t t
--*** misc/xmlsec1-1.2.6/configure.in Thu Aug 26 04:49:24 2004
----- misc/build/xmlsec1-1.2.6/configure.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/configure.in Thu Aug 26 11:49:24 2004
-+--- misc/build/xmlsec1-1.2.6/configure.in Sun Apr 29 08:10:06 2007
- ***************
- *** 143,149 ****
- dnl find libxml
-@@ -2496,8 +2564,8 @@
- dnl do not add -L/usr/lib because compiler does it anyway
- if test "z$dir" = "z/usr/lib" ; then
- NSS_LIBS="$NSS_LIBS_LIST"
--*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/Makefile.in Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/Makefile.in Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/Makefile.in Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -2560,8 +2628,8 @@
- ! # Tell versions [3.59,3.63) of GNU make to not export all variables.
- ! # Otherwise a system limit (for SysV at least) may be exceeded.
- ! .NOEXPORT:
--*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/akmngr.h Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/akmngr.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/akmngr.h Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/akmngr.h Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -2637,8 +2705,8 @@
- ! #endif /* __XMLSEC_MSCRYPTO_AKMNGR_H__ */
- !
- !
--*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/x509.h Fri Sep 26 08:12:46 2003
----- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/x509.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/x509.h Fri Sep 26 15:12:46 2003
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/x509.h Sun Apr 29 08:10:06 2007
- ***************
- *** 77,82 ****
- --- 77,97 ----
-@@ -2663,8 +2731,8 @@
-
- #endif /* XMLSEC_NO_X509 */
-
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.am Wed Jul 30 04:46:35 2003
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.am Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.am Wed Jul 30 11:46:35 2003
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.am Sun Apr 29 08:10:06 2007
- ***************
- *** 3,8 ****
- --- 3,9 ----
-@@ -2686,8 +2754,8 @@
- $(NULL)
-
- install-exec-hook:
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.in Thu Aug 26 08:00:31 2004
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.in Thu Aug 26 15:00:31 2004
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.in Sun Apr 29 08:10:06 2007
- ***************
- *** 273,278 ****
- --- 273,279 ----
-@@ -2709,8 +2777,8 @@
- $(NULL)
-
- all: all-am
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/akmngr.h Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/akmngr.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/akmngr.h Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/akmngr.h Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -2771,8 +2839,8 @@
- ! #endif /* __XMLSEC_NSS_AKMNGR_H__ */
- !
- !
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/app.h Mon Jan 12 22:06:14 2004
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/app.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/app.h Tue Jan 13 06:06:14 2004
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/app.h Sun Apr 29 08:10:06 2007
- ***************
- *** 22,27 ****
- --- 22,30 ----
-@@ -2796,8 +2864,8 @@
- XMLSEC_CRYPTO_EXPORT int xmlSecNssAppDefaultKeysMngrLoad (xmlSecKeysMngrPtr mngr,
- const char* uri);
- XMLSEC_CRYPTO_EXPORT int xmlSecNssAppDefaultKeysMngrSave (xmlSecKeysMngrPtr mngr,
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/ciphers.h Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/ciphers.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/ciphers.h Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/ciphers.h Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -2837,8 +2905,8 @@
- ! #endif /* __XMLSEC_NSS_CIPHERS_H__ */
- !
- !
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/crypto.h Mon Jan 12 22:06:14 2004
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/crypto.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/crypto.h Tue Jan 13 06:06:14 2004
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/crypto.h Sun Apr 29 08:10:06 2007
- ***************
- *** 264,269 ****
- --- 264,278 ----
-@@ -2857,8 +2925,8 @@
- #endif /* XMLSEC_NO_RSA */
-
-
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/keysstore.h Wed Jul 30 04:46:35 2003
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/keysstore.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/keysstore.h Wed Jul 30 11:46:35 2003
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/keysstore.h Sun Apr 29 08:10:06 2007
- ***************
- *** 16,21 ****
- --- 16,23 ----
-@@ -2881,8 +2949,8 @@
- XMLSEC_CRYPTO_EXPORT int xmlSecNssKeysStoreLoad (xmlSecKeyStorePtr store,
- const char *uri,
- xmlSecKeysMngrPtr keysMngr);
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/tokens.h Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/tokens.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/tokens.h Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/tokens.h Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -3069,8 +3137,8 @@
- !
- ! #endif /* __XMLSEC_NSS_TOKENS_H__ */
- !
--*** misc/xmlsec1-1.2.6/libxml2-config Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/libxml2-config Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/libxml2-config Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/libxml2-config Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -3123,8 +3191,8 @@
- ! done
- !
- ! exit 0
--*** misc/xmlsec1-1.2.6/ltmain.sh Thu Aug 26 08:00:15 2004
----- misc/build/xmlsec1-1.2.6/ltmain.sh Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/ltmain.sh Thu Aug 26 15:00:15 2004
-+--- misc/build/xmlsec1-1.2.6/ltmain.sh Sun Apr 29 08:10:06 2007
- ***************
- *** 1661,1666 ****
- --- 1661,1671 ----
-@@ -3199,8 +3267,8 @@
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
--*** misc/xmlsec1-1.2.6/src/bn.c Mon Jun 21 20:33:27 2004
----- misc/build/xmlsec1-1.2.6/src/bn.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/bn.c Tue Jun 22 03:33:27 2004
-+--- misc/build/xmlsec1-1.2.6/src/bn.c Sun Apr 29 08:10:06 2007
- ***************
- *** 170,177 ****
- */
-@@ -3766,8 +3834,8 @@
- }
-
- return(0);
--*** misc/xmlsec1-1.2.6/src/dl.c Wed Oct 29 16:57:20 2003
----- misc/build/xmlsec1-1.2.6/src/dl.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/dl.c Thu Oct 30 00:57:20 2003
-+--- misc/build/xmlsec1-1.2.6/src/dl.c Sun Apr 29 08:10:06 2007
- ***************
- *** 329,334 ****
- --- 329,338 ----
-@@ -3793,8 +3861,8 @@
- }
-
- --- 354,359 ----
--*** misc/xmlsec1-1.2.6/src/mscrypto/Makefile.in Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/mscrypto/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/Makefile.in Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/Makefile.in Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -3977,8 +4045,8 @@
- ! # Tell versions [3.59,3.63) of GNU make to not export all variables.
- ! # Otherwise a system limit (for SysV at least) may be exceeded.
- ! .NOEXPORT:
--*** misc/xmlsec1-1.2.6/src/mscrypto/akmngr.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/mscrypto/akmngr.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/akmngr.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/akmngr.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -4218,8 +4286,8 @@
- ! return( 0 ) ;
- ! }
- !
--*** misc/xmlsec1-1.2.6/src/mscrypto/certkeys.c Wed Mar 17 06:06:43 2004
----- misc/build/xmlsec1-1.2.6/src/mscrypto/certkeys.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/certkeys.c Wed Mar 17 14:06:43 2004
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/certkeys.c Sun Apr 29 08:10:06 2007
- ***************
- *** 41,46 ****
- --- 41,47 ----
-@@ -4896,8 +4964,8 @@
- }
-
- static xmlSecKeyDataType
--*** misc/xmlsec1-1.2.6/src/mscrypto/ciphers.c Fri Sep 26 08:12:51 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/ciphers.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/ciphers.c Fri Sep 26 15:12:51 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/ciphers.c Sun Apr 29 08:10:06 2007
- ***************
- *** 785,791 ****
- * AES CBC cipher transforms
-@@ -4966,8 +5034,8 @@
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* size_t klassSize */
- xmlSecMSCryptoBlockCipherSize, /* size_t objSize */
--*** misc/xmlsec1-1.2.6/src/mscrypto/crypto.c Wed Nov 12 03:38:51 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/crypto.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/crypto.c Wed Nov 12 11:38:51 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/crypto.c Sun Apr 29 08:10:06 2007
- ***************
- *** 330,342 ****
- BYTE*
-@@ -4999,8 +5067,8 @@
- return(NULL);
- }
-
--*** misc/xmlsec1-1.2.6/src/mscrypto/digests.c Tue Sep 30 04:09:51 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/digests.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/digests.c Tue Sep 30 11:09:51 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/digests.c Sun Apr 29 08:10:06 2007
- ***************
- *** 96,107 ****
-
-@@ -5031,8 +5099,8 @@
- }
-
- return(0);
--*** misc/xmlsec1-1.2.6/src/mscrypto/kt_rsa.c Fri Sep 26 22:29:25 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/kt_rsa.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/kt_rsa.c Sat Sep 27 05:29:25 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/kt_rsa.c Sun Apr 29 08:10:06 2007
- ***************
- *** 66,72 ****
- static int xmlSecMSCryptoRsaPkcs1Process (xmlSecTransformPtr transform,
-@@ -5050,8 +5118,8 @@
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecMSCryptoRsaPkcs1Size, /* xmlSecSize objSize */
--*** misc/xmlsec1-1.2.6/src/mscrypto/signatures.c Fri Sep 26 22:29:25 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/signatures.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/signatures.c Sat Sep 27 05:29:25 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/signatures.c Sun Apr 29 08:10:06 2007
- ***************
- *** 483,489 ****
- * RSA-SHA1 signature transform
-@@ -5086,8 +5154,8 @@
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecMSCryptoSignatureSize, /* xmlSecSize objSize */
--*** misc/xmlsec1-1.2.6/src/mscrypto/symkeys.c Fri Sep 26 02:58:13 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/symkeys.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/symkeys.c Fri Sep 26 09:58:13 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/symkeys.c Sun Apr 29 08:10:06 2007
- ***************
- *** 72,78 ****
- * <xmlsec:AESKeyValue> processing
-@@ -5122,8 +5190,8 @@
- sizeof(xmlSecKeyDataKlass),
- xmlSecKeyDataBinarySize,
-
--*** misc/xmlsec1-1.2.6/src/mscrypto/x509.c Fri Sep 26 02:58:13 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/x509.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/x509.c Fri Sep 26 09:58:13 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/x509.c Sun Apr 29 08:10:06 2007
- ***************
- *** 240,246 ****
-
-@@ -5369,8 +5437,8 @@
- sizeof(xmlSecKeyDataKlass),
- sizeof(xmlSecKeyData),
-
--*** misc/xmlsec1-1.2.6/src/mscrypto/x509vfy.c Sat Sep 27 05:12:22 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/x509vfy.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/x509vfy.c Sat Sep 27 12:12:22 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/x509vfy.c Sun Apr 29 08:10:06 2007
- ***************
- *** 70,76 ****
- static xmlSecByte * xmlSecMSCryptoX509NameRead (xmlSecByte *str,
-@@ -6115,8 +6183,8 @@
- }
- }
- xmlFree(cName);
--*** misc/xmlsec1-1.2.6/src/nss/Makefile.am Tue Sep 16 11:43:03 2003
----- misc/build/xmlsec1-1.2.6/src/nss/Makefile.am Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/Makefile.am Tue Sep 16 18:43:03 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/Makefile.am Sun Apr 29 08:10:06 2007
- ***************
- *** 20,40 ****
- $(NULL)
-@@ -6163,8 +6231,8 @@
- $(NULL)
-
- libxmlsec1_nss_la_LIBADD = \
--*** misc/xmlsec1-1.2.6/src/nss/Makefile.in Thu Aug 26 08:00:32 2004
----- misc/build/xmlsec1-1.2.6/src/nss/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/Makefile.in Thu Aug 26 15:00:32 2004
-+--- misc/build/xmlsec1-1.2.6/src/nss/Makefile.in Sun Apr 29 08:10:06 2007
- ***************
- *** 54,62 ****
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-@@ -6288,8 +6356,8 @@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pkikeys.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signatures.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symkeys.Plo@am__quote@
--*** misc/xmlsec1-1.2.6/src/nss/akmngr.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/nss/akmngr.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/akmngr.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/nss/akmngr.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -6678,8 +6746,8 @@
- ! return(0) ;
- ! }
- !
--*** misc/xmlsec1-1.2.6/src/nss/ciphers.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/ciphers.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/ciphers.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/ciphers.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1,838 ****
- ! /**
-@@ -8472,8 +8540,8 @@
- }
- !
-
--*** misc/xmlsec1-1.2.6/src/nss/crypto.c Wed Oct 29 16:57:25 2003
----- misc/build/xmlsec1-1.2.6/src/nss/crypto.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/crypto.c Thu Oct 30 00:57:25 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/crypto.c Sun Apr 29 08:10:06 2007
- ***************
- *** 130,135 ****
- --- 130,136 ----
-@@ -8526,8 +8594,8 @@
-
- return(gXmlSecNssFunctions);
- }
--*** misc/xmlsec1-1.2.6/src/nss/digests.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/digests.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/digests.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/digests.c Sun Apr 29 08:10:06 2007
- ***************
- *** 21,27 ****
- #include <xmlsec/transforms.h>
-@@ -8623,8 +8691,8 @@
- return(-1);
- }
- xmlSecAssert2(ctx->dgstSize > 0, -1);
--*** misc/xmlsec1-1.2.6/src/nss/hmac.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/hmac.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/hmac.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/hmac.c Sun Apr 29 08:10:06 2007
- ***************
- *** 23,30 ****
- #include <xmlsec/transforms.h>
-@@ -8758,8 +8826,8 @@
- return(-1);
- }
- xmlSecAssert2(dgstSize > 0, -1);
--*** misc/xmlsec1-1.2.6/src/nss/keysstore.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/keysstore.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/keysstore.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/keysstore.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1,119 ****
- /**
-@@ -9826,8 +9894,8 @@
- ! return(0);
- }
- +
--*** misc/xmlsec1-1.2.6/src/nss/keytrans.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/nss/keytrans.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/keytrans.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/nss/keytrans.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -10576,8 +10644,8 @@
- !
- ! #endif /* XMLSEC_NO_RSA */
- !
--*** misc/xmlsec1-1.2.6/src/nss/keywrapers.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/nss/keywrapers.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/keywrapers.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/nss/keywrapers.c Sun Apr 29 08:10:07 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -11779,8 +11847,8 @@
- !
- ! #endif /* XMLSEC_NO_DES */
- !
--*** misc/xmlsec1-1.2.6/src/nss/pkikeys.c Wed Mar 17 06:06:45 2004
----- misc/build/xmlsec1-1.2.6/src/nss/pkikeys.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/pkikeys.c Wed Mar 17 14:06:45 2004
-+--- misc/build/xmlsec1-1.2.6/src/nss/pkikeys.c Sun Apr 29 08:10:07 2007
- ***************
- *** 5,10 ****
- --- 5,11 ----
-@@ -12579,8 +12647,8 @@
-
- return(8 * SECKEY_PublicKeyStrength(ctx->pubkey));
- }
--*** misc/xmlsec1-1.2.6/src/nss/signatures.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/signatures.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/signatures.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/signatures.c Sun Apr 29 08:10:07 2007
- ***************
- *** 199,205 ****
- xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
-@@ -12717,8 +12785,8 @@
- return(-1);
- }
-
--*** misc/xmlsec1-1.2.6/src/nss/symkeys.c Mon Jul 21 05:12:52 2003
----- misc/build/xmlsec1-1.2.6/src/nss/symkeys.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/symkeys.c Mon Jul 21 12:12:52 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/symkeys.c Sun Apr 29 08:10:07 2007
- ***************
- *** 15,192 ****
- #include <stdio.h>
-@@ -14049,8 +14117,8 @@
- *
- * Sets the value of HMAC key data.
- *
--*** misc/xmlsec1-1.2.6/src/nss/tokens.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/nss/tokens.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/tokens.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/nss/tokens.c Sun Apr 29 08:10:07 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -14599,8 +14667,8 @@
- ! return(0);
- ! }
- !
--*** misc/xmlsec1-1.2.6/src/nss/x509.c Fri Sep 26 05:53:09 2003
----- misc/build/xmlsec1-1.2.6/src/nss/x509.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/x509.c Fri Sep 26 12:53:09 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/x509.c Sun Apr 29 08:10:07 2007
- ***************
- *** 34,40 ****
- #include <xmlsec/keys.h>
-@@ -15708,8 +15776,8 @@
- static void
- xmlSecNssX509CertDebugDump(CERTCertificate* cert, FILE* output) {
- --- 1700,1705 ----
--*** misc/xmlsec1-1.2.6/src/nss/x509vfy.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/x509vfy.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/x509vfy.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/x509vfy.c Sun Apr 29 08:10:07 2007
- ***************
- *** 30,35 ****
- --- 30,36 ----
-@@ -16851,8 +16919,8 @@
-
- + #endif /* XMLSEC_NO_X509 */
-
--*** misc/xmlsec1-1.2.6/win32/Makefile.msvc Wed Jun 9 16:35:12 2004
----- misc/build/xmlsec1-1.2.6/win32/Makefile.msvc Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/win32/Makefile.msvc Wed Jun 9 23:35:12 2004
-+--- misc/build/xmlsec1-1.2.6/win32/Makefile.msvc Sun Apr 29 08:10:07 2007
- ***************
- *** 223,228 ****
- --- 223,232 ----
diff --git a/editors/openoffice-3-devel/files/patch-i76320 b/editors/openoffice-3-devel/files/patch-i76320
deleted file mode 100644
index bd4639171dde..000000000000
--- a/editors/openoffice-3-devel/files/patch-i76320
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: sd/source/ui/inc/tools/ConfigurationAccess.hxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/inc/tools/ConfigurationAccess.hxx,v
-retrieving revision 1.2.8.1
-retrieving revision 1.2
-diff -u -r1.2.8.1 -r1.2
---- sd/source/ui/inc/tools/ConfigurationAccess.hxx 12 Apr 2007 20:30:02 -0000 1.2.8.1
-+++ sd/source/ui/inc/tools/ConfigurationAccess.hxx 3 Apr 2007 16:14:52 -0000 1.2
-@@ -110,7 +110,7 @@
- @param rList
- The list to be filled.
- */
-- static void FillList(
-+ static void ConfigurationAccess::FillList(
- const com::sun::star::uno::Reference<com::sun::star::container::XNameAccess>& rxContainer,
- const ::rtl::OUString& rsArgument,
- ::std::vector<rtl::OUString>& rList);
diff --git a/editors/openoffice-3-devel/files/patch-i76968 b/editors/openoffice-3-devel/files/patch-i76968
new file mode 100644
index 000000000000..8bf3e43d703d
--- /dev/null
+++ b/editors/openoffice-3-devel/files/patch-i76968
@@ -0,0 +1,642 @@
+Sync FreeBSD-specific files with CWS sixtyfour11.
+
+--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/makefile.mk Thu Jan 25 08:27:35 2007
++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/makefile.mk Wed Apr 25 10:57:20 2007
+@@ -52,11 +52,6 @@
+ CFLAGS += -DLEAK_STATIC_DATA
+ .ENDIF
+
+-NOOPTFILES= \
+- $(SLO)$/uno2cpp.obj
+-
+-
+-CFLAGSNOOPT=-O0
+
+ SLOFILES= \
+ $(SLO)$/abi.obj \
+--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx Thu May 3 21:45:19 2007
++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx Wed Apr 25 10:57:33 2007
+@@ -38,6 +38,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <rtl/alloc.h>
+
+ #include <com/sun/star/uno/genfunc.hxx>
+@@ -55,265 +56,188 @@
+ using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+
+-void dummy_can_throw_anything( char const * );
+-
+-// 6 integral parameters are passed in registers
+-const sal_uInt32 GPR_COUNT = 6;
+-
+-// 8 floating point parameters are passed in SSE registers
+-const sal_uInt32 FPR_COUNT = 8;
+-
+-static inline void
+-invoke_count_words(char * pPT, // Parameter Types
+- sal_uInt32 & nr_gpr, // Number of arguments in GPRs
+- sal_uInt32 & nr_fpr, // Number of arguments in FPRs
+- sal_uInt32 & nr_stack) // Number of arguments in stack
+-{
+- nr_gpr = 0;
+- nr_fpr = 0;
+- nr_stack = 0;
+- char c;
+-
+- while ((c = *pPT++) != 'X')
+- {
+- if (c == 'F' || c == 'D')
+- {
+- if (nr_fpr < FPR_COUNT)
+- nr_fpr++;
+- else
+- nr_stack++;
+- }
+- else
+- {
+- if (nr_gpr < GPR_COUNT)
+- nr_gpr++;
+- else
+- nr_stack++;
+- }
+- }
+-}
+-
+-static void
+-invoke_copy_to_stack(sal_uInt64 * pDS, // Stack Storage
+- char * pPT, // Parameter Types
+- sal_uInt64 * pSV, // Source Values
+- sal_uInt64 * pGPR, // General Purpose Registers
+- double * pFPR) // Floating-Point Registers
+-{
+- sal_uInt32 nr_gpr = 0;
+- sal_uInt32 nr_fpr = 0;
+- sal_uInt64 value;
+- char c;
+-
+- while ((c = *pPT++) != 'X')
+- {
+- switch (c)
+- {
+- case 'D': // Double
+- if (nr_fpr < FPR_COUNT)
+- pFPR[nr_fpr++] = *reinterpret_cast<double *>( pSV++ );
+- else
+- *pDS++ = *pSV++;
+- break;
+-
+- case 'F': // Float
+- if (nr_fpr < FPR_COUNT)
+- // The value in %xmm register is already prepared to
+- // be retrieved as a float. Therefore, we pass the
+- // value verbatim, as a double without conversion.
+- pFPR[nr_fpr++] = *reinterpret_cast<double *>( pSV++ );
+- else
+- *pDS++ = *pSV++;
+- break;
+-
+- case 'H': // 64-bit Word
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *pSV++;
+- else
+- *pDS++ = *pSV++;
+- break;
+-
+- case 'I': // 32-bit Word
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *reinterpret_cast<sal_uInt32 *>( pSV++ );
+- else
+- *pDS++ = *reinterpret_cast<sal_uInt32 *>( pSV++ );
+- break;
+-
+- case 'S': // 16-bit Word
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *reinterpret_cast<sal_uInt16 *>( pSV++ );
+- else
+- *pDS++ = *reinterpret_cast<sal_uInt16 *>( pSV++ );
+- break;
+-
+- case 'B': // Byte
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *reinterpret_cast<sal_uInt8 *>( pSV++ );
+- else
+- *pDS++ = *reinterpret_cast<sal_uInt8 *>( pSV++ );
+- break;
+-
+- default: // Default, assume 64-bit values
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *pSV++;
+- else
+- *pDS++ = *pSV++;
+- break;
+- }
+- }
+-}
+-
+ //==================================================================================================
+ static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex,
+- void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn,
+- char * pPT, sal_uInt64 * pStackLongs, sal_uInt32 nStackLongs)
+-{
+- sal_uInt32 nr_gpr, nr_fpr, nr_stack;
+- invoke_count_words(pPT, nr_gpr, nr_fpr, nr_stack);
++ void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn,
++ sal_uInt64 *pStack, sal_uInt32 nStack,
++ sal_uInt64 *pGPR, sal_uInt32 nGPR,
++ double *pFPR, sal_uInt32 nFPR) __attribute__((noinline));
+
+- // Stack, if used, must be 16-bytes aligned
+- if (nr_stack)
+- nr_stack = (nr_stack + 1) & ~1;
+-
++static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex,
++ void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn,
++ sal_uInt64 *pStack, sal_uInt32 nStack,
++ sal_uInt64 *pGPR, sal_uInt32 nGPR,
++ double *pFPR, sal_uInt32 nFPR)
++{
+ #if OSL_DEBUG_LEVEL > 1
+- // Let's figure out what is really going on here
+- fprintf(stderr,"callVirtualMethod() parameters string is %s\n", pPT);
+- {
+- sal_uInt32 k = nStackLongs;
+- sal_uInt64 *q = pStackLongs;
+- while (k > 0)
+- {
+- fprintf(stderr, "uno stack is: %lx\n", *q);
+- k--;
+- q++;
+- }
+- }
+-#endif
+-
+- // Load parameters to stack, if necessary
+- sal_uInt64 *stack = (sal_uInt64 *) __builtin_alloca(nr_stack * 8);
+- sal_uInt64 gpregs[GPR_COUNT];
+- double fpregs[FPR_COUNT];
+- invoke_copy_to_stack(stack, pPT, pStackLongs, gpregs, fpregs);
+-
+- // Load FPR registers from fpregs[]
+- register double d0 asm("xmm0");
+- register double d1 asm("xmm1");
+- register double d2 asm("xmm2");
+- register double d3 asm("xmm3");
+- register double d4 asm("xmm4");
+- register double d5 asm("xmm5");
+- register double d6 asm("xmm6");
+- register double d7 asm("xmm7");
+-
+- switch (nr_fpr) {
+-#define ARG_FPR(N) \
+- case N+1: d##N = fpregs[N];
+- ARG_FPR(7);
+- ARG_FPR(6);
+- ARG_FPR(5);
+- ARG_FPR(4);
+- ARG_FPR(3);
+- ARG_FPR(2);
+- ARG_FPR(1);
+- ARG_FPR(0);
+- case 0:;
+-#undef ARG_FPR
+- }
+-
+- // Load GPR registers from gpregs[]
+- register sal_uInt64 a0 asm("rdi");
+- register sal_uInt64 a1 asm("rsi");
+- register sal_uInt64 a2 asm("rdx");
+- register sal_uInt64 a3 asm("rcx");
+- register sal_uInt64 a4 asm("r8");
+- register sal_uInt64 a5 asm("r9");
+-
+- switch (nr_gpr) {
+-#define ARG_GPR(N) \
+- case N+1: a##N = gpregs[N];
+- ARG_GPR(5);
+- ARG_GPR(4);
+- ARG_GPR(3);
+- ARG_GPR(2);
+- ARG_GPR(1);
+- ARG_GPR(0);
+- case 0:;
+-#undef ARG_GPR
++ // Let's figure out what is really going on here
++ {
++ fprintf( stderr, "= callVirtualMethod() =\nGPR's (%d): ", nGPR );
++ for ( int i = 0; i < nGPR; ++i )
++ fprintf( stderr, "0x%lx, ", pGPR[i] );
++ fprintf( stderr, "\nFPR's (%d): ", nFPR );
++ for ( int i = 0; i < nFPR; ++i )
++ fprintf( stderr, "%f, ", pFPR[i] );
++ fprintf( stderr, "\nStack (%d): ", nStack );
++ for ( int i = 0; i < nStack; ++i )
++ fprintf( stderr, "0x%lx, ", pStack[i] );
++ fprintf( stderr, "\n" );
+ }
++#endif
+
+- if ( bSimpleReturn )
+- a0 = (sal_uInt64) pThis;
+- else
+- a1 = (sal_uInt64) pThis;
+-
+- // Ensure that assignments to SSE registers won't be optimized away
+- asm("" ::
+- "x" (d0), "x" (d1), "x" (d2), "x" (d3),
+- "x" (d4), "x" (d5), "x" (d6), "x" (d7));
++ // The call instruction within the asm section of callVirtualMethod may throw
++ // exceptions. So that the compiler handles this correctly, it is important
++ // that (a) callVirtualMethod might call dummy_can_throw_anything (although this
++ // never happens at runtime), which in turn can throw exceptions, and (b)
++ // callVirtualMethod is not inlined at its call site (so that any exceptions are
++ // caught which are thrown from the instruction calling callVirtualMethod):
++ if ( !pThis )
++ CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything( "xxx" ); // address something
++
++ // Should not happen, but...
++ if ( nFPR > x86_64::MAX_SSE_REGS )
++ nFPR = x86_64::MAX_SSE_REGS;
++ if ( nGPR > x86_64::MAX_GPR_REGS )
++ nGPR = x86_64::MAX_GPR_REGS;
+
+ // Get pointer to method
+ sal_uInt64 pMethod = *((sal_uInt64 *)pThis);
+ pMethod += 8 * nVtableIndex;
+ pMethod = *((sal_uInt64 *)pMethod);
+
+- union ReturnValue {
+- struct {
+- sal_uInt64 rax;
+- sal_uInt64 rdx;
+- } i;
+- struct {
+- double xmm0;
+- double xmm1;
+- } f;
+- };
++ // Load parameters to stack, if necessary
++ if ( nStack )
++ {
++ // 16-bytes aligned
++ sal_uInt32 nStackBytes = ( ( nStack + 1 ) >> 1 ) * 16;
++ sal_uInt64 *pCallStack = (sal_uInt64 *) __builtin_alloca( nStackBytes );
++ memcpy( pCallStack, pStack, nStackBytes );
++ }
+
+- typedef ReturnValue (* FunctionCall )( sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64 );
++ // Return values
++ sal_uInt64 rax;
++ sal_uInt64 rdx;
++ double xmm0;
+
+- // Perform the call
+- ReturnValue aRet = ( ( FunctionCall ) pMethod )( a0, a1, a2, a3, a4, a5 );
++ asm volatile (
++
++ // Fill the xmm registers
++ "movq %2, %%rax\n\t"
+
+- switch (pReturnTypeDescr->eTypeClass)
+- {
+- case typelib_TypeClass_HYPER:
+- case typelib_TypeClass_UNSIGNED_HYPER:
+- *reinterpret_cast<sal_uInt64 *>( pRegisterReturn ) = aRet.i.rax;
+- break;
+- case typelib_TypeClass_LONG:
+- case typelib_TypeClass_UNSIGNED_LONG:
+- case typelib_TypeClass_ENUM:
+- *reinterpret_cast<sal_uInt32 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt32*>( &aRet.i.rax );
+- break;
+- case typelib_TypeClass_CHAR:
+- case typelib_TypeClass_SHORT:
+- case typelib_TypeClass_UNSIGNED_SHORT:
+- *reinterpret_cast<sal_uInt16 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt16*>( &aRet.i.rax );
+- break;
+- case typelib_TypeClass_BOOLEAN:
+- case typelib_TypeClass_BYTE:
+- *reinterpret_cast<sal_uInt8 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt8*>( &aRet.i.rax );
+- break;
+- case typelib_TypeClass_FLOAT:
+- *reinterpret_cast<float *>( pRegisterReturn ) = *reinterpret_cast<float*>( &aRet.f.xmm0 );
+- break;
+- case typelib_TypeClass_DOUBLE:
+- *reinterpret_cast<double *>( pRegisterReturn ) = *reinterpret_cast<double*>( &aRet.f.xmm0 );
+- break;
+- default: {
+- sal_Int32 const nRetSize = pReturnTypeDescr->nSize;
+- if (bSimpleReturn && nRetSize <= 16 && nRetSize > 0) {
+- if (nRetSize > 8)
+- static_cast<sal_uInt64 *>(pRegisterReturn)[1] = aRet.i.rdx;
+- static_cast<sal_uInt64 *>(pRegisterReturn)[0] = aRet.i.rax;
+- }
++ "movsd (%%rax), %%xmm0\n\t"
++ "movsd 8(%%rax), %%xmm1\n\t"
++ "movsd 16(%%rax), %%xmm2\n\t"
++ "movsd 24(%%rax), %%xmm3\n\t"
++ "movsd 32(%%rax), %%xmm4\n\t"
++ "movsd 40(%%rax), %%xmm5\n\t"
++ "movsd 48(%%rax), %%xmm6\n\t"
++ "movsd 56(%%rax), %%xmm7\n\t"
++
++ // Fill the general purpose registers
++ "movq %1, %%rax\n\t"
++
++ "movq (%%rax), %%rdi\n\t"
++ "movq 8(%%rax), %%rsi\n\t"
++ "movq 16(%%rax), %%rdx\n\t"
++ "movq 24(%%rax), %%rcx\n\t"
++ "movq 32(%%rax), %%r8\n\t"
++ "movq 40(%%rax), %%r9\n\t"
++
++ // Perform the call
++ "movq %0, %%r11\n\t"
++ "movq %3, %%rax\n\t"
++ "call *%%r11\n\t"
++
++ // Fill the return values
++ "movq %%rax, %4\n\t"
++ "movq %%rdx, %5\n\t"
++ "movsd %%xmm0, %6\n\t"
++ :
++ : "m" ( pMethod ), "m" ( pGPR ), "m" ( pFPR ), "m" ( nFPR ),
++ "m" ( rax ), "m" ( rdx ), "m" ( xmm0 )
++ : "rax", "rdi", "rsi", "rdx", "rcx", "r8", "r9", "r11"
++ );
++
++ switch (pReturnTypeDescr->eTypeClass)
++ {
++ case typelib_TypeClass_HYPER:
++ case typelib_TypeClass_UNSIGNED_HYPER:
++ *reinterpret_cast<sal_uInt64 *>( pRegisterReturn ) = rax;
+ break;
++ case typelib_TypeClass_LONG:
++ case typelib_TypeClass_UNSIGNED_LONG:
++ case typelib_TypeClass_ENUM:
++ *reinterpret_cast<sal_uInt32 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt32*>( &rax );
++ break;
++ case typelib_TypeClass_CHAR:
++ case typelib_TypeClass_SHORT:
++ case typelib_TypeClass_UNSIGNED_SHORT:
++ *reinterpret_cast<sal_uInt16 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt16*>( &rax );
++ break;
++ case typelib_TypeClass_BOOLEAN:
++ case typelib_TypeClass_BYTE:
++ *reinterpret_cast<sal_uInt8 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt8*>( &rax );
++ break;
++ case typelib_TypeClass_FLOAT:
++ case typelib_TypeClass_DOUBLE:
++ *reinterpret_cast<double *>( pRegisterReturn ) = xmm0;
++ break;
++ default:
++ {
++ sal_Int32 const nRetSize = pReturnTypeDescr->nSize;
++ if (bSimpleReturn && nRetSize <= 16 && nRetSize > 0)
++ {
++ if (nRetSize > 8)
++ static_cast<sal_uInt64 *>(pRegisterReturn)[1] = rdx;
++ static_cast<sal_uInt64 *>(pRegisterReturn)[0] = rax;
++ }
++ break;
++ }
+ }
+- }
+ }
+
++//==================================================================================================
++
++// Macros for easier insertion of values to registers or stack
++// pSV - pointer to the source
++// nr - order of the value [will be increased if stored to register]
++// pFPR, pGPR - pointer to the registers
++// pDS - pointer to the stack [will be increased if stored here]
++
++// The value in %xmm register is already prepared to be retrieved as a float,
++// thus we treat float and double the same
++#define INSERT_FLOAT_DOUBLE( pSV, nr, pFPR, pDS ) \
++ if ( nr < x86_64::MAX_SSE_REGS ) \
++ pFPR[nr++] = *reinterpret_cast<double *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV ); // verbatim!
++
++#define INSERT_INT64( pSV, nr, pGPR, pDS ) \
++ if ( nr < x86_64::MAX_GPR_REGS ) \
++ pGPR[nr++] = *reinterpret_cast<sal_uInt64 *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV );
++
++#define INSERT_INT32( pSV, nr, pGPR, pDS ) \
++ if ( nr < x86_64::MAX_GPR_REGS ) \
++ pGPR[nr++] = *reinterpret_cast<sal_uInt32 *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt32 *>( pSV );
++
++#define INSERT_INT16( pSV, nr, pGPR, pDS ) \
++ if ( nr < x86_64::MAX_GPR_REGS ) \
++ pGPR[nr++] = *reinterpret_cast<sal_uInt16 *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt16 *>( pSV );
++
++#define INSERT_INT8( pSV, nr, pGPR, pDS ) \
++ if ( nr < x86_64::MAX_GPR_REGS ) \
++ pGPR[nr++] = *reinterpret_cast<sal_uInt8 *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt8 *>( pSV );
+
+ //==================================================================================================
++
+ static void cpp_call(
+ bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
+ bridges::cpp_uno::shared::VtableSlot aVtableSlot,
+@@ -322,54 +246,52 @@
+ void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
+ {
+ // Maxium space for [complex ret ptr], values | ptr ...
+- char * pCppStack = (char *)__builtin_alloca( (nParams + 3) * sizeof(sal_uInt64) );
+- char * pCppStackStart = pCppStack;
++ // (but will be used less - some of the values will be in pGPR and pFPR)
++ sal_uInt64 *pStack = (sal_uInt64 *)__builtin_alloca( (nParams + 3) * sizeof(sal_uInt64) );
++ sal_uInt64 *pStackStart = pStack;
+
+- // We need to know parameter types for callVirtualMethod() so generate a signature string
+- char * pParamType = (char *)__builtin_alloca( nParams + 3 );
+- char * pPT = pParamType;
++ sal_uInt64 pGPR[x86_64::MAX_GPR_REGS];
++ sal_uInt32 nGPR = 0;
++
++ double pFPR[x86_64::MAX_SSE_REGS];
++ sal_uInt32 nFPR = 0;
+
+ // Return
+ typelib_TypeDescription * pReturnTypeDescr = 0;
+ TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+ OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+
+- void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
++ void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion (see below)
+
+ bool bSimpleReturn = true;
+- if (pReturnTypeDescr)
++ if ( pReturnTypeDescr )
+ {
+ if ( x86_64::return_in_hidden_param( pReturnTypeRef ) )
+ bSimpleReturn = false;
+
+- if (bSimpleReturn)
++ if ( bSimpleReturn )
+ pCppReturn = pUnoReturn; // direct way for simple types
+ else
+ {
+ // complex return via ptr
+- pCppReturn = *(void **)pCppStack = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
+- ? __builtin_alloca( pReturnTypeDescr->nSize )
+- : pUnoReturn); // direct way
+- *pPT++ = 'H';
+- pCppStack += sizeof(void *);
++ pCppReturn = bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )?
++ __builtin_alloca( pReturnTypeDescr->nSize ) : pUnoReturn;
++ INSERT_INT64( &pCppReturn, nGPR, pGPR, pStack );
+ }
+ }
+
+ // Push "this" pointer
+ void * pAdjustedThisPtr = reinterpret_cast< void ** >( pThis->getCppI() ) + aVtableSlot.offset;
+- *(void **)pCppStack = pAdjustedThisPtr;
+- *pPT++ = 'H';
+- pCppStack += sizeof(void *);
++ INSERT_INT64( &pAdjustedThisPtr, nGPR, pGPR, pStack );
+
+- // stack space
+ // Args
+- void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
++ void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
+ // Indizes of values this have to be converted (interface conversion cpp<=>uno)
+ sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+ // Type descriptions for reconversions
+ typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+
+- sal_Int32 nTempIndizes = 0;
++ sal_Int32 nTempIndizes = 0;
+
+ for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+ {
+@@ -379,45 +301,32 @@
+
+ if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+ {
+- uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
++ uno_copyAndConvertData( pCppArgs[nPos] = alloca( 8 ), pUnoArgs[nPos], pParamTypeDescr,
+ pThis->getBridge()->getUno2Cpp() );
+
+ switch (pParamTypeDescr->eTypeClass)
+ {
+-
+- // we need to know type of each param so that we know whether to use
+- // gpr or fpr to pass in parameters:
+- // Key: I - 32-bit value passed in gpr
+- // B - byte value passed in gpr
+- // S - short value passed in gpr
+- // F - float value pass in fpr
+- // D - double value pass in fpr
+- // H - long value passed in gpr
+- // X - indicates end of parameter description string
+-
++ case typelib_TypeClass_HYPER:
++ case typelib_TypeClass_UNSIGNED_HYPER:
++ INSERT_INT64( pCppArgs[nPos], nGPR, pGPR, pStack );
++ break;
+ case typelib_TypeClass_LONG:
+ case typelib_TypeClass_UNSIGNED_LONG:
+ case typelib_TypeClass_ENUM:
+- *pPT++ = 'I';
++ INSERT_INT32( pCppArgs[nPos], nGPR, pGPR, pStack );
+ break;
+ case typelib_TypeClass_SHORT:
+ case typelib_TypeClass_CHAR:
+ case typelib_TypeClass_UNSIGNED_SHORT:
+- *pPT++ = 'S';
++ INSERT_INT16( pCppArgs[nPos], nGPR, pGPR, pStack );
+ break;
+ case typelib_TypeClass_BOOLEAN:
+ case typelib_TypeClass_BYTE:
+- *pPT++ = 'B';
++ INSERT_INT8( pCppArgs[nPos], nGPR, pGPR, pStack );
+ break;
+ case typelib_TypeClass_FLOAT:
+- *pPT++ = 'F';
+- break;
+ case typelib_TypeClass_DOUBLE:
+- *pPT++ = 'D';
+- break;
+- case typelib_TypeClass_HYPER:
+- case typelib_TypeClass_UNSIGNED_HYPER:
+- *pPT++ = 'H';
++ INSERT_FLOAT_DOUBLE( pCppArgs[nPos], nFPR, pFPR, pStack );
+ break;
+ }
+
+@@ -430,7 +339,7 @@
+ {
+ // cpp out is constructed mem, uno out is not!
+ uno_constructData(
+- *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++ pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+ pParamTypeDescr );
+ pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+ // will be released at reconversion
+@@ -440,7 +349,7 @@
+ else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+ {
+ uno_copyAndConvertData(
+- *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++ pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+ pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() );
+
+ pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+@@ -449,27 +358,22 @@
+ }
+ else // direct way
+ {
+- *(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
++ pCppArgs[nPos] = pUnoArgs[nPos];
+ // no longer needed
+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+ }
+- // FIXME: is this the right way to pass these?
+- *pPT++='H';
++ INSERT_INT64( &(pCppArgs[nPos]), nGPR, pGPR, pStack );
+ }
+- pCppStack += sizeof(sal_uInt64); // standard parameter length
+ }
+
+- // terminate the signature string
+- *pPT++ = 'X';
+- *pPT = 0;
+-
+ try
+ {
+- OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 7), "UNALIGNED STACK !!! (Please DO panic)" );
+ callVirtualMethod(
+ pAdjustedThisPtr, aVtableSlot.index,
+- pCppReturn, pReturnTypeDescr, bSimpleReturn, pParamType,
+- (sal_uInt64 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_uInt64) );
++ pCppReturn, pReturnTypeDescr, bSimpleReturn,
++ pStackStart, ( pStack - pStackStart ),
++ pGPR, nGPR,
++ pFPR, nFPR );
+ // NO exception occured...
+ *ppUnoExc = 0;
+
+@@ -525,8 +429,8 @@
+ }
+ }
+
+-
+ //==================================================================================================
++
+ namespace bridges { namespace cpp_uno { namespace shared {
+
+ void unoInterfaceProxyDispatch(
diff --git a/editors/openoffice-3-devel/files/patch-i76969 b/editors/openoffice-3-devel/files/patch-i76969
new file mode 100644
index 000000000000..123402727290
--- /dev/null
+++ b/editors/openoffice-3-devel/files/patch-i76969
@@ -0,0 +1,40 @@
+Index: solenv/inc/unxfbsd.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/unxfbsd.mk,v
+retrieving revision 1.3
+diff -u -r1.3 unxfbsd.mk
+--- solenv/inc/unxfbsd.mk 9 Mar 2007 09:07:55 -0000 1.3
++++ solenv/inc/unxfbsd.mk 4 May 2007 16:22:53 -0000
+@@ -121,12 +121,6 @@
+ # Compiler flags for debugging
+ CFLAGSDEBUG=-g
+ CFLAGSDBGUTIL=
+-# Compiler flags for enabling optimizations
+-.IF "$(PRODUCT)"!=""
+-CFLAGSOPT=-Os -fno-strict-aliasing # optimizing for products
+-.ELSE # "$(PRODUCT)"!=""
+-CFLAGSOPT= # no optimizing for non products
+-.ENDIF # "$(PRODUCT)"!=""
+ # Compiler flags for disabling optimizations
+ CFLAGSNOOPT=-O0
+ # Compiler flags for describing the output path
+Index: solenv/inc/unxfbsdi.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/unxfbsdi.mk,v
+retrieving revision 1.24
+diff -u -r1.24 unxfbsdi.mk
+--- solenv/inc/unxfbsdi.mk 19 Jul 2006 09:27:04 -0000 1.24
++++ solenv/inc/unxfbsdi.mk 4 May 2007 16:22:53 -0000
+@@ -43,5 +43,12 @@
+ # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
+ ARCH_FLAGS*=-mtune=pentiumpro
+
++# Compiler flags for enabling optimizations
++.IF "$(PRODUCT)"!=""
++CFLAGSOPT=-Os -fno-strict-aliasing # optimizing for products
++.ELSE # "$(PRODUCT)"!=""
++CFLAGSOPT= # no optimizing for non products
++.ENDIF # "$(PRODUCT)"!=""
++
+ # platform specific identifier for shared libs
+ DLLPOSTFIX=fi
diff --git a/editors/openoffice-3-devel/files/patch-i77615 b/editors/openoffice-3-devel/files/patch-i77615
new file mode 100644
index 000000000000..89fe1aaee7c8
--- /dev/null
+++ b/editors/openoffice-3-devel/files/patch-i77615
@@ -0,0 +1,57 @@
+For FreeBSD, libxslt builds libraries as libxslt.so.2 or something
+like that. Following patch fixes this.
+
+Index: libxslt/libxslt-1.1.16.patch
+===================================================================
+RCS file: /cvs/external/libxslt/libxslt-1.1.16.patch,v
+retrieving revision 1.2
+diff -u -r1.2 libxslt-1.1.16.patch
+--- libxslt/libxslt-1.1.16.patch 10 May 2007 13:10:07 -0000 1.2
++++ libxslt/libxslt-1.1.16.patch 20 May 2007 02:35:31 -0000
+@@ -108,3 +108,46 @@
+ !
+ ! exit 0
+
++*** misc/libxslt-1.1.16/ltmain.sh Sun Feb 12 09:50:49 2006
++--- misc/build/libxslt-1.1.16/ltmain.sh Sun May 20 11:34:29 2007
++***************
++*** 3192,3200 ****
++ revision="$number_revision"
++ ;;
++ freebsd-aout|freebsd-elf|sunos)
++! current="$number_major"
++! revision="$number_minor"
++! age="0"
++ ;;
++ irix|nonstopux)
++ current=`expr $number_major + $number_minor - 1`
++--- 3192,3200 ----
++ revision="$number_revision"
++ ;;
++ freebsd-aout|freebsd-elf|sunos)
++! current=`expr $number_major + $number_minor`
++! age="$number_minor"
++! revision="$number_revision"
++ ;;
++ irix|nonstopux)
++ current=`expr $number_major + $number_minor - 1`
++***************
++*** 3267,3274 ****
++ ;;
++
++ freebsd-elf)
++! major=".$current"
++! versuffix=".$current";
++ ;;
++
++ irix | nonstopux)
++--- 3267,3274 ----
++ ;;
++
++ freebsd-elf)
++! major=.`expr $current - $age`
++! versuffix="$major.$age.$revision"
++ ;;
++
++ irix | nonstopux)
++
diff --git a/editors/openoffice-3-devel/files/patch-i77793 b/editors/openoffice-3-devel/files/patch-i77793
new file mode 100644
index 000000000000..e182b8727409
--- /dev/null
+++ b/editors/openoffice-3-devel/files/patch-i77793
@@ -0,0 +1,11 @@
+--- sw/source/core/unocore/unotbl.cxx 2007-05-25 13:02:05.000000000 +0200
++++ sw/source/core/unocore/unotbl.cxx 2007-05-25 13:09:00.000000000 +0200
+@@ -4455,7 +4455,7 @@
+ // now we'll try to get a useful numerical value
+ // from the text in the cell...
+
+- ULONG nFIndex;
++ sal_uInt32 nFIndex;
+ SvNumberFormatter* pNumFormatter = pTblCrsr->GetDoc()->GetNumberFormatter();
+
+ // look for SwTblBoxNumFormat value in parents as well
diff --git a/editors/openoffice-3-devel/files/patch-i77829 b/editors/openoffice-3-devel/files/patch-i77829
new file mode 100644
index 000000000000..c7be6ab14215
--- /dev/null
+++ b/editors/openoffice-3-devel/files/patch-i77829
@@ -0,0 +1,45 @@
+g++42 -fmessage-length=0 -c -Os -fno-strict-aliasing -ftemplate-depth-128 -I. -I../../../unxfbsdi.pro/inc/chcdialogs -I../inc -I../../../source/inc -I../../../inc/pch -I../../../inc/chart2 -I../../../inc -I../../../unx/inc -I../../../unxfbsdi.pro/inc -I. -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/stl -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/external -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solenv/unxfbsdi/inc -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solenv/inc -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/res -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/stl -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solenv/inc/Xp31 -I/usr/local/diablo-jdk1.5.0/include -I/usr/local/diablo-jdk1.5.0/include/freebsd -I/usr/local/diablo-jdk1.5.0/include/bsd -I/usr/local/diablo-jdk1.5.0/include/linux -I/usr/local/diablo-jdk1.5.0/include/native_threads/include -I/usr/local/include -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/offuh -I. -I../../../res -I. -pipe -mtune=pentiumpro -fvisibility-inlines-hidden -g1 -Wall -Wextra -Wendif-labels -Wshadow -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -fpic -DFREEBSD -DUNX -DVCL -DGCC -DC341 -DINTEL -DCVER=C341 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=450 -DHAVE_GCC_VISIBILITY_FEATURE -D__DMAKE -DUNIX -DCPPU_ENV=gcc3 -DGXX_INCLUDE_PATH=/usr/local/lib/gcc-4.2.0/include/c++ -DSUPD=680 -DPRODUCT -DNDEBUG -DPRODUCT_FULL -DOSL_DEBUG_LEVEL=0 -DOPTIMIZE -DCUI -DSOLAR_JAVA -DSRC680=SRC680 -DSHAREDLIB -D_DLL_ -fexceptions -fno-enforce-eh-specs -DEXCEPTIONS_ON -o ../../../unxfbsdi.pro/slo/DataBrowser.o /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx
+In file included from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/cppuhelper/implbase1.hxx:42,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/svtools/transfer.hxx:54,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/svtools/brwbox.hxx:56,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/svtools/editbrowsebox.hxx:69,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.hxx:40,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx:51:
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/rtl/instance.hxx: In static member function 'static Inst*<unnamed>::rtl_Instance<Inst, InstCtor, Guard, GuardCtor, Data, DataCtor>::create(InstCtor, GuardCtor)':
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/rtl/instance.hxx:305: warning: empty body in an else-statement
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/rtl/instance.hxx: In static member function 'static Inst*<unnamed>::rtl_Instance<Inst, InstCtor, Guard, GuardCtor, Data, DataCtor>::create(InstCtor, GuardCtor, DataCtor)':
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/rtl/instance.hxx:329: warning: empty body in an else-statement
+In file included from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx:52:
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowserModel.hxx: At global scope:
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowserModel.hxx:110: error: extra qualification 'chart::DataBrowserModel::' on member 'setCellAny'
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx: In member function 'bool chart::DataBrowser::MaySwapColumns() const':
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx:574: warning: declaration of 'bHasFocus' shadows a member of 'this'
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx: In member function 'void chart::DataBrowser::RenewTable()':
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx:634: warning: declaration of 'nRowCount' shadows a member of 'this'
+dmake: Error code 1, while making '../../../unxfbsdi.pro/slo/DataBrowser.obj'
+---* tg_merge.mk *---
+
+ERROR: Error 65280 occurred while making /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs
+dmake: Error code 1, while making 'build_instsetoo_native'
+---* *---
+*** Error code 255
+
+Stop in /work/ports/editors/openoffice.org-2-devel.
+
+Index: chart2/source/controller/dialogs/DataBrowserModel.hxx
+===================================================================
+RCS file: /cvs/graphics/chart2/source/controller/dialogs/DataBrowserModel.hxx,v
+retrieving revision 1.2
+diff -u -r1.2 DataBrowserModel.hxx
+--- chart2/source/controller/dialogs/DataBrowserModel.hxx 22 May 2007 17:27:59 -0000 1.2
++++ chart2/source/controller/dialogs/DataBrowserModel.hxx 26 May 2007 10:47:37 -0000
+@@ -106,8 +106,7 @@
+ bool setCellNumber( sal_Int32 nAtColumn, sal_Int32 nAtRow, double fValue );
+ /// returns </TRUE> if the text could successfully be set at the given position
+ bool setCellText( sal_Int32 nAtColumn, sal_Int32 nAtRow, const ::rtl::OUString & rText );
+- bool DataBrowserModel::setCellAny( sal_Int32 nAtColumn, sal_Int32 nAtRow,
+- const ::com::sun::star::uno::Any & aValue );
++ bool setCellAny( sal_Int32 nAtColumn, sal_Int32 nAtRow, const ::com::sun::star::uno::Any & aValue );
+
+ sal_Int32 getColumnCount() const;
+ sal_Int32 getMaxRowCount() const;
diff --git a/editors/openoffice.org-2-devel/Makefile b/editors/openoffice.org-2-devel/Makefile
index e89a244101ec..72f808b2d022 100644
--- a/editors/openoffice.org-2-devel/Makefile
+++ b/editors/openoffice.org-2-devel/Makefile
@@ -7,10 +7,9 @@
PORTNAME?= openoffice.org
PORTVERSION?= 2.3.${SNAPDATE}
-PORTREVISION= 1
CATEGORIES+= editors java
-MASTER_SITES+= http://openoffice.lunarshells.com/sources/ \
- http://ooopackages.good-day.net/pub/OpenOffice.org/sources/ \
+MASTER_SITES+= http://ooopackages.good-day.net/pub/OpenOffice.org/sources/ \
+ http://openoffice.lunarshells.com/sources/ \
http://ooopackages.good-day.net/pub/OpenOffice.org/cws/:cws \
ftp://ftp.cs.man.ac.uk/pub/toby/gpc/:gpc \
${MASTER_SITE_APACHE:S,%SUBDIR%/,ant/binaries/:antbin,} \
@@ -21,9 +20,6 @@ DISTFILES+= ${OOOSRC} unowinreg.dll:unowinreg
.if defined(WITH_GPC)
DISTFILES+= gpc231.tar.Z:gpc
.endif
-.if defined(WITH_GNUGCJ)
-DISTFILES+= ${ANT_DISTFILE}:antbin
-.endif
EXTRACT_ONLY= ${OOOSRC}
MAINTAINER= openoffice@FreeBSD.org
@@ -53,38 +49,34 @@ USE_PERL5= yes
USE_BZIP2= yes
WITHOUT_CPU_CFLAGS= true
-.if !defined(WITH_GNUGCJ)
USE_JAVA= yes
JAVA_VERSION= 1.4+
JAVA_BUILD= jdk
JAVA_VENDOR= freebsd bsdjava
-.endif
.include <bsd.port.pre.mk>
.include <${FILESDIR}/Makefile.localized>
-ONLY_FOR_ARCHS= i386 amd64
+ONLY_FOR_ARCHS= i386 #amd64
.if ${ARCH} == amd64
-GCC_TARGET= x86_64-portbld-freebsd${OSREL}
FREEBSD_ENV_SET= FreeBSDAMDEnv.Set
.else
-GCC_TARGET= ${ARCH}-portbld-freebsd${OSREL}
FREEBSD_ENV_SET= FreeBSDX86Env.Set
.endif
CODELINE= 680
-MILESTONE?= 211
+MILESTONE?= 213
OOOTAG?= SRC680_m${MILESTONE}
OOOSRC?= OOo_${OOOTAG}_source${EXTRACT_SUFX}
-SNAPDATE= 20070428
+SNAPDATE= 20070525
INSTALLATION_BASEDIR?= openoffice.org-${OOOTAG}
EXECBASE?= openoffice.org-${OOOTAG}
.if defined(WITH_CWS)
INSTALLATION_BASEDIR= openoffice.org-${OOOTAG}-${WITH_CWS}
EXECBASE= openoffice.org-${OOOTAG}-${WITH_CWS}
.endif
-DIST_SUBDIR= openoffice.org2.0
+DIST_SUBDIR= openoffice.org2
SIMPLEOSVER= ${OSREL:C/\.//g}
.if ${ARCH} == amd64
PACKAGE_BASENAME= OOo_${OOOTAG}_${OPSYS}${SIMPLEOSVER}X86_64
@@ -103,39 +95,13 @@ PKGNAMESUFFIX= -${LANG_SUFFIX}
RUN_DEPENDS+= ${LOCALBASE}/share/icons/hicolor/index.theme:${PORTSDIR}/misc/hicolor-icon-theme
-.if defined(WITH_GNUGCJ)
-GCCVER=41
-BUILD_DEPENDS+= ${LOCALBASE}/libdata/ldconfig/gcc41-withgcjawt:${PORTSDIR}/lang/gcc41-withgcjawt
-BUILD_DEPENDS+= ${LOCALBASE}/lib/jvm/java-gcj41/bin/java:${PORTSDIR}/java/java-gcj-compat
-RUN_DEPENDS+= ${LOCALBASE}/libdata/ldconfig/gcc41-withgcjawt:${PORTSDIR}/lang/gcc41-withgcjawt
-RUN_DEPENDS+= ${LOCALBASE}/lib/jvm/java-gcj41/bin/java:${PORTSDIR}/java/java-gcj-compat
-.else
-.if ${ARCH} == amd64
-GCCVER=41
-BUILD_DEPENDS+= gcc41:${PORTSDIR}/lang/gcc41
-RUN_DEPENDS+= gcc41:${PORTSDIR}/lang/gcc41
-.else
-GCCVER=34
-BUILD_DEPENDS+= gcc-ooo:${PORTSDIR}/lang/gcc-ooo
-.endif
-.endif
-
+USE_GCC= 4.2
.if defined(WITH_CCACHE)
BUILD_DEPENDS+= ccache:${PORTSDIR}/devel/ccache
CCACHE_PREFIX= ccache
-.else
-CCACHE_PREFIX=
-.endif
-.if (${GCCVER} == 41)
-CC= gcc41
-CXX= g++41
-.endif
-.if (${GCCVER} == 34)
-CC= gcc-ooo
-CXX= g++-ooo
-.endif
CC:= ${CCACHE_PREFIX} ${CC}
CXX:= ${CCACHE_PREFIX} ${CXX}
+.endif
BUILD_DEPENDS+= zip:${PORTSDIR}/archivers/zip \
unzip:${PORTSDIR}/archivers/unzip \
@@ -144,14 +110,7 @@ BUILD_DEPENDS+= zip:${PORTSDIR}/archivers/zip \
${SITE_PERL}/Archive/Zip.pm:${PORTSDIR}/archivers/p5-Archive-Zip \
bison2:${PORTSDIR}/devel/bison2 \
imake:${X_IMAKE_PORT}
-.if defined(WITH_GNUGCJ)
-LIB_DEPENDS+= xslt.2:${PORTSDIR}/textproc/libxslt
-LIB_DEPENDS+= xml2.5:${PORTSDIR}/textproc/libxml2
-ANT_DISTFILE= apache-ant-${ANT_VERSION}-bin.tar.bz2
-ANT_VERSION= 1.6.5
-.else
BUILD_DEPENDS+= ant:${PORTSDIR}/devel/apache-ant
-.endif
.if !defined(WITH_GPC)
LIB_DEPENDS+= art_lgpl_2:${PORTSDIR}/graphics/libart_lgpl
.endif
@@ -162,28 +121,20 @@ CONFIGURE_WRKSRC= ${WRKSRC}/config_office
TCSH?= /bin/tcsh
PKGMESSAGE= ${WRKDIR}/pkg-message
NUMOFPROCESSES?= 1
-.if defined(WITH_GNUGCJ)
-CONFIGURE_ENV+= PATH="${LOCALBASE}/lib/jvm/java-gcj41/bin:${PATH}"
-.endif
CONFIGURE_ARGS+= --with-gnu-cp=${LOCALBASE}/bin/gcp \
--with-gnu-patch=${LOCALBASE}/bin/gpatch \
--enable-crashdump=yes \
--enable-symbols=SMALL
-.if ${ARCH} == amd64 || ${GCCVER} == 41
+.if ${ARCH} == amd64
WITHOUT_MOZILLA= yes
.endif
-.if (${GCCVER} == 41)
-LIB_DEPENDS+= boost_regex:${PORTSDIR}/devel/boost
-CONFIGURE_ARGS+= --with-system-boost=yes #i58343#
-.endif
+#LIB_DEPENDS+= boost_regex:${PORTSDIR}/devel/boost
+#CONFIGURE_ARGS+= --with-system-boost=yes #i58343#
.if (${OSVERSION} <= 602102)
EXTRA_PATCHES+= ${FILESDIR}/rtld-workaround-i66667
.endif
-.if defined(WITH_GNUGCJ)
-EXTRA_PATCHES+= ${FILESDIR}/gcj-fbsdworkaround
-.endif
.if !defined(WITH_SYSTEM_FREETYPE) && defined(WITH_TTF_BYTECODE_ENABLED)
EXTRA_PATCHES+= ${FILESDIR}/optpatch-freetype
.endif
@@ -214,9 +165,6 @@ post-extract:
.if defined(WITH_CWS)
cd ${WRKSRC} ; ${TAR} xvfz ${DISTDIR}/${DIST_SUBDIR}/${CWSARCHIVE}
.endif
-.if defined(WITH_GNUGCJ)
- @cd ${WRKDIR} ; ${CAT} ${DISTDIR}/${DIST_SUBDIR}/${ANT_DISTFILE} | ${BZIP2_CMD} -d | ${TAR} xf -
-.endif
.if defined(WITH_GPC)
@cd ${WRKDIR} ; ${CAT} ${DISTDIR}/${DIST_SUBDIR}/gpc231.tar.Z | ${TAR} xfz -
@${CP} ${WRKDIR}/gpc231/gpc.c ${WRKSRC}/external/gpc/
diff --git a/editors/openoffice.org-2-devel/distinfo b/editors/openoffice.org-2-devel/distinfo
index 66910c96a1a5..b95fc19e9a46 100644
--- a/editors/openoffice.org-2-devel/distinfo
+++ b/editors/openoffice.org-2-devel/distinfo
@@ -1,15 +1,12 @@
-MD5 (openoffice.org2.0/OOo_SRC680_m211_source.tar.bz2) = 1a45342987e7b9137da1fca8ec1a763a
-SHA256 (openoffice.org2.0/OOo_SRC680_m211_source.tar.bz2) = 8321544ec8d9f74ec7a620dcbee6dbf447713c86548a539eb7ce05e8f1ddeaa6
-SIZE (openoffice.org2.0/OOo_SRC680_m211_source.tar.bz2) = 272054401
-MD5 (openoffice.org2.0/unowinreg.dll) = e3a0b76dcd876f3d721ee7183729153d
-SHA256 (openoffice.org2.0/unowinreg.dll) = f563e522922133db9340b0306711c2d8767cc3481dd9e7d9b0d059906d12653c
-SIZE (openoffice.org2.0/unowinreg.dll) = 6144
-MD5 (openoffice.org2.0/gpc231.tar.Z) = fdb06fdb5a4670b172f9fb738b717be9
-SHA256 (openoffice.org2.0/gpc231.tar.Z) = c1265948554a9882fe8342ecc9ccbdb423321a572a5a6b56f7dfad389540da4e
-SIZE (openoffice.org2.0/gpc231.tar.Z) = 27917
-MD5 (openoffice.org2.0/apache-ant-1.6.5-bin.tar.bz2) = 26031ee1a2fd248ad0cc2e7f17c44c39
-SHA256 (openoffice.org2.0/apache-ant-1.6.5-bin.tar.bz2) = d463b8259cb199cd26799c817756c73e4e7808b0cf915f86841ac9779e0f9936
-SIZE (openoffice.org2.0/apache-ant-1.6.5-bin.tar.bz2) = 6743024
-MD5 (openoffice.org2.0/mozilla-source-1.7.5.tar.gz) = d3f3528b6c5eade402ed058207cffa14
-SHA256 (openoffice.org2.0/mozilla-source-1.7.5.tar.gz) = 3e252bab95ecad3016b72fa594e0c44b9633d8c7b6af187e088a092019b56445
-SIZE (openoffice.org2.0/mozilla-source-1.7.5.tar.gz) = 38721366
+MD5 (openoffice.org2/OOo_SRC680_m213_source.tar.bz2) = 7120d049a1aa1801205d574abd1c77fd
+SHA256 (openoffice.org2/OOo_SRC680_m213_source.tar.bz2) = 1f8edbecfa3e9c2122c2f3a0acbcd4c52620a86e5b1c06d93b04cce34b49ca7d
+SIZE (openoffice.org2/OOo_SRC680_m213_source.tar.bz2) = 270389079
+MD5 (openoffice.org2/unowinreg.dll) = e3a0b76dcd876f3d721ee7183729153d
+SHA256 (openoffice.org2/unowinreg.dll) = f563e522922133db9340b0306711c2d8767cc3481dd9e7d9b0d059906d12653c
+SIZE (openoffice.org2/unowinreg.dll) = 6144
+MD5 (openoffice.org2/gpc231.tar.Z) = fdb06fdb5a4670b172f9fb738b717be9
+SHA256 (openoffice.org2/gpc231.tar.Z) = c1265948554a9882fe8342ecc9ccbdb423321a572a5a6b56f7dfad389540da4e
+SIZE (openoffice.org2/gpc231.tar.Z) = 27917
+MD5 (openoffice.org2/mozilla-source-1.7.5.tar.gz) = d3f3528b6c5eade402ed058207cffa14
+SHA256 (openoffice.org2/mozilla-source-1.7.5.tar.gz) = 3e252bab95ecad3016b72fa594e0c44b9633d8c7b6af187e088a092019b56445
+SIZE (openoffice.org2/mozilla-source-1.7.5.tar.gz) = 38721366
diff --git a/editors/openoffice.org-2-devel/files/Makefile.knobs b/editors/openoffice.org-2-devel/files/Makefile.knobs
index 231af9477271..deb2059d1b29 100644
--- a/editors/openoffice.org-2-devel/files/Makefile.knobs
+++ b/editors/openoffice.org-2-devel/files/Makefile.knobs
@@ -2,10 +2,11 @@
# Whom: Maho Nakata <maho@FreeBSD.org>
# $FreeBSD$
-.if !defined(WITH_GNUGCJ)
CONFIGURE_ARGS+= --with-jdk-home="${JAVA_HOME}" --with-ant-home="${LOCALBASE}/share/java/apache-ant"
-.else
-CONFIGURE_ARGS+= --with-jdk-home="${LOCALBASE}/lib/jvm/java-gcj41" --with-java=gij --with-ant-home="${WRKDIR}/apache-ant-${ANT_VERSION}"
+
+.if defined(WITH_VBA)
+CONFIGURE_ARGS+= --enable-vba --with-vba-package-format="builtin"
+EXTRA_PATCHES+= ${FILESDIR}/cws-npower7.diff
.endif
.if defined(WITH_KDE)
@@ -92,6 +93,11 @@ pre-fetch:
@${ECHO} "You can compile OOo without gnome VFS support with"
@${ECHO} "make -DWITHOUT_GNOMEVFS"
.endif
+.if !defined(WITH_VBA)
+ @${ECHO}
+ @${ECHO} "You can compile OOo with VBA support with"
+ @${ECHO} "make -DWITH_VBA"
+.endif
.if !defined(WITH_SYSTEM_FREETYPE)
@${ECHO}
@${ECHO} "You can compile OOo with freetype2 from ports with"
@@ -120,11 +126,6 @@ pre-fetch:
@${ECHO} "zh-CN zh-TW zu"
@${ECHO} "Default: en-US"
.endif
-.if !defined(WITH_GNUGCJ)
- @${ECHO}
- @${ECHO} "You can compile OOo with GNU GCJ instead of SUN's JDK with"
- @${ECHO} "make -DWITH_GNUGCJ"
-.endif
.if !defined(WITH_CUPS)
@${ECHO}
@${ECHO} "You can compile OOo with CUPS support with"
diff --git a/editors/openoffice.org-2-devel/files/cws-npower7.diff b/editors/openoffice.org-2-devel/files/cws-npower7.diff
new file mode 100644
index 000000000000..cf8ccac2d39e
--- /dev/null
+++ b/editors/openoffice.org-2-devel/files/cws-npower7.diff
@@ -0,0 +1,1833 @@
+cvs diff: Diffing basic
+cvs diff: Diffing basic/inc
+cvs diff: Diffing basic/inc/basic
+Index: basic/inc/basic/basmgr.hxx
+===================================================================
+RCS file: /cvs/script/basic/inc/basic/basmgr.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.12.1
+diff -u -p -r1.2 -r1.2.12.1
+--- basic/inc/basic/basmgr.hxx 11 Apr 2007 12:50:02 -0000 1.2
++++ basic/inc/basic/basmgr.hxx 2 May 2007 09:44:21 -0000 1.2.12.1
+@@ -167,6 +167,7 @@ private:
+ String aName;
+ String maStorageName;
+ BOOL bBasMgrModified;
++ BOOL mbDocMgr;
+
+ BasicManagerImpl* mpImpl;
+
+@@ -190,8 +191,8 @@ protected:
+
+ public:
+ TYPEINFO();
+- BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBASIC* pParentFromStdLib = NULL, String* pLibPath = NULL );
+- BasicManager( StarBASIC* pStdLib, String* pLibPath = NULL );
++ BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBASIC* pParentFromStdLib = NULL, String* pLibPath = NULL, BOOL bDocMgr = FALSE );
++ BasicManager( StarBASIC* pStdLib, String* pLibPath = NULL, BOOL bDocMgr = FALSE );
+
+ /** deletes the given BasicManager instance
+
+Index: basic/inc/basic/sbstar.hxx
+===================================================================
+RCS file: /cvs/script/basic/inc/basic/sbstar.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.12.1
+diff -u -p -r1.2 -r1.2.12.1
+--- basic/inc/basic/sbstar.hxx 11 Apr 2007 12:52:47 -0000 1.2
++++ basic/inc/basic/sbstar.hxx 2 May 2007 09:44:21 -0000 1.2.12.1
+@@ -81,6 +81,7 @@ class StarBASIC : public SbxObject
+ Link aBreakHdl; // Breakpoint-Handler
+ BOOL bNoRtl; // TRUE: RTL nicht durchsuchen
+ BOOL bBreak; // TRUE: Break, sonst Step
++ BOOL bDocBasic;
+ BasicLibInfo* pLibInfo; // Infoblock fuer Basic-Manager
+ SbLanguageMode eLanguageMode; // LanguageMode des Basic-Objekts
+ protected:
+@@ -104,7 +105,7 @@ public:
+ SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_BASIC,1);
+ TYPEINFO();
+
+- StarBASIC( StarBASIC* pParent = NULL );
++ StarBASIC( StarBASIC* pParent = NULL, BOOL bIsDocBasic = FALSE );
+
+ // #51727 SetModified ueberladen, damit der Modified-
+ // Zustand nicht an den Parent weitergegeben wird.
+@@ -203,6 +204,7 @@ public:
+ static void StaticEnableReschedule( BOOL bReschedule );
+
+ SbxObjectRef getRTL( void ) { return pRtl; }
++ BOOL IsDocBasic() { return bDocBasic; }
+ };
+
+ #ifndef __SB_SBSTARBASICREF_HXX
+Index: basic/inc/basic/sbx.hxx
+===================================================================
+RCS file: /cvs/script/basic/inc/basic/sbx.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.12.1
+diff -u -p -r1.2 -r1.2.12.1
+--- basic/inc/basic/sbx.hxx 11 Apr 2007 12:53:21 -0000 1.2
++++ basic/inc/basic/sbx.hxx 2 May 2007 09:44:42 -0000 1.2.12.1
+@@ -263,6 +263,7 @@ class SbxDimArray : public SbxArray
+ SbxDim* pFirst, *pLast; // Links fuer Dimension-Tabelle
+ short nDim; // Anzahl Dimensionen
+ void AddDimImpl32( INT32, INT32, BOOL bAllowSize0 );
++ bool mbHasFixedSize;
+ protected:
+ USHORT Offset( const short* );
+ UINT32 Offset32( const INT32* );
+@@ -302,6 +303,8 @@ public:
+ void AddDim32( INT32, INT32 );
+ void unoAddDim32( INT32, INT32 );
+ BOOL GetDim32( INT32, INT32&, INT32& ) const;
++ bool hasFixedSize() { return mbHasFixedSize; };
++ void setHasFixedSize( bool bHasFixedSize ) {mbHasFixedSize = bHasFixedSize; };
+ };
+
+ #endif
+cvs diff: Diffing basic/inc/pch
+cvs diff: Diffing basic/prj
+cvs diff: Diffing basic/source
+cvs diff: Diffing basic/source/app
+cvs diff: Diffing basic/source/basmgr
+Index: basic/source/basmgr/basicmanagerrepository.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/basmgr/basicmanagerrepository.cxx,v
+retrieving revision 1.4
+retrieving revision 1.4.14.1
+diff -u -p -r1.4 -r1.4.14.1
+--- basic/source/basmgr/basicmanagerrepository.cxx 15 Mar 2007 15:37:48 -0000 1.4
++++ basic/source/basmgr/basicmanagerrepository.cxx 2 May 2007 09:44:21 -0000 1.4.14.1
+@@ -491,7 +491,7 @@ namespace basic
+ SotStorageRef xDummyStor = new SotStorage( ::rtl::OUString() );
+ pBasicManager = new BasicManager( *xDummyStor, String() /* TODO/LATER: xStorage */,
+ pAppBasic,
+- &aAppBasicDir );
++ &aAppBasicDir, TRUE );
+ if ( pBasicManager->HasErrors() )
+ {
+ // handle errors
+@@ -517,7 +517,7 @@ namespace basic
+ // create new BASIC-manager
+ StarBASIC* pBasic = new StarBASIC( pAppBasic );
+ pBasic->SetFlag( SBX_EXTSEARCH );
+- pBasicManager = new BasicManager( pBasic );
++ pBasicManager = new BasicManager( pBasic, NULL, TRUE );
+ }
+
+ // knit the containers with the BasicManager
+Index: basic/source/basmgr/basmgr.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/basmgr/basmgr.cxx,v
+retrieving revision 1.39
+retrieving revision 1.39.2.1
+diff -u -p -r1.39 -r1.39.2.1
+--- basic/source/basmgr/basmgr.cxx 26 Apr 2007 08:32:47 -0000 1.39
++++ basic/source/basmgr/basmgr.cxx 2 May 2007 09:44:21 -0000 1.39.2.1
+@@ -685,7 +685,7 @@ void BasicLibInfo::CalcRelStorageName( c
+ else
+ SetRelStorageName( String() );
+ }
+-BasicManager::BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBASIC* pParentFromStdLib, String* pLibPath )
++BasicManager::BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBASIC* pParentFromStdLib, String* pLibPath, BOOL bDocMgr ) : mbDocMgr( bDocMgr )
+ {
+ DBG_CTOR( BasicManager, 0 );
+
+@@ -714,7 +714,7 @@ BasicManager::BasicManager( SotStorage&
+ if ( !pStdLib )
+ {
+ // Sollte eigentlich nie passieren, aber dann wenigstens nicht abstuerzen...
+- pStdLib = new StarBASIC;
++ pStdLib = new StarBASIC( NULL, mbDocMgr );
+ BasicLibInfo* pStdLibInfo = pLibs->GetObject( 0 );
+ if ( !pStdLibInfo )
+ pStdLibInfo = CreateLibInfo();
+@@ -895,7 +895,7 @@ void BasicManager::SetLibraryContainerIn
+ InsertGlobalUNOConstant( "DialogLibraries", makeAny( mpImpl->maContainerInfo.mxDialogCont ) );
+ }
+
+-BasicManager::BasicManager( StarBASIC* pSLib, String* pLibPath )
++BasicManager::BasicManager( StarBASIC* pSLib, String* pLibPath, BOOL bDocMgr ) : mbDocMgr( bDocMgr )
+ {
+ DBG_CTOR( BasicManager, 0 );
+ Init();
+@@ -936,7 +936,7 @@ void BasicManager::ImpMgrNotLoaded( cons
+
+ // Eine STD-Lib erzeugen, sonst macht es Peng!
+ BasicLibInfo* pStdLibInfo = CreateLibInfo();
+- pStdLibInfo->SetLib( new StarBASIC );
++ pStdLibInfo->SetLib( new StarBASIC( NULL, mbDocMgr ) );
+ StarBASICRef xStdLib = pStdLibInfo->GetLib();
+ xStdLib->SetName( String::CreateFromAscii(szStdLibName) );
+ pStdLibInfo->SetLibName( String::CreateFromAscii(szStdLibName) );
+@@ -948,7 +948,7 @@ void BasicManager::ImpMgrNotLoaded( cons
+ void BasicManager::ImpCreateStdLib( StarBASIC* pParentFromStdLib )
+ {
+ BasicLibInfo* pStdLibInfo = CreateLibInfo();
+- StarBASIC* pStdLib = new StarBASIC( pParentFromStdLib );
++ StarBASIC* pStdLib = new StarBASIC( pParentFromStdLib, mbDocMgr );
+ pStdLibInfo->SetLib( pStdLib );
+ pStdLib->SetName( String::CreateFromAscii(szStdLibName) );
+ pStdLibInfo->SetLibName( String::CreateFromAscii(szStdLibName) );
+@@ -1237,7 +1237,7 @@ BOOL BasicManager::ImpLoadLibary( BasicL
+ if ( !bInfosOnly )
+ {
+ if ( !pLibInfo->GetLib().Is() )
+- pLibInfo->SetLib( new StarBASIC( GetStdLib() ) );
++ pLibInfo->SetLib( new StarBASIC( GetStdLib(), mbDocMgr ) );
+ xBasicStream->SetBufferSize( 1024 );
+ xBasicStream->Seek( STREAM_SEEK_TO_BEGIN );
+ bLoaded = ImplLoadBasic( *xBasicStream, pLibInfo->GetLibRef() );
+@@ -1660,7 +1660,7 @@ StarBASIC* BasicManager::CreateLib( cons
+ return 0;
+
+ BasicLibInfo* pLibInfo = CreateLibInfo();
+- StarBASIC* pNew = new StarBASIC( GetStdLib() );
++ StarBASIC* pNew = new StarBASIC( GetStdLib(), mbDocMgr );
+ GetStdLib()->Insert( pNew );
+ pNew->SetFlag( SBX_EXTSEARCH | SBX_DONTSTORE );
+ pLibInfo->SetLib( pNew );
+@@ -1718,7 +1718,7 @@ StarBASIC* BasicManager::CreateLibForLib
+ return 0;
+
+ BasicLibInfo* pLibInfo = CreateLibInfo();
+- StarBASIC* pNew = new StarBASIC( GetStdLib() );
++ StarBASIC* pNew = new StarBASIC( GetStdLib(), mbDocMgr );
+ GetStdLib()->Insert( pNew );
+ pNew->SetFlag( SBX_EXTSEARCH | SBX_DONTSTORE );
+ pLibInfo->SetLib( pNew );
+cvs diff: Diffing basic/source/classes
+Index: basic/source/classes/sb.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/classes/sb.cxx,v
+retrieving revision 1.31
+retrieving revision 1.31.2.1
+diff -u -p -r1.31 -r1.31.2.1
+--- basic/source/classes/sb.cxx 26 Apr 2007 08:33:02 -0000 1.31
++++ basic/source/classes/sb.cxx 2 May 2007 09:44:21 -0000 1.31.2.1
+@@ -660,8 +660,8 @@ SbModule* SbClassFactory::FindClass( con
+
+ ////////////////////////////////////////////////////////////////////////////
+
+-StarBASIC::StarBASIC( StarBASIC* p )
+- : SbxObject( String( RTL_CONSTASCII_USTRINGPARAM("StarBASIC") ) )
++StarBASIC::StarBASIC( StarBASIC* p, BOOL bIsDocBasic )
++ : SbxObject( String( RTL_CONSTASCII_USTRINGPARAM("StarBASIC") ) ), bDocBasic( bIsDocBasic )
+ {
+ SetParent( p );
+ pLibInfo = NULL;
+Index: basic/source/classes/sbunoobj.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/classes/sbunoobj.cxx,v
+retrieving revision 1.46
+retrieving revision 1.46.6.5
+diff -u -p -r1.46 -r1.46.6.5
+--- basic/source/classes/sbunoobj.cxx 29 Jan 2007 15:05:07 -0000 1.46
++++ basic/source/classes/sbunoobj.cxx 9 May 2007 15:49:15 -0000 1.46.6.5
+@@ -110,6 +110,9 @@ using namespace rtl;
+ #include<runtime.hxx>
+
+ #include<math.h>
++#include <hash_map>
++#include <com/sun/star/reflection/XTypeDescriptionEnumerationAccess.hpp>
++#include <com/sun/star/reflection/XConstantsTypeDescription.hpp>
+
+ TYPEINIT1(SbUnoMethod,SbxMethod)
+ TYPEINIT1(SbUnoProperty,SbxProperty)
+@@ -130,6 +133,7 @@ static String ID_DBG_METHODS( RTL_CONSTA
+ static String aIllegalArgumentExceptionName
+ ( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.lang.IllegalArgumentException" ) );
+ static OUString aSeqLevelStr( RTL_CONSTASCII_USTRINGPARAM("[]") );
++static OUString defaultNameSpace( RTL_CONSTASCII_USTRINGPARAM("org.openoffice") );
+
+ // Gets the default property for an uno object. Note: There is some
+ // redirection built in. The property name specifies the name
+@@ -1510,6 +1514,50 @@ String getBasicObjectTypeName( SbxObject
+ return aName;
+ }
+
++bool checkUnoObjectType( SbUnoObject* pUnoObj,
++ const String& aClass )
++{
++ bool result = false;
++ Any aToInspectObj = pUnoObj->getUnoAny();
++ TypeClass eType = aToInspectObj.getValueType().getTypeClass();
++ if( eType != TypeClass_INTERFACE )
++ return false;
++ const Reference< XInterface > x = *(Reference< XInterface >*)aToInspectObj.getValue();
++ Reference< XTypeProvider > xTypeProvider( x, UNO_QUERY );
++ if( xTypeProvider.is() )
++ {
++ Sequence< Type > aTypeSeq = xTypeProvider->getTypes();
++ const Type* pTypeArray = aTypeSeq.getConstArray();
++ UINT32 nIfaceCount = aTypeSeq.getLength();
++ for( UINT32 j = 0 ; j < nIfaceCount ; j++ )
++ {
++ const Type& rType = pTypeArray[j];
++
++ Reference<XIdlClass> xClass = TypeToIdlClass( rType );
++ if( !xClass.is() )
++ {
++ DBG_ERROR("failed to get XIdlClass for type");
++ break;
++ }
++ OUString sClassName = xClass->getName();
++ OSL_TRACE("Checking if object implements %s",
++ OUStringToOString( defaultNameSpace + aClass,
++ RTL_TEXTENCODING_UTF8 ).getStr() );
++ // although interfaces in the org.openoffice.vba namespace
++ // obey the idl rules and have a leading X, in basic we
++ // want to be able to do something like
++ // 'dim wrkbooks as WorkBooks'
++ // so test assumes the 'X' has been dropped
++ sal_Int32 indexLastDot = sClassName.lastIndexOf('.');
++ if ( indexLastDot > -1 && sClassName.copy( indexLastDot + 1).equalsIgnoreAsciiCase( OUString( RTL_CONSTASCII_USTRINGPARAM("X") ) + aClass ) )
++ {
++ result = true;
++ break;
++ }
++ }
++ }
++ return result;
++}
+
+ // Dbg-Hilfsmethode zum Auslesen der in einem Object implementierten Interfaces
+ String Impl_GetSupportedInterfaces( SbUnoObject* pUnoObj )
+@@ -3066,6 +3114,83 @@ void RTL_Impl_EqualUnoObjects( StarBASIC
+ refVar->PutBool( TRUE );
+ }
+
++typedef std::hash_map< OUString, std::vector< OUString >, OUStringHash, ::std::equal_to< OUString > > ModuleHash;
++
++
++// helper wrapper function to interact with TypeProvider and
++// XTypeDescriptionEnumerationAccess.
++// if it fails for whatever reason
++// returned Reference<> be null e.g. .is() will be false
++
++Reference< XTypeDescriptionEnumeration >
++getTypeDescriptorEnumeration( const OUString& sSearchRoot,
++ const Sequence< TypeClass >& types, TypeDescriptionSearchDepth depth )
++{
++ Reference< XTypeDescriptionEnumeration > xEnum;
++ Reference< XTypeDescriptionEnumerationAccess> xTypeEnumAccess( getTypeProvider_Impl(), UNO_QUERY );
++ if ( xTypeEnumAccess.is() )
++ {
++ try
++ {
++ xEnum = xTypeEnumAccess->createTypeDescriptionEnumeration(
++ sSearchRoot, types, depth );
++ }
++ catch( NoSuchTypeNameException& /*nstne*/ ) {}
++ catch( InvalidTypeNameException& /*nstne*/ ) {}
++ }
++ return xEnum;
++}
++
++typedef std::hash_map< OUString, Any, OUStringHash, ::std::equal_to< OUString > > VBAConstantsHash;
++
++SbxVariable* getVBAConstant( const String& rName )
++{
++ SbxVariable* pConst = NULL;
++ static VBAConstantsHash aConstCache;
++ static bool isInited = false;
++ if ( !isInited )
++ {
++ Sequence< TypeClass > types(1);
++ types[ 0 ] = TypeClass_CONSTANTS;
++ Reference< XTypeDescriptionEnumeration > xEnum = getTypeDescriptorEnumeration( defaultNameSpace, types, TypeDescriptionSearchDepth_INFINITE );
++
++ if ( !xEnum.is() )
++ return NULL;
++
++ while ( xEnum->hasMoreElements() )
++ {
++ Reference< XConstantsTypeDescription > xConstants( xEnum->nextElement(), UNO_QUERY );
++ if ( xConstants.is() )
++ {
++ Sequence< Reference< XConstantTypeDescription > > aConsts = xConstants->getConstants();
++ Reference< XConstantTypeDescription >* pSrc = aConsts.getArray();
++ sal_Int32 nLen = aConsts.getLength();
++ for ( sal_Int32 index =0; index<nLen; ++pSrc, ++index )
++ {
++ Reference< XConstantTypeDescription >& rXConst =
++ *pSrc;
++ OUString sFullName = rXConst->getName();
++ sal_Int32 indexLastDot = sFullName.lastIndexOf('.');
++ OUString sLeafName;
++ if ( indexLastDot > -1 )
++ sLeafName = sFullName.copy( indexLastDot + 1);
++ aConstCache[ sLeafName.toAsciiLowerCase() ] = rXConst->getConstantValue();
++ }
++ }
++ }
++ isInited = true;
++ }
++ OUString sKey( rName );
++ VBAConstantsHash::const_iterator it = aConstCache.find( sKey.toAsciiLowerCase() );
++ if ( it != aConstCache.end() )
++ {
++ pConst = new SbxVariable( SbxVARIANT );
++ pConst->SetName( rName );
++ unoToSbxValue( pConst, it->second );
++ }
++ return pConst;
++}
++
+ // Funktion, um einen globalen Bezeichner im
+ // UnoScope zu suchen und fuer Sbx zu wrappen
+ SbxVariable* findUnoClass( const String& rName )
+Index: basic/source/classes/sbxmod.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/classes/sbxmod.cxx,v
+retrieving revision 1.36
+retrieving revision 1.36.42.3
+diff -u -p -r1.36 -r1.36.42.3
+--- basic/source/classes/sbxmod.cxx 3 Nov 2006 15:10:25 -0000 1.36
++++ basic/source/classes/sbxmod.cxx 2 May 2007 09:44:42 -0000 1.36.42.3
+@@ -166,7 +166,8 @@ static const char* strListBasicKeyWords[
+ "integer",
+ "is",
+ "let",
+- "lib"
++ "lib",
++ "like",
+ "line",
+ "line input",
+ "local",
+@@ -544,7 +545,8 @@ void SbModule::SetSource32( const ::rtl:
+ if( eCurTok == OPTION )
+ {
+ eCurTok = aTok.Next();
+- if( eCurTok == COMPATIBLE )
++ if( eCurTok == COMPATIBLE
++ || ( ( eCurTok == VBASUPPORT ) && ( aTok.Next() == NUMBER ) && ( aTok.GetDbl()== 1 ) ) )
+ aTok.SetCompatible( true );
+ }
+ }
+@@ -756,7 +758,10 @@ USHORT SbModule::Run( SbMethod* pMeth )
+ pRt->pNext->block();
+ pINST->pRun = pRt;
+ if ( SbiRuntime ::isVBAEnabled() )
++ {
+ pINST->EnableCompatibility( TRUE );
++ pRt->SetVBAEnabled( true );
++ }
+ while( pRt->Step() ) {}
+ if( pRt->pNext )
+ pRt->pNext->unblock();
+cvs diff: Diffing basic/source/comp
+Index: basic/source/comp/codegen.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/codegen.cxx,v
+retrieving revision 1.16
+retrieving revision 1.16.42.1
+diff -u -p -r1.16 -r1.16.42.1
+--- basic/source/comp/codegen.cxx 3 Nov 2006 15:11:02 -0000 1.16
++++ basic/source/comp/codegen.cxx 2 May 2007 09:45:21 -0000 1.16.42.1
+@@ -135,7 +135,7 @@ void SbiCodeGen::Save()
+ // OPTION EXPLICIT-Flag uebernehmen
+ if( pParser->bExplicit )
+ p->SetFlag( SBIMG_EXPLICIT );
+- if( pParser->bVBASupportOn )
++ if( pParser->IsVBASupportOn() )
+ p->SetFlag( SBIMG_VBASUPPORT );
+
+ int nIfaceCount = 0;
+Index: basic/source/comp/dim.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/dim.cxx,v
+retrieving revision 1.26
+retrieving revision 1.26.42.2
+diff -u -p -r1.26 -r1.26.42.2
+--- basic/source/comp/dim.cxx 1 Nov 2006 16:13:55 -0000 1.26
++++ basic/source/comp/dim.cxx 2 May 2007 09:44:56 -0000 1.26.42.2
+@@ -203,6 +203,10 @@ void SbiParser::DefVar( SbiOpcode eOp, B
+ if( eCurTok == GLOBAL )
+ bPersistantGlobal = TRUE;
+ }
++ // behavior in VBA is that a module scope variable's lifetime is
++ // tied to the document. e.g. a module scope variable is global
++ if( GetBasic()->IsDocBasic() && bVBASupportOn && !pProc )
++ bPersistantGlobal = TRUE;
+ // PRIVATE ist Synonym fuer DIM
+ // _CONST_?
+ BOOL bConst = FALSE;
+@@ -334,7 +338,7 @@ void SbiParser::DefVar( SbiOpcode eOp, B
+ {
+ case SbGLOBAL: eOp2 = bPersistantGlobal ? _GLOBAL_P : _GLOBAL;
+ goto global;
+- case SbPUBLIC: eOp2 = _PUBLIC;
++ case SbPUBLIC: eOp2 = bPersistantGlobal ? _PUBLIC_P : _PUBLIC;
+ // AB 9.7.97, #40689, kein eigener Opcode mehr
+ /*
+ if( bStatic )
+@@ -439,7 +443,14 @@ void SbiParser::DefVar( SbiOpcode eOp, B
+ {
+ SbiExpression aExpr( this, *pDef, NULL );
+ aExpr.Gen();
+- aGen.Gen( _ERASE );
++ if ( bVBASupportOn )
++ // delete the array but
++ // clear the variable ( this
++ // allows the processing of
++ // the param to happen as normal without errors ( ordinary ERASE just clears the array )
++ aGen.Gen( _ERASE_CLEAR );
++ else
++ aGen.Gen( _ERASE );
+ }
+ else if( eOp == _REDIMP )
+ {
+Index: basic/source/comp/exprnode.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/exprnode.cxx,v
+retrieving revision 1.16
+retrieving revision 1.16.48.1
+diff -u -p -r1.16 -r1.16.48.1
+--- basic/source/comp/exprnode.cxx 12 Oct 2006 14:34:58 -0000 1.16
++++ basic/source/comp/exprnode.cxx 16 Feb 2007 17:14:15 -0000 1.16.48.1
+@@ -244,7 +244,7 @@ void SbiExprNode::CollectBits()
+
+ void SbiExprNode::FoldConstants()
+ {
+- if( IsOperand() ) return;
++ if( IsOperand() || eTok == LIKE ) return;
+ pLeft->FoldConstants();
+ if( pRight )
+ {
+Index: basic/source/comp/parser.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/parser.cxx,v
+retrieving revision 1.19
+retrieving revision 1.19.42.2
+diff -u -p -r1.19 -r1.19.42.2
+--- basic/source/comp/parser.cxx 2 Nov 2006 16:32:13 -0000 1.19
++++ basic/source/comp/parser.cxx 2 May 2007 09:45:21 -0000 1.19.42.2
+@@ -152,7 +152,6 @@ SbiParser::SbiParser( StarBASIC* pb, SbM
+ bSingleLineIf =
+ bExplicit = FALSE;
+ bClassModule = FALSE;
+- bVBASupportOn = FALSE;
+ pPool = &aPublics;
+ for( short i = 0; i < 26; i++ )
+ eDefTypes[ i ] = SbxVARIANT; // Kein expliziter Defaulttyp
+@@ -609,7 +608,12 @@ void SbiParser::Set()
+ // ( its necessary for vba objects where set is object
+ // specific and also doesn't involve processing default params )
+ if( pDef->GetTypeId() )
+- aGen.Gen( _SETCLASS, pDef->GetTypeId() );
++ {
++ if ( bVBASupportOn )
++ aGen.Gen( _VBASETCLASS, pDef->GetTypeId() );
++ else
++ aGen.Gen( _SETCLASS, pDef->GetTypeId() );
++ }
+ else
+ {
+ if ( bVBASupportOn )
+Index: basic/source/comp/scanner.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/scanner.cxx,v
+retrieving revision 1.23
+retrieving revision 1.23.42.1
+diff -u -p -r1.23 -r1.23.42.1
+--- basic/source/comp/scanner.cxx 2 Nov 2006 11:02:47 -0000 1.23
++++ basic/source/comp/scanner.cxx 2 May 2007 09:45:21 -0000 1.23.42.1
+@@ -53,6 +53,7 @@
+ #include <unotools/charclass.hxx>
+ #endif
+
++#include <runtime.hxx>
+
+ SbiScanner::SbiScanner( const ::rtl::OUString& rBuf, StarBASIC* p ) : aBuf( rBuf )
+ {
+@@ -76,6 +77,7 @@ SbiScanner::SbiScanner( const ::rtl::OUS
+ bSymbol =
+ bUsedForHilite =
+ bCompatible =
++ bVBASupportOn =
+ bPrevLineExtentsComment = FALSE;
+ bHash =
+ bErrors = TRUE;
+@@ -424,7 +426,11 @@ BOOL SbiScanner::NextSym()
+ if( *pLine != cSep || cSep == ']' ) break;
+ } else aError = cSep, GenError( SbERR_EXPECTED );
+ }
+- aSym = aLine.copy( n, nCol - n - 1 );
++ // If VBA Interop then doen't eat the [] chars
++ if ( cSep == ']' && bVBASupportOn )
++ aSym = aLine.copy( n - 1, nCol - n + 1);
++ else
++ aSym = aLine.copy( n, nCol - n - 1 );
+ // Doppelte Stringbegrenzer raus
+ String s( cSep );
+ s += cSep;
+Index: basic/source/comp/token.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/token.cxx,v
+retrieving revision 1.21
+retrieving revision 1.21.48.1
+diff -u -p -r1.21 -r1.21.48.1
+--- basic/source/comp/token.cxx 12 Oct 2006 14:28:11 -0000 1.21
++++ basic/source/comp/token.cxx 16 Feb 2007 17:14:15 -0000 1.21.48.1
+@@ -130,6 +130,7 @@ static TokenTable aTokTable_Basic [] = {
+ { IS, "Is" },
+ { LET, "Let" },
+ { LIB, "Lib" },
++ { LIKE, "Like" },
+ { LINE, "Line" },
+ { LINEINPUT,"Line Input" },
+ { LOCAL, "Local" },
+cvs diff: Diffing basic/source/inc
+Index: basic/source/inc/opcodes.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/opcodes.hxx,v
+retrieving revision 1.11
+retrieving revision 1.11.42.3
+diff -u -p -r1.11 -r1.11.42.3
+--- basic/source/inc/opcodes.hxx 2 Nov 2006 16:32:24 -0000 1.11
++++ basic/source/inc/opcodes.hxx 2 May 2007 09:45:22 -0000 1.11.42.3
+@@ -99,6 +99,7 @@ enum SbiOpcode {
+ _REDIMP_ERASE, // Copies array to be later used by REDIM PRESERVE before erasing it
+ _INITFOREACH,
+ _VBASET, // VBA-like Set
++ _ERASE_CLEAR, // Erase array and clear variable
+ SbOP0_END,
+
+ // Alle Opcodes mit einem Operanden
+@@ -132,6 +133,7 @@ enum SbiOpcode {
+ _BASED, // TOS wird um BASE erhoeht, BASE davor gepusht (+base)
+ // Typanpassung im Argv
+ _ARGTYP, // Letzten Parameter in Argv konvertieren (+Typ)
++ _VBASETCLASS, // VBA-like Set
+ SbOP1_END,
+
+ // Alle Opcodes mit zwei Operanden
+@@ -164,6 +166,7 @@ enum SbiOpcode {
+ _FIND_G, // Sucht globale Variable mit Spezialbehandlung wegen _GLOBAL_P
+ _DCREATE_REDIMP, // Objekt-Array redimensionieren (+StringId+StringID)
+ _FIND_CM, // Search inside a class module (CM) to enable global search in time
++ _PUBLIC_P, // Module global Variable (persisted between calls)(+StringID+Typ)
+ SbOP2_END
+
+ };
+Index: basic/source/inc/parser.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/parser.hxx,v
+retrieving revision 1.10
+retrieving revision 1.10.42.1
+diff -u -p -r1.10 -r1.10.42.1
+--- basic/source/inc/parser.hxx 1 Nov 2006 16:15:58 -0000 1.10
++++ basic/source/inc/parser.hxx 2 May 2007 09:45:22 -0000 1.10.42.1
+@@ -94,7 +94,6 @@ public:
+ BOOL bText; // OPTION COMPARE TEXT
+ BOOL bExplicit; // TRUE: OPTION EXPLICIT
+ BOOL bClassModule; // TRUE: OPTION ClassModule
+- BOOL bVBASupportOn; // TRUE: OPTION VBASupport 1 otherwise default False
+ IfaceVector aIfaceVector; // Holds all interfaces implemented by a class module
+ SbxDataType eDefTypes[26]; // DEFxxx-Datentypen
+
+Index: basic/source/inc/runtime.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/runtime.hxx,v
+retrieving revision 1.33
+retrieving revision 1.33.42.4
+diff -u -p -r1.33 -r1.33.42.4
+--- basic/source/inc/runtime.hxx 2 Nov 2006 16:32:35 -0000 1.33
++++ basic/source/inc/runtime.hxx 2 May 2007 09:44:56 -0000 1.33.42.4
+@@ -360,6 +360,7 @@ class SbiRuntime
+ BOOL bError; // TRUE: Fehler behandeln
+ BOOL bInError; // TRUE: in einem Fehler-Handler
+ BOOL bBlocked; // TRUE: blocked by next call level, #i48868
++ BOOL bVBAEnabled;
+ USHORT nFlags; // Debugging-Flags
+ SbError nError; // letzter Fehler
+ USHORT nOps; // Opcode-Zaehler
+@@ -429,6 +430,8 @@ class SbiRuntime
+ // #115829
+ bool implIsClass( SbxObject* pObj, const String& aClass );
+
++ void StepSETCLASS_impl( UINT32 nOp1, bool bHandleDflt = false );
++
+ // Die nachfolgenden Routinen werden vom Single Stepper
+ // gerufen und implementieren die einzelnen Opcodes
+ void StepNOP(), StepEXP(), StepMUL(), StepDIV();
+@@ -447,7 +450,7 @@ class SbiRuntime
+ void StepNOERROR(), StepCHANNEL(), StepCHANNEL0(), StepPRINT();
+ void StepPRINTF(), StepWRITE(), StepRENAME(), StepPROMPT();
+ void StepRESTART(), StepEMPTY(), StepLEAVE();
+- void StepLSET(), StepRSET(), StepREDIMP_ERASE();
++ void StepLSET(), StepRSET(), StepREDIMP_ERASE(), StepERASE_CLEAR();
+ // Alle Opcodes mit einem Operanden
+ void StepLOADNC( UINT32 ), StepLOADSC( UINT32 ), StepLOADI( UINT32 );
+ void StepARGN( UINT32 ), StepBASED( UINT32 ), StepPAD( UINT32 );
+@@ -455,11 +458,11 @@ class SbiRuntime
+ void StepJUMPF( UINT32 ), StepONJUMP( UINT32 );
+ void StepGOSUB( UINT32 ), StepRETURN( UINT32 );
+ void StepTESTFOR( UINT32 ), StepCASETO( UINT32 ), StepERRHDL( UINT32 );
+- void StepRESUME( UINT32 ), StepSETCLASS( UINT32 ), StepTESTCLASS( UINT32 ), StepLIB( UINT32 );
++ void StepRESUME( UINT32 ), StepSETCLASS( UINT32 ), StepVBASETCLASS( UINT32 ), StepTESTCLASS( UINT32 ), StepLIB( UINT32 );
+ bool checkClass_Impl( const SbxVariableRef& refVal, const String& aClass, bool bRaiseErrors );
+ void StepCLOSE( UINT32 ), StepPRCHAR( UINT32 ), StepARGTYP( UINT32 );
+ // Alle Opcodes mit zwei Operanden
+- void StepRTL( UINT32, UINT32 ), StepPUBLIC( UINT32, UINT32 );
++ void StepRTL( UINT32, UINT32 ), StepPUBLIC( UINT32, UINT32 ), StepPUBLIC_P( UINT32, UINT32 );
+ void StepPUBLIC_Impl( UINT32, UINT32, bool bUsedForClassModule );
+ void StepFIND( UINT32, UINT32 ), StepELEM( UINT32, UINT32 );
+ void StepGLOBAL( UINT32, UINT32 ), StepLOCAL( UINT32, UINT32 );
+@@ -472,6 +475,7 @@ class SbiRuntime
+ void StepDCREATE_REDIMP(UINT32,UINT32), StepDCREATE_IMPL(UINT32,UINT32);
+ void StepFIND_CM( UINT32, UINT32 );
+ public:
++ void SetVBAEnabled( bool bEnabled ) { bVBAEnabled = bEnabled; };
+ USHORT GetImageFlag( USHORT n ) const;
+ USHORT GetBase();
+ xub_StrLen nLine,nCol1,nCol2; // aktuelle Zeile, Spaltenbereich
+Index: basic/source/inc/scanner.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/scanner.hxx,v
+retrieving revision 1.10
+retrieving revision 1.10.176.1
+diff -u -p -r1.10 -r1.10.176.1
+--- basic/source/inc/scanner.hxx 29 Sep 2005 18:41:38 -0000 1.10
++++ basic/source/inc/scanner.hxx 2 May 2007 09:45:22 -0000 1.10.176.1
+@@ -79,7 +79,8 @@ protected:
+ BOOL bHash; // TRUE: # eingelesen
+ BOOL bError; // TRUE: Fehler generieren
+ BOOL bUsedForHilite; // TRUE: Nutzung fuer Highlighting
+- BOOL bCompatible; // TRUE: OPTION Compatible
++ BOOL bCompatible; // TRUE: OPTION Compatibl
++ BOOL bVBASupportOn; // TRUE: OPTION VBASupport 1 otherwise default False
+ BOOL bPrevLineExtentsComment; // TRUE: Previous line is comment and ends on "... _"
+
+ void GenError( SbError );
+@@ -91,6 +92,8 @@ public:
+ BOOL IsHash() { return bHash; }
+ BOOL IsCompatible() { return bCompatible; }
+ void SetCompatible( bool b ) { bCompatible = b; } // #118206
++ BOOL IsVBASupportOn() { return bVBASupportOn; }
++ void SetVBASupportOn( bool b ) { bVBASupportOn = b; }
+ BOOL WhiteSpace() { return bSpaces; }
+ short GetErrors() { return nErrors; }
+ short GetLine() { return nLine; }
+cvs diff: Diffing basic/source/runtime
+Index: basic/source/runtime/runtime.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/runtime.cxx,v
+retrieving revision 1.35
+retrieving revision 1.35.6.4
+diff -u -p -r1.35 -r1.35.6.4
+--- basic/source/runtime/runtime.cxx 29 Jan 2007 15:05:41 -0000 1.35
++++ basic/source/runtime/runtime.cxx 2 May 2007 09:44:22 -0000 1.35.6.4
+@@ -153,6 +153,7 @@ SbiRuntime::pStep0 SbiRuntime::aStep0[]
+ &SbiRuntime::StepREDIMP_ERASE,// Copy array object for REDIMP
+ &SbiRuntime::StepINITFOREACH,// Init for each loop
+ &SbiRuntime::StepVBASET,// vba-like set statement
++ &SbiRuntime::StepERASE_CLEAR,// vba-like set statement
+ };
+
+ SbiRuntime::pStep1 SbiRuntime::aStep1[] = { // Alle Opcodes mit einem Operanden
+@@ -181,6 +182,7 @@ SbiRuntime::pStep1 SbiRuntime::aStep1[]
+ &SbiRuntime::StepLIB, // Lib fuer Declare-Call (+StringId)
+ &SbiRuntime::StepBASED, // TOS wird um BASE erhoeht, BASE davor gepusht
+ &SbiRuntime::StepARGTYP, // Letzten Parameter in Argv konvertieren (+Typ)
++ &SbiRuntime::StepVBASETCLASS,// vba-like set statement
+ };
+
+ SbiRuntime::pStep2 SbiRuntime::aStep2[] = {// Alle Opcodes mit zwei Operanden
+@@ -209,6 +211,7 @@ SbiRuntime::pStep2 SbiRuntime::aStep2[]
+ &SbiRuntime::StepFIND_G, // Sucht globale Variable mit Spezialbehandlung wegen _GLOBAL_P
+ &SbiRuntime::StepDCREATE_REDIMP, // Objekt-Array redimensionieren (+StringID+StringID)
+ &SbiRuntime::StepFIND_CM, // Search inside a class module (CM) to enable global search in time
++ &SbiRuntime::StepPUBLIC_P, // Search inside a class module (CM) to enable global search in time
+ };
+
+
+@@ -538,6 +541,7 @@ SbiRuntime::SbiRuntime( SbModule* pm, Sb
+ #endif
+ pRefSaveList = NULL;
+ pItemStoreList = NULL;
++ bVBAEnabled = isVBAEnabled();
+ }
+
+ SbiRuntime::~SbiRuntime()
+Index: basic/source/runtime/step0.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/step0.cxx,v
+retrieving revision 1.28
+retrieving revision 1.27.42.7
+diff -u -p -r1.28 -r1.27.42.7
+--- basic/source/runtime/step0.cxx 26 Apr 2007 08:33:37 -0000 1.28
++++ basic/source/runtime/step0.cxx 2 May 2007 09:45:35 -0000 1.27.42.7
+@@ -49,7 +49,11 @@
+ #include <sb.hrc>
+ #include <basrid.hxx>
+ #include "sbunoobj.hxx"
++#include "image.hxx"
+ #include <com/sun/star/uno/Any.hxx>
++#include <com/sun/star/util/SearchOptions.hdl>
++#include <vcl/svapp.hxx>
++#include <unotools/textsearch.hxx>
+
+ #include <algorithm>
+
+@@ -64,7 +68,6 @@ void SbiRuntime::StepArith( SbxOperator
+ TOSMakeTemp();
+ SbxVariable* p2 = GetTOS();
+
+- bool bVBAInterop = SbiRuntime::isVBAEnabled();
+
+ // This could & should be moved to the MakeTempTOS() method in runtime.cxx
+ // In the code which this is cut'npaste from there is a check for a ref
+@@ -74,7 +77,7 @@ void SbiRuntime::StepArith( SbxOperator
+ // here we alway seem to have a refcount of 1. Also it seems that
+ // MakeTempTOS is called for other operation, so I hold off for now
+ // until I have a better idea
+- if ( bVBAInterop
++ if ( bVBAEnabled
+ && ( p2->GetType() == SbxOBJECT || p2->GetType() == SbxVARIANT )
+ )
+ {
+@@ -110,6 +113,40 @@ void SbiRuntime::StepCompare( SbxOperato
+ {
+ SbxVariableRef p1 = PopVar();
+ SbxVariableRef p2 = PopVar();
++
++ // Make sure objects with default params have
++ // values ( and type ) set as appropriate
++ SbxDataType p1Type = p1->GetType();
++ SbxDataType p2Type = p2->GetType();
++ if ( p1Type == p2Type )
++ {
++ if ( p1Type == SbxEMPTY )
++ {
++ p1->Broadcast( SBX_HINT_DATAWANTED );
++ p2->Broadcast( SBX_HINT_DATAWANTED );
++ }
++ // if both sides are an object and have default props
++ // then we need to use the default props
++ // we don't need to worry if only one side ( lhs, rhs ) is an
++ // object ( object side will get coerced to correct type in
++ // Compare )
++ else if ( p1Type == SbxOBJECT )
++ {
++ SbxVariable* pDflt = getDefaultProp( p1 );
++ if ( pDflt )
++ {
++ p1 = pDflt;
++ p1->Broadcast( SBX_HINT_DATAWANTED );
++ }
++ pDflt = getDefaultProp( p2 );
++ if ( pDflt )
++ {
++ p2 = pDflt;
++ p2->Broadcast( SBX_HINT_DATAWANTED );
++ }
++ }
++
++ }
+ #ifndef WIN
+ static SbxVariable* pTRUE = NULL;
+ static SbxVariable* pFALSE = NULL;
+@@ -166,9 +203,116 @@ void SbiRuntime::StepGT() { StepCompare
+ void SbiRuntime::StepLE() { StepCompare( SbxLE ); }
+ void SbiRuntime::StepGE() { StepCompare( SbxGE ); }
+
++namespace
++{
++ bool NeedEsc(sal_Unicode cCode)
++ {
++ String sEsc(RTL_CONSTASCII_USTRINGPARAM(".^$+\\|{}()"));
++ return (STRING_NOTFOUND != sEsc.Search(cCode));
++ }
++
++ String VBALikeToRegexp(const String &rIn)
++ {
++ String sResult;
++ const sal_Unicode *start = rIn.GetBuffer();
++ const sal_Unicode *end = start + rIn.Len();
++
++ int seenright = 0;
++
++ sResult.Append('^');
++
++ while (start < end)
++ {
++ switch (*start)
++ {
++ case '?':
++ sResult.Append('.');
++ start++;
++ break;
++ case '*':
++ sResult.Append(String(RTL_CONSTASCII_USTRINGPARAM(".*")));
++ start++;
++ break;
++ case '#':
++ sResult.Append(String(RTL_CONSTASCII_USTRINGPARAM("[0-9]")));
++ start++;
++ break;
++ case ']':
++ sResult.Append('\\');
++ sResult.Append(*start++);
++ break;
++ case '[':
++ sResult.Append(*start++);
++ seenright = 0;
++ while (start < end && !seenright)
++ {
++ switch (*start)
++ {
++ case '[':
++ case '?':
++ case '*':
++ sResult.Append('\\');
++ sResult.Append(*start);
++ break;
++ case ']':
++ sResult.Append(*start);
++ seenright = 1;
++ break;
++ case '!':
++ sResult.Append('^');
++ break;
++ default:
++ if (NeedEsc(*start))
++ sResult.Append('\\');
++ sResult.Append(*start);
++ break;
++ }
++ start++;
++ }
++ break;
++ default:
++ if (NeedEsc(*start))
++ sResult.Append('\\');
++ sResult.Append(*start++);
++ }
++ }
++
++ sResult.Append('$');
++
++ return sResult;
++ }
++}
++
+ void SbiRuntime::StepLIKE()
+ {
+- StarBASIC::FatalError( SbERR_NOT_IMPLEMENTED );
++ SbxVariableRef refVar1 = PopVar();
++ SbxVariableRef refVar2 = PopVar();
++
++ String pattern = VBALikeToRegexp(refVar1->GetString());
++ String value = refVar2->GetString();
++
++ com::sun::star::util::SearchOptions aSearchOpt;
++
++ aSearchOpt.algorithmType = com::sun::star::util::SearchAlgorithms_REGEXP;
++
++ aSearchOpt.Locale = Application::GetSettings().GetLocale();
++ aSearchOpt.searchString = pattern;
++
++ int bTextMode(1);
++ bool bCompatibility = ( pINST && pINST->IsCompatibility() );
++ if( bCompatibility )
++ bTextMode = GetImageFlag( SBIMG_COMPARETEXT );
++
++ if( bTextMode )
++ aSearchOpt.transliterateFlags |= com::sun::star::i18n::TransliterationModules_IGNORE_CASE;
++
++ SbxVariable* pRes = new SbxVariable;
++ utl::TextSearch aSearch(aSearchOpt);
++ xub_StrLen nStart=0, nEnd=value.Len();
++ int bRes = aSearch.SearchFrwrd(value, &nStart, &nEnd);
++ pRes->PutBool( bRes != 0 );
++
++ PushVar( pRes );
+ }
+
+ // TOS und TOS-1 sind beides Objektvariable und enthalten den selben Pointer
+@@ -244,14 +388,13 @@ void SbiRuntime::StepPUT()
+ n = refVar->GetFlags();
+ refVar->SetFlag( SBX_WRITE );
+ }
+- bool bVBAInterop = SbiRuntime::isVBAEnabled();
+
+ // if left side arg is an object or variant and right handside isn't
+ // either an object or a variant then try and see if a default
+ // property exists.
+ // to use e.g. Range{"A1") = 34
+ // could equate to Range("A1").Value = 34
+- if ( bVBAInterop )
++ if ( bVBAEnabled )
+ {
+ if ( refVar->GetType() == SbxOBJECT )
+ {
+@@ -269,7 +412,7 @@ void SbiRuntime::StepPUT()
+
+ *refVar = *refVal;
+ // lhs is a property who's value is currently null
+- if ( !bVBAInterop || ( bVBAInterop && refVar->GetType() != SbxEMPTY ) )
++ if ( !bVBAEnabled || ( bVBAEnabled && refVar->GetType() != SbxEMPTY ) )
+ // #67607 Uno-Structs kopieren
+ checkUnoStructCopy( refVal, refVar );
+ if( bFlagsChanged )
+@@ -402,7 +545,7 @@ void SbiRuntime::StepSET()
+ {
+ SbxVariableRef refVal = PopVar();
+ SbxVariableRef refVar = PopVar();
+- StepSET_Impl( refVal, refVar, SbiRuntime::isVBAEnabled() ); // this is really assigment
++ StepSET_Impl( refVal, refVar, bVBAEnabled ); // this is really assigment
+ }
+
+ void SbiRuntime::StepVBASET()
+@@ -525,6 +668,8 @@ void SbiRuntime::DimImpl( SbxVariableRef
+ if( ub < lb )
+ Error( SbERR_OUT_OF_RANGE ), ub = lb;
+ pArray->AddDim32( lb, ub );
++ if ( lb != ub )
++ pArray->setHasFixedSize( true );
+ }
+ }
+ else
+@@ -693,27 +838,51 @@ void SbiRuntime::StepREDIMP_ERASE()
+ refVar->SetType( SbxEMPTY );
+ }
+
++void lcl_clearImpl( SbxVariableRef& refVar, SbxDataType& eType )
++{
++ USHORT nSavFlags = refVar->GetFlags();
++ refVar->ResetFlag( SBX_FIXED );
++ refVar->SetType( SbxDataType(eType & 0x0FFF) );
++ refVar->SetFlags( nSavFlags );
++ refVar->Clear();
++}
+
+-// Variable loeschen
+-// TOS = Variable
+-
+-void SbiRuntime::StepERASE()
++void lcl_eraseImpl( SbxVariableRef& refVar, bool bVBAEnabled )
+ {
+- SbxVariableRef refVar = PopVar();
+ SbxDataType eType = refVar->GetType();
+ if( eType & SbxARRAY )
+ {
++ if ( bVBAEnabled )
++ {
++ SbxBase* pElemObj = refVar->GetObject();
++ SbxDimArray* pDimArray = PTR_CAST(SbxDimArray,pElemObj);
++ bool bClearValues = true;
++ if( pDimArray )
++ {
++ if ( pDimArray->hasFixedSize() )
++ {
++ // Clear all Value(s)
++ pDimArray->SbxArray::Clear();
++ bClearValues = false;
++ }
++ else
++ pDimArray->Clear(); // clear Dims
++ }
++ if ( bClearValues )
++ {
++ SbxArray* pArray = PTR_CAST(SbxArray,pElemObj);
++ if ( pArray )
++ pArray->Clear();
++ }
++ }
++ else
+ // AB 2.4.1996
+ // Arrays haben bei Erase nach VB ein recht komplexes Verhalten. Hier
+ // werden zunaechst nur die Typ-Probleme bei REDIM (#26295) beseitigt:
+ // Typ hart auf den Array-Typ setzen, da eine Variable mit Array
+ // SbxOBJECT ist. Bei REDIM entsteht dann ein SbxOBJECT-Array und
+ // der ursruengliche Typ geht verloren -> Laufzeitfehler
+- USHORT nSavFlags = refVar->GetFlags();
+- refVar->ResetFlag( SBX_FIXED );
+- refVar->SetType( SbxDataType(eType & 0x0FFF) );
+- refVar->SetFlags( nSavFlags );
+- refVar->Clear();
++ lcl_clearImpl( refVar, eType );
+ }
+ else
+ if( refVar->IsFixed() )
+@@ -722,6 +891,23 @@ void SbiRuntime::StepERASE()
+ refVar->SetType( SbxEMPTY );
+ }
+
++// Variable loeschen
++// TOS = Variable
++
++void SbiRuntime::StepERASE()
++{
++ SbxVariableRef refVar = PopVar();
++ lcl_eraseImpl( refVar, bVBAEnabled );
++}
++
++void SbiRuntime::StepERASE_CLEAR()
++{
++ SbxVariableRef refVar = PopVar();
++ lcl_eraseImpl( refVar, bVBAEnabled );
++ SbxDataType eType = refVar->GetType();
++ lcl_clearImpl( refVar, eType );
++}
++
+ // Einrichten eines Argvs
+ // nOp1 bleibt so -> 1. Element ist Returnwert
+
+Index: basic/source/runtime/step1.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/step1.cxx,v
+retrieving revision 1.16
+retrieving revision 1.16.42.1
+diff -u -p -r1.16 -r1.16.42.1
+--- basic/source/runtime/step1.cxx 3 Nov 2006 15:10:48 -0000 1.16
++++ basic/source/runtime/step1.cxx 27 Feb 2007 18:29:10 -0000 1.16.42.1
+@@ -44,6 +44,9 @@
+ #include "image.hxx"
+ #include "sbunoobj.hxx"
+
++bool checkUnoObjectType( SbUnoObject* refVal,
++ const String& aClass );
++
+ // Laden einer numerischen Konstanten (+ID)
+
+ void SbiRuntime::StepLOADNC( UINT32 nOp1 )
+@@ -476,9 +479,18 @@ bool SbiRuntime::checkClass_Impl( const
+ {
+ if( !implIsClass( pObj, aClass ) )
+ {
+- if( bRaiseErrors )
+- Error( SbERR_INVALID_USAGE_OBJECT );
+- bOk = false;
++ if ( bVBAEnabled && pObj->IsA( TYPE(SbUnoObject) ) )
++ {
++ SbUnoObject* pUnoObj = PTR_CAST(SbUnoObject,pObj);
++ bOk = checkUnoObjectType( pUnoObj, aClass );
++ }
++ else
++ bOk = false;
++ if ( !bOk )
++ {
++ if( bRaiseErrors )
++ Error( SbERR_INVALID_USAGE_OBJECT );
++ }
+ }
+ else
+ {
+@@ -490,14 +502,17 @@ bool SbiRuntime::checkClass_Impl( const
+ }
+ else
+ {
+- if( bRaiseErrors )
+- Error( SbERR_NEEDS_OBJECT );
+- bOk = false;
++ if ( !bVBAEnabled )
++ {
++ if( bRaiseErrors )
++ Error( SbERR_NEEDS_OBJECT );
++ bOk = false;
++ }
+ }
+ return bOk;
+ }
+
+-void SbiRuntime::StepSETCLASS( UINT32 nOp1 )
++void SbiRuntime::StepSETCLASS_impl( UINT32 nOp1, bool bHandleDflt )
+ {
+ SbxVariableRef refVal = PopVar();
+ SbxVariableRef refVar = PopVar();
+@@ -505,7 +520,17 @@ void SbiRuntime::StepSETCLASS( UINT32 nO
+
+ bool bOk = checkClass_Impl( refVal, aClass, true );
+ if( bOk )
+- StepSET_Impl( refVal, refVar );
++ StepSET_Impl( refVal, refVar, bHandleDflt ); // don't do handle dflt prop for a "proper" set
++}
++
++void SbiRuntime::StepVBASETCLASS( UINT32 nOp1 )
++{
++ StepSETCLASS_impl( nOp1, false );
++}
++
++void SbiRuntime::StepSETCLASS( UINT32 nOp1 )
++{
++ StepSETCLASS_impl( nOp1, true );
+ }
+
+ void SbiRuntime::StepTESTCLASS( UINT32 nOp1 )
+Index: basic/source/runtime/step2.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/step2.cxx,v
+retrieving revision 1.29
+retrieving revision 1.27.42.5
+diff -u -p -r1.29 -r1.27.42.5
+--- basic/source/runtime/step2.cxx 27 Apr 2007 09:16:12 -0000 1.29
++++ basic/source/runtime/step2.cxx 2 May 2007 09:44:56 -0000 1.27.42.5
+@@ -54,6 +54,8 @@
+ using namespace com::sun::star::container;
+ using namespace com::sun::star::lang;
+
++SbxVariable* getVBAConstant( const String& rName );
++
+ const static String aThisComponent( RTL_CONSTASCII_USTRINGPARAM("ThisComponent") );
+ const static String aVBAHook( RTL_CONSTASCII_USTRINGPARAM( "VBAGlobals" ) );
+ // i#i68894#
+@@ -113,8 +115,6 @@ SbxVariable* SbiRuntime::FindElement
+ ( SbxObject* pObj, UINT32 nOp1, UINT32 nOp2, SbError nNotFound, BOOL bLocal )
+ {
+
+- bool bIsVBAInterOp = SbiRuntime::isVBAEnabled();
+-
+ SbxVariable* pElem = NULL;
+ if( !pObj )
+ {
+@@ -126,6 +126,24 @@ SbxVariable* SbiRuntime::FindElement
+ BOOL bFatalError = FALSE;
+ SbxDataType t = (SbxDataType) nOp2;
+ String aName( pImg->GetString( static_cast<short>( nOp1 & 0x7FFF ) ) );
++ bool bIsVBAInterOp = SbiRuntime::isVBAEnabled();
++ // Hacky capture of Evaluate [] syntax
++ // this should be tackled I feel at the pcode level
++ if ( bIsVBAInterOp && aName.Search('[') == 0 )
++ {
++ // emulate pcode here
++ StepARGC();
++ // psuedo StepLOADSC
++ String sArg = aName.Copy( 1, aName.Len() - 2 );
++ SbxVariable* p = new SbxVariable;
++ p->PutString( sArg );
++ PushVar( p );
++ //
++ StepARGV();
++ nOp1 = nOp1 | 0x8000; // indicate params are present
++ aName = String::CreateFromAscii("Evaluate");
++ }
++
+ if( bLocal )
+ pElem = refLocals->Find( aName, SbxCLASS_DONTCARE );
+ if( !pElem )
+@@ -156,25 +174,24 @@ SbxVariable* SbiRuntime::FindElement
+
+ // i#i68894# if VBAInterOp favour searching vba globals
+ // over searching for uno classess
+- if ( bIsVBAInterOp )
++ if ( bVBAEnabled )
+ {
+ // Try Find in VBA symbols space
+ pElem = VBAFind( aName, SbxCLASS_DONTCARE );
+ if ( pElem )
+ bSetName = false; // don't overwrite uno name
++ else
++ pElem = getVBAConstant( aName );
+ }
+- else
+- {
+- // #72382 VORSICHT! Liefert jetzt wegen unbekannten
+- // Modulen IMMER ein Ergebnis!
+- SbxVariable* pUnoClass = findUnoClass( aName );
+- if( pUnoClass )
+- {
+- pElem = new SbxVariable( t );
+- SbxValues aRes( SbxOBJECT );
+- aRes.pObj = pUnoClass;
+- pElem->SbxVariable::Put( aRes );
+- }
++ // #72382 VORSICHT! Liefert jetzt wegen unbekannten
++ // Modulen IMMER ein Ergebnis!
++ SbxVariable* pUnoClass = findUnoClass( aName );
++ if( pUnoClass )
++ {
++ pElem = new SbxVariable( t );
++ SbxValues aRes( SbxOBJECT );
++ aRes.pObj = pUnoClass;
++ pElem->SbxVariable::Put( aRes );
+ }
+
+ // #62939 Wenn eine Uno-Klasse gefunden wurde, muss
+@@ -523,7 +540,7 @@ SbxVariable* SbiRuntime::CheckArray( Sbx
+ {
+ Reference< XInterface > x = *(Reference< XInterface >*)aAny.getValue();
+ Reference< XIndexAccess > xIndexAccess( x, UNO_QUERY );
+- if ( !SbiRuntime::isVBAEnabled() )
++ if ( !bVBAEnabled )
+ {
+ // Haben wir Index-Access?
+ if( xIndexAccess.is() )
+@@ -1121,6 +1138,14 @@ void SbiRuntime::StepPUBLIC( UINT32 nOp1
+ StepPUBLIC_Impl( nOp1, nOp2, false );
+ }
+
++void SbiRuntime::StepPUBLIC_P( UINT32 nOp1, UINT32 nOp2 )
++{
++ // Creates module variable that isn't reinitialised when
++ // between invocations ( for VBASupport & document basic only )
++ if( pMod->pImage->bFirstInit )
++ StepPUBLIC( nOp1, nOp2 );
++}
++
+ // Einrichten einer globalen Variablen (+StringID+Typ)
+
+ void SbiRuntime::StepGLOBAL( UINT32 nOp1, UINT32 nOp2 )
+cvs diff: Diffing basic/source/sample
+cvs diff: Diffing basic/source/sbx
+Index: basic/source/sbx/sbxarray.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/sbx/sbxarray.cxx,v
+retrieving revision 1.6
+retrieving revision 1.6.48.3
+diff -u -p -r1.6 -r1.6.48.3
+--- basic/source/sbx/sbxarray.cxx 12 Oct 2006 14:31:56 -0000 1.6
++++ basic/source/sbx/sbxarray.cxx 27 Apr 2007 14:32:16 -0000 1.6.48.3
+@@ -40,6 +40,7 @@
+ #include <tools/stream.hxx>
+ #endif
+ #include "sbx.hxx"
++#include "runtime.hxx"
+ #include <vector>
+ using namespace std;
+
+@@ -593,7 +594,7 @@ void SbxArray::PutDirect( SbxVariable* p
+ //
+ //////////////////////////////////////////////////////////////////////////
+
+-SbxDimArray::SbxDimArray( SbxDataType t ) : SbxArray( t )
++SbxDimArray::SbxDimArray( SbxDataType t ) : SbxArray( t ), mbHasFixedSize( false )
+ {
+ pFirst = pLast = NULL;
+ nDim = 0;
+@@ -618,6 +619,7 @@ SbxDimArray& SbxDimArray::operator=( con
+ AddDim32( p->nLbound, p->nUbound );
+ p = p->pNext;
+ }
++ this->mbHasFixedSize = rArray.mbHasFixedSize;
+ }
+ return *this;
+ }
+@@ -793,7 +795,7 @@ void SbxDimArray::Put32( SbxVariable* p,
+
+ UINT32 SbxDimArray::Offset32( SbxArray* pPar )
+ {
+- if( nDim == 0 || !pPar )
++ if( nDim == 0 || !pPar || ( ( nDim != ( pPar->Count() - 1 ) ) && SbiRuntime::isVBAEnabled() ) )
+ {
+ SetError( SbxERR_BOUNDS ); return 0;
+ }
+Index: basic/source/sbx/sbxvalue.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/sbx/sbxvalue.cxx,v
+retrieving revision 1.8
+retrieving revision 1.8.48.1
+diff -u -p -r1.8 -r1.8.48.1
+--- basic/source/sbx/sbxvalue.cxx 12 Oct 2006 14:34:49 -0000 1.8
++++ basic/source/sbx/sbxvalue.cxx 16 Feb 2007 17:08:55 -0000 1.8.48.1
+@@ -64,7 +64,7 @@
+ #include "sbx.hxx"
+ #include "sbxconv.hxx"
+ #include <math.h>
+-
++#include "runtime.hxx"
+ // AB 29.10.99 Unicode
+ #ifndef _USE_NO_NAMESPACE
+ using namespace rtl;
+@@ -1125,6 +1125,8 @@ BOOL SbxValue::Convert( SbxDataType eTo
+
+ BOOL SbxValue::Compute( SbxOperator eOp, const SbxValue& rOp )
+ {
++ bool bVBAInterop = SbiRuntime::isVBAEnabled();
++
+ SbxDataType eThisType = GetType();
+ SbxDataType eOpType = rOp.GetType();
+ SbxError eOld = GetError();
+@@ -1138,14 +1140,16 @@ BOOL SbxValue::Compute( SbxOperator eOp,
+ else if( eThisType == SbxNULL || eOpType == SbxNULL )
+ SetType( SbxNULL );
+ // Sonderregel 2: Ist ein Operand Empty, ist das Ergebnis der 2. Operand
+- else if( eThisType == SbxEMPTY )
++ else if( eThisType == SbxEMPTY
++ && !bVBAInterop
++ )
+ *this = rOp;
+ // 13.2.96: Nicht schon vor Get auf SbxEMPTY pruefen
+ else
+ {
+ SbxValues aL, aR;
+ bool bDecimal = false;
+- if( eThisType == SbxSTRING || eOp == SbxCAT )
++ if( eThisType == SbxSTRING || eOp == SbxCAT || ( bVBAInterop && ( eOpType == SbxSTRING ) && ( eOp == SbxPLUS ) ) )
+ {
+ if( eOp == SbxCAT || eOp == SbxPLUS )
+ {
+@@ -1203,7 +1207,10 @@ BOOL SbxValue::Compute( SbxOperator eOp,
+ if( rOp.Get( aR ) )
+ {
+ if( rOp.GetType() == SbxEMPTY )
+- goto Lbl_OpIsEmpty;
++ {
++ if ( !bVBAInterop || ( bVBAInterop && ( eOp != SbxNOT ) ) )
++ goto Lbl_OpIsEmpty;
++ }
+ if( Get( aL ) ) switch( eOp )
+ {
+ case SbxIDIV:
+@@ -1392,7 +1399,10 @@ BOOL SbxValue::Compute( SbxOperator eOp,
+ if( rOp.Get( aR ) )
+ {
+ if( rOp.GetType() == SbxEMPTY )
+- goto Lbl_OpIsEmpty;
++ {
++ if ( !bVBAInterop || ( bVBAInterop && ( eOp != SbxNEG ) ) )
++ goto Lbl_OpIsEmpty;
++ }
+ if( Get( aL ) )
+ {
+ switch( eOp )
+@@ -1442,6 +1452,8 @@ Lbl_OpIsEmpty:
+
+ BOOL SbxValue::Compare( SbxOperator eOp, const SbxValue& rOp ) const
+ {
++ bool bVBAInterop = SbiRuntime::isVBAEnabled();
++
+ BOOL bRes = FALSE;
+ SbxError eOld = GetError();
+ if( eOld != SbxERR_OK )
+@@ -1458,10 +1470,13 @@ BOOL SbxValue::Compare( SbxOperator eOp,
+ // Sonderregel 2: Wenn beide Variant sind und einer ist numerisch,
+ // und der andere ein String, ist num < str
+ else if( !IsFixed() && !rOp.IsFixed()
+- && ( rOp.GetType() == SbxSTRING && GetType() != SbxSTRING && IsNumeric() ) )
++ && ( rOp.GetType() == SbxSTRING && GetType() != SbxSTRING && IsNumeric() ) && !bVBAInterop
++ )
+ bRes = BOOL( eOp == SbxLT || eOp == SbxLE || eOp == SbxNE );
+ else if( !IsFixed() && !rOp.IsFixed()
+- && ( GetType() == SbxSTRING && rOp.GetType() != SbxSTRING && rOp.IsNumeric() ) )
++ && ( GetType() == SbxSTRING && rOp.GetType() != SbxSTRING && rOp.IsNumeric() )
++&& !bVBAInterop
++ )
+ bRes = BOOL( eOp == SbxGT || eOp == SbxGE || eOp == SbxNE );
+ else
+ {
+cvs diff: Diffing basic/source/uno
+cvs diff: Diffing basic/util
+cvs diff: Diffing basic/util/defs
+cvs diff: Diffing basic/win
+cvs diff: Diffing basic/win/res
+cvs diff: Diffing basic/workben
+cvs diff: Diffing config_office
+Index: config_office/configure.in
+===================================================================
+RCS file: /cvs/tools/config_office/configure.in,v
+retrieving revision 1.201
+retrieving revision 1.201.2.1
+diff -u -p -r1.201 -r1.201.2.1
+--- config_office/configure.in 25 Apr 2007 15:53:53 -0000 1.201
++++ config_office/configure.in 3 May 2007 11:09:38 -0000 1.201.2.1
+@@ -41,20 +41,21 @@ AC_ARG_ENABLE(lockdown,
+ [ --enable-lockdown Enables the gconf integration work in OOo
+ ],,)
+ AC_ARG_ENABLE(vba,
+-[ --enable-vba Enables the vba compatibility feature
++[ --disable-vba disables the vba compatibility feature
+ ],,)
+ AC_ARG_WITH(vba-package-format,
+ [ --with-vba-package-format specify package format for vba compatibility api.
+- Default "builtin" means the api component and
++ Specifying "builtin" means the api component and
+ associated type library are part of the installation set.
+- Specifying "extsn" creates an uno extension that is
++ Specifying "extn" creates an uno extension that is
+ part of the installation set ( located in the program
+ directory ) that MUST be optionly registered using
+ either the unopkg executeable or the extension manager
+ gui.
+-
+- Usage: --with-package-format="builtin" or
+- --with-package-format="extsn"
++
++ Note: "extn" is the defualt.
++ Usage: --with-vba-package-format="builtin" or
++ --with-vba-package-format="extn"
+ ],,)
+ AC_ARG_ENABLE(pch,
+ [ --enable-pch Enables the use of precompiledr C/C++ header files
+@@ -1605,13 +1606,13 @@ fi
+ dnl ===================================================================
+ dnl Check if we are to enable vba macro interoperability feature
+ dnl ===================================================================
+-AC_MSG_CHECKING([whether to enable vba feature])
+-if test -n "$enable_vba" && test "$enable_vba" = "yes"; then
++AC_MSG_CHECKING([whether to disable vba feature])
++if test -n "$enable_vba" && test "$enable_vba" = "no"; then
+ AC_MSG_RESULT([yes])
+- ENABLE_VBA=YES
+-else
+ ENABLE_VBA=NO
++else
+ AC_MSG_RESULT([no])
++ ENABLE_VBA=YES
+ fi
+ AC_SUBST(ENABLE_VBA)
+
+@@ -1630,11 +1631,14 @@ if test "$ENABLE_VBA" = "YES"; then
+ fi
+
+ else
+- VBA_EXTENSION=NO
+- AC_MSG_RESULT([build into installset])
++ VBA_EXTENSION=YES
++ AC_MSG_RESULT([defaulting to build as uno extension])
+ fi
+- AC_SUBST(VBA_EXTENSION)
++else
++ VBA_EXTENSION=NO
+ fi
++AC_SUBST(VBA_EXTENSION)
++
+ dnl ===================================================================
+ dnl Check the whether vba need to be delivered as an uno package or part
+ dnl of the install
+cvs diff: Diffing config_office/guw
+cvs diff: Diffing sc
+cvs diff: Diffing sc/addin
+cvs diff: Diffing sc/addin/datefunc
+cvs diff: Diffing sc/addin/inc
+cvs diff: Diffing sc/addin/rot13
+cvs diff: Diffing sc/addin/util
+cvs diff: Diffing sc/inc
+cvs diff: Diffing sc/inc/pch
+cvs diff: Diffing sc/prj
+cvs diff: Diffing sc/qa
+cvs diff: Diffing sc/qa/complex
+cvs diff: Diffing sc/qa/complex/dataPilot
+cvs diff: Diffing sc/qa/complex/dataPilot/interfaceTests
+cvs diff: Diffing sc/qa/complex/dataPilot/interfaceTests/beans
+cvs diff: Diffing sc/qa/complex/dataPilot/interfaceTests/container
+cvs diff: Diffing sc/qa/complex/dataPilot/interfaceTests/sheet
+cvs diff: Diffing sc/qa/complex/sc
+cvs diff: Diffing sc/qa/unoapi
+cvs diff: Diffing sc/qa/unoapi/testdocuments
+cvs diff: Diffing sc/sdi
+cvs diff: Diffing sc/source
+cvs diff: Diffing sc/source/core
+cvs diff: Diffing sc/source/core/data
+cvs diff: Diffing sc/source/core/inc
+cvs diff: Diffing sc/source/core/src
+cvs diff: Diffing sc/source/core/tool
+cvs diff: Diffing sc/source/filter
+cvs diff: Diffing sc/source/filter/dif
+cvs diff: Diffing sc/source/filter/excel
+cvs diff: Diffing sc/source/filter/ftools
+cvs diff: Diffing sc/source/filter/html
+cvs diff: Diffing sc/source/filter/inc
+cvs diff: Diffing sc/source/filter/lotus
+cvs diff: Diffing sc/source/filter/qpro
+cvs diff: Diffing sc/source/filter/rtf
+cvs diff: Diffing sc/source/filter/starcalc
+cvs diff: Diffing sc/source/filter/xcl97
+cvs diff: Diffing sc/source/filter/xml
+cvs diff: Diffing sc/source/ui
+cvs diff: Diffing sc/source/ui/Accessibility
+cvs diff: Diffing sc/source/ui/app
+cvs diff: Diffing sc/source/ui/attrdlg
+cvs diff: Diffing sc/source/ui/cctrl
+cvs diff: Diffing sc/source/ui/dbgui
+cvs diff: Diffing sc/source/ui/docshell
+cvs diff: Diffing sc/source/ui/drawfunc
+cvs diff: Diffing sc/source/ui/formdlg
+cvs diff: Diffing sc/source/ui/inc
+cvs diff: Diffing sc/source/ui/miscdlgs
+cvs diff: Diffing sc/source/ui/namedlg
+cvs diff: Diffing sc/source/ui/navipi
+cvs diff: Diffing sc/source/ui/optdlg
+cvs diff: Diffing sc/source/ui/pagedlg
+cvs diff: Diffing sc/source/ui/src
+cvs diff: Diffing sc/source/ui/styleui
+cvs diff: Diffing sc/source/ui/undo
+cvs diff: Diffing sc/source/ui/unoobj
+cvs diff: Diffing sc/source/ui/vba
+Index: sc/source/ui/vba/vbaapplication.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaapplication.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -u -p -r1.2 -r1.2.2.1
+--- sc/source/ui/vba/vbaapplication.cxx 25 Apr 2007 16:00:39 -0000 1.2
++++ sc/source/ui/vba/vbaapplication.cxx 18 May 2007 12:38:29 -0000 1.2.2.1
+@@ -293,7 +293,7 @@ void SAL_CALL
+ ScVbaApplication::setStatusBar( const uno::Any& _statusbar ) throw (uno::RuntimeException)
+ {
+ rtl::OUString sText;
+- sal_Bool bDefault;
++ sal_Bool bDefault = sal_False;
+ uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
+ uno::Reference< task::XStatusIndicatorSupplier > xStatusIndicatorSupplier( xModel->getCurrentController(), uno::UNO_QUERY_THROW );
+ uno::Reference< task::XStatusIndicator > xStatusIndicator( xStatusIndicatorSupplier->getStatusIndicator(), uno::UNO_QUERY_THROW );
+@@ -426,7 +426,7 @@ ScVbaApplication::GoTo( const uno::Any&
+
+ if( Scroll.hasValue() )
+ {
+- sal_Bool aScroll;
++ sal_Bool aScroll = sal_False;
+ if( Scroll >>= aScroll )
+ {
+ bScroll = aScroll;
+Index: sc/source/ui/vba/vbahelper.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbahelper.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -u -p -r1.2 -r1.2.2.1
+--- sc/source/ui/vba/vbahelper.hxx 25 Apr 2007 16:07:33 -0000 1.2
++++ sc/source/ui/vba/vbahelper.hxx 3 May 2007 11:16:34 -0000 1.2.2.1
+@@ -38,8 +38,8 @@
+ #include <com/sun/star/frame/XModel.hpp>
+ #include <docsh.hxx>
+
+-#define css com::sun::star
+-#define oo org::openoffice
++namespace css = ::com::sun::star;
++
+ namespace org
+ {
+ namespace openoffice
+@@ -69,6 +69,8 @@ namespace org
+ }
+ }
+
++namespace oo = org::openoffice;
++
+ #ifdef DEBUG
+ # define SC_VBA_FIXME(a) OSL_TRACE( a )
+ # define SC_VBA_STUB() SC_VBA_FIXME(( "%s - stubbed\n", __FUNCTION__ ))
+Index: sc/source/ui/vba/vbarange.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbarange.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -u -p -r1.2 -r1.2.2.1
+--- sc/source/ui/vba/vbarange.cxx 25 Apr 2007 16:10:29 -0000 1.2
++++ sc/source/ui/vba/vbarange.cxx 18 May 2007 12:38:29 -0000 1.2.2.1
+@@ -487,7 +487,7 @@ CellValueSetter::processValue( const uno
+ {
+ case uno::TypeClass_BOOLEAN:
+ {
+- sal_Bool bState;
++ sal_Bool bState = sal_False;
+ if ( aValue >>= bState )
+ {
+ uno::Reference< table::XCellRange > xRange( xCell, uno::UNO_QUERY_THROW );
+@@ -2318,7 +2318,7 @@ ScVbaRange::setHidden( const uno::Any& _
+ return;
+ }
+
+- sal_Bool bHidden;
++ sal_Bool bHidden = sal_False;
+ if ( !(_hidden >>= bHidden) )
+ throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Failed to extract param for Hidden property" ) ), uno::Reference< uno::XInterface >() );
+
+Index: sc/source/ui/vba/vbaworksheets.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaworksheets.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -u -p -r1.2 -r1.2.2.1
+--- sc/source/ui/vba/vbaworksheets.cxx 25 Apr 2007 16:14:08 -0000 1.2
++++ sc/source/ui/vba/vbaworksheets.cxx 17 May 2007 16:12:07 -0000 1.2.2.1
+@@ -227,7 +227,7 @@ ScVbaWorksheets::getVisible() throw (uno
+ void SAL_CALL
+ ScVbaWorksheets::setVisible( const uno::Any& _visible ) throw (uno::RuntimeException)
+ {
+- sal_Bool bState;
++ sal_Bool bState = sal_False;
+ if ( _visible >>= bState )
+ {
+ uno::Reference< container::XEnumeration > xEnum( createEnumeration(), uno::UNO_QUERY_THROW );
+cvs diff: Diffing sc/source/ui/view
+cvs diff: Diffing sc/uiconfig
+cvs diff: Diffing sc/uiconfig/scalc
+cvs diff: Diffing sc/uiconfig/scalc/accelerator
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/de
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/en-GB
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/en-US
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/es
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/fr
+cvs diff: Diffing sc/uiconfig/scalc/menubar
+cvs diff: Diffing sc/uiconfig/scalc/statusbar
+cvs diff: Diffing sc/uiconfig/scalc/toolbar
+cvs diff: Diffing sc/util
+Index: sc/util/makefile.mk
+===================================================================
+RCS file: /cvs/sc/sc/util/makefile.mk,v
+retrieving revision 1.39
+retrieving revision 1.39.2.1
+diff -u -p -r1.39 -r1.39.2.1
+--- sc/util/makefile.mk 25 Apr 2007 16:15:20 -0000 1.39
++++ sc/util/makefile.mk 3 May 2007 09:00:47 -0000 1.39.2.1
+@@ -278,6 +278,7 @@ DEF9NAME=$(SHL9TARGET)
+
+ SHL9STDLIBS= \
+ $(CPPUHELPERLIB) \
++ $(VCLLIB) \
+ $(CPPULIB) \
+ $(COMPHELPERLIB) \
+ $(SVLIB) \
+@@ -294,6 +295,12 @@ SHL9STDLIBS= \
+ SHL9DEPN=$(SHL1TARGETN) $(SHL8TARGETN)
+ SHL9LIBS=$(SLB)$/$(TARGET_VBA).lib
+
++.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC"
++ LIBCOMPNAME=$(LOCAL_COMMON_OUT)$/lib/lib$(SHL9TARGET)$(DLLPOST)
++.ELSE
++ LIBCOMPNAME=$(COMMONBIN)$/$(SHL9TARGET)$(DLLPOST)
++.ENDIF
++
+ .ENDIF
+
+
+cvs diff: Diffing sc/util/defs
+cvs diff: Diffing sc/workben
+cvs diff: Diffing sc/xml
+cvs diff: Diffing svx
+cvs diff: Diffing svx/doc
+cvs diff: Diffing svx/doc/UML
+cvs diff: Diffing svx/inc
+cvs diff: Diffing svx/inc/pch
+cvs diff: Diffing svx/inc/svx
+cvs diff: Diffing svx/inc/svx/sdr
+cvs diff: Diffing svx/inc/svx/sdr/animation
+cvs diff: Diffing svx/inc/svx/sdr/contact
+cvs diff: Diffing svx/inc/svx/sdr/event
+cvs diff: Diffing svx/inc/svx/sdr/mixer
+cvs diff: Diffing svx/inc/svx/sdr/overlay
+cvs diff: Diffing svx/inc/svx/sdr/properties
+cvs diff: Diffing svx/prj
+cvs diff: Diffing svx/qa
+cvs diff: Diffing svx/qa/unoapi
+cvs diff: Diffing svx/qa/unoapi/testdocuments
+cvs diff: Diffing svx/res
+cvs diff: Diffing svx/sdi
+cvs diff: Diffing svx/source
+cvs diff: Diffing svx/source/accessibility
+cvs diff: Diffing svx/source/customshapes
+cvs diff: Diffing svx/source/dialog
+cvs diff: Diffing svx/source/editeng
+cvs diff: Diffing svx/source/engine3d
+cvs diff: Diffing svx/source/fmcomp
+cvs diff: Diffing svx/source/form
+cvs diff: Diffing svx/source/gallery2
+cvs diff: Diffing svx/source/gengal
+cvs diff: Diffing svx/source/inc
+cvs diff: Diffing svx/source/init
+cvs diff: Diffing svx/source/intro
+cvs diff: Diffing svx/source/items
+cvs diff: Diffing svx/source/mnuctrls
+cvs diff: Diffing svx/source/msfilter
+Index: svx/source/msfilter/svxmsbas.cxx
+===================================================================
+RCS file: /cvs/graphics/svx/source/msfilter/svxmsbas.cxx,v
+retrieving revision 1.20
+retrieving revision 1.20.4.1
+diff -u -p -r1.20 -r1.20.4.1
+--- svx/source/msfilter/svxmsbas.cxx 25 Apr 2007 16:18:00 -0000 1.20
++++ svx/source/msfilter/svxmsbas.cxx 2 May 2007 09:16:56 -0000 1.20.4.1
+@@ -368,8 +368,14 @@ BOOL SvxImportMSVBasic::ImportCode_Impl(
+ break;
+ }
+ static ::rtl::OUString sVBAOption( RTL_CONSTASCII_USTRINGPARAM( "Option VBASupport 1\n" ) );
++ static ::rtl::OUString sClassOption( RTL_CONSTASCII_USTRINGPARAM( "Option ClassModule\n" ) );
+ if ( !bAsComment )
++ {
+ modeTypeComment = modeTypeComment + sVBAOption;
++ if ( mType == Class )
++ modeTypeComment = modeTypeComment + sClassOption;
++
++ }
+
+ String sModule(sBasicModule); //#i52606# no need to split Macros in 64KB blocks any more!
+ String sTemp;
+cvs diff: Diffing svx/source/options
+cvs diff: Diffing svx/source/outliner
+cvs diff: Diffing svx/source/sdr
+cvs diff: Diffing svx/source/sdr/animation
+cvs diff: Diffing svx/source/sdr/contact
+cvs diff: Diffing svx/source/sdr/event
+cvs diff: Diffing svx/source/sdr/mixer
+cvs diff: Diffing svx/source/sdr/overlay
+cvs diff: Diffing svx/source/sdr/properties
+cvs diff: Diffing svx/source/src
+cvs diff: Diffing svx/source/stbctrls
+cvs diff: Diffing svx/source/svdraw
+cvs diff: Diffing svx/source/svrtf
+cvs diff: Diffing svx/source/svxlink
+cvs diff: Diffing svx/source/tbxctrls
+cvs diff: Diffing svx/source/toolbars
+cvs diff: Diffing svx/source/unodialogs
+cvs diff: Diffing svx/source/unodialogs/inc
+cvs diff: Diffing svx/source/unodialogs/textconversiondlgs
+cvs diff: Diffing svx/source/unodraw
+cvs diff: Diffing svx/source/unoedit
+cvs diff: Diffing svx/source/unogallery
+cvs diff: Diffing svx/source/xml
+cvs diff: Diffing svx/source/xoutdev
+cvs diff: Diffing svx/uiconfig
+cvs diff: Diffing svx/uiconfig/accelerator
+cvs diff: Diffing svx/uiconfig/accelerator/en-US
+cvs diff: Diffing svx/uiconfig/accelerator/es
+cvs diff: Diffing svx/util
+cvs diff: Diffing svx/util/defs
+cvs diff: Diffing svx/workben
+cvs diff: Diffing svx/workben/msview
+cvs diff: Diffing svx/xml
+cvs diff: Diffing scp2
+cvs diff: Diffing scp2/inc
+cvs diff: Diffing scp2/macros
+cvs diff: Diffing scp2/prj
+cvs diff: Diffing scp2/source
+cvs diff: Diffing scp2/source/activex
+cvs diff: Diffing scp2/source/base
+cvs diff: Diffing scp2/source/calc
+cvs diff: Diffing scp2/source/canvas
+cvs diff: Diffing scp2/source/crashrep
+cvs diff: Diffing scp2/source/draw
+cvs diff: Diffing scp2/source/gnome
+cvs diff: Diffing scp2/source/graphicfilter
+cvs diff: Diffing scp2/source/impress
+cvs diff: Diffing scp2/source/javafilter
+cvs diff: Diffing scp2/source/kde
+cvs diff: Diffing scp2/source/lingu
+cvs diff: Diffing scp2/source/math
+cvs diff: Diffing scp2/source/onlineupdate
+cvs diff: Diffing scp2/source/ooo
+Index: scp2/source/ooo/file_ooo.scp
+===================================================================
+RCS file: /cvs/installation/scp2/source/ooo/file_ooo.scp,v
+retrieving revision 1.188
+retrieving revision 1.188.2.1
+diff -u -p -r1.188 -r1.188.2.1
+--- scp2/source/ooo/file_ooo.scp 25 Apr 2007 16:18:52 -0000 1.188
++++ scp2/source/ooo/file_ooo.scp 3 May 2007 11:09:39 -0000 1.188.2.1
+@@ -1830,6 +1830,13 @@ File gid_File_Rdb_TypesVba
+ Styles = (PACKED, OVERWRITE, PATCH);
+ Name = "oovbaapi.rdb";
+ End
++#else
++File gid_File_ExtnVba
++ TXT_FILE_BODY;
++ Dir = gid_Dir_Program;
++ Styles = (PACKED, OVERWRITE, PATCH);
++ Name = "vbaapi.oxt";
++End
+ #endif
+ #endif
+
+cvs diff: Diffing scp2/source/python
+cvs diff: Diffing scp2/source/quickstart
+cvs diff: Diffing scp2/source/sdkoo
+cvs diff: Diffing scp2/source/testtool
+cvs diff: Diffing scp2/source/ure
+cvs diff: Diffing scp2/source/winexplorerext
+cvs diff: Diffing scp2/source/writer
+cvs diff: Diffing scp2/source/xsltfilter
+cvs diff: Diffing scp2/util
diff --git a/editors/openoffice.org-2-devel/files/patch-i65462 b/editors/openoffice.org-2-devel/files/patch-i65462
deleted file mode 100644
index 34a8a569562a..000000000000
--- a/editors/openoffice.org-2-devel/files/patch-i65462
+++ /dev/null
@@ -1,24 +0,0 @@
-Re-add #i64906# workaround. The root cause of the crash is #i65462#.
-Also see #i65004# for more information.
-
---- sal/osl/unx/security.c 14 Mar 2007 08:28:11 -0000 1.24
-+++ sal/osl/unx/security.c 6 Apr 2007 05:59:15 -0000
-@@ -76,6 +76,10 @@
- static sal_Bool SAL_CALL osl_psz_getConfigDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax);
-
- static oslSecurityImpl * newSecurityImpl(size_t * bufSize) {
-+#if defined (MACOSX) || defined (FREEBSD)
-+ /* #i64906#: sysconf(_SC_GETPW_R_SIZE_MAX) returns -1 on Mac OS X and FreeBSD */
-+ size_t n = 1024;
-+#else
- long m;
- size_t n;
- errno = 0;
-@@ -95,6 +99,7 @@
- OSL_ASSERT(m >= 0 && (unsigned long) m < SIZE_MAX);
- n = (size_t) m;
- }
-+#endif
- if (n <= SIZE_MAX - offsetof(oslSecurityImpl, m_buffer)) {
- *bufSize = n;
- n += offsetof(oslSecurityImpl, m_buffer);
diff --git a/editors/openoffice.org-2-devel/files/patch-i75708 b/editors/openoffice.org-2-devel/files/patch-i75708
deleted file mode 100644
index 1fc8565c4fd4..000000000000
--- a/editors/openoffice.org-2-devel/files/patch-i75708
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: basctl/source/basicide/scriptdocument.cxx
-===================================================================
-RCS file: /cvs/script/basctl/source/basicide/scriptdocument.cxx,v
-retrieving revision 1.2
-diff -u -r1.2 scriptdocument.cxx
---- basctl/source/basicide/scriptdocument.cxx 15 Mar 2007 15:59:30 -0000 1.2
-+++ basctl/source/basicide/scriptdocument.cxx 25 Mar 2007 21:09:03 -0000
-@@ -921,7 +921,7 @@
- //--------------------------------------------------------------------
- sal_Int32 ScriptDocument::hashCode() const
- {
-- return reinterpret_cast< sal_Int32 >( m_pImpl->getObjectShell() );
-+ return reinterpret_cast< sal_IntPtr >( m_pImpl->getObjectShell() );
- }
-
- //--------------------------------------------------------------------
diff --git a/editors/openoffice.org-2-devel/files/patch-i76141 b/editors/openoffice.org-2-devel/files/patch-i76141
index 1698b377a94f..6b1bfcaf860b 100644
--- a/editors/openoffice.org-2-devel/files/patch-i76141
+++ b/editors/openoffice.org-2-devel/files/patch-i76141
@@ -316,6 +316,181 @@
--- misc/build/libwpd-0.8.8/src/lib/WP1Part.cpp 2007-01-13 00:18:52.000000000 +0100
***************
+--- libxml2/libxml2-2.6.17.patch 26 Mar 2007 12:25:19 -0000 1.5
++++ libxml2/libxml2-2.6.17.patch 3 May 2007 17:31:33 -0000
+@@ -34,6 +34,74 @@
+ fi
+ echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+ ***************
++*** 8547,8553 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 8547,8553 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
++*** 12266,12272 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 12266,12272 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
++*** 15436,15442 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 15436,15442 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
++*** 17804,17810 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 17804,17810 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 26339,26347 ****
+
+ echo "$as_me:$LINENO: checking for setsockopt" >&5
+--- libxmlsec/xmlsec1-1.2.6.patch 27 Mar 2007 09:36:38 -0000 1.19
++++ libxmlsec/xmlsec1-1.2.6.patch 3 May 2007 18:12:52 -0000
+@@ -158,6 +158,23 @@
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ ***************
++*** 7778,7784 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 7779,7785 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 9046,9052 ****
+ ;;
+ esac
+@@ -215,6 +232,23 @@
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+ ***************
++*** 11497,11503 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 11498,11504 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 13259,13269 ****
+ lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
+ ;;
+@@ -257,6 +291,23 @@
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ ***************
++*** 14667,14673 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 14668,14674 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 15607,15617 ****
+ lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
+ ;;
+@@ -316,6 +367,23 @@
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ ***************
++*** 17035,17041 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 17036,17042 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 24598,24604 ****
+ fi
+
--- moz/mozilla-source-1.7.5.patch.orig Fri Apr 27 15:23:29 2007
+++ moz/mozilla-source-1.7.5.patch Fri Apr 27 15:32:07 2007
@@ -266,6 +266,23 @@
@@ -540,31 +715,6 @@
***************
*** 1 ****
! dummy
---- sablot/Sablot-0.52.patch 19 Jun 2006 17:27:11 -0000 1.20
-+++ sablot/Sablot-0.52.patch 5 Apr 2007 00:24:32 -0000
-@@ -632,3 +632,22 @@
- };
- return cnt;
- }
-+*** misc/Sablot-0.52/tools/ltconfig Fri Apr 13 05:50:59 2001
-+--- misc/build/Sablot-0.52/tools/ltconfig Wed Apr 4 20:22:37 2007
-+***************
-+*** 1887,1893 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case "$version_type" in
-+ freebsd-elf*)
-+--- 1887,1893 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case "$version_type" in
-+ freebsd-elf*)
--- sndfile/libsndfile-1.0.9.patch 3 Feb 2006 17:31:46 -0000 1.3
+++ sndfile/libsndfile-1.0.9.patch 5 Apr 2007 00:31:26 -0000
@@ -83,6 +83,23 @@
@@ -708,611 +858,3 @@
diff -uprN misc/vigra1.4.0/include/vigra/array_vector.hxx misc/build/vigra1.4.0/include/vigra/array_vector.hxx
--- misc/vigra1.4.0/include/vigra/array_vector.hxx 2005-12-21 05:53:30.000000000 +0100
+++ misc/build/vigra1.4.0/include/vigra/array_vector.hxx 2006-08-31 12:08:15.172679000 +0200
-
-
-Index: libxmlsec/xmlsec1-1.2.6.patch
-===================================================================
-RCS file: /cvs/external/libxmlsec/xmlsec1-1.2.6.patch,v
-retrieving revision 1.19
-diff -u -r1.19 xmlsec1-1.2.6.patch
---- libxmlsec/xmlsec1-1.2.6.patch 27 Mar 2007 09:36:38 -0000 1.19
-+++ libxmlsec/xmlsec1-1.2.6.patch 28 Apr 2007 23:12:51 -0000
-@@ -1,5 +1,5 @@
--*** misc/xmlsec1-1.2.6/apps/Makefile.in Thu Aug 26 08:00:30 2004
----- misc/build/xmlsec1-1.2.6/apps/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/apps/Makefile.in Thu Aug 26 15:00:30 2004
-+--- misc/build/xmlsec1-1.2.6/apps/Makefile.in Sun Apr 29 08:10:05 2007
- ***************
- *** 370,376 ****
- $(CRYPTO_DEPS) \
-@@ -17,8 +17,8 @@
-
- .SUFFIXES:
- .SUFFIXES: .c .lo .o .obj
--*** misc/xmlsec1-1.2.6/configure Thu Aug 26 08:00:34 2004
----- misc/build/xmlsec1-1.2.6/configure Tue Mar 27 11:26:19 2007
-+*** misc/xmlsec1-1.2.6/configure Thu Aug 26 15:00:34 2004
-+--- misc/build/xmlsec1-1.2.6/configure Sun Apr 29 08:10:06 2007
- ***************
- *** 463,469 ****
- # include <unistd.h>
-@@ -158,6 +158,23 @@
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- ***************
-+*** 7778,7784 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+--- 7779,7785 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+***************
- *** 9046,9052 ****
- ;;
- esac
-@@ -215,6 +232,23 @@
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
- ***************
-+*** 11497,11503 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+--- 11498,11504 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+***************
- *** 13259,13269 ****
- lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
- ;;
-@@ -257,6 +291,23 @@
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- ***************
-+*** 14667,14673 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+--- 14668,14674 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+***************
- *** 15607,15617 ****
- lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
- ;;
-@@ -316,6 +367,23 @@
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- ***************
-+*** 17035,17041 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+--- 17036,17042 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+***************
- *** 24598,24604 ****
- fi
-
-@@ -2379,8 +2447,8 @@
- s,@XMLSEC_NO_SHA1_TRUE@,$XMLSEC_NO_SHA1_TRUE,;t t
- s,@XMLSEC_NO_SHA1_FALSE@,$XMLSEC_NO_SHA1_FALSE,;t t
- s,@XMLSEC_NO_SHA1@,$XMLSEC_NO_SHA1,;t t
--*** misc/xmlsec1-1.2.6/configure.in Thu Aug 26 04:49:24 2004
----- misc/build/xmlsec1-1.2.6/configure.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/configure.in Thu Aug 26 11:49:24 2004
-+--- misc/build/xmlsec1-1.2.6/configure.in Sun Apr 29 08:10:06 2007
- ***************
- *** 143,149 ****
- dnl find libxml
-@@ -2496,8 +2564,8 @@
- dnl do not add -L/usr/lib because compiler does it anyway
- if test "z$dir" = "z/usr/lib" ; then
- NSS_LIBS="$NSS_LIBS_LIST"
--*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/Makefile.in Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/Makefile.in Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/Makefile.in Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -2560,8 +2628,8 @@
- ! # Tell versions [3.59,3.63) of GNU make to not export all variables.
- ! # Otherwise a system limit (for SysV at least) may be exceeded.
- ! .NOEXPORT:
--*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/akmngr.h Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/akmngr.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/akmngr.h Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/akmngr.h Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -2637,8 +2705,8 @@
- ! #endif /* __XMLSEC_MSCRYPTO_AKMNGR_H__ */
- !
- !
--*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/x509.h Fri Sep 26 08:12:46 2003
----- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/x509.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/x509.h Fri Sep 26 15:12:46 2003
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/x509.h Sun Apr 29 08:10:06 2007
- ***************
- *** 77,82 ****
- --- 77,97 ----
-@@ -2663,8 +2731,8 @@
-
- #endif /* XMLSEC_NO_X509 */
-
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.am Wed Jul 30 04:46:35 2003
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.am Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.am Wed Jul 30 11:46:35 2003
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.am Sun Apr 29 08:10:06 2007
- ***************
- *** 3,8 ****
- --- 3,9 ----
-@@ -2686,8 +2754,8 @@
- $(NULL)
-
- install-exec-hook:
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.in Thu Aug 26 08:00:31 2004
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.in Thu Aug 26 15:00:31 2004
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.in Sun Apr 29 08:10:06 2007
- ***************
- *** 273,278 ****
- --- 273,279 ----
-@@ -2709,8 +2777,8 @@
- $(NULL)
-
- all: all-am
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/akmngr.h Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/akmngr.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/akmngr.h Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/akmngr.h Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -2771,8 +2839,8 @@
- ! #endif /* __XMLSEC_NSS_AKMNGR_H__ */
- !
- !
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/app.h Mon Jan 12 22:06:14 2004
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/app.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/app.h Tue Jan 13 06:06:14 2004
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/app.h Sun Apr 29 08:10:06 2007
- ***************
- *** 22,27 ****
- --- 22,30 ----
-@@ -2796,8 +2864,8 @@
- XMLSEC_CRYPTO_EXPORT int xmlSecNssAppDefaultKeysMngrLoad (xmlSecKeysMngrPtr mngr,
- const char* uri);
- XMLSEC_CRYPTO_EXPORT int xmlSecNssAppDefaultKeysMngrSave (xmlSecKeysMngrPtr mngr,
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/ciphers.h Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/ciphers.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/ciphers.h Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/ciphers.h Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -2837,8 +2905,8 @@
- ! #endif /* __XMLSEC_NSS_CIPHERS_H__ */
- !
- !
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/crypto.h Mon Jan 12 22:06:14 2004
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/crypto.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/crypto.h Tue Jan 13 06:06:14 2004
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/crypto.h Sun Apr 29 08:10:06 2007
- ***************
- *** 264,269 ****
- --- 264,278 ----
-@@ -2857,8 +2925,8 @@
- #endif /* XMLSEC_NO_RSA */
-
-
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/keysstore.h Wed Jul 30 04:46:35 2003
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/keysstore.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/keysstore.h Wed Jul 30 11:46:35 2003
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/keysstore.h Sun Apr 29 08:10:06 2007
- ***************
- *** 16,21 ****
- --- 16,23 ----
-@@ -2881,8 +2949,8 @@
- XMLSEC_CRYPTO_EXPORT int xmlSecNssKeysStoreLoad (xmlSecKeyStorePtr store,
- const char *uri,
- xmlSecKeysMngrPtr keysMngr);
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/tokens.h Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/tokens.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/tokens.h Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/tokens.h Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -3069,8 +3137,8 @@
- !
- ! #endif /* __XMLSEC_NSS_TOKENS_H__ */
- !
--*** misc/xmlsec1-1.2.6/libxml2-config Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/libxml2-config Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/libxml2-config Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/libxml2-config Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -3123,8 +3191,8 @@
- ! done
- !
- ! exit 0
--*** misc/xmlsec1-1.2.6/ltmain.sh Thu Aug 26 08:00:15 2004
----- misc/build/xmlsec1-1.2.6/ltmain.sh Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/ltmain.sh Thu Aug 26 15:00:15 2004
-+--- misc/build/xmlsec1-1.2.6/ltmain.sh Sun Apr 29 08:10:06 2007
- ***************
- *** 1661,1666 ****
- --- 1661,1671 ----
-@@ -3199,8 +3267,8 @@
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
--*** misc/xmlsec1-1.2.6/src/bn.c Mon Jun 21 20:33:27 2004
----- misc/build/xmlsec1-1.2.6/src/bn.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/bn.c Tue Jun 22 03:33:27 2004
-+--- misc/build/xmlsec1-1.2.6/src/bn.c Sun Apr 29 08:10:06 2007
- ***************
- *** 170,177 ****
- */
-@@ -3766,8 +3834,8 @@
- }
-
- return(0);
--*** misc/xmlsec1-1.2.6/src/dl.c Wed Oct 29 16:57:20 2003
----- misc/build/xmlsec1-1.2.6/src/dl.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/dl.c Thu Oct 30 00:57:20 2003
-+--- misc/build/xmlsec1-1.2.6/src/dl.c Sun Apr 29 08:10:06 2007
- ***************
- *** 329,334 ****
- --- 329,338 ----
-@@ -3793,8 +3861,8 @@
- }
-
- --- 354,359 ----
--*** misc/xmlsec1-1.2.6/src/mscrypto/Makefile.in Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/mscrypto/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/Makefile.in Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/Makefile.in Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -3977,8 +4045,8 @@
- ! # Tell versions [3.59,3.63) of GNU make to not export all variables.
- ! # Otherwise a system limit (for SysV at least) may be exceeded.
- ! .NOEXPORT:
--*** misc/xmlsec1-1.2.6/src/mscrypto/akmngr.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/mscrypto/akmngr.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/akmngr.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/akmngr.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -4218,8 +4286,8 @@
- ! return( 0 ) ;
- ! }
- !
--*** misc/xmlsec1-1.2.6/src/mscrypto/certkeys.c Wed Mar 17 06:06:43 2004
----- misc/build/xmlsec1-1.2.6/src/mscrypto/certkeys.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/certkeys.c Wed Mar 17 14:06:43 2004
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/certkeys.c Sun Apr 29 08:10:06 2007
- ***************
- *** 41,46 ****
- --- 41,47 ----
-@@ -4896,8 +4964,8 @@
- }
-
- static xmlSecKeyDataType
--*** misc/xmlsec1-1.2.6/src/mscrypto/ciphers.c Fri Sep 26 08:12:51 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/ciphers.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/ciphers.c Fri Sep 26 15:12:51 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/ciphers.c Sun Apr 29 08:10:06 2007
- ***************
- *** 785,791 ****
- * AES CBC cipher transforms
-@@ -4966,8 +5034,8 @@
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* size_t klassSize */
- xmlSecMSCryptoBlockCipherSize, /* size_t objSize */
--*** misc/xmlsec1-1.2.6/src/mscrypto/crypto.c Wed Nov 12 03:38:51 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/crypto.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/crypto.c Wed Nov 12 11:38:51 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/crypto.c Sun Apr 29 08:10:06 2007
- ***************
- *** 330,342 ****
- BYTE*
-@@ -4999,8 +5067,8 @@
- return(NULL);
- }
-
--*** misc/xmlsec1-1.2.6/src/mscrypto/digests.c Tue Sep 30 04:09:51 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/digests.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/digests.c Tue Sep 30 11:09:51 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/digests.c Sun Apr 29 08:10:06 2007
- ***************
- *** 96,107 ****
-
-@@ -5031,8 +5099,8 @@
- }
-
- return(0);
--*** misc/xmlsec1-1.2.6/src/mscrypto/kt_rsa.c Fri Sep 26 22:29:25 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/kt_rsa.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/kt_rsa.c Sat Sep 27 05:29:25 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/kt_rsa.c Sun Apr 29 08:10:06 2007
- ***************
- *** 66,72 ****
- static int xmlSecMSCryptoRsaPkcs1Process (xmlSecTransformPtr transform,
-@@ -5050,8 +5118,8 @@
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecMSCryptoRsaPkcs1Size, /* xmlSecSize objSize */
--*** misc/xmlsec1-1.2.6/src/mscrypto/signatures.c Fri Sep 26 22:29:25 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/signatures.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/signatures.c Sat Sep 27 05:29:25 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/signatures.c Sun Apr 29 08:10:06 2007
- ***************
- *** 483,489 ****
- * RSA-SHA1 signature transform
-@@ -5086,8 +5154,8 @@
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecMSCryptoSignatureSize, /* xmlSecSize objSize */
--*** misc/xmlsec1-1.2.6/src/mscrypto/symkeys.c Fri Sep 26 02:58:13 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/symkeys.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/symkeys.c Fri Sep 26 09:58:13 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/symkeys.c Sun Apr 29 08:10:06 2007
- ***************
- *** 72,78 ****
- * <xmlsec:AESKeyValue> processing
-@@ -5122,8 +5190,8 @@
- sizeof(xmlSecKeyDataKlass),
- xmlSecKeyDataBinarySize,
-
--*** misc/xmlsec1-1.2.6/src/mscrypto/x509.c Fri Sep 26 02:58:13 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/x509.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/x509.c Fri Sep 26 09:58:13 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/x509.c Sun Apr 29 08:10:06 2007
- ***************
- *** 240,246 ****
-
-@@ -5369,8 +5437,8 @@
- sizeof(xmlSecKeyDataKlass),
- sizeof(xmlSecKeyData),
-
--*** misc/xmlsec1-1.2.6/src/mscrypto/x509vfy.c Sat Sep 27 05:12:22 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/x509vfy.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/x509vfy.c Sat Sep 27 12:12:22 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/x509vfy.c Sun Apr 29 08:10:06 2007
- ***************
- *** 70,76 ****
- static xmlSecByte * xmlSecMSCryptoX509NameRead (xmlSecByte *str,
-@@ -6115,8 +6183,8 @@
- }
- }
- xmlFree(cName);
--*** misc/xmlsec1-1.2.6/src/nss/Makefile.am Tue Sep 16 11:43:03 2003
----- misc/build/xmlsec1-1.2.6/src/nss/Makefile.am Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/Makefile.am Tue Sep 16 18:43:03 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/Makefile.am Sun Apr 29 08:10:06 2007
- ***************
- *** 20,40 ****
- $(NULL)
-@@ -6163,8 +6231,8 @@
- $(NULL)
-
- libxmlsec1_nss_la_LIBADD = \
--*** misc/xmlsec1-1.2.6/src/nss/Makefile.in Thu Aug 26 08:00:32 2004
----- misc/build/xmlsec1-1.2.6/src/nss/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/Makefile.in Thu Aug 26 15:00:32 2004
-+--- misc/build/xmlsec1-1.2.6/src/nss/Makefile.in Sun Apr 29 08:10:06 2007
- ***************
- *** 54,62 ****
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-@@ -6288,8 +6356,8 @@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pkikeys.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signatures.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symkeys.Plo@am__quote@
--*** misc/xmlsec1-1.2.6/src/nss/akmngr.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/nss/akmngr.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/akmngr.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/nss/akmngr.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -6678,8 +6746,8 @@
- ! return(0) ;
- ! }
- !
--*** misc/xmlsec1-1.2.6/src/nss/ciphers.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/ciphers.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/ciphers.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/ciphers.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1,838 ****
- ! /**
-@@ -8472,8 +8540,8 @@
- }
- !
-
--*** misc/xmlsec1-1.2.6/src/nss/crypto.c Wed Oct 29 16:57:25 2003
----- misc/build/xmlsec1-1.2.6/src/nss/crypto.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/crypto.c Thu Oct 30 00:57:25 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/crypto.c Sun Apr 29 08:10:06 2007
- ***************
- *** 130,135 ****
- --- 130,136 ----
-@@ -8526,8 +8594,8 @@
-
- return(gXmlSecNssFunctions);
- }
--*** misc/xmlsec1-1.2.6/src/nss/digests.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/digests.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/digests.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/digests.c Sun Apr 29 08:10:06 2007
- ***************
- *** 21,27 ****
- #include <xmlsec/transforms.h>
-@@ -8623,8 +8691,8 @@
- return(-1);
- }
- xmlSecAssert2(ctx->dgstSize > 0, -1);
--*** misc/xmlsec1-1.2.6/src/nss/hmac.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/hmac.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/hmac.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/hmac.c Sun Apr 29 08:10:06 2007
- ***************
- *** 23,30 ****
- #include <xmlsec/transforms.h>
-@@ -8758,8 +8826,8 @@
- return(-1);
- }
- xmlSecAssert2(dgstSize > 0, -1);
--*** misc/xmlsec1-1.2.6/src/nss/keysstore.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/keysstore.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/keysstore.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/keysstore.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1,119 ****
- /**
-@@ -9826,8 +9894,8 @@
- ! return(0);
- }
- +
--*** misc/xmlsec1-1.2.6/src/nss/keytrans.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/nss/keytrans.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/keytrans.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/nss/keytrans.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -10576,8 +10644,8 @@
- !
- ! #endif /* XMLSEC_NO_RSA */
- !
--*** misc/xmlsec1-1.2.6/src/nss/keywrapers.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/nss/keywrapers.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/keywrapers.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/nss/keywrapers.c Sun Apr 29 08:10:07 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -11779,8 +11847,8 @@
- !
- ! #endif /* XMLSEC_NO_DES */
- !
--*** misc/xmlsec1-1.2.6/src/nss/pkikeys.c Wed Mar 17 06:06:45 2004
----- misc/build/xmlsec1-1.2.6/src/nss/pkikeys.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/pkikeys.c Wed Mar 17 14:06:45 2004
-+--- misc/build/xmlsec1-1.2.6/src/nss/pkikeys.c Sun Apr 29 08:10:07 2007
- ***************
- *** 5,10 ****
- --- 5,11 ----
-@@ -12579,8 +12647,8 @@
-
- return(8 * SECKEY_PublicKeyStrength(ctx->pubkey));
- }
--*** misc/xmlsec1-1.2.6/src/nss/signatures.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/signatures.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/signatures.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/signatures.c Sun Apr 29 08:10:07 2007
- ***************
- *** 199,205 ****
- xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
-@@ -12717,8 +12785,8 @@
- return(-1);
- }
-
--*** misc/xmlsec1-1.2.6/src/nss/symkeys.c Mon Jul 21 05:12:52 2003
----- misc/build/xmlsec1-1.2.6/src/nss/symkeys.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/symkeys.c Mon Jul 21 12:12:52 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/symkeys.c Sun Apr 29 08:10:07 2007
- ***************
- *** 15,192 ****
- #include <stdio.h>
-@@ -14049,8 +14117,8 @@
- *
- * Sets the value of HMAC key data.
- *
--*** misc/xmlsec1-1.2.6/src/nss/tokens.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/nss/tokens.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/tokens.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/nss/tokens.c Sun Apr 29 08:10:07 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -14599,8 +14667,8 @@
- ! return(0);
- ! }
- !
--*** misc/xmlsec1-1.2.6/src/nss/x509.c Fri Sep 26 05:53:09 2003
----- misc/build/xmlsec1-1.2.6/src/nss/x509.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/x509.c Fri Sep 26 12:53:09 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/x509.c Sun Apr 29 08:10:07 2007
- ***************
- *** 34,40 ****
- #include <xmlsec/keys.h>
-@@ -15708,8 +15776,8 @@
- static void
- xmlSecNssX509CertDebugDump(CERTCertificate* cert, FILE* output) {
- --- 1700,1705 ----
--*** misc/xmlsec1-1.2.6/src/nss/x509vfy.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/x509vfy.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/x509vfy.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/x509vfy.c Sun Apr 29 08:10:07 2007
- ***************
- *** 30,35 ****
- --- 30,36 ----
-@@ -16851,8 +16919,8 @@
-
- + #endif /* XMLSEC_NO_X509 */
-
--*** misc/xmlsec1-1.2.6/win32/Makefile.msvc Wed Jun 9 16:35:12 2004
----- misc/build/xmlsec1-1.2.6/win32/Makefile.msvc Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/win32/Makefile.msvc Wed Jun 9 23:35:12 2004
-+--- misc/build/xmlsec1-1.2.6/win32/Makefile.msvc Sun Apr 29 08:10:07 2007
- ***************
- *** 223,228 ****
- --- 223,232 ----
diff --git a/editors/openoffice.org-2-devel/files/patch-i76320 b/editors/openoffice.org-2-devel/files/patch-i76320
deleted file mode 100644
index bd4639171dde..000000000000
--- a/editors/openoffice.org-2-devel/files/patch-i76320
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: sd/source/ui/inc/tools/ConfigurationAccess.hxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/inc/tools/ConfigurationAccess.hxx,v
-retrieving revision 1.2.8.1
-retrieving revision 1.2
-diff -u -r1.2.8.1 -r1.2
---- sd/source/ui/inc/tools/ConfigurationAccess.hxx 12 Apr 2007 20:30:02 -0000 1.2.8.1
-+++ sd/source/ui/inc/tools/ConfigurationAccess.hxx 3 Apr 2007 16:14:52 -0000 1.2
-@@ -110,7 +110,7 @@
- @param rList
- The list to be filled.
- */
-- static void FillList(
-+ static void ConfigurationAccess::FillList(
- const com::sun::star::uno::Reference<com::sun::star::container::XNameAccess>& rxContainer,
- const ::rtl::OUString& rsArgument,
- ::std::vector<rtl::OUString>& rList);
diff --git a/editors/openoffice.org-2-devel/files/patch-i76968 b/editors/openoffice.org-2-devel/files/patch-i76968
new file mode 100644
index 000000000000..8bf3e43d703d
--- /dev/null
+++ b/editors/openoffice.org-2-devel/files/patch-i76968
@@ -0,0 +1,642 @@
+Sync FreeBSD-specific files with CWS sixtyfour11.
+
+--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/makefile.mk Thu Jan 25 08:27:35 2007
++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/makefile.mk Wed Apr 25 10:57:20 2007
+@@ -52,11 +52,6 @@
+ CFLAGS += -DLEAK_STATIC_DATA
+ .ENDIF
+
+-NOOPTFILES= \
+- $(SLO)$/uno2cpp.obj
+-
+-
+-CFLAGSNOOPT=-O0
+
+ SLOFILES= \
+ $(SLO)$/abi.obj \
+--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx Thu May 3 21:45:19 2007
++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx Wed Apr 25 10:57:33 2007
+@@ -38,6 +38,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <rtl/alloc.h>
+
+ #include <com/sun/star/uno/genfunc.hxx>
+@@ -55,265 +56,188 @@
+ using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+
+-void dummy_can_throw_anything( char const * );
+-
+-// 6 integral parameters are passed in registers
+-const sal_uInt32 GPR_COUNT = 6;
+-
+-// 8 floating point parameters are passed in SSE registers
+-const sal_uInt32 FPR_COUNT = 8;
+-
+-static inline void
+-invoke_count_words(char * pPT, // Parameter Types
+- sal_uInt32 & nr_gpr, // Number of arguments in GPRs
+- sal_uInt32 & nr_fpr, // Number of arguments in FPRs
+- sal_uInt32 & nr_stack) // Number of arguments in stack
+-{
+- nr_gpr = 0;
+- nr_fpr = 0;
+- nr_stack = 0;
+- char c;
+-
+- while ((c = *pPT++) != 'X')
+- {
+- if (c == 'F' || c == 'D')
+- {
+- if (nr_fpr < FPR_COUNT)
+- nr_fpr++;
+- else
+- nr_stack++;
+- }
+- else
+- {
+- if (nr_gpr < GPR_COUNT)
+- nr_gpr++;
+- else
+- nr_stack++;
+- }
+- }
+-}
+-
+-static void
+-invoke_copy_to_stack(sal_uInt64 * pDS, // Stack Storage
+- char * pPT, // Parameter Types
+- sal_uInt64 * pSV, // Source Values
+- sal_uInt64 * pGPR, // General Purpose Registers
+- double * pFPR) // Floating-Point Registers
+-{
+- sal_uInt32 nr_gpr = 0;
+- sal_uInt32 nr_fpr = 0;
+- sal_uInt64 value;
+- char c;
+-
+- while ((c = *pPT++) != 'X')
+- {
+- switch (c)
+- {
+- case 'D': // Double
+- if (nr_fpr < FPR_COUNT)
+- pFPR[nr_fpr++] = *reinterpret_cast<double *>( pSV++ );
+- else
+- *pDS++ = *pSV++;
+- break;
+-
+- case 'F': // Float
+- if (nr_fpr < FPR_COUNT)
+- // The value in %xmm register is already prepared to
+- // be retrieved as a float. Therefore, we pass the
+- // value verbatim, as a double without conversion.
+- pFPR[nr_fpr++] = *reinterpret_cast<double *>( pSV++ );
+- else
+- *pDS++ = *pSV++;
+- break;
+-
+- case 'H': // 64-bit Word
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *pSV++;
+- else
+- *pDS++ = *pSV++;
+- break;
+-
+- case 'I': // 32-bit Word
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *reinterpret_cast<sal_uInt32 *>( pSV++ );
+- else
+- *pDS++ = *reinterpret_cast<sal_uInt32 *>( pSV++ );
+- break;
+-
+- case 'S': // 16-bit Word
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *reinterpret_cast<sal_uInt16 *>( pSV++ );
+- else
+- *pDS++ = *reinterpret_cast<sal_uInt16 *>( pSV++ );
+- break;
+-
+- case 'B': // Byte
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *reinterpret_cast<sal_uInt8 *>( pSV++ );
+- else
+- *pDS++ = *reinterpret_cast<sal_uInt8 *>( pSV++ );
+- break;
+-
+- default: // Default, assume 64-bit values
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *pSV++;
+- else
+- *pDS++ = *pSV++;
+- break;
+- }
+- }
+-}
+-
+ //==================================================================================================
+ static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex,
+- void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn,
+- char * pPT, sal_uInt64 * pStackLongs, sal_uInt32 nStackLongs)
+-{
+- sal_uInt32 nr_gpr, nr_fpr, nr_stack;
+- invoke_count_words(pPT, nr_gpr, nr_fpr, nr_stack);
++ void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn,
++ sal_uInt64 *pStack, sal_uInt32 nStack,
++ sal_uInt64 *pGPR, sal_uInt32 nGPR,
++ double *pFPR, sal_uInt32 nFPR) __attribute__((noinline));
+
+- // Stack, if used, must be 16-bytes aligned
+- if (nr_stack)
+- nr_stack = (nr_stack + 1) & ~1;
+-
++static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex,
++ void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn,
++ sal_uInt64 *pStack, sal_uInt32 nStack,
++ sal_uInt64 *pGPR, sal_uInt32 nGPR,
++ double *pFPR, sal_uInt32 nFPR)
++{
+ #if OSL_DEBUG_LEVEL > 1
+- // Let's figure out what is really going on here
+- fprintf(stderr,"callVirtualMethod() parameters string is %s\n", pPT);
+- {
+- sal_uInt32 k = nStackLongs;
+- sal_uInt64 *q = pStackLongs;
+- while (k > 0)
+- {
+- fprintf(stderr, "uno stack is: %lx\n", *q);
+- k--;
+- q++;
+- }
+- }
+-#endif
+-
+- // Load parameters to stack, if necessary
+- sal_uInt64 *stack = (sal_uInt64 *) __builtin_alloca(nr_stack * 8);
+- sal_uInt64 gpregs[GPR_COUNT];
+- double fpregs[FPR_COUNT];
+- invoke_copy_to_stack(stack, pPT, pStackLongs, gpregs, fpregs);
+-
+- // Load FPR registers from fpregs[]
+- register double d0 asm("xmm0");
+- register double d1 asm("xmm1");
+- register double d2 asm("xmm2");
+- register double d3 asm("xmm3");
+- register double d4 asm("xmm4");
+- register double d5 asm("xmm5");
+- register double d6 asm("xmm6");
+- register double d7 asm("xmm7");
+-
+- switch (nr_fpr) {
+-#define ARG_FPR(N) \
+- case N+1: d##N = fpregs[N];
+- ARG_FPR(7);
+- ARG_FPR(6);
+- ARG_FPR(5);
+- ARG_FPR(4);
+- ARG_FPR(3);
+- ARG_FPR(2);
+- ARG_FPR(1);
+- ARG_FPR(0);
+- case 0:;
+-#undef ARG_FPR
+- }
+-
+- // Load GPR registers from gpregs[]
+- register sal_uInt64 a0 asm("rdi");
+- register sal_uInt64 a1 asm("rsi");
+- register sal_uInt64 a2 asm("rdx");
+- register sal_uInt64 a3 asm("rcx");
+- register sal_uInt64 a4 asm("r8");
+- register sal_uInt64 a5 asm("r9");
+-
+- switch (nr_gpr) {
+-#define ARG_GPR(N) \
+- case N+1: a##N = gpregs[N];
+- ARG_GPR(5);
+- ARG_GPR(4);
+- ARG_GPR(3);
+- ARG_GPR(2);
+- ARG_GPR(1);
+- ARG_GPR(0);
+- case 0:;
+-#undef ARG_GPR
++ // Let's figure out what is really going on here
++ {
++ fprintf( stderr, "= callVirtualMethod() =\nGPR's (%d): ", nGPR );
++ for ( int i = 0; i < nGPR; ++i )
++ fprintf( stderr, "0x%lx, ", pGPR[i] );
++ fprintf( stderr, "\nFPR's (%d): ", nFPR );
++ for ( int i = 0; i < nFPR; ++i )
++ fprintf( stderr, "%f, ", pFPR[i] );
++ fprintf( stderr, "\nStack (%d): ", nStack );
++ for ( int i = 0; i < nStack; ++i )
++ fprintf( stderr, "0x%lx, ", pStack[i] );
++ fprintf( stderr, "\n" );
+ }
++#endif
+
+- if ( bSimpleReturn )
+- a0 = (sal_uInt64) pThis;
+- else
+- a1 = (sal_uInt64) pThis;
+-
+- // Ensure that assignments to SSE registers won't be optimized away
+- asm("" ::
+- "x" (d0), "x" (d1), "x" (d2), "x" (d3),
+- "x" (d4), "x" (d5), "x" (d6), "x" (d7));
++ // The call instruction within the asm section of callVirtualMethod may throw
++ // exceptions. So that the compiler handles this correctly, it is important
++ // that (a) callVirtualMethod might call dummy_can_throw_anything (although this
++ // never happens at runtime), which in turn can throw exceptions, and (b)
++ // callVirtualMethod is not inlined at its call site (so that any exceptions are
++ // caught which are thrown from the instruction calling callVirtualMethod):
++ if ( !pThis )
++ CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything( "xxx" ); // address something
++
++ // Should not happen, but...
++ if ( nFPR > x86_64::MAX_SSE_REGS )
++ nFPR = x86_64::MAX_SSE_REGS;
++ if ( nGPR > x86_64::MAX_GPR_REGS )
++ nGPR = x86_64::MAX_GPR_REGS;
+
+ // Get pointer to method
+ sal_uInt64 pMethod = *((sal_uInt64 *)pThis);
+ pMethod += 8 * nVtableIndex;
+ pMethod = *((sal_uInt64 *)pMethod);
+
+- union ReturnValue {
+- struct {
+- sal_uInt64 rax;
+- sal_uInt64 rdx;
+- } i;
+- struct {
+- double xmm0;
+- double xmm1;
+- } f;
+- };
++ // Load parameters to stack, if necessary
++ if ( nStack )
++ {
++ // 16-bytes aligned
++ sal_uInt32 nStackBytes = ( ( nStack + 1 ) >> 1 ) * 16;
++ sal_uInt64 *pCallStack = (sal_uInt64 *) __builtin_alloca( nStackBytes );
++ memcpy( pCallStack, pStack, nStackBytes );
++ }
+
+- typedef ReturnValue (* FunctionCall )( sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64 );
++ // Return values
++ sal_uInt64 rax;
++ sal_uInt64 rdx;
++ double xmm0;
+
+- // Perform the call
+- ReturnValue aRet = ( ( FunctionCall ) pMethod )( a0, a1, a2, a3, a4, a5 );
++ asm volatile (
++
++ // Fill the xmm registers
++ "movq %2, %%rax\n\t"
+
+- switch (pReturnTypeDescr->eTypeClass)
+- {
+- case typelib_TypeClass_HYPER:
+- case typelib_TypeClass_UNSIGNED_HYPER:
+- *reinterpret_cast<sal_uInt64 *>( pRegisterReturn ) = aRet.i.rax;
+- break;
+- case typelib_TypeClass_LONG:
+- case typelib_TypeClass_UNSIGNED_LONG:
+- case typelib_TypeClass_ENUM:
+- *reinterpret_cast<sal_uInt32 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt32*>( &aRet.i.rax );
+- break;
+- case typelib_TypeClass_CHAR:
+- case typelib_TypeClass_SHORT:
+- case typelib_TypeClass_UNSIGNED_SHORT:
+- *reinterpret_cast<sal_uInt16 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt16*>( &aRet.i.rax );
+- break;
+- case typelib_TypeClass_BOOLEAN:
+- case typelib_TypeClass_BYTE:
+- *reinterpret_cast<sal_uInt8 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt8*>( &aRet.i.rax );
+- break;
+- case typelib_TypeClass_FLOAT:
+- *reinterpret_cast<float *>( pRegisterReturn ) = *reinterpret_cast<float*>( &aRet.f.xmm0 );
+- break;
+- case typelib_TypeClass_DOUBLE:
+- *reinterpret_cast<double *>( pRegisterReturn ) = *reinterpret_cast<double*>( &aRet.f.xmm0 );
+- break;
+- default: {
+- sal_Int32 const nRetSize = pReturnTypeDescr->nSize;
+- if (bSimpleReturn && nRetSize <= 16 && nRetSize > 0) {
+- if (nRetSize > 8)
+- static_cast<sal_uInt64 *>(pRegisterReturn)[1] = aRet.i.rdx;
+- static_cast<sal_uInt64 *>(pRegisterReturn)[0] = aRet.i.rax;
+- }
++ "movsd (%%rax), %%xmm0\n\t"
++ "movsd 8(%%rax), %%xmm1\n\t"
++ "movsd 16(%%rax), %%xmm2\n\t"
++ "movsd 24(%%rax), %%xmm3\n\t"
++ "movsd 32(%%rax), %%xmm4\n\t"
++ "movsd 40(%%rax), %%xmm5\n\t"
++ "movsd 48(%%rax), %%xmm6\n\t"
++ "movsd 56(%%rax), %%xmm7\n\t"
++
++ // Fill the general purpose registers
++ "movq %1, %%rax\n\t"
++
++ "movq (%%rax), %%rdi\n\t"
++ "movq 8(%%rax), %%rsi\n\t"
++ "movq 16(%%rax), %%rdx\n\t"
++ "movq 24(%%rax), %%rcx\n\t"
++ "movq 32(%%rax), %%r8\n\t"
++ "movq 40(%%rax), %%r9\n\t"
++
++ // Perform the call
++ "movq %0, %%r11\n\t"
++ "movq %3, %%rax\n\t"
++ "call *%%r11\n\t"
++
++ // Fill the return values
++ "movq %%rax, %4\n\t"
++ "movq %%rdx, %5\n\t"
++ "movsd %%xmm0, %6\n\t"
++ :
++ : "m" ( pMethod ), "m" ( pGPR ), "m" ( pFPR ), "m" ( nFPR ),
++ "m" ( rax ), "m" ( rdx ), "m" ( xmm0 )
++ : "rax", "rdi", "rsi", "rdx", "rcx", "r8", "r9", "r11"
++ );
++
++ switch (pReturnTypeDescr->eTypeClass)
++ {
++ case typelib_TypeClass_HYPER:
++ case typelib_TypeClass_UNSIGNED_HYPER:
++ *reinterpret_cast<sal_uInt64 *>( pRegisterReturn ) = rax;
+ break;
++ case typelib_TypeClass_LONG:
++ case typelib_TypeClass_UNSIGNED_LONG:
++ case typelib_TypeClass_ENUM:
++ *reinterpret_cast<sal_uInt32 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt32*>( &rax );
++ break;
++ case typelib_TypeClass_CHAR:
++ case typelib_TypeClass_SHORT:
++ case typelib_TypeClass_UNSIGNED_SHORT:
++ *reinterpret_cast<sal_uInt16 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt16*>( &rax );
++ break;
++ case typelib_TypeClass_BOOLEAN:
++ case typelib_TypeClass_BYTE:
++ *reinterpret_cast<sal_uInt8 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt8*>( &rax );
++ break;
++ case typelib_TypeClass_FLOAT:
++ case typelib_TypeClass_DOUBLE:
++ *reinterpret_cast<double *>( pRegisterReturn ) = xmm0;
++ break;
++ default:
++ {
++ sal_Int32 const nRetSize = pReturnTypeDescr->nSize;
++ if (bSimpleReturn && nRetSize <= 16 && nRetSize > 0)
++ {
++ if (nRetSize > 8)
++ static_cast<sal_uInt64 *>(pRegisterReturn)[1] = rdx;
++ static_cast<sal_uInt64 *>(pRegisterReturn)[0] = rax;
++ }
++ break;
++ }
+ }
+- }
+ }
+
++//==================================================================================================
++
++// Macros for easier insertion of values to registers or stack
++// pSV - pointer to the source
++// nr - order of the value [will be increased if stored to register]
++// pFPR, pGPR - pointer to the registers
++// pDS - pointer to the stack [will be increased if stored here]
++
++// The value in %xmm register is already prepared to be retrieved as a float,
++// thus we treat float and double the same
++#define INSERT_FLOAT_DOUBLE( pSV, nr, pFPR, pDS ) \
++ if ( nr < x86_64::MAX_SSE_REGS ) \
++ pFPR[nr++] = *reinterpret_cast<double *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV ); // verbatim!
++
++#define INSERT_INT64( pSV, nr, pGPR, pDS ) \
++ if ( nr < x86_64::MAX_GPR_REGS ) \
++ pGPR[nr++] = *reinterpret_cast<sal_uInt64 *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV );
++
++#define INSERT_INT32( pSV, nr, pGPR, pDS ) \
++ if ( nr < x86_64::MAX_GPR_REGS ) \
++ pGPR[nr++] = *reinterpret_cast<sal_uInt32 *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt32 *>( pSV );
++
++#define INSERT_INT16( pSV, nr, pGPR, pDS ) \
++ if ( nr < x86_64::MAX_GPR_REGS ) \
++ pGPR[nr++] = *reinterpret_cast<sal_uInt16 *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt16 *>( pSV );
++
++#define INSERT_INT8( pSV, nr, pGPR, pDS ) \
++ if ( nr < x86_64::MAX_GPR_REGS ) \
++ pGPR[nr++] = *reinterpret_cast<sal_uInt8 *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt8 *>( pSV );
+
+ //==================================================================================================
++
+ static void cpp_call(
+ bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
+ bridges::cpp_uno::shared::VtableSlot aVtableSlot,
+@@ -322,54 +246,52 @@
+ void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
+ {
+ // Maxium space for [complex ret ptr], values | ptr ...
+- char * pCppStack = (char *)__builtin_alloca( (nParams + 3) * sizeof(sal_uInt64) );
+- char * pCppStackStart = pCppStack;
++ // (but will be used less - some of the values will be in pGPR and pFPR)
++ sal_uInt64 *pStack = (sal_uInt64 *)__builtin_alloca( (nParams + 3) * sizeof(sal_uInt64) );
++ sal_uInt64 *pStackStart = pStack;
+
+- // We need to know parameter types for callVirtualMethod() so generate a signature string
+- char * pParamType = (char *)__builtin_alloca( nParams + 3 );
+- char * pPT = pParamType;
++ sal_uInt64 pGPR[x86_64::MAX_GPR_REGS];
++ sal_uInt32 nGPR = 0;
++
++ double pFPR[x86_64::MAX_SSE_REGS];
++ sal_uInt32 nFPR = 0;
+
+ // Return
+ typelib_TypeDescription * pReturnTypeDescr = 0;
+ TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+ OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+
+- void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
++ void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion (see below)
+
+ bool bSimpleReturn = true;
+- if (pReturnTypeDescr)
++ if ( pReturnTypeDescr )
+ {
+ if ( x86_64::return_in_hidden_param( pReturnTypeRef ) )
+ bSimpleReturn = false;
+
+- if (bSimpleReturn)
++ if ( bSimpleReturn )
+ pCppReturn = pUnoReturn; // direct way for simple types
+ else
+ {
+ // complex return via ptr
+- pCppReturn = *(void **)pCppStack = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
+- ? __builtin_alloca( pReturnTypeDescr->nSize )
+- : pUnoReturn); // direct way
+- *pPT++ = 'H';
+- pCppStack += sizeof(void *);
++ pCppReturn = bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )?
++ __builtin_alloca( pReturnTypeDescr->nSize ) : pUnoReturn;
++ INSERT_INT64( &pCppReturn, nGPR, pGPR, pStack );
+ }
+ }
+
+ // Push "this" pointer
+ void * pAdjustedThisPtr = reinterpret_cast< void ** >( pThis->getCppI() ) + aVtableSlot.offset;
+- *(void **)pCppStack = pAdjustedThisPtr;
+- *pPT++ = 'H';
+- pCppStack += sizeof(void *);
++ INSERT_INT64( &pAdjustedThisPtr, nGPR, pGPR, pStack );
+
+- // stack space
+ // Args
+- void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
++ void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
+ // Indizes of values this have to be converted (interface conversion cpp<=>uno)
+ sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+ // Type descriptions for reconversions
+ typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+
+- sal_Int32 nTempIndizes = 0;
++ sal_Int32 nTempIndizes = 0;
+
+ for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+ {
+@@ -379,45 +301,32 @@
+
+ if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+ {
+- uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
++ uno_copyAndConvertData( pCppArgs[nPos] = alloca( 8 ), pUnoArgs[nPos], pParamTypeDescr,
+ pThis->getBridge()->getUno2Cpp() );
+
+ switch (pParamTypeDescr->eTypeClass)
+ {
+-
+- // we need to know type of each param so that we know whether to use
+- // gpr or fpr to pass in parameters:
+- // Key: I - 32-bit value passed in gpr
+- // B - byte value passed in gpr
+- // S - short value passed in gpr
+- // F - float value pass in fpr
+- // D - double value pass in fpr
+- // H - long value passed in gpr
+- // X - indicates end of parameter description string
+-
++ case typelib_TypeClass_HYPER:
++ case typelib_TypeClass_UNSIGNED_HYPER:
++ INSERT_INT64( pCppArgs[nPos], nGPR, pGPR, pStack );
++ break;
+ case typelib_TypeClass_LONG:
+ case typelib_TypeClass_UNSIGNED_LONG:
+ case typelib_TypeClass_ENUM:
+- *pPT++ = 'I';
++ INSERT_INT32( pCppArgs[nPos], nGPR, pGPR, pStack );
+ break;
+ case typelib_TypeClass_SHORT:
+ case typelib_TypeClass_CHAR:
+ case typelib_TypeClass_UNSIGNED_SHORT:
+- *pPT++ = 'S';
++ INSERT_INT16( pCppArgs[nPos], nGPR, pGPR, pStack );
+ break;
+ case typelib_TypeClass_BOOLEAN:
+ case typelib_TypeClass_BYTE:
+- *pPT++ = 'B';
++ INSERT_INT8( pCppArgs[nPos], nGPR, pGPR, pStack );
+ break;
+ case typelib_TypeClass_FLOAT:
+- *pPT++ = 'F';
+- break;
+ case typelib_TypeClass_DOUBLE:
+- *pPT++ = 'D';
+- break;
+- case typelib_TypeClass_HYPER:
+- case typelib_TypeClass_UNSIGNED_HYPER:
+- *pPT++ = 'H';
++ INSERT_FLOAT_DOUBLE( pCppArgs[nPos], nFPR, pFPR, pStack );
+ break;
+ }
+
+@@ -430,7 +339,7 @@
+ {
+ // cpp out is constructed mem, uno out is not!
+ uno_constructData(
+- *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++ pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+ pParamTypeDescr );
+ pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+ // will be released at reconversion
+@@ -440,7 +349,7 @@
+ else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+ {
+ uno_copyAndConvertData(
+- *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++ pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+ pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() );
+
+ pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+@@ -449,27 +358,22 @@
+ }
+ else // direct way
+ {
+- *(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
++ pCppArgs[nPos] = pUnoArgs[nPos];
+ // no longer needed
+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+ }
+- // FIXME: is this the right way to pass these?
+- *pPT++='H';
++ INSERT_INT64( &(pCppArgs[nPos]), nGPR, pGPR, pStack );
+ }
+- pCppStack += sizeof(sal_uInt64); // standard parameter length
+ }
+
+- // terminate the signature string
+- *pPT++ = 'X';
+- *pPT = 0;
+-
+ try
+ {
+- OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 7), "UNALIGNED STACK !!! (Please DO panic)" );
+ callVirtualMethod(
+ pAdjustedThisPtr, aVtableSlot.index,
+- pCppReturn, pReturnTypeDescr, bSimpleReturn, pParamType,
+- (sal_uInt64 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_uInt64) );
++ pCppReturn, pReturnTypeDescr, bSimpleReturn,
++ pStackStart, ( pStack - pStackStart ),
++ pGPR, nGPR,
++ pFPR, nFPR );
+ // NO exception occured...
+ *ppUnoExc = 0;
+
+@@ -525,8 +429,8 @@
+ }
+ }
+
+-
+ //==================================================================================================
++
+ namespace bridges { namespace cpp_uno { namespace shared {
+
+ void unoInterfaceProxyDispatch(
diff --git a/editors/openoffice.org-2-devel/files/patch-i76969 b/editors/openoffice.org-2-devel/files/patch-i76969
new file mode 100644
index 000000000000..123402727290
--- /dev/null
+++ b/editors/openoffice.org-2-devel/files/patch-i76969
@@ -0,0 +1,40 @@
+Index: solenv/inc/unxfbsd.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/unxfbsd.mk,v
+retrieving revision 1.3
+diff -u -r1.3 unxfbsd.mk
+--- solenv/inc/unxfbsd.mk 9 Mar 2007 09:07:55 -0000 1.3
++++ solenv/inc/unxfbsd.mk 4 May 2007 16:22:53 -0000
+@@ -121,12 +121,6 @@
+ # Compiler flags for debugging
+ CFLAGSDEBUG=-g
+ CFLAGSDBGUTIL=
+-# Compiler flags for enabling optimizations
+-.IF "$(PRODUCT)"!=""
+-CFLAGSOPT=-Os -fno-strict-aliasing # optimizing for products
+-.ELSE # "$(PRODUCT)"!=""
+-CFLAGSOPT= # no optimizing for non products
+-.ENDIF # "$(PRODUCT)"!=""
+ # Compiler flags for disabling optimizations
+ CFLAGSNOOPT=-O0
+ # Compiler flags for describing the output path
+Index: solenv/inc/unxfbsdi.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/unxfbsdi.mk,v
+retrieving revision 1.24
+diff -u -r1.24 unxfbsdi.mk
+--- solenv/inc/unxfbsdi.mk 19 Jul 2006 09:27:04 -0000 1.24
++++ solenv/inc/unxfbsdi.mk 4 May 2007 16:22:53 -0000
+@@ -43,5 +43,12 @@
+ # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
+ ARCH_FLAGS*=-mtune=pentiumpro
+
++# Compiler flags for enabling optimizations
++.IF "$(PRODUCT)"!=""
++CFLAGSOPT=-Os -fno-strict-aliasing # optimizing for products
++.ELSE # "$(PRODUCT)"!=""
++CFLAGSOPT= # no optimizing for non products
++.ENDIF # "$(PRODUCT)"!=""
++
+ # platform specific identifier for shared libs
+ DLLPOSTFIX=fi
diff --git a/editors/openoffice.org-2-devel/files/patch-i77615 b/editors/openoffice.org-2-devel/files/patch-i77615
new file mode 100644
index 000000000000..89fe1aaee7c8
--- /dev/null
+++ b/editors/openoffice.org-2-devel/files/patch-i77615
@@ -0,0 +1,57 @@
+For FreeBSD, libxslt builds libraries as libxslt.so.2 or something
+like that. Following patch fixes this.
+
+Index: libxslt/libxslt-1.1.16.patch
+===================================================================
+RCS file: /cvs/external/libxslt/libxslt-1.1.16.patch,v
+retrieving revision 1.2
+diff -u -r1.2 libxslt-1.1.16.patch
+--- libxslt/libxslt-1.1.16.patch 10 May 2007 13:10:07 -0000 1.2
++++ libxslt/libxslt-1.1.16.patch 20 May 2007 02:35:31 -0000
+@@ -108,3 +108,46 @@
+ !
+ ! exit 0
+
++*** misc/libxslt-1.1.16/ltmain.sh Sun Feb 12 09:50:49 2006
++--- misc/build/libxslt-1.1.16/ltmain.sh Sun May 20 11:34:29 2007
++***************
++*** 3192,3200 ****
++ revision="$number_revision"
++ ;;
++ freebsd-aout|freebsd-elf|sunos)
++! current="$number_major"
++! revision="$number_minor"
++! age="0"
++ ;;
++ irix|nonstopux)
++ current=`expr $number_major + $number_minor - 1`
++--- 3192,3200 ----
++ revision="$number_revision"
++ ;;
++ freebsd-aout|freebsd-elf|sunos)
++! current=`expr $number_major + $number_minor`
++! age="$number_minor"
++! revision="$number_revision"
++ ;;
++ irix|nonstopux)
++ current=`expr $number_major + $number_minor - 1`
++***************
++*** 3267,3274 ****
++ ;;
++
++ freebsd-elf)
++! major=".$current"
++! versuffix=".$current";
++ ;;
++
++ irix | nonstopux)
++--- 3267,3274 ----
++ ;;
++
++ freebsd-elf)
++! major=.`expr $current - $age`
++! versuffix="$major.$age.$revision"
++ ;;
++
++ irix | nonstopux)
++
diff --git a/editors/openoffice.org-2-devel/files/patch-i77793 b/editors/openoffice.org-2-devel/files/patch-i77793
new file mode 100644
index 000000000000..e182b8727409
--- /dev/null
+++ b/editors/openoffice.org-2-devel/files/patch-i77793
@@ -0,0 +1,11 @@
+--- sw/source/core/unocore/unotbl.cxx 2007-05-25 13:02:05.000000000 +0200
++++ sw/source/core/unocore/unotbl.cxx 2007-05-25 13:09:00.000000000 +0200
+@@ -4455,7 +4455,7 @@
+ // now we'll try to get a useful numerical value
+ // from the text in the cell...
+
+- ULONG nFIndex;
++ sal_uInt32 nFIndex;
+ SvNumberFormatter* pNumFormatter = pTblCrsr->GetDoc()->GetNumberFormatter();
+
+ // look for SwTblBoxNumFormat value in parents as well
diff --git a/editors/openoffice.org-2-devel/files/patch-i77829 b/editors/openoffice.org-2-devel/files/patch-i77829
new file mode 100644
index 000000000000..c7be6ab14215
--- /dev/null
+++ b/editors/openoffice.org-2-devel/files/patch-i77829
@@ -0,0 +1,45 @@
+g++42 -fmessage-length=0 -c -Os -fno-strict-aliasing -ftemplate-depth-128 -I. -I../../../unxfbsdi.pro/inc/chcdialogs -I../inc -I../../../source/inc -I../../../inc/pch -I../../../inc/chart2 -I../../../inc -I../../../unx/inc -I../../../unxfbsdi.pro/inc -I. -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/stl -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/external -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solenv/unxfbsdi/inc -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solenv/inc -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/res -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/stl -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solenv/inc/Xp31 -I/usr/local/diablo-jdk1.5.0/include -I/usr/local/diablo-jdk1.5.0/include/freebsd -I/usr/local/diablo-jdk1.5.0/include/bsd -I/usr/local/diablo-jdk1.5.0/include/linux -I/usr/local/diablo-jdk1.5.0/include/native_threads/include -I/usr/local/include -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/offuh -I. -I../../../res -I. -pipe -mtune=pentiumpro -fvisibility-inlines-hidden -g1 -Wall -Wextra -Wendif-labels -Wshadow -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -fpic -DFREEBSD -DUNX -DVCL -DGCC -DC341 -DINTEL -DCVER=C341 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=450 -DHAVE_GCC_VISIBILITY_FEATURE -D__DMAKE -DUNIX -DCPPU_ENV=gcc3 -DGXX_INCLUDE_PATH=/usr/local/lib/gcc-4.2.0/include/c++ -DSUPD=680 -DPRODUCT -DNDEBUG -DPRODUCT_FULL -DOSL_DEBUG_LEVEL=0 -DOPTIMIZE -DCUI -DSOLAR_JAVA -DSRC680=SRC680 -DSHAREDLIB -D_DLL_ -fexceptions -fno-enforce-eh-specs -DEXCEPTIONS_ON -o ../../../unxfbsdi.pro/slo/DataBrowser.o /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx
+In file included from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/cppuhelper/implbase1.hxx:42,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/svtools/transfer.hxx:54,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/svtools/brwbox.hxx:56,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/svtools/editbrowsebox.hxx:69,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.hxx:40,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx:51:
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/rtl/instance.hxx: In static member function 'static Inst*<unnamed>::rtl_Instance<Inst, InstCtor, Guard, GuardCtor, Data, DataCtor>::create(InstCtor, GuardCtor)':
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/rtl/instance.hxx:305: warning: empty body in an else-statement
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/rtl/instance.hxx: In static member function 'static Inst*<unnamed>::rtl_Instance<Inst, InstCtor, Guard, GuardCtor, Data, DataCtor>::create(InstCtor, GuardCtor, DataCtor)':
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/rtl/instance.hxx:329: warning: empty body in an else-statement
+In file included from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx:52:
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowserModel.hxx: At global scope:
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowserModel.hxx:110: error: extra qualification 'chart::DataBrowserModel::' on member 'setCellAny'
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx: In member function 'bool chart::DataBrowser::MaySwapColumns() const':
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx:574: warning: declaration of 'bHasFocus' shadows a member of 'this'
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx: In member function 'void chart::DataBrowser::RenewTable()':
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx:634: warning: declaration of 'nRowCount' shadows a member of 'this'
+dmake: Error code 1, while making '../../../unxfbsdi.pro/slo/DataBrowser.obj'
+---* tg_merge.mk *---
+
+ERROR: Error 65280 occurred while making /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs
+dmake: Error code 1, while making 'build_instsetoo_native'
+---* *---
+*** Error code 255
+
+Stop in /work/ports/editors/openoffice.org-2-devel.
+
+Index: chart2/source/controller/dialogs/DataBrowserModel.hxx
+===================================================================
+RCS file: /cvs/graphics/chart2/source/controller/dialogs/DataBrowserModel.hxx,v
+retrieving revision 1.2
+diff -u -r1.2 DataBrowserModel.hxx
+--- chart2/source/controller/dialogs/DataBrowserModel.hxx 22 May 2007 17:27:59 -0000 1.2
++++ chart2/source/controller/dialogs/DataBrowserModel.hxx 26 May 2007 10:47:37 -0000
+@@ -106,8 +106,7 @@
+ bool setCellNumber( sal_Int32 nAtColumn, sal_Int32 nAtRow, double fValue );
+ /// returns </TRUE> if the text could successfully be set at the given position
+ bool setCellText( sal_Int32 nAtColumn, sal_Int32 nAtRow, const ::rtl::OUString & rText );
+- bool DataBrowserModel::setCellAny( sal_Int32 nAtColumn, sal_Int32 nAtRow,
+- const ::com::sun::star::uno::Any & aValue );
++ bool setCellAny( sal_Int32 nAtColumn, sal_Int32 nAtRow, const ::com::sun::star::uno::Any & aValue );
+
+ sal_Int32 getColumnCount() const;
+ sal_Int32 getMaxRowCount() const;
diff --git a/editors/openoffice.org-3-devel/Makefile b/editors/openoffice.org-3-devel/Makefile
index e89a244101ec..72f808b2d022 100644
--- a/editors/openoffice.org-3-devel/Makefile
+++ b/editors/openoffice.org-3-devel/Makefile
@@ -7,10 +7,9 @@
PORTNAME?= openoffice.org
PORTVERSION?= 2.3.${SNAPDATE}
-PORTREVISION= 1
CATEGORIES+= editors java
-MASTER_SITES+= http://openoffice.lunarshells.com/sources/ \
- http://ooopackages.good-day.net/pub/OpenOffice.org/sources/ \
+MASTER_SITES+= http://ooopackages.good-day.net/pub/OpenOffice.org/sources/ \
+ http://openoffice.lunarshells.com/sources/ \
http://ooopackages.good-day.net/pub/OpenOffice.org/cws/:cws \
ftp://ftp.cs.man.ac.uk/pub/toby/gpc/:gpc \
${MASTER_SITE_APACHE:S,%SUBDIR%/,ant/binaries/:antbin,} \
@@ -21,9 +20,6 @@ DISTFILES+= ${OOOSRC} unowinreg.dll:unowinreg
.if defined(WITH_GPC)
DISTFILES+= gpc231.tar.Z:gpc
.endif
-.if defined(WITH_GNUGCJ)
-DISTFILES+= ${ANT_DISTFILE}:antbin
-.endif
EXTRACT_ONLY= ${OOOSRC}
MAINTAINER= openoffice@FreeBSD.org
@@ -53,38 +49,34 @@ USE_PERL5= yes
USE_BZIP2= yes
WITHOUT_CPU_CFLAGS= true
-.if !defined(WITH_GNUGCJ)
USE_JAVA= yes
JAVA_VERSION= 1.4+
JAVA_BUILD= jdk
JAVA_VENDOR= freebsd bsdjava
-.endif
.include <bsd.port.pre.mk>
.include <${FILESDIR}/Makefile.localized>
-ONLY_FOR_ARCHS= i386 amd64
+ONLY_FOR_ARCHS= i386 #amd64
.if ${ARCH} == amd64
-GCC_TARGET= x86_64-portbld-freebsd${OSREL}
FREEBSD_ENV_SET= FreeBSDAMDEnv.Set
.else
-GCC_TARGET= ${ARCH}-portbld-freebsd${OSREL}
FREEBSD_ENV_SET= FreeBSDX86Env.Set
.endif
CODELINE= 680
-MILESTONE?= 211
+MILESTONE?= 213
OOOTAG?= SRC680_m${MILESTONE}
OOOSRC?= OOo_${OOOTAG}_source${EXTRACT_SUFX}
-SNAPDATE= 20070428
+SNAPDATE= 20070525
INSTALLATION_BASEDIR?= openoffice.org-${OOOTAG}
EXECBASE?= openoffice.org-${OOOTAG}
.if defined(WITH_CWS)
INSTALLATION_BASEDIR= openoffice.org-${OOOTAG}-${WITH_CWS}
EXECBASE= openoffice.org-${OOOTAG}-${WITH_CWS}
.endif
-DIST_SUBDIR= openoffice.org2.0
+DIST_SUBDIR= openoffice.org2
SIMPLEOSVER= ${OSREL:C/\.//g}
.if ${ARCH} == amd64
PACKAGE_BASENAME= OOo_${OOOTAG}_${OPSYS}${SIMPLEOSVER}X86_64
@@ -103,39 +95,13 @@ PKGNAMESUFFIX= -${LANG_SUFFIX}
RUN_DEPENDS+= ${LOCALBASE}/share/icons/hicolor/index.theme:${PORTSDIR}/misc/hicolor-icon-theme
-.if defined(WITH_GNUGCJ)
-GCCVER=41
-BUILD_DEPENDS+= ${LOCALBASE}/libdata/ldconfig/gcc41-withgcjawt:${PORTSDIR}/lang/gcc41-withgcjawt
-BUILD_DEPENDS+= ${LOCALBASE}/lib/jvm/java-gcj41/bin/java:${PORTSDIR}/java/java-gcj-compat
-RUN_DEPENDS+= ${LOCALBASE}/libdata/ldconfig/gcc41-withgcjawt:${PORTSDIR}/lang/gcc41-withgcjawt
-RUN_DEPENDS+= ${LOCALBASE}/lib/jvm/java-gcj41/bin/java:${PORTSDIR}/java/java-gcj-compat
-.else
-.if ${ARCH} == amd64
-GCCVER=41
-BUILD_DEPENDS+= gcc41:${PORTSDIR}/lang/gcc41
-RUN_DEPENDS+= gcc41:${PORTSDIR}/lang/gcc41
-.else
-GCCVER=34
-BUILD_DEPENDS+= gcc-ooo:${PORTSDIR}/lang/gcc-ooo
-.endif
-.endif
-
+USE_GCC= 4.2
.if defined(WITH_CCACHE)
BUILD_DEPENDS+= ccache:${PORTSDIR}/devel/ccache
CCACHE_PREFIX= ccache
-.else
-CCACHE_PREFIX=
-.endif
-.if (${GCCVER} == 41)
-CC= gcc41
-CXX= g++41
-.endif
-.if (${GCCVER} == 34)
-CC= gcc-ooo
-CXX= g++-ooo
-.endif
CC:= ${CCACHE_PREFIX} ${CC}
CXX:= ${CCACHE_PREFIX} ${CXX}
+.endif
BUILD_DEPENDS+= zip:${PORTSDIR}/archivers/zip \
unzip:${PORTSDIR}/archivers/unzip \
@@ -144,14 +110,7 @@ BUILD_DEPENDS+= zip:${PORTSDIR}/archivers/zip \
${SITE_PERL}/Archive/Zip.pm:${PORTSDIR}/archivers/p5-Archive-Zip \
bison2:${PORTSDIR}/devel/bison2 \
imake:${X_IMAKE_PORT}
-.if defined(WITH_GNUGCJ)
-LIB_DEPENDS+= xslt.2:${PORTSDIR}/textproc/libxslt
-LIB_DEPENDS+= xml2.5:${PORTSDIR}/textproc/libxml2
-ANT_DISTFILE= apache-ant-${ANT_VERSION}-bin.tar.bz2
-ANT_VERSION= 1.6.5
-.else
BUILD_DEPENDS+= ant:${PORTSDIR}/devel/apache-ant
-.endif
.if !defined(WITH_GPC)
LIB_DEPENDS+= art_lgpl_2:${PORTSDIR}/graphics/libart_lgpl
.endif
@@ -162,28 +121,20 @@ CONFIGURE_WRKSRC= ${WRKSRC}/config_office
TCSH?= /bin/tcsh
PKGMESSAGE= ${WRKDIR}/pkg-message
NUMOFPROCESSES?= 1
-.if defined(WITH_GNUGCJ)
-CONFIGURE_ENV+= PATH="${LOCALBASE}/lib/jvm/java-gcj41/bin:${PATH}"
-.endif
CONFIGURE_ARGS+= --with-gnu-cp=${LOCALBASE}/bin/gcp \
--with-gnu-patch=${LOCALBASE}/bin/gpatch \
--enable-crashdump=yes \
--enable-symbols=SMALL
-.if ${ARCH} == amd64 || ${GCCVER} == 41
+.if ${ARCH} == amd64
WITHOUT_MOZILLA= yes
.endif
-.if (${GCCVER} == 41)
-LIB_DEPENDS+= boost_regex:${PORTSDIR}/devel/boost
-CONFIGURE_ARGS+= --with-system-boost=yes #i58343#
-.endif
+#LIB_DEPENDS+= boost_regex:${PORTSDIR}/devel/boost
+#CONFIGURE_ARGS+= --with-system-boost=yes #i58343#
.if (${OSVERSION} <= 602102)
EXTRA_PATCHES+= ${FILESDIR}/rtld-workaround-i66667
.endif
-.if defined(WITH_GNUGCJ)
-EXTRA_PATCHES+= ${FILESDIR}/gcj-fbsdworkaround
-.endif
.if !defined(WITH_SYSTEM_FREETYPE) && defined(WITH_TTF_BYTECODE_ENABLED)
EXTRA_PATCHES+= ${FILESDIR}/optpatch-freetype
.endif
@@ -214,9 +165,6 @@ post-extract:
.if defined(WITH_CWS)
cd ${WRKSRC} ; ${TAR} xvfz ${DISTDIR}/${DIST_SUBDIR}/${CWSARCHIVE}
.endif
-.if defined(WITH_GNUGCJ)
- @cd ${WRKDIR} ; ${CAT} ${DISTDIR}/${DIST_SUBDIR}/${ANT_DISTFILE} | ${BZIP2_CMD} -d | ${TAR} xf -
-.endif
.if defined(WITH_GPC)
@cd ${WRKDIR} ; ${CAT} ${DISTDIR}/${DIST_SUBDIR}/gpc231.tar.Z | ${TAR} xfz -
@${CP} ${WRKDIR}/gpc231/gpc.c ${WRKSRC}/external/gpc/
diff --git a/editors/openoffice.org-3-devel/distinfo b/editors/openoffice.org-3-devel/distinfo
index 66910c96a1a5..b95fc19e9a46 100644
--- a/editors/openoffice.org-3-devel/distinfo
+++ b/editors/openoffice.org-3-devel/distinfo
@@ -1,15 +1,12 @@
-MD5 (openoffice.org2.0/OOo_SRC680_m211_source.tar.bz2) = 1a45342987e7b9137da1fca8ec1a763a
-SHA256 (openoffice.org2.0/OOo_SRC680_m211_source.tar.bz2) = 8321544ec8d9f74ec7a620dcbee6dbf447713c86548a539eb7ce05e8f1ddeaa6
-SIZE (openoffice.org2.0/OOo_SRC680_m211_source.tar.bz2) = 272054401
-MD5 (openoffice.org2.0/unowinreg.dll) = e3a0b76dcd876f3d721ee7183729153d
-SHA256 (openoffice.org2.0/unowinreg.dll) = f563e522922133db9340b0306711c2d8767cc3481dd9e7d9b0d059906d12653c
-SIZE (openoffice.org2.0/unowinreg.dll) = 6144
-MD5 (openoffice.org2.0/gpc231.tar.Z) = fdb06fdb5a4670b172f9fb738b717be9
-SHA256 (openoffice.org2.0/gpc231.tar.Z) = c1265948554a9882fe8342ecc9ccbdb423321a572a5a6b56f7dfad389540da4e
-SIZE (openoffice.org2.0/gpc231.tar.Z) = 27917
-MD5 (openoffice.org2.0/apache-ant-1.6.5-bin.tar.bz2) = 26031ee1a2fd248ad0cc2e7f17c44c39
-SHA256 (openoffice.org2.0/apache-ant-1.6.5-bin.tar.bz2) = d463b8259cb199cd26799c817756c73e4e7808b0cf915f86841ac9779e0f9936
-SIZE (openoffice.org2.0/apache-ant-1.6.5-bin.tar.bz2) = 6743024
-MD5 (openoffice.org2.0/mozilla-source-1.7.5.tar.gz) = d3f3528b6c5eade402ed058207cffa14
-SHA256 (openoffice.org2.0/mozilla-source-1.7.5.tar.gz) = 3e252bab95ecad3016b72fa594e0c44b9633d8c7b6af187e088a092019b56445
-SIZE (openoffice.org2.0/mozilla-source-1.7.5.tar.gz) = 38721366
+MD5 (openoffice.org2/OOo_SRC680_m213_source.tar.bz2) = 7120d049a1aa1801205d574abd1c77fd
+SHA256 (openoffice.org2/OOo_SRC680_m213_source.tar.bz2) = 1f8edbecfa3e9c2122c2f3a0acbcd4c52620a86e5b1c06d93b04cce34b49ca7d
+SIZE (openoffice.org2/OOo_SRC680_m213_source.tar.bz2) = 270389079
+MD5 (openoffice.org2/unowinreg.dll) = e3a0b76dcd876f3d721ee7183729153d
+SHA256 (openoffice.org2/unowinreg.dll) = f563e522922133db9340b0306711c2d8767cc3481dd9e7d9b0d059906d12653c
+SIZE (openoffice.org2/unowinreg.dll) = 6144
+MD5 (openoffice.org2/gpc231.tar.Z) = fdb06fdb5a4670b172f9fb738b717be9
+SHA256 (openoffice.org2/gpc231.tar.Z) = c1265948554a9882fe8342ecc9ccbdb423321a572a5a6b56f7dfad389540da4e
+SIZE (openoffice.org2/gpc231.tar.Z) = 27917
+MD5 (openoffice.org2/mozilla-source-1.7.5.tar.gz) = d3f3528b6c5eade402ed058207cffa14
+SHA256 (openoffice.org2/mozilla-source-1.7.5.tar.gz) = 3e252bab95ecad3016b72fa594e0c44b9633d8c7b6af187e088a092019b56445
+SIZE (openoffice.org2/mozilla-source-1.7.5.tar.gz) = 38721366
diff --git a/editors/openoffice.org-3-devel/files/Makefile.knobs b/editors/openoffice.org-3-devel/files/Makefile.knobs
index 231af9477271..deb2059d1b29 100644
--- a/editors/openoffice.org-3-devel/files/Makefile.knobs
+++ b/editors/openoffice.org-3-devel/files/Makefile.knobs
@@ -2,10 +2,11 @@
# Whom: Maho Nakata <maho@FreeBSD.org>
# $FreeBSD$
-.if !defined(WITH_GNUGCJ)
CONFIGURE_ARGS+= --with-jdk-home="${JAVA_HOME}" --with-ant-home="${LOCALBASE}/share/java/apache-ant"
-.else
-CONFIGURE_ARGS+= --with-jdk-home="${LOCALBASE}/lib/jvm/java-gcj41" --with-java=gij --with-ant-home="${WRKDIR}/apache-ant-${ANT_VERSION}"
+
+.if defined(WITH_VBA)
+CONFIGURE_ARGS+= --enable-vba --with-vba-package-format="builtin"
+EXTRA_PATCHES+= ${FILESDIR}/cws-npower7.diff
.endif
.if defined(WITH_KDE)
@@ -92,6 +93,11 @@ pre-fetch:
@${ECHO} "You can compile OOo without gnome VFS support with"
@${ECHO} "make -DWITHOUT_GNOMEVFS"
.endif
+.if !defined(WITH_VBA)
+ @${ECHO}
+ @${ECHO} "You can compile OOo with VBA support with"
+ @${ECHO} "make -DWITH_VBA"
+.endif
.if !defined(WITH_SYSTEM_FREETYPE)
@${ECHO}
@${ECHO} "You can compile OOo with freetype2 from ports with"
@@ -120,11 +126,6 @@ pre-fetch:
@${ECHO} "zh-CN zh-TW zu"
@${ECHO} "Default: en-US"
.endif
-.if !defined(WITH_GNUGCJ)
- @${ECHO}
- @${ECHO} "You can compile OOo with GNU GCJ instead of SUN's JDK with"
- @${ECHO} "make -DWITH_GNUGCJ"
-.endif
.if !defined(WITH_CUPS)
@${ECHO}
@${ECHO} "You can compile OOo with CUPS support with"
diff --git a/editors/openoffice.org-3-devel/files/cws-npower7.diff b/editors/openoffice.org-3-devel/files/cws-npower7.diff
new file mode 100644
index 000000000000..cf8ccac2d39e
--- /dev/null
+++ b/editors/openoffice.org-3-devel/files/cws-npower7.diff
@@ -0,0 +1,1833 @@
+cvs diff: Diffing basic
+cvs diff: Diffing basic/inc
+cvs diff: Diffing basic/inc/basic
+Index: basic/inc/basic/basmgr.hxx
+===================================================================
+RCS file: /cvs/script/basic/inc/basic/basmgr.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.12.1
+diff -u -p -r1.2 -r1.2.12.1
+--- basic/inc/basic/basmgr.hxx 11 Apr 2007 12:50:02 -0000 1.2
++++ basic/inc/basic/basmgr.hxx 2 May 2007 09:44:21 -0000 1.2.12.1
+@@ -167,6 +167,7 @@ private:
+ String aName;
+ String maStorageName;
+ BOOL bBasMgrModified;
++ BOOL mbDocMgr;
+
+ BasicManagerImpl* mpImpl;
+
+@@ -190,8 +191,8 @@ protected:
+
+ public:
+ TYPEINFO();
+- BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBASIC* pParentFromStdLib = NULL, String* pLibPath = NULL );
+- BasicManager( StarBASIC* pStdLib, String* pLibPath = NULL );
++ BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBASIC* pParentFromStdLib = NULL, String* pLibPath = NULL, BOOL bDocMgr = FALSE );
++ BasicManager( StarBASIC* pStdLib, String* pLibPath = NULL, BOOL bDocMgr = FALSE );
+
+ /** deletes the given BasicManager instance
+
+Index: basic/inc/basic/sbstar.hxx
+===================================================================
+RCS file: /cvs/script/basic/inc/basic/sbstar.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.12.1
+diff -u -p -r1.2 -r1.2.12.1
+--- basic/inc/basic/sbstar.hxx 11 Apr 2007 12:52:47 -0000 1.2
++++ basic/inc/basic/sbstar.hxx 2 May 2007 09:44:21 -0000 1.2.12.1
+@@ -81,6 +81,7 @@ class StarBASIC : public SbxObject
+ Link aBreakHdl; // Breakpoint-Handler
+ BOOL bNoRtl; // TRUE: RTL nicht durchsuchen
+ BOOL bBreak; // TRUE: Break, sonst Step
++ BOOL bDocBasic;
+ BasicLibInfo* pLibInfo; // Infoblock fuer Basic-Manager
+ SbLanguageMode eLanguageMode; // LanguageMode des Basic-Objekts
+ protected:
+@@ -104,7 +105,7 @@ public:
+ SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_BASIC,1);
+ TYPEINFO();
+
+- StarBASIC( StarBASIC* pParent = NULL );
++ StarBASIC( StarBASIC* pParent = NULL, BOOL bIsDocBasic = FALSE );
+
+ // #51727 SetModified ueberladen, damit der Modified-
+ // Zustand nicht an den Parent weitergegeben wird.
+@@ -203,6 +204,7 @@ public:
+ static void StaticEnableReschedule( BOOL bReschedule );
+
+ SbxObjectRef getRTL( void ) { return pRtl; }
++ BOOL IsDocBasic() { return bDocBasic; }
+ };
+
+ #ifndef __SB_SBSTARBASICREF_HXX
+Index: basic/inc/basic/sbx.hxx
+===================================================================
+RCS file: /cvs/script/basic/inc/basic/sbx.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.12.1
+diff -u -p -r1.2 -r1.2.12.1
+--- basic/inc/basic/sbx.hxx 11 Apr 2007 12:53:21 -0000 1.2
++++ basic/inc/basic/sbx.hxx 2 May 2007 09:44:42 -0000 1.2.12.1
+@@ -263,6 +263,7 @@ class SbxDimArray : public SbxArray
+ SbxDim* pFirst, *pLast; // Links fuer Dimension-Tabelle
+ short nDim; // Anzahl Dimensionen
+ void AddDimImpl32( INT32, INT32, BOOL bAllowSize0 );
++ bool mbHasFixedSize;
+ protected:
+ USHORT Offset( const short* );
+ UINT32 Offset32( const INT32* );
+@@ -302,6 +303,8 @@ public:
+ void AddDim32( INT32, INT32 );
+ void unoAddDim32( INT32, INT32 );
+ BOOL GetDim32( INT32, INT32&, INT32& ) const;
++ bool hasFixedSize() { return mbHasFixedSize; };
++ void setHasFixedSize( bool bHasFixedSize ) {mbHasFixedSize = bHasFixedSize; };
+ };
+
+ #endif
+cvs diff: Diffing basic/inc/pch
+cvs diff: Diffing basic/prj
+cvs diff: Diffing basic/source
+cvs diff: Diffing basic/source/app
+cvs diff: Diffing basic/source/basmgr
+Index: basic/source/basmgr/basicmanagerrepository.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/basmgr/basicmanagerrepository.cxx,v
+retrieving revision 1.4
+retrieving revision 1.4.14.1
+diff -u -p -r1.4 -r1.4.14.1
+--- basic/source/basmgr/basicmanagerrepository.cxx 15 Mar 2007 15:37:48 -0000 1.4
++++ basic/source/basmgr/basicmanagerrepository.cxx 2 May 2007 09:44:21 -0000 1.4.14.1
+@@ -491,7 +491,7 @@ namespace basic
+ SotStorageRef xDummyStor = new SotStorage( ::rtl::OUString() );
+ pBasicManager = new BasicManager( *xDummyStor, String() /* TODO/LATER: xStorage */,
+ pAppBasic,
+- &aAppBasicDir );
++ &aAppBasicDir, TRUE );
+ if ( pBasicManager->HasErrors() )
+ {
+ // handle errors
+@@ -517,7 +517,7 @@ namespace basic
+ // create new BASIC-manager
+ StarBASIC* pBasic = new StarBASIC( pAppBasic );
+ pBasic->SetFlag( SBX_EXTSEARCH );
+- pBasicManager = new BasicManager( pBasic );
++ pBasicManager = new BasicManager( pBasic, NULL, TRUE );
+ }
+
+ // knit the containers with the BasicManager
+Index: basic/source/basmgr/basmgr.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/basmgr/basmgr.cxx,v
+retrieving revision 1.39
+retrieving revision 1.39.2.1
+diff -u -p -r1.39 -r1.39.2.1
+--- basic/source/basmgr/basmgr.cxx 26 Apr 2007 08:32:47 -0000 1.39
++++ basic/source/basmgr/basmgr.cxx 2 May 2007 09:44:21 -0000 1.39.2.1
+@@ -685,7 +685,7 @@ void BasicLibInfo::CalcRelStorageName( c
+ else
+ SetRelStorageName( String() );
+ }
+-BasicManager::BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBASIC* pParentFromStdLib, String* pLibPath )
++BasicManager::BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBASIC* pParentFromStdLib, String* pLibPath, BOOL bDocMgr ) : mbDocMgr( bDocMgr )
+ {
+ DBG_CTOR( BasicManager, 0 );
+
+@@ -714,7 +714,7 @@ BasicManager::BasicManager( SotStorage&
+ if ( !pStdLib )
+ {
+ // Sollte eigentlich nie passieren, aber dann wenigstens nicht abstuerzen...
+- pStdLib = new StarBASIC;
++ pStdLib = new StarBASIC( NULL, mbDocMgr );
+ BasicLibInfo* pStdLibInfo = pLibs->GetObject( 0 );
+ if ( !pStdLibInfo )
+ pStdLibInfo = CreateLibInfo();
+@@ -895,7 +895,7 @@ void BasicManager::SetLibraryContainerIn
+ InsertGlobalUNOConstant( "DialogLibraries", makeAny( mpImpl->maContainerInfo.mxDialogCont ) );
+ }
+
+-BasicManager::BasicManager( StarBASIC* pSLib, String* pLibPath )
++BasicManager::BasicManager( StarBASIC* pSLib, String* pLibPath, BOOL bDocMgr ) : mbDocMgr( bDocMgr )
+ {
+ DBG_CTOR( BasicManager, 0 );
+ Init();
+@@ -936,7 +936,7 @@ void BasicManager::ImpMgrNotLoaded( cons
+
+ // Eine STD-Lib erzeugen, sonst macht es Peng!
+ BasicLibInfo* pStdLibInfo = CreateLibInfo();
+- pStdLibInfo->SetLib( new StarBASIC );
++ pStdLibInfo->SetLib( new StarBASIC( NULL, mbDocMgr ) );
+ StarBASICRef xStdLib = pStdLibInfo->GetLib();
+ xStdLib->SetName( String::CreateFromAscii(szStdLibName) );
+ pStdLibInfo->SetLibName( String::CreateFromAscii(szStdLibName) );
+@@ -948,7 +948,7 @@ void BasicManager::ImpMgrNotLoaded( cons
+ void BasicManager::ImpCreateStdLib( StarBASIC* pParentFromStdLib )
+ {
+ BasicLibInfo* pStdLibInfo = CreateLibInfo();
+- StarBASIC* pStdLib = new StarBASIC( pParentFromStdLib );
++ StarBASIC* pStdLib = new StarBASIC( pParentFromStdLib, mbDocMgr );
+ pStdLibInfo->SetLib( pStdLib );
+ pStdLib->SetName( String::CreateFromAscii(szStdLibName) );
+ pStdLibInfo->SetLibName( String::CreateFromAscii(szStdLibName) );
+@@ -1237,7 +1237,7 @@ BOOL BasicManager::ImpLoadLibary( BasicL
+ if ( !bInfosOnly )
+ {
+ if ( !pLibInfo->GetLib().Is() )
+- pLibInfo->SetLib( new StarBASIC( GetStdLib() ) );
++ pLibInfo->SetLib( new StarBASIC( GetStdLib(), mbDocMgr ) );
+ xBasicStream->SetBufferSize( 1024 );
+ xBasicStream->Seek( STREAM_SEEK_TO_BEGIN );
+ bLoaded = ImplLoadBasic( *xBasicStream, pLibInfo->GetLibRef() );
+@@ -1660,7 +1660,7 @@ StarBASIC* BasicManager::CreateLib( cons
+ return 0;
+
+ BasicLibInfo* pLibInfo = CreateLibInfo();
+- StarBASIC* pNew = new StarBASIC( GetStdLib() );
++ StarBASIC* pNew = new StarBASIC( GetStdLib(), mbDocMgr );
+ GetStdLib()->Insert( pNew );
+ pNew->SetFlag( SBX_EXTSEARCH | SBX_DONTSTORE );
+ pLibInfo->SetLib( pNew );
+@@ -1718,7 +1718,7 @@ StarBASIC* BasicManager::CreateLibForLib
+ return 0;
+
+ BasicLibInfo* pLibInfo = CreateLibInfo();
+- StarBASIC* pNew = new StarBASIC( GetStdLib() );
++ StarBASIC* pNew = new StarBASIC( GetStdLib(), mbDocMgr );
+ GetStdLib()->Insert( pNew );
+ pNew->SetFlag( SBX_EXTSEARCH | SBX_DONTSTORE );
+ pLibInfo->SetLib( pNew );
+cvs diff: Diffing basic/source/classes
+Index: basic/source/classes/sb.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/classes/sb.cxx,v
+retrieving revision 1.31
+retrieving revision 1.31.2.1
+diff -u -p -r1.31 -r1.31.2.1
+--- basic/source/classes/sb.cxx 26 Apr 2007 08:33:02 -0000 1.31
++++ basic/source/classes/sb.cxx 2 May 2007 09:44:21 -0000 1.31.2.1
+@@ -660,8 +660,8 @@ SbModule* SbClassFactory::FindClass( con
+
+ ////////////////////////////////////////////////////////////////////////////
+
+-StarBASIC::StarBASIC( StarBASIC* p )
+- : SbxObject( String( RTL_CONSTASCII_USTRINGPARAM("StarBASIC") ) )
++StarBASIC::StarBASIC( StarBASIC* p, BOOL bIsDocBasic )
++ : SbxObject( String( RTL_CONSTASCII_USTRINGPARAM("StarBASIC") ) ), bDocBasic( bIsDocBasic )
+ {
+ SetParent( p );
+ pLibInfo = NULL;
+Index: basic/source/classes/sbunoobj.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/classes/sbunoobj.cxx,v
+retrieving revision 1.46
+retrieving revision 1.46.6.5
+diff -u -p -r1.46 -r1.46.6.5
+--- basic/source/classes/sbunoobj.cxx 29 Jan 2007 15:05:07 -0000 1.46
++++ basic/source/classes/sbunoobj.cxx 9 May 2007 15:49:15 -0000 1.46.6.5
+@@ -110,6 +110,9 @@ using namespace rtl;
+ #include<runtime.hxx>
+
+ #include<math.h>
++#include <hash_map>
++#include <com/sun/star/reflection/XTypeDescriptionEnumerationAccess.hpp>
++#include <com/sun/star/reflection/XConstantsTypeDescription.hpp>
+
+ TYPEINIT1(SbUnoMethod,SbxMethod)
+ TYPEINIT1(SbUnoProperty,SbxProperty)
+@@ -130,6 +133,7 @@ static String ID_DBG_METHODS( RTL_CONSTA
+ static String aIllegalArgumentExceptionName
+ ( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.lang.IllegalArgumentException" ) );
+ static OUString aSeqLevelStr( RTL_CONSTASCII_USTRINGPARAM("[]") );
++static OUString defaultNameSpace( RTL_CONSTASCII_USTRINGPARAM("org.openoffice") );
+
+ // Gets the default property for an uno object. Note: There is some
+ // redirection built in. The property name specifies the name
+@@ -1510,6 +1514,50 @@ String getBasicObjectTypeName( SbxObject
+ return aName;
+ }
+
++bool checkUnoObjectType( SbUnoObject* pUnoObj,
++ const String& aClass )
++{
++ bool result = false;
++ Any aToInspectObj = pUnoObj->getUnoAny();
++ TypeClass eType = aToInspectObj.getValueType().getTypeClass();
++ if( eType != TypeClass_INTERFACE )
++ return false;
++ const Reference< XInterface > x = *(Reference< XInterface >*)aToInspectObj.getValue();
++ Reference< XTypeProvider > xTypeProvider( x, UNO_QUERY );
++ if( xTypeProvider.is() )
++ {
++ Sequence< Type > aTypeSeq = xTypeProvider->getTypes();
++ const Type* pTypeArray = aTypeSeq.getConstArray();
++ UINT32 nIfaceCount = aTypeSeq.getLength();
++ for( UINT32 j = 0 ; j < nIfaceCount ; j++ )
++ {
++ const Type& rType = pTypeArray[j];
++
++ Reference<XIdlClass> xClass = TypeToIdlClass( rType );
++ if( !xClass.is() )
++ {
++ DBG_ERROR("failed to get XIdlClass for type");
++ break;
++ }
++ OUString sClassName = xClass->getName();
++ OSL_TRACE("Checking if object implements %s",
++ OUStringToOString( defaultNameSpace + aClass,
++ RTL_TEXTENCODING_UTF8 ).getStr() );
++ // although interfaces in the org.openoffice.vba namespace
++ // obey the idl rules and have a leading X, in basic we
++ // want to be able to do something like
++ // 'dim wrkbooks as WorkBooks'
++ // so test assumes the 'X' has been dropped
++ sal_Int32 indexLastDot = sClassName.lastIndexOf('.');
++ if ( indexLastDot > -1 && sClassName.copy( indexLastDot + 1).equalsIgnoreAsciiCase( OUString( RTL_CONSTASCII_USTRINGPARAM("X") ) + aClass ) )
++ {
++ result = true;
++ break;
++ }
++ }
++ }
++ return result;
++}
+
+ // Dbg-Hilfsmethode zum Auslesen der in einem Object implementierten Interfaces
+ String Impl_GetSupportedInterfaces( SbUnoObject* pUnoObj )
+@@ -3066,6 +3114,83 @@ void RTL_Impl_EqualUnoObjects( StarBASIC
+ refVar->PutBool( TRUE );
+ }
+
++typedef std::hash_map< OUString, std::vector< OUString >, OUStringHash, ::std::equal_to< OUString > > ModuleHash;
++
++
++// helper wrapper function to interact with TypeProvider and
++// XTypeDescriptionEnumerationAccess.
++// if it fails for whatever reason
++// returned Reference<> be null e.g. .is() will be false
++
++Reference< XTypeDescriptionEnumeration >
++getTypeDescriptorEnumeration( const OUString& sSearchRoot,
++ const Sequence< TypeClass >& types, TypeDescriptionSearchDepth depth )
++{
++ Reference< XTypeDescriptionEnumeration > xEnum;
++ Reference< XTypeDescriptionEnumerationAccess> xTypeEnumAccess( getTypeProvider_Impl(), UNO_QUERY );
++ if ( xTypeEnumAccess.is() )
++ {
++ try
++ {
++ xEnum = xTypeEnumAccess->createTypeDescriptionEnumeration(
++ sSearchRoot, types, depth );
++ }
++ catch( NoSuchTypeNameException& /*nstne*/ ) {}
++ catch( InvalidTypeNameException& /*nstne*/ ) {}
++ }
++ return xEnum;
++}
++
++typedef std::hash_map< OUString, Any, OUStringHash, ::std::equal_to< OUString > > VBAConstantsHash;
++
++SbxVariable* getVBAConstant( const String& rName )
++{
++ SbxVariable* pConst = NULL;
++ static VBAConstantsHash aConstCache;
++ static bool isInited = false;
++ if ( !isInited )
++ {
++ Sequence< TypeClass > types(1);
++ types[ 0 ] = TypeClass_CONSTANTS;
++ Reference< XTypeDescriptionEnumeration > xEnum = getTypeDescriptorEnumeration( defaultNameSpace, types, TypeDescriptionSearchDepth_INFINITE );
++
++ if ( !xEnum.is() )
++ return NULL;
++
++ while ( xEnum->hasMoreElements() )
++ {
++ Reference< XConstantsTypeDescription > xConstants( xEnum->nextElement(), UNO_QUERY );
++ if ( xConstants.is() )
++ {
++ Sequence< Reference< XConstantTypeDescription > > aConsts = xConstants->getConstants();
++ Reference< XConstantTypeDescription >* pSrc = aConsts.getArray();
++ sal_Int32 nLen = aConsts.getLength();
++ for ( sal_Int32 index =0; index<nLen; ++pSrc, ++index )
++ {
++ Reference< XConstantTypeDescription >& rXConst =
++ *pSrc;
++ OUString sFullName = rXConst->getName();
++ sal_Int32 indexLastDot = sFullName.lastIndexOf('.');
++ OUString sLeafName;
++ if ( indexLastDot > -1 )
++ sLeafName = sFullName.copy( indexLastDot + 1);
++ aConstCache[ sLeafName.toAsciiLowerCase() ] = rXConst->getConstantValue();
++ }
++ }
++ }
++ isInited = true;
++ }
++ OUString sKey( rName );
++ VBAConstantsHash::const_iterator it = aConstCache.find( sKey.toAsciiLowerCase() );
++ if ( it != aConstCache.end() )
++ {
++ pConst = new SbxVariable( SbxVARIANT );
++ pConst->SetName( rName );
++ unoToSbxValue( pConst, it->second );
++ }
++ return pConst;
++}
++
+ // Funktion, um einen globalen Bezeichner im
+ // UnoScope zu suchen und fuer Sbx zu wrappen
+ SbxVariable* findUnoClass( const String& rName )
+Index: basic/source/classes/sbxmod.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/classes/sbxmod.cxx,v
+retrieving revision 1.36
+retrieving revision 1.36.42.3
+diff -u -p -r1.36 -r1.36.42.3
+--- basic/source/classes/sbxmod.cxx 3 Nov 2006 15:10:25 -0000 1.36
++++ basic/source/classes/sbxmod.cxx 2 May 2007 09:44:42 -0000 1.36.42.3
+@@ -166,7 +166,8 @@ static const char* strListBasicKeyWords[
+ "integer",
+ "is",
+ "let",
+- "lib"
++ "lib",
++ "like",
+ "line",
+ "line input",
+ "local",
+@@ -544,7 +545,8 @@ void SbModule::SetSource32( const ::rtl:
+ if( eCurTok == OPTION )
+ {
+ eCurTok = aTok.Next();
+- if( eCurTok == COMPATIBLE )
++ if( eCurTok == COMPATIBLE
++ || ( ( eCurTok == VBASUPPORT ) && ( aTok.Next() == NUMBER ) && ( aTok.GetDbl()== 1 ) ) )
+ aTok.SetCompatible( true );
+ }
+ }
+@@ -756,7 +758,10 @@ USHORT SbModule::Run( SbMethod* pMeth )
+ pRt->pNext->block();
+ pINST->pRun = pRt;
+ if ( SbiRuntime ::isVBAEnabled() )
++ {
+ pINST->EnableCompatibility( TRUE );
++ pRt->SetVBAEnabled( true );
++ }
+ while( pRt->Step() ) {}
+ if( pRt->pNext )
+ pRt->pNext->unblock();
+cvs diff: Diffing basic/source/comp
+Index: basic/source/comp/codegen.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/codegen.cxx,v
+retrieving revision 1.16
+retrieving revision 1.16.42.1
+diff -u -p -r1.16 -r1.16.42.1
+--- basic/source/comp/codegen.cxx 3 Nov 2006 15:11:02 -0000 1.16
++++ basic/source/comp/codegen.cxx 2 May 2007 09:45:21 -0000 1.16.42.1
+@@ -135,7 +135,7 @@ void SbiCodeGen::Save()
+ // OPTION EXPLICIT-Flag uebernehmen
+ if( pParser->bExplicit )
+ p->SetFlag( SBIMG_EXPLICIT );
+- if( pParser->bVBASupportOn )
++ if( pParser->IsVBASupportOn() )
+ p->SetFlag( SBIMG_VBASUPPORT );
+
+ int nIfaceCount = 0;
+Index: basic/source/comp/dim.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/dim.cxx,v
+retrieving revision 1.26
+retrieving revision 1.26.42.2
+diff -u -p -r1.26 -r1.26.42.2
+--- basic/source/comp/dim.cxx 1 Nov 2006 16:13:55 -0000 1.26
++++ basic/source/comp/dim.cxx 2 May 2007 09:44:56 -0000 1.26.42.2
+@@ -203,6 +203,10 @@ void SbiParser::DefVar( SbiOpcode eOp, B
+ if( eCurTok == GLOBAL )
+ bPersistantGlobal = TRUE;
+ }
++ // behavior in VBA is that a module scope variable's lifetime is
++ // tied to the document. e.g. a module scope variable is global
++ if( GetBasic()->IsDocBasic() && bVBASupportOn && !pProc )
++ bPersistantGlobal = TRUE;
+ // PRIVATE ist Synonym fuer DIM
+ // _CONST_?
+ BOOL bConst = FALSE;
+@@ -334,7 +338,7 @@ void SbiParser::DefVar( SbiOpcode eOp, B
+ {
+ case SbGLOBAL: eOp2 = bPersistantGlobal ? _GLOBAL_P : _GLOBAL;
+ goto global;
+- case SbPUBLIC: eOp2 = _PUBLIC;
++ case SbPUBLIC: eOp2 = bPersistantGlobal ? _PUBLIC_P : _PUBLIC;
+ // AB 9.7.97, #40689, kein eigener Opcode mehr
+ /*
+ if( bStatic )
+@@ -439,7 +443,14 @@ void SbiParser::DefVar( SbiOpcode eOp, B
+ {
+ SbiExpression aExpr( this, *pDef, NULL );
+ aExpr.Gen();
+- aGen.Gen( _ERASE );
++ if ( bVBASupportOn )
++ // delete the array but
++ // clear the variable ( this
++ // allows the processing of
++ // the param to happen as normal without errors ( ordinary ERASE just clears the array )
++ aGen.Gen( _ERASE_CLEAR );
++ else
++ aGen.Gen( _ERASE );
+ }
+ else if( eOp == _REDIMP )
+ {
+Index: basic/source/comp/exprnode.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/exprnode.cxx,v
+retrieving revision 1.16
+retrieving revision 1.16.48.1
+diff -u -p -r1.16 -r1.16.48.1
+--- basic/source/comp/exprnode.cxx 12 Oct 2006 14:34:58 -0000 1.16
++++ basic/source/comp/exprnode.cxx 16 Feb 2007 17:14:15 -0000 1.16.48.1
+@@ -244,7 +244,7 @@ void SbiExprNode::CollectBits()
+
+ void SbiExprNode::FoldConstants()
+ {
+- if( IsOperand() ) return;
++ if( IsOperand() || eTok == LIKE ) return;
+ pLeft->FoldConstants();
+ if( pRight )
+ {
+Index: basic/source/comp/parser.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/parser.cxx,v
+retrieving revision 1.19
+retrieving revision 1.19.42.2
+diff -u -p -r1.19 -r1.19.42.2
+--- basic/source/comp/parser.cxx 2 Nov 2006 16:32:13 -0000 1.19
++++ basic/source/comp/parser.cxx 2 May 2007 09:45:21 -0000 1.19.42.2
+@@ -152,7 +152,6 @@ SbiParser::SbiParser( StarBASIC* pb, SbM
+ bSingleLineIf =
+ bExplicit = FALSE;
+ bClassModule = FALSE;
+- bVBASupportOn = FALSE;
+ pPool = &aPublics;
+ for( short i = 0; i < 26; i++ )
+ eDefTypes[ i ] = SbxVARIANT; // Kein expliziter Defaulttyp
+@@ -609,7 +608,12 @@ void SbiParser::Set()
+ // ( its necessary for vba objects where set is object
+ // specific and also doesn't involve processing default params )
+ if( pDef->GetTypeId() )
+- aGen.Gen( _SETCLASS, pDef->GetTypeId() );
++ {
++ if ( bVBASupportOn )
++ aGen.Gen( _VBASETCLASS, pDef->GetTypeId() );
++ else
++ aGen.Gen( _SETCLASS, pDef->GetTypeId() );
++ }
+ else
+ {
+ if ( bVBASupportOn )
+Index: basic/source/comp/scanner.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/scanner.cxx,v
+retrieving revision 1.23
+retrieving revision 1.23.42.1
+diff -u -p -r1.23 -r1.23.42.1
+--- basic/source/comp/scanner.cxx 2 Nov 2006 11:02:47 -0000 1.23
++++ basic/source/comp/scanner.cxx 2 May 2007 09:45:21 -0000 1.23.42.1
+@@ -53,6 +53,7 @@
+ #include <unotools/charclass.hxx>
+ #endif
+
++#include <runtime.hxx>
+
+ SbiScanner::SbiScanner( const ::rtl::OUString& rBuf, StarBASIC* p ) : aBuf( rBuf )
+ {
+@@ -76,6 +77,7 @@ SbiScanner::SbiScanner( const ::rtl::OUS
+ bSymbol =
+ bUsedForHilite =
+ bCompatible =
++ bVBASupportOn =
+ bPrevLineExtentsComment = FALSE;
+ bHash =
+ bErrors = TRUE;
+@@ -424,7 +426,11 @@ BOOL SbiScanner::NextSym()
+ if( *pLine != cSep || cSep == ']' ) break;
+ } else aError = cSep, GenError( SbERR_EXPECTED );
+ }
+- aSym = aLine.copy( n, nCol - n - 1 );
++ // If VBA Interop then doen't eat the [] chars
++ if ( cSep == ']' && bVBASupportOn )
++ aSym = aLine.copy( n - 1, nCol - n + 1);
++ else
++ aSym = aLine.copy( n, nCol - n - 1 );
+ // Doppelte Stringbegrenzer raus
+ String s( cSep );
+ s += cSep;
+Index: basic/source/comp/token.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/token.cxx,v
+retrieving revision 1.21
+retrieving revision 1.21.48.1
+diff -u -p -r1.21 -r1.21.48.1
+--- basic/source/comp/token.cxx 12 Oct 2006 14:28:11 -0000 1.21
++++ basic/source/comp/token.cxx 16 Feb 2007 17:14:15 -0000 1.21.48.1
+@@ -130,6 +130,7 @@ static TokenTable aTokTable_Basic [] = {
+ { IS, "Is" },
+ { LET, "Let" },
+ { LIB, "Lib" },
++ { LIKE, "Like" },
+ { LINE, "Line" },
+ { LINEINPUT,"Line Input" },
+ { LOCAL, "Local" },
+cvs diff: Diffing basic/source/inc
+Index: basic/source/inc/opcodes.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/opcodes.hxx,v
+retrieving revision 1.11
+retrieving revision 1.11.42.3
+diff -u -p -r1.11 -r1.11.42.3
+--- basic/source/inc/opcodes.hxx 2 Nov 2006 16:32:24 -0000 1.11
++++ basic/source/inc/opcodes.hxx 2 May 2007 09:45:22 -0000 1.11.42.3
+@@ -99,6 +99,7 @@ enum SbiOpcode {
+ _REDIMP_ERASE, // Copies array to be later used by REDIM PRESERVE before erasing it
+ _INITFOREACH,
+ _VBASET, // VBA-like Set
++ _ERASE_CLEAR, // Erase array and clear variable
+ SbOP0_END,
+
+ // Alle Opcodes mit einem Operanden
+@@ -132,6 +133,7 @@ enum SbiOpcode {
+ _BASED, // TOS wird um BASE erhoeht, BASE davor gepusht (+base)
+ // Typanpassung im Argv
+ _ARGTYP, // Letzten Parameter in Argv konvertieren (+Typ)
++ _VBASETCLASS, // VBA-like Set
+ SbOP1_END,
+
+ // Alle Opcodes mit zwei Operanden
+@@ -164,6 +166,7 @@ enum SbiOpcode {
+ _FIND_G, // Sucht globale Variable mit Spezialbehandlung wegen _GLOBAL_P
+ _DCREATE_REDIMP, // Objekt-Array redimensionieren (+StringId+StringID)
+ _FIND_CM, // Search inside a class module (CM) to enable global search in time
++ _PUBLIC_P, // Module global Variable (persisted between calls)(+StringID+Typ)
+ SbOP2_END
+
+ };
+Index: basic/source/inc/parser.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/parser.hxx,v
+retrieving revision 1.10
+retrieving revision 1.10.42.1
+diff -u -p -r1.10 -r1.10.42.1
+--- basic/source/inc/parser.hxx 1 Nov 2006 16:15:58 -0000 1.10
++++ basic/source/inc/parser.hxx 2 May 2007 09:45:22 -0000 1.10.42.1
+@@ -94,7 +94,6 @@ public:
+ BOOL bText; // OPTION COMPARE TEXT
+ BOOL bExplicit; // TRUE: OPTION EXPLICIT
+ BOOL bClassModule; // TRUE: OPTION ClassModule
+- BOOL bVBASupportOn; // TRUE: OPTION VBASupport 1 otherwise default False
+ IfaceVector aIfaceVector; // Holds all interfaces implemented by a class module
+ SbxDataType eDefTypes[26]; // DEFxxx-Datentypen
+
+Index: basic/source/inc/runtime.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/runtime.hxx,v
+retrieving revision 1.33
+retrieving revision 1.33.42.4
+diff -u -p -r1.33 -r1.33.42.4
+--- basic/source/inc/runtime.hxx 2 Nov 2006 16:32:35 -0000 1.33
++++ basic/source/inc/runtime.hxx 2 May 2007 09:44:56 -0000 1.33.42.4
+@@ -360,6 +360,7 @@ class SbiRuntime
+ BOOL bError; // TRUE: Fehler behandeln
+ BOOL bInError; // TRUE: in einem Fehler-Handler
+ BOOL bBlocked; // TRUE: blocked by next call level, #i48868
++ BOOL bVBAEnabled;
+ USHORT nFlags; // Debugging-Flags
+ SbError nError; // letzter Fehler
+ USHORT nOps; // Opcode-Zaehler
+@@ -429,6 +430,8 @@ class SbiRuntime
+ // #115829
+ bool implIsClass( SbxObject* pObj, const String& aClass );
+
++ void StepSETCLASS_impl( UINT32 nOp1, bool bHandleDflt = false );
++
+ // Die nachfolgenden Routinen werden vom Single Stepper
+ // gerufen und implementieren die einzelnen Opcodes
+ void StepNOP(), StepEXP(), StepMUL(), StepDIV();
+@@ -447,7 +450,7 @@ class SbiRuntime
+ void StepNOERROR(), StepCHANNEL(), StepCHANNEL0(), StepPRINT();
+ void StepPRINTF(), StepWRITE(), StepRENAME(), StepPROMPT();
+ void StepRESTART(), StepEMPTY(), StepLEAVE();
+- void StepLSET(), StepRSET(), StepREDIMP_ERASE();
++ void StepLSET(), StepRSET(), StepREDIMP_ERASE(), StepERASE_CLEAR();
+ // Alle Opcodes mit einem Operanden
+ void StepLOADNC( UINT32 ), StepLOADSC( UINT32 ), StepLOADI( UINT32 );
+ void StepARGN( UINT32 ), StepBASED( UINT32 ), StepPAD( UINT32 );
+@@ -455,11 +458,11 @@ class SbiRuntime
+ void StepJUMPF( UINT32 ), StepONJUMP( UINT32 );
+ void StepGOSUB( UINT32 ), StepRETURN( UINT32 );
+ void StepTESTFOR( UINT32 ), StepCASETO( UINT32 ), StepERRHDL( UINT32 );
+- void StepRESUME( UINT32 ), StepSETCLASS( UINT32 ), StepTESTCLASS( UINT32 ), StepLIB( UINT32 );
++ void StepRESUME( UINT32 ), StepSETCLASS( UINT32 ), StepVBASETCLASS( UINT32 ), StepTESTCLASS( UINT32 ), StepLIB( UINT32 );
+ bool checkClass_Impl( const SbxVariableRef& refVal, const String& aClass, bool bRaiseErrors );
+ void StepCLOSE( UINT32 ), StepPRCHAR( UINT32 ), StepARGTYP( UINT32 );
+ // Alle Opcodes mit zwei Operanden
+- void StepRTL( UINT32, UINT32 ), StepPUBLIC( UINT32, UINT32 );
++ void StepRTL( UINT32, UINT32 ), StepPUBLIC( UINT32, UINT32 ), StepPUBLIC_P( UINT32, UINT32 );
+ void StepPUBLIC_Impl( UINT32, UINT32, bool bUsedForClassModule );
+ void StepFIND( UINT32, UINT32 ), StepELEM( UINT32, UINT32 );
+ void StepGLOBAL( UINT32, UINT32 ), StepLOCAL( UINT32, UINT32 );
+@@ -472,6 +475,7 @@ class SbiRuntime
+ void StepDCREATE_REDIMP(UINT32,UINT32), StepDCREATE_IMPL(UINT32,UINT32);
+ void StepFIND_CM( UINT32, UINT32 );
+ public:
++ void SetVBAEnabled( bool bEnabled ) { bVBAEnabled = bEnabled; };
+ USHORT GetImageFlag( USHORT n ) const;
+ USHORT GetBase();
+ xub_StrLen nLine,nCol1,nCol2; // aktuelle Zeile, Spaltenbereich
+Index: basic/source/inc/scanner.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/scanner.hxx,v
+retrieving revision 1.10
+retrieving revision 1.10.176.1
+diff -u -p -r1.10 -r1.10.176.1
+--- basic/source/inc/scanner.hxx 29 Sep 2005 18:41:38 -0000 1.10
++++ basic/source/inc/scanner.hxx 2 May 2007 09:45:22 -0000 1.10.176.1
+@@ -79,7 +79,8 @@ protected:
+ BOOL bHash; // TRUE: # eingelesen
+ BOOL bError; // TRUE: Fehler generieren
+ BOOL bUsedForHilite; // TRUE: Nutzung fuer Highlighting
+- BOOL bCompatible; // TRUE: OPTION Compatible
++ BOOL bCompatible; // TRUE: OPTION Compatibl
++ BOOL bVBASupportOn; // TRUE: OPTION VBASupport 1 otherwise default False
+ BOOL bPrevLineExtentsComment; // TRUE: Previous line is comment and ends on "... _"
+
+ void GenError( SbError );
+@@ -91,6 +92,8 @@ public:
+ BOOL IsHash() { return bHash; }
+ BOOL IsCompatible() { return bCompatible; }
+ void SetCompatible( bool b ) { bCompatible = b; } // #118206
++ BOOL IsVBASupportOn() { return bVBASupportOn; }
++ void SetVBASupportOn( bool b ) { bVBASupportOn = b; }
+ BOOL WhiteSpace() { return bSpaces; }
+ short GetErrors() { return nErrors; }
+ short GetLine() { return nLine; }
+cvs diff: Diffing basic/source/runtime
+Index: basic/source/runtime/runtime.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/runtime.cxx,v
+retrieving revision 1.35
+retrieving revision 1.35.6.4
+diff -u -p -r1.35 -r1.35.6.4
+--- basic/source/runtime/runtime.cxx 29 Jan 2007 15:05:41 -0000 1.35
++++ basic/source/runtime/runtime.cxx 2 May 2007 09:44:22 -0000 1.35.6.4
+@@ -153,6 +153,7 @@ SbiRuntime::pStep0 SbiRuntime::aStep0[]
+ &SbiRuntime::StepREDIMP_ERASE,// Copy array object for REDIMP
+ &SbiRuntime::StepINITFOREACH,// Init for each loop
+ &SbiRuntime::StepVBASET,// vba-like set statement
++ &SbiRuntime::StepERASE_CLEAR,// vba-like set statement
+ };
+
+ SbiRuntime::pStep1 SbiRuntime::aStep1[] = { // Alle Opcodes mit einem Operanden
+@@ -181,6 +182,7 @@ SbiRuntime::pStep1 SbiRuntime::aStep1[]
+ &SbiRuntime::StepLIB, // Lib fuer Declare-Call (+StringId)
+ &SbiRuntime::StepBASED, // TOS wird um BASE erhoeht, BASE davor gepusht
+ &SbiRuntime::StepARGTYP, // Letzten Parameter in Argv konvertieren (+Typ)
++ &SbiRuntime::StepVBASETCLASS,// vba-like set statement
+ };
+
+ SbiRuntime::pStep2 SbiRuntime::aStep2[] = {// Alle Opcodes mit zwei Operanden
+@@ -209,6 +211,7 @@ SbiRuntime::pStep2 SbiRuntime::aStep2[]
+ &SbiRuntime::StepFIND_G, // Sucht globale Variable mit Spezialbehandlung wegen _GLOBAL_P
+ &SbiRuntime::StepDCREATE_REDIMP, // Objekt-Array redimensionieren (+StringID+StringID)
+ &SbiRuntime::StepFIND_CM, // Search inside a class module (CM) to enable global search in time
++ &SbiRuntime::StepPUBLIC_P, // Search inside a class module (CM) to enable global search in time
+ };
+
+
+@@ -538,6 +541,7 @@ SbiRuntime::SbiRuntime( SbModule* pm, Sb
+ #endif
+ pRefSaveList = NULL;
+ pItemStoreList = NULL;
++ bVBAEnabled = isVBAEnabled();
+ }
+
+ SbiRuntime::~SbiRuntime()
+Index: basic/source/runtime/step0.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/step0.cxx,v
+retrieving revision 1.28
+retrieving revision 1.27.42.7
+diff -u -p -r1.28 -r1.27.42.7
+--- basic/source/runtime/step0.cxx 26 Apr 2007 08:33:37 -0000 1.28
++++ basic/source/runtime/step0.cxx 2 May 2007 09:45:35 -0000 1.27.42.7
+@@ -49,7 +49,11 @@
+ #include <sb.hrc>
+ #include <basrid.hxx>
+ #include "sbunoobj.hxx"
++#include "image.hxx"
+ #include <com/sun/star/uno/Any.hxx>
++#include <com/sun/star/util/SearchOptions.hdl>
++#include <vcl/svapp.hxx>
++#include <unotools/textsearch.hxx>
+
+ #include <algorithm>
+
+@@ -64,7 +68,6 @@ void SbiRuntime::StepArith( SbxOperator
+ TOSMakeTemp();
+ SbxVariable* p2 = GetTOS();
+
+- bool bVBAInterop = SbiRuntime::isVBAEnabled();
+
+ // This could & should be moved to the MakeTempTOS() method in runtime.cxx
+ // In the code which this is cut'npaste from there is a check for a ref
+@@ -74,7 +77,7 @@ void SbiRuntime::StepArith( SbxOperator
+ // here we alway seem to have a refcount of 1. Also it seems that
+ // MakeTempTOS is called for other operation, so I hold off for now
+ // until I have a better idea
+- if ( bVBAInterop
++ if ( bVBAEnabled
+ && ( p2->GetType() == SbxOBJECT || p2->GetType() == SbxVARIANT )
+ )
+ {
+@@ -110,6 +113,40 @@ void SbiRuntime::StepCompare( SbxOperato
+ {
+ SbxVariableRef p1 = PopVar();
+ SbxVariableRef p2 = PopVar();
++
++ // Make sure objects with default params have
++ // values ( and type ) set as appropriate
++ SbxDataType p1Type = p1->GetType();
++ SbxDataType p2Type = p2->GetType();
++ if ( p1Type == p2Type )
++ {
++ if ( p1Type == SbxEMPTY )
++ {
++ p1->Broadcast( SBX_HINT_DATAWANTED );
++ p2->Broadcast( SBX_HINT_DATAWANTED );
++ }
++ // if both sides are an object and have default props
++ // then we need to use the default props
++ // we don't need to worry if only one side ( lhs, rhs ) is an
++ // object ( object side will get coerced to correct type in
++ // Compare )
++ else if ( p1Type == SbxOBJECT )
++ {
++ SbxVariable* pDflt = getDefaultProp( p1 );
++ if ( pDflt )
++ {
++ p1 = pDflt;
++ p1->Broadcast( SBX_HINT_DATAWANTED );
++ }
++ pDflt = getDefaultProp( p2 );
++ if ( pDflt )
++ {
++ p2 = pDflt;
++ p2->Broadcast( SBX_HINT_DATAWANTED );
++ }
++ }
++
++ }
+ #ifndef WIN
+ static SbxVariable* pTRUE = NULL;
+ static SbxVariable* pFALSE = NULL;
+@@ -166,9 +203,116 @@ void SbiRuntime::StepGT() { StepCompare
+ void SbiRuntime::StepLE() { StepCompare( SbxLE ); }
+ void SbiRuntime::StepGE() { StepCompare( SbxGE ); }
+
++namespace
++{
++ bool NeedEsc(sal_Unicode cCode)
++ {
++ String sEsc(RTL_CONSTASCII_USTRINGPARAM(".^$+\\|{}()"));
++ return (STRING_NOTFOUND != sEsc.Search(cCode));
++ }
++
++ String VBALikeToRegexp(const String &rIn)
++ {
++ String sResult;
++ const sal_Unicode *start = rIn.GetBuffer();
++ const sal_Unicode *end = start + rIn.Len();
++
++ int seenright = 0;
++
++ sResult.Append('^');
++
++ while (start < end)
++ {
++ switch (*start)
++ {
++ case '?':
++ sResult.Append('.');
++ start++;
++ break;
++ case '*':
++ sResult.Append(String(RTL_CONSTASCII_USTRINGPARAM(".*")));
++ start++;
++ break;
++ case '#':
++ sResult.Append(String(RTL_CONSTASCII_USTRINGPARAM("[0-9]")));
++ start++;
++ break;
++ case ']':
++ sResult.Append('\\');
++ sResult.Append(*start++);
++ break;
++ case '[':
++ sResult.Append(*start++);
++ seenright = 0;
++ while (start < end && !seenright)
++ {
++ switch (*start)
++ {
++ case '[':
++ case '?':
++ case '*':
++ sResult.Append('\\');
++ sResult.Append(*start);
++ break;
++ case ']':
++ sResult.Append(*start);
++ seenright = 1;
++ break;
++ case '!':
++ sResult.Append('^');
++ break;
++ default:
++ if (NeedEsc(*start))
++ sResult.Append('\\');
++ sResult.Append(*start);
++ break;
++ }
++ start++;
++ }
++ break;
++ default:
++ if (NeedEsc(*start))
++ sResult.Append('\\');
++ sResult.Append(*start++);
++ }
++ }
++
++ sResult.Append('$');
++
++ return sResult;
++ }
++}
++
+ void SbiRuntime::StepLIKE()
+ {
+- StarBASIC::FatalError( SbERR_NOT_IMPLEMENTED );
++ SbxVariableRef refVar1 = PopVar();
++ SbxVariableRef refVar2 = PopVar();
++
++ String pattern = VBALikeToRegexp(refVar1->GetString());
++ String value = refVar2->GetString();
++
++ com::sun::star::util::SearchOptions aSearchOpt;
++
++ aSearchOpt.algorithmType = com::sun::star::util::SearchAlgorithms_REGEXP;
++
++ aSearchOpt.Locale = Application::GetSettings().GetLocale();
++ aSearchOpt.searchString = pattern;
++
++ int bTextMode(1);
++ bool bCompatibility = ( pINST && pINST->IsCompatibility() );
++ if( bCompatibility )
++ bTextMode = GetImageFlag( SBIMG_COMPARETEXT );
++
++ if( bTextMode )
++ aSearchOpt.transliterateFlags |= com::sun::star::i18n::TransliterationModules_IGNORE_CASE;
++
++ SbxVariable* pRes = new SbxVariable;
++ utl::TextSearch aSearch(aSearchOpt);
++ xub_StrLen nStart=0, nEnd=value.Len();
++ int bRes = aSearch.SearchFrwrd(value, &nStart, &nEnd);
++ pRes->PutBool( bRes != 0 );
++
++ PushVar( pRes );
+ }
+
+ // TOS und TOS-1 sind beides Objektvariable und enthalten den selben Pointer
+@@ -244,14 +388,13 @@ void SbiRuntime::StepPUT()
+ n = refVar->GetFlags();
+ refVar->SetFlag( SBX_WRITE );
+ }
+- bool bVBAInterop = SbiRuntime::isVBAEnabled();
+
+ // if left side arg is an object or variant and right handside isn't
+ // either an object or a variant then try and see if a default
+ // property exists.
+ // to use e.g. Range{"A1") = 34
+ // could equate to Range("A1").Value = 34
+- if ( bVBAInterop )
++ if ( bVBAEnabled )
+ {
+ if ( refVar->GetType() == SbxOBJECT )
+ {
+@@ -269,7 +412,7 @@ void SbiRuntime::StepPUT()
+
+ *refVar = *refVal;
+ // lhs is a property who's value is currently null
+- if ( !bVBAInterop || ( bVBAInterop && refVar->GetType() != SbxEMPTY ) )
++ if ( !bVBAEnabled || ( bVBAEnabled && refVar->GetType() != SbxEMPTY ) )
+ // #67607 Uno-Structs kopieren
+ checkUnoStructCopy( refVal, refVar );
+ if( bFlagsChanged )
+@@ -402,7 +545,7 @@ void SbiRuntime::StepSET()
+ {
+ SbxVariableRef refVal = PopVar();
+ SbxVariableRef refVar = PopVar();
+- StepSET_Impl( refVal, refVar, SbiRuntime::isVBAEnabled() ); // this is really assigment
++ StepSET_Impl( refVal, refVar, bVBAEnabled ); // this is really assigment
+ }
+
+ void SbiRuntime::StepVBASET()
+@@ -525,6 +668,8 @@ void SbiRuntime::DimImpl( SbxVariableRef
+ if( ub < lb )
+ Error( SbERR_OUT_OF_RANGE ), ub = lb;
+ pArray->AddDim32( lb, ub );
++ if ( lb != ub )
++ pArray->setHasFixedSize( true );
+ }
+ }
+ else
+@@ -693,27 +838,51 @@ void SbiRuntime::StepREDIMP_ERASE()
+ refVar->SetType( SbxEMPTY );
+ }
+
++void lcl_clearImpl( SbxVariableRef& refVar, SbxDataType& eType )
++{
++ USHORT nSavFlags = refVar->GetFlags();
++ refVar->ResetFlag( SBX_FIXED );
++ refVar->SetType( SbxDataType(eType & 0x0FFF) );
++ refVar->SetFlags( nSavFlags );
++ refVar->Clear();
++}
+
+-// Variable loeschen
+-// TOS = Variable
+-
+-void SbiRuntime::StepERASE()
++void lcl_eraseImpl( SbxVariableRef& refVar, bool bVBAEnabled )
+ {
+- SbxVariableRef refVar = PopVar();
+ SbxDataType eType = refVar->GetType();
+ if( eType & SbxARRAY )
+ {
++ if ( bVBAEnabled )
++ {
++ SbxBase* pElemObj = refVar->GetObject();
++ SbxDimArray* pDimArray = PTR_CAST(SbxDimArray,pElemObj);
++ bool bClearValues = true;
++ if( pDimArray )
++ {
++ if ( pDimArray->hasFixedSize() )
++ {
++ // Clear all Value(s)
++ pDimArray->SbxArray::Clear();
++ bClearValues = false;
++ }
++ else
++ pDimArray->Clear(); // clear Dims
++ }
++ if ( bClearValues )
++ {
++ SbxArray* pArray = PTR_CAST(SbxArray,pElemObj);
++ if ( pArray )
++ pArray->Clear();
++ }
++ }
++ else
+ // AB 2.4.1996
+ // Arrays haben bei Erase nach VB ein recht komplexes Verhalten. Hier
+ // werden zunaechst nur die Typ-Probleme bei REDIM (#26295) beseitigt:
+ // Typ hart auf den Array-Typ setzen, da eine Variable mit Array
+ // SbxOBJECT ist. Bei REDIM entsteht dann ein SbxOBJECT-Array und
+ // der ursruengliche Typ geht verloren -> Laufzeitfehler
+- USHORT nSavFlags = refVar->GetFlags();
+- refVar->ResetFlag( SBX_FIXED );
+- refVar->SetType( SbxDataType(eType & 0x0FFF) );
+- refVar->SetFlags( nSavFlags );
+- refVar->Clear();
++ lcl_clearImpl( refVar, eType );
+ }
+ else
+ if( refVar->IsFixed() )
+@@ -722,6 +891,23 @@ void SbiRuntime::StepERASE()
+ refVar->SetType( SbxEMPTY );
+ }
+
++// Variable loeschen
++// TOS = Variable
++
++void SbiRuntime::StepERASE()
++{
++ SbxVariableRef refVar = PopVar();
++ lcl_eraseImpl( refVar, bVBAEnabled );
++}
++
++void SbiRuntime::StepERASE_CLEAR()
++{
++ SbxVariableRef refVar = PopVar();
++ lcl_eraseImpl( refVar, bVBAEnabled );
++ SbxDataType eType = refVar->GetType();
++ lcl_clearImpl( refVar, eType );
++}
++
+ // Einrichten eines Argvs
+ // nOp1 bleibt so -> 1. Element ist Returnwert
+
+Index: basic/source/runtime/step1.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/step1.cxx,v
+retrieving revision 1.16
+retrieving revision 1.16.42.1
+diff -u -p -r1.16 -r1.16.42.1
+--- basic/source/runtime/step1.cxx 3 Nov 2006 15:10:48 -0000 1.16
++++ basic/source/runtime/step1.cxx 27 Feb 2007 18:29:10 -0000 1.16.42.1
+@@ -44,6 +44,9 @@
+ #include "image.hxx"
+ #include "sbunoobj.hxx"
+
++bool checkUnoObjectType( SbUnoObject* refVal,
++ const String& aClass );
++
+ // Laden einer numerischen Konstanten (+ID)
+
+ void SbiRuntime::StepLOADNC( UINT32 nOp1 )
+@@ -476,9 +479,18 @@ bool SbiRuntime::checkClass_Impl( const
+ {
+ if( !implIsClass( pObj, aClass ) )
+ {
+- if( bRaiseErrors )
+- Error( SbERR_INVALID_USAGE_OBJECT );
+- bOk = false;
++ if ( bVBAEnabled && pObj->IsA( TYPE(SbUnoObject) ) )
++ {
++ SbUnoObject* pUnoObj = PTR_CAST(SbUnoObject,pObj);
++ bOk = checkUnoObjectType( pUnoObj, aClass );
++ }
++ else
++ bOk = false;
++ if ( !bOk )
++ {
++ if( bRaiseErrors )
++ Error( SbERR_INVALID_USAGE_OBJECT );
++ }
+ }
+ else
+ {
+@@ -490,14 +502,17 @@ bool SbiRuntime::checkClass_Impl( const
+ }
+ else
+ {
+- if( bRaiseErrors )
+- Error( SbERR_NEEDS_OBJECT );
+- bOk = false;
++ if ( !bVBAEnabled )
++ {
++ if( bRaiseErrors )
++ Error( SbERR_NEEDS_OBJECT );
++ bOk = false;
++ }
+ }
+ return bOk;
+ }
+
+-void SbiRuntime::StepSETCLASS( UINT32 nOp1 )
++void SbiRuntime::StepSETCLASS_impl( UINT32 nOp1, bool bHandleDflt )
+ {
+ SbxVariableRef refVal = PopVar();
+ SbxVariableRef refVar = PopVar();
+@@ -505,7 +520,17 @@ void SbiRuntime::StepSETCLASS( UINT32 nO
+
+ bool bOk = checkClass_Impl( refVal, aClass, true );
+ if( bOk )
+- StepSET_Impl( refVal, refVar );
++ StepSET_Impl( refVal, refVar, bHandleDflt ); // don't do handle dflt prop for a "proper" set
++}
++
++void SbiRuntime::StepVBASETCLASS( UINT32 nOp1 )
++{
++ StepSETCLASS_impl( nOp1, false );
++}
++
++void SbiRuntime::StepSETCLASS( UINT32 nOp1 )
++{
++ StepSETCLASS_impl( nOp1, true );
+ }
+
+ void SbiRuntime::StepTESTCLASS( UINT32 nOp1 )
+Index: basic/source/runtime/step2.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/step2.cxx,v
+retrieving revision 1.29
+retrieving revision 1.27.42.5
+diff -u -p -r1.29 -r1.27.42.5
+--- basic/source/runtime/step2.cxx 27 Apr 2007 09:16:12 -0000 1.29
++++ basic/source/runtime/step2.cxx 2 May 2007 09:44:56 -0000 1.27.42.5
+@@ -54,6 +54,8 @@
+ using namespace com::sun::star::container;
+ using namespace com::sun::star::lang;
+
++SbxVariable* getVBAConstant( const String& rName );
++
+ const static String aThisComponent( RTL_CONSTASCII_USTRINGPARAM("ThisComponent") );
+ const static String aVBAHook( RTL_CONSTASCII_USTRINGPARAM( "VBAGlobals" ) );
+ // i#i68894#
+@@ -113,8 +115,6 @@ SbxVariable* SbiRuntime::FindElement
+ ( SbxObject* pObj, UINT32 nOp1, UINT32 nOp2, SbError nNotFound, BOOL bLocal )
+ {
+
+- bool bIsVBAInterOp = SbiRuntime::isVBAEnabled();
+-
+ SbxVariable* pElem = NULL;
+ if( !pObj )
+ {
+@@ -126,6 +126,24 @@ SbxVariable* SbiRuntime::FindElement
+ BOOL bFatalError = FALSE;
+ SbxDataType t = (SbxDataType) nOp2;
+ String aName( pImg->GetString( static_cast<short>( nOp1 & 0x7FFF ) ) );
++ bool bIsVBAInterOp = SbiRuntime::isVBAEnabled();
++ // Hacky capture of Evaluate [] syntax
++ // this should be tackled I feel at the pcode level
++ if ( bIsVBAInterOp && aName.Search('[') == 0 )
++ {
++ // emulate pcode here
++ StepARGC();
++ // psuedo StepLOADSC
++ String sArg = aName.Copy( 1, aName.Len() - 2 );
++ SbxVariable* p = new SbxVariable;
++ p->PutString( sArg );
++ PushVar( p );
++ //
++ StepARGV();
++ nOp1 = nOp1 | 0x8000; // indicate params are present
++ aName = String::CreateFromAscii("Evaluate");
++ }
++
+ if( bLocal )
+ pElem = refLocals->Find( aName, SbxCLASS_DONTCARE );
+ if( !pElem )
+@@ -156,25 +174,24 @@ SbxVariable* SbiRuntime::FindElement
+
+ // i#i68894# if VBAInterOp favour searching vba globals
+ // over searching for uno classess
+- if ( bIsVBAInterOp )
++ if ( bVBAEnabled )
+ {
+ // Try Find in VBA symbols space
+ pElem = VBAFind( aName, SbxCLASS_DONTCARE );
+ if ( pElem )
+ bSetName = false; // don't overwrite uno name
++ else
++ pElem = getVBAConstant( aName );
+ }
+- else
+- {
+- // #72382 VORSICHT! Liefert jetzt wegen unbekannten
+- // Modulen IMMER ein Ergebnis!
+- SbxVariable* pUnoClass = findUnoClass( aName );
+- if( pUnoClass )
+- {
+- pElem = new SbxVariable( t );
+- SbxValues aRes( SbxOBJECT );
+- aRes.pObj = pUnoClass;
+- pElem->SbxVariable::Put( aRes );
+- }
++ // #72382 VORSICHT! Liefert jetzt wegen unbekannten
++ // Modulen IMMER ein Ergebnis!
++ SbxVariable* pUnoClass = findUnoClass( aName );
++ if( pUnoClass )
++ {
++ pElem = new SbxVariable( t );
++ SbxValues aRes( SbxOBJECT );
++ aRes.pObj = pUnoClass;
++ pElem->SbxVariable::Put( aRes );
+ }
+
+ // #62939 Wenn eine Uno-Klasse gefunden wurde, muss
+@@ -523,7 +540,7 @@ SbxVariable* SbiRuntime::CheckArray( Sbx
+ {
+ Reference< XInterface > x = *(Reference< XInterface >*)aAny.getValue();
+ Reference< XIndexAccess > xIndexAccess( x, UNO_QUERY );
+- if ( !SbiRuntime::isVBAEnabled() )
++ if ( !bVBAEnabled )
+ {
+ // Haben wir Index-Access?
+ if( xIndexAccess.is() )
+@@ -1121,6 +1138,14 @@ void SbiRuntime::StepPUBLIC( UINT32 nOp1
+ StepPUBLIC_Impl( nOp1, nOp2, false );
+ }
+
++void SbiRuntime::StepPUBLIC_P( UINT32 nOp1, UINT32 nOp2 )
++{
++ // Creates module variable that isn't reinitialised when
++ // between invocations ( for VBASupport & document basic only )
++ if( pMod->pImage->bFirstInit )
++ StepPUBLIC( nOp1, nOp2 );
++}
++
+ // Einrichten einer globalen Variablen (+StringID+Typ)
+
+ void SbiRuntime::StepGLOBAL( UINT32 nOp1, UINT32 nOp2 )
+cvs diff: Diffing basic/source/sample
+cvs diff: Diffing basic/source/sbx
+Index: basic/source/sbx/sbxarray.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/sbx/sbxarray.cxx,v
+retrieving revision 1.6
+retrieving revision 1.6.48.3
+diff -u -p -r1.6 -r1.6.48.3
+--- basic/source/sbx/sbxarray.cxx 12 Oct 2006 14:31:56 -0000 1.6
++++ basic/source/sbx/sbxarray.cxx 27 Apr 2007 14:32:16 -0000 1.6.48.3
+@@ -40,6 +40,7 @@
+ #include <tools/stream.hxx>
+ #endif
+ #include "sbx.hxx"
++#include "runtime.hxx"
+ #include <vector>
+ using namespace std;
+
+@@ -593,7 +594,7 @@ void SbxArray::PutDirect( SbxVariable* p
+ //
+ //////////////////////////////////////////////////////////////////////////
+
+-SbxDimArray::SbxDimArray( SbxDataType t ) : SbxArray( t )
++SbxDimArray::SbxDimArray( SbxDataType t ) : SbxArray( t ), mbHasFixedSize( false )
+ {
+ pFirst = pLast = NULL;
+ nDim = 0;
+@@ -618,6 +619,7 @@ SbxDimArray& SbxDimArray::operator=( con
+ AddDim32( p->nLbound, p->nUbound );
+ p = p->pNext;
+ }
++ this->mbHasFixedSize = rArray.mbHasFixedSize;
+ }
+ return *this;
+ }
+@@ -793,7 +795,7 @@ void SbxDimArray::Put32( SbxVariable* p,
+
+ UINT32 SbxDimArray::Offset32( SbxArray* pPar )
+ {
+- if( nDim == 0 || !pPar )
++ if( nDim == 0 || !pPar || ( ( nDim != ( pPar->Count() - 1 ) ) && SbiRuntime::isVBAEnabled() ) )
+ {
+ SetError( SbxERR_BOUNDS ); return 0;
+ }
+Index: basic/source/sbx/sbxvalue.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/sbx/sbxvalue.cxx,v
+retrieving revision 1.8
+retrieving revision 1.8.48.1
+diff -u -p -r1.8 -r1.8.48.1
+--- basic/source/sbx/sbxvalue.cxx 12 Oct 2006 14:34:49 -0000 1.8
++++ basic/source/sbx/sbxvalue.cxx 16 Feb 2007 17:08:55 -0000 1.8.48.1
+@@ -64,7 +64,7 @@
+ #include "sbx.hxx"
+ #include "sbxconv.hxx"
+ #include <math.h>
+-
++#include "runtime.hxx"
+ // AB 29.10.99 Unicode
+ #ifndef _USE_NO_NAMESPACE
+ using namespace rtl;
+@@ -1125,6 +1125,8 @@ BOOL SbxValue::Convert( SbxDataType eTo
+
+ BOOL SbxValue::Compute( SbxOperator eOp, const SbxValue& rOp )
+ {
++ bool bVBAInterop = SbiRuntime::isVBAEnabled();
++
+ SbxDataType eThisType = GetType();
+ SbxDataType eOpType = rOp.GetType();
+ SbxError eOld = GetError();
+@@ -1138,14 +1140,16 @@ BOOL SbxValue::Compute( SbxOperator eOp,
+ else if( eThisType == SbxNULL || eOpType == SbxNULL )
+ SetType( SbxNULL );
+ // Sonderregel 2: Ist ein Operand Empty, ist das Ergebnis der 2. Operand
+- else if( eThisType == SbxEMPTY )
++ else if( eThisType == SbxEMPTY
++ && !bVBAInterop
++ )
+ *this = rOp;
+ // 13.2.96: Nicht schon vor Get auf SbxEMPTY pruefen
+ else
+ {
+ SbxValues aL, aR;
+ bool bDecimal = false;
+- if( eThisType == SbxSTRING || eOp == SbxCAT )
++ if( eThisType == SbxSTRING || eOp == SbxCAT || ( bVBAInterop && ( eOpType == SbxSTRING ) && ( eOp == SbxPLUS ) ) )
+ {
+ if( eOp == SbxCAT || eOp == SbxPLUS )
+ {
+@@ -1203,7 +1207,10 @@ BOOL SbxValue::Compute( SbxOperator eOp,
+ if( rOp.Get( aR ) )
+ {
+ if( rOp.GetType() == SbxEMPTY )
+- goto Lbl_OpIsEmpty;
++ {
++ if ( !bVBAInterop || ( bVBAInterop && ( eOp != SbxNOT ) ) )
++ goto Lbl_OpIsEmpty;
++ }
+ if( Get( aL ) ) switch( eOp )
+ {
+ case SbxIDIV:
+@@ -1392,7 +1399,10 @@ BOOL SbxValue::Compute( SbxOperator eOp,
+ if( rOp.Get( aR ) )
+ {
+ if( rOp.GetType() == SbxEMPTY )
+- goto Lbl_OpIsEmpty;
++ {
++ if ( !bVBAInterop || ( bVBAInterop && ( eOp != SbxNEG ) ) )
++ goto Lbl_OpIsEmpty;
++ }
+ if( Get( aL ) )
+ {
+ switch( eOp )
+@@ -1442,6 +1452,8 @@ Lbl_OpIsEmpty:
+
+ BOOL SbxValue::Compare( SbxOperator eOp, const SbxValue& rOp ) const
+ {
++ bool bVBAInterop = SbiRuntime::isVBAEnabled();
++
+ BOOL bRes = FALSE;
+ SbxError eOld = GetError();
+ if( eOld != SbxERR_OK )
+@@ -1458,10 +1470,13 @@ BOOL SbxValue::Compare( SbxOperator eOp,
+ // Sonderregel 2: Wenn beide Variant sind und einer ist numerisch,
+ // und der andere ein String, ist num < str
+ else if( !IsFixed() && !rOp.IsFixed()
+- && ( rOp.GetType() == SbxSTRING && GetType() != SbxSTRING && IsNumeric() ) )
++ && ( rOp.GetType() == SbxSTRING && GetType() != SbxSTRING && IsNumeric() ) && !bVBAInterop
++ )
+ bRes = BOOL( eOp == SbxLT || eOp == SbxLE || eOp == SbxNE );
+ else if( !IsFixed() && !rOp.IsFixed()
+- && ( GetType() == SbxSTRING && rOp.GetType() != SbxSTRING && rOp.IsNumeric() ) )
++ && ( GetType() == SbxSTRING && rOp.GetType() != SbxSTRING && rOp.IsNumeric() )
++&& !bVBAInterop
++ )
+ bRes = BOOL( eOp == SbxGT || eOp == SbxGE || eOp == SbxNE );
+ else
+ {
+cvs diff: Diffing basic/source/uno
+cvs diff: Diffing basic/util
+cvs diff: Diffing basic/util/defs
+cvs diff: Diffing basic/win
+cvs diff: Diffing basic/win/res
+cvs diff: Diffing basic/workben
+cvs diff: Diffing config_office
+Index: config_office/configure.in
+===================================================================
+RCS file: /cvs/tools/config_office/configure.in,v
+retrieving revision 1.201
+retrieving revision 1.201.2.1
+diff -u -p -r1.201 -r1.201.2.1
+--- config_office/configure.in 25 Apr 2007 15:53:53 -0000 1.201
++++ config_office/configure.in 3 May 2007 11:09:38 -0000 1.201.2.1
+@@ -41,20 +41,21 @@ AC_ARG_ENABLE(lockdown,
+ [ --enable-lockdown Enables the gconf integration work in OOo
+ ],,)
+ AC_ARG_ENABLE(vba,
+-[ --enable-vba Enables the vba compatibility feature
++[ --disable-vba disables the vba compatibility feature
+ ],,)
+ AC_ARG_WITH(vba-package-format,
+ [ --with-vba-package-format specify package format for vba compatibility api.
+- Default "builtin" means the api component and
++ Specifying "builtin" means the api component and
+ associated type library are part of the installation set.
+- Specifying "extsn" creates an uno extension that is
++ Specifying "extn" creates an uno extension that is
+ part of the installation set ( located in the program
+ directory ) that MUST be optionly registered using
+ either the unopkg executeable or the extension manager
+ gui.
+-
+- Usage: --with-package-format="builtin" or
+- --with-package-format="extsn"
++
++ Note: "extn" is the defualt.
++ Usage: --with-vba-package-format="builtin" or
++ --with-vba-package-format="extn"
+ ],,)
+ AC_ARG_ENABLE(pch,
+ [ --enable-pch Enables the use of precompiledr C/C++ header files
+@@ -1605,13 +1606,13 @@ fi
+ dnl ===================================================================
+ dnl Check if we are to enable vba macro interoperability feature
+ dnl ===================================================================
+-AC_MSG_CHECKING([whether to enable vba feature])
+-if test -n "$enable_vba" && test "$enable_vba" = "yes"; then
++AC_MSG_CHECKING([whether to disable vba feature])
++if test -n "$enable_vba" && test "$enable_vba" = "no"; then
+ AC_MSG_RESULT([yes])
+- ENABLE_VBA=YES
+-else
+ ENABLE_VBA=NO
++else
+ AC_MSG_RESULT([no])
++ ENABLE_VBA=YES
+ fi
+ AC_SUBST(ENABLE_VBA)
+
+@@ -1630,11 +1631,14 @@ if test "$ENABLE_VBA" = "YES"; then
+ fi
+
+ else
+- VBA_EXTENSION=NO
+- AC_MSG_RESULT([build into installset])
++ VBA_EXTENSION=YES
++ AC_MSG_RESULT([defaulting to build as uno extension])
+ fi
+- AC_SUBST(VBA_EXTENSION)
++else
++ VBA_EXTENSION=NO
+ fi
++AC_SUBST(VBA_EXTENSION)
++
+ dnl ===================================================================
+ dnl Check the whether vba need to be delivered as an uno package or part
+ dnl of the install
+cvs diff: Diffing config_office/guw
+cvs diff: Diffing sc
+cvs diff: Diffing sc/addin
+cvs diff: Diffing sc/addin/datefunc
+cvs diff: Diffing sc/addin/inc
+cvs diff: Diffing sc/addin/rot13
+cvs diff: Diffing sc/addin/util
+cvs diff: Diffing sc/inc
+cvs diff: Diffing sc/inc/pch
+cvs diff: Diffing sc/prj
+cvs diff: Diffing sc/qa
+cvs diff: Diffing sc/qa/complex
+cvs diff: Diffing sc/qa/complex/dataPilot
+cvs diff: Diffing sc/qa/complex/dataPilot/interfaceTests
+cvs diff: Diffing sc/qa/complex/dataPilot/interfaceTests/beans
+cvs diff: Diffing sc/qa/complex/dataPilot/interfaceTests/container
+cvs diff: Diffing sc/qa/complex/dataPilot/interfaceTests/sheet
+cvs diff: Diffing sc/qa/complex/sc
+cvs diff: Diffing sc/qa/unoapi
+cvs diff: Diffing sc/qa/unoapi/testdocuments
+cvs diff: Diffing sc/sdi
+cvs diff: Diffing sc/source
+cvs diff: Diffing sc/source/core
+cvs diff: Diffing sc/source/core/data
+cvs diff: Diffing sc/source/core/inc
+cvs diff: Diffing sc/source/core/src
+cvs diff: Diffing sc/source/core/tool
+cvs diff: Diffing sc/source/filter
+cvs diff: Diffing sc/source/filter/dif
+cvs diff: Diffing sc/source/filter/excel
+cvs diff: Diffing sc/source/filter/ftools
+cvs diff: Diffing sc/source/filter/html
+cvs diff: Diffing sc/source/filter/inc
+cvs diff: Diffing sc/source/filter/lotus
+cvs diff: Diffing sc/source/filter/qpro
+cvs diff: Diffing sc/source/filter/rtf
+cvs diff: Diffing sc/source/filter/starcalc
+cvs diff: Diffing sc/source/filter/xcl97
+cvs diff: Diffing sc/source/filter/xml
+cvs diff: Diffing sc/source/ui
+cvs diff: Diffing sc/source/ui/Accessibility
+cvs diff: Diffing sc/source/ui/app
+cvs diff: Diffing sc/source/ui/attrdlg
+cvs diff: Diffing sc/source/ui/cctrl
+cvs diff: Diffing sc/source/ui/dbgui
+cvs diff: Diffing sc/source/ui/docshell
+cvs diff: Diffing sc/source/ui/drawfunc
+cvs diff: Diffing sc/source/ui/formdlg
+cvs diff: Diffing sc/source/ui/inc
+cvs diff: Diffing sc/source/ui/miscdlgs
+cvs diff: Diffing sc/source/ui/namedlg
+cvs diff: Diffing sc/source/ui/navipi
+cvs diff: Diffing sc/source/ui/optdlg
+cvs diff: Diffing sc/source/ui/pagedlg
+cvs diff: Diffing sc/source/ui/src
+cvs diff: Diffing sc/source/ui/styleui
+cvs diff: Diffing sc/source/ui/undo
+cvs diff: Diffing sc/source/ui/unoobj
+cvs diff: Diffing sc/source/ui/vba
+Index: sc/source/ui/vba/vbaapplication.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaapplication.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -u -p -r1.2 -r1.2.2.1
+--- sc/source/ui/vba/vbaapplication.cxx 25 Apr 2007 16:00:39 -0000 1.2
++++ sc/source/ui/vba/vbaapplication.cxx 18 May 2007 12:38:29 -0000 1.2.2.1
+@@ -293,7 +293,7 @@ void SAL_CALL
+ ScVbaApplication::setStatusBar( const uno::Any& _statusbar ) throw (uno::RuntimeException)
+ {
+ rtl::OUString sText;
+- sal_Bool bDefault;
++ sal_Bool bDefault = sal_False;
+ uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
+ uno::Reference< task::XStatusIndicatorSupplier > xStatusIndicatorSupplier( xModel->getCurrentController(), uno::UNO_QUERY_THROW );
+ uno::Reference< task::XStatusIndicator > xStatusIndicator( xStatusIndicatorSupplier->getStatusIndicator(), uno::UNO_QUERY_THROW );
+@@ -426,7 +426,7 @@ ScVbaApplication::GoTo( const uno::Any&
+
+ if( Scroll.hasValue() )
+ {
+- sal_Bool aScroll;
++ sal_Bool aScroll = sal_False;
+ if( Scroll >>= aScroll )
+ {
+ bScroll = aScroll;
+Index: sc/source/ui/vba/vbahelper.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbahelper.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -u -p -r1.2 -r1.2.2.1
+--- sc/source/ui/vba/vbahelper.hxx 25 Apr 2007 16:07:33 -0000 1.2
++++ sc/source/ui/vba/vbahelper.hxx 3 May 2007 11:16:34 -0000 1.2.2.1
+@@ -38,8 +38,8 @@
+ #include <com/sun/star/frame/XModel.hpp>
+ #include <docsh.hxx>
+
+-#define css com::sun::star
+-#define oo org::openoffice
++namespace css = ::com::sun::star;
++
+ namespace org
+ {
+ namespace openoffice
+@@ -69,6 +69,8 @@ namespace org
+ }
+ }
+
++namespace oo = org::openoffice;
++
+ #ifdef DEBUG
+ # define SC_VBA_FIXME(a) OSL_TRACE( a )
+ # define SC_VBA_STUB() SC_VBA_FIXME(( "%s - stubbed\n", __FUNCTION__ ))
+Index: sc/source/ui/vba/vbarange.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbarange.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -u -p -r1.2 -r1.2.2.1
+--- sc/source/ui/vba/vbarange.cxx 25 Apr 2007 16:10:29 -0000 1.2
++++ sc/source/ui/vba/vbarange.cxx 18 May 2007 12:38:29 -0000 1.2.2.1
+@@ -487,7 +487,7 @@ CellValueSetter::processValue( const uno
+ {
+ case uno::TypeClass_BOOLEAN:
+ {
+- sal_Bool bState;
++ sal_Bool bState = sal_False;
+ if ( aValue >>= bState )
+ {
+ uno::Reference< table::XCellRange > xRange( xCell, uno::UNO_QUERY_THROW );
+@@ -2318,7 +2318,7 @@ ScVbaRange::setHidden( const uno::Any& _
+ return;
+ }
+
+- sal_Bool bHidden;
++ sal_Bool bHidden = sal_False;
+ if ( !(_hidden >>= bHidden) )
+ throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Failed to extract param for Hidden property" ) ), uno::Reference< uno::XInterface >() );
+
+Index: sc/source/ui/vba/vbaworksheets.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaworksheets.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -u -p -r1.2 -r1.2.2.1
+--- sc/source/ui/vba/vbaworksheets.cxx 25 Apr 2007 16:14:08 -0000 1.2
++++ sc/source/ui/vba/vbaworksheets.cxx 17 May 2007 16:12:07 -0000 1.2.2.1
+@@ -227,7 +227,7 @@ ScVbaWorksheets::getVisible() throw (uno
+ void SAL_CALL
+ ScVbaWorksheets::setVisible( const uno::Any& _visible ) throw (uno::RuntimeException)
+ {
+- sal_Bool bState;
++ sal_Bool bState = sal_False;
+ if ( _visible >>= bState )
+ {
+ uno::Reference< container::XEnumeration > xEnum( createEnumeration(), uno::UNO_QUERY_THROW );
+cvs diff: Diffing sc/source/ui/view
+cvs diff: Diffing sc/uiconfig
+cvs diff: Diffing sc/uiconfig/scalc
+cvs diff: Diffing sc/uiconfig/scalc/accelerator
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/de
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/en-GB
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/en-US
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/es
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/fr
+cvs diff: Diffing sc/uiconfig/scalc/menubar
+cvs diff: Diffing sc/uiconfig/scalc/statusbar
+cvs diff: Diffing sc/uiconfig/scalc/toolbar
+cvs diff: Diffing sc/util
+Index: sc/util/makefile.mk
+===================================================================
+RCS file: /cvs/sc/sc/util/makefile.mk,v
+retrieving revision 1.39
+retrieving revision 1.39.2.1
+diff -u -p -r1.39 -r1.39.2.1
+--- sc/util/makefile.mk 25 Apr 2007 16:15:20 -0000 1.39
++++ sc/util/makefile.mk 3 May 2007 09:00:47 -0000 1.39.2.1
+@@ -278,6 +278,7 @@ DEF9NAME=$(SHL9TARGET)
+
+ SHL9STDLIBS= \
+ $(CPPUHELPERLIB) \
++ $(VCLLIB) \
+ $(CPPULIB) \
+ $(COMPHELPERLIB) \
+ $(SVLIB) \
+@@ -294,6 +295,12 @@ SHL9STDLIBS= \
+ SHL9DEPN=$(SHL1TARGETN) $(SHL8TARGETN)
+ SHL9LIBS=$(SLB)$/$(TARGET_VBA).lib
+
++.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC"
++ LIBCOMPNAME=$(LOCAL_COMMON_OUT)$/lib/lib$(SHL9TARGET)$(DLLPOST)
++.ELSE
++ LIBCOMPNAME=$(COMMONBIN)$/$(SHL9TARGET)$(DLLPOST)
++.ENDIF
++
+ .ENDIF
+
+
+cvs diff: Diffing sc/util/defs
+cvs diff: Diffing sc/workben
+cvs diff: Diffing sc/xml
+cvs diff: Diffing svx
+cvs diff: Diffing svx/doc
+cvs diff: Diffing svx/doc/UML
+cvs diff: Diffing svx/inc
+cvs diff: Diffing svx/inc/pch
+cvs diff: Diffing svx/inc/svx
+cvs diff: Diffing svx/inc/svx/sdr
+cvs diff: Diffing svx/inc/svx/sdr/animation
+cvs diff: Diffing svx/inc/svx/sdr/contact
+cvs diff: Diffing svx/inc/svx/sdr/event
+cvs diff: Diffing svx/inc/svx/sdr/mixer
+cvs diff: Diffing svx/inc/svx/sdr/overlay
+cvs diff: Diffing svx/inc/svx/sdr/properties
+cvs diff: Diffing svx/prj
+cvs diff: Diffing svx/qa
+cvs diff: Diffing svx/qa/unoapi
+cvs diff: Diffing svx/qa/unoapi/testdocuments
+cvs diff: Diffing svx/res
+cvs diff: Diffing svx/sdi
+cvs diff: Diffing svx/source
+cvs diff: Diffing svx/source/accessibility
+cvs diff: Diffing svx/source/customshapes
+cvs diff: Diffing svx/source/dialog
+cvs diff: Diffing svx/source/editeng
+cvs diff: Diffing svx/source/engine3d
+cvs diff: Diffing svx/source/fmcomp
+cvs diff: Diffing svx/source/form
+cvs diff: Diffing svx/source/gallery2
+cvs diff: Diffing svx/source/gengal
+cvs diff: Diffing svx/source/inc
+cvs diff: Diffing svx/source/init
+cvs diff: Diffing svx/source/intro
+cvs diff: Diffing svx/source/items
+cvs diff: Diffing svx/source/mnuctrls
+cvs diff: Diffing svx/source/msfilter
+Index: svx/source/msfilter/svxmsbas.cxx
+===================================================================
+RCS file: /cvs/graphics/svx/source/msfilter/svxmsbas.cxx,v
+retrieving revision 1.20
+retrieving revision 1.20.4.1
+diff -u -p -r1.20 -r1.20.4.1
+--- svx/source/msfilter/svxmsbas.cxx 25 Apr 2007 16:18:00 -0000 1.20
++++ svx/source/msfilter/svxmsbas.cxx 2 May 2007 09:16:56 -0000 1.20.4.1
+@@ -368,8 +368,14 @@ BOOL SvxImportMSVBasic::ImportCode_Impl(
+ break;
+ }
+ static ::rtl::OUString sVBAOption( RTL_CONSTASCII_USTRINGPARAM( "Option VBASupport 1\n" ) );
++ static ::rtl::OUString sClassOption( RTL_CONSTASCII_USTRINGPARAM( "Option ClassModule\n" ) );
+ if ( !bAsComment )
++ {
+ modeTypeComment = modeTypeComment + sVBAOption;
++ if ( mType == Class )
++ modeTypeComment = modeTypeComment + sClassOption;
++
++ }
+
+ String sModule(sBasicModule); //#i52606# no need to split Macros in 64KB blocks any more!
+ String sTemp;
+cvs diff: Diffing svx/source/options
+cvs diff: Diffing svx/source/outliner
+cvs diff: Diffing svx/source/sdr
+cvs diff: Diffing svx/source/sdr/animation
+cvs diff: Diffing svx/source/sdr/contact
+cvs diff: Diffing svx/source/sdr/event
+cvs diff: Diffing svx/source/sdr/mixer
+cvs diff: Diffing svx/source/sdr/overlay
+cvs diff: Diffing svx/source/sdr/properties
+cvs diff: Diffing svx/source/src
+cvs diff: Diffing svx/source/stbctrls
+cvs diff: Diffing svx/source/svdraw
+cvs diff: Diffing svx/source/svrtf
+cvs diff: Diffing svx/source/svxlink
+cvs diff: Diffing svx/source/tbxctrls
+cvs diff: Diffing svx/source/toolbars
+cvs diff: Diffing svx/source/unodialogs
+cvs diff: Diffing svx/source/unodialogs/inc
+cvs diff: Diffing svx/source/unodialogs/textconversiondlgs
+cvs diff: Diffing svx/source/unodraw
+cvs diff: Diffing svx/source/unoedit
+cvs diff: Diffing svx/source/unogallery
+cvs diff: Diffing svx/source/xml
+cvs diff: Diffing svx/source/xoutdev
+cvs diff: Diffing svx/uiconfig
+cvs diff: Diffing svx/uiconfig/accelerator
+cvs diff: Diffing svx/uiconfig/accelerator/en-US
+cvs diff: Diffing svx/uiconfig/accelerator/es
+cvs diff: Diffing svx/util
+cvs diff: Diffing svx/util/defs
+cvs diff: Diffing svx/workben
+cvs diff: Diffing svx/workben/msview
+cvs diff: Diffing svx/xml
+cvs diff: Diffing scp2
+cvs diff: Diffing scp2/inc
+cvs diff: Diffing scp2/macros
+cvs diff: Diffing scp2/prj
+cvs diff: Diffing scp2/source
+cvs diff: Diffing scp2/source/activex
+cvs diff: Diffing scp2/source/base
+cvs diff: Diffing scp2/source/calc
+cvs diff: Diffing scp2/source/canvas
+cvs diff: Diffing scp2/source/crashrep
+cvs diff: Diffing scp2/source/draw
+cvs diff: Diffing scp2/source/gnome
+cvs diff: Diffing scp2/source/graphicfilter
+cvs diff: Diffing scp2/source/impress
+cvs diff: Diffing scp2/source/javafilter
+cvs diff: Diffing scp2/source/kde
+cvs diff: Diffing scp2/source/lingu
+cvs diff: Diffing scp2/source/math
+cvs diff: Diffing scp2/source/onlineupdate
+cvs diff: Diffing scp2/source/ooo
+Index: scp2/source/ooo/file_ooo.scp
+===================================================================
+RCS file: /cvs/installation/scp2/source/ooo/file_ooo.scp,v
+retrieving revision 1.188
+retrieving revision 1.188.2.1
+diff -u -p -r1.188 -r1.188.2.1
+--- scp2/source/ooo/file_ooo.scp 25 Apr 2007 16:18:52 -0000 1.188
++++ scp2/source/ooo/file_ooo.scp 3 May 2007 11:09:39 -0000 1.188.2.1
+@@ -1830,6 +1830,13 @@ File gid_File_Rdb_TypesVba
+ Styles = (PACKED, OVERWRITE, PATCH);
+ Name = "oovbaapi.rdb";
+ End
++#else
++File gid_File_ExtnVba
++ TXT_FILE_BODY;
++ Dir = gid_Dir_Program;
++ Styles = (PACKED, OVERWRITE, PATCH);
++ Name = "vbaapi.oxt";
++End
+ #endif
+ #endif
+
+cvs diff: Diffing scp2/source/python
+cvs diff: Diffing scp2/source/quickstart
+cvs diff: Diffing scp2/source/sdkoo
+cvs diff: Diffing scp2/source/testtool
+cvs diff: Diffing scp2/source/ure
+cvs diff: Diffing scp2/source/winexplorerext
+cvs diff: Diffing scp2/source/writer
+cvs diff: Diffing scp2/source/xsltfilter
+cvs diff: Diffing scp2/util
diff --git a/editors/openoffice.org-3-devel/files/patch-i65462 b/editors/openoffice.org-3-devel/files/patch-i65462
deleted file mode 100644
index 34a8a569562a..000000000000
--- a/editors/openoffice.org-3-devel/files/patch-i65462
+++ /dev/null
@@ -1,24 +0,0 @@
-Re-add #i64906# workaround. The root cause of the crash is #i65462#.
-Also see #i65004# for more information.
-
---- sal/osl/unx/security.c 14 Mar 2007 08:28:11 -0000 1.24
-+++ sal/osl/unx/security.c 6 Apr 2007 05:59:15 -0000
-@@ -76,6 +76,10 @@
- static sal_Bool SAL_CALL osl_psz_getConfigDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax);
-
- static oslSecurityImpl * newSecurityImpl(size_t * bufSize) {
-+#if defined (MACOSX) || defined (FREEBSD)
-+ /* #i64906#: sysconf(_SC_GETPW_R_SIZE_MAX) returns -1 on Mac OS X and FreeBSD */
-+ size_t n = 1024;
-+#else
- long m;
- size_t n;
- errno = 0;
-@@ -95,6 +99,7 @@
- OSL_ASSERT(m >= 0 && (unsigned long) m < SIZE_MAX);
- n = (size_t) m;
- }
-+#endif
- if (n <= SIZE_MAX - offsetof(oslSecurityImpl, m_buffer)) {
- *bufSize = n;
- n += offsetof(oslSecurityImpl, m_buffer);
diff --git a/editors/openoffice.org-3-devel/files/patch-i75708 b/editors/openoffice.org-3-devel/files/patch-i75708
deleted file mode 100644
index 1fc8565c4fd4..000000000000
--- a/editors/openoffice.org-3-devel/files/patch-i75708
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: basctl/source/basicide/scriptdocument.cxx
-===================================================================
-RCS file: /cvs/script/basctl/source/basicide/scriptdocument.cxx,v
-retrieving revision 1.2
-diff -u -r1.2 scriptdocument.cxx
---- basctl/source/basicide/scriptdocument.cxx 15 Mar 2007 15:59:30 -0000 1.2
-+++ basctl/source/basicide/scriptdocument.cxx 25 Mar 2007 21:09:03 -0000
-@@ -921,7 +921,7 @@
- //--------------------------------------------------------------------
- sal_Int32 ScriptDocument::hashCode() const
- {
-- return reinterpret_cast< sal_Int32 >( m_pImpl->getObjectShell() );
-+ return reinterpret_cast< sal_IntPtr >( m_pImpl->getObjectShell() );
- }
-
- //--------------------------------------------------------------------
diff --git a/editors/openoffice.org-3-devel/files/patch-i76141 b/editors/openoffice.org-3-devel/files/patch-i76141
index 1698b377a94f..6b1bfcaf860b 100644
--- a/editors/openoffice.org-3-devel/files/patch-i76141
+++ b/editors/openoffice.org-3-devel/files/patch-i76141
@@ -316,6 +316,181 @@
--- misc/build/libwpd-0.8.8/src/lib/WP1Part.cpp 2007-01-13 00:18:52.000000000 +0100
***************
+--- libxml2/libxml2-2.6.17.patch 26 Mar 2007 12:25:19 -0000 1.5
++++ libxml2/libxml2-2.6.17.patch 3 May 2007 17:31:33 -0000
+@@ -34,6 +34,74 @@
+ fi
+ echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+ ***************
++*** 8547,8553 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 8547,8553 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
++*** 12266,12272 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 12266,12272 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
++*** 15436,15442 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 15436,15442 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
++*** 17804,17810 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 17804,17810 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 26339,26347 ****
+
+ echo "$as_me:$LINENO: checking for setsockopt" >&5
+--- libxmlsec/xmlsec1-1.2.6.patch 27 Mar 2007 09:36:38 -0000 1.19
++++ libxmlsec/xmlsec1-1.2.6.patch 3 May 2007 18:12:52 -0000
+@@ -158,6 +158,23 @@
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ ***************
++*** 7778,7784 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 7779,7785 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 9046,9052 ****
+ ;;
+ esac
+@@ -215,6 +232,23 @@
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+ ***************
++*** 11497,11503 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 11498,11504 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 13259,13269 ****
+ lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
+ ;;
+@@ -257,6 +291,23 @@
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ ***************
++*** 14667,14673 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 14668,14674 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 15607,15617 ****
+ lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
+ ;;
+@@ -316,6 +367,23 @@
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ ***************
++*** 17035,17041 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 17036,17042 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 24598,24604 ****
+ fi
+
--- moz/mozilla-source-1.7.5.patch.orig Fri Apr 27 15:23:29 2007
+++ moz/mozilla-source-1.7.5.patch Fri Apr 27 15:32:07 2007
@@ -266,6 +266,23 @@
@@ -540,31 +715,6 @@
***************
*** 1 ****
! dummy
---- sablot/Sablot-0.52.patch 19 Jun 2006 17:27:11 -0000 1.20
-+++ sablot/Sablot-0.52.patch 5 Apr 2007 00:24:32 -0000
-@@ -632,3 +632,22 @@
- };
- return cnt;
- }
-+*** misc/Sablot-0.52/tools/ltconfig Fri Apr 13 05:50:59 2001
-+--- misc/build/Sablot-0.52/tools/ltconfig Wed Apr 4 20:22:37 2007
-+***************
-+*** 1887,1893 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case "$version_type" in
-+ freebsd-elf*)
-+--- 1887,1893 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case "$version_type" in
-+ freebsd-elf*)
--- sndfile/libsndfile-1.0.9.patch 3 Feb 2006 17:31:46 -0000 1.3
+++ sndfile/libsndfile-1.0.9.patch 5 Apr 2007 00:31:26 -0000
@@ -83,6 +83,23 @@
@@ -708,611 +858,3 @@
diff -uprN misc/vigra1.4.0/include/vigra/array_vector.hxx misc/build/vigra1.4.0/include/vigra/array_vector.hxx
--- misc/vigra1.4.0/include/vigra/array_vector.hxx 2005-12-21 05:53:30.000000000 +0100
+++ misc/build/vigra1.4.0/include/vigra/array_vector.hxx 2006-08-31 12:08:15.172679000 +0200
-
-
-Index: libxmlsec/xmlsec1-1.2.6.patch
-===================================================================
-RCS file: /cvs/external/libxmlsec/xmlsec1-1.2.6.patch,v
-retrieving revision 1.19
-diff -u -r1.19 xmlsec1-1.2.6.patch
---- libxmlsec/xmlsec1-1.2.6.patch 27 Mar 2007 09:36:38 -0000 1.19
-+++ libxmlsec/xmlsec1-1.2.6.patch 28 Apr 2007 23:12:51 -0000
-@@ -1,5 +1,5 @@
--*** misc/xmlsec1-1.2.6/apps/Makefile.in Thu Aug 26 08:00:30 2004
----- misc/build/xmlsec1-1.2.6/apps/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/apps/Makefile.in Thu Aug 26 15:00:30 2004
-+--- misc/build/xmlsec1-1.2.6/apps/Makefile.in Sun Apr 29 08:10:05 2007
- ***************
- *** 370,376 ****
- $(CRYPTO_DEPS) \
-@@ -17,8 +17,8 @@
-
- .SUFFIXES:
- .SUFFIXES: .c .lo .o .obj
--*** misc/xmlsec1-1.2.6/configure Thu Aug 26 08:00:34 2004
----- misc/build/xmlsec1-1.2.6/configure Tue Mar 27 11:26:19 2007
-+*** misc/xmlsec1-1.2.6/configure Thu Aug 26 15:00:34 2004
-+--- misc/build/xmlsec1-1.2.6/configure Sun Apr 29 08:10:06 2007
- ***************
- *** 463,469 ****
- # include <unistd.h>
-@@ -158,6 +158,23 @@
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- ***************
-+*** 7778,7784 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+--- 7779,7785 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+***************
- *** 9046,9052 ****
- ;;
- esac
-@@ -215,6 +232,23 @@
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
- ***************
-+*** 11497,11503 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+--- 11498,11504 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+***************
- *** 13259,13269 ****
- lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
- ;;
-@@ -257,6 +291,23 @@
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- ***************
-+*** 14667,14673 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+--- 14668,14674 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+***************
- *** 15607,15617 ****
- lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
- ;;
-@@ -316,6 +367,23 @@
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- ***************
-+*** 17035,17041 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+--- 17036,17042 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+***************
- *** 24598,24604 ****
- fi
-
-@@ -2379,8 +2447,8 @@
- s,@XMLSEC_NO_SHA1_TRUE@,$XMLSEC_NO_SHA1_TRUE,;t t
- s,@XMLSEC_NO_SHA1_FALSE@,$XMLSEC_NO_SHA1_FALSE,;t t
- s,@XMLSEC_NO_SHA1@,$XMLSEC_NO_SHA1,;t t
--*** misc/xmlsec1-1.2.6/configure.in Thu Aug 26 04:49:24 2004
----- misc/build/xmlsec1-1.2.6/configure.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/configure.in Thu Aug 26 11:49:24 2004
-+--- misc/build/xmlsec1-1.2.6/configure.in Sun Apr 29 08:10:06 2007
- ***************
- *** 143,149 ****
- dnl find libxml
-@@ -2496,8 +2564,8 @@
- dnl do not add -L/usr/lib because compiler does it anyway
- if test "z$dir" = "z/usr/lib" ; then
- NSS_LIBS="$NSS_LIBS_LIST"
--*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/Makefile.in Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/Makefile.in Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/Makefile.in Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -2560,8 +2628,8 @@
- ! # Tell versions [3.59,3.63) of GNU make to not export all variables.
- ! # Otherwise a system limit (for SysV at least) may be exceeded.
- ! .NOEXPORT:
--*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/akmngr.h Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/akmngr.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/akmngr.h Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/akmngr.h Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -2637,8 +2705,8 @@
- ! #endif /* __XMLSEC_MSCRYPTO_AKMNGR_H__ */
- !
- !
--*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/x509.h Fri Sep 26 08:12:46 2003
----- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/x509.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/x509.h Fri Sep 26 15:12:46 2003
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/x509.h Sun Apr 29 08:10:06 2007
- ***************
- *** 77,82 ****
- --- 77,97 ----
-@@ -2663,8 +2731,8 @@
-
- #endif /* XMLSEC_NO_X509 */
-
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.am Wed Jul 30 04:46:35 2003
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.am Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.am Wed Jul 30 11:46:35 2003
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.am Sun Apr 29 08:10:06 2007
- ***************
- *** 3,8 ****
- --- 3,9 ----
-@@ -2686,8 +2754,8 @@
- $(NULL)
-
- install-exec-hook:
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.in Thu Aug 26 08:00:31 2004
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.in Thu Aug 26 15:00:31 2004
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.in Sun Apr 29 08:10:06 2007
- ***************
- *** 273,278 ****
- --- 273,279 ----
-@@ -2709,8 +2777,8 @@
- $(NULL)
-
- all: all-am
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/akmngr.h Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/akmngr.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/akmngr.h Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/akmngr.h Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -2771,8 +2839,8 @@
- ! #endif /* __XMLSEC_NSS_AKMNGR_H__ */
- !
- !
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/app.h Mon Jan 12 22:06:14 2004
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/app.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/app.h Tue Jan 13 06:06:14 2004
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/app.h Sun Apr 29 08:10:06 2007
- ***************
- *** 22,27 ****
- --- 22,30 ----
-@@ -2796,8 +2864,8 @@
- XMLSEC_CRYPTO_EXPORT int xmlSecNssAppDefaultKeysMngrLoad (xmlSecKeysMngrPtr mngr,
- const char* uri);
- XMLSEC_CRYPTO_EXPORT int xmlSecNssAppDefaultKeysMngrSave (xmlSecKeysMngrPtr mngr,
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/ciphers.h Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/ciphers.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/ciphers.h Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/ciphers.h Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -2837,8 +2905,8 @@
- ! #endif /* __XMLSEC_NSS_CIPHERS_H__ */
- !
- !
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/crypto.h Mon Jan 12 22:06:14 2004
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/crypto.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/crypto.h Tue Jan 13 06:06:14 2004
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/crypto.h Sun Apr 29 08:10:06 2007
- ***************
- *** 264,269 ****
- --- 264,278 ----
-@@ -2857,8 +2925,8 @@
- #endif /* XMLSEC_NO_RSA */
-
-
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/keysstore.h Wed Jul 30 04:46:35 2003
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/keysstore.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/keysstore.h Wed Jul 30 11:46:35 2003
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/keysstore.h Sun Apr 29 08:10:06 2007
- ***************
- *** 16,21 ****
- --- 16,23 ----
-@@ -2881,8 +2949,8 @@
- XMLSEC_CRYPTO_EXPORT int xmlSecNssKeysStoreLoad (xmlSecKeyStorePtr store,
- const char *uri,
- xmlSecKeysMngrPtr keysMngr);
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/tokens.h Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/tokens.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/tokens.h Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/tokens.h Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -3069,8 +3137,8 @@
- !
- ! #endif /* __XMLSEC_NSS_TOKENS_H__ */
- !
--*** misc/xmlsec1-1.2.6/libxml2-config Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/libxml2-config Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/libxml2-config Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/libxml2-config Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -3123,8 +3191,8 @@
- ! done
- !
- ! exit 0
--*** misc/xmlsec1-1.2.6/ltmain.sh Thu Aug 26 08:00:15 2004
----- misc/build/xmlsec1-1.2.6/ltmain.sh Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/ltmain.sh Thu Aug 26 15:00:15 2004
-+--- misc/build/xmlsec1-1.2.6/ltmain.sh Sun Apr 29 08:10:06 2007
- ***************
- *** 1661,1666 ****
- --- 1661,1671 ----
-@@ -3199,8 +3267,8 @@
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
--*** misc/xmlsec1-1.2.6/src/bn.c Mon Jun 21 20:33:27 2004
----- misc/build/xmlsec1-1.2.6/src/bn.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/bn.c Tue Jun 22 03:33:27 2004
-+--- misc/build/xmlsec1-1.2.6/src/bn.c Sun Apr 29 08:10:06 2007
- ***************
- *** 170,177 ****
- */
-@@ -3766,8 +3834,8 @@
- }
-
- return(0);
--*** misc/xmlsec1-1.2.6/src/dl.c Wed Oct 29 16:57:20 2003
----- misc/build/xmlsec1-1.2.6/src/dl.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/dl.c Thu Oct 30 00:57:20 2003
-+--- misc/build/xmlsec1-1.2.6/src/dl.c Sun Apr 29 08:10:06 2007
- ***************
- *** 329,334 ****
- --- 329,338 ----
-@@ -3793,8 +3861,8 @@
- }
-
- --- 354,359 ----
--*** misc/xmlsec1-1.2.6/src/mscrypto/Makefile.in Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/mscrypto/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/Makefile.in Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/Makefile.in Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -3977,8 +4045,8 @@
- ! # Tell versions [3.59,3.63) of GNU make to not export all variables.
- ! # Otherwise a system limit (for SysV at least) may be exceeded.
- ! .NOEXPORT:
--*** misc/xmlsec1-1.2.6/src/mscrypto/akmngr.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/mscrypto/akmngr.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/akmngr.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/akmngr.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -4218,8 +4286,8 @@
- ! return( 0 ) ;
- ! }
- !
--*** misc/xmlsec1-1.2.6/src/mscrypto/certkeys.c Wed Mar 17 06:06:43 2004
----- misc/build/xmlsec1-1.2.6/src/mscrypto/certkeys.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/certkeys.c Wed Mar 17 14:06:43 2004
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/certkeys.c Sun Apr 29 08:10:06 2007
- ***************
- *** 41,46 ****
- --- 41,47 ----
-@@ -4896,8 +4964,8 @@
- }
-
- static xmlSecKeyDataType
--*** misc/xmlsec1-1.2.6/src/mscrypto/ciphers.c Fri Sep 26 08:12:51 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/ciphers.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/ciphers.c Fri Sep 26 15:12:51 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/ciphers.c Sun Apr 29 08:10:06 2007
- ***************
- *** 785,791 ****
- * AES CBC cipher transforms
-@@ -4966,8 +5034,8 @@
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* size_t klassSize */
- xmlSecMSCryptoBlockCipherSize, /* size_t objSize */
--*** misc/xmlsec1-1.2.6/src/mscrypto/crypto.c Wed Nov 12 03:38:51 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/crypto.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/crypto.c Wed Nov 12 11:38:51 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/crypto.c Sun Apr 29 08:10:06 2007
- ***************
- *** 330,342 ****
- BYTE*
-@@ -4999,8 +5067,8 @@
- return(NULL);
- }
-
--*** misc/xmlsec1-1.2.6/src/mscrypto/digests.c Tue Sep 30 04:09:51 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/digests.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/digests.c Tue Sep 30 11:09:51 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/digests.c Sun Apr 29 08:10:06 2007
- ***************
- *** 96,107 ****
-
-@@ -5031,8 +5099,8 @@
- }
-
- return(0);
--*** misc/xmlsec1-1.2.6/src/mscrypto/kt_rsa.c Fri Sep 26 22:29:25 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/kt_rsa.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/kt_rsa.c Sat Sep 27 05:29:25 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/kt_rsa.c Sun Apr 29 08:10:06 2007
- ***************
- *** 66,72 ****
- static int xmlSecMSCryptoRsaPkcs1Process (xmlSecTransformPtr transform,
-@@ -5050,8 +5118,8 @@
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecMSCryptoRsaPkcs1Size, /* xmlSecSize objSize */
--*** misc/xmlsec1-1.2.6/src/mscrypto/signatures.c Fri Sep 26 22:29:25 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/signatures.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/signatures.c Sat Sep 27 05:29:25 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/signatures.c Sun Apr 29 08:10:06 2007
- ***************
- *** 483,489 ****
- * RSA-SHA1 signature transform
-@@ -5086,8 +5154,8 @@
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecMSCryptoSignatureSize, /* xmlSecSize objSize */
--*** misc/xmlsec1-1.2.6/src/mscrypto/symkeys.c Fri Sep 26 02:58:13 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/symkeys.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/symkeys.c Fri Sep 26 09:58:13 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/symkeys.c Sun Apr 29 08:10:06 2007
- ***************
- *** 72,78 ****
- * <xmlsec:AESKeyValue> processing
-@@ -5122,8 +5190,8 @@
- sizeof(xmlSecKeyDataKlass),
- xmlSecKeyDataBinarySize,
-
--*** misc/xmlsec1-1.2.6/src/mscrypto/x509.c Fri Sep 26 02:58:13 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/x509.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/x509.c Fri Sep 26 09:58:13 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/x509.c Sun Apr 29 08:10:06 2007
- ***************
- *** 240,246 ****
-
-@@ -5369,8 +5437,8 @@
- sizeof(xmlSecKeyDataKlass),
- sizeof(xmlSecKeyData),
-
--*** misc/xmlsec1-1.2.6/src/mscrypto/x509vfy.c Sat Sep 27 05:12:22 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/x509vfy.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/x509vfy.c Sat Sep 27 12:12:22 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/x509vfy.c Sun Apr 29 08:10:06 2007
- ***************
- *** 70,76 ****
- static xmlSecByte * xmlSecMSCryptoX509NameRead (xmlSecByte *str,
-@@ -6115,8 +6183,8 @@
- }
- }
- xmlFree(cName);
--*** misc/xmlsec1-1.2.6/src/nss/Makefile.am Tue Sep 16 11:43:03 2003
----- misc/build/xmlsec1-1.2.6/src/nss/Makefile.am Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/Makefile.am Tue Sep 16 18:43:03 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/Makefile.am Sun Apr 29 08:10:06 2007
- ***************
- *** 20,40 ****
- $(NULL)
-@@ -6163,8 +6231,8 @@
- $(NULL)
-
- libxmlsec1_nss_la_LIBADD = \
--*** misc/xmlsec1-1.2.6/src/nss/Makefile.in Thu Aug 26 08:00:32 2004
----- misc/build/xmlsec1-1.2.6/src/nss/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/Makefile.in Thu Aug 26 15:00:32 2004
-+--- misc/build/xmlsec1-1.2.6/src/nss/Makefile.in Sun Apr 29 08:10:06 2007
- ***************
- *** 54,62 ****
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-@@ -6288,8 +6356,8 @@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pkikeys.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signatures.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symkeys.Plo@am__quote@
--*** misc/xmlsec1-1.2.6/src/nss/akmngr.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/nss/akmngr.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/akmngr.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/nss/akmngr.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -6678,8 +6746,8 @@
- ! return(0) ;
- ! }
- !
--*** misc/xmlsec1-1.2.6/src/nss/ciphers.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/ciphers.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/ciphers.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/ciphers.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1,838 ****
- ! /**
-@@ -8472,8 +8540,8 @@
- }
- !
-
--*** misc/xmlsec1-1.2.6/src/nss/crypto.c Wed Oct 29 16:57:25 2003
----- misc/build/xmlsec1-1.2.6/src/nss/crypto.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/crypto.c Thu Oct 30 00:57:25 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/crypto.c Sun Apr 29 08:10:06 2007
- ***************
- *** 130,135 ****
- --- 130,136 ----
-@@ -8526,8 +8594,8 @@
-
- return(gXmlSecNssFunctions);
- }
--*** misc/xmlsec1-1.2.6/src/nss/digests.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/digests.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/digests.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/digests.c Sun Apr 29 08:10:06 2007
- ***************
- *** 21,27 ****
- #include <xmlsec/transforms.h>
-@@ -8623,8 +8691,8 @@
- return(-1);
- }
- xmlSecAssert2(ctx->dgstSize > 0, -1);
--*** misc/xmlsec1-1.2.6/src/nss/hmac.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/hmac.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/hmac.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/hmac.c Sun Apr 29 08:10:06 2007
- ***************
- *** 23,30 ****
- #include <xmlsec/transforms.h>
-@@ -8758,8 +8826,8 @@
- return(-1);
- }
- xmlSecAssert2(dgstSize > 0, -1);
--*** misc/xmlsec1-1.2.6/src/nss/keysstore.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/keysstore.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/keysstore.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/keysstore.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1,119 ****
- /**
-@@ -9826,8 +9894,8 @@
- ! return(0);
- }
- +
--*** misc/xmlsec1-1.2.6/src/nss/keytrans.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/nss/keytrans.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/keytrans.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/nss/keytrans.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -10576,8 +10644,8 @@
- !
- ! #endif /* XMLSEC_NO_RSA */
- !
--*** misc/xmlsec1-1.2.6/src/nss/keywrapers.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/nss/keywrapers.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/keywrapers.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/nss/keywrapers.c Sun Apr 29 08:10:07 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -11779,8 +11847,8 @@
- !
- ! #endif /* XMLSEC_NO_DES */
- !
--*** misc/xmlsec1-1.2.6/src/nss/pkikeys.c Wed Mar 17 06:06:45 2004
----- misc/build/xmlsec1-1.2.6/src/nss/pkikeys.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/pkikeys.c Wed Mar 17 14:06:45 2004
-+--- misc/build/xmlsec1-1.2.6/src/nss/pkikeys.c Sun Apr 29 08:10:07 2007
- ***************
- *** 5,10 ****
- --- 5,11 ----
-@@ -12579,8 +12647,8 @@
-
- return(8 * SECKEY_PublicKeyStrength(ctx->pubkey));
- }
--*** misc/xmlsec1-1.2.6/src/nss/signatures.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/signatures.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/signatures.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/signatures.c Sun Apr 29 08:10:07 2007
- ***************
- *** 199,205 ****
- xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
-@@ -12717,8 +12785,8 @@
- return(-1);
- }
-
--*** misc/xmlsec1-1.2.6/src/nss/symkeys.c Mon Jul 21 05:12:52 2003
----- misc/build/xmlsec1-1.2.6/src/nss/symkeys.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/symkeys.c Mon Jul 21 12:12:52 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/symkeys.c Sun Apr 29 08:10:07 2007
- ***************
- *** 15,192 ****
- #include <stdio.h>
-@@ -14049,8 +14117,8 @@
- *
- * Sets the value of HMAC key data.
- *
--*** misc/xmlsec1-1.2.6/src/nss/tokens.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/nss/tokens.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/tokens.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/nss/tokens.c Sun Apr 29 08:10:07 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -14599,8 +14667,8 @@
- ! return(0);
- ! }
- !
--*** misc/xmlsec1-1.2.6/src/nss/x509.c Fri Sep 26 05:53:09 2003
----- misc/build/xmlsec1-1.2.6/src/nss/x509.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/x509.c Fri Sep 26 12:53:09 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/x509.c Sun Apr 29 08:10:07 2007
- ***************
- *** 34,40 ****
- #include <xmlsec/keys.h>
-@@ -15708,8 +15776,8 @@
- static void
- xmlSecNssX509CertDebugDump(CERTCertificate* cert, FILE* output) {
- --- 1700,1705 ----
--*** misc/xmlsec1-1.2.6/src/nss/x509vfy.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/x509vfy.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/x509vfy.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/x509vfy.c Sun Apr 29 08:10:07 2007
- ***************
- *** 30,35 ****
- --- 30,36 ----
-@@ -16851,8 +16919,8 @@
-
- + #endif /* XMLSEC_NO_X509 */
-
--*** misc/xmlsec1-1.2.6/win32/Makefile.msvc Wed Jun 9 16:35:12 2004
----- misc/build/xmlsec1-1.2.6/win32/Makefile.msvc Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/win32/Makefile.msvc Wed Jun 9 23:35:12 2004
-+--- misc/build/xmlsec1-1.2.6/win32/Makefile.msvc Sun Apr 29 08:10:07 2007
- ***************
- *** 223,228 ****
- --- 223,232 ----
diff --git a/editors/openoffice.org-3-devel/files/patch-i76320 b/editors/openoffice.org-3-devel/files/patch-i76320
deleted file mode 100644
index bd4639171dde..000000000000
--- a/editors/openoffice.org-3-devel/files/patch-i76320
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: sd/source/ui/inc/tools/ConfigurationAccess.hxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/inc/tools/ConfigurationAccess.hxx,v
-retrieving revision 1.2.8.1
-retrieving revision 1.2
-diff -u -r1.2.8.1 -r1.2
---- sd/source/ui/inc/tools/ConfigurationAccess.hxx 12 Apr 2007 20:30:02 -0000 1.2.8.1
-+++ sd/source/ui/inc/tools/ConfigurationAccess.hxx 3 Apr 2007 16:14:52 -0000 1.2
-@@ -110,7 +110,7 @@
- @param rList
- The list to be filled.
- */
-- static void FillList(
-+ static void ConfigurationAccess::FillList(
- const com::sun::star::uno::Reference<com::sun::star::container::XNameAccess>& rxContainer,
- const ::rtl::OUString& rsArgument,
- ::std::vector<rtl::OUString>& rList);
diff --git a/editors/openoffice.org-3-devel/files/patch-i76968 b/editors/openoffice.org-3-devel/files/patch-i76968
new file mode 100644
index 000000000000..8bf3e43d703d
--- /dev/null
+++ b/editors/openoffice.org-3-devel/files/patch-i76968
@@ -0,0 +1,642 @@
+Sync FreeBSD-specific files with CWS sixtyfour11.
+
+--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/makefile.mk Thu Jan 25 08:27:35 2007
++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/makefile.mk Wed Apr 25 10:57:20 2007
+@@ -52,11 +52,6 @@
+ CFLAGS += -DLEAK_STATIC_DATA
+ .ENDIF
+
+-NOOPTFILES= \
+- $(SLO)$/uno2cpp.obj
+-
+-
+-CFLAGSNOOPT=-O0
+
+ SLOFILES= \
+ $(SLO)$/abi.obj \
+--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx Thu May 3 21:45:19 2007
++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx Wed Apr 25 10:57:33 2007
+@@ -38,6 +38,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <rtl/alloc.h>
+
+ #include <com/sun/star/uno/genfunc.hxx>
+@@ -55,265 +56,188 @@
+ using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+
+-void dummy_can_throw_anything( char const * );
+-
+-// 6 integral parameters are passed in registers
+-const sal_uInt32 GPR_COUNT = 6;
+-
+-// 8 floating point parameters are passed in SSE registers
+-const sal_uInt32 FPR_COUNT = 8;
+-
+-static inline void
+-invoke_count_words(char * pPT, // Parameter Types
+- sal_uInt32 & nr_gpr, // Number of arguments in GPRs
+- sal_uInt32 & nr_fpr, // Number of arguments in FPRs
+- sal_uInt32 & nr_stack) // Number of arguments in stack
+-{
+- nr_gpr = 0;
+- nr_fpr = 0;
+- nr_stack = 0;
+- char c;
+-
+- while ((c = *pPT++) != 'X')
+- {
+- if (c == 'F' || c == 'D')
+- {
+- if (nr_fpr < FPR_COUNT)
+- nr_fpr++;
+- else
+- nr_stack++;
+- }
+- else
+- {
+- if (nr_gpr < GPR_COUNT)
+- nr_gpr++;
+- else
+- nr_stack++;
+- }
+- }
+-}
+-
+-static void
+-invoke_copy_to_stack(sal_uInt64 * pDS, // Stack Storage
+- char * pPT, // Parameter Types
+- sal_uInt64 * pSV, // Source Values
+- sal_uInt64 * pGPR, // General Purpose Registers
+- double * pFPR) // Floating-Point Registers
+-{
+- sal_uInt32 nr_gpr = 0;
+- sal_uInt32 nr_fpr = 0;
+- sal_uInt64 value;
+- char c;
+-
+- while ((c = *pPT++) != 'X')
+- {
+- switch (c)
+- {
+- case 'D': // Double
+- if (nr_fpr < FPR_COUNT)
+- pFPR[nr_fpr++] = *reinterpret_cast<double *>( pSV++ );
+- else
+- *pDS++ = *pSV++;
+- break;
+-
+- case 'F': // Float
+- if (nr_fpr < FPR_COUNT)
+- // The value in %xmm register is already prepared to
+- // be retrieved as a float. Therefore, we pass the
+- // value verbatim, as a double without conversion.
+- pFPR[nr_fpr++] = *reinterpret_cast<double *>( pSV++ );
+- else
+- *pDS++ = *pSV++;
+- break;
+-
+- case 'H': // 64-bit Word
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *pSV++;
+- else
+- *pDS++ = *pSV++;
+- break;
+-
+- case 'I': // 32-bit Word
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *reinterpret_cast<sal_uInt32 *>( pSV++ );
+- else
+- *pDS++ = *reinterpret_cast<sal_uInt32 *>( pSV++ );
+- break;
+-
+- case 'S': // 16-bit Word
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *reinterpret_cast<sal_uInt16 *>( pSV++ );
+- else
+- *pDS++ = *reinterpret_cast<sal_uInt16 *>( pSV++ );
+- break;
+-
+- case 'B': // Byte
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *reinterpret_cast<sal_uInt8 *>( pSV++ );
+- else
+- *pDS++ = *reinterpret_cast<sal_uInt8 *>( pSV++ );
+- break;
+-
+- default: // Default, assume 64-bit values
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *pSV++;
+- else
+- *pDS++ = *pSV++;
+- break;
+- }
+- }
+-}
+-
+ //==================================================================================================
+ static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex,
+- void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn,
+- char * pPT, sal_uInt64 * pStackLongs, sal_uInt32 nStackLongs)
+-{
+- sal_uInt32 nr_gpr, nr_fpr, nr_stack;
+- invoke_count_words(pPT, nr_gpr, nr_fpr, nr_stack);
++ void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn,
++ sal_uInt64 *pStack, sal_uInt32 nStack,
++ sal_uInt64 *pGPR, sal_uInt32 nGPR,
++ double *pFPR, sal_uInt32 nFPR) __attribute__((noinline));
+
+- // Stack, if used, must be 16-bytes aligned
+- if (nr_stack)
+- nr_stack = (nr_stack + 1) & ~1;
+-
++static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex,
++ void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn,
++ sal_uInt64 *pStack, sal_uInt32 nStack,
++ sal_uInt64 *pGPR, sal_uInt32 nGPR,
++ double *pFPR, sal_uInt32 nFPR)
++{
+ #if OSL_DEBUG_LEVEL > 1
+- // Let's figure out what is really going on here
+- fprintf(stderr,"callVirtualMethod() parameters string is %s\n", pPT);
+- {
+- sal_uInt32 k = nStackLongs;
+- sal_uInt64 *q = pStackLongs;
+- while (k > 0)
+- {
+- fprintf(stderr, "uno stack is: %lx\n", *q);
+- k--;
+- q++;
+- }
+- }
+-#endif
+-
+- // Load parameters to stack, if necessary
+- sal_uInt64 *stack = (sal_uInt64 *) __builtin_alloca(nr_stack * 8);
+- sal_uInt64 gpregs[GPR_COUNT];
+- double fpregs[FPR_COUNT];
+- invoke_copy_to_stack(stack, pPT, pStackLongs, gpregs, fpregs);
+-
+- // Load FPR registers from fpregs[]
+- register double d0 asm("xmm0");
+- register double d1 asm("xmm1");
+- register double d2 asm("xmm2");
+- register double d3 asm("xmm3");
+- register double d4 asm("xmm4");
+- register double d5 asm("xmm5");
+- register double d6 asm("xmm6");
+- register double d7 asm("xmm7");
+-
+- switch (nr_fpr) {
+-#define ARG_FPR(N) \
+- case N+1: d##N = fpregs[N];
+- ARG_FPR(7);
+- ARG_FPR(6);
+- ARG_FPR(5);
+- ARG_FPR(4);
+- ARG_FPR(3);
+- ARG_FPR(2);
+- ARG_FPR(1);
+- ARG_FPR(0);
+- case 0:;
+-#undef ARG_FPR
+- }
+-
+- // Load GPR registers from gpregs[]
+- register sal_uInt64 a0 asm("rdi");
+- register sal_uInt64 a1 asm("rsi");
+- register sal_uInt64 a2 asm("rdx");
+- register sal_uInt64 a3 asm("rcx");
+- register sal_uInt64 a4 asm("r8");
+- register sal_uInt64 a5 asm("r9");
+-
+- switch (nr_gpr) {
+-#define ARG_GPR(N) \
+- case N+1: a##N = gpregs[N];
+- ARG_GPR(5);
+- ARG_GPR(4);
+- ARG_GPR(3);
+- ARG_GPR(2);
+- ARG_GPR(1);
+- ARG_GPR(0);
+- case 0:;
+-#undef ARG_GPR
++ // Let's figure out what is really going on here
++ {
++ fprintf( stderr, "= callVirtualMethod() =\nGPR's (%d): ", nGPR );
++ for ( int i = 0; i < nGPR; ++i )
++ fprintf( stderr, "0x%lx, ", pGPR[i] );
++ fprintf( stderr, "\nFPR's (%d): ", nFPR );
++ for ( int i = 0; i < nFPR; ++i )
++ fprintf( stderr, "%f, ", pFPR[i] );
++ fprintf( stderr, "\nStack (%d): ", nStack );
++ for ( int i = 0; i < nStack; ++i )
++ fprintf( stderr, "0x%lx, ", pStack[i] );
++ fprintf( stderr, "\n" );
+ }
++#endif
+
+- if ( bSimpleReturn )
+- a0 = (sal_uInt64) pThis;
+- else
+- a1 = (sal_uInt64) pThis;
+-
+- // Ensure that assignments to SSE registers won't be optimized away
+- asm("" ::
+- "x" (d0), "x" (d1), "x" (d2), "x" (d3),
+- "x" (d4), "x" (d5), "x" (d6), "x" (d7));
++ // The call instruction within the asm section of callVirtualMethod may throw
++ // exceptions. So that the compiler handles this correctly, it is important
++ // that (a) callVirtualMethod might call dummy_can_throw_anything (although this
++ // never happens at runtime), which in turn can throw exceptions, and (b)
++ // callVirtualMethod is not inlined at its call site (so that any exceptions are
++ // caught which are thrown from the instruction calling callVirtualMethod):
++ if ( !pThis )
++ CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything( "xxx" ); // address something
++
++ // Should not happen, but...
++ if ( nFPR > x86_64::MAX_SSE_REGS )
++ nFPR = x86_64::MAX_SSE_REGS;
++ if ( nGPR > x86_64::MAX_GPR_REGS )
++ nGPR = x86_64::MAX_GPR_REGS;
+
+ // Get pointer to method
+ sal_uInt64 pMethod = *((sal_uInt64 *)pThis);
+ pMethod += 8 * nVtableIndex;
+ pMethod = *((sal_uInt64 *)pMethod);
+
+- union ReturnValue {
+- struct {
+- sal_uInt64 rax;
+- sal_uInt64 rdx;
+- } i;
+- struct {
+- double xmm0;
+- double xmm1;
+- } f;
+- };
++ // Load parameters to stack, if necessary
++ if ( nStack )
++ {
++ // 16-bytes aligned
++ sal_uInt32 nStackBytes = ( ( nStack + 1 ) >> 1 ) * 16;
++ sal_uInt64 *pCallStack = (sal_uInt64 *) __builtin_alloca( nStackBytes );
++ memcpy( pCallStack, pStack, nStackBytes );
++ }
+
+- typedef ReturnValue (* FunctionCall )( sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64 );
++ // Return values
++ sal_uInt64 rax;
++ sal_uInt64 rdx;
++ double xmm0;
+
+- // Perform the call
+- ReturnValue aRet = ( ( FunctionCall ) pMethod )( a0, a1, a2, a3, a4, a5 );
++ asm volatile (
++
++ // Fill the xmm registers
++ "movq %2, %%rax\n\t"
+
+- switch (pReturnTypeDescr->eTypeClass)
+- {
+- case typelib_TypeClass_HYPER:
+- case typelib_TypeClass_UNSIGNED_HYPER:
+- *reinterpret_cast<sal_uInt64 *>( pRegisterReturn ) = aRet.i.rax;
+- break;
+- case typelib_TypeClass_LONG:
+- case typelib_TypeClass_UNSIGNED_LONG:
+- case typelib_TypeClass_ENUM:
+- *reinterpret_cast<sal_uInt32 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt32*>( &aRet.i.rax );
+- break;
+- case typelib_TypeClass_CHAR:
+- case typelib_TypeClass_SHORT:
+- case typelib_TypeClass_UNSIGNED_SHORT:
+- *reinterpret_cast<sal_uInt16 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt16*>( &aRet.i.rax );
+- break;
+- case typelib_TypeClass_BOOLEAN:
+- case typelib_TypeClass_BYTE:
+- *reinterpret_cast<sal_uInt8 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt8*>( &aRet.i.rax );
+- break;
+- case typelib_TypeClass_FLOAT:
+- *reinterpret_cast<float *>( pRegisterReturn ) = *reinterpret_cast<float*>( &aRet.f.xmm0 );
+- break;
+- case typelib_TypeClass_DOUBLE:
+- *reinterpret_cast<double *>( pRegisterReturn ) = *reinterpret_cast<double*>( &aRet.f.xmm0 );
+- break;
+- default: {
+- sal_Int32 const nRetSize = pReturnTypeDescr->nSize;
+- if (bSimpleReturn && nRetSize <= 16 && nRetSize > 0) {
+- if (nRetSize > 8)
+- static_cast<sal_uInt64 *>(pRegisterReturn)[1] = aRet.i.rdx;
+- static_cast<sal_uInt64 *>(pRegisterReturn)[0] = aRet.i.rax;
+- }
++ "movsd (%%rax), %%xmm0\n\t"
++ "movsd 8(%%rax), %%xmm1\n\t"
++ "movsd 16(%%rax), %%xmm2\n\t"
++ "movsd 24(%%rax), %%xmm3\n\t"
++ "movsd 32(%%rax), %%xmm4\n\t"
++ "movsd 40(%%rax), %%xmm5\n\t"
++ "movsd 48(%%rax), %%xmm6\n\t"
++ "movsd 56(%%rax), %%xmm7\n\t"
++
++ // Fill the general purpose registers
++ "movq %1, %%rax\n\t"
++
++ "movq (%%rax), %%rdi\n\t"
++ "movq 8(%%rax), %%rsi\n\t"
++ "movq 16(%%rax), %%rdx\n\t"
++ "movq 24(%%rax), %%rcx\n\t"
++ "movq 32(%%rax), %%r8\n\t"
++ "movq 40(%%rax), %%r9\n\t"
++
++ // Perform the call
++ "movq %0, %%r11\n\t"
++ "movq %3, %%rax\n\t"
++ "call *%%r11\n\t"
++
++ // Fill the return values
++ "movq %%rax, %4\n\t"
++ "movq %%rdx, %5\n\t"
++ "movsd %%xmm0, %6\n\t"
++ :
++ : "m" ( pMethod ), "m" ( pGPR ), "m" ( pFPR ), "m" ( nFPR ),
++ "m" ( rax ), "m" ( rdx ), "m" ( xmm0 )
++ : "rax", "rdi", "rsi", "rdx", "rcx", "r8", "r9", "r11"
++ );
++
++ switch (pReturnTypeDescr->eTypeClass)
++ {
++ case typelib_TypeClass_HYPER:
++ case typelib_TypeClass_UNSIGNED_HYPER:
++ *reinterpret_cast<sal_uInt64 *>( pRegisterReturn ) = rax;
+ break;
++ case typelib_TypeClass_LONG:
++ case typelib_TypeClass_UNSIGNED_LONG:
++ case typelib_TypeClass_ENUM:
++ *reinterpret_cast<sal_uInt32 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt32*>( &rax );
++ break;
++ case typelib_TypeClass_CHAR:
++ case typelib_TypeClass_SHORT:
++ case typelib_TypeClass_UNSIGNED_SHORT:
++ *reinterpret_cast<sal_uInt16 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt16*>( &rax );
++ break;
++ case typelib_TypeClass_BOOLEAN:
++ case typelib_TypeClass_BYTE:
++ *reinterpret_cast<sal_uInt8 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt8*>( &rax );
++ break;
++ case typelib_TypeClass_FLOAT:
++ case typelib_TypeClass_DOUBLE:
++ *reinterpret_cast<double *>( pRegisterReturn ) = xmm0;
++ break;
++ default:
++ {
++ sal_Int32 const nRetSize = pReturnTypeDescr->nSize;
++ if (bSimpleReturn && nRetSize <= 16 && nRetSize > 0)
++ {
++ if (nRetSize > 8)
++ static_cast<sal_uInt64 *>(pRegisterReturn)[1] = rdx;
++ static_cast<sal_uInt64 *>(pRegisterReturn)[0] = rax;
++ }
++ break;
++ }
+ }
+- }
+ }
+
++//==================================================================================================
++
++// Macros for easier insertion of values to registers or stack
++// pSV - pointer to the source
++// nr - order of the value [will be increased if stored to register]
++// pFPR, pGPR - pointer to the registers
++// pDS - pointer to the stack [will be increased if stored here]
++
++// The value in %xmm register is already prepared to be retrieved as a float,
++// thus we treat float and double the same
++#define INSERT_FLOAT_DOUBLE( pSV, nr, pFPR, pDS ) \
++ if ( nr < x86_64::MAX_SSE_REGS ) \
++ pFPR[nr++] = *reinterpret_cast<double *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV ); // verbatim!
++
++#define INSERT_INT64( pSV, nr, pGPR, pDS ) \
++ if ( nr < x86_64::MAX_GPR_REGS ) \
++ pGPR[nr++] = *reinterpret_cast<sal_uInt64 *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV );
++
++#define INSERT_INT32( pSV, nr, pGPR, pDS ) \
++ if ( nr < x86_64::MAX_GPR_REGS ) \
++ pGPR[nr++] = *reinterpret_cast<sal_uInt32 *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt32 *>( pSV );
++
++#define INSERT_INT16( pSV, nr, pGPR, pDS ) \
++ if ( nr < x86_64::MAX_GPR_REGS ) \
++ pGPR[nr++] = *reinterpret_cast<sal_uInt16 *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt16 *>( pSV );
++
++#define INSERT_INT8( pSV, nr, pGPR, pDS ) \
++ if ( nr < x86_64::MAX_GPR_REGS ) \
++ pGPR[nr++] = *reinterpret_cast<sal_uInt8 *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt8 *>( pSV );
+
+ //==================================================================================================
++
+ static void cpp_call(
+ bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
+ bridges::cpp_uno::shared::VtableSlot aVtableSlot,
+@@ -322,54 +246,52 @@
+ void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
+ {
+ // Maxium space for [complex ret ptr], values | ptr ...
+- char * pCppStack = (char *)__builtin_alloca( (nParams + 3) * sizeof(sal_uInt64) );
+- char * pCppStackStart = pCppStack;
++ // (but will be used less - some of the values will be in pGPR and pFPR)
++ sal_uInt64 *pStack = (sal_uInt64 *)__builtin_alloca( (nParams + 3) * sizeof(sal_uInt64) );
++ sal_uInt64 *pStackStart = pStack;
+
+- // We need to know parameter types for callVirtualMethod() so generate a signature string
+- char * pParamType = (char *)__builtin_alloca( nParams + 3 );
+- char * pPT = pParamType;
++ sal_uInt64 pGPR[x86_64::MAX_GPR_REGS];
++ sal_uInt32 nGPR = 0;
++
++ double pFPR[x86_64::MAX_SSE_REGS];
++ sal_uInt32 nFPR = 0;
+
+ // Return
+ typelib_TypeDescription * pReturnTypeDescr = 0;
+ TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+ OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+
+- void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
++ void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion (see below)
+
+ bool bSimpleReturn = true;
+- if (pReturnTypeDescr)
++ if ( pReturnTypeDescr )
+ {
+ if ( x86_64::return_in_hidden_param( pReturnTypeRef ) )
+ bSimpleReturn = false;
+
+- if (bSimpleReturn)
++ if ( bSimpleReturn )
+ pCppReturn = pUnoReturn; // direct way for simple types
+ else
+ {
+ // complex return via ptr
+- pCppReturn = *(void **)pCppStack = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
+- ? __builtin_alloca( pReturnTypeDescr->nSize )
+- : pUnoReturn); // direct way
+- *pPT++ = 'H';
+- pCppStack += sizeof(void *);
++ pCppReturn = bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )?
++ __builtin_alloca( pReturnTypeDescr->nSize ) : pUnoReturn;
++ INSERT_INT64( &pCppReturn, nGPR, pGPR, pStack );
+ }
+ }
+
+ // Push "this" pointer
+ void * pAdjustedThisPtr = reinterpret_cast< void ** >( pThis->getCppI() ) + aVtableSlot.offset;
+- *(void **)pCppStack = pAdjustedThisPtr;
+- *pPT++ = 'H';
+- pCppStack += sizeof(void *);
++ INSERT_INT64( &pAdjustedThisPtr, nGPR, pGPR, pStack );
+
+- // stack space
+ // Args
+- void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
++ void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
+ // Indizes of values this have to be converted (interface conversion cpp<=>uno)
+ sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+ // Type descriptions for reconversions
+ typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+
+- sal_Int32 nTempIndizes = 0;
++ sal_Int32 nTempIndizes = 0;
+
+ for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+ {
+@@ -379,45 +301,32 @@
+
+ if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+ {
+- uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
++ uno_copyAndConvertData( pCppArgs[nPos] = alloca( 8 ), pUnoArgs[nPos], pParamTypeDescr,
+ pThis->getBridge()->getUno2Cpp() );
+
+ switch (pParamTypeDescr->eTypeClass)
+ {
+-
+- // we need to know type of each param so that we know whether to use
+- // gpr or fpr to pass in parameters:
+- // Key: I - 32-bit value passed in gpr
+- // B - byte value passed in gpr
+- // S - short value passed in gpr
+- // F - float value pass in fpr
+- // D - double value pass in fpr
+- // H - long value passed in gpr
+- // X - indicates end of parameter description string
+-
++ case typelib_TypeClass_HYPER:
++ case typelib_TypeClass_UNSIGNED_HYPER:
++ INSERT_INT64( pCppArgs[nPos], nGPR, pGPR, pStack );
++ break;
+ case typelib_TypeClass_LONG:
+ case typelib_TypeClass_UNSIGNED_LONG:
+ case typelib_TypeClass_ENUM:
+- *pPT++ = 'I';
++ INSERT_INT32( pCppArgs[nPos], nGPR, pGPR, pStack );
+ break;
+ case typelib_TypeClass_SHORT:
+ case typelib_TypeClass_CHAR:
+ case typelib_TypeClass_UNSIGNED_SHORT:
+- *pPT++ = 'S';
++ INSERT_INT16( pCppArgs[nPos], nGPR, pGPR, pStack );
+ break;
+ case typelib_TypeClass_BOOLEAN:
+ case typelib_TypeClass_BYTE:
+- *pPT++ = 'B';
++ INSERT_INT8( pCppArgs[nPos], nGPR, pGPR, pStack );
+ break;
+ case typelib_TypeClass_FLOAT:
+- *pPT++ = 'F';
+- break;
+ case typelib_TypeClass_DOUBLE:
+- *pPT++ = 'D';
+- break;
+- case typelib_TypeClass_HYPER:
+- case typelib_TypeClass_UNSIGNED_HYPER:
+- *pPT++ = 'H';
++ INSERT_FLOAT_DOUBLE( pCppArgs[nPos], nFPR, pFPR, pStack );
+ break;
+ }
+
+@@ -430,7 +339,7 @@
+ {
+ // cpp out is constructed mem, uno out is not!
+ uno_constructData(
+- *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++ pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+ pParamTypeDescr );
+ pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+ // will be released at reconversion
+@@ -440,7 +349,7 @@
+ else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+ {
+ uno_copyAndConvertData(
+- *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++ pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+ pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() );
+
+ pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+@@ -449,27 +358,22 @@
+ }
+ else // direct way
+ {
+- *(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
++ pCppArgs[nPos] = pUnoArgs[nPos];
+ // no longer needed
+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+ }
+- // FIXME: is this the right way to pass these?
+- *pPT++='H';
++ INSERT_INT64( &(pCppArgs[nPos]), nGPR, pGPR, pStack );
+ }
+- pCppStack += sizeof(sal_uInt64); // standard parameter length
+ }
+
+- // terminate the signature string
+- *pPT++ = 'X';
+- *pPT = 0;
+-
+ try
+ {
+- OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 7), "UNALIGNED STACK !!! (Please DO panic)" );
+ callVirtualMethod(
+ pAdjustedThisPtr, aVtableSlot.index,
+- pCppReturn, pReturnTypeDescr, bSimpleReturn, pParamType,
+- (sal_uInt64 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_uInt64) );
++ pCppReturn, pReturnTypeDescr, bSimpleReturn,
++ pStackStart, ( pStack - pStackStart ),
++ pGPR, nGPR,
++ pFPR, nFPR );
+ // NO exception occured...
+ *ppUnoExc = 0;
+
+@@ -525,8 +429,8 @@
+ }
+ }
+
+-
+ //==================================================================================================
++
+ namespace bridges { namespace cpp_uno { namespace shared {
+
+ void unoInterfaceProxyDispatch(
diff --git a/editors/openoffice.org-3-devel/files/patch-i76969 b/editors/openoffice.org-3-devel/files/patch-i76969
new file mode 100644
index 000000000000..123402727290
--- /dev/null
+++ b/editors/openoffice.org-3-devel/files/patch-i76969
@@ -0,0 +1,40 @@
+Index: solenv/inc/unxfbsd.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/unxfbsd.mk,v
+retrieving revision 1.3
+diff -u -r1.3 unxfbsd.mk
+--- solenv/inc/unxfbsd.mk 9 Mar 2007 09:07:55 -0000 1.3
++++ solenv/inc/unxfbsd.mk 4 May 2007 16:22:53 -0000
+@@ -121,12 +121,6 @@
+ # Compiler flags for debugging
+ CFLAGSDEBUG=-g
+ CFLAGSDBGUTIL=
+-# Compiler flags for enabling optimizations
+-.IF "$(PRODUCT)"!=""
+-CFLAGSOPT=-Os -fno-strict-aliasing # optimizing for products
+-.ELSE # "$(PRODUCT)"!=""
+-CFLAGSOPT= # no optimizing for non products
+-.ENDIF # "$(PRODUCT)"!=""
+ # Compiler flags for disabling optimizations
+ CFLAGSNOOPT=-O0
+ # Compiler flags for describing the output path
+Index: solenv/inc/unxfbsdi.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/unxfbsdi.mk,v
+retrieving revision 1.24
+diff -u -r1.24 unxfbsdi.mk
+--- solenv/inc/unxfbsdi.mk 19 Jul 2006 09:27:04 -0000 1.24
++++ solenv/inc/unxfbsdi.mk 4 May 2007 16:22:53 -0000
+@@ -43,5 +43,12 @@
+ # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
+ ARCH_FLAGS*=-mtune=pentiumpro
+
++# Compiler flags for enabling optimizations
++.IF "$(PRODUCT)"!=""
++CFLAGSOPT=-Os -fno-strict-aliasing # optimizing for products
++.ELSE # "$(PRODUCT)"!=""
++CFLAGSOPT= # no optimizing for non products
++.ENDIF # "$(PRODUCT)"!=""
++
+ # platform specific identifier for shared libs
+ DLLPOSTFIX=fi
diff --git a/editors/openoffice.org-3-devel/files/patch-i77615 b/editors/openoffice.org-3-devel/files/patch-i77615
new file mode 100644
index 000000000000..89fe1aaee7c8
--- /dev/null
+++ b/editors/openoffice.org-3-devel/files/patch-i77615
@@ -0,0 +1,57 @@
+For FreeBSD, libxslt builds libraries as libxslt.so.2 or something
+like that. Following patch fixes this.
+
+Index: libxslt/libxslt-1.1.16.patch
+===================================================================
+RCS file: /cvs/external/libxslt/libxslt-1.1.16.patch,v
+retrieving revision 1.2
+diff -u -r1.2 libxslt-1.1.16.patch
+--- libxslt/libxslt-1.1.16.patch 10 May 2007 13:10:07 -0000 1.2
++++ libxslt/libxslt-1.1.16.patch 20 May 2007 02:35:31 -0000
+@@ -108,3 +108,46 @@
+ !
+ ! exit 0
+
++*** misc/libxslt-1.1.16/ltmain.sh Sun Feb 12 09:50:49 2006
++--- misc/build/libxslt-1.1.16/ltmain.sh Sun May 20 11:34:29 2007
++***************
++*** 3192,3200 ****
++ revision="$number_revision"
++ ;;
++ freebsd-aout|freebsd-elf|sunos)
++! current="$number_major"
++! revision="$number_minor"
++! age="0"
++ ;;
++ irix|nonstopux)
++ current=`expr $number_major + $number_minor - 1`
++--- 3192,3200 ----
++ revision="$number_revision"
++ ;;
++ freebsd-aout|freebsd-elf|sunos)
++! current=`expr $number_major + $number_minor`
++! age="$number_minor"
++! revision="$number_revision"
++ ;;
++ irix|nonstopux)
++ current=`expr $number_major + $number_minor - 1`
++***************
++*** 3267,3274 ****
++ ;;
++
++ freebsd-elf)
++! major=".$current"
++! versuffix=".$current";
++ ;;
++
++ irix | nonstopux)
++--- 3267,3274 ----
++ ;;
++
++ freebsd-elf)
++! major=.`expr $current - $age`
++! versuffix="$major.$age.$revision"
++ ;;
++
++ irix | nonstopux)
++
diff --git a/editors/openoffice.org-3-devel/files/patch-i77793 b/editors/openoffice.org-3-devel/files/patch-i77793
new file mode 100644
index 000000000000..e182b8727409
--- /dev/null
+++ b/editors/openoffice.org-3-devel/files/patch-i77793
@@ -0,0 +1,11 @@
+--- sw/source/core/unocore/unotbl.cxx 2007-05-25 13:02:05.000000000 +0200
++++ sw/source/core/unocore/unotbl.cxx 2007-05-25 13:09:00.000000000 +0200
+@@ -4455,7 +4455,7 @@
+ // now we'll try to get a useful numerical value
+ // from the text in the cell...
+
+- ULONG nFIndex;
++ sal_uInt32 nFIndex;
+ SvNumberFormatter* pNumFormatter = pTblCrsr->GetDoc()->GetNumberFormatter();
+
+ // look for SwTblBoxNumFormat value in parents as well
diff --git a/editors/openoffice.org-3-devel/files/patch-i77829 b/editors/openoffice.org-3-devel/files/patch-i77829
new file mode 100644
index 000000000000..c7be6ab14215
--- /dev/null
+++ b/editors/openoffice.org-3-devel/files/patch-i77829
@@ -0,0 +1,45 @@
+g++42 -fmessage-length=0 -c -Os -fno-strict-aliasing -ftemplate-depth-128 -I. -I../../../unxfbsdi.pro/inc/chcdialogs -I../inc -I../../../source/inc -I../../../inc/pch -I../../../inc/chart2 -I../../../inc -I../../../unx/inc -I../../../unxfbsdi.pro/inc -I. -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/stl -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/external -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solenv/unxfbsdi/inc -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solenv/inc -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/res -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/stl -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solenv/inc/Xp31 -I/usr/local/diablo-jdk1.5.0/include -I/usr/local/diablo-jdk1.5.0/include/freebsd -I/usr/local/diablo-jdk1.5.0/include/bsd -I/usr/local/diablo-jdk1.5.0/include/linux -I/usr/local/diablo-jdk1.5.0/include/native_threads/include -I/usr/local/include -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/offuh -I. -I../../../res -I. -pipe -mtune=pentiumpro -fvisibility-inlines-hidden -g1 -Wall -Wextra -Wendif-labels -Wshadow -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -fpic -DFREEBSD -DUNX -DVCL -DGCC -DC341 -DINTEL -DCVER=C341 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=450 -DHAVE_GCC_VISIBILITY_FEATURE -D__DMAKE -DUNIX -DCPPU_ENV=gcc3 -DGXX_INCLUDE_PATH=/usr/local/lib/gcc-4.2.0/include/c++ -DSUPD=680 -DPRODUCT -DNDEBUG -DPRODUCT_FULL -DOSL_DEBUG_LEVEL=0 -DOPTIMIZE -DCUI -DSOLAR_JAVA -DSRC680=SRC680 -DSHAREDLIB -D_DLL_ -fexceptions -fno-enforce-eh-specs -DEXCEPTIONS_ON -o ../../../unxfbsdi.pro/slo/DataBrowser.o /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx
+In file included from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/cppuhelper/implbase1.hxx:42,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/svtools/transfer.hxx:54,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/svtools/brwbox.hxx:56,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/svtools/editbrowsebox.hxx:69,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.hxx:40,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx:51:
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/rtl/instance.hxx: In static member function 'static Inst*<unnamed>::rtl_Instance<Inst, InstCtor, Guard, GuardCtor, Data, DataCtor>::create(InstCtor, GuardCtor)':
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/rtl/instance.hxx:305: warning: empty body in an else-statement
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/rtl/instance.hxx: In static member function 'static Inst*<unnamed>::rtl_Instance<Inst, InstCtor, Guard, GuardCtor, Data, DataCtor>::create(InstCtor, GuardCtor, DataCtor)':
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/rtl/instance.hxx:329: warning: empty body in an else-statement
+In file included from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx:52:
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowserModel.hxx: At global scope:
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowserModel.hxx:110: error: extra qualification 'chart::DataBrowserModel::' on member 'setCellAny'
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx: In member function 'bool chart::DataBrowser::MaySwapColumns() const':
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx:574: warning: declaration of 'bHasFocus' shadows a member of 'this'
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx: In member function 'void chart::DataBrowser::RenewTable()':
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx:634: warning: declaration of 'nRowCount' shadows a member of 'this'
+dmake: Error code 1, while making '../../../unxfbsdi.pro/slo/DataBrowser.obj'
+---* tg_merge.mk *---
+
+ERROR: Error 65280 occurred while making /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs
+dmake: Error code 1, while making 'build_instsetoo_native'
+---* *---
+*** Error code 255
+
+Stop in /work/ports/editors/openoffice.org-2-devel.
+
+Index: chart2/source/controller/dialogs/DataBrowserModel.hxx
+===================================================================
+RCS file: /cvs/graphics/chart2/source/controller/dialogs/DataBrowserModel.hxx,v
+retrieving revision 1.2
+diff -u -r1.2 DataBrowserModel.hxx
+--- chart2/source/controller/dialogs/DataBrowserModel.hxx 22 May 2007 17:27:59 -0000 1.2
++++ chart2/source/controller/dialogs/DataBrowserModel.hxx 26 May 2007 10:47:37 -0000
+@@ -106,8 +106,7 @@
+ bool setCellNumber( sal_Int32 nAtColumn, sal_Int32 nAtRow, double fValue );
+ /// returns </TRUE> if the text could successfully be set at the given position
+ bool setCellText( sal_Int32 nAtColumn, sal_Int32 nAtRow, const ::rtl::OUString & rText );
+- bool DataBrowserModel::setCellAny( sal_Int32 nAtColumn, sal_Int32 nAtRow,
+- const ::com::sun::star::uno::Any & aValue );
++ bool setCellAny( sal_Int32 nAtColumn, sal_Int32 nAtRow, const ::com::sun::star::uno::Any & aValue );
+
+ sal_Int32 getColumnCount() const;
+ sal_Int32 getMaxRowCount() const;
diff --git a/editors/openoffice.org-vcltesttool/Makefile b/editors/openoffice.org-vcltesttool/Makefile
index e89a244101ec..72f808b2d022 100644
--- a/editors/openoffice.org-vcltesttool/Makefile
+++ b/editors/openoffice.org-vcltesttool/Makefile
@@ -7,10 +7,9 @@
PORTNAME?= openoffice.org
PORTVERSION?= 2.3.${SNAPDATE}
-PORTREVISION= 1
CATEGORIES+= editors java
-MASTER_SITES+= http://openoffice.lunarshells.com/sources/ \
- http://ooopackages.good-day.net/pub/OpenOffice.org/sources/ \
+MASTER_SITES+= http://ooopackages.good-day.net/pub/OpenOffice.org/sources/ \
+ http://openoffice.lunarshells.com/sources/ \
http://ooopackages.good-day.net/pub/OpenOffice.org/cws/:cws \
ftp://ftp.cs.man.ac.uk/pub/toby/gpc/:gpc \
${MASTER_SITE_APACHE:S,%SUBDIR%/,ant/binaries/:antbin,} \
@@ -21,9 +20,6 @@ DISTFILES+= ${OOOSRC} unowinreg.dll:unowinreg
.if defined(WITH_GPC)
DISTFILES+= gpc231.tar.Z:gpc
.endif
-.if defined(WITH_GNUGCJ)
-DISTFILES+= ${ANT_DISTFILE}:antbin
-.endif
EXTRACT_ONLY= ${OOOSRC}
MAINTAINER= openoffice@FreeBSD.org
@@ -53,38 +49,34 @@ USE_PERL5= yes
USE_BZIP2= yes
WITHOUT_CPU_CFLAGS= true
-.if !defined(WITH_GNUGCJ)
USE_JAVA= yes
JAVA_VERSION= 1.4+
JAVA_BUILD= jdk
JAVA_VENDOR= freebsd bsdjava
-.endif
.include <bsd.port.pre.mk>
.include <${FILESDIR}/Makefile.localized>
-ONLY_FOR_ARCHS= i386 amd64
+ONLY_FOR_ARCHS= i386 #amd64
.if ${ARCH} == amd64
-GCC_TARGET= x86_64-portbld-freebsd${OSREL}
FREEBSD_ENV_SET= FreeBSDAMDEnv.Set
.else
-GCC_TARGET= ${ARCH}-portbld-freebsd${OSREL}
FREEBSD_ENV_SET= FreeBSDX86Env.Set
.endif
CODELINE= 680
-MILESTONE?= 211
+MILESTONE?= 213
OOOTAG?= SRC680_m${MILESTONE}
OOOSRC?= OOo_${OOOTAG}_source${EXTRACT_SUFX}
-SNAPDATE= 20070428
+SNAPDATE= 20070525
INSTALLATION_BASEDIR?= openoffice.org-${OOOTAG}
EXECBASE?= openoffice.org-${OOOTAG}
.if defined(WITH_CWS)
INSTALLATION_BASEDIR= openoffice.org-${OOOTAG}-${WITH_CWS}
EXECBASE= openoffice.org-${OOOTAG}-${WITH_CWS}
.endif
-DIST_SUBDIR= openoffice.org2.0
+DIST_SUBDIR= openoffice.org2
SIMPLEOSVER= ${OSREL:C/\.//g}
.if ${ARCH} == amd64
PACKAGE_BASENAME= OOo_${OOOTAG}_${OPSYS}${SIMPLEOSVER}X86_64
@@ -103,39 +95,13 @@ PKGNAMESUFFIX= -${LANG_SUFFIX}
RUN_DEPENDS+= ${LOCALBASE}/share/icons/hicolor/index.theme:${PORTSDIR}/misc/hicolor-icon-theme
-.if defined(WITH_GNUGCJ)
-GCCVER=41
-BUILD_DEPENDS+= ${LOCALBASE}/libdata/ldconfig/gcc41-withgcjawt:${PORTSDIR}/lang/gcc41-withgcjawt
-BUILD_DEPENDS+= ${LOCALBASE}/lib/jvm/java-gcj41/bin/java:${PORTSDIR}/java/java-gcj-compat
-RUN_DEPENDS+= ${LOCALBASE}/libdata/ldconfig/gcc41-withgcjawt:${PORTSDIR}/lang/gcc41-withgcjawt
-RUN_DEPENDS+= ${LOCALBASE}/lib/jvm/java-gcj41/bin/java:${PORTSDIR}/java/java-gcj-compat
-.else
-.if ${ARCH} == amd64
-GCCVER=41
-BUILD_DEPENDS+= gcc41:${PORTSDIR}/lang/gcc41
-RUN_DEPENDS+= gcc41:${PORTSDIR}/lang/gcc41
-.else
-GCCVER=34
-BUILD_DEPENDS+= gcc-ooo:${PORTSDIR}/lang/gcc-ooo
-.endif
-.endif
-
+USE_GCC= 4.2
.if defined(WITH_CCACHE)
BUILD_DEPENDS+= ccache:${PORTSDIR}/devel/ccache
CCACHE_PREFIX= ccache
-.else
-CCACHE_PREFIX=
-.endif
-.if (${GCCVER} == 41)
-CC= gcc41
-CXX= g++41
-.endif
-.if (${GCCVER} == 34)
-CC= gcc-ooo
-CXX= g++-ooo
-.endif
CC:= ${CCACHE_PREFIX} ${CC}
CXX:= ${CCACHE_PREFIX} ${CXX}
+.endif
BUILD_DEPENDS+= zip:${PORTSDIR}/archivers/zip \
unzip:${PORTSDIR}/archivers/unzip \
@@ -144,14 +110,7 @@ BUILD_DEPENDS+= zip:${PORTSDIR}/archivers/zip \
${SITE_PERL}/Archive/Zip.pm:${PORTSDIR}/archivers/p5-Archive-Zip \
bison2:${PORTSDIR}/devel/bison2 \
imake:${X_IMAKE_PORT}
-.if defined(WITH_GNUGCJ)
-LIB_DEPENDS+= xslt.2:${PORTSDIR}/textproc/libxslt
-LIB_DEPENDS+= xml2.5:${PORTSDIR}/textproc/libxml2
-ANT_DISTFILE= apache-ant-${ANT_VERSION}-bin.tar.bz2
-ANT_VERSION= 1.6.5
-.else
BUILD_DEPENDS+= ant:${PORTSDIR}/devel/apache-ant
-.endif
.if !defined(WITH_GPC)
LIB_DEPENDS+= art_lgpl_2:${PORTSDIR}/graphics/libart_lgpl
.endif
@@ -162,28 +121,20 @@ CONFIGURE_WRKSRC= ${WRKSRC}/config_office
TCSH?= /bin/tcsh
PKGMESSAGE= ${WRKDIR}/pkg-message
NUMOFPROCESSES?= 1
-.if defined(WITH_GNUGCJ)
-CONFIGURE_ENV+= PATH="${LOCALBASE}/lib/jvm/java-gcj41/bin:${PATH}"
-.endif
CONFIGURE_ARGS+= --with-gnu-cp=${LOCALBASE}/bin/gcp \
--with-gnu-patch=${LOCALBASE}/bin/gpatch \
--enable-crashdump=yes \
--enable-symbols=SMALL
-.if ${ARCH} == amd64 || ${GCCVER} == 41
+.if ${ARCH} == amd64
WITHOUT_MOZILLA= yes
.endif
-.if (${GCCVER} == 41)
-LIB_DEPENDS+= boost_regex:${PORTSDIR}/devel/boost
-CONFIGURE_ARGS+= --with-system-boost=yes #i58343#
-.endif
+#LIB_DEPENDS+= boost_regex:${PORTSDIR}/devel/boost
+#CONFIGURE_ARGS+= --with-system-boost=yes #i58343#
.if (${OSVERSION} <= 602102)
EXTRA_PATCHES+= ${FILESDIR}/rtld-workaround-i66667
.endif
-.if defined(WITH_GNUGCJ)
-EXTRA_PATCHES+= ${FILESDIR}/gcj-fbsdworkaround
-.endif
.if !defined(WITH_SYSTEM_FREETYPE) && defined(WITH_TTF_BYTECODE_ENABLED)
EXTRA_PATCHES+= ${FILESDIR}/optpatch-freetype
.endif
@@ -214,9 +165,6 @@ post-extract:
.if defined(WITH_CWS)
cd ${WRKSRC} ; ${TAR} xvfz ${DISTDIR}/${DIST_SUBDIR}/${CWSARCHIVE}
.endif
-.if defined(WITH_GNUGCJ)
- @cd ${WRKDIR} ; ${CAT} ${DISTDIR}/${DIST_SUBDIR}/${ANT_DISTFILE} | ${BZIP2_CMD} -d | ${TAR} xf -
-.endif
.if defined(WITH_GPC)
@cd ${WRKDIR} ; ${CAT} ${DISTDIR}/${DIST_SUBDIR}/gpc231.tar.Z | ${TAR} xfz -
@${CP} ${WRKDIR}/gpc231/gpc.c ${WRKSRC}/external/gpc/
diff --git a/editors/openoffice.org-vcltesttool/distinfo b/editors/openoffice.org-vcltesttool/distinfo
index 66910c96a1a5..b95fc19e9a46 100644
--- a/editors/openoffice.org-vcltesttool/distinfo
+++ b/editors/openoffice.org-vcltesttool/distinfo
@@ -1,15 +1,12 @@
-MD5 (openoffice.org2.0/OOo_SRC680_m211_source.tar.bz2) = 1a45342987e7b9137da1fca8ec1a763a
-SHA256 (openoffice.org2.0/OOo_SRC680_m211_source.tar.bz2) = 8321544ec8d9f74ec7a620dcbee6dbf447713c86548a539eb7ce05e8f1ddeaa6
-SIZE (openoffice.org2.0/OOo_SRC680_m211_source.tar.bz2) = 272054401
-MD5 (openoffice.org2.0/unowinreg.dll) = e3a0b76dcd876f3d721ee7183729153d
-SHA256 (openoffice.org2.0/unowinreg.dll) = f563e522922133db9340b0306711c2d8767cc3481dd9e7d9b0d059906d12653c
-SIZE (openoffice.org2.0/unowinreg.dll) = 6144
-MD5 (openoffice.org2.0/gpc231.tar.Z) = fdb06fdb5a4670b172f9fb738b717be9
-SHA256 (openoffice.org2.0/gpc231.tar.Z) = c1265948554a9882fe8342ecc9ccbdb423321a572a5a6b56f7dfad389540da4e
-SIZE (openoffice.org2.0/gpc231.tar.Z) = 27917
-MD5 (openoffice.org2.0/apache-ant-1.6.5-bin.tar.bz2) = 26031ee1a2fd248ad0cc2e7f17c44c39
-SHA256 (openoffice.org2.0/apache-ant-1.6.5-bin.tar.bz2) = d463b8259cb199cd26799c817756c73e4e7808b0cf915f86841ac9779e0f9936
-SIZE (openoffice.org2.0/apache-ant-1.6.5-bin.tar.bz2) = 6743024
-MD5 (openoffice.org2.0/mozilla-source-1.7.5.tar.gz) = d3f3528b6c5eade402ed058207cffa14
-SHA256 (openoffice.org2.0/mozilla-source-1.7.5.tar.gz) = 3e252bab95ecad3016b72fa594e0c44b9633d8c7b6af187e088a092019b56445
-SIZE (openoffice.org2.0/mozilla-source-1.7.5.tar.gz) = 38721366
+MD5 (openoffice.org2/OOo_SRC680_m213_source.tar.bz2) = 7120d049a1aa1801205d574abd1c77fd
+SHA256 (openoffice.org2/OOo_SRC680_m213_source.tar.bz2) = 1f8edbecfa3e9c2122c2f3a0acbcd4c52620a86e5b1c06d93b04cce34b49ca7d
+SIZE (openoffice.org2/OOo_SRC680_m213_source.tar.bz2) = 270389079
+MD5 (openoffice.org2/unowinreg.dll) = e3a0b76dcd876f3d721ee7183729153d
+SHA256 (openoffice.org2/unowinreg.dll) = f563e522922133db9340b0306711c2d8767cc3481dd9e7d9b0d059906d12653c
+SIZE (openoffice.org2/unowinreg.dll) = 6144
+MD5 (openoffice.org2/gpc231.tar.Z) = fdb06fdb5a4670b172f9fb738b717be9
+SHA256 (openoffice.org2/gpc231.tar.Z) = c1265948554a9882fe8342ecc9ccbdb423321a572a5a6b56f7dfad389540da4e
+SIZE (openoffice.org2/gpc231.tar.Z) = 27917
+MD5 (openoffice.org2/mozilla-source-1.7.5.tar.gz) = d3f3528b6c5eade402ed058207cffa14
+SHA256 (openoffice.org2/mozilla-source-1.7.5.tar.gz) = 3e252bab95ecad3016b72fa594e0c44b9633d8c7b6af187e088a092019b56445
+SIZE (openoffice.org2/mozilla-source-1.7.5.tar.gz) = 38721366
diff --git a/editors/openoffice.org-vcltesttool/files/Makefile.knobs b/editors/openoffice.org-vcltesttool/files/Makefile.knobs
index 231af9477271..deb2059d1b29 100644
--- a/editors/openoffice.org-vcltesttool/files/Makefile.knobs
+++ b/editors/openoffice.org-vcltesttool/files/Makefile.knobs
@@ -2,10 +2,11 @@
# Whom: Maho Nakata <maho@FreeBSD.org>
# $FreeBSD$
-.if !defined(WITH_GNUGCJ)
CONFIGURE_ARGS+= --with-jdk-home="${JAVA_HOME}" --with-ant-home="${LOCALBASE}/share/java/apache-ant"
-.else
-CONFIGURE_ARGS+= --with-jdk-home="${LOCALBASE}/lib/jvm/java-gcj41" --with-java=gij --with-ant-home="${WRKDIR}/apache-ant-${ANT_VERSION}"
+
+.if defined(WITH_VBA)
+CONFIGURE_ARGS+= --enable-vba --with-vba-package-format="builtin"
+EXTRA_PATCHES+= ${FILESDIR}/cws-npower7.diff
.endif
.if defined(WITH_KDE)
@@ -92,6 +93,11 @@ pre-fetch:
@${ECHO} "You can compile OOo without gnome VFS support with"
@${ECHO} "make -DWITHOUT_GNOMEVFS"
.endif
+.if !defined(WITH_VBA)
+ @${ECHO}
+ @${ECHO} "You can compile OOo with VBA support with"
+ @${ECHO} "make -DWITH_VBA"
+.endif
.if !defined(WITH_SYSTEM_FREETYPE)
@${ECHO}
@${ECHO} "You can compile OOo with freetype2 from ports with"
@@ -120,11 +126,6 @@ pre-fetch:
@${ECHO} "zh-CN zh-TW zu"
@${ECHO} "Default: en-US"
.endif
-.if !defined(WITH_GNUGCJ)
- @${ECHO}
- @${ECHO} "You can compile OOo with GNU GCJ instead of SUN's JDK with"
- @${ECHO} "make -DWITH_GNUGCJ"
-.endif
.if !defined(WITH_CUPS)
@${ECHO}
@${ECHO} "You can compile OOo with CUPS support with"
diff --git a/editors/openoffice.org-vcltesttool/files/cws-npower7.diff b/editors/openoffice.org-vcltesttool/files/cws-npower7.diff
new file mode 100644
index 000000000000..cf8ccac2d39e
--- /dev/null
+++ b/editors/openoffice.org-vcltesttool/files/cws-npower7.diff
@@ -0,0 +1,1833 @@
+cvs diff: Diffing basic
+cvs diff: Diffing basic/inc
+cvs diff: Diffing basic/inc/basic
+Index: basic/inc/basic/basmgr.hxx
+===================================================================
+RCS file: /cvs/script/basic/inc/basic/basmgr.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.12.1
+diff -u -p -r1.2 -r1.2.12.1
+--- basic/inc/basic/basmgr.hxx 11 Apr 2007 12:50:02 -0000 1.2
++++ basic/inc/basic/basmgr.hxx 2 May 2007 09:44:21 -0000 1.2.12.1
+@@ -167,6 +167,7 @@ private:
+ String aName;
+ String maStorageName;
+ BOOL bBasMgrModified;
++ BOOL mbDocMgr;
+
+ BasicManagerImpl* mpImpl;
+
+@@ -190,8 +191,8 @@ protected:
+
+ public:
+ TYPEINFO();
+- BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBASIC* pParentFromStdLib = NULL, String* pLibPath = NULL );
+- BasicManager( StarBASIC* pStdLib, String* pLibPath = NULL );
++ BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBASIC* pParentFromStdLib = NULL, String* pLibPath = NULL, BOOL bDocMgr = FALSE );
++ BasicManager( StarBASIC* pStdLib, String* pLibPath = NULL, BOOL bDocMgr = FALSE );
+
+ /** deletes the given BasicManager instance
+
+Index: basic/inc/basic/sbstar.hxx
+===================================================================
+RCS file: /cvs/script/basic/inc/basic/sbstar.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.12.1
+diff -u -p -r1.2 -r1.2.12.1
+--- basic/inc/basic/sbstar.hxx 11 Apr 2007 12:52:47 -0000 1.2
++++ basic/inc/basic/sbstar.hxx 2 May 2007 09:44:21 -0000 1.2.12.1
+@@ -81,6 +81,7 @@ class StarBASIC : public SbxObject
+ Link aBreakHdl; // Breakpoint-Handler
+ BOOL bNoRtl; // TRUE: RTL nicht durchsuchen
+ BOOL bBreak; // TRUE: Break, sonst Step
++ BOOL bDocBasic;
+ BasicLibInfo* pLibInfo; // Infoblock fuer Basic-Manager
+ SbLanguageMode eLanguageMode; // LanguageMode des Basic-Objekts
+ protected:
+@@ -104,7 +105,7 @@ public:
+ SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_BASIC,1);
+ TYPEINFO();
+
+- StarBASIC( StarBASIC* pParent = NULL );
++ StarBASIC( StarBASIC* pParent = NULL, BOOL bIsDocBasic = FALSE );
+
+ // #51727 SetModified ueberladen, damit der Modified-
+ // Zustand nicht an den Parent weitergegeben wird.
+@@ -203,6 +204,7 @@ public:
+ static void StaticEnableReschedule( BOOL bReschedule );
+
+ SbxObjectRef getRTL( void ) { return pRtl; }
++ BOOL IsDocBasic() { return bDocBasic; }
+ };
+
+ #ifndef __SB_SBSTARBASICREF_HXX
+Index: basic/inc/basic/sbx.hxx
+===================================================================
+RCS file: /cvs/script/basic/inc/basic/sbx.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.12.1
+diff -u -p -r1.2 -r1.2.12.1
+--- basic/inc/basic/sbx.hxx 11 Apr 2007 12:53:21 -0000 1.2
++++ basic/inc/basic/sbx.hxx 2 May 2007 09:44:42 -0000 1.2.12.1
+@@ -263,6 +263,7 @@ class SbxDimArray : public SbxArray
+ SbxDim* pFirst, *pLast; // Links fuer Dimension-Tabelle
+ short nDim; // Anzahl Dimensionen
+ void AddDimImpl32( INT32, INT32, BOOL bAllowSize0 );
++ bool mbHasFixedSize;
+ protected:
+ USHORT Offset( const short* );
+ UINT32 Offset32( const INT32* );
+@@ -302,6 +303,8 @@ public:
+ void AddDim32( INT32, INT32 );
+ void unoAddDim32( INT32, INT32 );
+ BOOL GetDim32( INT32, INT32&, INT32& ) const;
++ bool hasFixedSize() { return mbHasFixedSize; };
++ void setHasFixedSize( bool bHasFixedSize ) {mbHasFixedSize = bHasFixedSize; };
+ };
+
+ #endif
+cvs diff: Diffing basic/inc/pch
+cvs diff: Diffing basic/prj
+cvs diff: Diffing basic/source
+cvs diff: Diffing basic/source/app
+cvs diff: Diffing basic/source/basmgr
+Index: basic/source/basmgr/basicmanagerrepository.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/basmgr/basicmanagerrepository.cxx,v
+retrieving revision 1.4
+retrieving revision 1.4.14.1
+diff -u -p -r1.4 -r1.4.14.1
+--- basic/source/basmgr/basicmanagerrepository.cxx 15 Mar 2007 15:37:48 -0000 1.4
++++ basic/source/basmgr/basicmanagerrepository.cxx 2 May 2007 09:44:21 -0000 1.4.14.1
+@@ -491,7 +491,7 @@ namespace basic
+ SotStorageRef xDummyStor = new SotStorage( ::rtl::OUString() );
+ pBasicManager = new BasicManager( *xDummyStor, String() /* TODO/LATER: xStorage */,
+ pAppBasic,
+- &aAppBasicDir );
++ &aAppBasicDir, TRUE );
+ if ( pBasicManager->HasErrors() )
+ {
+ // handle errors
+@@ -517,7 +517,7 @@ namespace basic
+ // create new BASIC-manager
+ StarBASIC* pBasic = new StarBASIC( pAppBasic );
+ pBasic->SetFlag( SBX_EXTSEARCH );
+- pBasicManager = new BasicManager( pBasic );
++ pBasicManager = new BasicManager( pBasic, NULL, TRUE );
+ }
+
+ // knit the containers with the BasicManager
+Index: basic/source/basmgr/basmgr.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/basmgr/basmgr.cxx,v
+retrieving revision 1.39
+retrieving revision 1.39.2.1
+diff -u -p -r1.39 -r1.39.2.1
+--- basic/source/basmgr/basmgr.cxx 26 Apr 2007 08:32:47 -0000 1.39
++++ basic/source/basmgr/basmgr.cxx 2 May 2007 09:44:21 -0000 1.39.2.1
+@@ -685,7 +685,7 @@ void BasicLibInfo::CalcRelStorageName( c
+ else
+ SetRelStorageName( String() );
+ }
+-BasicManager::BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBASIC* pParentFromStdLib, String* pLibPath )
++BasicManager::BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBASIC* pParentFromStdLib, String* pLibPath, BOOL bDocMgr ) : mbDocMgr( bDocMgr )
+ {
+ DBG_CTOR( BasicManager, 0 );
+
+@@ -714,7 +714,7 @@ BasicManager::BasicManager( SotStorage&
+ if ( !pStdLib )
+ {
+ // Sollte eigentlich nie passieren, aber dann wenigstens nicht abstuerzen...
+- pStdLib = new StarBASIC;
++ pStdLib = new StarBASIC( NULL, mbDocMgr );
+ BasicLibInfo* pStdLibInfo = pLibs->GetObject( 0 );
+ if ( !pStdLibInfo )
+ pStdLibInfo = CreateLibInfo();
+@@ -895,7 +895,7 @@ void BasicManager::SetLibraryContainerIn
+ InsertGlobalUNOConstant( "DialogLibraries", makeAny( mpImpl->maContainerInfo.mxDialogCont ) );
+ }
+
+-BasicManager::BasicManager( StarBASIC* pSLib, String* pLibPath )
++BasicManager::BasicManager( StarBASIC* pSLib, String* pLibPath, BOOL bDocMgr ) : mbDocMgr( bDocMgr )
+ {
+ DBG_CTOR( BasicManager, 0 );
+ Init();
+@@ -936,7 +936,7 @@ void BasicManager::ImpMgrNotLoaded( cons
+
+ // Eine STD-Lib erzeugen, sonst macht es Peng!
+ BasicLibInfo* pStdLibInfo = CreateLibInfo();
+- pStdLibInfo->SetLib( new StarBASIC );
++ pStdLibInfo->SetLib( new StarBASIC( NULL, mbDocMgr ) );
+ StarBASICRef xStdLib = pStdLibInfo->GetLib();
+ xStdLib->SetName( String::CreateFromAscii(szStdLibName) );
+ pStdLibInfo->SetLibName( String::CreateFromAscii(szStdLibName) );
+@@ -948,7 +948,7 @@ void BasicManager::ImpMgrNotLoaded( cons
+ void BasicManager::ImpCreateStdLib( StarBASIC* pParentFromStdLib )
+ {
+ BasicLibInfo* pStdLibInfo = CreateLibInfo();
+- StarBASIC* pStdLib = new StarBASIC( pParentFromStdLib );
++ StarBASIC* pStdLib = new StarBASIC( pParentFromStdLib, mbDocMgr );
+ pStdLibInfo->SetLib( pStdLib );
+ pStdLib->SetName( String::CreateFromAscii(szStdLibName) );
+ pStdLibInfo->SetLibName( String::CreateFromAscii(szStdLibName) );
+@@ -1237,7 +1237,7 @@ BOOL BasicManager::ImpLoadLibary( BasicL
+ if ( !bInfosOnly )
+ {
+ if ( !pLibInfo->GetLib().Is() )
+- pLibInfo->SetLib( new StarBASIC( GetStdLib() ) );
++ pLibInfo->SetLib( new StarBASIC( GetStdLib(), mbDocMgr ) );
+ xBasicStream->SetBufferSize( 1024 );
+ xBasicStream->Seek( STREAM_SEEK_TO_BEGIN );
+ bLoaded = ImplLoadBasic( *xBasicStream, pLibInfo->GetLibRef() );
+@@ -1660,7 +1660,7 @@ StarBASIC* BasicManager::CreateLib( cons
+ return 0;
+
+ BasicLibInfo* pLibInfo = CreateLibInfo();
+- StarBASIC* pNew = new StarBASIC( GetStdLib() );
++ StarBASIC* pNew = new StarBASIC( GetStdLib(), mbDocMgr );
+ GetStdLib()->Insert( pNew );
+ pNew->SetFlag( SBX_EXTSEARCH | SBX_DONTSTORE );
+ pLibInfo->SetLib( pNew );
+@@ -1718,7 +1718,7 @@ StarBASIC* BasicManager::CreateLibForLib
+ return 0;
+
+ BasicLibInfo* pLibInfo = CreateLibInfo();
+- StarBASIC* pNew = new StarBASIC( GetStdLib() );
++ StarBASIC* pNew = new StarBASIC( GetStdLib(), mbDocMgr );
+ GetStdLib()->Insert( pNew );
+ pNew->SetFlag( SBX_EXTSEARCH | SBX_DONTSTORE );
+ pLibInfo->SetLib( pNew );
+cvs diff: Diffing basic/source/classes
+Index: basic/source/classes/sb.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/classes/sb.cxx,v
+retrieving revision 1.31
+retrieving revision 1.31.2.1
+diff -u -p -r1.31 -r1.31.2.1
+--- basic/source/classes/sb.cxx 26 Apr 2007 08:33:02 -0000 1.31
++++ basic/source/classes/sb.cxx 2 May 2007 09:44:21 -0000 1.31.2.1
+@@ -660,8 +660,8 @@ SbModule* SbClassFactory::FindClass( con
+
+ ////////////////////////////////////////////////////////////////////////////
+
+-StarBASIC::StarBASIC( StarBASIC* p )
+- : SbxObject( String( RTL_CONSTASCII_USTRINGPARAM("StarBASIC") ) )
++StarBASIC::StarBASIC( StarBASIC* p, BOOL bIsDocBasic )
++ : SbxObject( String( RTL_CONSTASCII_USTRINGPARAM("StarBASIC") ) ), bDocBasic( bIsDocBasic )
+ {
+ SetParent( p );
+ pLibInfo = NULL;
+Index: basic/source/classes/sbunoobj.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/classes/sbunoobj.cxx,v
+retrieving revision 1.46
+retrieving revision 1.46.6.5
+diff -u -p -r1.46 -r1.46.6.5
+--- basic/source/classes/sbunoobj.cxx 29 Jan 2007 15:05:07 -0000 1.46
++++ basic/source/classes/sbunoobj.cxx 9 May 2007 15:49:15 -0000 1.46.6.5
+@@ -110,6 +110,9 @@ using namespace rtl;
+ #include<runtime.hxx>
+
+ #include<math.h>
++#include <hash_map>
++#include <com/sun/star/reflection/XTypeDescriptionEnumerationAccess.hpp>
++#include <com/sun/star/reflection/XConstantsTypeDescription.hpp>
+
+ TYPEINIT1(SbUnoMethod,SbxMethod)
+ TYPEINIT1(SbUnoProperty,SbxProperty)
+@@ -130,6 +133,7 @@ static String ID_DBG_METHODS( RTL_CONSTA
+ static String aIllegalArgumentExceptionName
+ ( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.lang.IllegalArgumentException" ) );
+ static OUString aSeqLevelStr( RTL_CONSTASCII_USTRINGPARAM("[]") );
++static OUString defaultNameSpace( RTL_CONSTASCII_USTRINGPARAM("org.openoffice") );
+
+ // Gets the default property for an uno object. Note: There is some
+ // redirection built in. The property name specifies the name
+@@ -1510,6 +1514,50 @@ String getBasicObjectTypeName( SbxObject
+ return aName;
+ }
+
++bool checkUnoObjectType( SbUnoObject* pUnoObj,
++ const String& aClass )
++{
++ bool result = false;
++ Any aToInspectObj = pUnoObj->getUnoAny();
++ TypeClass eType = aToInspectObj.getValueType().getTypeClass();
++ if( eType != TypeClass_INTERFACE )
++ return false;
++ const Reference< XInterface > x = *(Reference< XInterface >*)aToInspectObj.getValue();
++ Reference< XTypeProvider > xTypeProvider( x, UNO_QUERY );
++ if( xTypeProvider.is() )
++ {
++ Sequence< Type > aTypeSeq = xTypeProvider->getTypes();
++ const Type* pTypeArray = aTypeSeq.getConstArray();
++ UINT32 nIfaceCount = aTypeSeq.getLength();
++ for( UINT32 j = 0 ; j < nIfaceCount ; j++ )
++ {
++ const Type& rType = pTypeArray[j];
++
++ Reference<XIdlClass> xClass = TypeToIdlClass( rType );
++ if( !xClass.is() )
++ {
++ DBG_ERROR("failed to get XIdlClass for type");
++ break;
++ }
++ OUString sClassName = xClass->getName();
++ OSL_TRACE("Checking if object implements %s",
++ OUStringToOString( defaultNameSpace + aClass,
++ RTL_TEXTENCODING_UTF8 ).getStr() );
++ // although interfaces in the org.openoffice.vba namespace
++ // obey the idl rules and have a leading X, in basic we
++ // want to be able to do something like
++ // 'dim wrkbooks as WorkBooks'
++ // so test assumes the 'X' has been dropped
++ sal_Int32 indexLastDot = sClassName.lastIndexOf('.');
++ if ( indexLastDot > -1 && sClassName.copy( indexLastDot + 1).equalsIgnoreAsciiCase( OUString( RTL_CONSTASCII_USTRINGPARAM("X") ) + aClass ) )
++ {
++ result = true;
++ break;
++ }
++ }
++ }
++ return result;
++}
+
+ // Dbg-Hilfsmethode zum Auslesen der in einem Object implementierten Interfaces
+ String Impl_GetSupportedInterfaces( SbUnoObject* pUnoObj )
+@@ -3066,6 +3114,83 @@ void RTL_Impl_EqualUnoObjects( StarBASIC
+ refVar->PutBool( TRUE );
+ }
+
++typedef std::hash_map< OUString, std::vector< OUString >, OUStringHash, ::std::equal_to< OUString > > ModuleHash;
++
++
++// helper wrapper function to interact with TypeProvider and
++// XTypeDescriptionEnumerationAccess.
++// if it fails for whatever reason
++// returned Reference<> be null e.g. .is() will be false
++
++Reference< XTypeDescriptionEnumeration >
++getTypeDescriptorEnumeration( const OUString& sSearchRoot,
++ const Sequence< TypeClass >& types, TypeDescriptionSearchDepth depth )
++{
++ Reference< XTypeDescriptionEnumeration > xEnum;
++ Reference< XTypeDescriptionEnumerationAccess> xTypeEnumAccess( getTypeProvider_Impl(), UNO_QUERY );
++ if ( xTypeEnumAccess.is() )
++ {
++ try
++ {
++ xEnum = xTypeEnumAccess->createTypeDescriptionEnumeration(
++ sSearchRoot, types, depth );
++ }
++ catch( NoSuchTypeNameException& /*nstne*/ ) {}
++ catch( InvalidTypeNameException& /*nstne*/ ) {}
++ }
++ return xEnum;
++}
++
++typedef std::hash_map< OUString, Any, OUStringHash, ::std::equal_to< OUString > > VBAConstantsHash;
++
++SbxVariable* getVBAConstant( const String& rName )
++{
++ SbxVariable* pConst = NULL;
++ static VBAConstantsHash aConstCache;
++ static bool isInited = false;
++ if ( !isInited )
++ {
++ Sequence< TypeClass > types(1);
++ types[ 0 ] = TypeClass_CONSTANTS;
++ Reference< XTypeDescriptionEnumeration > xEnum = getTypeDescriptorEnumeration( defaultNameSpace, types, TypeDescriptionSearchDepth_INFINITE );
++
++ if ( !xEnum.is() )
++ return NULL;
++
++ while ( xEnum->hasMoreElements() )
++ {
++ Reference< XConstantsTypeDescription > xConstants( xEnum->nextElement(), UNO_QUERY );
++ if ( xConstants.is() )
++ {
++ Sequence< Reference< XConstantTypeDescription > > aConsts = xConstants->getConstants();
++ Reference< XConstantTypeDescription >* pSrc = aConsts.getArray();
++ sal_Int32 nLen = aConsts.getLength();
++ for ( sal_Int32 index =0; index<nLen; ++pSrc, ++index )
++ {
++ Reference< XConstantTypeDescription >& rXConst =
++ *pSrc;
++ OUString sFullName = rXConst->getName();
++ sal_Int32 indexLastDot = sFullName.lastIndexOf('.');
++ OUString sLeafName;
++ if ( indexLastDot > -1 )
++ sLeafName = sFullName.copy( indexLastDot + 1);
++ aConstCache[ sLeafName.toAsciiLowerCase() ] = rXConst->getConstantValue();
++ }
++ }
++ }
++ isInited = true;
++ }
++ OUString sKey( rName );
++ VBAConstantsHash::const_iterator it = aConstCache.find( sKey.toAsciiLowerCase() );
++ if ( it != aConstCache.end() )
++ {
++ pConst = new SbxVariable( SbxVARIANT );
++ pConst->SetName( rName );
++ unoToSbxValue( pConst, it->second );
++ }
++ return pConst;
++}
++
+ // Funktion, um einen globalen Bezeichner im
+ // UnoScope zu suchen und fuer Sbx zu wrappen
+ SbxVariable* findUnoClass( const String& rName )
+Index: basic/source/classes/sbxmod.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/classes/sbxmod.cxx,v
+retrieving revision 1.36
+retrieving revision 1.36.42.3
+diff -u -p -r1.36 -r1.36.42.3
+--- basic/source/classes/sbxmod.cxx 3 Nov 2006 15:10:25 -0000 1.36
++++ basic/source/classes/sbxmod.cxx 2 May 2007 09:44:42 -0000 1.36.42.3
+@@ -166,7 +166,8 @@ static const char* strListBasicKeyWords[
+ "integer",
+ "is",
+ "let",
+- "lib"
++ "lib",
++ "like",
+ "line",
+ "line input",
+ "local",
+@@ -544,7 +545,8 @@ void SbModule::SetSource32( const ::rtl:
+ if( eCurTok == OPTION )
+ {
+ eCurTok = aTok.Next();
+- if( eCurTok == COMPATIBLE )
++ if( eCurTok == COMPATIBLE
++ || ( ( eCurTok == VBASUPPORT ) && ( aTok.Next() == NUMBER ) && ( aTok.GetDbl()== 1 ) ) )
+ aTok.SetCompatible( true );
+ }
+ }
+@@ -756,7 +758,10 @@ USHORT SbModule::Run( SbMethod* pMeth )
+ pRt->pNext->block();
+ pINST->pRun = pRt;
+ if ( SbiRuntime ::isVBAEnabled() )
++ {
+ pINST->EnableCompatibility( TRUE );
++ pRt->SetVBAEnabled( true );
++ }
+ while( pRt->Step() ) {}
+ if( pRt->pNext )
+ pRt->pNext->unblock();
+cvs diff: Diffing basic/source/comp
+Index: basic/source/comp/codegen.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/codegen.cxx,v
+retrieving revision 1.16
+retrieving revision 1.16.42.1
+diff -u -p -r1.16 -r1.16.42.1
+--- basic/source/comp/codegen.cxx 3 Nov 2006 15:11:02 -0000 1.16
++++ basic/source/comp/codegen.cxx 2 May 2007 09:45:21 -0000 1.16.42.1
+@@ -135,7 +135,7 @@ void SbiCodeGen::Save()
+ // OPTION EXPLICIT-Flag uebernehmen
+ if( pParser->bExplicit )
+ p->SetFlag( SBIMG_EXPLICIT );
+- if( pParser->bVBASupportOn )
++ if( pParser->IsVBASupportOn() )
+ p->SetFlag( SBIMG_VBASUPPORT );
+
+ int nIfaceCount = 0;
+Index: basic/source/comp/dim.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/dim.cxx,v
+retrieving revision 1.26
+retrieving revision 1.26.42.2
+diff -u -p -r1.26 -r1.26.42.2
+--- basic/source/comp/dim.cxx 1 Nov 2006 16:13:55 -0000 1.26
++++ basic/source/comp/dim.cxx 2 May 2007 09:44:56 -0000 1.26.42.2
+@@ -203,6 +203,10 @@ void SbiParser::DefVar( SbiOpcode eOp, B
+ if( eCurTok == GLOBAL )
+ bPersistantGlobal = TRUE;
+ }
++ // behavior in VBA is that a module scope variable's lifetime is
++ // tied to the document. e.g. a module scope variable is global
++ if( GetBasic()->IsDocBasic() && bVBASupportOn && !pProc )
++ bPersistantGlobal = TRUE;
+ // PRIVATE ist Synonym fuer DIM
+ // _CONST_?
+ BOOL bConst = FALSE;
+@@ -334,7 +338,7 @@ void SbiParser::DefVar( SbiOpcode eOp, B
+ {
+ case SbGLOBAL: eOp2 = bPersistantGlobal ? _GLOBAL_P : _GLOBAL;
+ goto global;
+- case SbPUBLIC: eOp2 = _PUBLIC;
++ case SbPUBLIC: eOp2 = bPersistantGlobal ? _PUBLIC_P : _PUBLIC;
+ // AB 9.7.97, #40689, kein eigener Opcode mehr
+ /*
+ if( bStatic )
+@@ -439,7 +443,14 @@ void SbiParser::DefVar( SbiOpcode eOp, B
+ {
+ SbiExpression aExpr( this, *pDef, NULL );
+ aExpr.Gen();
+- aGen.Gen( _ERASE );
++ if ( bVBASupportOn )
++ // delete the array but
++ // clear the variable ( this
++ // allows the processing of
++ // the param to happen as normal without errors ( ordinary ERASE just clears the array )
++ aGen.Gen( _ERASE_CLEAR );
++ else
++ aGen.Gen( _ERASE );
+ }
+ else if( eOp == _REDIMP )
+ {
+Index: basic/source/comp/exprnode.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/exprnode.cxx,v
+retrieving revision 1.16
+retrieving revision 1.16.48.1
+diff -u -p -r1.16 -r1.16.48.1
+--- basic/source/comp/exprnode.cxx 12 Oct 2006 14:34:58 -0000 1.16
++++ basic/source/comp/exprnode.cxx 16 Feb 2007 17:14:15 -0000 1.16.48.1
+@@ -244,7 +244,7 @@ void SbiExprNode::CollectBits()
+
+ void SbiExprNode::FoldConstants()
+ {
+- if( IsOperand() ) return;
++ if( IsOperand() || eTok == LIKE ) return;
+ pLeft->FoldConstants();
+ if( pRight )
+ {
+Index: basic/source/comp/parser.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/parser.cxx,v
+retrieving revision 1.19
+retrieving revision 1.19.42.2
+diff -u -p -r1.19 -r1.19.42.2
+--- basic/source/comp/parser.cxx 2 Nov 2006 16:32:13 -0000 1.19
++++ basic/source/comp/parser.cxx 2 May 2007 09:45:21 -0000 1.19.42.2
+@@ -152,7 +152,6 @@ SbiParser::SbiParser( StarBASIC* pb, SbM
+ bSingleLineIf =
+ bExplicit = FALSE;
+ bClassModule = FALSE;
+- bVBASupportOn = FALSE;
+ pPool = &aPublics;
+ for( short i = 0; i < 26; i++ )
+ eDefTypes[ i ] = SbxVARIANT; // Kein expliziter Defaulttyp
+@@ -609,7 +608,12 @@ void SbiParser::Set()
+ // ( its necessary for vba objects where set is object
+ // specific and also doesn't involve processing default params )
+ if( pDef->GetTypeId() )
+- aGen.Gen( _SETCLASS, pDef->GetTypeId() );
++ {
++ if ( bVBASupportOn )
++ aGen.Gen( _VBASETCLASS, pDef->GetTypeId() );
++ else
++ aGen.Gen( _SETCLASS, pDef->GetTypeId() );
++ }
+ else
+ {
+ if ( bVBASupportOn )
+Index: basic/source/comp/scanner.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/scanner.cxx,v
+retrieving revision 1.23
+retrieving revision 1.23.42.1
+diff -u -p -r1.23 -r1.23.42.1
+--- basic/source/comp/scanner.cxx 2 Nov 2006 11:02:47 -0000 1.23
++++ basic/source/comp/scanner.cxx 2 May 2007 09:45:21 -0000 1.23.42.1
+@@ -53,6 +53,7 @@
+ #include <unotools/charclass.hxx>
+ #endif
+
++#include <runtime.hxx>
+
+ SbiScanner::SbiScanner( const ::rtl::OUString& rBuf, StarBASIC* p ) : aBuf( rBuf )
+ {
+@@ -76,6 +77,7 @@ SbiScanner::SbiScanner( const ::rtl::OUS
+ bSymbol =
+ bUsedForHilite =
+ bCompatible =
++ bVBASupportOn =
+ bPrevLineExtentsComment = FALSE;
+ bHash =
+ bErrors = TRUE;
+@@ -424,7 +426,11 @@ BOOL SbiScanner::NextSym()
+ if( *pLine != cSep || cSep == ']' ) break;
+ } else aError = cSep, GenError( SbERR_EXPECTED );
+ }
+- aSym = aLine.copy( n, nCol - n - 1 );
++ // If VBA Interop then doen't eat the [] chars
++ if ( cSep == ']' && bVBASupportOn )
++ aSym = aLine.copy( n - 1, nCol - n + 1);
++ else
++ aSym = aLine.copy( n, nCol - n - 1 );
+ // Doppelte Stringbegrenzer raus
+ String s( cSep );
+ s += cSep;
+Index: basic/source/comp/token.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/comp/token.cxx,v
+retrieving revision 1.21
+retrieving revision 1.21.48.1
+diff -u -p -r1.21 -r1.21.48.1
+--- basic/source/comp/token.cxx 12 Oct 2006 14:28:11 -0000 1.21
++++ basic/source/comp/token.cxx 16 Feb 2007 17:14:15 -0000 1.21.48.1
+@@ -130,6 +130,7 @@ static TokenTable aTokTable_Basic [] = {
+ { IS, "Is" },
+ { LET, "Let" },
+ { LIB, "Lib" },
++ { LIKE, "Like" },
+ { LINE, "Line" },
+ { LINEINPUT,"Line Input" },
+ { LOCAL, "Local" },
+cvs diff: Diffing basic/source/inc
+Index: basic/source/inc/opcodes.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/opcodes.hxx,v
+retrieving revision 1.11
+retrieving revision 1.11.42.3
+diff -u -p -r1.11 -r1.11.42.3
+--- basic/source/inc/opcodes.hxx 2 Nov 2006 16:32:24 -0000 1.11
++++ basic/source/inc/opcodes.hxx 2 May 2007 09:45:22 -0000 1.11.42.3
+@@ -99,6 +99,7 @@ enum SbiOpcode {
+ _REDIMP_ERASE, // Copies array to be later used by REDIM PRESERVE before erasing it
+ _INITFOREACH,
+ _VBASET, // VBA-like Set
++ _ERASE_CLEAR, // Erase array and clear variable
+ SbOP0_END,
+
+ // Alle Opcodes mit einem Operanden
+@@ -132,6 +133,7 @@ enum SbiOpcode {
+ _BASED, // TOS wird um BASE erhoeht, BASE davor gepusht (+base)
+ // Typanpassung im Argv
+ _ARGTYP, // Letzten Parameter in Argv konvertieren (+Typ)
++ _VBASETCLASS, // VBA-like Set
+ SbOP1_END,
+
+ // Alle Opcodes mit zwei Operanden
+@@ -164,6 +166,7 @@ enum SbiOpcode {
+ _FIND_G, // Sucht globale Variable mit Spezialbehandlung wegen _GLOBAL_P
+ _DCREATE_REDIMP, // Objekt-Array redimensionieren (+StringId+StringID)
+ _FIND_CM, // Search inside a class module (CM) to enable global search in time
++ _PUBLIC_P, // Module global Variable (persisted between calls)(+StringID+Typ)
+ SbOP2_END
+
+ };
+Index: basic/source/inc/parser.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/parser.hxx,v
+retrieving revision 1.10
+retrieving revision 1.10.42.1
+diff -u -p -r1.10 -r1.10.42.1
+--- basic/source/inc/parser.hxx 1 Nov 2006 16:15:58 -0000 1.10
++++ basic/source/inc/parser.hxx 2 May 2007 09:45:22 -0000 1.10.42.1
+@@ -94,7 +94,6 @@ public:
+ BOOL bText; // OPTION COMPARE TEXT
+ BOOL bExplicit; // TRUE: OPTION EXPLICIT
+ BOOL bClassModule; // TRUE: OPTION ClassModule
+- BOOL bVBASupportOn; // TRUE: OPTION VBASupport 1 otherwise default False
+ IfaceVector aIfaceVector; // Holds all interfaces implemented by a class module
+ SbxDataType eDefTypes[26]; // DEFxxx-Datentypen
+
+Index: basic/source/inc/runtime.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/runtime.hxx,v
+retrieving revision 1.33
+retrieving revision 1.33.42.4
+diff -u -p -r1.33 -r1.33.42.4
+--- basic/source/inc/runtime.hxx 2 Nov 2006 16:32:35 -0000 1.33
++++ basic/source/inc/runtime.hxx 2 May 2007 09:44:56 -0000 1.33.42.4
+@@ -360,6 +360,7 @@ class SbiRuntime
+ BOOL bError; // TRUE: Fehler behandeln
+ BOOL bInError; // TRUE: in einem Fehler-Handler
+ BOOL bBlocked; // TRUE: blocked by next call level, #i48868
++ BOOL bVBAEnabled;
+ USHORT nFlags; // Debugging-Flags
+ SbError nError; // letzter Fehler
+ USHORT nOps; // Opcode-Zaehler
+@@ -429,6 +430,8 @@ class SbiRuntime
+ // #115829
+ bool implIsClass( SbxObject* pObj, const String& aClass );
+
++ void StepSETCLASS_impl( UINT32 nOp1, bool bHandleDflt = false );
++
+ // Die nachfolgenden Routinen werden vom Single Stepper
+ // gerufen und implementieren die einzelnen Opcodes
+ void StepNOP(), StepEXP(), StepMUL(), StepDIV();
+@@ -447,7 +450,7 @@ class SbiRuntime
+ void StepNOERROR(), StepCHANNEL(), StepCHANNEL0(), StepPRINT();
+ void StepPRINTF(), StepWRITE(), StepRENAME(), StepPROMPT();
+ void StepRESTART(), StepEMPTY(), StepLEAVE();
+- void StepLSET(), StepRSET(), StepREDIMP_ERASE();
++ void StepLSET(), StepRSET(), StepREDIMP_ERASE(), StepERASE_CLEAR();
+ // Alle Opcodes mit einem Operanden
+ void StepLOADNC( UINT32 ), StepLOADSC( UINT32 ), StepLOADI( UINT32 );
+ void StepARGN( UINT32 ), StepBASED( UINT32 ), StepPAD( UINT32 );
+@@ -455,11 +458,11 @@ class SbiRuntime
+ void StepJUMPF( UINT32 ), StepONJUMP( UINT32 );
+ void StepGOSUB( UINT32 ), StepRETURN( UINT32 );
+ void StepTESTFOR( UINT32 ), StepCASETO( UINT32 ), StepERRHDL( UINT32 );
+- void StepRESUME( UINT32 ), StepSETCLASS( UINT32 ), StepTESTCLASS( UINT32 ), StepLIB( UINT32 );
++ void StepRESUME( UINT32 ), StepSETCLASS( UINT32 ), StepVBASETCLASS( UINT32 ), StepTESTCLASS( UINT32 ), StepLIB( UINT32 );
+ bool checkClass_Impl( const SbxVariableRef& refVal, const String& aClass, bool bRaiseErrors );
+ void StepCLOSE( UINT32 ), StepPRCHAR( UINT32 ), StepARGTYP( UINT32 );
+ // Alle Opcodes mit zwei Operanden
+- void StepRTL( UINT32, UINT32 ), StepPUBLIC( UINT32, UINT32 );
++ void StepRTL( UINT32, UINT32 ), StepPUBLIC( UINT32, UINT32 ), StepPUBLIC_P( UINT32, UINT32 );
+ void StepPUBLIC_Impl( UINT32, UINT32, bool bUsedForClassModule );
+ void StepFIND( UINT32, UINT32 ), StepELEM( UINT32, UINT32 );
+ void StepGLOBAL( UINT32, UINT32 ), StepLOCAL( UINT32, UINT32 );
+@@ -472,6 +475,7 @@ class SbiRuntime
+ void StepDCREATE_REDIMP(UINT32,UINT32), StepDCREATE_IMPL(UINT32,UINT32);
+ void StepFIND_CM( UINT32, UINT32 );
+ public:
++ void SetVBAEnabled( bool bEnabled ) { bVBAEnabled = bEnabled; };
+ USHORT GetImageFlag( USHORT n ) const;
+ USHORT GetBase();
+ xub_StrLen nLine,nCol1,nCol2; // aktuelle Zeile, Spaltenbereich
+Index: basic/source/inc/scanner.hxx
+===================================================================
+RCS file: /cvs/script/basic/source/inc/scanner.hxx,v
+retrieving revision 1.10
+retrieving revision 1.10.176.1
+diff -u -p -r1.10 -r1.10.176.1
+--- basic/source/inc/scanner.hxx 29 Sep 2005 18:41:38 -0000 1.10
++++ basic/source/inc/scanner.hxx 2 May 2007 09:45:22 -0000 1.10.176.1
+@@ -79,7 +79,8 @@ protected:
+ BOOL bHash; // TRUE: # eingelesen
+ BOOL bError; // TRUE: Fehler generieren
+ BOOL bUsedForHilite; // TRUE: Nutzung fuer Highlighting
+- BOOL bCompatible; // TRUE: OPTION Compatible
++ BOOL bCompatible; // TRUE: OPTION Compatibl
++ BOOL bVBASupportOn; // TRUE: OPTION VBASupport 1 otherwise default False
+ BOOL bPrevLineExtentsComment; // TRUE: Previous line is comment and ends on "... _"
+
+ void GenError( SbError );
+@@ -91,6 +92,8 @@ public:
+ BOOL IsHash() { return bHash; }
+ BOOL IsCompatible() { return bCompatible; }
+ void SetCompatible( bool b ) { bCompatible = b; } // #118206
++ BOOL IsVBASupportOn() { return bVBASupportOn; }
++ void SetVBASupportOn( bool b ) { bVBASupportOn = b; }
+ BOOL WhiteSpace() { return bSpaces; }
+ short GetErrors() { return nErrors; }
+ short GetLine() { return nLine; }
+cvs diff: Diffing basic/source/runtime
+Index: basic/source/runtime/runtime.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/runtime.cxx,v
+retrieving revision 1.35
+retrieving revision 1.35.6.4
+diff -u -p -r1.35 -r1.35.6.4
+--- basic/source/runtime/runtime.cxx 29 Jan 2007 15:05:41 -0000 1.35
++++ basic/source/runtime/runtime.cxx 2 May 2007 09:44:22 -0000 1.35.6.4
+@@ -153,6 +153,7 @@ SbiRuntime::pStep0 SbiRuntime::aStep0[]
+ &SbiRuntime::StepREDIMP_ERASE,// Copy array object for REDIMP
+ &SbiRuntime::StepINITFOREACH,// Init for each loop
+ &SbiRuntime::StepVBASET,// vba-like set statement
++ &SbiRuntime::StepERASE_CLEAR,// vba-like set statement
+ };
+
+ SbiRuntime::pStep1 SbiRuntime::aStep1[] = { // Alle Opcodes mit einem Operanden
+@@ -181,6 +182,7 @@ SbiRuntime::pStep1 SbiRuntime::aStep1[]
+ &SbiRuntime::StepLIB, // Lib fuer Declare-Call (+StringId)
+ &SbiRuntime::StepBASED, // TOS wird um BASE erhoeht, BASE davor gepusht
+ &SbiRuntime::StepARGTYP, // Letzten Parameter in Argv konvertieren (+Typ)
++ &SbiRuntime::StepVBASETCLASS,// vba-like set statement
+ };
+
+ SbiRuntime::pStep2 SbiRuntime::aStep2[] = {// Alle Opcodes mit zwei Operanden
+@@ -209,6 +211,7 @@ SbiRuntime::pStep2 SbiRuntime::aStep2[]
+ &SbiRuntime::StepFIND_G, // Sucht globale Variable mit Spezialbehandlung wegen _GLOBAL_P
+ &SbiRuntime::StepDCREATE_REDIMP, // Objekt-Array redimensionieren (+StringID+StringID)
+ &SbiRuntime::StepFIND_CM, // Search inside a class module (CM) to enable global search in time
++ &SbiRuntime::StepPUBLIC_P, // Search inside a class module (CM) to enable global search in time
+ };
+
+
+@@ -538,6 +541,7 @@ SbiRuntime::SbiRuntime( SbModule* pm, Sb
+ #endif
+ pRefSaveList = NULL;
+ pItemStoreList = NULL;
++ bVBAEnabled = isVBAEnabled();
+ }
+
+ SbiRuntime::~SbiRuntime()
+Index: basic/source/runtime/step0.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/step0.cxx,v
+retrieving revision 1.28
+retrieving revision 1.27.42.7
+diff -u -p -r1.28 -r1.27.42.7
+--- basic/source/runtime/step0.cxx 26 Apr 2007 08:33:37 -0000 1.28
++++ basic/source/runtime/step0.cxx 2 May 2007 09:45:35 -0000 1.27.42.7
+@@ -49,7 +49,11 @@
+ #include <sb.hrc>
+ #include <basrid.hxx>
+ #include "sbunoobj.hxx"
++#include "image.hxx"
+ #include <com/sun/star/uno/Any.hxx>
++#include <com/sun/star/util/SearchOptions.hdl>
++#include <vcl/svapp.hxx>
++#include <unotools/textsearch.hxx>
+
+ #include <algorithm>
+
+@@ -64,7 +68,6 @@ void SbiRuntime::StepArith( SbxOperator
+ TOSMakeTemp();
+ SbxVariable* p2 = GetTOS();
+
+- bool bVBAInterop = SbiRuntime::isVBAEnabled();
+
+ // This could & should be moved to the MakeTempTOS() method in runtime.cxx
+ // In the code which this is cut'npaste from there is a check for a ref
+@@ -74,7 +77,7 @@ void SbiRuntime::StepArith( SbxOperator
+ // here we alway seem to have a refcount of 1. Also it seems that
+ // MakeTempTOS is called for other operation, so I hold off for now
+ // until I have a better idea
+- if ( bVBAInterop
++ if ( bVBAEnabled
+ && ( p2->GetType() == SbxOBJECT || p2->GetType() == SbxVARIANT )
+ )
+ {
+@@ -110,6 +113,40 @@ void SbiRuntime::StepCompare( SbxOperato
+ {
+ SbxVariableRef p1 = PopVar();
+ SbxVariableRef p2 = PopVar();
++
++ // Make sure objects with default params have
++ // values ( and type ) set as appropriate
++ SbxDataType p1Type = p1->GetType();
++ SbxDataType p2Type = p2->GetType();
++ if ( p1Type == p2Type )
++ {
++ if ( p1Type == SbxEMPTY )
++ {
++ p1->Broadcast( SBX_HINT_DATAWANTED );
++ p2->Broadcast( SBX_HINT_DATAWANTED );
++ }
++ // if both sides are an object and have default props
++ // then we need to use the default props
++ // we don't need to worry if only one side ( lhs, rhs ) is an
++ // object ( object side will get coerced to correct type in
++ // Compare )
++ else if ( p1Type == SbxOBJECT )
++ {
++ SbxVariable* pDflt = getDefaultProp( p1 );
++ if ( pDflt )
++ {
++ p1 = pDflt;
++ p1->Broadcast( SBX_HINT_DATAWANTED );
++ }
++ pDflt = getDefaultProp( p2 );
++ if ( pDflt )
++ {
++ p2 = pDflt;
++ p2->Broadcast( SBX_HINT_DATAWANTED );
++ }
++ }
++
++ }
+ #ifndef WIN
+ static SbxVariable* pTRUE = NULL;
+ static SbxVariable* pFALSE = NULL;
+@@ -166,9 +203,116 @@ void SbiRuntime::StepGT() { StepCompare
+ void SbiRuntime::StepLE() { StepCompare( SbxLE ); }
+ void SbiRuntime::StepGE() { StepCompare( SbxGE ); }
+
++namespace
++{
++ bool NeedEsc(sal_Unicode cCode)
++ {
++ String sEsc(RTL_CONSTASCII_USTRINGPARAM(".^$+\\|{}()"));
++ return (STRING_NOTFOUND != sEsc.Search(cCode));
++ }
++
++ String VBALikeToRegexp(const String &rIn)
++ {
++ String sResult;
++ const sal_Unicode *start = rIn.GetBuffer();
++ const sal_Unicode *end = start + rIn.Len();
++
++ int seenright = 0;
++
++ sResult.Append('^');
++
++ while (start < end)
++ {
++ switch (*start)
++ {
++ case '?':
++ sResult.Append('.');
++ start++;
++ break;
++ case '*':
++ sResult.Append(String(RTL_CONSTASCII_USTRINGPARAM(".*")));
++ start++;
++ break;
++ case '#':
++ sResult.Append(String(RTL_CONSTASCII_USTRINGPARAM("[0-9]")));
++ start++;
++ break;
++ case ']':
++ sResult.Append('\\');
++ sResult.Append(*start++);
++ break;
++ case '[':
++ sResult.Append(*start++);
++ seenright = 0;
++ while (start < end && !seenright)
++ {
++ switch (*start)
++ {
++ case '[':
++ case '?':
++ case '*':
++ sResult.Append('\\');
++ sResult.Append(*start);
++ break;
++ case ']':
++ sResult.Append(*start);
++ seenright = 1;
++ break;
++ case '!':
++ sResult.Append('^');
++ break;
++ default:
++ if (NeedEsc(*start))
++ sResult.Append('\\');
++ sResult.Append(*start);
++ break;
++ }
++ start++;
++ }
++ break;
++ default:
++ if (NeedEsc(*start))
++ sResult.Append('\\');
++ sResult.Append(*start++);
++ }
++ }
++
++ sResult.Append('$');
++
++ return sResult;
++ }
++}
++
+ void SbiRuntime::StepLIKE()
+ {
+- StarBASIC::FatalError( SbERR_NOT_IMPLEMENTED );
++ SbxVariableRef refVar1 = PopVar();
++ SbxVariableRef refVar2 = PopVar();
++
++ String pattern = VBALikeToRegexp(refVar1->GetString());
++ String value = refVar2->GetString();
++
++ com::sun::star::util::SearchOptions aSearchOpt;
++
++ aSearchOpt.algorithmType = com::sun::star::util::SearchAlgorithms_REGEXP;
++
++ aSearchOpt.Locale = Application::GetSettings().GetLocale();
++ aSearchOpt.searchString = pattern;
++
++ int bTextMode(1);
++ bool bCompatibility = ( pINST && pINST->IsCompatibility() );
++ if( bCompatibility )
++ bTextMode = GetImageFlag( SBIMG_COMPARETEXT );
++
++ if( bTextMode )
++ aSearchOpt.transliterateFlags |= com::sun::star::i18n::TransliterationModules_IGNORE_CASE;
++
++ SbxVariable* pRes = new SbxVariable;
++ utl::TextSearch aSearch(aSearchOpt);
++ xub_StrLen nStart=0, nEnd=value.Len();
++ int bRes = aSearch.SearchFrwrd(value, &nStart, &nEnd);
++ pRes->PutBool( bRes != 0 );
++
++ PushVar( pRes );
+ }
+
+ // TOS und TOS-1 sind beides Objektvariable und enthalten den selben Pointer
+@@ -244,14 +388,13 @@ void SbiRuntime::StepPUT()
+ n = refVar->GetFlags();
+ refVar->SetFlag( SBX_WRITE );
+ }
+- bool bVBAInterop = SbiRuntime::isVBAEnabled();
+
+ // if left side arg is an object or variant and right handside isn't
+ // either an object or a variant then try and see if a default
+ // property exists.
+ // to use e.g. Range{"A1") = 34
+ // could equate to Range("A1").Value = 34
+- if ( bVBAInterop )
++ if ( bVBAEnabled )
+ {
+ if ( refVar->GetType() == SbxOBJECT )
+ {
+@@ -269,7 +412,7 @@ void SbiRuntime::StepPUT()
+
+ *refVar = *refVal;
+ // lhs is a property who's value is currently null
+- if ( !bVBAInterop || ( bVBAInterop && refVar->GetType() != SbxEMPTY ) )
++ if ( !bVBAEnabled || ( bVBAEnabled && refVar->GetType() != SbxEMPTY ) )
+ // #67607 Uno-Structs kopieren
+ checkUnoStructCopy( refVal, refVar );
+ if( bFlagsChanged )
+@@ -402,7 +545,7 @@ void SbiRuntime::StepSET()
+ {
+ SbxVariableRef refVal = PopVar();
+ SbxVariableRef refVar = PopVar();
+- StepSET_Impl( refVal, refVar, SbiRuntime::isVBAEnabled() ); // this is really assigment
++ StepSET_Impl( refVal, refVar, bVBAEnabled ); // this is really assigment
+ }
+
+ void SbiRuntime::StepVBASET()
+@@ -525,6 +668,8 @@ void SbiRuntime::DimImpl( SbxVariableRef
+ if( ub < lb )
+ Error( SbERR_OUT_OF_RANGE ), ub = lb;
+ pArray->AddDim32( lb, ub );
++ if ( lb != ub )
++ pArray->setHasFixedSize( true );
+ }
+ }
+ else
+@@ -693,27 +838,51 @@ void SbiRuntime::StepREDIMP_ERASE()
+ refVar->SetType( SbxEMPTY );
+ }
+
++void lcl_clearImpl( SbxVariableRef& refVar, SbxDataType& eType )
++{
++ USHORT nSavFlags = refVar->GetFlags();
++ refVar->ResetFlag( SBX_FIXED );
++ refVar->SetType( SbxDataType(eType & 0x0FFF) );
++ refVar->SetFlags( nSavFlags );
++ refVar->Clear();
++}
+
+-// Variable loeschen
+-// TOS = Variable
+-
+-void SbiRuntime::StepERASE()
++void lcl_eraseImpl( SbxVariableRef& refVar, bool bVBAEnabled )
+ {
+- SbxVariableRef refVar = PopVar();
+ SbxDataType eType = refVar->GetType();
+ if( eType & SbxARRAY )
+ {
++ if ( bVBAEnabled )
++ {
++ SbxBase* pElemObj = refVar->GetObject();
++ SbxDimArray* pDimArray = PTR_CAST(SbxDimArray,pElemObj);
++ bool bClearValues = true;
++ if( pDimArray )
++ {
++ if ( pDimArray->hasFixedSize() )
++ {
++ // Clear all Value(s)
++ pDimArray->SbxArray::Clear();
++ bClearValues = false;
++ }
++ else
++ pDimArray->Clear(); // clear Dims
++ }
++ if ( bClearValues )
++ {
++ SbxArray* pArray = PTR_CAST(SbxArray,pElemObj);
++ if ( pArray )
++ pArray->Clear();
++ }
++ }
++ else
+ // AB 2.4.1996
+ // Arrays haben bei Erase nach VB ein recht komplexes Verhalten. Hier
+ // werden zunaechst nur die Typ-Probleme bei REDIM (#26295) beseitigt:
+ // Typ hart auf den Array-Typ setzen, da eine Variable mit Array
+ // SbxOBJECT ist. Bei REDIM entsteht dann ein SbxOBJECT-Array und
+ // der ursruengliche Typ geht verloren -> Laufzeitfehler
+- USHORT nSavFlags = refVar->GetFlags();
+- refVar->ResetFlag( SBX_FIXED );
+- refVar->SetType( SbxDataType(eType & 0x0FFF) );
+- refVar->SetFlags( nSavFlags );
+- refVar->Clear();
++ lcl_clearImpl( refVar, eType );
+ }
+ else
+ if( refVar->IsFixed() )
+@@ -722,6 +891,23 @@ void SbiRuntime::StepERASE()
+ refVar->SetType( SbxEMPTY );
+ }
+
++// Variable loeschen
++// TOS = Variable
++
++void SbiRuntime::StepERASE()
++{
++ SbxVariableRef refVar = PopVar();
++ lcl_eraseImpl( refVar, bVBAEnabled );
++}
++
++void SbiRuntime::StepERASE_CLEAR()
++{
++ SbxVariableRef refVar = PopVar();
++ lcl_eraseImpl( refVar, bVBAEnabled );
++ SbxDataType eType = refVar->GetType();
++ lcl_clearImpl( refVar, eType );
++}
++
+ // Einrichten eines Argvs
+ // nOp1 bleibt so -> 1. Element ist Returnwert
+
+Index: basic/source/runtime/step1.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/step1.cxx,v
+retrieving revision 1.16
+retrieving revision 1.16.42.1
+diff -u -p -r1.16 -r1.16.42.1
+--- basic/source/runtime/step1.cxx 3 Nov 2006 15:10:48 -0000 1.16
++++ basic/source/runtime/step1.cxx 27 Feb 2007 18:29:10 -0000 1.16.42.1
+@@ -44,6 +44,9 @@
+ #include "image.hxx"
+ #include "sbunoobj.hxx"
+
++bool checkUnoObjectType( SbUnoObject* refVal,
++ const String& aClass );
++
+ // Laden einer numerischen Konstanten (+ID)
+
+ void SbiRuntime::StepLOADNC( UINT32 nOp1 )
+@@ -476,9 +479,18 @@ bool SbiRuntime::checkClass_Impl( const
+ {
+ if( !implIsClass( pObj, aClass ) )
+ {
+- if( bRaiseErrors )
+- Error( SbERR_INVALID_USAGE_OBJECT );
+- bOk = false;
++ if ( bVBAEnabled && pObj->IsA( TYPE(SbUnoObject) ) )
++ {
++ SbUnoObject* pUnoObj = PTR_CAST(SbUnoObject,pObj);
++ bOk = checkUnoObjectType( pUnoObj, aClass );
++ }
++ else
++ bOk = false;
++ if ( !bOk )
++ {
++ if( bRaiseErrors )
++ Error( SbERR_INVALID_USAGE_OBJECT );
++ }
+ }
+ else
+ {
+@@ -490,14 +502,17 @@ bool SbiRuntime::checkClass_Impl( const
+ }
+ else
+ {
+- if( bRaiseErrors )
+- Error( SbERR_NEEDS_OBJECT );
+- bOk = false;
++ if ( !bVBAEnabled )
++ {
++ if( bRaiseErrors )
++ Error( SbERR_NEEDS_OBJECT );
++ bOk = false;
++ }
+ }
+ return bOk;
+ }
+
+-void SbiRuntime::StepSETCLASS( UINT32 nOp1 )
++void SbiRuntime::StepSETCLASS_impl( UINT32 nOp1, bool bHandleDflt )
+ {
+ SbxVariableRef refVal = PopVar();
+ SbxVariableRef refVar = PopVar();
+@@ -505,7 +520,17 @@ void SbiRuntime::StepSETCLASS( UINT32 nO
+
+ bool bOk = checkClass_Impl( refVal, aClass, true );
+ if( bOk )
+- StepSET_Impl( refVal, refVar );
++ StepSET_Impl( refVal, refVar, bHandleDflt ); // don't do handle dflt prop for a "proper" set
++}
++
++void SbiRuntime::StepVBASETCLASS( UINT32 nOp1 )
++{
++ StepSETCLASS_impl( nOp1, false );
++}
++
++void SbiRuntime::StepSETCLASS( UINT32 nOp1 )
++{
++ StepSETCLASS_impl( nOp1, true );
+ }
+
+ void SbiRuntime::StepTESTCLASS( UINT32 nOp1 )
+Index: basic/source/runtime/step2.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/step2.cxx,v
+retrieving revision 1.29
+retrieving revision 1.27.42.5
+diff -u -p -r1.29 -r1.27.42.5
+--- basic/source/runtime/step2.cxx 27 Apr 2007 09:16:12 -0000 1.29
++++ basic/source/runtime/step2.cxx 2 May 2007 09:44:56 -0000 1.27.42.5
+@@ -54,6 +54,8 @@
+ using namespace com::sun::star::container;
+ using namespace com::sun::star::lang;
+
++SbxVariable* getVBAConstant( const String& rName );
++
+ const static String aThisComponent( RTL_CONSTASCII_USTRINGPARAM("ThisComponent") );
+ const static String aVBAHook( RTL_CONSTASCII_USTRINGPARAM( "VBAGlobals" ) );
+ // i#i68894#
+@@ -113,8 +115,6 @@ SbxVariable* SbiRuntime::FindElement
+ ( SbxObject* pObj, UINT32 nOp1, UINT32 nOp2, SbError nNotFound, BOOL bLocal )
+ {
+
+- bool bIsVBAInterOp = SbiRuntime::isVBAEnabled();
+-
+ SbxVariable* pElem = NULL;
+ if( !pObj )
+ {
+@@ -126,6 +126,24 @@ SbxVariable* SbiRuntime::FindElement
+ BOOL bFatalError = FALSE;
+ SbxDataType t = (SbxDataType) nOp2;
+ String aName( pImg->GetString( static_cast<short>( nOp1 & 0x7FFF ) ) );
++ bool bIsVBAInterOp = SbiRuntime::isVBAEnabled();
++ // Hacky capture of Evaluate [] syntax
++ // this should be tackled I feel at the pcode level
++ if ( bIsVBAInterOp && aName.Search('[') == 0 )
++ {
++ // emulate pcode here
++ StepARGC();
++ // psuedo StepLOADSC
++ String sArg = aName.Copy( 1, aName.Len() - 2 );
++ SbxVariable* p = new SbxVariable;
++ p->PutString( sArg );
++ PushVar( p );
++ //
++ StepARGV();
++ nOp1 = nOp1 | 0x8000; // indicate params are present
++ aName = String::CreateFromAscii("Evaluate");
++ }
++
+ if( bLocal )
+ pElem = refLocals->Find( aName, SbxCLASS_DONTCARE );
+ if( !pElem )
+@@ -156,25 +174,24 @@ SbxVariable* SbiRuntime::FindElement
+
+ // i#i68894# if VBAInterOp favour searching vba globals
+ // over searching for uno classess
+- if ( bIsVBAInterOp )
++ if ( bVBAEnabled )
+ {
+ // Try Find in VBA symbols space
+ pElem = VBAFind( aName, SbxCLASS_DONTCARE );
+ if ( pElem )
+ bSetName = false; // don't overwrite uno name
++ else
++ pElem = getVBAConstant( aName );
+ }
+- else
+- {
+- // #72382 VORSICHT! Liefert jetzt wegen unbekannten
+- // Modulen IMMER ein Ergebnis!
+- SbxVariable* pUnoClass = findUnoClass( aName );
+- if( pUnoClass )
+- {
+- pElem = new SbxVariable( t );
+- SbxValues aRes( SbxOBJECT );
+- aRes.pObj = pUnoClass;
+- pElem->SbxVariable::Put( aRes );
+- }
++ // #72382 VORSICHT! Liefert jetzt wegen unbekannten
++ // Modulen IMMER ein Ergebnis!
++ SbxVariable* pUnoClass = findUnoClass( aName );
++ if( pUnoClass )
++ {
++ pElem = new SbxVariable( t );
++ SbxValues aRes( SbxOBJECT );
++ aRes.pObj = pUnoClass;
++ pElem->SbxVariable::Put( aRes );
+ }
+
+ // #62939 Wenn eine Uno-Klasse gefunden wurde, muss
+@@ -523,7 +540,7 @@ SbxVariable* SbiRuntime::CheckArray( Sbx
+ {
+ Reference< XInterface > x = *(Reference< XInterface >*)aAny.getValue();
+ Reference< XIndexAccess > xIndexAccess( x, UNO_QUERY );
+- if ( !SbiRuntime::isVBAEnabled() )
++ if ( !bVBAEnabled )
+ {
+ // Haben wir Index-Access?
+ if( xIndexAccess.is() )
+@@ -1121,6 +1138,14 @@ void SbiRuntime::StepPUBLIC( UINT32 nOp1
+ StepPUBLIC_Impl( nOp1, nOp2, false );
+ }
+
++void SbiRuntime::StepPUBLIC_P( UINT32 nOp1, UINT32 nOp2 )
++{
++ // Creates module variable that isn't reinitialised when
++ // between invocations ( for VBASupport & document basic only )
++ if( pMod->pImage->bFirstInit )
++ StepPUBLIC( nOp1, nOp2 );
++}
++
+ // Einrichten einer globalen Variablen (+StringID+Typ)
+
+ void SbiRuntime::StepGLOBAL( UINT32 nOp1, UINT32 nOp2 )
+cvs diff: Diffing basic/source/sample
+cvs diff: Diffing basic/source/sbx
+Index: basic/source/sbx/sbxarray.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/sbx/sbxarray.cxx,v
+retrieving revision 1.6
+retrieving revision 1.6.48.3
+diff -u -p -r1.6 -r1.6.48.3
+--- basic/source/sbx/sbxarray.cxx 12 Oct 2006 14:31:56 -0000 1.6
++++ basic/source/sbx/sbxarray.cxx 27 Apr 2007 14:32:16 -0000 1.6.48.3
+@@ -40,6 +40,7 @@
+ #include <tools/stream.hxx>
+ #endif
+ #include "sbx.hxx"
++#include "runtime.hxx"
+ #include <vector>
+ using namespace std;
+
+@@ -593,7 +594,7 @@ void SbxArray::PutDirect( SbxVariable* p
+ //
+ //////////////////////////////////////////////////////////////////////////
+
+-SbxDimArray::SbxDimArray( SbxDataType t ) : SbxArray( t )
++SbxDimArray::SbxDimArray( SbxDataType t ) : SbxArray( t ), mbHasFixedSize( false )
+ {
+ pFirst = pLast = NULL;
+ nDim = 0;
+@@ -618,6 +619,7 @@ SbxDimArray& SbxDimArray::operator=( con
+ AddDim32( p->nLbound, p->nUbound );
+ p = p->pNext;
+ }
++ this->mbHasFixedSize = rArray.mbHasFixedSize;
+ }
+ return *this;
+ }
+@@ -793,7 +795,7 @@ void SbxDimArray::Put32( SbxVariable* p,
+
+ UINT32 SbxDimArray::Offset32( SbxArray* pPar )
+ {
+- if( nDim == 0 || !pPar )
++ if( nDim == 0 || !pPar || ( ( nDim != ( pPar->Count() - 1 ) ) && SbiRuntime::isVBAEnabled() ) )
+ {
+ SetError( SbxERR_BOUNDS ); return 0;
+ }
+Index: basic/source/sbx/sbxvalue.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/sbx/sbxvalue.cxx,v
+retrieving revision 1.8
+retrieving revision 1.8.48.1
+diff -u -p -r1.8 -r1.8.48.1
+--- basic/source/sbx/sbxvalue.cxx 12 Oct 2006 14:34:49 -0000 1.8
++++ basic/source/sbx/sbxvalue.cxx 16 Feb 2007 17:08:55 -0000 1.8.48.1
+@@ -64,7 +64,7 @@
+ #include "sbx.hxx"
+ #include "sbxconv.hxx"
+ #include <math.h>
+-
++#include "runtime.hxx"
+ // AB 29.10.99 Unicode
+ #ifndef _USE_NO_NAMESPACE
+ using namespace rtl;
+@@ -1125,6 +1125,8 @@ BOOL SbxValue::Convert( SbxDataType eTo
+
+ BOOL SbxValue::Compute( SbxOperator eOp, const SbxValue& rOp )
+ {
++ bool bVBAInterop = SbiRuntime::isVBAEnabled();
++
+ SbxDataType eThisType = GetType();
+ SbxDataType eOpType = rOp.GetType();
+ SbxError eOld = GetError();
+@@ -1138,14 +1140,16 @@ BOOL SbxValue::Compute( SbxOperator eOp,
+ else if( eThisType == SbxNULL || eOpType == SbxNULL )
+ SetType( SbxNULL );
+ // Sonderregel 2: Ist ein Operand Empty, ist das Ergebnis der 2. Operand
+- else if( eThisType == SbxEMPTY )
++ else if( eThisType == SbxEMPTY
++ && !bVBAInterop
++ )
+ *this = rOp;
+ // 13.2.96: Nicht schon vor Get auf SbxEMPTY pruefen
+ else
+ {
+ SbxValues aL, aR;
+ bool bDecimal = false;
+- if( eThisType == SbxSTRING || eOp == SbxCAT )
++ if( eThisType == SbxSTRING || eOp == SbxCAT || ( bVBAInterop && ( eOpType == SbxSTRING ) && ( eOp == SbxPLUS ) ) )
+ {
+ if( eOp == SbxCAT || eOp == SbxPLUS )
+ {
+@@ -1203,7 +1207,10 @@ BOOL SbxValue::Compute( SbxOperator eOp,
+ if( rOp.Get( aR ) )
+ {
+ if( rOp.GetType() == SbxEMPTY )
+- goto Lbl_OpIsEmpty;
++ {
++ if ( !bVBAInterop || ( bVBAInterop && ( eOp != SbxNOT ) ) )
++ goto Lbl_OpIsEmpty;
++ }
+ if( Get( aL ) ) switch( eOp )
+ {
+ case SbxIDIV:
+@@ -1392,7 +1399,10 @@ BOOL SbxValue::Compute( SbxOperator eOp,
+ if( rOp.Get( aR ) )
+ {
+ if( rOp.GetType() == SbxEMPTY )
+- goto Lbl_OpIsEmpty;
++ {
++ if ( !bVBAInterop || ( bVBAInterop && ( eOp != SbxNEG ) ) )
++ goto Lbl_OpIsEmpty;
++ }
+ if( Get( aL ) )
+ {
+ switch( eOp )
+@@ -1442,6 +1452,8 @@ Lbl_OpIsEmpty:
+
+ BOOL SbxValue::Compare( SbxOperator eOp, const SbxValue& rOp ) const
+ {
++ bool bVBAInterop = SbiRuntime::isVBAEnabled();
++
+ BOOL bRes = FALSE;
+ SbxError eOld = GetError();
+ if( eOld != SbxERR_OK )
+@@ -1458,10 +1470,13 @@ BOOL SbxValue::Compare( SbxOperator eOp,
+ // Sonderregel 2: Wenn beide Variant sind und einer ist numerisch,
+ // und der andere ein String, ist num < str
+ else if( !IsFixed() && !rOp.IsFixed()
+- && ( rOp.GetType() == SbxSTRING && GetType() != SbxSTRING && IsNumeric() ) )
++ && ( rOp.GetType() == SbxSTRING && GetType() != SbxSTRING && IsNumeric() ) && !bVBAInterop
++ )
+ bRes = BOOL( eOp == SbxLT || eOp == SbxLE || eOp == SbxNE );
+ else if( !IsFixed() && !rOp.IsFixed()
+- && ( GetType() == SbxSTRING && rOp.GetType() != SbxSTRING && rOp.IsNumeric() ) )
++ && ( GetType() == SbxSTRING && rOp.GetType() != SbxSTRING && rOp.IsNumeric() )
++&& !bVBAInterop
++ )
+ bRes = BOOL( eOp == SbxGT || eOp == SbxGE || eOp == SbxNE );
+ else
+ {
+cvs diff: Diffing basic/source/uno
+cvs diff: Diffing basic/util
+cvs diff: Diffing basic/util/defs
+cvs diff: Diffing basic/win
+cvs diff: Diffing basic/win/res
+cvs diff: Diffing basic/workben
+cvs diff: Diffing config_office
+Index: config_office/configure.in
+===================================================================
+RCS file: /cvs/tools/config_office/configure.in,v
+retrieving revision 1.201
+retrieving revision 1.201.2.1
+diff -u -p -r1.201 -r1.201.2.1
+--- config_office/configure.in 25 Apr 2007 15:53:53 -0000 1.201
++++ config_office/configure.in 3 May 2007 11:09:38 -0000 1.201.2.1
+@@ -41,20 +41,21 @@ AC_ARG_ENABLE(lockdown,
+ [ --enable-lockdown Enables the gconf integration work in OOo
+ ],,)
+ AC_ARG_ENABLE(vba,
+-[ --enable-vba Enables the vba compatibility feature
++[ --disable-vba disables the vba compatibility feature
+ ],,)
+ AC_ARG_WITH(vba-package-format,
+ [ --with-vba-package-format specify package format for vba compatibility api.
+- Default "builtin" means the api component and
++ Specifying "builtin" means the api component and
+ associated type library are part of the installation set.
+- Specifying "extsn" creates an uno extension that is
++ Specifying "extn" creates an uno extension that is
+ part of the installation set ( located in the program
+ directory ) that MUST be optionly registered using
+ either the unopkg executeable or the extension manager
+ gui.
+-
+- Usage: --with-package-format="builtin" or
+- --with-package-format="extsn"
++
++ Note: "extn" is the defualt.
++ Usage: --with-vba-package-format="builtin" or
++ --with-vba-package-format="extn"
+ ],,)
+ AC_ARG_ENABLE(pch,
+ [ --enable-pch Enables the use of precompiledr C/C++ header files
+@@ -1605,13 +1606,13 @@ fi
+ dnl ===================================================================
+ dnl Check if we are to enable vba macro interoperability feature
+ dnl ===================================================================
+-AC_MSG_CHECKING([whether to enable vba feature])
+-if test -n "$enable_vba" && test "$enable_vba" = "yes"; then
++AC_MSG_CHECKING([whether to disable vba feature])
++if test -n "$enable_vba" && test "$enable_vba" = "no"; then
+ AC_MSG_RESULT([yes])
+- ENABLE_VBA=YES
+-else
+ ENABLE_VBA=NO
++else
+ AC_MSG_RESULT([no])
++ ENABLE_VBA=YES
+ fi
+ AC_SUBST(ENABLE_VBA)
+
+@@ -1630,11 +1631,14 @@ if test "$ENABLE_VBA" = "YES"; then
+ fi
+
+ else
+- VBA_EXTENSION=NO
+- AC_MSG_RESULT([build into installset])
++ VBA_EXTENSION=YES
++ AC_MSG_RESULT([defaulting to build as uno extension])
+ fi
+- AC_SUBST(VBA_EXTENSION)
++else
++ VBA_EXTENSION=NO
+ fi
++AC_SUBST(VBA_EXTENSION)
++
+ dnl ===================================================================
+ dnl Check the whether vba need to be delivered as an uno package or part
+ dnl of the install
+cvs diff: Diffing config_office/guw
+cvs diff: Diffing sc
+cvs diff: Diffing sc/addin
+cvs diff: Diffing sc/addin/datefunc
+cvs diff: Diffing sc/addin/inc
+cvs diff: Diffing sc/addin/rot13
+cvs diff: Diffing sc/addin/util
+cvs diff: Diffing sc/inc
+cvs diff: Diffing sc/inc/pch
+cvs diff: Diffing sc/prj
+cvs diff: Diffing sc/qa
+cvs diff: Diffing sc/qa/complex
+cvs diff: Diffing sc/qa/complex/dataPilot
+cvs diff: Diffing sc/qa/complex/dataPilot/interfaceTests
+cvs diff: Diffing sc/qa/complex/dataPilot/interfaceTests/beans
+cvs diff: Diffing sc/qa/complex/dataPilot/interfaceTests/container
+cvs diff: Diffing sc/qa/complex/dataPilot/interfaceTests/sheet
+cvs diff: Diffing sc/qa/complex/sc
+cvs diff: Diffing sc/qa/unoapi
+cvs diff: Diffing sc/qa/unoapi/testdocuments
+cvs diff: Diffing sc/sdi
+cvs diff: Diffing sc/source
+cvs diff: Diffing sc/source/core
+cvs diff: Diffing sc/source/core/data
+cvs diff: Diffing sc/source/core/inc
+cvs diff: Diffing sc/source/core/src
+cvs diff: Diffing sc/source/core/tool
+cvs diff: Diffing sc/source/filter
+cvs diff: Diffing sc/source/filter/dif
+cvs diff: Diffing sc/source/filter/excel
+cvs diff: Diffing sc/source/filter/ftools
+cvs diff: Diffing sc/source/filter/html
+cvs diff: Diffing sc/source/filter/inc
+cvs diff: Diffing sc/source/filter/lotus
+cvs diff: Diffing sc/source/filter/qpro
+cvs diff: Diffing sc/source/filter/rtf
+cvs diff: Diffing sc/source/filter/starcalc
+cvs diff: Diffing sc/source/filter/xcl97
+cvs diff: Diffing sc/source/filter/xml
+cvs diff: Diffing sc/source/ui
+cvs diff: Diffing sc/source/ui/Accessibility
+cvs diff: Diffing sc/source/ui/app
+cvs diff: Diffing sc/source/ui/attrdlg
+cvs diff: Diffing sc/source/ui/cctrl
+cvs diff: Diffing sc/source/ui/dbgui
+cvs diff: Diffing sc/source/ui/docshell
+cvs diff: Diffing sc/source/ui/drawfunc
+cvs diff: Diffing sc/source/ui/formdlg
+cvs diff: Diffing sc/source/ui/inc
+cvs diff: Diffing sc/source/ui/miscdlgs
+cvs diff: Diffing sc/source/ui/namedlg
+cvs diff: Diffing sc/source/ui/navipi
+cvs diff: Diffing sc/source/ui/optdlg
+cvs diff: Diffing sc/source/ui/pagedlg
+cvs diff: Diffing sc/source/ui/src
+cvs diff: Diffing sc/source/ui/styleui
+cvs diff: Diffing sc/source/ui/undo
+cvs diff: Diffing sc/source/ui/unoobj
+cvs diff: Diffing sc/source/ui/vba
+Index: sc/source/ui/vba/vbaapplication.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaapplication.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -u -p -r1.2 -r1.2.2.1
+--- sc/source/ui/vba/vbaapplication.cxx 25 Apr 2007 16:00:39 -0000 1.2
++++ sc/source/ui/vba/vbaapplication.cxx 18 May 2007 12:38:29 -0000 1.2.2.1
+@@ -293,7 +293,7 @@ void SAL_CALL
+ ScVbaApplication::setStatusBar( const uno::Any& _statusbar ) throw (uno::RuntimeException)
+ {
+ rtl::OUString sText;
+- sal_Bool bDefault;
++ sal_Bool bDefault = sal_False;
+ uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
+ uno::Reference< task::XStatusIndicatorSupplier > xStatusIndicatorSupplier( xModel->getCurrentController(), uno::UNO_QUERY_THROW );
+ uno::Reference< task::XStatusIndicator > xStatusIndicator( xStatusIndicatorSupplier->getStatusIndicator(), uno::UNO_QUERY_THROW );
+@@ -426,7 +426,7 @@ ScVbaApplication::GoTo( const uno::Any&
+
+ if( Scroll.hasValue() )
+ {
+- sal_Bool aScroll;
++ sal_Bool aScroll = sal_False;
+ if( Scroll >>= aScroll )
+ {
+ bScroll = aScroll;
+Index: sc/source/ui/vba/vbahelper.hxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbahelper.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -u -p -r1.2 -r1.2.2.1
+--- sc/source/ui/vba/vbahelper.hxx 25 Apr 2007 16:07:33 -0000 1.2
++++ sc/source/ui/vba/vbahelper.hxx 3 May 2007 11:16:34 -0000 1.2.2.1
+@@ -38,8 +38,8 @@
+ #include <com/sun/star/frame/XModel.hpp>
+ #include <docsh.hxx>
+
+-#define css com::sun::star
+-#define oo org::openoffice
++namespace css = ::com::sun::star;
++
+ namespace org
+ {
+ namespace openoffice
+@@ -69,6 +69,8 @@ namespace org
+ }
+ }
+
++namespace oo = org::openoffice;
++
+ #ifdef DEBUG
+ # define SC_VBA_FIXME(a) OSL_TRACE( a )
+ # define SC_VBA_STUB() SC_VBA_FIXME(( "%s - stubbed\n", __FUNCTION__ ))
+Index: sc/source/ui/vba/vbarange.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbarange.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -u -p -r1.2 -r1.2.2.1
+--- sc/source/ui/vba/vbarange.cxx 25 Apr 2007 16:10:29 -0000 1.2
++++ sc/source/ui/vba/vbarange.cxx 18 May 2007 12:38:29 -0000 1.2.2.1
+@@ -487,7 +487,7 @@ CellValueSetter::processValue( const uno
+ {
+ case uno::TypeClass_BOOLEAN:
+ {
+- sal_Bool bState;
++ sal_Bool bState = sal_False;
+ if ( aValue >>= bState )
+ {
+ uno::Reference< table::XCellRange > xRange( xCell, uno::UNO_QUERY_THROW );
+@@ -2318,7 +2318,7 @@ ScVbaRange::setHidden( const uno::Any& _
+ return;
+ }
+
+- sal_Bool bHidden;
++ sal_Bool bHidden = sal_False;
+ if ( !(_hidden >>= bHidden) )
+ throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Failed to extract param for Hidden property" ) ), uno::Reference< uno::XInterface >() );
+
+Index: sc/source/ui/vba/vbaworksheets.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/vba/vbaworksheets.cxx,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -u -p -r1.2 -r1.2.2.1
+--- sc/source/ui/vba/vbaworksheets.cxx 25 Apr 2007 16:14:08 -0000 1.2
++++ sc/source/ui/vba/vbaworksheets.cxx 17 May 2007 16:12:07 -0000 1.2.2.1
+@@ -227,7 +227,7 @@ ScVbaWorksheets::getVisible() throw (uno
+ void SAL_CALL
+ ScVbaWorksheets::setVisible( const uno::Any& _visible ) throw (uno::RuntimeException)
+ {
+- sal_Bool bState;
++ sal_Bool bState = sal_False;
+ if ( _visible >>= bState )
+ {
+ uno::Reference< container::XEnumeration > xEnum( createEnumeration(), uno::UNO_QUERY_THROW );
+cvs diff: Diffing sc/source/ui/view
+cvs diff: Diffing sc/uiconfig
+cvs diff: Diffing sc/uiconfig/scalc
+cvs diff: Diffing sc/uiconfig/scalc/accelerator
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/de
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/en-GB
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/en-US
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/es
+cvs diff: Diffing sc/uiconfig/scalc/accelerator/fr
+cvs diff: Diffing sc/uiconfig/scalc/menubar
+cvs diff: Diffing sc/uiconfig/scalc/statusbar
+cvs diff: Diffing sc/uiconfig/scalc/toolbar
+cvs diff: Diffing sc/util
+Index: sc/util/makefile.mk
+===================================================================
+RCS file: /cvs/sc/sc/util/makefile.mk,v
+retrieving revision 1.39
+retrieving revision 1.39.2.1
+diff -u -p -r1.39 -r1.39.2.1
+--- sc/util/makefile.mk 25 Apr 2007 16:15:20 -0000 1.39
++++ sc/util/makefile.mk 3 May 2007 09:00:47 -0000 1.39.2.1
+@@ -278,6 +278,7 @@ DEF9NAME=$(SHL9TARGET)
+
+ SHL9STDLIBS= \
+ $(CPPUHELPERLIB) \
++ $(VCLLIB) \
+ $(CPPULIB) \
+ $(COMPHELPERLIB) \
+ $(SVLIB) \
+@@ -294,6 +295,12 @@ SHL9STDLIBS= \
+ SHL9DEPN=$(SHL1TARGETN) $(SHL8TARGETN)
+ SHL9LIBS=$(SLB)$/$(TARGET_VBA).lib
+
++.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC"
++ LIBCOMPNAME=$(LOCAL_COMMON_OUT)$/lib/lib$(SHL9TARGET)$(DLLPOST)
++.ELSE
++ LIBCOMPNAME=$(COMMONBIN)$/$(SHL9TARGET)$(DLLPOST)
++.ENDIF
++
+ .ENDIF
+
+
+cvs diff: Diffing sc/util/defs
+cvs diff: Diffing sc/workben
+cvs diff: Diffing sc/xml
+cvs diff: Diffing svx
+cvs diff: Diffing svx/doc
+cvs diff: Diffing svx/doc/UML
+cvs diff: Diffing svx/inc
+cvs diff: Diffing svx/inc/pch
+cvs diff: Diffing svx/inc/svx
+cvs diff: Diffing svx/inc/svx/sdr
+cvs diff: Diffing svx/inc/svx/sdr/animation
+cvs diff: Diffing svx/inc/svx/sdr/contact
+cvs diff: Diffing svx/inc/svx/sdr/event
+cvs diff: Diffing svx/inc/svx/sdr/mixer
+cvs diff: Diffing svx/inc/svx/sdr/overlay
+cvs diff: Diffing svx/inc/svx/sdr/properties
+cvs diff: Diffing svx/prj
+cvs diff: Diffing svx/qa
+cvs diff: Diffing svx/qa/unoapi
+cvs diff: Diffing svx/qa/unoapi/testdocuments
+cvs diff: Diffing svx/res
+cvs diff: Diffing svx/sdi
+cvs diff: Diffing svx/source
+cvs diff: Diffing svx/source/accessibility
+cvs diff: Diffing svx/source/customshapes
+cvs diff: Diffing svx/source/dialog
+cvs diff: Diffing svx/source/editeng
+cvs diff: Diffing svx/source/engine3d
+cvs diff: Diffing svx/source/fmcomp
+cvs diff: Diffing svx/source/form
+cvs diff: Diffing svx/source/gallery2
+cvs diff: Diffing svx/source/gengal
+cvs diff: Diffing svx/source/inc
+cvs diff: Diffing svx/source/init
+cvs diff: Diffing svx/source/intro
+cvs diff: Diffing svx/source/items
+cvs diff: Diffing svx/source/mnuctrls
+cvs diff: Diffing svx/source/msfilter
+Index: svx/source/msfilter/svxmsbas.cxx
+===================================================================
+RCS file: /cvs/graphics/svx/source/msfilter/svxmsbas.cxx,v
+retrieving revision 1.20
+retrieving revision 1.20.4.1
+diff -u -p -r1.20 -r1.20.4.1
+--- svx/source/msfilter/svxmsbas.cxx 25 Apr 2007 16:18:00 -0000 1.20
++++ svx/source/msfilter/svxmsbas.cxx 2 May 2007 09:16:56 -0000 1.20.4.1
+@@ -368,8 +368,14 @@ BOOL SvxImportMSVBasic::ImportCode_Impl(
+ break;
+ }
+ static ::rtl::OUString sVBAOption( RTL_CONSTASCII_USTRINGPARAM( "Option VBASupport 1\n" ) );
++ static ::rtl::OUString sClassOption( RTL_CONSTASCII_USTRINGPARAM( "Option ClassModule\n" ) );
+ if ( !bAsComment )
++ {
+ modeTypeComment = modeTypeComment + sVBAOption;
++ if ( mType == Class )
++ modeTypeComment = modeTypeComment + sClassOption;
++
++ }
+
+ String sModule(sBasicModule); //#i52606# no need to split Macros in 64KB blocks any more!
+ String sTemp;
+cvs diff: Diffing svx/source/options
+cvs diff: Diffing svx/source/outliner
+cvs diff: Diffing svx/source/sdr
+cvs diff: Diffing svx/source/sdr/animation
+cvs diff: Diffing svx/source/sdr/contact
+cvs diff: Diffing svx/source/sdr/event
+cvs diff: Diffing svx/source/sdr/mixer
+cvs diff: Diffing svx/source/sdr/overlay
+cvs diff: Diffing svx/source/sdr/properties
+cvs diff: Diffing svx/source/src
+cvs diff: Diffing svx/source/stbctrls
+cvs diff: Diffing svx/source/svdraw
+cvs diff: Diffing svx/source/svrtf
+cvs diff: Diffing svx/source/svxlink
+cvs diff: Diffing svx/source/tbxctrls
+cvs diff: Diffing svx/source/toolbars
+cvs diff: Diffing svx/source/unodialogs
+cvs diff: Diffing svx/source/unodialogs/inc
+cvs diff: Diffing svx/source/unodialogs/textconversiondlgs
+cvs diff: Diffing svx/source/unodraw
+cvs diff: Diffing svx/source/unoedit
+cvs diff: Diffing svx/source/unogallery
+cvs diff: Diffing svx/source/xml
+cvs diff: Diffing svx/source/xoutdev
+cvs diff: Diffing svx/uiconfig
+cvs diff: Diffing svx/uiconfig/accelerator
+cvs diff: Diffing svx/uiconfig/accelerator/en-US
+cvs diff: Diffing svx/uiconfig/accelerator/es
+cvs diff: Diffing svx/util
+cvs diff: Diffing svx/util/defs
+cvs diff: Diffing svx/workben
+cvs diff: Diffing svx/workben/msview
+cvs diff: Diffing svx/xml
+cvs diff: Diffing scp2
+cvs diff: Diffing scp2/inc
+cvs diff: Diffing scp2/macros
+cvs diff: Diffing scp2/prj
+cvs diff: Diffing scp2/source
+cvs diff: Diffing scp2/source/activex
+cvs diff: Diffing scp2/source/base
+cvs diff: Diffing scp2/source/calc
+cvs diff: Diffing scp2/source/canvas
+cvs diff: Diffing scp2/source/crashrep
+cvs diff: Diffing scp2/source/draw
+cvs diff: Diffing scp2/source/gnome
+cvs diff: Diffing scp2/source/graphicfilter
+cvs diff: Diffing scp2/source/impress
+cvs diff: Diffing scp2/source/javafilter
+cvs diff: Diffing scp2/source/kde
+cvs diff: Diffing scp2/source/lingu
+cvs diff: Diffing scp2/source/math
+cvs diff: Diffing scp2/source/onlineupdate
+cvs diff: Diffing scp2/source/ooo
+Index: scp2/source/ooo/file_ooo.scp
+===================================================================
+RCS file: /cvs/installation/scp2/source/ooo/file_ooo.scp,v
+retrieving revision 1.188
+retrieving revision 1.188.2.1
+diff -u -p -r1.188 -r1.188.2.1
+--- scp2/source/ooo/file_ooo.scp 25 Apr 2007 16:18:52 -0000 1.188
++++ scp2/source/ooo/file_ooo.scp 3 May 2007 11:09:39 -0000 1.188.2.1
+@@ -1830,6 +1830,13 @@ File gid_File_Rdb_TypesVba
+ Styles = (PACKED, OVERWRITE, PATCH);
+ Name = "oovbaapi.rdb";
+ End
++#else
++File gid_File_ExtnVba
++ TXT_FILE_BODY;
++ Dir = gid_Dir_Program;
++ Styles = (PACKED, OVERWRITE, PATCH);
++ Name = "vbaapi.oxt";
++End
+ #endif
+ #endif
+
+cvs diff: Diffing scp2/source/python
+cvs diff: Diffing scp2/source/quickstart
+cvs diff: Diffing scp2/source/sdkoo
+cvs diff: Diffing scp2/source/testtool
+cvs diff: Diffing scp2/source/ure
+cvs diff: Diffing scp2/source/winexplorerext
+cvs diff: Diffing scp2/source/writer
+cvs diff: Diffing scp2/source/xsltfilter
+cvs diff: Diffing scp2/util
diff --git a/editors/openoffice.org-vcltesttool/files/patch-i65462 b/editors/openoffice.org-vcltesttool/files/patch-i65462
deleted file mode 100644
index 34a8a569562a..000000000000
--- a/editors/openoffice.org-vcltesttool/files/patch-i65462
+++ /dev/null
@@ -1,24 +0,0 @@
-Re-add #i64906# workaround. The root cause of the crash is #i65462#.
-Also see #i65004# for more information.
-
---- sal/osl/unx/security.c 14 Mar 2007 08:28:11 -0000 1.24
-+++ sal/osl/unx/security.c 6 Apr 2007 05:59:15 -0000
-@@ -76,6 +76,10 @@
- static sal_Bool SAL_CALL osl_psz_getConfigDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax);
-
- static oslSecurityImpl * newSecurityImpl(size_t * bufSize) {
-+#if defined (MACOSX) || defined (FREEBSD)
-+ /* #i64906#: sysconf(_SC_GETPW_R_SIZE_MAX) returns -1 on Mac OS X and FreeBSD */
-+ size_t n = 1024;
-+#else
- long m;
- size_t n;
- errno = 0;
-@@ -95,6 +99,7 @@
- OSL_ASSERT(m >= 0 && (unsigned long) m < SIZE_MAX);
- n = (size_t) m;
- }
-+#endif
- if (n <= SIZE_MAX - offsetof(oslSecurityImpl, m_buffer)) {
- *bufSize = n;
- n += offsetof(oslSecurityImpl, m_buffer);
diff --git a/editors/openoffice.org-vcltesttool/files/patch-i75708 b/editors/openoffice.org-vcltesttool/files/patch-i75708
deleted file mode 100644
index 1fc8565c4fd4..000000000000
--- a/editors/openoffice.org-vcltesttool/files/patch-i75708
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: basctl/source/basicide/scriptdocument.cxx
-===================================================================
-RCS file: /cvs/script/basctl/source/basicide/scriptdocument.cxx,v
-retrieving revision 1.2
-diff -u -r1.2 scriptdocument.cxx
---- basctl/source/basicide/scriptdocument.cxx 15 Mar 2007 15:59:30 -0000 1.2
-+++ basctl/source/basicide/scriptdocument.cxx 25 Mar 2007 21:09:03 -0000
-@@ -921,7 +921,7 @@
- //--------------------------------------------------------------------
- sal_Int32 ScriptDocument::hashCode() const
- {
-- return reinterpret_cast< sal_Int32 >( m_pImpl->getObjectShell() );
-+ return reinterpret_cast< sal_IntPtr >( m_pImpl->getObjectShell() );
- }
-
- //--------------------------------------------------------------------
diff --git a/editors/openoffice.org-vcltesttool/files/patch-i76141 b/editors/openoffice.org-vcltesttool/files/patch-i76141
index 1698b377a94f..6b1bfcaf860b 100644
--- a/editors/openoffice.org-vcltesttool/files/patch-i76141
+++ b/editors/openoffice.org-vcltesttool/files/patch-i76141
@@ -316,6 +316,181 @@
--- misc/build/libwpd-0.8.8/src/lib/WP1Part.cpp 2007-01-13 00:18:52.000000000 +0100
***************
+--- libxml2/libxml2-2.6.17.patch 26 Mar 2007 12:25:19 -0000 1.5
++++ libxml2/libxml2-2.6.17.patch 3 May 2007 17:31:33 -0000
+@@ -34,6 +34,74 @@
+ fi
+ echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+ ***************
++*** 8547,8553 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 8547,8553 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
++*** 12266,12272 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 12266,12272 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
++*** 15436,15442 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 15436,15442 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
++*** 17804,17810 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 17804,17810 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 26339,26347 ****
+
+ echo "$as_me:$LINENO: checking for setsockopt" >&5
+--- libxmlsec/xmlsec1-1.2.6.patch 27 Mar 2007 09:36:38 -0000 1.19
++++ libxmlsec/xmlsec1-1.2.6.patch 3 May 2007 18:12:52 -0000
+@@ -158,6 +158,23 @@
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ ***************
++*** 7778,7784 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 7779,7785 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 9046,9052 ****
+ ;;
+ esac
+@@ -215,6 +232,23 @@
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+ ***************
++*** 11497,11503 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 11498,11504 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 13259,13269 ****
+ lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
+ ;;
+@@ -257,6 +291,23 @@
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ ***************
++*** 14667,14673 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 14668,14674 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 15607,15617 ****
+ lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
+ ;;
+@@ -316,6 +367,23 @@
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ ***************
++*** 17035,17041 ****
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++--- 17036,17042 ----
++ ;;
++
++ freebsd*)
++! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
++ version_type=freebsd-$objformat
++ case $version_type in
++ freebsd-elf*)
++***************
+ *** 24598,24604 ****
+ fi
+
--- moz/mozilla-source-1.7.5.patch.orig Fri Apr 27 15:23:29 2007
+++ moz/mozilla-source-1.7.5.patch Fri Apr 27 15:32:07 2007
@@ -266,6 +266,23 @@
@@ -540,31 +715,6 @@
***************
*** 1 ****
! dummy
---- sablot/Sablot-0.52.patch 19 Jun 2006 17:27:11 -0000 1.20
-+++ sablot/Sablot-0.52.patch 5 Apr 2007 00:24:32 -0000
-@@ -632,3 +632,22 @@
- };
- return cnt;
- }
-+*** misc/Sablot-0.52/tools/ltconfig Fri Apr 13 05:50:59 2001
-+--- misc/build/Sablot-0.52/tools/ltconfig Wed Apr 4 20:22:37 2007
-+***************
-+*** 1887,1893 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case "$version_type" in
-+ freebsd-elf*)
-+--- 1887,1893 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case "$version_type" in
-+ freebsd-elf*)
--- sndfile/libsndfile-1.0.9.patch 3 Feb 2006 17:31:46 -0000 1.3
+++ sndfile/libsndfile-1.0.9.patch 5 Apr 2007 00:31:26 -0000
@@ -83,6 +83,23 @@
@@ -708,611 +858,3 @@
diff -uprN misc/vigra1.4.0/include/vigra/array_vector.hxx misc/build/vigra1.4.0/include/vigra/array_vector.hxx
--- misc/vigra1.4.0/include/vigra/array_vector.hxx 2005-12-21 05:53:30.000000000 +0100
+++ misc/build/vigra1.4.0/include/vigra/array_vector.hxx 2006-08-31 12:08:15.172679000 +0200
-
-
-Index: libxmlsec/xmlsec1-1.2.6.patch
-===================================================================
-RCS file: /cvs/external/libxmlsec/xmlsec1-1.2.6.patch,v
-retrieving revision 1.19
-diff -u -r1.19 xmlsec1-1.2.6.patch
---- libxmlsec/xmlsec1-1.2.6.patch 27 Mar 2007 09:36:38 -0000 1.19
-+++ libxmlsec/xmlsec1-1.2.6.patch 28 Apr 2007 23:12:51 -0000
-@@ -1,5 +1,5 @@
--*** misc/xmlsec1-1.2.6/apps/Makefile.in Thu Aug 26 08:00:30 2004
----- misc/build/xmlsec1-1.2.6/apps/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/apps/Makefile.in Thu Aug 26 15:00:30 2004
-+--- misc/build/xmlsec1-1.2.6/apps/Makefile.in Sun Apr 29 08:10:05 2007
- ***************
- *** 370,376 ****
- $(CRYPTO_DEPS) \
-@@ -17,8 +17,8 @@
-
- .SUFFIXES:
- .SUFFIXES: .c .lo .o .obj
--*** misc/xmlsec1-1.2.6/configure Thu Aug 26 08:00:34 2004
----- misc/build/xmlsec1-1.2.6/configure Tue Mar 27 11:26:19 2007
-+*** misc/xmlsec1-1.2.6/configure Thu Aug 26 15:00:34 2004
-+--- misc/build/xmlsec1-1.2.6/configure Sun Apr 29 08:10:06 2007
- ***************
- *** 463,469 ****
- # include <unistd.h>
-@@ -158,6 +158,23 @@
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- ***************
-+*** 7778,7784 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+--- 7779,7785 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+***************
- *** 9046,9052 ****
- ;;
- esac
-@@ -215,6 +232,23 @@
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
- ***************
-+*** 11497,11503 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+--- 11498,11504 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+***************
- *** 13259,13269 ****
- lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
- ;;
-@@ -257,6 +291,23 @@
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- ***************
-+*** 14667,14673 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+--- 14668,14674 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+***************
- *** 15607,15617 ****
- lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
- ;;
-@@ -316,6 +367,23 @@
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- ***************
-+*** 17035,17041 ****
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+--- 17036,17042 ----
-+ ;;
-+
-+ freebsd*)
-+! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
-+ version_type=freebsd-$objformat
-+ case $version_type in
-+ freebsd-elf*)
-+***************
- *** 24598,24604 ****
- fi
-
-@@ -2379,8 +2447,8 @@
- s,@XMLSEC_NO_SHA1_TRUE@,$XMLSEC_NO_SHA1_TRUE,;t t
- s,@XMLSEC_NO_SHA1_FALSE@,$XMLSEC_NO_SHA1_FALSE,;t t
- s,@XMLSEC_NO_SHA1@,$XMLSEC_NO_SHA1,;t t
--*** misc/xmlsec1-1.2.6/configure.in Thu Aug 26 04:49:24 2004
----- misc/build/xmlsec1-1.2.6/configure.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/configure.in Thu Aug 26 11:49:24 2004
-+--- misc/build/xmlsec1-1.2.6/configure.in Sun Apr 29 08:10:06 2007
- ***************
- *** 143,149 ****
- dnl find libxml
-@@ -2496,8 +2564,8 @@
- dnl do not add -L/usr/lib because compiler does it anyway
- if test "z$dir" = "z/usr/lib" ; then
- NSS_LIBS="$NSS_LIBS_LIST"
--*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/Makefile.in Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/Makefile.in Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/Makefile.in Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -2560,8 +2628,8 @@
- ! # Tell versions [3.59,3.63) of GNU make to not export all variables.
- ! # Otherwise a system limit (for SysV at least) may be exceeded.
- ! .NOEXPORT:
--*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/akmngr.h Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/akmngr.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/akmngr.h Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/akmngr.h Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -2637,8 +2705,8 @@
- ! #endif /* __XMLSEC_MSCRYPTO_AKMNGR_H__ */
- !
- !
--*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/x509.h Fri Sep 26 08:12:46 2003
----- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/x509.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/mscrypto/x509.h Fri Sep 26 15:12:46 2003
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/mscrypto/x509.h Sun Apr 29 08:10:06 2007
- ***************
- *** 77,82 ****
- --- 77,97 ----
-@@ -2663,8 +2731,8 @@
-
- #endif /* XMLSEC_NO_X509 */
-
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.am Wed Jul 30 04:46:35 2003
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.am Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.am Wed Jul 30 11:46:35 2003
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.am Sun Apr 29 08:10:06 2007
- ***************
- *** 3,8 ****
- --- 3,9 ----
-@@ -2686,8 +2754,8 @@
- $(NULL)
-
- install-exec-hook:
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.in Thu Aug 26 08:00:31 2004
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.in Thu Aug 26 15:00:31 2004
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/Makefile.in Sun Apr 29 08:10:06 2007
- ***************
- *** 273,278 ****
- --- 273,279 ----
-@@ -2709,8 +2777,8 @@
- $(NULL)
-
- all: all-am
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/akmngr.h Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/akmngr.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/akmngr.h Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/akmngr.h Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -2771,8 +2839,8 @@
- ! #endif /* __XMLSEC_NSS_AKMNGR_H__ */
- !
- !
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/app.h Mon Jan 12 22:06:14 2004
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/app.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/app.h Tue Jan 13 06:06:14 2004
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/app.h Sun Apr 29 08:10:06 2007
- ***************
- *** 22,27 ****
- --- 22,30 ----
-@@ -2796,8 +2864,8 @@
- XMLSEC_CRYPTO_EXPORT int xmlSecNssAppDefaultKeysMngrLoad (xmlSecKeysMngrPtr mngr,
- const char* uri);
- XMLSEC_CRYPTO_EXPORT int xmlSecNssAppDefaultKeysMngrSave (xmlSecKeysMngrPtr mngr,
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/ciphers.h Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/ciphers.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/ciphers.h Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/ciphers.h Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -2837,8 +2905,8 @@
- ! #endif /* __XMLSEC_NSS_CIPHERS_H__ */
- !
- !
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/crypto.h Mon Jan 12 22:06:14 2004
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/crypto.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/crypto.h Tue Jan 13 06:06:14 2004
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/crypto.h Sun Apr 29 08:10:06 2007
- ***************
- *** 264,269 ****
- --- 264,278 ----
-@@ -2857,8 +2925,8 @@
- #endif /* XMLSEC_NO_RSA */
-
-
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/keysstore.h Wed Jul 30 04:46:35 2003
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/keysstore.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/keysstore.h Wed Jul 30 11:46:35 2003
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/keysstore.h Sun Apr 29 08:10:06 2007
- ***************
- *** 16,21 ****
- --- 16,23 ----
-@@ -2881,8 +2949,8 @@
- XMLSEC_CRYPTO_EXPORT int xmlSecNssKeysStoreLoad (xmlSecKeyStorePtr store,
- const char *uri,
- xmlSecKeysMngrPtr keysMngr);
--*** misc/xmlsec1-1.2.6/include/xmlsec/nss/tokens.h Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/tokens.h Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/include/xmlsec/nss/tokens.h Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/include/xmlsec/nss/tokens.h Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -3069,8 +3137,8 @@
- !
- ! #endif /* __XMLSEC_NSS_TOKENS_H__ */
- !
--*** misc/xmlsec1-1.2.6/libxml2-config Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/libxml2-config Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/libxml2-config Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/libxml2-config Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -3123,8 +3191,8 @@
- ! done
- !
- ! exit 0
--*** misc/xmlsec1-1.2.6/ltmain.sh Thu Aug 26 08:00:15 2004
----- misc/build/xmlsec1-1.2.6/ltmain.sh Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/ltmain.sh Thu Aug 26 15:00:15 2004
-+--- misc/build/xmlsec1-1.2.6/ltmain.sh Sun Apr 29 08:10:06 2007
- ***************
- *** 1661,1666 ****
- --- 1661,1671 ----
-@@ -3199,8 +3267,8 @@
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
--*** misc/xmlsec1-1.2.6/src/bn.c Mon Jun 21 20:33:27 2004
----- misc/build/xmlsec1-1.2.6/src/bn.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/bn.c Tue Jun 22 03:33:27 2004
-+--- misc/build/xmlsec1-1.2.6/src/bn.c Sun Apr 29 08:10:06 2007
- ***************
- *** 170,177 ****
- */
-@@ -3766,8 +3834,8 @@
- }
-
- return(0);
--*** misc/xmlsec1-1.2.6/src/dl.c Wed Oct 29 16:57:20 2003
----- misc/build/xmlsec1-1.2.6/src/dl.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/dl.c Thu Oct 30 00:57:20 2003
-+--- misc/build/xmlsec1-1.2.6/src/dl.c Sun Apr 29 08:10:06 2007
- ***************
- *** 329,334 ****
- --- 329,338 ----
-@@ -3793,8 +3861,8 @@
- }
-
- --- 354,359 ----
--*** misc/xmlsec1-1.2.6/src/mscrypto/Makefile.in Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/mscrypto/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/Makefile.in Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/Makefile.in Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -3977,8 +4045,8 @@
- ! # Tell versions [3.59,3.63) of GNU make to not export all variables.
- ! # Otherwise a system limit (for SysV at least) may be exceeded.
- ! .NOEXPORT:
--*** misc/xmlsec1-1.2.6/src/mscrypto/akmngr.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/mscrypto/akmngr.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/akmngr.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/akmngr.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -4218,8 +4286,8 @@
- ! return( 0 ) ;
- ! }
- !
--*** misc/xmlsec1-1.2.6/src/mscrypto/certkeys.c Wed Mar 17 06:06:43 2004
----- misc/build/xmlsec1-1.2.6/src/mscrypto/certkeys.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/certkeys.c Wed Mar 17 14:06:43 2004
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/certkeys.c Sun Apr 29 08:10:06 2007
- ***************
- *** 41,46 ****
- --- 41,47 ----
-@@ -4896,8 +4964,8 @@
- }
-
- static xmlSecKeyDataType
--*** misc/xmlsec1-1.2.6/src/mscrypto/ciphers.c Fri Sep 26 08:12:51 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/ciphers.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/ciphers.c Fri Sep 26 15:12:51 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/ciphers.c Sun Apr 29 08:10:06 2007
- ***************
- *** 785,791 ****
- * AES CBC cipher transforms
-@@ -4966,8 +5034,8 @@
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* size_t klassSize */
- xmlSecMSCryptoBlockCipherSize, /* size_t objSize */
--*** misc/xmlsec1-1.2.6/src/mscrypto/crypto.c Wed Nov 12 03:38:51 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/crypto.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/crypto.c Wed Nov 12 11:38:51 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/crypto.c Sun Apr 29 08:10:06 2007
- ***************
- *** 330,342 ****
- BYTE*
-@@ -4999,8 +5067,8 @@
- return(NULL);
- }
-
--*** misc/xmlsec1-1.2.6/src/mscrypto/digests.c Tue Sep 30 04:09:51 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/digests.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/digests.c Tue Sep 30 11:09:51 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/digests.c Sun Apr 29 08:10:06 2007
- ***************
- *** 96,107 ****
-
-@@ -5031,8 +5099,8 @@
- }
-
- return(0);
--*** misc/xmlsec1-1.2.6/src/mscrypto/kt_rsa.c Fri Sep 26 22:29:25 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/kt_rsa.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/kt_rsa.c Sat Sep 27 05:29:25 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/kt_rsa.c Sun Apr 29 08:10:06 2007
- ***************
- *** 66,72 ****
- static int xmlSecMSCryptoRsaPkcs1Process (xmlSecTransformPtr transform,
-@@ -5050,8 +5118,8 @@
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecMSCryptoRsaPkcs1Size, /* xmlSecSize objSize */
--*** misc/xmlsec1-1.2.6/src/mscrypto/signatures.c Fri Sep 26 22:29:25 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/signatures.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/signatures.c Sat Sep 27 05:29:25 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/signatures.c Sun Apr 29 08:10:06 2007
- ***************
- *** 483,489 ****
- * RSA-SHA1 signature transform
-@@ -5086,8 +5154,8 @@
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecMSCryptoSignatureSize, /* xmlSecSize objSize */
--*** misc/xmlsec1-1.2.6/src/mscrypto/symkeys.c Fri Sep 26 02:58:13 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/symkeys.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/symkeys.c Fri Sep 26 09:58:13 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/symkeys.c Sun Apr 29 08:10:06 2007
- ***************
- *** 72,78 ****
- * <xmlsec:AESKeyValue> processing
-@@ -5122,8 +5190,8 @@
- sizeof(xmlSecKeyDataKlass),
- xmlSecKeyDataBinarySize,
-
--*** misc/xmlsec1-1.2.6/src/mscrypto/x509.c Fri Sep 26 02:58:13 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/x509.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/x509.c Fri Sep 26 09:58:13 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/x509.c Sun Apr 29 08:10:06 2007
- ***************
- *** 240,246 ****
-
-@@ -5369,8 +5437,8 @@
- sizeof(xmlSecKeyDataKlass),
- sizeof(xmlSecKeyData),
-
--*** misc/xmlsec1-1.2.6/src/mscrypto/x509vfy.c Sat Sep 27 05:12:22 2003
----- misc/build/xmlsec1-1.2.6/src/mscrypto/x509vfy.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/mscrypto/x509vfy.c Sat Sep 27 12:12:22 2003
-+--- misc/build/xmlsec1-1.2.6/src/mscrypto/x509vfy.c Sun Apr 29 08:10:06 2007
- ***************
- *** 70,76 ****
- static xmlSecByte * xmlSecMSCryptoX509NameRead (xmlSecByte *str,
-@@ -6115,8 +6183,8 @@
- }
- }
- xmlFree(cName);
--*** misc/xmlsec1-1.2.6/src/nss/Makefile.am Tue Sep 16 11:43:03 2003
----- misc/build/xmlsec1-1.2.6/src/nss/Makefile.am Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/Makefile.am Tue Sep 16 18:43:03 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/Makefile.am Sun Apr 29 08:10:06 2007
- ***************
- *** 20,40 ****
- $(NULL)
-@@ -6163,8 +6231,8 @@
- $(NULL)
-
- libxmlsec1_nss_la_LIBADD = \
--*** misc/xmlsec1-1.2.6/src/nss/Makefile.in Thu Aug 26 08:00:32 2004
----- misc/build/xmlsec1-1.2.6/src/nss/Makefile.in Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/Makefile.in Thu Aug 26 15:00:32 2004
-+--- misc/build/xmlsec1-1.2.6/src/nss/Makefile.in Sun Apr 29 08:10:06 2007
- ***************
- *** 54,62 ****
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-@@ -6288,8 +6356,8 @@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pkikeys.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signatures.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symkeys.Plo@am__quote@
--*** misc/xmlsec1-1.2.6/src/nss/akmngr.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/nss/akmngr.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/akmngr.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/nss/akmngr.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -6678,8 +6746,8 @@
- ! return(0) ;
- ! }
- !
--*** misc/xmlsec1-1.2.6/src/nss/ciphers.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/ciphers.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/ciphers.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/ciphers.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1,838 ****
- ! /**
-@@ -8472,8 +8540,8 @@
- }
- !
-
--*** misc/xmlsec1-1.2.6/src/nss/crypto.c Wed Oct 29 16:57:25 2003
----- misc/build/xmlsec1-1.2.6/src/nss/crypto.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/crypto.c Thu Oct 30 00:57:25 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/crypto.c Sun Apr 29 08:10:06 2007
- ***************
- *** 130,135 ****
- --- 130,136 ----
-@@ -8526,8 +8594,8 @@
-
- return(gXmlSecNssFunctions);
- }
--*** misc/xmlsec1-1.2.6/src/nss/digests.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/digests.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/digests.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/digests.c Sun Apr 29 08:10:06 2007
- ***************
- *** 21,27 ****
- #include <xmlsec/transforms.h>
-@@ -8623,8 +8691,8 @@
- return(-1);
- }
- xmlSecAssert2(ctx->dgstSize > 0, -1);
--*** misc/xmlsec1-1.2.6/src/nss/hmac.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/hmac.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/hmac.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/hmac.c Sun Apr 29 08:10:06 2007
- ***************
- *** 23,30 ****
- #include <xmlsec/transforms.h>
-@@ -8758,8 +8826,8 @@
- return(-1);
- }
- xmlSecAssert2(dgstSize > 0, -1);
--*** misc/xmlsec1-1.2.6/src/nss/keysstore.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/keysstore.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/keysstore.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/keysstore.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1,119 ****
- /**
-@@ -9826,8 +9894,8 @@
- ! return(0);
- }
- +
--*** misc/xmlsec1-1.2.6/src/nss/keytrans.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/nss/keytrans.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/keytrans.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/nss/keytrans.c Sun Apr 29 08:10:06 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -10576,8 +10644,8 @@
- !
- ! #endif /* XMLSEC_NO_RSA */
- !
--*** misc/xmlsec1-1.2.6/src/nss/keywrapers.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/nss/keywrapers.c Tue Mar 27 11:21:29 2007
-+*** misc/xmlsec1-1.2.6/src/nss/keywrapers.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/nss/keywrapers.c Sun Apr 29 08:10:07 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -11779,8 +11847,8 @@
- !
- ! #endif /* XMLSEC_NO_DES */
- !
--*** misc/xmlsec1-1.2.6/src/nss/pkikeys.c Wed Mar 17 06:06:45 2004
----- misc/build/xmlsec1-1.2.6/src/nss/pkikeys.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/pkikeys.c Wed Mar 17 14:06:45 2004
-+--- misc/build/xmlsec1-1.2.6/src/nss/pkikeys.c Sun Apr 29 08:10:07 2007
- ***************
- *** 5,10 ****
- --- 5,11 ----
-@@ -12579,8 +12647,8 @@
-
- return(8 * SECKEY_PublicKeyStrength(ctx->pubkey));
- }
--*** misc/xmlsec1-1.2.6/src/nss/signatures.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/signatures.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/signatures.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/signatures.c Sun Apr 29 08:10:07 2007
- ***************
- *** 199,205 ****
- xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
-@@ -12717,8 +12785,8 @@
- return(-1);
- }
-
--*** misc/xmlsec1-1.2.6/src/nss/symkeys.c Mon Jul 21 05:12:52 2003
----- misc/build/xmlsec1-1.2.6/src/nss/symkeys.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/symkeys.c Mon Jul 21 12:12:52 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/symkeys.c Sun Apr 29 08:10:07 2007
- ***************
- *** 15,192 ****
- #include <stdio.h>
-@@ -14049,8 +14117,8 @@
- *
- * Sets the value of HMAC key data.
- *
--*** misc/xmlsec1-1.2.6/src/nss/tokens.c Tue Mar 27 11:34:32 2007
----- misc/build/xmlsec1-1.2.6/src/nss/tokens.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/tokens.c Sun Apr 29 08:10:41 2007
-+--- misc/build/xmlsec1-1.2.6/src/nss/tokens.c Sun Apr 29 08:10:07 2007
- ***************
- *** 1 ****
- ! dummy
-@@ -14599,8 +14667,8 @@
- ! return(0);
- ! }
- !
--*** misc/xmlsec1-1.2.6/src/nss/x509.c Fri Sep 26 05:53:09 2003
----- misc/build/xmlsec1-1.2.6/src/nss/x509.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/x509.c Fri Sep 26 12:53:09 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/x509.c Sun Apr 29 08:10:07 2007
- ***************
- *** 34,40 ****
- #include <xmlsec/keys.h>
-@@ -15708,8 +15776,8 @@
- static void
- xmlSecNssX509CertDebugDump(CERTCertificate* cert, FILE* output) {
- --- 1700,1705 ----
--*** misc/xmlsec1-1.2.6/src/nss/x509vfy.c Fri Sep 26 02:58:15 2003
----- misc/build/xmlsec1-1.2.6/src/nss/x509vfy.c Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/src/nss/x509vfy.c Fri Sep 26 09:58:15 2003
-+--- misc/build/xmlsec1-1.2.6/src/nss/x509vfy.c Sun Apr 29 08:10:07 2007
- ***************
- *** 30,35 ****
- --- 30,36 ----
-@@ -16851,8 +16919,8 @@
-
- + #endif /* XMLSEC_NO_X509 */
-
--*** misc/xmlsec1-1.2.6/win32/Makefile.msvc Wed Jun 9 16:35:12 2004
----- misc/build/xmlsec1-1.2.6/win32/Makefile.msvc Tue Mar 27 11:21:30 2007
-+*** misc/xmlsec1-1.2.6/win32/Makefile.msvc Wed Jun 9 23:35:12 2004
-+--- misc/build/xmlsec1-1.2.6/win32/Makefile.msvc Sun Apr 29 08:10:07 2007
- ***************
- *** 223,228 ****
- --- 223,232 ----
diff --git a/editors/openoffice.org-vcltesttool/files/patch-i76320 b/editors/openoffice.org-vcltesttool/files/patch-i76320
deleted file mode 100644
index bd4639171dde..000000000000
--- a/editors/openoffice.org-vcltesttool/files/patch-i76320
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: sd/source/ui/inc/tools/ConfigurationAccess.hxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/inc/tools/ConfigurationAccess.hxx,v
-retrieving revision 1.2.8.1
-retrieving revision 1.2
-diff -u -r1.2.8.1 -r1.2
---- sd/source/ui/inc/tools/ConfigurationAccess.hxx 12 Apr 2007 20:30:02 -0000 1.2.8.1
-+++ sd/source/ui/inc/tools/ConfigurationAccess.hxx 3 Apr 2007 16:14:52 -0000 1.2
-@@ -110,7 +110,7 @@
- @param rList
- The list to be filled.
- */
-- static void FillList(
-+ static void ConfigurationAccess::FillList(
- const com::sun::star::uno::Reference<com::sun::star::container::XNameAccess>& rxContainer,
- const ::rtl::OUString& rsArgument,
- ::std::vector<rtl::OUString>& rList);
diff --git a/editors/openoffice.org-vcltesttool/files/patch-i76968 b/editors/openoffice.org-vcltesttool/files/patch-i76968
new file mode 100644
index 000000000000..8bf3e43d703d
--- /dev/null
+++ b/editors/openoffice.org-vcltesttool/files/patch-i76968
@@ -0,0 +1,642 @@
+Sync FreeBSD-specific files with CWS sixtyfour11.
+
+--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/makefile.mk Thu Jan 25 08:27:35 2007
++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/makefile.mk Wed Apr 25 10:57:20 2007
+@@ -52,11 +52,6 @@
+ CFLAGS += -DLEAK_STATIC_DATA
+ .ENDIF
+
+-NOOPTFILES= \
+- $(SLO)$/uno2cpp.obj
+-
+-
+-CFLAGSNOOPT=-O0
+
+ SLOFILES= \
+ $(SLO)$/abi.obj \
+--- bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx Thu May 3 21:45:19 2007
++++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx Wed Apr 25 10:57:33 2007
+@@ -38,6 +38,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <rtl/alloc.h>
+
+ #include <com/sun/star/uno/genfunc.hxx>
+@@ -55,265 +56,188 @@
+ using namespace ::rtl;
+ using namespace ::com::sun::star::uno;
+
+-void dummy_can_throw_anything( char const * );
+-
+-// 6 integral parameters are passed in registers
+-const sal_uInt32 GPR_COUNT = 6;
+-
+-// 8 floating point parameters are passed in SSE registers
+-const sal_uInt32 FPR_COUNT = 8;
+-
+-static inline void
+-invoke_count_words(char * pPT, // Parameter Types
+- sal_uInt32 & nr_gpr, // Number of arguments in GPRs
+- sal_uInt32 & nr_fpr, // Number of arguments in FPRs
+- sal_uInt32 & nr_stack) // Number of arguments in stack
+-{
+- nr_gpr = 0;
+- nr_fpr = 0;
+- nr_stack = 0;
+- char c;
+-
+- while ((c = *pPT++) != 'X')
+- {
+- if (c == 'F' || c == 'D')
+- {
+- if (nr_fpr < FPR_COUNT)
+- nr_fpr++;
+- else
+- nr_stack++;
+- }
+- else
+- {
+- if (nr_gpr < GPR_COUNT)
+- nr_gpr++;
+- else
+- nr_stack++;
+- }
+- }
+-}
+-
+-static void
+-invoke_copy_to_stack(sal_uInt64 * pDS, // Stack Storage
+- char * pPT, // Parameter Types
+- sal_uInt64 * pSV, // Source Values
+- sal_uInt64 * pGPR, // General Purpose Registers
+- double * pFPR) // Floating-Point Registers
+-{
+- sal_uInt32 nr_gpr = 0;
+- sal_uInt32 nr_fpr = 0;
+- sal_uInt64 value;
+- char c;
+-
+- while ((c = *pPT++) != 'X')
+- {
+- switch (c)
+- {
+- case 'D': // Double
+- if (nr_fpr < FPR_COUNT)
+- pFPR[nr_fpr++] = *reinterpret_cast<double *>( pSV++ );
+- else
+- *pDS++ = *pSV++;
+- break;
+-
+- case 'F': // Float
+- if (nr_fpr < FPR_COUNT)
+- // The value in %xmm register is already prepared to
+- // be retrieved as a float. Therefore, we pass the
+- // value verbatim, as a double without conversion.
+- pFPR[nr_fpr++] = *reinterpret_cast<double *>( pSV++ );
+- else
+- *pDS++ = *pSV++;
+- break;
+-
+- case 'H': // 64-bit Word
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *pSV++;
+- else
+- *pDS++ = *pSV++;
+- break;
+-
+- case 'I': // 32-bit Word
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *reinterpret_cast<sal_uInt32 *>( pSV++ );
+- else
+- *pDS++ = *reinterpret_cast<sal_uInt32 *>( pSV++ );
+- break;
+-
+- case 'S': // 16-bit Word
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *reinterpret_cast<sal_uInt16 *>( pSV++ );
+- else
+- *pDS++ = *reinterpret_cast<sal_uInt16 *>( pSV++ );
+- break;
+-
+- case 'B': // Byte
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *reinterpret_cast<sal_uInt8 *>( pSV++ );
+- else
+- *pDS++ = *reinterpret_cast<sal_uInt8 *>( pSV++ );
+- break;
+-
+- default: // Default, assume 64-bit values
+- if (nr_gpr < GPR_COUNT)
+- pGPR[nr_gpr++] = *pSV++;
+- else
+- *pDS++ = *pSV++;
+- break;
+- }
+- }
+-}
+-
+ //==================================================================================================
+ static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex,
+- void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn,
+- char * pPT, sal_uInt64 * pStackLongs, sal_uInt32 nStackLongs)
+-{
+- sal_uInt32 nr_gpr, nr_fpr, nr_stack;
+- invoke_count_words(pPT, nr_gpr, nr_fpr, nr_stack);
++ void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn,
++ sal_uInt64 *pStack, sal_uInt32 nStack,
++ sal_uInt64 *pGPR, sal_uInt32 nGPR,
++ double *pFPR, sal_uInt32 nFPR) __attribute__((noinline));
+
+- // Stack, if used, must be 16-bytes aligned
+- if (nr_stack)
+- nr_stack = (nr_stack + 1) & ~1;
+-
++static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex,
++ void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr, bool bSimpleReturn,
++ sal_uInt64 *pStack, sal_uInt32 nStack,
++ sal_uInt64 *pGPR, sal_uInt32 nGPR,
++ double *pFPR, sal_uInt32 nFPR)
++{
+ #if OSL_DEBUG_LEVEL > 1
+- // Let's figure out what is really going on here
+- fprintf(stderr,"callVirtualMethod() parameters string is %s\n", pPT);
+- {
+- sal_uInt32 k = nStackLongs;
+- sal_uInt64 *q = pStackLongs;
+- while (k > 0)
+- {
+- fprintf(stderr, "uno stack is: %lx\n", *q);
+- k--;
+- q++;
+- }
+- }
+-#endif
+-
+- // Load parameters to stack, if necessary
+- sal_uInt64 *stack = (sal_uInt64 *) __builtin_alloca(nr_stack * 8);
+- sal_uInt64 gpregs[GPR_COUNT];
+- double fpregs[FPR_COUNT];
+- invoke_copy_to_stack(stack, pPT, pStackLongs, gpregs, fpregs);
+-
+- // Load FPR registers from fpregs[]
+- register double d0 asm("xmm0");
+- register double d1 asm("xmm1");
+- register double d2 asm("xmm2");
+- register double d3 asm("xmm3");
+- register double d4 asm("xmm4");
+- register double d5 asm("xmm5");
+- register double d6 asm("xmm6");
+- register double d7 asm("xmm7");
+-
+- switch (nr_fpr) {
+-#define ARG_FPR(N) \
+- case N+1: d##N = fpregs[N];
+- ARG_FPR(7);
+- ARG_FPR(6);
+- ARG_FPR(5);
+- ARG_FPR(4);
+- ARG_FPR(3);
+- ARG_FPR(2);
+- ARG_FPR(1);
+- ARG_FPR(0);
+- case 0:;
+-#undef ARG_FPR
+- }
+-
+- // Load GPR registers from gpregs[]
+- register sal_uInt64 a0 asm("rdi");
+- register sal_uInt64 a1 asm("rsi");
+- register sal_uInt64 a2 asm("rdx");
+- register sal_uInt64 a3 asm("rcx");
+- register sal_uInt64 a4 asm("r8");
+- register sal_uInt64 a5 asm("r9");
+-
+- switch (nr_gpr) {
+-#define ARG_GPR(N) \
+- case N+1: a##N = gpregs[N];
+- ARG_GPR(5);
+- ARG_GPR(4);
+- ARG_GPR(3);
+- ARG_GPR(2);
+- ARG_GPR(1);
+- ARG_GPR(0);
+- case 0:;
+-#undef ARG_GPR
++ // Let's figure out what is really going on here
++ {
++ fprintf( stderr, "= callVirtualMethod() =\nGPR's (%d): ", nGPR );
++ for ( int i = 0; i < nGPR; ++i )
++ fprintf( stderr, "0x%lx, ", pGPR[i] );
++ fprintf( stderr, "\nFPR's (%d): ", nFPR );
++ for ( int i = 0; i < nFPR; ++i )
++ fprintf( stderr, "%f, ", pFPR[i] );
++ fprintf( stderr, "\nStack (%d): ", nStack );
++ for ( int i = 0; i < nStack; ++i )
++ fprintf( stderr, "0x%lx, ", pStack[i] );
++ fprintf( stderr, "\n" );
+ }
++#endif
+
+- if ( bSimpleReturn )
+- a0 = (sal_uInt64) pThis;
+- else
+- a1 = (sal_uInt64) pThis;
+-
+- // Ensure that assignments to SSE registers won't be optimized away
+- asm("" ::
+- "x" (d0), "x" (d1), "x" (d2), "x" (d3),
+- "x" (d4), "x" (d5), "x" (d6), "x" (d7));
++ // The call instruction within the asm section of callVirtualMethod may throw
++ // exceptions. So that the compiler handles this correctly, it is important
++ // that (a) callVirtualMethod might call dummy_can_throw_anything (although this
++ // never happens at runtime), which in turn can throw exceptions, and (b)
++ // callVirtualMethod is not inlined at its call site (so that any exceptions are
++ // caught which are thrown from the instruction calling callVirtualMethod):
++ if ( !pThis )
++ CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything( "xxx" ); // address something
++
++ // Should not happen, but...
++ if ( nFPR > x86_64::MAX_SSE_REGS )
++ nFPR = x86_64::MAX_SSE_REGS;
++ if ( nGPR > x86_64::MAX_GPR_REGS )
++ nGPR = x86_64::MAX_GPR_REGS;
+
+ // Get pointer to method
+ sal_uInt64 pMethod = *((sal_uInt64 *)pThis);
+ pMethod += 8 * nVtableIndex;
+ pMethod = *((sal_uInt64 *)pMethod);
+
+- union ReturnValue {
+- struct {
+- sal_uInt64 rax;
+- sal_uInt64 rdx;
+- } i;
+- struct {
+- double xmm0;
+- double xmm1;
+- } f;
+- };
++ // Load parameters to stack, if necessary
++ if ( nStack )
++ {
++ // 16-bytes aligned
++ sal_uInt32 nStackBytes = ( ( nStack + 1 ) >> 1 ) * 16;
++ sal_uInt64 *pCallStack = (sal_uInt64 *) __builtin_alloca( nStackBytes );
++ memcpy( pCallStack, pStack, nStackBytes );
++ }
+
+- typedef ReturnValue (* FunctionCall )( sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64 );
++ // Return values
++ sal_uInt64 rax;
++ sal_uInt64 rdx;
++ double xmm0;
+
+- // Perform the call
+- ReturnValue aRet = ( ( FunctionCall ) pMethod )( a0, a1, a2, a3, a4, a5 );
++ asm volatile (
++
++ // Fill the xmm registers
++ "movq %2, %%rax\n\t"
+
+- switch (pReturnTypeDescr->eTypeClass)
+- {
+- case typelib_TypeClass_HYPER:
+- case typelib_TypeClass_UNSIGNED_HYPER:
+- *reinterpret_cast<sal_uInt64 *>( pRegisterReturn ) = aRet.i.rax;
+- break;
+- case typelib_TypeClass_LONG:
+- case typelib_TypeClass_UNSIGNED_LONG:
+- case typelib_TypeClass_ENUM:
+- *reinterpret_cast<sal_uInt32 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt32*>( &aRet.i.rax );
+- break;
+- case typelib_TypeClass_CHAR:
+- case typelib_TypeClass_SHORT:
+- case typelib_TypeClass_UNSIGNED_SHORT:
+- *reinterpret_cast<sal_uInt16 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt16*>( &aRet.i.rax );
+- break;
+- case typelib_TypeClass_BOOLEAN:
+- case typelib_TypeClass_BYTE:
+- *reinterpret_cast<sal_uInt8 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt8*>( &aRet.i.rax );
+- break;
+- case typelib_TypeClass_FLOAT:
+- *reinterpret_cast<float *>( pRegisterReturn ) = *reinterpret_cast<float*>( &aRet.f.xmm0 );
+- break;
+- case typelib_TypeClass_DOUBLE:
+- *reinterpret_cast<double *>( pRegisterReturn ) = *reinterpret_cast<double*>( &aRet.f.xmm0 );
+- break;
+- default: {
+- sal_Int32 const nRetSize = pReturnTypeDescr->nSize;
+- if (bSimpleReturn && nRetSize <= 16 && nRetSize > 0) {
+- if (nRetSize > 8)
+- static_cast<sal_uInt64 *>(pRegisterReturn)[1] = aRet.i.rdx;
+- static_cast<sal_uInt64 *>(pRegisterReturn)[0] = aRet.i.rax;
+- }
++ "movsd (%%rax), %%xmm0\n\t"
++ "movsd 8(%%rax), %%xmm1\n\t"
++ "movsd 16(%%rax), %%xmm2\n\t"
++ "movsd 24(%%rax), %%xmm3\n\t"
++ "movsd 32(%%rax), %%xmm4\n\t"
++ "movsd 40(%%rax), %%xmm5\n\t"
++ "movsd 48(%%rax), %%xmm6\n\t"
++ "movsd 56(%%rax), %%xmm7\n\t"
++
++ // Fill the general purpose registers
++ "movq %1, %%rax\n\t"
++
++ "movq (%%rax), %%rdi\n\t"
++ "movq 8(%%rax), %%rsi\n\t"
++ "movq 16(%%rax), %%rdx\n\t"
++ "movq 24(%%rax), %%rcx\n\t"
++ "movq 32(%%rax), %%r8\n\t"
++ "movq 40(%%rax), %%r9\n\t"
++
++ // Perform the call
++ "movq %0, %%r11\n\t"
++ "movq %3, %%rax\n\t"
++ "call *%%r11\n\t"
++
++ // Fill the return values
++ "movq %%rax, %4\n\t"
++ "movq %%rdx, %5\n\t"
++ "movsd %%xmm0, %6\n\t"
++ :
++ : "m" ( pMethod ), "m" ( pGPR ), "m" ( pFPR ), "m" ( nFPR ),
++ "m" ( rax ), "m" ( rdx ), "m" ( xmm0 )
++ : "rax", "rdi", "rsi", "rdx", "rcx", "r8", "r9", "r11"
++ );
++
++ switch (pReturnTypeDescr->eTypeClass)
++ {
++ case typelib_TypeClass_HYPER:
++ case typelib_TypeClass_UNSIGNED_HYPER:
++ *reinterpret_cast<sal_uInt64 *>( pRegisterReturn ) = rax;
+ break;
++ case typelib_TypeClass_LONG:
++ case typelib_TypeClass_UNSIGNED_LONG:
++ case typelib_TypeClass_ENUM:
++ *reinterpret_cast<sal_uInt32 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt32*>( &rax );
++ break;
++ case typelib_TypeClass_CHAR:
++ case typelib_TypeClass_SHORT:
++ case typelib_TypeClass_UNSIGNED_SHORT:
++ *reinterpret_cast<sal_uInt16 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt16*>( &rax );
++ break;
++ case typelib_TypeClass_BOOLEAN:
++ case typelib_TypeClass_BYTE:
++ *reinterpret_cast<sal_uInt8 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt8*>( &rax );
++ break;
++ case typelib_TypeClass_FLOAT:
++ case typelib_TypeClass_DOUBLE:
++ *reinterpret_cast<double *>( pRegisterReturn ) = xmm0;
++ break;
++ default:
++ {
++ sal_Int32 const nRetSize = pReturnTypeDescr->nSize;
++ if (bSimpleReturn && nRetSize <= 16 && nRetSize > 0)
++ {
++ if (nRetSize > 8)
++ static_cast<sal_uInt64 *>(pRegisterReturn)[1] = rdx;
++ static_cast<sal_uInt64 *>(pRegisterReturn)[0] = rax;
++ }
++ break;
++ }
+ }
+- }
+ }
+
++//==================================================================================================
++
++// Macros for easier insertion of values to registers or stack
++// pSV - pointer to the source
++// nr - order of the value [will be increased if stored to register]
++// pFPR, pGPR - pointer to the registers
++// pDS - pointer to the stack [will be increased if stored here]
++
++// The value in %xmm register is already prepared to be retrieved as a float,
++// thus we treat float and double the same
++#define INSERT_FLOAT_DOUBLE( pSV, nr, pFPR, pDS ) \
++ if ( nr < x86_64::MAX_SSE_REGS ) \
++ pFPR[nr++] = *reinterpret_cast<double *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV ); // verbatim!
++
++#define INSERT_INT64( pSV, nr, pGPR, pDS ) \
++ if ( nr < x86_64::MAX_GPR_REGS ) \
++ pGPR[nr++] = *reinterpret_cast<sal_uInt64 *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV );
++
++#define INSERT_INT32( pSV, nr, pGPR, pDS ) \
++ if ( nr < x86_64::MAX_GPR_REGS ) \
++ pGPR[nr++] = *reinterpret_cast<sal_uInt32 *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt32 *>( pSV );
++
++#define INSERT_INT16( pSV, nr, pGPR, pDS ) \
++ if ( nr < x86_64::MAX_GPR_REGS ) \
++ pGPR[nr++] = *reinterpret_cast<sal_uInt16 *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt16 *>( pSV );
++
++#define INSERT_INT8( pSV, nr, pGPR, pDS ) \
++ if ( nr < x86_64::MAX_GPR_REGS ) \
++ pGPR[nr++] = *reinterpret_cast<sal_uInt8 *>( pSV ); \
++ else \
++ *pDS++ = *reinterpret_cast<sal_uInt8 *>( pSV );
+
+ //==================================================================================================
++
+ static void cpp_call(
+ bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
+ bridges::cpp_uno::shared::VtableSlot aVtableSlot,
+@@ -322,54 +246,52 @@
+ void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
+ {
+ // Maxium space for [complex ret ptr], values | ptr ...
+- char * pCppStack = (char *)__builtin_alloca( (nParams + 3) * sizeof(sal_uInt64) );
+- char * pCppStackStart = pCppStack;
++ // (but will be used less - some of the values will be in pGPR and pFPR)
++ sal_uInt64 *pStack = (sal_uInt64 *)__builtin_alloca( (nParams + 3) * sizeof(sal_uInt64) );
++ sal_uInt64 *pStackStart = pStack;
+
+- // We need to know parameter types for callVirtualMethod() so generate a signature string
+- char * pParamType = (char *)__builtin_alloca( nParams + 3 );
+- char * pPT = pParamType;
++ sal_uInt64 pGPR[x86_64::MAX_GPR_REGS];
++ sal_uInt32 nGPR = 0;
++
++ double pFPR[x86_64::MAX_SSE_REGS];
++ sal_uInt32 nFPR = 0;
+
+ // Return
+ typelib_TypeDescription * pReturnTypeDescr = 0;
+ TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
+ OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
+
+- void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
++ void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion (see below)
+
+ bool bSimpleReturn = true;
+- if (pReturnTypeDescr)
++ if ( pReturnTypeDescr )
+ {
+ if ( x86_64::return_in_hidden_param( pReturnTypeRef ) )
+ bSimpleReturn = false;
+
+- if (bSimpleReturn)
++ if ( bSimpleReturn )
+ pCppReturn = pUnoReturn; // direct way for simple types
+ else
+ {
+ // complex return via ptr
+- pCppReturn = *(void **)pCppStack = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
+- ? __builtin_alloca( pReturnTypeDescr->nSize )
+- : pUnoReturn); // direct way
+- *pPT++ = 'H';
+- pCppStack += sizeof(void *);
++ pCppReturn = bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )?
++ __builtin_alloca( pReturnTypeDescr->nSize ) : pUnoReturn;
++ INSERT_INT64( &pCppReturn, nGPR, pGPR, pStack );
+ }
+ }
+
+ // Push "this" pointer
+ void * pAdjustedThisPtr = reinterpret_cast< void ** >( pThis->getCppI() ) + aVtableSlot.offset;
+- *(void **)pCppStack = pAdjustedThisPtr;
+- *pPT++ = 'H';
+- pCppStack += sizeof(void *);
++ INSERT_INT64( &pAdjustedThisPtr, nGPR, pGPR, pStack );
+
+- // stack space
+ // Args
+- void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
++ void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
+ // Indizes of values this have to be converted (interface conversion cpp<=>uno)
+ sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
+ // Type descriptions for reconversions
+ typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
+
+- sal_Int32 nTempIndizes = 0;
++ sal_Int32 nTempIndizes = 0;
+
+ for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
+ {
+@@ -379,45 +301,32 @@
+
+ if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
+ {
+- uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
++ uno_copyAndConvertData( pCppArgs[nPos] = alloca( 8 ), pUnoArgs[nPos], pParamTypeDescr,
+ pThis->getBridge()->getUno2Cpp() );
+
+ switch (pParamTypeDescr->eTypeClass)
+ {
+-
+- // we need to know type of each param so that we know whether to use
+- // gpr or fpr to pass in parameters:
+- // Key: I - 32-bit value passed in gpr
+- // B - byte value passed in gpr
+- // S - short value passed in gpr
+- // F - float value pass in fpr
+- // D - double value pass in fpr
+- // H - long value passed in gpr
+- // X - indicates end of parameter description string
+-
++ case typelib_TypeClass_HYPER:
++ case typelib_TypeClass_UNSIGNED_HYPER:
++ INSERT_INT64( pCppArgs[nPos], nGPR, pGPR, pStack );
++ break;
+ case typelib_TypeClass_LONG:
+ case typelib_TypeClass_UNSIGNED_LONG:
+ case typelib_TypeClass_ENUM:
+- *pPT++ = 'I';
++ INSERT_INT32( pCppArgs[nPos], nGPR, pGPR, pStack );
+ break;
+ case typelib_TypeClass_SHORT:
+ case typelib_TypeClass_CHAR:
+ case typelib_TypeClass_UNSIGNED_SHORT:
+- *pPT++ = 'S';
++ INSERT_INT16( pCppArgs[nPos], nGPR, pGPR, pStack );
+ break;
+ case typelib_TypeClass_BOOLEAN:
+ case typelib_TypeClass_BYTE:
+- *pPT++ = 'B';
++ INSERT_INT8( pCppArgs[nPos], nGPR, pGPR, pStack );
+ break;
+ case typelib_TypeClass_FLOAT:
+- *pPT++ = 'F';
+- break;
+ case typelib_TypeClass_DOUBLE:
+- *pPT++ = 'D';
+- break;
+- case typelib_TypeClass_HYPER:
+- case typelib_TypeClass_UNSIGNED_HYPER:
+- *pPT++ = 'H';
++ INSERT_FLOAT_DOUBLE( pCppArgs[nPos], nFPR, pFPR, pStack );
+ break;
+ }
+
+@@ -430,7 +339,7 @@
+ {
+ // cpp out is constructed mem, uno out is not!
+ uno_constructData(
+- *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++ pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+ pParamTypeDescr );
+ pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
+ // will be released at reconversion
+@@ -440,7 +349,7 @@
+ else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
+ {
+ uno_copyAndConvertData(
+- *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++ pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
+ pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() );
+
+ pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
+@@ -449,27 +358,22 @@
+ }
+ else // direct way
+ {
+- *(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
++ pCppArgs[nPos] = pUnoArgs[nPos];
+ // no longer needed
+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
+ }
+- // FIXME: is this the right way to pass these?
+- *pPT++='H';
++ INSERT_INT64( &(pCppArgs[nPos]), nGPR, pGPR, pStack );
+ }
+- pCppStack += sizeof(sal_uInt64); // standard parameter length
+ }
+
+- // terminate the signature string
+- *pPT++ = 'X';
+- *pPT = 0;
+-
+ try
+ {
+- OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 7), "UNALIGNED STACK !!! (Please DO panic)" );
+ callVirtualMethod(
+ pAdjustedThisPtr, aVtableSlot.index,
+- pCppReturn, pReturnTypeDescr, bSimpleReturn, pParamType,
+- (sal_uInt64 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_uInt64) );
++ pCppReturn, pReturnTypeDescr, bSimpleReturn,
++ pStackStart, ( pStack - pStackStart ),
++ pGPR, nGPR,
++ pFPR, nFPR );
+ // NO exception occured...
+ *ppUnoExc = 0;
+
+@@ -525,8 +429,8 @@
+ }
+ }
+
+-
+ //==================================================================================================
++
+ namespace bridges { namespace cpp_uno { namespace shared {
+
+ void unoInterfaceProxyDispatch(
diff --git a/editors/openoffice.org-vcltesttool/files/patch-i76969 b/editors/openoffice.org-vcltesttool/files/patch-i76969
new file mode 100644
index 000000000000..123402727290
--- /dev/null
+++ b/editors/openoffice.org-vcltesttool/files/patch-i76969
@@ -0,0 +1,40 @@
+Index: solenv/inc/unxfbsd.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/unxfbsd.mk,v
+retrieving revision 1.3
+diff -u -r1.3 unxfbsd.mk
+--- solenv/inc/unxfbsd.mk 9 Mar 2007 09:07:55 -0000 1.3
++++ solenv/inc/unxfbsd.mk 4 May 2007 16:22:53 -0000
+@@ -121,12 +121,6 @@
+ # Compiler flags for debugging
+ CFLAGSDEBUG=-g
+ CFLAGSDBGUTIL=
+-# Compiler flags for enabling optimizations
+-.IF "$(PRODUCT)"!=""
+-CFLAGSOPT=-Os -fno-strict-aliasing # optimizing for products
+-.ELSE # "$(PRODUCT)"!=""
+-CFLAGSOPT= # no optimizing for non products
+-.ENDIF # "$(PRODUCT)"!=""
+ # Compiler flags for disabling optimizations
+ CFLAGSNOOPT=-O0
+ # Compiler flags for describing the output path
+Index: solenv/inc/unxfbsdi.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/unxfbsdi.mk,v
+retrieving revision 1.24
+diff -u -r1.24 unxfbsdi.mk
+--- solenv/inc/unxfbsdi.mk 19 Jul 2006 09:27:04 -0000 1.24
++++ solenv/inc/unxfbsdi.mk 4 May 2007 16:22:53 -0000
+@@ -43,5 +43,12 @@
+ # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
+ ARCH_FLAGS*=-mtune=pentiumpro
+
++# Compiler flags for enabling optimizations
++.IF "$(PRODUCT)"!=""
++CFLAGSOPT=-Os -fno-strict-aliasing # optimizing for products
++.ELSE # "$(PRODUCT)"!=""
++CFLAGSOPT= # no optimizing for non products
++.ENDIF # "$(PRODUCT)"!=""
++
+ # platform specific identifier for shared libs
+ DLLPOSTFIX=fi
diff --git a/editors/openoffice.org-vcltesttool/files/patch-i77615 b/editors/openoffice.org-vcltesttool/files/patch-i77615
new file mode 100644
index 000000000000..89fe1aaee7c8
--- /dev/null
+++ b/editors/openoffice.org-vcltesttool/files/patch-i77615
@@ -0,0 +1,57 @@
+For FreeBSD, libxslt builds libraries as libxslt.so.2 or something
+like that. Following patch fixes this.
+
+Index: libxslt/libxslt-1.1.16.patch
+===================================================================
+RCS file: /cvs/external/libxslt/libxslt-1.1.16.patch,v
+retrieving revision 1.2
+diff -u -r1.2 libxslt-1.1.16.patch
+--- libxslt/libxslt-1.1.16.patch 10 May 2007 13:10:07 -0000 1.2
++++ libxslt/libxslt-1.1.16.patch 20 May 2007 02:35:31 -0000
+@@ -108,3 +108,46 @@
+ !
+ ! exit 0
+
++*** misc/libxslt-1.1.16/ltmain.sh Sun Feb 12 09:50:49 2006
++--- misc/build/libxslt-1.1.16/ltmain.sh Sun May 20 11:34:29 2007
++***************
++*** 3192,3200 ****
++ revision="$number_revision"
++ ;;
++ freebsd-aout|freebsd-elf|sunos)
++! current="$number_major"
++! revision="$number_minor"
++! age="0"
++ ;;
++ irix|nonstopux)
++ current=`expr $number_major + $number_minor - 1`
++--- 3192,3200 ----
++ revision="$number_revision"
++ ;;
++ freebsd-aout|freebsd-elf|sunos)
++! current=`expr $number_major + $number_minor`
++! age="$number_minor"
++! revision="$number_revision"
++ ;;
++ irix|nonstopux)
++ current=`expr $number_major + $number_minor - 1`
++***************
++*** 3267,3274 ****
++ ;;
++
++ freebsd-elf)
++! major=".$current"
++! versuffix=".$current";
++ ;;
++
++ irix | nonstopux)
++--- 3267,3274 ----
++ ;;
++
++ freebsd-elf)
++! major=.`expr $current - $age`
++! versuffix="$major.$age.$revision"
++ ;;
++
++ irix | nonstopux)
++
diff --git a/editors/openoffice.org-vcltesttool/files/patch-i77793 b/editors/openoffice.org-vcltesttool/files/patch-i77793
new file mode 100644
index 000000000000..e182b8727409
--- /dev/null
+++ b/editors/openoffice.org-vcltesttool/files/patch-i77793
@@ -0,0 +1,11 @@
+--- sw/source/core/unocore/unotbl.cxx 2007-05-25 13:02:05.000000000 +0200
++++ sw/source/core/unocore/unotbl.cxx 2007-05-25 13:09:00.000000000 +0200
+@@ -4455,7 +4455,7 @@
+ // now we'll try to get a useful numerical value
+ // from the text in the cell...
+
+- ULONG nFIndex;
++ sal_uInt32 nFIndex;
+ SvNumberFormatter* pNumFormatter = pTblCrsr->GetDoc()->GetNumberFormatter();
+
+ // look for SwTblBoxNumFormat value in parents as well
diff --git a/editors/openoffice.org-vcltesttool/files/patch-i77829 b/editors/openoffice.org-vcltesttool/files/patch-i77829
new file mode 100644
index 000000000000..c7be6ab14215
--- /dev/null
+++ b/editors/openoffice.org-vcltesttool/files/patch-i77829
@@ -0,0 +1,45 @@
+g++42 -fmessage-length=0 -c -Os -fno-strict-aliasing -ftemplate-depth-128 -I. -I../../../unxfbsdi.pro/inc/chcdialogs -I../inc -I../../../source/inc -I../../../inc/pch -I../../../inc/chart2 -I../../../inc -I../../../unx/inc -I../../../unxfbsdi.pro/inc -I. -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/stl -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/external -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solenv/unxfbsdi/inc -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solenv/inc -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/res -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/stl -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solenv/inc/Xp31 -I/usr/local/diablo-jdk1.5.0/include -I/usr/local/diablo-jdk1.5.0/include/freebsd -I/usr/local/diablo-jdk1.5.0/include/bsd -I/usr/local/diablo-jdk1.5.0/include/linux -I/usr/local/diablo-jdk1.5.0/include/native_threads/include -I/usr/local/include -I/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/offuh -I. -I../../../res -I. -pipe -mtune=pentiumpro -fvisibility-inlines-hidden -g1 -Wall -Wextra -Wendif-labels -Wshadow -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -fpic -DFREEBSD -DUNX -DVCL -DGCC -DC341 -DINTEL -DCVER=C341 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=450 -DHAVE_GCC_VISIBILITY_FEATURE -D__DMAKE -DUNIX -DCPPU_ENV=gcc3 -DGXX_INCLUDE_PATH=/usr/local/lib/gcc-4.2.0/include/c++ -DSUPD=680 -DPRODUCT -DNDEBUG -DPRODUCT_FULL -DOSL_DEBUG_LEVEL=0 -DOPTIMIZE -DCUI -DSOLAR_JAVA -DSRC680=SRC680 -DSHAREDLIB -D_DLL_ -fexceptions -fno-enforce-eh-specs -DEXCEPTIONS_ON -o ../../../unxfbsdi.pro/slo/DataBrowser.o /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx
+In file included from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/cppuhelper/implbase1.hxx:42,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/svtools/transfer.hxx:54,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/svtools/brwbox.hxx:56,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/svtools/editbrowsebox.hxx:69,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.hxx:40,
+ from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx:51:
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/rtl/instance.hxx: In static member function 'static Inst*<unnamed>::rtl_Instance<Inst, InstCtor, Guard, GuardCtor, Data, DataCtor>::create(InstCtor, GuardCtor)':
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/rtl/instance.hxx:305: warning: empty body in an else-statement
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/rtl/instance.hxx: In static member function 'static Inst*<unnamed>::rtl_Instance<Inst, InstCtor, Guard, GuardCtor, Data, DataCtor>::create(InstCtor, GuardCtor, DataCtor)':
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/solver/680/unxfbsdi.pro/inc/rtl/instance.hxx:329: warning: empty body in an else-statement
+In file included from /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx:52:
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowserModel.hxx: At global scope:
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowserModel.hxx:110: error: extra qualification 'chart::DataBrowserModel::' on member 'setCellAny'
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx: In member function 'bool chart::DataBrowser::MaySwapColumns() const':
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx:574: warning: declaration of 'bHasFocus' shadows a member of 'this'
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx: In member function 'void chart::DataBrowser::RenewTable()':
+/work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs/DataBrowser.cxx:634: warning: declaration of 'nRowCount' shadows a member of 'this'
+dmake: Error code 1, while making '../../../unxfbsdi.pro/slo/DataBrowser.obj'
+---* tg_merge.mk *---
+
+ERROR: Error 65280 occurred while making /work/ports/editors/openoffice.org-2-devel/work/SRC680_m213/chart2/source/controller/dialogs
+dmake: Error code 1, while making 'build_instsetoo_native'
+---* *---
+*** Error code 255
+
+Stop in /work/ports/editors/openoffice.org-2-devel.
+
+Index: chart2/source/controller/dialogs/DataBrowserModel.hxx
+===================================================================
+RCS file: /cvs/graphics/chart2/source/controller/dialogs/DataBrowserModel.hxx,v
+retrieving revision 1.2
+diff -u -r1.2 DataBrowserModel.hxx
+--- chart2/source/controller/dialogs/DataBrowserModel.hxx 22 May 2007 17:27:59 -0000 1.2
++++ chart2/source/controller/dialogs/DataBrowserModel.hxx 26 May 2007 10:47:37 -0000
+@@ -106,8 +106,7 @@
+ bool setCellNumber( sal_Int32 nAtColumn, sal_Int32 nAtRow, double fValue );
+ /// returns </TRUE> if the text could successfully be set at the given position
+ bool setCellText( sal_Int32 nAtColumn, sal_Int32 nAtRow, const ::rtl::OUString & rText );
+- bool DataBrowserModel::setCellAny( sal_Int32 nAtColumn, sal_Int32 nAtRow,
+- const ::com::sun::star::uno::Any & aValue );
++ bool setCellAny( sal_Int32 nAtColumn, sal_Int32 nAtRow, const ::com::sun::star::uno::Any & aValue );
+
+ sal_Int32 getColumnCount() const;
+ sal_Int32 getMaxRowCount() const;