((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'))
+
+// #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
{ 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
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
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