X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fpor-file-reader.c;h=a4e3b0cb9988dfbd5be2d4b924f4db3c4c03adf8;hb=81fff61a96bece351e381ad3fef8ab1248a952ba;hp=900f62985283d7a3128b93e2e0b774075e982a48;hpb=a19b858e0ac3c69e4a28c0ca6d8674427268a863;p=pspp diff --git a/src/data/por-file-reader.c b/src/data/por-file-reader.c index 900f629852..a4e3b0cb99 100644 --- a/src/data/por-file-reader.c +++ b/src/data/por-file-reader.c @@ -47,8 +47,6 @@ #include "gettext.h" #define _(msgid) gettext (msgid) -#include - /* portable_to_local[PORTABLE] translates the given portable character into the local character set. */ static const char portable_to_local[256] = @@ -79,30 +77,33 @@ struct pfm_reader static void error (struct pfm_reader *r, const char *msg,...) - PRINTF_FORMAT (2, 3); + PRINTF_FORMAT (2, 3) + NO_RETURN; /* Displays MSG as an error message and aborts reading the portable file via longjmp(). */ static void error (struct pfm_reader *r, const char *msg, ...) { - struct error e; - const char *filename; - char *title; + struct msg m; + struct string text; va_list args; - e.class = ME; - e.where.filename = NULL; - e.where.line_number = 0; - filename = fh_get_filename (r->fh); - e.title = title = pool_alloc (r->pool, strlen (filename) + 80); - sprintf (title, _("portable file %s corrupt at offset %ld: "), - filename, 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); @@ -173,7 +174,7 @@ pfm_open_reader (struct file_handle *fh, struct dictionary **dict, if (setjmp (r->bail_out)) goto error; r->fh = fh; - r->file = pool_fopen (r->pool, fh_get_filename (r->fh), "rb"); + r->file = pool_fopen (r->pool, fh_get_file_name (r->fh), "rb"); r->weight_index = -1; r->trans = NULL; r->var_cnt = 0; @@ -186,7 +187,7 @@ pfm_open_reader (struct file_handle *fh, struct dictionary **dict, { msg (ME, _("An error occurred while opening \"%s\" for reading " "as a portable file: %s."), - fh_get_filename (r->fh), strerror (errno)); + fh_get_file_name (r->fh), strerror (errno)); goto error; } @@ -404,7 +405,7 @@ read_header (struct pfm_reader *r) for (i = 0; i < 8; i++) if (!match (r, "SPSSPORT"[i])) { - msg (SE, _("%s: Not a portable file."), fh_get_filename (r->fh)); + msg (SE, _("%s: Not a portable file."), fh_get_file_name (r->fh)); longjmp (r->bail_out, 1); } }