Reform string library.
[pspp-builds.git] / src / data / por-file-reader.c
index 5b49fa5aa90632e41d013f581b538debad13bb5a..fa3af602dc4a7d1bb30914c739d45455fdf32b94 100644 (file)
@@ -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_empty (&text);
+  ds_put_format (&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_put_vformat (&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_cstr (&text);
+  
+  msg_emit (&m);
+
   r->ok = false;
 
   longjmp (r->bail_out, 1);