if (w == -1) /* '(A)' edit descriptor */
w = length;
+ dtp->u.p.sf_read_comma = 0;
source = read_block (dtp, &w);
+ dtp->u.p.sf_read_comma = 1;
if (source == NULL)
return;
if (w > length)
void
read_x (st_parameter_dt *dtp, int n)
{
- if ((dtp->u.p.current_unit->flags.pad == PAD_NO || is_internal_unit (dtp))
- && dtp->u.p.current_unit->bytes_left < n)
- n = dtp->u.p.current_unit->bytes_left;
-
- if (n > 0)
- read_block (dtp, &n);
+ if (!is_stream_io (dtp))
+ {
+ if ((dtp->u.p.current_unit->flags.pad == PAD_NO || is_internal_unit (dtp))
+ && dtp->u.p.current_unit->bytes_left < n)
+ n = dtp->u.p.current_unit->bytes_left;
+
+ dtp->u.p.sf_read_comma = 0;
+ if (n > 0)
+ read_sf (dtp, &n, 1);
+ dtp->u.p.sf_read_comma = 1;
+ }
+ else
+ dtp->rec += (GFC_IO_INT) n;
}