diff options
Diffstat (limited to 'utfconverter.c')
-rw-r--r-- | utfconverter.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/utfconverter.c b/utfconverter.c index 039c39f..9818c27 100644 --- a/utfconverter.c +++ b/utfconverter.c @@ -73,13 +73,13 @@ utf16_encode(struct converter *conv, size_t outleft) { size_t i; - short **soutbuf = (short **)outbuf; + uc_uint16_t **soutbuf = (uc_uint16_t **)outbuf; for (i = 0; i < inleft; i++) { int seqlen = ucs4toutf16(**inbuf, NULL); if (seqlen < 0) return UNICONV_EILSEQ; - if (seqlen * sizeof(short) > outleft) + if (seqlen * sizeof(uc_uint16_t) > outleft) return UNICONV_E2BIG; ucs4toutf16(**inbuf, *soutbuf); @@ -93,16 +93,17 @@ utf16_encode(struct converter *conv, static int utf16_decode(struct converter *conv, - const char **inbuf, - size_t inleft, - uc_char_t **outbuf, - size_t outleft) + const char **inbuf, + size_t inleft, + uc_char_t **outbuf, + size_t outleft) { - const short **sinbuf = (const short**)inbuf; + const uc_uint16_t **sinbuf = (const uc_uint16_t**)inbuf; while (inleft) { uc_char_t unichar; - int seqlen = ucs4fromutf16(*sinbuf, &unichar, inleft / sizeof(short)); + int seqlen = ucs4fromutf16(*sinbuf, &unichar, + inleft / sizeof(uc_uint16_t)); if (seqlen == -2) return UNICONV_E2BIG; else if (seqlen < 0) @@ -115,7 +116,7 @@ utf16_decode(struct converter *conv, outleft -= 1; (*sinbuf) += seqlen; - inleft -= seqlen * sizeof(short); + inleft -= seqlen * sizeof(uc_uint16_t); } return UNICONV_SUCCESS; |