Fix error messages and comment.
[pspp-builds.git] / src / data / data-in.c
index 45b20a0cede3e93e5173a56073096273b4e64fab..c5556a3c78694d0b939547d82ba0c812231be661 100644 (file)
@@ -54,18 +54,17 @@ vdls_error (const struct data_in *i, const char *format, va_list args)
   if (i->flags & DI_IGNORE_ERROR)
     return;
 
-  ds_init (&text, 64);
+  ds_init_empty (&text);
   if (i->f1 == i->f2)
-    ds_printf (&text, _("(column %d"), i->f1);
+    ds_put_format (&text, _("(column %d"), i->f1);
   else
-    ds_printf (&text, _("(columns %d-%d"), i->f1, i->f2);
-  ds_printf (&text, _(", field type %s) "), fmt_to_string (&i->format));
-  ds_vprintf (&text, format, args);
+    ds_put_format (&text, _("(columns %d-%d"), i->f1, i->f2);
+  ds_put_format (&text, _(", field type %s) "), fmt_to_string (&i->format));
+  ds_put_vformat (&text, format, args);
 
   m.category = MSG_DATA;
   m.severity = MSG_ERROR;
-  msg_location (&m.where);
-  m.text = ds_c_str (&text);
+  m.text = ds_cstr (&text);
 
   msg_emit (&m);
 }
@@ -94,7 +93,7 @@ trim_whitespace (struct data_in *i)
     i->e--;
 }
 
-/* Returns nonzero if we're not at the end of the string being
+/* Returns true if we're not at the end of the string being
    parsed. */
 static inline bool
 have_char (struct data_in *i)
@@ -568,10 +567,12 @@ parse_RB (struct data_in *i)
   return true;
 }
 
+
 static inline bool
 parse_A (struct data_in *i)
 {
   buf_copy_rpad (i->v->s, i->format.w, i->s, i->e - i->s);
+  
   return true;
 }
 
@@ -834,7 +835,8 @@ parse_trailer (struct data_in *i)
   if (!have_char (i))
     return true;
   
-  dls_error (i, _("Trailing garbage \"%s\" following date."), i->s);
+  dls_error (i, _("Trailing garbage \"%.*s\" following date."),
+             (int) (i->e - i->s), i->s);
   return false;
 }
 
@@ -1393,7 +1395,8 @@ data_in (struct data_in *i)
     }
   
   {
-    static bool (*const handlers[FMT_NUMBER_OF_FORMATS])(struct data_in *) = 
+    typedef bool (*handler_t) (struct data_in *);
+    static const handler_t handlers[FMT_NUMBER_OF_FORMATS] = 
       {
        parse_numeric, parse_N, parse_numeric, parse_numeric,
        parse_numeric, parse_numeric, parse_numeric,
@@ -1406,7 +1409,7 @@ data_in (struct data_in *i)
        parse_WKDAY, parse_MONTH,
       };
 
-    bool (*handler)(struct data_in *);
+    handler_t handler;
     bool success;
 
     handler = handlers[i->format.type];