First step in making struct variable opaque: the boring mechanical
[pspp-builds.git] / src / data / por-file-writer.c
index 98b7b76426fb0596c3577416b6572ce296544d0f..aa8b5e0bc0139152dba4ae97dc546c1930429ee1 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - computes sample statistics.
-   Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1997-9, 2000, 2006 Free Software Foundation, Inc.
    Written by Ben Pfaff <blp@gnu.org>.
 
    This program is free software; you can redistribute it and/or
@@ -105,7 +105,7 @@ pfm_open_writer (struct file_handle *fh, struct dictionary *dict,
   mode = S_IRUSR | S_IRGRP | S_IROTH;
   if (opts.create_writeable)
     mode |= S_IWUSR | S_IWGRP | S_IWOTH;
-  fd = open (fh_get_filename (fh), O_WRONLY | O_CREAT | O_TRUNC, mode);
+  fd = open (fh_get_file_name (fh), O_WRONLY | O_CREAT | O_TRUNC, mode);
   if (fd < 0) 
     goto open_error;
 
@@ -133,7 +133,7 @@ pfm_open_writer (struct file_handle *fh, struct dictionary *dict,
     {
       const struct variable *dv = dict_get_var (dict, i);
       struct pfm_var *pv = &w->vars[i];
-      pv->width = dv->width;
+      pv->width = var_get_width (dv);
       pv->fv = dv->fv;
     }
 
@@ -162,7 +162,7 @@ pfm_open_writer (struct file_handle *fh, struct dictionary *dict,
  open_error:
   msg (ME, _("An error occurred while opening \"%s\" for writing "
              "as a portable file: %s."),
-       fh_get_filename (fh), strerror (errno));
+       fh_get_file_name (fh), strerror (errno));
   goto error;
 }
 \f  
@@ -280,9 +280,9 @@ write_version_data (struct pfm_writer *w)
 
 /* Write format F to file H. */
 static void
-write_format (struct pfm_writer *w, struct fmt_spec *f)
+write_format (struct pfm_writer *w, const struct fmt_spec *f)
 {
-  write_int (w, formats[f->type].spss);
+  write_int (w, fmt_to_io (f->type));
   write_int (w, f->w);
   write_int (w, f->d);
 }
@@ -291,12 +291,12 @@ write_format (struct pfm_writer *w, struct fmt_spec *f)
 static void
 write_value (struct pfm_writer *w, union value *v, struct variable *vv)
 {
-  if (vv->type == NUMERIC)
+  if (var_is_numeric (vv))
     write_float (w, v->f);
   else 
     {
-      write_int (w, vv->width);
-      buf_write (w, v->s, vv->width); 
+      write_int (w, var_get_width (vv));
+      buf_write (w, v->s, var_get_width (vv)); 
     }
 }
 
@@ -318,13 +318,13 @@ write_variables (struct pfm_writer *w, struct dictionary *dict)
       struct missing_values mv;
       
       buf_write (w, "7", 1);
-      write_int (w, v->width);
-      write_string (w, v->short_name);
-      write_format (w, &v->print);
-      write_format (w, &v->write);
+      write_int (w, var_get_width (v));
+      write_string (w, var_get_short_name (v));
+      write_format (w, var_get_print_format (v));
+      write_format (w, var_get_write_format (v));
 
       /* Write missing values. */
-      mv_copy (&mv, &v->miss);
+      mv_copy (&mv, var_get_missing_values (v));
       while (mv_has_range (&mv))
         {
           double x, y;
@@ -354,10 +354,10 @@ write_variables (struct pfm_writer *w, struct dictionary *dict)
           write_value (w, &value, v);
         }
 
-      if (v->label)
+      if (var_get_label (v) != NULL)
         { 
           buf_write (w, "C", 1);
-          write_string (w, v->label);
+          write_string (w, var_get_label (v));
         }
     }
 }
@@ -379,7 +379,7 @@ write_value_labels (struct pfm_writer *w, const struct dictionary *dict)
 
       buf_write (w, "D", 1);
       write_int (w, 1);
-      write_string (w, v->short_name);
+      write_string (w, var_get_short_name (v));
       write_int (w, val_labs_count (v->val_labs));
 
       for (vl = val_labs_first_sorted (v->val_labs, &j); vl != NULL;
@@ -445,7 +445,7 @@ pfm_close_writer (struct pfm_writer *w)
 
       if (!ok) 
         msg (ME, _("An I/O error occurred writing portable file \"%s\"."),
-             fh_get_filename (w->fh));
+             fh_get_file_name (w->fh));
     }
 
   fh_close (w->fh, "portable file", "we");