message: Break message location out into a separate struct.
[pspp] / src / language / data-io / data-reader.c
index 1e06d287735db834a3527893bbba298fea2de282..9a9cafa7f9bff9aeb597f3ed49126545f1d4a121 100644 (file)
@@ -554,7 +554,7 @@ dfm_eof (struct dfm_reader *r)
     {
       r->flags &= ~DFM_ADVANCE;
 
-      if (r->eof_cnt == 0 && read_record (r) )
+      if (r->eof_cnt == 0 && read_record (r))
         {
           r->pos = 0;
           return 0;
@@ -708,15 +708,19 @@ dfm_get_column (const struct dfm_reader *r, const char *p)
 const char *
 dfm_get_file_name (const struct dfm_reader *r)
 {
-  return (fh_get_referent (r->fh) == FH_REF_FILE
-          ? fh_get_file_name (r->fh)
+  enum fh_referent referent = fh_get_referent (r->fh);
+  return (referent == FH_REF_FILE ? fh_get_file_name (r->fh)
+          : referent == FH_REF_INLINE ? lex_get_file_name (r->lexer)
           : NULL);
 }
 
 int
 dfm_get_line_number (const struct dfm_reader *r)
 {
-  return fh_get_referent (r->fh) == FH_REF_FILE ? r->line_number : -1;
+  enum fh_referent referent = fh_get_referent (r->fh);
+  return (referent == FH_REF_FILE ? r->line_number
+          : referent == FH_REF_INLINE ? lex_get_first_line_number (r->lexer, 0)
+          : -1);
 }
 \f
 /* BEGIN DATA...END DATA procedure. */