Fixed bug #17420 (table columns exceeded with /FORMAT=nolabels )
[pspp-builds.git] / src / language / stats / frequencies.q
index 535e69070f8e2761d09c7ef245f6475a68d5af57..506d7ca320b8f00b5bcf690c58e619487a3f47ee 100644 (file)
@@ -1100,13 +1100,19 @@ compare_freq_alpha_d (const void *a_, const void *b_, const void *v_)
 static void
 full_dim (struct tab_table *t, struct outp_driver *d)
 {
-  int lab = cmd.labels == FRQ_LABELS;
-  int i;
+  int i = 0;
+  int columns = 5;
 
-  if (lab)
+  if (cmd.labels == FRQ_LABELS)
+    {
     t->w[0] = MIN (tab_natural_width (t, d, 0), d->prop_em_width * 15);
-  for (i = lab; i < lab + 5; i++)
+      i = 1;
+      columns ++;
+    }
+
+  for (;i < columns; i++)
     t->w[i] = MAX (tab_natural_width (t, d, i), d->prop_em_width * 8);
+
   for (i = 0; i < t->nr; i++)
     t->h[i] = d->font_height;
 }
@@ -1148,7 +1154,7 @@ dump_full (struct variable *v)
     {-1, -1, NULL},
   };
 
-  int lab = cmd.labels == FRQ_LABELS;
+  const bool lab = (cmd.labels == FRQ_LABELS);
 
   vf = get_var_freqs (v);
   ft = &vf->tab;
@@ -1159,8 +1165,9 @@ dump_full (struct variable *v)
 
   if (lab)
     tab_text (t, 0, 1, TAB_CENTER | TAT_TITLE, _("Value Label"));
+
   for (p = vec; p->s; p++)
-    tab_text (t, p->c - (p->r ? !lab : 0), p->r,
+    tab_text (t, lab ? p->c : p->c - 1, p->r,
                  TAB_CENTER | TAT_TITLE, gettext (p->s));
 
   r = 2;
@@ -1176,11 +1183,6 @@ dump_full (struct variable *v)
 
       if (lab)
        {
-#if 0
-<<<<<<< frequencies.q
-         const char *label = val_labs_find (v->val_labs, f->value[0]);
-=======
-#endif
          const char *label = var_lookup_value_label (v, &f->value[0]);
          if (label != NULL)
            tab_text (t, 0, r, TAB_LEFT, label);