X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Flanguage%2Fdata-io%2Fdata-parser.c;h=03c6dbbb0ea36a421a956498f2fb4470c14771a3;hb=b70dcc901c6b6b28a310ffc58aca13daa2a58d67;hp=818c15a30f2ab09115b25b5ff7e7dc1f711eb738;hpb=07da9f454c17fb961cae09f6d7d505f7abb281c0;p=pspp diff --git a/src/language/data-io/data-parser.c b/src/language/data-io/data-parser.c index 818c15a30f..03c6dbbb0e 100644 --- a/src/language/data-io/data-parser.c +++ b/src/language/data-io/data-parser.c @@ -495,18 +495,24 @@ static void parse_error (const struct dfm_reader *reader, const struct field *field, int first_column, int last_column, char *error) { - struct msg m = { - .category = MSG_C_DATA, - .severity = MSG_S_WARNING, - .file_name = CONST_CAST (char *, dfm_get_file_name (reader)), - .first_line = dfm_get_line_number (reader), - .last_line = m.first_line + 1, + int line_number = dfm_get_line_number (reader); + struct msg_location *location = xmalloc (sizeof *location); + *location = (struct msg_location) { + .file_name = xstrdup (dfm_get_file_name (reader)), + .first_line = line_number, + .last_line = line_number + 1, .first_column = first_column, .last_column = last_column, + }; + struct msg *m = xmalloc (sizeof *m); + *m = (struct msg) { + .category = MSG_C_DATA, + .severity = MSG_S_WARNING, + .location = location, .text = xasprintf (_("Data for variable %s is not valid as format %s: %s"), field->name, fmt_name (field->format.type), error), }; - msg_emit (&m); + msg_emit (m); free (error); }