Kaydet (Commit) e33c26e6 authored tarafından Kohei Yoshida's avatar Kohei Yoshida

Expanded macros to make it easier to work on ByteString.

üst e20365e6
...@@ -2771,11 +2771,6 @@ void ScInterpreter::ScEuroConvert() ...@@ -2771,11 +2771,6 @@ void ScInterpreter::ScEuroConvert()
#define UTF8_TH_SATANG "\340\270\252\340\270\225\340\270\262\340\270\207\340\270\204\340\271\214" #define UTF8_TH_SATANG "\340\270\252\340\270\225\340\270\262\340\270\207\340\270\204\340\271\214"
#define UTF8_TH_MINUS "\340\270\245\340\270\232" #define UTF8_TH_MINUS "\340\270\245\340\270\232"
#define UTF8_STRINGPARAM( ascii ) ascii, static_cast< xub_StrLen >( sizeof( ascii ) - 1 )
#define UTF8_CREATE( ascii ) rtl::OString( RTL_CONSTASCII_STRINGPARAM( ascii ) )
#define UTF8_APPEND( ascii ) Append( UTF8_STRINGPARAM( ascii ) )
#define UTF8_PREPEND( ascii ) Insert( UTF8_CREATE( ascii ), 0 )
// local functions ------------------------------------------------------------ // local functions ------------------------------------------------------------
namespace { namespace {
...@@ -2790,16 +2785,16 @@ void lclAppendDigit( ByteString& rText, sal_Int32 nDigit ) ...@@ -2790,16 +2785,16 @@ void lclAppendDigit( ByteString& rText, sal_Int32 nDigit )
{ {
switch( nDigit ) switch( nDigit )
{ {
case 0: rText.UTF8_APPEND( UTF8_TH_0 ); break; case 0: rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_0 ) ); break;
case 1: rText.UTF8_APPEND( UTF8_TH_1 ); break; case 1: rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_1 ) ); break;
case 2: rText.UTF8_APPEND( UTF8_TH_2 ); break; case 2: rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_2 ) ); break;
case 3: rText.UTF8_APPEND( UTF8_TH_3 ); break; case 3: rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_3 ) ); break;
case 4: rText.UTF8_APPEND( UTF8_TH_4 ); break; case 4: rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_4 ) ); break;
case 5: rText.UTF8_APPEND( UTF8_TH_5 ); break; case 5: rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_5 ) ); break;
case 6: rText.UTF8_APPEND( UTF8_TH_6 ); break; case 6: rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_6 ) ); break;
case 7: rText.UTF8_APPEND( UTF8_TH_7 ); break; case 7: rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_7 ) ); break;
case 8: rText.UTF8_APPEND( UTF8_TH_8 ); break; case 8: rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_8 ) ); break;
case 9: rText.UTF8_APPEND( UTF8_TH_9 ); break; case 9: rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_9 ) ); break;
default: OSL_FAIL( "lclAppendDigit - illegal digit" ); default: OSL_FAIL( "lclAppendDigit - illegal digit" );
} }
} }
...@@ -2814,10 +2809,10 @@ void lclAppendPow10( ByteString& rText, sal_Int32 nDigit, sal_Int32 nPow10 ) ...@@ -2814,10 +2809,10 @@ void lclAppendPow10( ByteString& rText, sal_Int32 nDigit, sal_Int32 nPow10 )
lclAppendDigit( rText, nDigit ); lclAppendDigit( rText, nDigit );
switch( nPow10 ) switch( nPow10 )
{ {
case 2: rText.UTF8_APPEND( UTF8_TH_1E2 ); break; case 2: rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_1E2 ) ); break;
case 3: rText.UTF8_APPEND( UTF8_TH_1E3 ); break; case 3: rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_1E3 ) ); break;
case 4: rText.UTF8_APPEND( UTF8_TH_1E4 ); break; case 4: rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_1E4 ) ); break;
case 5: rText.UTF8_APPEND( UTF8_TH_1E5 ); break; case 5: rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_1E5 ) ); break;
default: OSL_FAIL( "lclAppendPow10 - illegal power" ); default: OSL_FAIL( "lclAppendPow10 - illegal power" );
} }
} }
...@@ -2855,11 +2850,11 @@ void lclAppendBlock( ByteString& rText, sal_Int32 nValue ) ...@@ -2855,11 +2850,11 @@ void lclAppendBlock( ByteString& rText, sal_Int32 nValue )
if( nTen >= 3 ) if( nTen >= 3 )
lclAppendDigit( rText, nTen ); lclAppendDigit( rText, nTen );
else if( nTen == 2 ) else if( nTen == 2 )
rText.UTF8_APPEND( UTF8_TH_20 ); rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_20 ) );
rText.UTF8_APPEND( UTF8_TH_10 ); rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_10 ) );
} }
if( (nTen > 0) && (nOne == 1) ) if( (nTen > 0) && (nOne == 1) )
rText.UTF8_APPEND( UTF8_TH_11 ); rText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_11 ) );
else if( nOne > 0 ) else if( nOne > 0 )
lclAppendDigit( rText, nOne ); lclAppendDigit( rText, nOne );
} }
...@@ -2900,7 +2895,7 @@ void ScInterpreter::ScBahtText() ...@@ -2900,7 +2895,7 @@ void ScInterpreter::ScBahtText()
if( fBaht == 0.0 ) if( fBaht == 0.0 )
{ {
if( nSatang == 0 ) if( nSatang == 0 )
aText.UTF8_APPEND( UTF8_TH_0 ); aText.Append( RTL_CONSTASCII_STRINGPARAM(UTF8_TH_0) );
} }
else while( fBaht > 0.0 ) else while( fBaht > 0.0 )
{ {
...@@ -2911,26 +2906,29 @@ void ScInterpreter::ScBahtText() ...@@ -2911,26 +2906,29 @@ void ScInterpreter::ScBahtText()
lclAppendBlock( aBlock, nBlock ); lclAppendBlock( aBlock, nBlock );
// add leading "million", if there will come more blocks // add leading "million", if there will come more blocks
if( fBaht > 0.0 ) if( fBaht > 0.0 )
aBlock.UTF8_PREPEND( UTF8_TH_1E6 ); aBlock.Insert(
rtl::OString(RTL_CONSTASCII_STRINGPARAM(UTF8_TH_1E6)), 0);
aText.Insert( aBlock, 0 ); aText.Insert( aBlock, 0 );
} }
if( aText.Len() > 0 ) if( aText.Len() > 0 )
aText.UTF8_APPEND( UTF8_TH_BAHT ); aText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_BAHT ) );
// generate text for Satang value // generate text for Satang value
if( nSatang == 0 ) if( nSatang == 0 )
{ {
aText.UTF8_APPEND( UTF8_TH_DOT0 ); aText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_DOT0 ) );
} }
else else
{ {
lclAppendBlock( aText, nSatang ); lclAppendBlock( aText, nSatang );
aText.UTF8_APPEND( UTF8_TH_SATANG ); aText.Append( RTL_CONSTASCII_STRINGPARAM( UTF8_TH_SATANG ) );
} }
// add the minus sign // add the minus sign
if( bMinus ) if( bMinus )
aText.UTF8_PREPEND( UTF8_TH_MINUS ); aText.Insert(
rtl::OString(RTL_CONSTASCII_STRINGPARAM(UTF8_TH_MINUS)), 0);
PushString( String( aText, RTL_TEXTENCODING_UTF8 ) ); PushString( String( aText, RTL_TEXTENCODING_UTF8 ) );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment