aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/io/inquire.c
diff options
context:
space:
mode:
Diffstat (limited to 'libgfortran/io/inquire.c')
-rw-r--r--libgfortran/io/inquire.c262
1 files changed, 134 insertions, 128 deletions
diff --git a/libgfortran/io/inquire.c b/libgfortran/io/inquire.c
index 9eb63d7..3b5f3f7 100644
--- a/libgfortran/io/inquire.c
+++ b/libgfortran/io/inquire.c
@@ -252,125 +252,128 @@ inquire_via_unit (st_parameter_inquire *iqp, gfc_unit * u)
cf_strcpy (iqp->pad, iqp->pad_len, p);
}
- if ((cf2 & IOPARM_INQUIRE_HAS_PENDING) != 0)
- *iqp->pending = 0;
-
- if ((cf2 & IOPARM_INQUIRE_HAS_ID) != 0)
- *iqp->id = 0;
-
- if ((cf2 & IOPARM_INQUIRE_HAS_ENCODING) != 0)
+ if (cf & IOPARM_INQUIRE_HAS_FLAGS2)
{
- if (u == NULL || u->flags.form != FORM_FORMATTED)
- p = undefined;
- else
- switch (u->flags.encoding)
- {
- case ENCODING_DEFAULT:
- p = "UNKNOWN";
- break;
- case ENCODING_UTF8:
- p = "UTF-8";
- break;
- default:
- internal_error (&iqp->common, "inquire_via_unit(): Bad encoding");
- }
-
- cf_strcpy (iqp->encoding, iqp->encoding_len, p);
- }
-
- if ((cf2 & IOPARM_INQUIRE_HAS_DECIMAL) != 0)
- {
- if (u == NULL || u->flags.form != FORM_FORMATTED)
- p = undefined;
- else
- switch (u->flags.decimal)
- {
- case DECIMAL_POINT:
- p = "POINT";
- break;
- case DECIMAL_COMMA:
- p = "COMMA";
- break;
- default:
- internal_error (&iqp->common, "inquire_via_unit(): Bad comma");
- }
-
- cf_strcpy (iqp->decimal, iqp->decimal_len, p);
- }
-
- if ((cf2 & IOPARM_INQUIRE_HAS_ASYNCHRONOUS) != 0)
- {
- if (u == NULL)
- p = undefined;
- else
- switch (u->flags.async)
- {
- case ASYNC_YES:
- p = "YES";
- break;
- case ASYNC_NO:
- p = "NO";
- break;
- default:
- internal_error (&iqp->common, "inquire_via_unit(): Bad async");
- }
+ if ((cf2 & IOPARM_INQUIRE_HAS_PENDING) != 0)
+ *iqp->pending = 0;
+
+ if ((cf2 & IOPARM_INQUIRE_HAS_ID) != 0)
+ *iqp->id = 0;
- cf_strcpy (iqp->asynchronous, iqp->asynchronous_len, p);
- }
+ if ((cf2 & IOPARM_INQUIRE_HAS_ENCODING) != 0)
+ {
+ if (u == NULL || u->flags.form != FORM_FORMATTED)
+ p = undefined;
+ else
+ switch (u->flags.encoding)
+ {
+ case ENCODING_DEFAULT:
+ p = "UNKNOWN";
+ break;
+ case ENCODING_UTF8:
+ p = "UTF-8";
+ break;
+ default:
+ internal_error (&iqp->common, "inquire_via_unit(): Bad encoding");
+ }
+
+ cf_strcpy (iqp->encoding, iqp->encoding_len, p);
+ }
- if ((cf2 & IOPARM_INQUIRE_HAS_SIGN) != 0)
- {
- if (u == NULL)
- p = undefined;
- else
- switch (u->flags.sign)
- {
- case SIGN_PROCDEFINED:
- p = "PROCESSOR_DEFINED";
- break;
- case SIGN_SUPPRESS:
- p = "SUPPRESS";
- break;
- case SIGN_PLUS:
- p = "PLUS";
- break;
- default:
- internal_error (&iqp->common, "inquire_via_unit(): Bad sign");
- }
+ if ((cf2 & IOPARM_INQUIRE_HAS_DECIMAL) != 0)
+ {
+ if (u == NULL || u->flags.form != FORM_FORMATTED)
+ p = undefined;
+ else
+ switch (u->flags.decimal)
+ {
+ case DECIMAL_POINT:
+ p = "POINT";
+ break;
+ case DECIMAL_COMMA:
+ p = "COMMA";
+ break;
+ default:
+ internal_error (&iqp->common, "inquire_via_unit(): Bad comma");
+ }
+
+ cf_strcpy (iqp->decimal, iqp->decimal_len, p);
+ }
- cf_strcpy (iqp->sign, iqp->sign_len, p);
- }
+ if ((cf2 & IOPARM_INQUIRE_HAS_ASYNCHRONOUS) != 0)
+ {
+ if (u == NULL)
+ p = undefined;
+ else
+ switch (u->flags.async)
+ {
+ case ASYNC_YES:
+ p = "YES";
+ break;
+ case ASYNC_NO:
+ p = "NO";
+ break;
+ default:
+ internal_error (&iqp->common, "inquire_via_unit(): Bad async");
+ }
+
+ cf_strcpy (iqp->asynchronous, iqp->asynchronous_len, p);
+ }
- if ((cf2 & IOPARM_INQUIRE_HAS_ROUND) != 0)
- {
- if (u == NULL)
- p = undefined;
- else
- switch (u->flags.round)
- {
- case ROUND_UP:
- p = "UP";
- break;
- case ROUND_DOWN:
- p = "DOWN";
- break;
- case ROUND_ZERO:
- p = "ZERO";
- break;
- case ROUND_NEAREST:
- p = "NEAREST";
- break;
- case ROUND_COMPATIBLE:
- p = "COMPATIBLE";
- break;
- case ROUND_PROCDEFINED:
- p = "PROCESSOR_DEFINED";
- break;
- default:
- internal_error (&iqp->common, "inquire_via_unit(): Bad round");
- }
+ if ((cf2 & IOPARM_INQUIRE_HAS_SIGN) != 0)
+ {
+ if (u == NULL)
+ p = undefined;
+ else
+ switch (u->flags.sign)
+ {
+ case SIGN_PROCDEFINED:
+ p = "PROCESSOR_DEFINED";
+ break;
+ case SIGN_SUPPRESS:
+ p = "SUPPRESS";
+ break;
+ case SIGN_PLUS:
+ p = "PLUS";
+ break;
+ default:
+ internal_error (&iqp->common, "inquire_via_unit(): Bad sign");
+ }
+
+ cf_strcpy (iqp->sign, iqp->sign_len, p);
+ }
- cf_strcpy (iqp->round, iqp->round_len, p);
+ if ((cf2 & IOPARM_INQUIRE_HAS_ROUND) != 0)
+ {
+ if (u == NULL)
+ p = undefined;
+ else
+ switch (u->flags.round)
+ {
+ case ROUND_UP:
+ p = "UP";
+ break;
+ case ROUND_DOWN:
+ p = "DOWN";
+ break;
+ case ROUND_ZERO:
+ p = "ZERO";
+ break;
+ case ROUND_NEAREST:
+ p = "NEAREST";
+ break;
+ case ROUND_COMPATIBLE:
+ p = "COMPATIBLE";
+ break;
+ case ROUND_PROCDEFINED:
+ p = "PROCESSOR_DEFINED";
+ break;
+ default:
+ internal_error (&iqp->common, "inquire_via_unit(): Bad round");
+ }
+
+ cf_strcpy (iqp->round, iqp->round_len, p);
+ }
}
if ((cf & IOPARM_INQUIRE_HAS_POSITION) != 0)
@@ -581,14 +584,26 @@ inquire_via_filename (st_parameter_inquire *iqp)
if ((cf & IOPARM_INQUIRE_HAS_PAD) != 0)
cf_strcpy (iqp->pad, iqp->pad_len, undefined);
- if ((cf2 & IOPARM_INQUIRE_HAS_ENCODING) != 0)
- cf_strcpy (iqp->encoding, iqp->encoding_len, undefined);
+ if (cf & IOPARM_INQUIRE_HAS_FLAGS2)
+ {
+ if ((cf2 & IOPARM_INQUIRE_HAS_ENCODING) != 0)
+ cf_strcpy (iqp->encoding, iqp->encoding_len, undefined);
- if ((cf2 & IOPARM_INQUIRE_HAS_DELIM) != 0)
- cf_strcpy (iqp->delim, iqp->delim_len, undefined);
+ if ((cf2 & IOPARM_INQUIRE_HAS_DELIM) != 0)
+ cf_strcpy (iqp->delim, iqp->delim_len, undefined);
+
+ if ((cf2 & IOPARM_INQUIRE_HAS_DECIMAL) != 0)
+ cf_strcpy (iqp->decimal, iqp->decimal_len, undefined);
- if ((cf2 & IOPARM_INQUIRE_HAS_DECIMAL) != 0)
- cf_strcpy (iqp->decimal, iqp->decimal_len, undefined);
+ if ((cf2 & IOPARM_INQUIRE_HAS_DELIM) != 0)
+ cf_strcpy (iqp->delim, iqp->delim_len, undefined);
+
+ if ((cf2 & IOPARM_INQUIRE_HAS_PAD) != 0)
+ cf_strcpy (iqp->pad, iqp->pad_len, undefined);
+
+ if ((cf2 & IOPARM_INQUIRE_HAS_ENCODING) != 0)
+ cf_strcpy (iqp->encoding, iqp->encoding_len, undefined);
+ }
if ((cf & IOPARM_INQUIRE_HAS_POSITION) != 0)
cf_strcpy (iqp->position, iqp->position_len, undefined);
@@ -613,15 +628,6 @@ inquire_via_filename (st_parameter_inquire *iqp)
p = inquire_read (iqp->file, iqp->file_len);
cf_strcpy (iqp->readwrite, iqp->readwrite_len, p);
}
-
- if ((cf2 & IOPARM_INQUIRE_HAS_DELIM) != 0)
- cf_strcpy (iqp->delim, iqp->delim_len, undefined);
-
- if ((cf2 & IOPARM_INQUIRE_HAS_PAD) != 0)
- cf_strcpy (iqp->pad, iqp->pad_len, undefined);
-
- if ((cf2 & IOPARM_INQUIRE_HAS_ENCODING) != 0)
- cf_strcpy (iqp->encoding, iqp->encoding_len, undefined);
}