X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fdata-in.c;h=1e8fe67983350fefb5ae4ce117b312bbb0711f9f;hb=de881ed979f2a6c382589b9d54d485ad88323821;hp=44fd7995f632ad86b092007fdfefa257adca3a84;hpb=77e551d23575da6b89f866612ab39c2b0497c9be;p=pspp diff --git a/src/data/data-in.c b/src/data/data-in.c index 44fd7995f6..1e8fe67983 100644 --- a/src/data/data-in.c +++ b/src/data/data-in.c @@ -48,26 +48,26 @@ static void dls_error (const struct data_in *, const char *format, ...) static void vdls_error (const struct data_in *i, const char *format, va_list args) { - struct error e; - struct string title; + struct msg m; + struct string text; if (i->flags & DI_IGNORE_ERROR) return; - ds_init (&title, 64); + ds_init (&text, 64); if (i->f1 == i->f2) - ds_printf (&title, _("(column %d"), i->f1); + ds_printf (&text, _("(column %d"), i->f1); else - ds_printf (&title, _("(columns %d-%d"), i->f1, i->f2); - ds_printf (&title, _(", field type %s) "), fmt_to_string (&i->format)); - - e.class = DE; - err_location (&e.where); - e.title = ds_c_str (&title); + 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); - err_vmsg (&e, format, args); + m.category = MSG_DATA; + m.severity = MSG_ERROR; + msg_location (&m.where); + m.text = ds_c_str (&text); - ds_destroy (&title); + msg_emit (&m); } static void @@ -568,10 +568,14 @@ 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); + const int bytes = width_to_bytes(i->format.w); + + copy_mangle (i->v->s, bytes, i->s, i->e - i->s); + return true; }