Don't assume that MEASURE_* and ALIGN_* have the same values found in
authorBen Pfaff <blp@gnu.org>
Sat, 16 Dec 2006 22:11:08 +0000 (22:11 +0000)
committerBen Pfaff <blp@gnu.org>
Sat, 16 Dec 2006 22:11:08 +0000 (22:11 +0000)
system files.

src/data/ChangeLog
src/data/sys-file-reader.c
src/data/sys-file-writer.c
src/data/variable.h
src/ui/gui/ChangeLog
src/ui/gui/psppire-var-store.c
src/ui/gui/var-sheet.c

index aae7ca9562b0943fec2a588ca11ab9637768b96a..470e89692a3ad231f6bb19b980bd9a5c1a5e0546 100644 (file)
@@ -1,3 +1,15 @@
+Sat Dec 16 14:09:25 2006  Ben Pfaff  <blp@gnu.org>
+
+       * sys-file-reader.c (read_display_parameters): Don't assume that
+       MEASURE_* and ALIGN_* have the same values found in system files.
+
+       * sys-file-writer.c (write_variable_display_parameters): Ditto.
+
+       * variable.h: Change MEASURE_NOMINAL, MEASURE_ORDINAL,
+       MEASURE_SCALE to be 0-based instead of 1-based.  This also fixes
+       the value of n_MEASURES, which was off by 1 (at least from my
+       point of view).
+
 Sat Dec 16 12:17:34 WST 2006 John Darrington <john@darrington.wattle.id.au>
 
        * dictionary.c dictionary.h vardict.h variable.c: Added optional
index 8c440849e5a270fdfa5ad4e6588b71044ed10bb5..9a4b33a911f69b75709b6b2edd763107e8f874b3 100644 (file)
@@ -813,7 +813,7 @@ read_display_parameters (struct sfm_reader *r, size_t size, size_t count,
       int align = read_int32 (r);
       struct variable *v;
 
-      if (!measure_is_valid (measure) || !alignment_is_valid (align))
+      if (measure < 1 || measure > 3 || align < 0 || align > 2)
         {
           if (!warned)
             sys_warn (r, _("Invalid variable display parameters.  "
@@ -823,9 +823,13 @@ read_display_parameters (struct sfm_reader *r, size_t size, size_t count,
         }
 
       v = dict_get_var (dict, i);
-      var_set_measure (v, measure);
+      var_set_measure (v, (measure == 1 ? MEASURE_NOMINAL
+                           : measure == 2 ? MEASURE_ORDINAL
+                           : MEASURE_SCALE));
       var_set_display_width (v, width);
-      var_set_alignment (v, align);
+      var_set_alignment (v, (align == 0 ? ALIGN_LEFT
+                             : align == 1 ? ALIGN_RIGHT
+                             : ALIGN_CENTRE));
     }
 }
 
index a7cc830f777ca90784c6331d43cb4827396aabfd..f82cafad32d5e92d879985790005a15da38cae9a 100644 (file)
@@ -709,9 +709,13 @@ write_variable_display_parameters (struct sfm_writer *w,
 
       v = dict_get_var(dict, i);
 
-      params.measure = var_get_measure (v);
+      params.measure = (var_get_measure (v) == MEASURE_NOMINAL ? 1
+                        : var_get_measure (v) == MEASURE_ORDINAL ? 2
+                        : 3);
       params.width = var_get_display_width (v);
-      params.align = var_get_alignment (v);
+      params.align = (var_get_alignment (v) == ALIGN_LEFT ? 0
+                      : var_get_alignment (v) == ALIGN_RIGHT ? 1
+                      : 2);
       
       buf_write (w, &params, sizeof(params));
 
index b97f85821cd6b5053458e2a36e5979288dfaf577..0ab2821dbe827b6e9068b1e497b6b3c124cb477e 100644 (file)
@@ -115,9 +115,9 @@ bool var_has_label (const struct variable *);
 /* How data is measured. */
 enum measure
   {
-    MEASURE_NOMINAL = 1,
-    MEASURE_ORDINAL = 2,
-    MEASURE_SCALE = 3,
+    MEASURE_NOMINAL = 0,
+    MEASURE_ORDINAL = 1,
+    MEASURE_SCALE = 2,
     n_MEASURES
   };
 
index c8ea53ce6c8f50e68d076e94a366f1c621f7ae65..c20e3be26f7281b22e500878846060112458616f 100644 (file)
@@ -1,3 +1,10 @@
+Sat Dec 16 14:10:43 2006  Ben Pfaff  <blp@gnu.org>
+
+       * psppire-var-store.c (text_for_column): Adjust to account for new
+       values of the MEASURE_* enums.
+
+       * var-sheet.c (change_measure): Ditto.
+
 Sat Dec 16 12:24:35 WST 2006 John Darrington <john@darrington.wattle.id.au>
 
        * psppire-variable.c psppire-variable.h: Deleted.
index cb78ad62801c5c9bd63a639cce0ed0964ebc5658..64fbfa7dcd3589becf7badc828372b945d964a4e 100644 (file)
@@ -680,8 +680,8 @@ text_for_column(const struct variable *pv, gint c, GError **err)
       {
        const gint measure = var_get_measure (pv);
 
-       g_assert (measure - 1 < n_MEASURES);
-       return g_locale_to_utf8 (gettext (measures[measure - 1]),
+       g_assert (measure < n_MEASURES);
+       return g_locale_to_utf8 (gettext (measures[measure]),
                                 -1, 0, 0, err);
       }
       break;
index f7797fad9f2c1850ae24fc7f7c0663c3349d7382..b65c6e89ddf8cd0482091d97444588ff56132928 100644 (file)
@@ -160,7 +160,7 @@ change_measure(GtkComboBox *cb,
 
   if ( active_item < 0 ) return ;
 
-  var_set_measure (pv, active_item + 1);
+  var_set_measure (pv, active_item);
 }