X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fpor-file-reader.c;h=125d7be2598a37bb516c80b35d3839a794c3811a;hb=578bc59e7ec144bc8424e9a58807a791314cc0e8;hp=9ae6799ac45141ad4952ef3b21f14374051136b0;hpb=dc26037479e9887a84375ad6aeb657e45a8a1933;p=pspp diff --git a/src/data/por-file-reader.c b/src/data/por-file-reader.c index 9ae6799ac4..125d7be259 100644 --- a/src/data/por-file-reader.c +++ b/src/data/por-file-reader.c @@ -623,29 +623,19 @@ static struct fmt_spec convert_format (struct pfm_reader *r, const int portable_format[3], struct variable *v, bool *report_error) { - struct fmt_spec format; - bool ok; - - if (!fmt_from_io (portable_format[0], &format.type)) + enum fmt_type type; + if (fmt_from_io (portable_format[0], &type)) { - if (*report_error) - warning (r, _("%s: Bad format specifier byte (%d). Variable " - "will be assigned a default format."), - var_get_name (v), portable_format[0]); - goto assign_default; - } + struct fmt_spec format = { + .type = type, + .w = portable_format[1], + .d = portable_format[2], + }; - format.w = portable_format[1]; - format.d = portable_format[2]; + if (fmt_check_output (&format) + && fmt_check_width_compat (&format, var_get_width (v))) + return format; - msg_disable (); - ok = (fmt_check_output (&format) - && fmt_check_width_compat (&format, var_get_name (v), - var_get_width (v))); - msg_enable (); - - if (!ok) - { if (*report_error) { char fmt_string[FMT_STRING_LEN_MAX + 1]; @@ -659,12 +649,15 @@ convert_format (struct pfm_reader *r, const int portable_format[3], "invalid format specifier %s."), var_get_name (v), var_get_width (v), fmt_string); } - goto assign_default; + } + else + { + if (*report_error) + warning (r, _("%s: Bad format specifier byte (%d). Variable " + "will be assigned a default format."), + var_get_name (v), portable_format[0]); } - return format; - -assign_default: *report_error = false; return fmt_default_for_width (var_get_width (v)); }