Trace 'a', 'e', 'o' as PINYIN_ID_ZERO in double pinyin
authorPeng Huang <shawn.p.huang@gmail.com>
Tue, 23 Mar 2010 11:15:39 +0000 (19:15 +0800)
committerPeng Huang <shawn.p.huang@gmail.com>
Wed, 24 Mar 2010 02:19:22 +0000 (10:19 +0800)
src/DoublePinyinEditor.cc
src/DoublePinyinTable.h

index c12531a..d441ef0 100644 (file)
@@ -14,9 +14,17 @@ namespace PY {
     ((c >= IBUS_a && c <= IBUS_z) ? c - IBUS_a : (c == IBUS_semicolon ? 26 : -1))
 
 #define ID_TO_SHENG(id) \
-    double_pinyin_map[Config::doublePinyinSchema ()].sheng[id]
+    (double_pinyin_map[Config::doublePinyinSchema ()].sheng[id])
+
+#if 0
+#define ID_TO_SHENG(id) \
+    (double_pinyin_map[Config::doublePinyinSchema ()].sheng[id] != PINYIN_ID_VOID ? \
+        double_pinyin_map[Config::doublePinyinSchema ()].sheng[id] : \
+        ((id == ID ('a') || id == ID ('e') || id == ID ('o')) ? PINYIN_ID_ZERO : PINYIN_ID_VOID))
+#endif
+
 #define ID_TO_YUNS(id) \
-    double_pinyin_map[Config::doublePinyinSchema ()].yun[id]
+    (double_pinyin_map[Config::doublePinyinSchema ()].yun[id])
 
 #define IS_ALPHA(c) \
         ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
index f75f09d..d3b894a 100644 (file)
@@ -1,9 +1,13 @@
+
+// #define PINYIN_ID_AEO PINYIN_ID_VOID
+#define PINYIN_ID_AEO PINYIN_ID_ZERO
+
 static const gint double_pinyin_mspy_sheng[] = {
-    PINYIN_ID_VOID, // A
+    PINYIN_ID_AEO,  // A
     PINYIN_ID_B,    // B
     PINYIN_ID_C,    // C
     PINYIN_ID_D,    // D
-    PINYIN_ID_VOID, // E
+    PINYIN_ID_AEO,  // E
     PINYIN_ID_F,    // F
     PINYIN_ID_G,    // G
     PINYIN_ID_H,    // H
@@ -57,11 +61,11 @@ static const gint double_pinyin_mspy_yun[][2] = {
     { PINYIN_ID_ING,  PINYIN_ID_VOID }, // ;
 };
 static const gint double_pinyin_zrm_sheng[] = {
-    PINYIN_ID_VOID, // A
+    PINYIN_ID_AEO,  // A
     PINYIN_ID_B,    // B
     PINYIN_ID_C,    // C
     PINYIN_ID_D,    // D
-    PINYIN_ID_VOID, // E
+    PINYIN_ID_AEO,  // E
     PINYIN_ID_F,    // F
     PINYIN_ID_G,    // G
     PINYIN_ID_H,    // H
@@ -177,7 +181,7 @@ static const gint double_pinyin_zgpy_sheng[] = {
     PINYIN_ID_B,    // B
     PINYIN_ID_C,    // C
     PINYIN_ID_D,    // D
-    PINYIN_ID_VOID, // E
+    PINYIN_ID_AEO,  // E
     PINYIN_ID_F,    // F
     PINYIN_ID_G,    // G
     PINYIN_ID_H,    // H
@@ -235,7 +239,7 @@ static const gint double_pinyin_pyjj_sheng[] = {
     PINYIN_ID_B,    // B
     PINYIN_ID_C,    // C
     PINYIN_ID_D,    // D
-    PINYIN_ID_VOID, // E
+    PINYIN_ID_AEO,  // E
     PINYIN_ID_F,    // F
     PINYIN_ID_G,    // G
     PINYIN_ID_H,    // H