summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2017-01-11 10:08:21 +0800
committerPeng Wu <alexepico@gmail.com>2017-01-11 10:08:21 +0800
commit3d713493579c1c916684a3e0af6deff75cf22c7d (patch)
tree3cded9762abfb85fcd4c299b3dea345791dbb290
parent21078d55d0601632ac57ec1a646a93241ba4fefa (diff)
downloadibus-libpinyin-3d713493579c1c916684a3e0af6deff75cf22c7d.tar.gz
ibus-libpinyin-3d713493579c1c916684a3e0af6deff75cf22c7d.tar.xz
ibus-libpinyin-3d713493579c1c916684a3e0af6deff75cf22c7d.zip
re-factor translate_to_longform function
-rw-r--r--src/PYExtEditor.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/PYExtEditor.cc b/src/PYExtEditor.cc
index 30723e6..a7f08fb 100644
--- a/src/PYExtEditor.cc
+++ b/src/PYExtEditor.cc
@@ -83,7 +83,7 @@ simplest_cn_number(gint64 num)
}
static inline const std::string
-translate_to_longform(gint64 num, const char * number[10], unit_t units[])
+translate_to_longform(gint64 num, const char * number[10], unit_t units[], int units_len)
{
std::string result = "";
int cur_pos = -1;
@@ -97,7 +97,7 @@ translate_to_longform(gint64 num, const char * number[10], unit_t units[])
int pos = cur_pos;
size_t i = 6;
while ( pos > 0 ) {
- for ( i = 0; i < 7; ++i) {
+ for ( i = 0; i < units_len; ++i) {
pos = pos % units[i].digits;
if ( pos == 0 )
break;
@@ -133,7 +133,7 @@ translate_to_longform(gint64 num, const char * number[10], unit_t units[])
static const std::string
simplified_number(gint64 num)
{
- return translate_to_longform(num, numbers[1], units_simplified);
+ return translate_to_longform(num, numbers[1], units_simplified, G_N_ELEMENTS(units_simplified));
}
static const std::string
@@ -141,7 +141,7 @@ traditional_number(gint64 num)
{
if ( 0 == num )
return numbers[0][0];
- return translate_to_longform(num, numbers[0], units_traditional);
+ return translate_to_longform(num, numbers[0], units_traditional, G_N_ELEMENTS(units_traditional));
}