switch (c)
{
case ',':
- if (dtp->u.p.decimal_status == DECIMAL_COMMA)
+ if ((dtp->common.flags & IOPARM_DT_HAS_F2003)
+ && dtp->u.p.decimal_status == DECIMAL_COMMA)
{
unget_char (dtp, c);
break;
c = next_char (dtp);
}
- if (c == ',' && dtp->u.p.decimal_status == DECIMAL_COMMA)
+ if ((dtp->common.flags & IOPARM_DT_HAS_F2003)
+ && c == ',' && dtp->u.p.decimal_status == DECIMAL_COMMA)
c = '.';
if (!isdigit (c) && c != '.')
for (;;)
{
c = next_char (dtp);
- if (c == ',' && dtp->u.p.decimal_status == DECIMAL_COMMA)
+ if ((dtp->common.flags & IOPARM_DT_HAS_F2003)
+ && c == ',' && dtp->u.p.decimal_status == DECIMAL_COMMA)
c = '.';
switch (c)
{
else
unget_char (dtp, c);
- if (next_char (dtp)
- != (dtp->u.p.decimal_status == DECIMAL_POINT ? ',' : ';'))
- goto bad_complex;
+ if (dtp->common.flags & IOPARM_DT_HAS_F2003)
+ {
+ if (next_char (dtp)
+ != (dtp->u.p.decimal_status == DECIMAL_POINT ? ',' : ';'))
+ goto bad_complex;
+ }
+ else
+ {
+ if (next_char (dtp) != ',')
+ goto bad_complex;
+ }
eol_2:
eat_spaces (dtp);
seen_dp = 0;
c = next_char (dtp);
- if (c == ',' && dtp->u.p.decimal_status == DECIMAL_COMMA)
+ if ((dtp->common.flags & IOPARM_DT_HAS_F2003)
+ && c == ',' && dtp->u.p.decimal_status == DECIMAL_COMMA)
c = '.';
switch (c)
{
for (;;)
{
c = next_char (dtp);
- if (c == ',' && dtp->u.p.decimal_status == DECIMAL_COMMA)
+ if ((dtp->common.flags & IOPARM_DT_HAS_F2003)
+ && c == ',' && dtp->u.p.decimal_status == DECIMAL_COMMA)
c = '.';
switch (c)
{
c = next_char (dtp);
}
- if (c == ',' && dtp->u.p.decimal_status == DECIMAL_COMMA)
+ if ((dtp->common.flags & IOPARM_DT_HAS_F2003)
+ && c == ',' && dtp->u.p.decimal_status == DECIMAL_COMMA)
c = '.';
if (!isdigit (c) && c != '.')
for (;;)
{
c = next_char (dtp);
- if (c == ',' && dtp->u.p.decimal_status == DECIMAL_COMMA)
+ if ((dtp->common.flags & IOPARM_DT_HAS_F2003)
+ && c == ',' && dtp->u.p.decimal_status == DECIMAL_COMMA)
c = '.';
switch (c)
{