diff options
Diffstat (limited to 'enc/shift_jis.c')
-rw-r--r-- | enc/shift_jis.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/enc/shift_jis.c b/enc/shift_jis.c index c081f3b898..b4d8592a27 100644 --- a/enc/shift_jis.c +++ b/enc/shift_jis.c @@ -145,9 +145,22 @@ code_to_mbclen(OnigCodePoint code, OnigEncoding enc ARG_UNUSED) } static OnigCodePoint -mbc_to_code(const UChar* p, const UChar* end, int *precise_ret, OnigEncoding enc) +mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc) { - return onigenc_mbn_mbc_to_code(enc, p, end, precise_ret); + int c, i, len; + OnigCodePoint n; + + len = enclen(enc, p, end); + c = *p++; + n = c; + if (len == 1) return n; + + for (i = 1; i < len; i++) { + if (p >= end) break; + c = *p++; + n <<= 8; n += c; + } + return n; } static int |