From: Rui Hirokawa Date: Sat, 5 Jul 2008 07:30:01 +0000 (+0000) Subject: removed wrong bytes. X-Git-Tag: php-5.3.0alpha1~503 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b0ce4732b0998faf71366f417018d3de304a4a67;p=php removed wrong bytes. --- diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp1254.c b/ext/mbstring/libmbfl/filters/mbfilter_cp1254.c index ced70a1933..708c4339b1 100644 --- a/ext/mbstring/libmbfl/filters/mbfilter_cp1254.c +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp1254.c @@ -18,13 +18,13 @@ * if not, write to the Free Software Foundation, Inc., 59 Temple Place, * Suite 330, Boston, MA 02111-1307 USA * - * The author of this part: Haluk AKIN + * The author of this part: aluk AKIN * */ /* - * the source code included in this files was separated from mbfilter.c + * The source code included in this files was separated from mbfilter_ru.c * by moriyoshi koizumi on 4 dec 2002. - * + * */ #ifdef HAVE_CONFIG_H @@ -55,21 +55,21 @@ const struct mbfl_identify_vtbl vtbl_identify_cp1254 = { mbfl_filt_ident_cp1254 }; -const struct mbfl_convert_vtbl vtbl_cp1254_wchar = { - mbfl_no_encoding_cp1254, +const struct mbfl_convert_vtbl vtbl_wchar_cp1254 = { mbfl_no_encoding_wchar, + mbfl_no_encoding_cp1254, mbfl_filt_conv_common_ctor, mbfl_filt_conv_common_dtor, - mbfl_filt_conv_cp1254_wchar, + mbfl_filt_conv_wchar_cp1254, mbfl_filt_conv_common_flush }; -const struct mbfl_convert_vtbl vtbl_wchar_cp1254 = { - mbfl_no_encoding_wchar, +const struct mbfl_convert_vtbl vtbl_cp1254_wchar = { mbfl_no_encoding_cp1254, + mbfl_no_encoding_wchar, mbfl_filt_conv_common_ctor, mbfl_filt_conv_common_dtor, - mbfl_filt_conv_wchar_cp1254, + mbfl_filt_conv_cp1254_wchar, mbfl_filt_conv_common_flush }; @@ -78,14 +78,14 @@ const struct mbfl_convert_vtbl vtbl_wchar_cp1254 = { /* * wchar => cp1254 */ -int mbfl_filt_conv_wchar_cp1254(int c, mbfl_convert_filter *filter) +int +mbfl_filt_conv_wchar_cp1254(int c, mbfl_convert_filter *filter) { - int s=-1, n; + int s, n; if (c < 0x80) { - s = c; - } else { - /* look it up from the cp1254 table */ + s = c; + } else { s = -1; n = cp1254_ucs_table_len-1; while (n >= 0) { @@ -95,8 +95,7 @@ int mbfl_filt_conv_wchar_cp1254(int c, mbfl_convert_filter *filter) } n--; } - if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_CP1254) - { + if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_CP1254) { s = c & MBFL_WCSPLANE_MASK; } } @@ -108,29 +107,31 @@ int mbfl_filt_conv_wchar_cp1254(int c, mbfl_convert_filter *filter) CK(mbfl_filt_conv_illegal_output(c, filter)); } } + return c; } /* * cp1254 => wchar */ -int mbfl_filt_conv_cp1254_wchar(int c, mbfl_convert_filter *filter) +int +mbfl_filt_conv_cp1254_wchar(int c, mbfl_convert_filter *filter) { int s; - if ( c >= 0 && c < cp1254_ucs_table_min) { - s = c; + if (c >= 0 && c < cp1254_ucs_table_min) { + s = c; } else if (c >= cp1254_ucs_table_min && c < 0x100) { - s = cp1254_ucs_table[c - cp1254_ucs_table_min]; - if (s <= 0) { - s = c; - s &= MBFL_WCSPLANE_MASK; - s |= MBFL_WCSPLANE_CP1254; - } + s = cp1254_ucs_table[c - cp1254_ucs_table_min]; + if (s <= 0) { + s = c; + s &= MBFL_WCSPLANE_MASK; + s |= MBFL_WCSPLANE_CP1254; + } } else { s = c; s &= MBFL_WCSGROUP_MASK; - s |= MBFL_WCSGROUP_THROUGH; + s |= MBFL_WCSGROUP_THROUGH; } CK((*filter->output_function)(s, filter->data)); @@ -138,12 +139,6 @@ int mbfl_filt_conv_cp1254_wchar(int c, mbfl_convert_filter *filter) return c; } -/* We only distinguish the MS extensions to ISO-8859-1. - * Actually, this is pretty much a NO-OP, since the identification - * system doesn't allow us to discriminate between a positive match, - * a possible match and a definite non-match. - * The problem here is that cp1254 looks like SJIS for certain chars. - * */ static int mbfl_filt_ident_cp1254(int c, mbfl_identify_filter *filter) { if (c >= 0x80 && c < 0xff) diff --git a/ext/mbstring/libmbfl/filters/unicode_table_cp1254.h b/ext/mbstring/libmbfl/filters/unicode_table_cp1254.h index 62f50d2dad..644053cf7a 100644 Binary files a/ext/mbstring/libmbfl/filters/unicode_table_cp1254.h and b/ext/mbstring/libmbfl/filters/unicode_table_cp1254.h differ