Continue reforming error message support. In this phase, get rid of
[pspp-builds.git] / src / data / por-file-reader.c
index c4fec4b0ed72d30a2608c9b6af49340d35d40384..c137a0507778d0df8085f158b20f2219148dc467 100644 (file)
@@ -47,8 +47,6 @@
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
 
-#include <libpspp/debug-print.h>
-
 /* portable_to_local[PORTABLE] translates the given portable
    character into the local character set. */
 static const char portable_to_local[256] =
@@ -88,22 +86,24 @@ static void
 error (struct pfm_reader *r, const char *msg, ...)
 {
   struct error e;
-  const char *filename;
-  char *title;
+  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);
 
+  e.category = MSG_GENERAL;
+  e.severity = MSG_ERROR;
+  e.where.file_name = NULL;
+  e.where.line_number = 0;
+  e.text = ds_c_str (&text);
+  
+  err_msg (&e);
+
   r->ok = false;
 
   longjmp (r->bail_out, 1);
@@ -174,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;
@@ -187,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;
     }
   
@@ -405,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);
       }
 }