mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-22 21:09:42 +08:00
re PR libfortran/46800 (Handle CTRL-D correctly with STDIN)
2014-03-17 Jerry DeLisle <jvdelisle@gcc.gnu> PR libfortran/46800 * io/list_read.c (list_formatted_read_scalar): Do not use eat_separator. Explicitly set the comma and end-of-line flags. Check for END condition from finish_separator. From-SVN: r208629
This commit is contained in:
parent
d65e2594fb
commit
e34994fcff
@ -1,3 +1,10 @@
|
||||
2014-03-17 Jerry DeLisle <jvdelisle@gcc.gnu>
|
||||
|
||||
PR libfortran/58324
|
||||
* io/list_read.c (list_formatted_read_scalar): Do not use
|
||||
eat_separator. Explicitly set the comma and end-of-line flags.
|
||||
Check for END condition from finish_separator.
|
||||
|
||||
2014-03-15 Jerry DeLisle <jvdelisle@gcc.gnu>
|
||||
|
||||
PR libfortran/58324
|
||||
|
@ -1923,17 +1923,31 @@ list_formatted_read_scalar (st_parameter_dt *dtp, bt type, void *p,
|
||||
}
|
||||
if (is_separator (c))
|
||||
{
|
||||
/* Found a null value. */
|
||||
eat_separator (dtp);
|
||||
/* Found a null value. Do not use eat_separator here otherwise
|
||||
we will do an extra read from stdin. */
|
||||
dtp->u.p.repeat_count = 0;
|
||||
|
||||
/* eat_separator sets this flag if the separator was a comma. */
|
||||
if (dtp->u.p.comma_flag)
|
||||
goto cleanup;
|
||||
/* Set comma_flag. */
|
||||
if ((c == ';'
|
||||
&& dtp->u.p.current_unit->decimal_status == DECIMAL_COMMA)
|
||||
||
|
||||
(c == ','
|
||||
&& dtp->u.p.current_unit->decimal_status == DECIMAL_POINT))
|
||||
{
|
||||
dtp->u.p.comma_flag = 1;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* eat_separator sets this flag if the separator was a \n or \r. */
|
||||
if (dtp->u.p.at_eol)
|
||||
finish_separator (dtp);
|
||||
/* Set end-of-line flag. */
|
||||
if (c == '\n' || c == '\r')
|
||||
{
|
||||
dtp->u.p.at_eol = 1;
|
||||
if (finish_separator (dtp) == LIBERROR_END)
|
||||
{
|
||||
err = LIBERROR_END;
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
else
|
||||
goto cleanup;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user