diff options
Diffstat (limited to 'ext/mbstring/libmbfl/filters/mbfilter_big5.c')
-rw-r--r-- | ext/mbstring/libmbfl/filters/mbfilter_big5.c | 45 |
1 files changed, 3 insertions, 42 deletions
diff --git a/ext/mbstring/libmbfl/filters/mbfilter_big5.c b/ext/mbstring/libmbfl/filters/mbfilter_big5.c index 1e59924092..0a0d6646ed 100644 --- a/ext/mbstring/libmbfl/filters/mbfilter_big5.c +++ b/ext/mbstring/libmbfl/filters/mbfilter_big5.c @@ -32,8 +32,6 @@ #include "unicode_table_big5.h" -static int mbfl_filt_ident_big5(int c, mbfl_identify_filter *filter); - static const unsigned char mblen_table_big5[] = { /* 0x81-0xFE */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -59,9 +57,9 @@ const mbfl_encoding mbfl_encoding_big5 = { mbfl_no_encoding_big5, "BIG-5", "BIG5", - (const char *(*)[])&mbfl_encoding_big5_aliases, + mbfl_encoding_big5_aliases, mblen_table_big5, - MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE, + MBFL_ENCTYPE_GL_UNSAFE, &vtbl_big5_wchar, &vtbl_wchar_big5 }; @@ -72,23 +70,11 @@ const mbfl_encoding mbfl_encoding_cp950 = { "BIG5", NULL, mblen_table_big5, - MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE, + MBFL_ENCTYPE_GL_UNSAFE, &vtbl_cp950_wchar, &vtbl_wchar_cp950 }; -const struct mbfl_identify_vtbl vtbl_identify_big5 = { - mbfl_no_encoding_big5, - mbfl_filt_ident_common_ctor, - mbfl_filt_ident_big5 -}; - -const struct mbfl_identify_vtbl vtbl_identify_cp950 = { - mbfl_no_encoding_cp950, - mbfl_filt_ident_common_ctor, - mbfl_filt_ident_big5 -}; - const struct mbfl_convert_vtbl vtbl_big5_wchar = { mbfl_no_encoding_big5, mbfl_no_encoding_wchar, @@ -322,28 +308,3 @@ mbfl_filt_conv_wchar_big5(int c, mbfl_convert_filter *filter) return c; } - -static int mbfl_filt_ident_big5(int c, mbfl_identify_filter *filter) -{ - int c1; - if (filter->encoding->no_encoding == mbfl_no_encoding_cp950) { - c1 = 0x80; - } else { - c1 = 0xa0; - } - - if (filter->status) { /* kanji second char */ - if (c < 0x40 || (c > 0x7e && c < 0xa1) ||c > 0xfe) { /* bad */ - filter->flag = 1; - } - filter->status = 0; - } else if (c >= 0 && c < 0x80) { /* latin ok */ - ; - } else if (c > c1 && c < 0xff) { /* DBCS lead byte */ - filter->status = 1; - } else { /* bad */ - filter->flag = 1; - } - - return c; -} |