diff --git a/src/stdio/vfscanf.c b/src/stdio/vfscanf.c index 6bea6ad8f1d82fa0ec56887f025aaf04c1a70d48..bb9284809846473f09a2ca3aab0de7fd0e2bbab9 100644 --- a/src/stdio/vfscanf.c +++ b/src/stdio/vfscanf.c @@ -265,8 +265,10 @@ int vfscanf(FILE *restrict f, const char *restrict fmt, va_list ap) if (size == SIZE_l) *(wchar_t **)dest = wcs; else *(char **)dest = s; } - if (wcs) wcs[i] = 0; - if (s) s[i] = 0; + if (t != 'c') { + if (wcs) wcs[i] = 0; + if (s) s[i] = 0; + } break; case 'p': case 'X': diff --git a/src/stdio/vfwscanf.c b/src/stdio/vfwscanf.c index b1eb7939e2461d31be439a676b6d5514fd2c1ef3..760864ff97b3800508fdcf264b80b4cd6ba7ce3b 100644 --- a/src/stdio/vfwscanf.c +++ b/src/stdio/vfwscanf.c @@ -281,8 +281,10 @@ int vfwscanf(FILE *restrict f, const wchar_t *restrict fmt, va_list ap) if (size == SIZE_l) *(wchar_t **)dest = wcs; else *(char **)dest = s; } - if (wcs) wcs[i] = 0; - if (s) s[i] = 0; + if (t != 'c') { + if (wcs) wcs[i] = 0; + if (s) s[i] = 0; + } break; case 'd': case 'i': case 'o': case 'u': case 'x':