File signed-char.patch of Package pyzy
Index: pyzy-1.0git20120805/src/DoublePinyinContext.cc
===================================================================
--- pyzy-1.0git20120805.orig/src/DoublePinyinContext.cc
+++ pyzy-1.0git20120805/src/DoublePinyinContext.cc
@@ -352,7 +352,7 @@ DoublePinyinContext::isPinyin (int i)
return NULL;
}
- char sheng = ID_TO_SHENG (i);
+ signed char sheng = ID_TO_SHENG (i);
if (sheng == PINYIN_ID_VOID) {
return NULL;
@@ -365,8 +365,8 @@ inline const Pinyin *
DoublePinyinContext::isPinyin (int i, int j)
{
const Pinyin *pinyin = NULL;
- char sheng = ID_TO_SHENG (i);
- const char *yun = ID_TO_YUNS (j);
+ signed char sheng = ID_TO_SHENG (i);
+ const signed char *yun = ID_TO_YUNS (j);
do {
if (sheng == PINYIN_ID_VOID || yun[0] == PINYIN_ID_VOID)
Index: pyzy-1.0git20120805/src/DoublePinyinTable.h
===================================================================
--- pyzy-1.0git20120805.orig/src/DoublePinyinTable.h
+++ pyzy-1.0git20120805/src/DoublePinyinTable.h
@@ -26,7 +26,7 @@
#define PINYIN_ID_AEO PINYIN_ID_ZERO
-static const char double_pinyin_mspy_sheng[] = {
+static const signed char double_pinyin_mspy_sheng[] = {
PINYIN_ID_AEO, // A
PINYIN_ID_B, // B
PINYIN_ID_C, // C
@@ -55,7 +55,7 @@ static const char double_pinyin_mspy_she
PINYIN_ID_Z, // Z
PINYIN_ID_VOID, // ;
};
-static const char double_pinyin_mspy_yun[][2] = {
+static const signed char double_pinyin_mspy_yun[][2] = {
{ PINYIN_ID_A, PINYIN_ID_VOID }, // A
{ PINYIN_ID_OU, PINYIN_ID_VOID }, // B
{ PINYIN_ID_IAO, PINYIN_ID_VOID }, // C
@@ -84,7 +84,7 @@ static const char double_pinyin_mspy_yun
{ PINYIN_ID_EI, PINYIN_ID_VOID }, // Z
{ PINYIN_ID_ING, PINYIN_ID_VOID }, // ;
};
-static const char double_pinyin_zrm_sheng[] = {
+static const signed char double_pinyin_zrm_sheng[] = {
PINYIN_ID_AEO, // A
PINYIN_ID_B, // B
PINYIN_ID_C, // C
@@ -113,7 +113,7 @@ static const char double_pinyin_zrm_shen
PINYIN_ID_Z, // Z
PINYIN_ID_VOID, // ;
};
-static const char double_pinyin_zrm_yun[][2] = {
+static const signed char double_pinyin_zrm_yun[][2] = {
{ PINYIN_ID_A, PINYIN_ID_VOID }, // A
{ PINYIN_ID_OU, PINYIN_ID_VOID }, // B
{ PINYIN_ID_IAO, PINYIN_ID_VOID }, // C
@@ -142,7 +142,7 @@ static const char double_pinyin_zrm_yun[
{ PINYIN_ID_EI, PINYIN_ID_VOID }, // Z
{ PINYIN_ID_VOID, PINYIN_ID_VOID }, // ;
};
-static const char double_pinyin_abc_sheng[] = {
+static const signed char double_pinyin_abc_sheng[] = {
PINYIN_ID_ZH, // A
PINYIN_ID_B, // B
PINYIN_ID_C, // C
@@ -171,7 +171,7 @@ static const char double_pinyin_abc_shen
PINYIN_ID_Z, // Z
PINYIN_ID_VOID, // ;
};
-static const char double_pinyin_abc_yun[][2] = {
+static const signed char double_pinyin_abc_yun[][2] = {
{ PINYIN_ID_A, PINYIN_ID_VOID }, // A
{ PINYIN_ID_OU, PINYIN_ID_VOID }, // B
{ PINYIN_ID_IN, PINYIN_ID_UAI }, // C
@@ -200,7 +200,7 @@ static const char double_pinyin_abc_yun[
{ PINYIN_ID_IAO, PINYIN_ID_VOID }, // Z
{ PINYIN_ID_VOID, PINYIN_ID_VOID }, // ;
};
-static const char double_pinyin_zgpy_sheng[] = {
+static const signed char double_pinyin_zgpy_sheng[] = {
PINYIN_ID_CH, // A
PINYIN_ID_B, // B
PINYIN_ID_C, // C
@@ -229,7 +229,7 @@ static const char double_pinyin_zgpy_she
PINYIN_ID_Z, // Z
PINYIN_ID_VOID, // ;
};
-static const char double_pinyin_zgpy_yun[][2] = {
+static const signed char double_pinyin_zgpy_yun[][2] = {
{ PINYIN_ID_A, PINYIN_ID_VOID }, // A
{ PINYIN_ID_IAO, PINYIN_ID_VOID }, // B
{ PINYIN_ID_VOID, PINYIN_ID_VOID }, // C
@@ -258,7 +258,7 @@ static const char double_pinyin_zgpy_yun
{ PINYIN_ID_OU, PINYIN_ID_VOID }, // Z
{ PINYIN_ID_ING, PINYIN_ID_VOID }, // ;
};
-static const char double_pinyin_pyjj_sheng[] = {
+static const signed char double_pinyin_pyjj_sheng[] = {
PINYIN_ID_ZERO, // A
PINYIN_ID_B, // B
PINYIN_ID_C, // C
@@ -287,7 +287,7 @@ static const char double_pinyin_pyjj_she
PINYIN_ID_Z, // Z
PINYIN_ID_VOID, // ;
};
-static const char double_pinyin_pyjj_yun[][2] = {
+static const signed char double_pinyin_pyjj_yun[][2] = {
{ PINYIN_ID_A, PINYIN_ID_VOID }, // A
{ PINYIN_ID_IA, PINYIN_ID_UA }, // B
{ PINYIN_ID_UAN, PINYIN_ID_VOID }, // C
@@ -316,7 +316,7 @@ static const char double_pinyin_pyjj_yun
{ PINYIN_ID_UN, PINYIN_ID_VOID }, // Z
{ PINYIN_ID_VOID, PINYIN_ID_VOID }, // ;
};
-static const char double_pinyin_xhe_sheng[] = {
+static const signed char double_pinyin_xhe_sheng[] = {
PINYIN_ID_AEO, // A
PINYIN_ID_B, // B
PINYIN_ID_C, // C
@@ -345,7 +345,7 @@ static const char double_pinyin_xhe_shen
PINYIN_ID_Z, // Z
PINYIN_ID_VOID, // ;
};
-static const char double_pinyin_xhe_yun[][2] = {
+static const signed char double_pinyin_xhe_yun[][2] = {
{ PINYIN_ID_A, PINYIN_ID_VOID }, // A
{ PINYIN_ID_IN, PINYIN_ID_VOID }, // B
{ PINYIN_ID_AO, PINYIN_ID_VOID }, // C
@@ -376,8 +376,8 @@ static const char double_pinyin_xhe_yun[
};
static const struct {
- const char (&sheng)[27];
- const char (&yun)[27][2];
+ const signed char (&sheng)[27];
+ const signed char (&yun)[27][2];
} double_pinyin_map [] = {
{ double_pinyin_mspy_sheng, double_pinyin_mspy_yun },
{ double_pinyin_zrm_sheng, double_pinyin_zrm_yun },