diff options
author | Steven Guo <steventimothyguo@gmail.com> | 2016-03-06 04:40:30 -0800 |
---|---|---|
committer | Noel Grandin <noelgrandin@gmail.com> | 2016-03-07 09:06:12 +0000 |
commit | 472d900e81722fd1ce3808c3f46160abcd265f77 (patch) | |
tree | 6a9a767e3d87091a85288fd623f9cbf6a1465c3f /basic/source | |
parent | 9e3a15c728255a7874179c7104de366b0e056928 (diff) |
tdf84938 Replaced Sb_Attr_ defined constants with enum class in runtime.hxx
Replaced the #define Sb_Attr_* constants with SbAttributes enum class in runtime.hxx and adjusted uses in methods.cxx.
Change-Id: Ic7f6f6452849ffc9675ffd697ffc130276082318
Reviewed-on: https://gerrit.libreoffice.org/22948
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
Diffstat (limited to 'basic/source')
-rw-r--r-- | basic/source/inc/runtime.hxx | 17 | ||||
-rw-r--r-- | basic/source/runtime/methods.cxx | 36 | ||||
-rw-r--r-- | basic/source/runtime/runtime.cxx | 2 |
3 files changed, 31 insertions, 24 deletions
diff --git a/basic/source/inc/runtime.hxx b/basic/source/inc/runtime.hxx index 2508d9e5dcc4..aef620b16b7e 100644 --- a/basic/source/inc/runtime.hxx +++ b/basic/source/inc/runtime.hxx @@ -35,6 +35,7 @@ #include <com/sun/star/lang/XComponent.hpp> #include <com/sun/star/container/XEnumeration.hpp> #include <unotools/localedatawrapper.hxx> +#include <o3tl/typed_flags_set.hxx> class SbiInstance; // active StarBASIC process class SbiRuntime; // active StarBASIC procedure instance @@ -94,11 +95,17 @@ struct SbiGosubStack { // GOSUB-Stack: sal_uInt16 nStartForLvl; // #118235: For Level in moment of gosub }; +enum class SbAttributes { + NONE = 0x0000, + READONLY = 0x0001, + HIDDEN = 0x0002, + DIRECTORY = 0x0010 +}; -#define Sb_ATTR_READONLY 0x0001 -#define Sb_ATTR_HIDDEN 0x0002 -#define Sb_ATTR_DIRECTORY 0x0010 - +namespace o3tl +{ + template<> struct typed_flags<SbAttributes> : is_typed_flags<SbAttributes, 0x13> {}; +} class WildCard; @@ -107,7 +114,7 @@ class SbiRTLData public: ::osl::Directory* pDir; - sal_Int16 nDirFlags; + SbAttributes nDirFlags; short nCurDirPos; OUString sFullNameToBeChecked; diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx index 85aca7da7476..97e1eca19049 100644 --- a/basic/source/runtime/methods.cxx +++ b/basic/source/runtime/methods.cxx @@ -2886,17 +2886,17 @@ RTLFUNC(Dir) rPar.Get(0)->PutString( "" ); } - sal_uInt16 nFlags = 0; + SbAttributes nFlags = SbAttributes::NONE; if ( nParCount > 2 ) { - pRTLData->nDirFlags = nFlags = rPar.Get(2)->GetInteger(); + pRTLData->nDirFlags = nFlags = static_cast<SbAttributes>(rPar.Get(2)->GetInteger()); } else { - pRTLData->nDirFlags = 0; + pRTLData->nDirFlags = SbAttributes::NONE; } // Read directory - bool bIncludeFolders = ((nFlags & Sb_ATTR_DIRECTORY) != 0); + bool bIncludeFolders = bool(nFlags & SbAttributes::DIRECTORY); pRTLData->aDirSeq = xSFI->getFolderContents( aDirURLStr, bIncludeFolders ); pRTLData->nCurDirPos = 0; @@ -2923,7 +2923,7 @@ RTLFUNC(Dir) if( pRTLData->aDirSeq.getLength() > 0 ) { - bool bFolderFlag = ((pRTLData->nDirFlags & Sb_ATTR_DIRECTORY) != 0); + bool bFolderFlag = bool(pRTLData->nDirFlags & SbAttributes::DIRECTORY); SbiInstance* pInst = GetSbData()->pInst; bool bCompatibility = ( pInst && pInst->IsCompatibility() ); @@ -3000,18 +3000,18 @@ RTLFUNC(Dir) OUString aDirURL = implSetupWildcard( aFileParam, pRTLData ); - sal_uInt16 nFlags = 0; + SbAttributes nFlags = SbAttributes::NONE; if ( nParCount > 2 ) { - pRTLData->nDirFlags = nFlags = rPar.Get(2)->GetInteger(); + pRTLData->nDirFlags = nFlags = static_cast<SbAttributes>( rPar.Get(2)->GetInteger() ); } else { - pRTLData->nDirFlags = 0; + pRTLData->nDirFlags = SbAttributes::NONE; } // Read directory - bool bIncludeFolders = ((nFlags & Sb_ATTR_DIRECTORY) != 0); + bool bIncludeFolders = bool(nFlags & SbAttributes::DIRECTORY); pRTLData->pDir = new Directory( aDirURL ); FileBase::RC nRet = pRTLData->pDir->open(); if( nRet != FileBase::E_None ) @@ -3042,7 +3042,7 @@ RTLFUNC(Dir) if( pRTLData->pDir ) { - bool bFolderFlag = ((pRTLData->nDirFlags & Sb_ATTR_DIRECTORY) != 0); + bool bFolderFlag = bool(pRTLData->nDirFlags & SbAttributes::DIRECTORY); for( ;; ) { if( pRTLData->nCurDirPos < 0 ) @@ -3165,15 +3165,15 @@ RTLFUNC(GetAttr) bool bDirectory = xSFI->isFolder( aPath ); if( bReadOnly ) { - nFlags |= Sb_ATTR_READONLY; + nFlags |= (sal_uInt16)SbAttributes::READONLY; } if( bHidden ) { - nFlags |= Sb_ATTR_HIDDEN; + nFlags |= (sal_uInt16)SbAttributes::HIDDEN; } if( bDirectory ) { - nFlags |= Sb_ATTR_DIRECTORY; + nFlags |= (sal_uInt16)SbAttributes::DIRECTORY; } } catch(const Exception & ) @@ -3195,11 +3195,11 @@ RTLFUNC(GetAttr) bool bDirectory = isFolder( aType ); if( bReadOnly ) { - nFlags |= Sb_ATTR_READONLY; + nFlags |= (sal_uInt16)SbAttributes::READONLY; } if( bDirectory ) { - nFlags |= Sb_ATTR_DIRECTORY; + nFlags |= (sal_uInt16)SbAttributes::DIRECTORY; } } rPar.Get(0)->PutInteger( nFlags ); @@ -4687,7 +4687,7 @@ RTLFUNC(SetAttr) if ( rPar.Count() == 3 ) { OUString aStr = rPar.Get(1)->GetOUString(); - sal_Int16 nFlags = rPar.Get(2)->GetInteger(); + SbAttributes nFlags = static_cast<SbAttributes>( rPar.Get(2)->GetInteger() ); if( hasUno() ) { @@ -4696,9 +4696,9 @@ RTLFUNC(SetAttr) { try { - bool bReadOnly = (nFlags & Sb_ATTR_READONLY) != 0; + bool bReadOnly = bool(nFlags & SbAttributes::READONLY); xSFI->setReadOnly( aStr, bReadOnly ); - bool bHidden = (nFlags & Sb_ATTR_HIDDEN) != 0; + bool bHidden = bool(nFlags & SbAttributes::HIDDEN); xSFI->setHidden( aStr, bHidden ); } catch(const Exception & ) diff --git a/basic/source/runtime/runtime.cxx b/basic/source/runtime/runtime.cxx index caf5727a81cf..e6dfa205bb03 100644 --- a/basic/source/runtime/runtime.cxx +++ b/basic/source/runtime/runtime.cxx @@ -252,7 +252,7 @@ SbiRuntime::pStep2 SbiRuntime::aStep2[] = {// all opcodes with two operands SbiRTLData::SbiRTLData() { pDir = nullptr; - nDirFlags = 0; + nDirFlags = SbAttributes::NONE; nCurDirPos = 0; pWildCard = nullptr; } |