size_t os_wcs_to_mbs_ptr(const wchar_t *str, size_t len, char **pstr) { size_t out_len = os_wcs_to_mbs(str, len, NULL); *pstr = bmalloc((out_len+1) * sizeof(char)); return os_wcs_to_mbs(str, out_len, *pstr); }
size_t os_utf8_to_mbs(const char *str, size_t len, char **pstr) { wchar_t *wstr = NULL; char *dst = NULL; size_t wlen = os_utf8_to_wcs(str, len, &wstr); size_t out_len = os_wcs_to_mbs(wstr, wlen, &dst); bfree(wstr); *pstr = dst; return out_len; }