The manpage claims the return value should be 0 on a null byte,
just like on Linux, but in practice, it returns -1, so we need to
check for end-of-string manually.
ptr += ret;
len -= ret;
}
ptr += ret;
len -= ret;
}
+ } while (all_safe && *ptr != '\0');
if (all_safe) {
printf("%s\n", str.c_str());
if (all_safe) {
printf("%s\n", str.c_str());
mbtowc(nullptr, 0, 0);
ptr = str.data();
len = str.size();
mbtowc(nullptr, 0, 0);
ptr = str.data();
len = str.size();
int ret = mbtowc(nullptr, ptr, len);
if (ret == -1) {
// Malformed data.
int ret = mbtowc(nullptr, ptr, len);
if (ret == -1) {
// Malformed data.