size_t os_mbs_to_wcs_ptr(const char *str, size_t len, wchar_t **pstr) { size_t out_len = os_mbs_to_wcs(str, len, NULL); *pstr = bmalloc((out_len+1) * sizeof(wchar_t)); return os_mbs_to_wcs(str, out_len, *pstr); }
size_t os_mbs_to_utf8(const char *str, size_t len, char **pstr) { wchar_t *wstr = NULL; char *dst = NULL; size_t wlen = os_mbs_to_wcs(str, len, &wstr); size_t out_len = os_wcs_to_utf8(wstr, wlen, &dst); bfree(wstr); *pstr = dst; return out_len; }