diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/mbstring/libmbfl/filters/mbfilter_sjis_2004.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ext/mbstring/libmbfl/filters/mbfilter_sjis_2004.c b/ext/mbstring/libmbfl/filters/mbfilter_sjis_2004.c index 1e549fdebb..061ba49861 100644 --- a/ext/mbstring/libmbfl/filters/mbfilter_sjis_2004.c +++ b/ext/mbstring/libmbfl/filters/mbfilter_sjis_2004.c @@ -482,8 +482,8 @@ int mbfl_filt_conv_jis2004_wchar_flush(mbfl_convert_filter *filter) return 0; } -int -mbfl_filt_conv_wchar_jis2004(int c, mbfl_convert_filter *filter) { +int mbfl_filt_conv_wchar_jis2004(int c, mbfl_convert_filter *filter) +{ int k; int c1, c2, s1, s2; @@ -548,6 +548,12 @@ retry: } } + if (s1 <= 0 && filter->to->no_encoding == mbfl_no_encoding_2022jp_2004 && (c == 0x5C || c == 0x7E)) { + /* ISO-2022-JP-2004 can represent ASCII characters directly, so there is no need + * to use the JIS X 0208 REVERSE SOLIDUS for ASCII backslash, or WAVE DASH for tilde */ + s1 = c; + } + /* check for major japanese chars: U+4E00 - U+9FFF */ if (s1 <= 0) { for (k=0; k < uni2jis_tbl_len ;k++) { |