- ret = utf16le_to_tstr(ucs, ucs_nbytes,
- &tstr, &tstr_nbytes);
- if (ret) {
- ret = tfprintf(fp, T("??????"));
+ if (ucs) {
+ size_t ucs_nbytes = utf16le_strlen(ucs);
+
+ ret = utf16le_to_tstr(ucs, ucs_nbytes,
+ &tstr, &tstr_nbytes);
+ if (ret) {
+ ret = tfprintf(fp, T("??????"));
+ } else {
+ ret = tfprintf(fp, T("%"TS), tstr);
+ FREE(tstr);
+ }
+ if (ret < 0)
+ return -1;
+ else
+ n += ret;