Make the gnumeric reader behave the same as the odsreader
[pspp] / src / data / por-file-writer.c
index ea0f9dc88bfe98bebbbd2422881c664d2b76fbaa..1cd6c6ed7a085eb83c1035c5eb8ecf9c819895d8 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 1997-9, 2000, 2006, 2009, 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1997-9, 2000, 2006, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -336,7 +336,9 @@ write_variables (struct pfm_writer *w, struct dictionary *dict)
   
   buf_write (w, "4", 1);
   write_int (w, dict_get_var_cnt (dict));
-  write_int (w, 161);
+
+  buf_write (w, "5", 1);
+  write_int (w, ceil (w->digits * (log (10) / log (30))));
 
   for (i = 0; i < dict_get_var_cnt (dict); i++)
     {
@@ -404,6 +406,7 @@ write_value_labels (struct pfm_writer *w, const struct dictionary *dict)
       const struct val_labs *val_labs = var_get_value_labels (v);
       size_t n_labels = val_labs_count (val_labs);
       const struct val_lab **labels;
+      int j;
 
       if (n_labels == 0)
        continue;
@@ -415,11 +418,11 @@ write_value_labels (struct pfm_writer *w, const struct dictionary *dict)
 
       n_labels = val_labs_count (val_labs);
       labels = val_labs_sorted (val_labs);
-      for (i = 0; i < n_labels; i++)
+      for (j = 0; j < n_labels; j++)
         {
-          const struct val_lab *vl = labels[i];
+          const struct val_lab *vl = labels[j];
           write_value (w, val_lab_get_value (vl), var_get_width (v));
-          write_string (w, val_lab_get_label (vl));
+          write_string (w, val_lab_get_escaped_label (vl));
         }
       free (labels);
     }