mirror of
https://github.com/php/php-src.git
synced 2024-09-22 18:37:25 +00:00
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:
parent
ec609916dc
commit
a81061d36c
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user