X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fdata-in.c;h=1e8fe67983350fefb5ae4ce117b312bbb0711f9f;hb=b0bf9b1b0f727fafac4296a048e3f45db5936f81;hp=1502417be5d048343e0106a9d9f445ab0626a1fe;hpb=dcf9b154cbcaa35c3d8459a201b77eec8bcb30bd;p=pspp diff --git a/src/data/data-in.c b/src/data/data-in.c index 1502417be5..1e8fe67983 100644 --- a/src/data/data-in.c +++ b/src/data/data-in.c @@ -19,7 +19,7 @@ #include #include "data-in.h" -#include "message.h" +#include #include #include #include @@ -27,19 +27,18 @@ #include #include #include -#include "message.h" +#include #include "calendar.h" +#include #include "identifier.h" -#include "magic.h" -#include "misc.h" +#include +#include #include "settings.h" -#include "str.h" +#include #include "variable.h" #include "gettext.h" #define _(msgid) gettext (msgid) - -#include "debug-print.h" /* Specialized error routine. */ @@ -49,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 @@ -569,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; }