summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPeng Huang <shawn.p.huang@gmail.com>2010-04-15 08:30:32 +0800
committerPeng Huang <shawn.p.huang@gmail.com>2010-04-15 08:30:32 +0800
commitd48cbf22c71b41ea14d7fb4e58dc24153ca1331a (patch)
treefa728bb365a882f19ff954bb6abdea6f090b342a /src
parent10eeeed063f31e9c83de4b3860e65774cd725964 (diff)
downloadibus-libpinyin-d48cbf22c71b41ea14d7fb4e58dc24153ca1331a.tar.gz
ibus-libpinyin-d48cbf22c71b41ea14d7fb4e58dc24153ca1331a.tar.xz
ibus-libpinyin-d48cbf22c71b41ea14d7fb4e58dc24153ca1331a.zip
Fix several bugs in SpecialTable
Diffstat (limited to 'src')
-rw-r--r--src/SpecialTable.cc50
-rw-r--r--src/phrases.txt1
2 files changed, 21 insertions, 30 deletions
diff --git a/src/SpecialTable.cc b/src/SpecialTable.cc
index 87c4105..2cd6be9 100644
--- a/src/SpecialTable.cc
+++ b/src/SpecialTable.cc
@@ -106,18 +106,18 @@ public:
const std::string weekday_cn (void) {
static const gchar *week_num[] = {
- "一", "二", "三", "四", "五", "六", "日",
+ "日", "一", "二", "三", "四", "五", "六"
};
return week_num[localtime (&m_time)->tm_wday];
}
const std::string hour_cn (guint i) {
static const gchar *hour_num[] = {
- "一", "二", "三", "四", "五",
- "六", "七", "八", "九", "十",
- "十一", "十二", "十三", "十四", "十五",
- "十六", "十七", "十八", "十九", "二十",
- "二十一", "二十二", "二十三", "零"
+ "零", "一", "二", "三", "四",
+ "五", "六", "七", "八", "九",
+ "十", "十一", "十二", "十三", "十四",
+ "十五", "十六", "十七", "十八", "十九",
+ "二十", "二十一", "二十二", "二十三",
};
return hour_num[i];
}
@@ -136,8 +136,8 @@ public:
"五", "六", "七", "八", "九",
"", "十","二十", "三十"
};
- guint day = localtime (&m_time)->tm_mday + 1;
- return std::string () + day_num[day / 10 + 10] + day_num[day % 10];
+ guint day = localtime (&m_time)->tm_mday;
+ return std::string (day_num[day / 10 + 10]) + day_num[day % 10];
}
const std::string minsec_cn (guint i) {
@@ -147,7 +147,7 @@ public:
"零", "十","二十", "三十", "四十"
"五十", "六十"
};
- return std::string () + num[i / 10 + 10] + num[i % 10];
+ return std::string (num[i / 10 + 10]) + num[i % 10];
}
const std::string variable (const std::string &name) {
@@ -155,14 +155,14 @@ public:
if (name == "year_yy") return dec ((localtime (&m_time)->tm_year + 1900) % 100, "%02d");
if (name == "month") return dec (localtime (&m_time)->tm_mon + 1);
if (name == "month_mm") return dec (localtime (&m_time)->tm_mon + 1, "%02d");
- if (name == "day") return dec (localtime (&m_time)->tm_mday + 1);
- if (name == "day_dd") return dec (localtime (&m_time)->tm_mday + 1, "%02d");
+ if (name == "day") return dec (localtime (&m_time)->tm_mday);
+ if (name == "day_dd") return dec (localtime (&m_time)->tm_mday, "%02d");
if (name == "weekday") return dec (localtime (&m_time)->tm_wday + 1);
- if (name == "fullhour") return dec (localtime (&m_time)->tm_hour + 1, "%02d");
- if (name == "falfhour") return dec ((localtime (&m_time)->tm_hour + 1) % 12, "%02d");
+ if (name == "fullhour") return dec (localtime (&m_time)->tm_hour, "%02d");
+ if (name == "falfhour") return dec (localtime (&m_time)->tm_hour % 12, "%02d");
if (name == "ampm") return localtime (&m_time)->tm_hour < 12 ? "AM" : "PM";
- if (name == "minute") return dec (localtime (&m_time)->tm_min + 1, "%02d");
- if (name == "second") return dec (localtime (&m_time)->tm_sec + 1, "%02d");
+ if (name == "minute") return dec (localtime (&m_time)->tm_min, "%02d");
+ if (name == "second") return dec (localtime (&m_time)->tm_sec, "%02d");
if (name == "year_cn") return year_cn ();
if (name == "year_yy_cn") return year_cn (TRUE);
if (name == "month_cn") return month_cn ();
@@ -171,8 +171,8 @@ public:
if (name == "fullhour_cn") return fullhour_cn ();
if (name == "halfhour_cn") return halfhour_cn ();
if (name == "ampm_cn") return localtime (&m_time)->tm_hour < 12 ? "上午" : "下午";
- if (name == "minute_cn") return minsec_cn (localtime (&m_time)->tm_min + 1);
- if (name == "second_cn") return minsec_cn (localtime (&m_time)->tm_sec + 1);
+ if (name == "minute_cn") return minsec_cn (localtime (&m_time)->tm_min);
+ if (name == "second_cn") return minsec_cn (localtime (&m_time)->tm_sec);
return "${" + name + "}";
}
@@ -185,22 +185,12 @@ private:
SpecialTable::SpecialTable (void)
{
-#if 0
- insert ("hehe", new StaticPhrase (":-)", 0));
- insert ("haha", new StaticPhrase ("^_^", 0));
- insert ("haha", new StaticPhrase ("o(∩∩)o...哈哈", 1));
- insert ("xixi", new StaticPhrase ("(*^__^*) 嘻嘻……", 0));
- insert ("bsn", new StaticPhrase ("╭∩╮(︶︿︶)╭∩╮鄙视你!", 0));
- insert ("rq", new DynamicPhrase ("%(year)年%(month)月%(day)日", 0));
- insert ("rq", new DynamicPhrase ("%(year)-%(month)-%(day)", 1));
- insert ("sj", new DynamicPhrase ("%(hour_24)时%(minute)分%(second)秒", 0));
- insert ("sj", new DynamicPhrase ("%(hour_24):%(minute):%(second)", 1));
-#endif
gchar * path = g_build_filename (g_get_user_config_dir (),
"ibus", "ibus-pinyin", "phrases.txt", NULL);
+
+ load ("phrases.txt") ||
load (path) ||
- load (PKGDATADIR G_DIR_SEPARATOR_S "phrases.txt") ||
- load ("phrases.txt");
+ load (PKGDATADIR G_DIR_SEPARATOR_S "phrases.txt");
g_free (path);
}
diff --git a/src/phrases.txt b/src/phrases.txt
index feea9c2..69b3053 100644
--- a/src/phrases.txt
+++ b/src/phrases.txt
@@ -69,4 +69,5 @@ rq=#${year}-${month}-${day}
sj=#${fullhour}时${minute}分${second}秒
sj=#${fullhour}:${minute}:${second}
xq=#星期${weekday_cn}
+lb=#礼拜${weekday_cn}
nl=#农历${lunardate}