`(size_t) -1' (at which point it would also set errno to EILSEQ),
then restore errno to its previous value.
Reported by Phillip Jones via Tim Waugh as
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=76334.
do
{
wchar_t w;
+ /* Be careful not to let mbrtowc change errno. */
+ int saved_errno = errno;
size_t bytes = mbrtowc (&w, &arg[i + m],
argsize - (i + m), &mbstate);
if (bytes == 0)
else if (bytes == (size_t) -1)
{
printable = 0;
+ /* Restore previous errno value. */
+ errno = saved_errno;
break;
}
else if (bytes == (size_t) -2)