X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fpor-file-reader.c;h=a4e3b0cb9988dfbd5be2d4b924f4db3c4c03adf8;hb=2766c2d47448010527d52dd304213d0bb563dd00;hp=5b49fa5aa90632e41d013f581b538debad13bb5a;hpb=1b47c4afe993f715c03e7392427b0b8919a26d4e;p=pspp-builds.git diff --git a/src/data/por-file-reader.c b/src/data/por-file-reader.c index 5b49fa5a..a4e3b0cb 100644 --- a/src/data/por-file-reader.c +++ b/src/data/por-file-reader.c @@ -85,24 +85,25 @@ error (struct pfm_reader *r, const char *msg,...) static void error (struct pfm_reader *r, const char *msg, ...) { - struct error e; - const char *file_name; - char *title; + struct msg m; + struct string text; va_list args; - e.category = MSG_GENERAL; - e.severity = MSG_ERROR; - e.where.file_name = NULL; - e.where.line_number = 0; - file_name = fh_get_file_name (r->fh); - e.title = title = pool_alloc (r->pool, strlen (file_name) + 80); - sprintf (title, _("portable file %s corrupt at offset %ld: "), - file_name, ftell (r->file)); - + ds_init (&text, 64); + ds_printf (&text, _("portable file %s corrupt at offset %ld: "), + fh_get_file_name (r->fh), ftell (r->file)); va_start (args, msg); - err_vmsg (&e, msg, args); + ds_vprintf (&text, msg, args); va_end (args); + m.category = MSG_GENERAL; + m.severity = MSG_ERROR; + m.where.file_name = NULL; + m.where.line_number = 0; + m.text = ds_c_str (&text); + + msg_emit (&m); + r->ok = false; longjmp (r->bail_out, 1);