diff options
author | maho <maho@FreeBSD.org> | 2007-09-07 18:24:49 +0800 |
---|---|---|
committer | maho <maho@FreeBSD.org> | 2007-09-07 18:24:49 +0800 |
commit | 727c5348323b93b40c276274cfd0164d11ca6c33 (patch) | |
tree | 1a9e2bc654f8e3d6c8b27a011c90396e37b436cf | |
parent | 619c412a45cd3c39f43fc98d0dd43f0cdec6ed97 (diff) | |
download | freebsd-ports-gnome-727c5348323b93b40c276274cfd0164d11ca6c33.tar.gz freebsd-ports-gnome-727c5348323b93b40c276274cfd0164d11ca6c33.tar.zst freebsd-ports-gnome-727c5348323b93b40c276274cfd0164d11ca6c33.zip |
Remove upstreamed patches also, remove files/cws-npower7.diff
as this cws has been integrated into SRC680_m227.
20 files changed, 0 insertions, 7624 deletions
diff --git a/editors/openoffice-3-devel/files/Makefile.knobs b/editors/openoffice-3-devel/files/Makefile.knobs index 9440e6f37ebe..a4d76e99c1aa 100644 --- a/editors/openoffice-3-devel/files/Makefile.knobs +++ b/editors/openoffice-3-devel/files/Makefile.knobs @@ -6,7 +6,6 @@ CONFIGURE_ARGS+= --with-jdk-home="${JAVA_HOME}" --with-ant-home="${LOCALBASE}/sh .if defined(WITH_VBA) CONFIGURE_ARGS+= --enable-vba --with-vba-package-format="builtin" -EXTRA_PATCHES+= ${FILESDIR}/cws-npower7.diff .endif .if defined(WITH_KDE) diff --git a/editors/openoffice-3-devel/files/cws-npower7.diff b/editors/openoffice-3-devel/files/cws-npower7.diff deleted file mode 100644 index cf8ccac2d39e..000000000000 --- a/editors/openoffice-3-devel/files/cws-npower7.diff +++ /dev/null @@ -1,1833 +0,0 @@ -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/gcj-fbsdworkaround b/editors/openoffice-3-devel/files/gcj-fbsdworkaround deleted file mode 100644 index 471f004db546..000000000000 --- a/editors/openoffice-3-devel/files/gcj-fbsdworkaround +++ /dev/null @@ -1,30 +0,0 @@ ---- config_office/configure~ Sat Mar 4 16:12:31 2006 -+++ config_office/configure Sat Mar 4 16:12:45 2006 -@@ -7544,7 +7544,7 @@ - echo $ECHO_N "(cached) $ECHO_C" >&6 - else - ac_check_lib_save_LIBS=$LIBS --LIBS="-lgcjawt $LIBS" -+LIBS="-lgcjawt -pthread $LIBS" - cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" - /* confdefs.h. */ - -http://qa.openoffice.org/issues/show_bug.cgi?id=63095 -Index: stoc/source/javaloader/makefile.mk -=================================================================== -RCS file: /cvs/udk/stoc/source/javaloader/makefile.mk,v -retrieving revision 1.16 -diff -u -r1.16 makefile.mk ---- stoc/source/javaloader/makefile.mk 8 Sep 2005 07:57:58 -0000 1.16 -+++ stoc/source/javaloader/makefile.mk 13 Mar 2006 00:54:46 -0000 -@@ -59,7 +59,8 @@ - $(CPPUHELPERLIB) \ - $(CPPULIB) \ - $(SALLIB) \ -- $(JVMACCESSLIB) -+ $(JVMACCESSLIB) \ -+ -L/usr/local/lib -liconv - - SHL1VERSIONMAP = javaloader.map - SHL1DEPN= diff --git a/editors/openoffice-3-devel/files/patch-i80003 b/editors/openoffice-3-devel/files/patch-i80003 deleted file mode 100644 index 453610348c91..000000000000 --- a/editors/openoffice-3-devel/files/patch-i80003 +++ /dev/null @@ -1,22 +0,0 @@ -correct patch by jkim -http://www.openoffice.org/nonav/issues/showattachment.cgi/47084/patch-i80003 -will be go into cws obo15. - -Index: libxslt/makefile.mk -=================================================================== -RCS file: /cvs/external/libxslt/makefile.mk,v -retrieving revision 1.7 -diff -u -r1.7 makefile.mk ---- libxslt/makefile.mk 19 Jul 2007 11:21:19 -0000 1.7 -+++ libxslt/makefile.mk 24 Jul 2007 20:33:55 -0000 -@@ -96,6 +96,10 @@ - BUILD_DIR=$(CONFIGURE_DIR) - .ENDIF - -+.IF "$(OS)"=="FREEBSD" -+xslt_LDFLAGS+=-L$(SOLARLIBDIR) -+.ENDIF -+ - OUT2INC=libxslt$/*.h - - .IF "$(OS)"=="MACOSX" diff --git a/editors/openoffice-3-devel/files/patch-i80295 b/editors/openoffice-3-devel/files/patch-i80295 deleted file mode 100644 index d66798903a3c..000000000000 --- a/editors/openoffice-3-devel/files/patch-i80295 +++ /dev/null @@ -1,20 +0,0 @@ -Index: svx/source/dialog/cuifmsearch.hxx -=================================================================== -RCS file: /cvs/graphics/svx/source/dialog/cuifmsearch.hxx,v -retrieving revision 1.6 -diff -u -r1.6 cuifmsearch.hxx ---- svx/source/dialog/cuifmsearch.hxx 31 Jul 2007 13:56:33 -0000 1.6 -+++ svx/source/dialog/cuifmsearch.hxx 3 Aug 2007 05:35:05 -0000 -@@ -93,10 +93,10 @@ - - struct FmSearchProgress; - -+class FmSearchEngine; -+ - class FmSearchDialog : public ModalDialog - { -- friend class FmSearchEngine; -- - // meine ganzen Controls - FixedLine m_flSearchFor; - RadioButton m_rbSearchForText; diff --git a/editors/openoffice.org-2-devel/files/Makefile.knobs b/editors/openoffice.org-2-devel/files/Makefile.knobs index 9440e6f37ebe..a4d76e99c1aa 100644 --- a/editors/openoffice.org-2-devel/files/Makefile.knobs +++ b/editors/openoffice.org-2-devel/files/Makefile.knobs @@ -6,7 +6,6 @@ CONFIGURE_ARGS+= --with-jdk-home="${JAVA_HOME}" --with-ant-home="${LOCALBASE}/sh .if defined(WITH_VBA) CONFIGURE_ARGS+= --enable-vba --with-vba-package-format="builtin" -EXTRA_PATCHES+= ${FILESDIR}/cws-npower7.diff .endif .if defined(WITH_KDE) diff --git a/editors/openoffice.org-2-devel/files/cws-npower7.diff b/editors/openoffice.org-2-devel/files/cws-npower7.diff deleted file mode 100644 index cf8ccac2d39e..000000000000 --- a/editors/openoffice.org-2-devel/files/cws-npower7.diff +++ /dev/null @@ -1,1833 +0,0 @@ -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/gcj-fbsdworkaround b/editors/openoffice.org-2-devel/files/gcj-fbsdworkaround deleted file mode 100644 index 471f004db546..000000000000 --- a/editors/openoffice.org-2-devel/files/gcj-fbsdworkaround +++ /dev/null @@ -1,30 +0,0 @@ ---- config_office/configure~ Sat Mar 4 16:12:31 2006 -+++ config_office/configure Sat Mar 4 16:12:45 2006 -@@ -7544,7 +7544,7 @@ - echo $ECHO_N "(cached) $ECHO_C" >&6 - else - ac_check_lib_save_LIBS=$LIBS --LIBS="-lgcjawt $LIBS" -+LIBS="-lgcjawt -pthread $LIBS" - cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" - /* confdefs.h. */ - -http://qa.openoffice.org/issues/show_bug.cgi?id=63095 -Index: stoc/source/javaloader/makefile.mk -=================================================================== -RCS file: /cvs/udk/stoc/source/javaloader/makefile.mk,v -retrieving revision 1.16 -diff -u -r1.16 makefile.mk ---- stoc/source/javaloader/makefile.mk 8 Sep 2005 07:57:58 -0000 1.16 -+++ stoc/source/javaloader/makefile.mk 13 Mar 2006 00:54:46 -0000 -@@ -59,7 +59,8 @@ - $(CPPUHELPERLIB) \ - $(CPPULIB) \ - $(SALLIB) \ -- $(JVMACCESSLIB) -+ $(JVMACCESSLIB) \ -+ -L/usr/local/lib -liconv - - SHL1VERSIONMAP = javaloader.map - SHL1DEPN= diff --git a/editors/openoffice.org-2-devel/files/patch-i80003 b/editors/openoffice.org-2-devel/files/patch-i80003 deleted file mode 100644 index 453610348c91..000000000000 --- a/editors/openoffice.org-2-devel/files/patch-i80003 +++ /dev/null @@ -1,22 +0,0 @@ -correct patch by jkim -http://www.openoffice.org/nonav/issues/showattachment.cgi/47084/patch-i80003 -will be go into cws obo15. - -Index: libxslt/makefile.mk -=================================================================== -RCS file: /cvs/external/libxslt/makefile.mk,v -retrieving revision 1.7 -diff -u -r1.7 makefile.mk ---- libxslt/makefile.mk 19 Jul 2007 11:21:19 -0000 1.7 -+++ libxslt/makefile.mk 24 Jul 2007 20:33:55 -0000 -@@ -96,6 +96,10 @@ - BUILD_DIR=$(CONFIGURE_DIR) - .ENDIF - -+.IF "$(OS)"=="FREEBSD" -+xslt_LDFLAGS+=-L$(SOLARLIBDIR) -+.ENDIF -+ - OUT2INC=libxslt$/*.h - - .IF "$(OS)"=="MACOSX" diff --git a/editors/openoffice.org-2-devel/files/patch-i80295 b/editors/openoffice.org-2-devel/files/patch-i80295 deleted file mode 100644 index d66798903a3c..000000000000 --- a/editors/openoffice.org-2-devel/files/patch-i80295 +++ /dev/null @@ -1,20 +0,0 @@ -Index: svx/source/dialog/cuifmsearch.hxx -=================================================================== -RCS file: /cvs/graphics/svx/source/dialog/cuifmsearch.hxx,v -retrieving revision 1.6 -diff -u -r1.6 cuifmsearch.hxx ---- svx/source/dialog/cuifmsearch.hxx 31 Jul 2007 13:56:33 -0000 1.6 -+++ svx/source/dialog/cuifmsearch.hxx 3 Aug 2007 05:35:05 -0000 -@@ -93,10 +93,10 @@ - - struct FmSearchProgress; - -+class FmSearchEngine; -+ - class FmSearchDialog : public ModalDialog - { -- friend class FmSearchEngine; -- - // meine ganzen Controls - FixedLine m_flSearchFor; - RadioButton m_rbSearchForText; diff --git a/editors/openoffice.org-3-devel/files/Makefile.knobs b/editors/openoffice.org-3-devel/files/Makefile.knobs index 9440e6f37ebe..a4d76e99c1aa 100644 --- a/editors/openoffice.org-3-devel/files/Makefile.knobs +++ b/editors/openoffice.org-3-devel/files/Makefile.knobs @@ -6,7 +6,6 @@ CONFIGURE_ARGS+= --with-jdk-home="${JAVA_HOME}" --with-ant-home="${LOCALBASE}/sh .if defined(WITH_VBA) CONFIGURE_ARGS+= --enable-vba --with-vba-package-format="builtin" -EXTRA_PATCHES+= ${FILESDIR}/cws-npower7.diff .endif .if defined(WITH_KDE) diff --git a/editors/openoffice.org-3-devel/files/cws-npower7.diff b/editors/openoffice.org-3-devel/files/cws-npower7.diff deleted file mode 100644 index cf8ccac2d39e..000000000000 --- a/editors/openoffice.org-3-devel/files/cws-npower7.diff +++ /dev/null @@ -1,1833 +0,0 @@ -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/gcj-fbsdworkaround b/editors/openoffice.org-3-devel/files/gcj-fbsdworkaround deleted file mode 100644 index 471f004db546..000000000000 --- a/editors/openoffice.org-3-devel/files/gcj-fbsdworkaround +++ /dev/null @@ -1,30 +0,0 @@ ---- config_office/configure~ Sat Mar 4 16:12:31 2006 -+++ config_office/configure Sat Mar 4 16:12:45 2006 -@@ -7544,7 +7544,7 @@ - echo $ECHO_N "(cached) $ECHO_C" >&6 - else - ac_check_lib_save_LIBS=$LIBS --LIBS="-lgcjawt $LIBS" -+LIBS="-lgcjawt -pthread $LIBS" - cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" - /* confdefs.h. */ - -http://qa.openoffice.org/issues/show_bug.cgi?id=63095 -Index: stoc/source/javaloader/makefile.mk -=================================================================== -RCS file: /cvs/udk/stoc/source/javaloader/makefile.mk,v -retrieving revision 1.16 -diff -u -r1.16 makefile.mk ---- stoc/source/javaloader/makefile.mk 8 Sep 2005 07:57:58 -0000 1.16 -+++ stoc/source/javaloader/makefile.mk 13 Mar 2006 00:54:46 -0000 -@@ -59,7 +59,8 @@ - $(CPPUHELPERLIB) \ - $(CPPULIB) \ - $(SALLIB) \ -- $(JVMACCESSLIB) -+ $(JVMACCESSLIB) \ -+ -L/usr/local/lib -liconv - - SHL1VERSIONMAP = javaloader.map - SHL1DEPN= diff --git a/editors/openoffice.org-3-devel/files/patch-i80003 b/editors/openoffice.org-3-devel/files/patch-i80003 deleted file mode 100644 index 453610348c91..000000000000 --- a/editors/openoffice.org-3-devel/files/patch-i80003 +++ /dev/null @@ -1,22 +0,0 @@ -correct patch by jkim -http://www.openoffice.org/nonav/issues/showattachment.cgi/47084/patch-i80003 -will be go into cws obo15. - -Index: libxslt/makefile.mk -=================================================================== -RCS file: /cvs/external/libxslt/makefile.mk,v -retrieving revision 1.7 -diff -u -r1.7 makefile.mk ---- libxslt/makefile.mk 19 Jul 2007 11:21:19 -0000 1.7 -+++ libxslt/makefile.mk 24 Jul 2007 20:33:55 -0000 -@@ -96,6 +96,10 @@ - BUILD_DIR=$(CONFIGURE_DIR) - .ENDIF - -+.IF "$(OS)"=="FREEBSD" -+xslt_LDFLAGS+=-L$(SOLARLIBDIR) -+.ENDIF -+ - OUT2INC=libxslt$/*.h - - .IF "$(OS)"=="MACOSX" diff --git a/editors/openoffice.org-3-devel/files/patch-i80295 b/editors/openoffice.org-3-devel/files/patch-i80295 deleted file mode 100644 index d66798903a3c..000000000000 --- a/editors/openoffice.org-3-devel/files/patch-i80295 +++ /dev/null @@ -1,20 +0,0 @@ -Index: svx/source/dialog/cuifmsearch.hxx -=================================================================== -RCS file: /cvs/graphics/svx/source/dialog/cuifmsearch.hxx,v -retrieving revision 1.6 -diff -u -r1.6 cuifmsearch.hxx ---- svx/source/dialog/cuifmsearch.hxx 31 Jul 2007 13:56:33 -0000 1.6 -+++ svx/source/dialog/cuifmsearch.hxx 3 Aug 2007 05:35:05 -0000 -@@ -93,10 +93,10 @@ - - struct FmSearchProgress; - -+class FmSearchEngine; -+ - class FmSearchDialog : public ModalDialog - { -- friend class FmSearchEngine; -- - // meine ganzen Controls - FixedLine m_flSearchFor; - RadioButton m_rbSearchForText; diff --git a/editors/openoffice.org-vcltesttool/files/Makefile.knobs b/editors/openoffice.org-vcltesttool/files/Makefile.knobs index 9440e6f37ebe..a4d76e99c1aa 100644 --- a/editors/openoffice.org-vcltesttool/files/Makefile.knobs +++ b/editors/openoffice.org-vcltesttool/files/Makefile.knobs @@ -6,7 +6,6 @@ CONFIGURE_ARGS+= --with-jdk-home="${JAVA_HOME}" --with-ant-home="${LOCALBASE}/sh .if defined(WITH_VBA) CONFIGURE_ARGS+= --enable-vba --with-vba-package-format="builtin" -EXTRA_PATCHES+= ${FILESDIR}/cws-npower7.diff .endif .if defined(WITH_KDE) diff --git a/editors/openoffice.org-vcltesttool/files/cws-npower7.diff b/editors/openoffice.org-vcltesttool/files/cws-npower7.diff deleted file mode 100644 index cf8ccac2d39e..000000000000 --- a/editors/openoffice.org-vcltesttool/files/cws-npower7.diff +++ /dev/null @@ -1,1833 +0,0 @@ -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/gcj-fbsdworkaround b/editors/openoffice.org-vcltesttool/files/gcj-fbsdworkaround deleted file mode 100644 index 471f004db546..000000000000 --- a/editors/openoffice.org-vcltesttool/files/gcj-fbsdworkaround +++ /dev/null @@ -1,30 +0,0 @@ ---- config_office/configure~ Sat Mar 4 16:12:31 2006 -+++ config_office/configure Sat Mar 4 16:12:45 2006 -@@ -7544,7 +7544,7 @@ - echo $ECHO_N "(cached) $ECHO_C" >&6 - else - ac_check_lib_save_LIBS=$LIBS --LIBS="-lgcjawt $LIBS" -+LIBS="-lgcjawt -pthread $LIBS" - cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" - /* confdefs.h. */ - -http://qa.openoffice.org/issues/show_bug.cgi?id=63095 -Index: stoc/source/javaloader/makefile.mk -=================================================================== -RCS file: /cvs/udk/stoc/source/javaloader/makefile.mk,v -retrieving revision 1.16 -diff -u -r1.16 makefile.mk ---- stoc/source/javaloader/makefile.mk 8 Sep 2005 07:57:58 -0000 1.16 -+++ stoc/source/javaloader/makefile.mk 13 Mar 2006 00:54:46 -0000 -@@ -59,7 +59,8 @@ - $(CPPUHELPERLIB) \ - $(CPPULIB) \ - $(SALLIB) \ -- $(JVMACCESSLIB) -+ $(JVMACCESSLIB) \ -+ -L/usr/local/lib -liconv - - SHL1VERSIONMAP = javaloader.map - SHL1DEPN= diff --git a/editors/openoffice.org-vcltesttool/files/patch-i80003 b/editors/openoffice.org-vcltesttool/files/patch-i80003 deleted file mode 100644 index 453610348c91..000000000000 --- a/editors/openoffice.org-vcltesttool/files/patch-i80003 +++ /dev/null @@ -1,22 +0,0 @@ -correct patch by jkim -http://www.openoffice.org/nonav/issues/showattachment.cgi/47084/patch-i80003 -will be go into cws obo15. - -Index: libxslt/makefile.mk -=================================================================== -RCS file: /cvs/external/libxslt/makefile.mk,v -retrieving revision 1.7 -diff -u -r1.7 makefile.mk ---- libxslt/makefile.mk 19 Jul 2007 11:21:19 -0000 1.7 -+++ libxslt/makefile.mk 24 Jul 2007 20:33:55 -0000 -@@ -96,6 +96,10 @@ - BUILD_DIR=$(CONFIGURE_DIR) - .ENDIF - -+.IF "$(OS)"=="FREEBSD" -+xslt_LDFLAGS+=-L$(SOLARLIBDIR) -+.ENDIF -+ - OUT2INC=libxslt$/*.h - - .IF "$(OS)"=="MACOSX" diff --git a/editors/openoffice.org-vcltesttool/files/patch-i80295 b/editors/openoffice.org-vcltesttool/files/patch-i80295 deleted file mode 100644 index d66798903a3c..000000000000 --- a/editors/openoffice.org-vcltesttool/files/patch-i80295 +++ /dev/null @@ -1,20 +0,0 @@ -Index: svx/source/dialog/cuifmsearch.hxx -=================================================================== -RCS file: /cvs/graphics/svx/source/dialog/cuifmsearch.hxx,v -retrieving revision 1.6 -diff -u -r1.6 cuifmsearch.hxx ---- svx/source/dialog/cuifmsearch.hxx 31 Jul 2007 13:56:33 -0000 1.6 -+++ svx/source/dialog/cuifmsearch.hxx 3 Aug 2007 05:35:05 -0000 -@@ -93,10 +93,10 @@ - - struct FmSearchProgress; - -+class FmSearchEngine; -+ - class FmSearchDialog : public ModalDialog - { -- friend class FmSearchEngine; -- - // meine ganzen Controls - FixedLine m_flSearchFor; - RadioButton m_rbSearchForText; |