Use symbolic constants in Japanese kana conversion code (not magic numbers)

Also correct misspelling of 'hiragana' as 'hirangana' at the same time.
This commit is contained in:
Alex Dowad 2020-08-07 22:29:21 +02:00
parent ec609916dc
commit a81061d36c

View File

@ -93,7 +93,7 @@ mbfl_filt_tl_jisx0201_jisx0208(int c, mbfl_convert_filter *filt)
}
} else if ((mode & MBFL_FILT_TL_HAN2ZEN_HIRAGANA) &&
(mode & MBFL_FILT_TL_HAN2ZEN_GLUE)) {
/* hankaku kana to zenkaku hirangana and glue voiced sound mark */
/* hankaku kana to zenkaku hiragana and glue voiced sound mark */
if (c >= 0xff61 && c <= 0xff9f) {
if (filt->status) {
n = (filt->cache - 0xff60) & 0x3f;
@ -126,7 +126,7 @@ mbfl_filt_tl_jisx0201_jisx0208(int c, mbfl_convert_filter *filt)
s = 0x3000 + hankana2zenkana_table[c - 0xff60];
} else if ((mode & MBFL_FILT_TL_HAN2ZEN_HIRAGANA)
&& c >= 0xff61 && c <= 0xff9f) {
/* hankaku kana to zenkaku hirangana */
/* hankaku kana to zenkaku hiragana */
s = 0x3000 + hankana2zenhira_table[c - 0xff60];
}
}
@ -159,16 +159,19 @@ mbfl_filt_tl_jisx0201_jisx0208(int c, mbfl_convert_filter *filt)
}
}
if (mode & 0xf0) { /* zenkaku to hankaku */
if ((mode & 0x10) && c >= 0xff01 && c <= 0xff5d && c != 0xff02 && c != 0xff07 && c!= 0xff3c) { /* all except <"> <'> <\> <~> */
if (mode & (MBFL_FILT_TL_ZEN2HAN_ALL | MBFL_FILT_TL_ZEN2HAN_ALPHA | MBFL_FILT_TL_ZEN2HAN_NUMERIC | MBFL_FILT_TL_ZEN2HAN_SPACE)) {
/* Zenkaku to Hankaku */
if ((mode & MBFL_FILT_TL_ZEN2HAN_ALL) && c >= 0xff01 && c <= 0xff5d && c != 0xff02 && c != 0xff07 && c!= 0xff3c) {
/* all except <"> <'> <\> <~> */
s = c - 0xfee0;
} else if ((mode & 0x20) && ((c >= 0xff21 && c <= 0xff3a) || (c >= 0xff41 && c <= 0xff5a))) { /* alpha */
} else if ((mode & MBFL_FILT_TL_ZEN2HAN_ALPHA) && ((c >= 0xff21 && c <= 0xff3a) || (c >= 0xff41 && c <= 0xff5a))) {
s = c - 0xfee0;
} else if ((mode & 0x40) && (c >= 0xff10 && c <= 0xff19)) { /* num */
} else if ((mode & MBFL_FILT_TL_ZEN2HAN_NUMERIC) && (c >= 0xff10 && c <= 0xff19)) {
s = c - 0xfee0;
} else if ((mode & 0x80) && (c == 0x3000)) { /* spase */
} else if ((mode & MBFL_FILT_TL_ZEN2HAN_SPACE) && (c == 0x3000)) {
s = 0x20;
} else if ((mode & 0x10) && (c == 0x2212)) { /* MINUS SIGN */
} else if ((mode & MBFL_FILT_TL_ZEN2HAN_ALL) && (c == 0x2212)) {
/* MINUS SIGN */
s = 0x2d;
}
}
@ -188,7 +191,7 @@ mbfl_filt_tl_jisx0201_jisx0208(int c, mbfl_convert_filter *filt)
}
} else if ((mode & MBFL_FILT_TL_ZEN2HAN_HIRAGANA) &&
c >= 0x3041 && c <= 0x3093) {
/* Zenkaku hirangana to hankaku kana */
/* Zenkaku hiragana to hankaku kana */
n = c - 0x3041;
if (zenkana2hankana_table[n][1] != 0) {
(filt->output_function)(0xff00 + zenkana2hankana_table[n][0], filt->data);
@ -217,11 +220,11 @@ mbfl_filt_tl_jisx0201_jisx0208(int c, mbfl_convert_filter *filt)
| MBFL_FILT_TL_ZEN2HAN_KANA2HIRA)) {
if ((mode & MBFL_FILT_TL_ZEN2HAN_HIRA2KANA) &&
((c >= 0x3041 && c <= 0x3093) || c == 0x309d || c == 0x309e)) {
/* Zenkaku hirangana to Zenkaku katakana */
/* Zenkaku hiragana to Zenkaku katakana */
s = c + 0x60;
} else if ((mode & MBFL_FILT_TL_ZEN2HAN_KANA2HIRA) &&
((c >= 0x30a1 && c <= 0x30f3) || c == 0x30fd || c == 0x30fe)) {
/* Zenkaku katakana to Zenkaku hirangana */
/* Zenkaku katakana to Zenkaku hiragana */
s = c - 0x60;
}
}
@ -270,9 +273,9 @@ mbfl_filt_tl_jisx0201_jisx0208_flush(mbfl_convert_filter *filt)
ret = 0;
if (filt->status) {
n = (filt->cache - 0xff60) & 0x3f;
if (mode & 0x100) { /* hankaku kana to zenkaku katakana */
if (mode & MBFL_FILT_TL_HAN2ZEN_KATAKANA) { /* hankaku kana to zenkaku katakana */
ret = (*filt->output_function)(0x3000 + hankana2zenkana_table[n], filt->data);
} else if (mode & 0x200) { /* hankaku kana to zenkaku hirangana */
} else if (mode & MBFL_FILT_TL_HAN2ZEN_HIRAGANA) { /* hankaku kana to zenkaku hiragana */
ret = (*filt->output_function)(0x3000 + hankana2zenhira_table[n], filt->data);
}
filt->status = 0;