message: Introduce underlining for error message regions.
[pspp] / src / language / data-io / data-parser.c
index 03c6dbbb0ea36a421a956498f2fb4470c14771a3..c42daba4f1caa4b5e8ce08ae66819d51d4ddff70 100644 (file)
@@ -29,6 +29,7 @@
 #include "data/file-handle-def.h"
 #include "data/settings.h"
 #include "language/data-io/data-reader.h"
+#include "libpspp/intern.h"
 #include "libpspp/message.h"
 #include "libpspp/str.h"
 #include "output/pivot-table.h"
@@ -498,11 +499,9 @@ parse_error (const struct dfm_reader *reader, const struct field *field,
   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,
+    .file_name = intern_new (dfm_get_file_name (reader)),
+    .start = { .line = line_number, .column = first_column },
+    .end = { .line = line_number, .column = last_column - 1 },
   };
   struct msg *m = xmalloc (sizeof *m);
   *m = (struct msg) {