summaryrefslogtreecommitdiff
path: root/svl
diff options
context:
space:
mode:
authorNorbert Thiebaud <nthiebaud@gmail.com>2012-11-23 19:31:49 -0600
committerNorbert Thiebaud <nthiebaud@gmail.com>2012-11-27 22:59:27 -0600
commitbedca5cee7d0c1adbf42b894aaec5098d9224443 (patch)
tree34be6ca030285358063fa36ad15d94c378086d32 /svl
parent114ed543a157adfc2792dc726186a75da9f3665a (diff)
convert ImpGet[Date|Time|DateTime]Output to OUStringBuffer
Change-Id: Ie4ab10b81897ac32228dc1267b3da00250ff82ea
Diffstat (limited to 'svl')
-rw-r--r--svl/inc/svl/zformat.hxx4
-rw-r--r--svl/source/numbers/zformat.cxx306
2 files changed, 162 insertions, 148 deletions
diff --git a/svl/inc/svl/zformat.hxx b/svl/inc/svl/zformat.hxx
index 7c75d3b69770..18f5a359fb11 100644
--- a/svl/inc/svl/zformat.hxx
+++ b/svl/inc/svl/zformat.hxx
@@ -641,8 +641,8 @@ private:
// Append a "G" short era string of the given calendar. In the case of a
// Gengou calendar this is a one character abbreviation, for other
// calendars the XExtendedCalendar::getDisplayString() method is called.
- SVL_DLLPRIVATE static void ImpAppendEraG( String& OutString, const CalendarWrapper& rCal,
- sal_Int16 nNatNum );
+ SVL_DLLPRIVATE static void ImpAppendEraG( OUStringBuffer& OutStringBuffer, const CalendarWrapper& rCal,
+ sal_Int16 nNatNum );
SVL_DLLPRIVATE bool ImpGetNumberOutput( double fNumber,
sal_uInt16 nIx,
diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx
index 90cde430e433..91b54f33e2b8 100644
--- a/svl/source/numbers/zformat.cxx
+++ b/svl/source/numbers/zformat.cxx
@@ -3032,11 +3032,12 @@ bool SvNumberformat::ImpGetFractionOutput(double fNumber,
}
bool SvNumberformat::ImpGetTimeOutput(double fNumber,
- sal_uInt16 nIx,
- String& OutString)
+ sal_uInt16 nIx,
+ String& OutString)
{
using namespace ::com::sun::star::i18n;
bool bCalendarSet = false;
+ OUStringBuffer sBuff(OutString);
double fNumberOrig = fNumber;
bool bRes = false;
bool bSign = false;
@@ -3062,7 +3063,7 @@ bool SvNumberformat::ImpGetTimeOutput(double fNumber,
fNumber -= floor(fNumber); // sonst Datum abtrennen
}
bool bInputLine;
- xub_StrLen nCntPost;
+ sal_Int32 nCntPost;
if ( rScan.GetStandardPrec() == 300 &&
0 < rInfo.nCntPost && rInfo.nCntPost < 7 )
{ // round at 7 decimals (+5 of 86400 == 12 significant digits)
@@ -3072,7 +3073,7 @@ bool SvNumberformat::ImpGetTimeOutput(double fNumber,
else
{
bInputLine = false;
- nCntPost = xub_StrLen(rInfo.nCntPost);
+ nCntPost = rInfo.nCntPost;
}
if (bSign && !rInfo.bThousand) // kein []-Format
{
@@ -3091,25 +3092,26 @@ bool SvNumberformat::ImpGetTimeOutput(double fNumber,
}
sal_uLong nSeconds = (sal_uLong)floor( fTime );
- String sSecStr( ::rtl::math::doubleToUString( fTime-nSeconds,
- rtl_math_StringFormat_F, int(nCntPost), '.'));
- sSecStr = comphelper::string::stripStart(sSecStr, '0');
- sSecStr = comphelper::string::stripStart(sSecStr, '.');
+ OUStringBuffer sSecStr( ::rtl::math::doubleToUString( fTime-nSeconds,
+ rtl_math_StringFormat_F, int(nCntPost), '.'));
+ sSecStr.stripStart((sal_Unicode)'0');
+ sSecStr.stripStart((sal_Unicode)'.');
if ( bInputLine )
{
- using namespace comphelper::string;
- OUStringBuffer aBuf(stripEnd(sSecStr, '0'));
- if (aBuf.getLength() < rInfo.nCntPost)
- padToLength(aBuf, rInfo.nCntPost, '0');
- sSecStr = aBuf.makeStringAndClear();
- sSecStr = impTransliterate(sSecStr, NumFor[nIx].GetNatNum());
- nCntPost = sSecStr.Len();
+ sSecStr.stripEnd((sal_Unicode)'0');
+ for(sal_Int32 index = sSecStr.getLength(); index < rInfo.nCntPost; ++index)
+ {
+ sSecStr.append((sal_Unicode)'0');
+ }
+ impTransliterate(sSecStr, NumFor[nIx].GetNatNum());
+ nCntPost = sSecStr.getLength();
}
else
{
- sSecStr = impTransliterate(sSecStr, NumFor[nIx].GetNatNum());
+ impTransliterate(sSecStr, NumFor[nIx].GetNatNum());
}
- xub_StrLen nSecPos = 0; // Zum Ziffernweisen
+
+ sal_Int32 nSecPos = 0; // Zum Ziffernweisen
// abarbeiten
sal_uLong nHour, nMin, nSec;
if (!rInfo.bThousand) // kein [] Format
@@ -3168,36 +3170,36 @@ bool SvNumberformat::ImpGetTimeOutput(double fNumber,
const sal_uInt16 nAnz = NumFor[nIx].GetCount();
for (sal_uInt16 i = 0; i < nAnz; i++)
{
- xub_StrLen nLen;
+ sal_Int32 nLen;
switch (rInfo.nTypeArray[i])
{
case NF_SYMBOLTYPE_STAR:
if( bStarFlag )
{
- OutString += (sal_Unicode) 0x1B;
- OutString += rInfo.sStrArray[i][1];
+ sBuff.append((sal_Unicode)0x1B);
+ sBuff.append(rInfo.sStrArray[i][1]);
bRes = true;
}
break;
case NF_SYMBOLTYPE_BLANK:
- InsertBlanks( OutString, OutString.Len(),
- rInfo.sStrArray[i][1] );
+ InsertBlanks(sBuff, sBuff.getLength(),
+ rInfo.sStrArray[i][1] );
break;
case NF_SYMBOLTYPE_STRING:
case NF_SYMBOLTYPE_CURRENCY:
case NF_SYMBOLTYPE_DATESEP:
case NF_SYMBOLTYPE_TIMESEP:
case NF_SYMBOLTYPE_TIME100SECSEP:
- OutString += rInfo.sStrArray[i];
+ sBuff.append(rInfo.sStrArray[i]);
break;
case NF_SYMBOLTYPE_DIGIT:
nLen = ( bInputLine && i > 0 &&
(rInfo.nTypeArray[i-1] == NF_SYMBOLTYPE_STRING ||
rInfo.nTypeArray[i-1] == NF_SYMBOLTYPE_TIME100SECSEP) ?
nCntPost : rInfo.sStrArray[i].getLength() );
- for (xub_StrLen j = 0; j < nLen && nSecPos < nCntPost; j++)
+ for (sal_Int32 j = 0; j < nLen && nSecPos < nCntPost; j++)
{
- OutString += sSecStr.GetChar(nSecPos);
+ sBuff.append(sSecStr[nSecPos]);
nSecPos++;
}
break;
@@ -3211,42 +3213,42 @@ bool SvNumberformat::ImpGetTimeOutput(double fNumber,
}
if (cAmPm == 'a')
{
- OutString += GetCal().getDisplayName(
- CalendarDisplayIndex::AM_PM, AmPmValue::AM, 0 );
+ sBuff.append(GetCal().getDisplayName(
+ CalendarDisplayIndex::AM_PM, AmPmValue::AM, 0 ));
}
else
{
- OutString += GetCal().getDisplayName(
- CalendarDisplayIndex::AM_PM, AmPmValue::PM, 0 );
+ sBuff.append(GetCal().getDisplayName(
+ CalendarDisplayIndex::AM_PM, AmPmValue::PM, 0 ));
}
break;
case NF_KEY_AP: // A/P
if (cAmPm == 'a')
{
- OutString += 'a';
+ sBuff.append((sal_Unicode)'a');
}
else
{
- OutString += 'p';
+ sBuff.append((sal_Unicode)'p');
}
break;
case NF_KEY_MI: // M
- OutString += ImpIntToString( nIx, nMin );
+ sBuff.append(ImpIntToString( nIx, nMin ));
break;
case NF_KEY_MMI: // MM
- OutString += ImpIntToString( nIx, nMin, 2 );
+ sBuff.append(ImpIntToString( nIx, nMin, 2 ));
break;
case NF_KEY_H: // H
- OutString += ImpIntToString( nIx, nHour );
+ sBuff.append(ImpIntToString( nIx, nHour ));
break;
case NF_KEY_HH: // HH
- OutString += ImpIntToString( nIx, nHour, 2 );
+ sBuff.append(ImpIntToString( nIx, nHour, 2 ));
break;
case NF_KEY_S: // S
- OutString += ImpIntToString( nIx, nSec );
+ sBuff.append(ImpIntToString( nIx, nSec ));
break;
case NF_KEY_SS: // SS
- OutString += ImpIntToString( nIx, nSec, 2 );
+ sBuff.append(ImpIntToString( nIx, nSec, 2 ));
break;
default:
break;
@@ -3254,8 +3256,9 @@ bool SvNumberformat::ImpGetTimeOutput(double fNumber,
}
if (bSign && rInfo.bThousand)
{
- OutString.Insert('-',0);
+ sBuff.insert(0, (sal_Unicode)'-');
}
+ OutString = sBuff.makeStringAndClear();
return bRes;
}
@@ -3503,7 +3506,7 @@ bool SvNumberformat::ImpSwitchToSpecifiedCalendar( String& rOrgCalendar,
#endif
// static
-void SvNumberformat::ImpAppendEraG( String& OutString,
+void SvNumberformat::ImpAppendEraG( OUStringBuffer& OutString,
const CalendarWrapper& rCal,
sal_Int16 nNatNum )
{
@@ -3530,11 +3533,11 @@ void SvNumberformat::ImpAppendEraG( String& OutString,
cEra = '?';
break;
}
- OutString += cEra;
+ OutString.append(cEra);
}
else
{
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_ERA, nNatNum );
+ OutString.append(rCal.getDisplayString( CalendarDisplayCode::SHORT_ERA, nNatNum ));
}
}
@@ -3632,6 +3635,7 @@ bool SvNumberformat::ImpGetDateOutput(double fNumber,
{
using namespace ::com::sun::star::i18n;
bool bRes = false;
+ OUStringBuffer sBuff(OutString);
CalendarWrapper& rCal = GetCal();
double fDiff = DateTime(*(rScan.GetNullDate())) - rCal.getEpochStart();
fNumber += fDiff;
@@ -3652,7 +3656,7 @@ bool SvNumberformat::ImpGetDateOutput(double fNumber,
const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info();
const sal_uInt16 nAnz = NumFor[nIx].GetCount();
sal_Int16 nNatNum = NumFor[nIx].GetNatNum().GetNatNum();
- String aYear;
+ OUString aYear;
for (sal_uInt16 i = 0; i < nAnz; i++)
{
@@ -3671,60 +3675,60 @@ bool SvNumberformat::ImpGetDateOutput(double fNumber,
case NF_SYMBOLTYPE_STAR:
if( bStarFlag )
{
- OutString += (sal_Unicode) 0x1B;
- OutString += rInfo.sStrArray[i][1];
+ sBuff.append((sal_Unicode) 0x1B);
+ sBuff.append(rInfo.sStrArray[i][1]);
bRes = true;
}
break;
case NF_SYMBOLTYPE_BLANK:
- InsertBlanks( OutString, OutString.Len(), rInfo.sStrArray[i][1] );
+ InsertBlanks( sBuff, sBuff.getLength(), rInfo.sStrArray[i][1] );
break;
case NF_SYMBOLTYPE_STRING:
case NF_SYMBOLTYPE_CURRENCY:
case NF_SYMBOLTYPE_DATESEP:
case NF_SYMBOLTYPE_TIMESEP:
case NF_SYMBOLTYPE_TIME100SECSEP:
- OutString += rInfo.sStrArray[i];
+ sBuff.append(rInfo.sStrArray[i]);
break;
case NF_KEY_M: // M
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_MONTH, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::SHORT_MONTH, nNatNum ));
break;
case NF_KEY_MM: // MM
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_MONTH, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_MONTH, nNatNum ));
break;
case NF_KEY_MMM: // MMM
- OutString += rCal.getDisplayString( ImpUseMonthCase( nUseMonthCase, NumFor[nIx],
+ sBuff.append(rCal.getDisplayString( ImpUseMonthCase( nUseMonthCase, NumFor[nIx],
static_cast<NfKeywordIndex>(rInfo.nTypeArray[i])),
- nNatNum);
+ nNatNum));
break;
case NF_KEY_MMMM: // MMMM
- OutString += rCal.getDisplayString( ImpUseMonthCase( nUseMonthCase, NumFor[nIx],
+ sBuff.append(rCal.getDisplayString( ImpUseMonthCase( nUseMonthCase, NumFor[nIx],
static_cast<NfKeywordIndex>(rInfo.nTypeArray[i])),
- nNatNum);
+ nNatNum));
break;
case NF_KEY_MMMMM: // MMMMM
- OutString += rCal.getDisplayString( ImpUseMonthCase( nUseMonthCase, NumFor[nIx],
+ sBuff.append(rCal.getDisplayString( ImpUseMonthCase( nUseMonthCase, NumFor[nIx],
static_cast<NfKeywordIndex>(rInfo.nTypeArray[i])),
- nNatNum);
+ nNatNum));
break;
case NF_KEY_Q: // Q
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_QUARTER, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::SHORT_QUARTER, nNatNum ));
break;
case NF_KEY_QQ: // QQ
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_QUARTER, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_QUARTER, nNatNum ));
break;
case NF_KEY_D: // D
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_DAY, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::SHORT_DAY, nNatNum ));
break;
case NF_KEY_DD: // DD
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_DAY, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_DAY, nNatNum ));
break;
case NF_KEY_DDD: // DDD
if ( bOtherCalendar )
{
SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
}
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_DAY_NAME, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::SHORT_DAY_NAME, nNatNum ));
if ( bOtherCalendar )
{
SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
@@ -3735,7 +3739,7 @@ bool SvNumberformat::ImpGetDateOutput(double fNumber,
{
SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
}
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_DAY_NAME, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_DAY_NAME, nNatNum ));
if ( bOtherCalendar )
{
SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
@@ -3746,7 +3750,7 @@ bool SvNumberformat::ImpGetDateOutput(double fNumber,
{
SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
}
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_YEAR, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::SHORT_YEAR, nNatNum ));
if ( bOtherCalendar )
{
SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
@@ -3758,57 +3762,61 @@ bool SvNumberformat::ImpGetDateOutput(double fNumber,
SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
}
aYear = rCal.getDisplayString( CalendarDisplayCode::LONG_YEAR, nNatNum );
- if (aYear.Len() < 4)
+ if (aYear.getLength() < 4)
{
using namespace comphelper::string;
// Ensure that year consists of at least 4 digits, so it
// can be distinguished from 2 digits display and edited
// without suddenly being hit by the 2-digit year magic.
OUStringBuffer aBuf;
- padToLength(aBuf, 4 - aYear.Len(), sal_Unicode('0'));
- OUString aZero = impTransliterate(aBuf.makeStringAndClear(), NumFor[nIx].GetNatNum());
- aYear.Insert(aZero, 0);
+ padToLength(aBuf, 4 - aYear.getLength(), sal_Unicode('0'));
+ impTransliterate(aBuf, NumFor[nIx].GetNatNum());
+ aBuf.append(aYear);
+ sBuff.append(aBuf);
+ }
+ else
+ {
+ sBuff.append(aYear);
}
- OutString += aYear;
if ( bOtherCalendar )
{
SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
}
break;
case NF_KEY_EC: // E
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_YEAR, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::SHORT_YEAR, nNatNum ));
break;
case NF_KEY_EEC: // EE
case NF_KEY_R: // R
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_YEAR, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_YEAR, nNatNum ));
break;
case NF_KEY_NN: // NN
case NF_KEY_AAA: // AAA
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_DAY_NAME, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::SHORT_DAY_NAME, nNatNum ));
break;
case NF_KEY_NNN: // NNN
case NF_KEY_AAAA: // AAAA
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_DAY_NAME, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_DAY_NAME, nNatNum ));
break;
case NF_KEY_NNNN: // NNNN
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_DAY_NAME, nNatNum );
- OutString += rLoc().getLongDateDayOfWeekSep();
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_DAY_NAME, nNatNum ));
+ sBuff.append(rLoc().getLongDateDayOfWeekSep());
break;
case NF_KEY_WW : // WW
- OutString += ImpIntToString( nIx,
- rCal.getValue( CalendarFieldIndex::WEEK_OF_YEAR ));
+ sBuff.append(ImpIntToString( nIx,
+ rCal.getValue( CalendarFieldIndex::WEEK_OF_YEAR )));
break;
case NF_KEY_G: // G
- ImpAppendEraG( OutString, rCal, nNatNum );
+ ImpAppendEraG(sBuff, rCal, nNatNum );
break;
case NF_KEY_GG: // GG
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_ERA, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::SHORT_ERA, nNatNum ));
break;
case NF_KEY_GGG: // GGG
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_ERA, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_ERA, nNatNum ));
break;
case NF_KEY_RR: // RR => GGGEE
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_YEAR_AND_ERA, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_YEAR_AND_ERA, nNatNum ));
break;
}
}
@@ -3816,6 +3824,7 @@ bool SvNumberformat::ImpGetDateOutput(double fNumber,
{
rCal.loadCalendar( aOrgCalendar, rLoc().getLanguageTag().getLocale() ); // restore calendar
}
+ OutString = sBuff.makeStringAndClear();
return bRes;
}
@@ -3825,6 +3834,7 @@ bool SvNumberformat::ImpGetDateTimeOutput(double fNumber,
{
using namespace ::com::sun::star::i18n;
bool bRes = false;
+ OUStringBuffer sBuff(OutString);
CalendarWrapper& rCal = GetCal();
double fDiff = DateTime(*(rScan.GetNullDate())) - rCal.getEpochStart();
@@ -3832,7 +3842,7 @@ bool SvNumberformat::ImpGetDateTimeOutput(double fNumber,
const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info();
bool bInputLine;
- xub_StrLen nCntPost;
+ sal_Int32 nCntPost;
if ( rScan.GetStandardPrec() == 300 &&
0 < rInfo.nCntPost && rInfo.nCntPost < 7 )
{
@@ -3870,28 +3880,27 @@ bool SvNumberformat::ImpGetDateTimeOutput(double fNumber,
sal_Int16 nNatNum = NumFor[nIx].GetNatNum().GetNatNum();
sal_uLong nSeconds = (sal_uLong)floor( fTime );
- String sSecStr( ::rtl::math::doubleToUString( fTime-nSeconds,
+ OUStringBuffer sSecStr( ::rtl::math::doubleToUString( fTime-nSeconds,
rtl_math_StringFormat_F, int(nCntPost), '.'));
- sSecStr = comphelper::string::stripStart(sSecStr, '0');
- sSecStr = comphelper::string::stripStart(sSecStr, '.');
+ sSecStr.stripStart((sal_Unicode)'0');
+ sSecStr.stripStart((sal_Unicode)'.');
if ( bInputLine )
{
- using namespace comphelper::string;
- OUStringBuffer aBuf(stripEnd(sSecStr, '0'));
- if (aBuf.getLength() < rInfo.nCntPost)
+ sSecStr.stripEnd((sal_Unicode)'0');
+ for(sal_Int32 index = sSecStr.getLength(); index < rInfo.nCntPost; ++index)
{
- padToLength(aBuf, rInfo.nCntPost, '0');
+ sSecStr.append((sal_Unicode)'0');
}
- sSecStr = aBuf.makeStringAndClear();
- sSecStr = impTransliterate(sSecStr, NumFor[nIx].GetNatNum());
- nCntPost = sSecStr.Len();
+ impTransliterate(sSecStr, NumFor[nIx].GetNatNum());
+ nCntPost = sSecStr.getLength();
}
else
{
- sSecStr = impTransliterate(sSecStr, NumFor[nIx].GetNatNum());
+ impTransliterate(sSecStr, NumFor[nIx].GetNatNum());
}
- xub_StrLen nSecPos = 0; // Zum Ziffernweisen
- // abarbeiten
+
+ sal_Int32 nSecPos = 0; // Zum Ziffernweisen
+ // abarbeiten
sal_uLong nHour, nMin, nSec;
if (!rInfo.bThousand) // [] Format
{
@@ -3945,8 +3954,8 @@ bool SvNumberformat::ImpGetDateTimeOutput(double fNumber,
}
}
const sal_uInt16 nAnz = NumFor[nIx].GetCount();
- xub_StrLen nLen;
- String aYear;
+ sal_Int32 nLen;
+ OUString aYear;
for (sal_uInt16 i = 0; i < nAnz; i++)
{
switch (rInfo.nTypeArray[i])
@@ -3964,13 +3973,13 @@ bool SvNumberformat::ImpGetDateTimeOutput(double fNumber,
case NF_SYMBOLTYPE_STAR:
if( bStarFlag )
{
- OutString += (sal_Unicode) 0x1B;
- OutString += rInfo.sStrArray[i][1];
+ sBuff.append((sal_Unicode) 0x1B);
+ sBuff.append(rInfo.sStrArray[i][1]);
bRes = true;
}
break;
case NF_SYMBOLTYPE_BLANK:
- InsertBlanks( OutString, OutString.Len(),
+ InsertBlanks( sBuff, sBuff.getLength(),
rInfo.sStrArray[i][1] );
break;
case NF_SYMBOLTYPE_STRING:
@@ -3978,100 +3987,100 @@ bool SvNumberformat::ImpGetDateTimeOutput(double fNumber,
case NF_SYMBOLTYPE_DATESEP:
case NF_SYMBOLTYPE_TIMESEP:
case NF_SYMBOLTYPE_TIME100SECSEP:
- OutString += rInfo.sStrArray[i];
+ sBuff.append(rInfo.sStrArray[i]);
break;
case NF_SYMBOLTYPE_DIGIT:
nLen = ( bInputLine && i > 0 &&
(rInfo.nTypeArray[i-1] == NF_SYMBOLTYPE_STRING ||
rInfo.nTypeArray[i-1] == NF_SYMBOLTYPE_TIME100SECSEP) ?
nCntPost : rInfo.sStrArray[i].getLength() );
- for (xub_StrLen j = 0; j < nLen && nSecPos < nCntPost; j++)
+ for (sal_Int32 j = 0; j < nLen && nSecPos < nCntPost; j++)
{
- OutString += sSecStr.GetChar(nSecPos);
+ sBuff.append(sSecStr[ nSecPos ]);
nSecPos++;
}
break;
case NF_KEY_AMPM: // AM/PM
if (cAmPm == 'a')
{
- OutString += rCal.getDisplayName( CalendarDisplayIndex::AM_PM,
- AmPmValue::AM, 0 );
+ sBuff.append(rCal.getDisplayName( CalendarDisplayIndex::AM_PM,
+ AmPmValue::AM, 0 ));
}
else
{
- OutString += rCal.getDisplayName( CalendarDisplayIndex::AM_PM,
- AmPmValue::PM, 0 );
+ sBuff.append(rCal.getDisplayName( CalendarDisplayIndex::AM_PM,
+ AmPmValue::PM, 0 ));
}
break;
case NF_KEY_AP: // A/P
if (cAmPm == 'a')
{
- OutString += 'a';
+ sBuff.append((sal_Unicode)'a');
}
else
{
- OutString += 'p';
+ sBuff.append((sal_Unicode)'p');
}
break;
case NF_KEY_MI: // M
- OutString += ImpIntToString( nIx, nMin );
+ sBuff.append(ImpIntToString( nIx, nMin ));
break;
case NF_KEY_MMI: // MM
- OutString += ImpIntToString( nIx, nMin, 2 );
+ sBuff.append(ImpIntToString( nIx, nMin, 2 ));
break;
case NF_KEY_H: // H
- OutString += ImpIntToString( nIx, nHour );
+ sBuff.append(ImpIntToString( nIx, nHour ));
break;
case NF_KEY_HH: // HH
- OutString += ImpIntToString( nIx, nHour, 2 );
+ sBuff.append(ImpIntToString( nIx, nHour, 2 ));
break;
case NF_KEY_S: // S
- OutString += ImpIntToString( nIx, nSec );
+ sBuff.append(ImpIntToString( nIx, nSec ));
break;
case NF_KEY_SS: // SS
- OutString += ImpIntToString( nIx, nSec, 2 );
+ sBuff.append(ImpIntToString( nIx, nSec, 2 ));
break;
case NF_KEY_M: // M
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_MONTH, nNatNum );
+ sBuff.append(rCal.getDisplayString(
+ CalendarDisplayCode::SHORT_MONTH, nNatNum ));
break;
case NF_KEY_MM: // MM
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_MONTH, nNatNum );
+ sBuff.append(rCal.getDisplayString(
+ CalendarDisplayCode::LONG_MONTH, nNatNum ));
break;
case NF_KEY_MMM: // MMM
- OutString += rCal.getDisplayString( ImpUseMonthCase( nUseMonthCase, NumFor[nIx],
+ sBuff.append(rCal.getDisplayString( ImpUseMonthCase( nUseMonthCase, NumFor[nIx],
static_cast<NfKeywordIndex>(rInfo.nTypeArray[i])),
- nNatNum);
+ nNatNum));
break;
case NF_KEY_MMMM: // MMMM
- OutString += rCal.getDisplayString( ImpUseMonthCase( nUseMonthCase, NumFor[nIx],
+ sBuff.append(rCal.getDisplayString( ImpUseMonthCase( nUseMonthCase, NumFor[nIx],
static_cast<NfKeywordIndex>(rInfo.nTypeArray[i])),
- nNatNum);
+ nNatNum));
break;
case NF_KEY_MMMMM: // MMMMM
- OutString += rCal.getDisplayString( ImpUseMonthCase( nUseMonthCase, NumFor[nIx],
+ sBuff.append(rCal.getDisplayString( ImpUseMonthCase( nUseMonthCase, NumFor[nIx],
static_cast<NfKeywordIndex>(rInfo.nTypeArray[i])),
- nNatNum);
+ nNatNum));
break;
case NF_KEY_Q: // Q
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_QUARTER, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::SHORT_QUARTER, nNatNum ));
break;
case NF_KEY_QQ: // QQ
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_QUARTER, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_QUARTER, nNatNum ));
break;
case NF_KEY_D: // D
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_DAY, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::SHORT_DAY, nNatNum ));
break;
case NF_KEY_DD: // DD
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_DAY, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_DAY, nNatNum ));
break;
case NF_KEY_DDD: // DDD
if ( bOtherCalendar )
{
SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
}
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_DAY_NAME, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::SHORT_DAY_NAME, nNatNum ));
if ( bOtherCalendar )
{
SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
@@ -4082,7 +4091,7 @@ bool SvNumberformat::ImpGetDateTimeOutput(double fNumber,
{
SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
}
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_DAY_NAME, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_DAY_NAME, nNatNum ));
if ( bOtherCalendar )
{
SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
@@ -4093,68 +4102,72 @@ bool SvNumberformat::ImpGetDateTimeOutput(double fNumber,
{
SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
}
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_YEAR, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::SHORT_YEAR, nNatNum ));
if ( bOtherCalendar )
{
SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
}
- break;
+ break;
case NF_KEY_YYYY: // YYYY
if ( bOtherCalendar )
{
SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
}
aYear = rCal.getDisplayString( CalendarDisplayCode::LONG_YEAR, nNatNum );
- if (aYear.Len() < 4)
+ if (aYear.getLength() < 4)
{
using namespace comphelper::string;
// Ensure that year consists of at least 4 digits, so it
// can be distinguished from 2 digits display and edited
// without suddenly being hit by the 2-digit year magic.
OUStringBuffer aBuf;
- padToLength(aBuf, 4 - aYear.Len(), sal_Unicode('0'));
- OUString aZero = impTransliterate(aBuf.makeStringAndClear(), NumFor[nIx].GetNatNum());
- aYear.Insert(aZero, 0);
+ padToLength(aBuf, 4 - aYear.getLength(), sal_Unicode('0'));
+ impTransliterate(aBuf, NumFor[nIx].GetNatNum());
+ aBuf.append(aYear);
+ sBuff.append(aBuf);
+ }
+ else
+ {
+ sBuff.append(aYear);
}
- OutString += aYear;
if ( bOtherCalendar )
{
SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
}
break;
case NF_KEY_EC: // E
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_YEAR, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::SHORT_YEAR, nNatNum ));
break;
case NF_KEY_EEC: // EE
case NF_KEY_R: // R
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_YEAR, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_YEAR, nNatNum ));
break;
case NF_KEY_NN: // NN
case NF_KEY_AAA: // AAA
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_DAY_NAME, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::SHORT_DAY_NAME, nNatNum ));
break;
case NF_KEY_NNN: // NNN
case NF_KEY_AAAA: // AAAA
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_DAY_NAME, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_DAY_NAME, nNatNum ));
break;
case NF_KEY_NNNN: // NNNN
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_DAY_NAME, nNatNum );
- OutString += rLoc().getLongDateDayOfWeekSep();
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_DAY_NAME, nNatNum ));
+ sBuff.append(rLoc().getLongDateDayOfWeekSep());
break;
case NF_KEY_WW : // WW
- OutString += ImpIntToString( nIx, rCal.getValue( CalendarFieldIndex::WEEK_OF_YEAR ));
+ sBuff.append(ImpIntToString( nIx, rCal.getValue( CalendarFieldIndex::WEEK_OF_YEAR )));
break;
case NF_KEY_G: // G
- ImpAppendEraG( OutString, rCal, nNatNum );
+ ImpAppendEraG( sBuff, rCal, nNatNum );
break;
case NF_KEY_GG: // GG
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_ERA, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::SHORT_ERA, nNatNum ));
break;
case NF_KEY_GGG: // GGG
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_ERA, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_ERA, nNatNum ));
break;
case NF_KEY_RR: // RR => GGGEE
- OutString += rCal.getDisplayString( CalendarDisplayCode::LONG_YEAR_AND_ERA, nNatNum );
+ sBuff.append(rCal.getDisplayString( CalendarDisplayCode::LONG_YEAR_AND_ERA, nNatNum ));
break;
}
}
@@ -4162,6 +4175,7 @@ bool SvNumberformat::ImpGetDateTimeOutput(double fNumber,
{
rCal.loadCalendar( aOrgCalendar, rLoc().getLanguageTag().getLocale() ); // restore calendar
}
+ OutString = sBuff.makeStringAndClear();
return bRes;
}