diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2012-11-18 14:01:16 -0600 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2012-11-18 19:57:23 -0600 |
commit | cc63555fd02217e3b68caccfa5c8a0171aca149c (patch) | |
tree | 07528737e1710bff4dd9f5e3c576d1fc96b99c13 /svl | |
parent | 82a134c1569e9ca10dd096e866afd1b42454a8d2 (diff) |
PutEntry familly of functions use consistent pairing OUString/sal_Int32
Change-Id: I23ae9d3e8bf71ef9ece75ea013d18c36ab2e69d4
Diffstat (limited to 'svl')
-rw-r--r-- | svl/inc/svl/zforlist.hxx | 8 | ||||
-rw-r--r-- | svl/source/numbers/zforlist.cxx | 70 |
2 files changed, 58 insertions, 20 deletions
diff --git a/svl/inc/svl/zforlist.hxx b/svl/inc/svl/zforlist.hxx index ea40a506523d..4c7b949021dd 100644 --- a/svl/inc/svl/zforlist.hxx +++ b/svl/inc/svl/zforlist.hxx @@ -395,7 +395,7 @@ public: bool PutEntry( String& rString, xub_StrLen& nCheckPos, short& nType, sal_uInt32& nKey, LanguageType eLnge = LANGUAGE_DONTKNOW ); - bool PutEntry( OUString& rString, xub_StrLen& nCheckPos, short& nType, sal_uInt32& nKey, + bool PutEntry( OUString& rString, sal_Int32& nCheckPos, short& nType, sal_uInt32& nKey, LanguageType eLnge = LANGUAGE_DONTKNOW ); /** Same as <method>PutEntry</method> but the format code string is @@ -405,7 +405,7 @@ public: short& nType, sal_uInt32& nKey, LanguageType eLnge, LanguageType eNewLnge ); - bool PutandConvertEntry( OUString& rString, xub_StrLen& nCheckPos, + bool PutandConvertEntry( OUString& rString, sal_Int32& nCheckPos, short& nType, sal_uInt32& nKey, LanguageType eLnge, LanguageType eNewLnge ); @@ -413,6 +413,10 @@ public: is considered to be of the System language/country eLnge and is converted to another System language/country eNewLnge. In this case the automatic currency is converted too. */ + bool PutandConvertEntrySystem( OUString& rString, sal_Int32& nCheckPos, + short& nType, sal_uInt32& nKey, + LanguageType eLnge, LanguageType eNewLnge ); + bool PutandConvertEntrySystem( String& rString, xub_StrLen& nCheckPos, short& nType, sal_uInt32& nKey, LanguageType eLnge, LanguageType eNewLnge ); diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx index 60726af504da..2e1c20d2146f 100644 --- a/svl/source/numbers/zforlist.cxx +++ b/svl/source/numbers/zforlist.cxx @@ -416,29 +416,39 @@ void SvNumberFormatter::ReplaceSystemCL( LanguageType eOldLanguage ) SvNumberformat* pOldEntry = aOldTable.begin()->second; aOldTable.erase( nKey ); String aString( pOldEntry->GetFormatstring() ); - xub_StrLen nCheckPos = STRING_NOTFOUND; // Same as PutEntry() but assures key position even if format code is // a duplicate. Also won't mix up any LastInsertKey. ChangeIntl( eOldLanguage ); LanguageType eLge = eOldLanguage; // ConvertMode changes this bool bCheck = false; + xub_StrLen nCheckPos; SvNumberformat* pNewEntry = new SvNumberformat( aString, pFormatScanner, - pStringScanner, nCheckPos, eLge ); + pStringScanner, nCheckPos, eLge ); if ( nCheckPos != 0 ) + { delete pNewEntry; + } else { short eCheckType = pNewEntry->GetType(); if ( eCheckType != NUMBERFORMAT_UNDEFINED ) + { pNewEntry->SetType( eCheckType | NUMBERFORMAT_DEFINED ); + } else + { pNewEntry->SetType( NUMBERFORMAT_DEFINED ); + } if ( !aFTable.insert( make_pair( nKey, pNewEntry) ).second ) + { delete pNewEntry; + } else + { bCheck = true; + } } DBG_ASSERT( bCheck, "SvNumberFormatter::ReplaceSystemCL: couldn't convert" ); (void)bCheck; @@ -486,6 +496,7 @@ bool SvNumberFormatter::PutEntry(String& rString, pStringScanner, nCheckPos, eLge); + if (nCheckPos == 0) // Format ok { // Type comparison: short eCheckType = p_Entry->GetType(); @@ -532,14 +543,16 @@ bool SvNumberFormatter::PutEntry(String& rString, return bCheck; } -bool SvNumberFormatter::PutEntry( - OUString& rString, xub_StrLen& nCheckPos, short& nType, sal_uInt32& nKey, - LanguageType eLnge) +bool SvNumberFormatter::PutEntry(OUString& rString, sal_Int32& nCheckPos32, + short& nType, sal_uInt32& nKey, + LanguageType eLnge) { // Wrapper to allow OUString to be used. String aStr(rString); + xub_StrLen nCheckPos = nCheckPos32 < 0 ? 0xFFFF : (xub_StrLen)nCheckPos32; bool bRet = PutEntry(aStr, nCheckPos, nType, nKey, eLnge); rString = aStr; + nCheckPos32 = nCheckPos == 0xFFFF ? -1 : nCheckPos; return bRet; } @@ -561,24 +574,45 @@ bool SvNumberFormatter::PutandConvertEntry(String& rString, } bool SvNumberFormatter::PutandConvertEntry(OUString& rString, - xub_StrLen& nCheckPos, + sal_Int32& nCheckPos, short& nType, sal_uInt32& nKey, LanguageType eLnge, LanguageType eNewLnge) { - String aStr; - bool bRet = PutandConvertEntry(aStr, nCheckPos, nType, nKey, eLnge, eNewLnge); - rString = aStr; - return bRet; + bool bRes; + if (eNewLnge == LANGUAGE_DONTKNOW) + eNewLnge = IniLnge; + + pFormatScanner->SetConvertMode(eLnge, eNewLnge); + bRes = PutEntry(rString, nCheckPos, nType, nKey, eLnge); + pFormatScanner->SetConvertMode(false); + return bRes; +} + +bool SvNumberFormatter::PutandConvertEntrySystem(OUString& rString, + sal_Int32& nCheckPos, + short& nType, + sal_uInt32& nKey, + LanguageType eLnge, + LanguageType eNewLnge) +{ + bool bRes; + if (eNewLnge == LANGUAGE_DONTKNOW) + eNewLnge = IniLnge; + + pFormatScanner->SetConvertMode(eLnge, eNewLnge, true); + bRes = PutEntry(rString, nCheckPos, nType, nKey, eLnge); + pFormatScanner->SetConvertMode(false); + return bRes; } bool SvNumberFormatter::PutandConvertEntrySystem(String& rString, - xub_StrLen& nCheckPos, - short& nType, - sal_uInt32& nKey, - LanguageType eLnge, - LanguageType eNewLnge) + xub_StrLen& nCheckPos, + short& nType, + sal_uInt32& nKey, + LanguageType eLnge, + LanguageType eNewLnge) { bool bRes; if (eNewLnge == LANGUAGE_DONTKNOW) @@ -617,7 +651,7 @@ sal_uInt32 SvNumberFormatter::GetIndexPuttingAndConverting( String & rString, // language and wouldn't match eSysLnge anymore, do that on a copy. String aTmp( rString); rNewInserted = PutandConvertEntrySystem( aTmp, rCheckPos, rType, - nKey, eLnge, SvtSysLocale().GetLanguage()); + nKey, eLnge, SvtSysLocale().GetLanguage()); if (rCheckPos > 0) { SAL_WARN( "svl.numbers", "SvNumberFormatter::GetIndexPuttingAndConverting: bad format code string for current locale"); @@ -3194,7 +3228,7 @@ sal_uInt32 SvNumberFormatter::ImpGetDefaultSystemCurrencyFormat() { if ( nDefaultSystemCurrencyFormat == NUMBERFORMAT_ENTRY_NOT_FOUND ) { - xub_StrLen nCheck; + sal_Int32 nCheck; short nType; NfWSStringsDtor aCurrList; sal_uInt16 nDefault = GetCurrencyFormatStrings( aCurrList, @@ -3237,7 +3271,7 @@ sal_uInt32 SvNumberFormatter::ImpGetDefaultCurrencyFormat() if ( nDefaultCurrencyFormat == NUMBERFORMAT_ENTRY_NOT_FOUND ) { // none found, create one - xub_StrLen nCheck; + sal_Int32 nCheck; NfWSStringsDtor aCurrList; sal_uInt16 nDefault = GetCurrencyFormatStrings( aCurrList, GetCurrencyEntry( ActLnge ), false ); |