diff --git a/RichString.c b/RichString.c index 390beb073..a81d45aad 100644 --- a/RichString.c +++ b/RichString.c @@ -12,6 +12,7 @@ in the source distribution for its full text. #include #include #include // IWYU pragma: keep +#include #include #include @@ -70,7 +71,7 @@ static size_t mbstowcs_nonfatal(wchar_t* restrict dest, const char* restrict src bool broken = false; while (n > 0) { - size_t ret = mbrtowc(dest, src, n, &ps); + size_t ret = mbrtowc(dest, src, SIZE_MAX, &ps); if (ret == (size_t)-1 || ret == (size_t)-2) { if (!broken) { broken = true; @@ -91,7 +92,7 @@ static size_t mbstowcs_nonfatal(wchar_t* restrict dest, const char* restrict src dest++; written++; src += ret; - n -= ret; + n--; } return written;