* stdio-common/vfscanf.c: Handle input -- with format %f correctly
	(it's no input error).
	* stdio-common/tstscanf.c: Add test case for format %f with input --.
	* stdio-common/scanf12.c: Correct expected result for first scanf.
This commit is contained in:
Ulrich Drepper 2000-07-22 07:26:13 +00:00
parent 40c014b3dc
commit fcc10ffab6
4 changed files with 24 additions and 6 deletions

View File

@ -1,5 +1,10 @@
2000-07-22 Ulrich Drepper <drepper@redhat.com> 2000-07-22 Ulrich Drepper <drepper@redhat.com>
* stdio-common/vfscanf.c: Handle input -- with format %f correctly
(it's no input error).
* stdio-common/tstscanf.c: Add test case for format %f with input --.
* stdio-common/scanf12.c: Correct expected result for first scanf.
* stdio-common/vfprintf.c (process_string_arg): Correct handling * stdio-common/vfprintf.c (process_string_arg): Correct handling
of multibyte character strings in %s format with precision. of multibyte character strings in %s format with precision.

View File

@ -7,7 +7,7 @@ main (void)
double d; double d;
int c; int c;
if (scanf ("%lg", &d) != EOF) if (scanf ("%lg", &d) != 0)
{ {
printf ("scanf didn't failed\n"); printf ("scanf didn't failed\n");
exit (1); exit (1);

View File

@ -277,7 +277,7 @@ main (int argc, char **argv)
/* From PR libc/1313 reported by Ben Caradoc-Davies <bmcd@physics.otago.ac.nz>. */ /* From PR libc/1313 reported by Ben Caradoc-Davies <bmcd@physics.otago.ac.nz>. */
float value; float value;
int res; int res;
res = sscanf ("0123", "%2f", &value); res = sscanf ("0123", "%2f", &value);
if (res != 1 || value != 1.0) if (res != 1 || value != 1.0)
{ {
@ -285,6 +285,19 @@ main (int argc, char **argv)
result = 1; result = 1;
} }
} }
fputs ("Test 10:\n", stdout);
{
float value;
int res;
res = sscanf ("--", "%f", &value);
if (res != 0)
{
fputs ("test failed!\n", stdout);
result = 1;
}
}
exit (result); exit (result);
} }

View File

@ -1270,7 +1270,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
if (n == 10) if (n == 10)
{ {
/*Have not yet found the digit. */ /* Have not yet found the digit. */
while (++from_level <= to_level) while (++from_level <= to_level)
{ {
/* Search all ten digits of this level. */ /* Search all ten digits of this level. */
@ -1491,7 +1491,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
{ {
/* This is no valid number. */ /* This is no valid number. */
ungetc (c, s); ungetc (c, s);
input_error (); conv_error ();
} }
#else #else
/* Match against the decimal point. At this point /* Match against the decimal point. At this point
@ -1524,7 +1524,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
c = *--cmpp; c = *--cmpp;
} }
input_error (); conv_error ();
} }
if (width > 0) if (width > 0)
/* +1 because we substract below. */ /* +1 because we substract below. */