char *dst = r;
while (len--)
{
- int l = wcrtomb (dst, *str++, mbs);
+ ssize_t l = wcrtomb (dst, *str++, mbs);
if (l < 0)
*dst++ = '?';
else
*dst++ = 0;
- return r;
+ return (char *)rxvt_realloc (r, dst - r);
}
wchar_t *
wchar_t *r = (wchar_t *)rxvt_malloc ((len + 1) * sizeof (wchar_t));
- if (mbstowcs (r, str, len + 1) < 0)
+ if ((ssize_t)mbstowcs (r, str, len + 1) < 0)
*r = 0;
return r;
*p++ = '?';
}
- *p = 0;
+ *p++ = 0;
- return r;
+ return (char *)rxvt_realloc (r, p - r);
}
wchar_t *