diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-04-08 08:04:37 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-04-08 08:04:37 +0000 |
commit | cd2bd5915d633f9d526d8d17636054c93cd1580e (patch) | |
tree | 919918ee79d0fb0d76dfebb538c6b2a0fda98985 /stdio-common/vfscanf.c | |
parent | 279eb600d98131197c732147621e96c2d019bc52 (diff) | |
download | glibc-cd2bd5915d633f9d526d8d17636054c93cd1580e.tar glibc-cd2bd5915d633f9d526d8d17636054c93cd1580e.tar.gz glibc-cd2bd5915d633f9d526d8d17636054c93cd1580e.tar.bz2 glibc-cd2bd5915d633f9d526d8d17636054c93cd1580e.zip |
Update.
1998-04-08 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfscanf.c: Perform test in %l[ handling correctly.
Diffstat (limited to 'stdio-common/vfscanf.c')
-rw-r--r-- | stdio-common/vfscanf.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c index 8ed56b3c08..48bcf6f5fd 100644 --- a/stdio-common/vfscanf.c +++ b/stdio-common/vfscanf.c @@ -1095,16 +1095,9 @@ __vfscanf (FILE *s, const char *format, va_list argptr) { size_t cnt = 0; NEXT_WIDE_CHAR (first); - if (val > 255 || wp[val] == not_in) + if (val <= 255 && wp[val] == not_in) { - /* XXX We have a problem here. We read a wide - character and this possibly took several - bytes. But we can only push back one single - character. To be sure we don't create wrong - input we push it back only in case it is - representable within one byte. */ - if (val < 0x80) - ungetc (val, s); + ungetc (val, s); break; } STRING_ADD_CHAR (wstr, val, wchar_t); |