Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 8 Apr 1998 08:04:37 +0000 (08:04 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 8 Apr 1998 08:04:37 +0000 (08:04 +0000)
1998-04-08  Ulrich Drepper  <drepper@cygnus.com>

* stdio-common/vfscanf.c: Perform test in %l[ handling correctly.

ChangeLog
stdio-common/vfscanf.c

index 1a3e5b8..00e3057 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+1998-04-08  Ulrich Drepper  <drepper@cygnus.com>
+
+       * stdio-common/vfscanf.c: Perform test in %l[ handling correctly.
+
 1998-04-07  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
        * sysdeps/unix/sysv/linux/_G_config.h (_G_stat64): Define to
index 8ed56b3..48bcf6f 100644 (file)
@@ -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);