summaryrefslogtreecommitdiff
path: root/utfconverter.c
diff options
context:
space:
mode:
Diffstat (limited to 'utfconverter.c')
-rw-r--r--utfconverter.c19
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;