message: Break message location out into a separate struct.
[pspp] / src / language / data-io / data-parser.c
index 818c15a30f2ab09115b25b5ff7e7dc1f711eb738..6de88b170de8400fdd37215dedc4d736bcc17754 100644 (file)
@@ -495,14 +495,18 @@ 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,
+  int line_number = dfm_get_line_number (reader);
+  const struct msg_location location = {
     .file_name = CONST_CAST (char *, dfm_get_file_name (reader)),
-    .first_line = dfm_get_line_number (reader),
-    .last_line = m.first_line + 1,
+    .first_line = line_number,
+    .last_line = line_number + 1,
     .first_column = first_column,
     .last_column = last_column,
+  };
+  struct msg m = {
+    .category = MSG_C_DATA,
+    .severity = MSG_S_WARNING,
+    .location = CONST_CAST (struct msg_location *, &location),
     .text = xasprintf (_("Data for variable %s is not valid as format %s: %s"),
                        field->name, fmt_name (field->format.type), error),
   };