improve error messages for scale variable summaries
[pspp] / src / language / stats / ctables.c
index 13fe3b467b14e1b42c23c75e773f08f1754e460a..3e370b8276953a5ebc6445cd7601f06bee6e824f 100644 (file)
@@ -6496,15 +6496,21 @@ cmd_ctables (struct lexer *lexer, struct dataset *ds)
       if (n_summaries > 1)
         {
           msg (SE, _("Summaries may appear only on one axis."));
-          if (summaries[PIVOT_AXIS_ROW])
-            msg_at (SN, summaries[PIVOT_AXIS_ROW]->loc,
-                    _("This variable on the rows axis has a summary."));
-          if (summaries[PIVOT_AXIS_COLUMN])
-            msg_at (SN, summaries[PIVOT_AXIS_COLUMN]->loc,
-                    _("This variable on the columns axis has a summary."));
-          if (summaries[PIVOT_AXIS_LAYER])
-            msg_at (SN, summaries[PIVOT_AXIS_LAYER]->loc,
-                    _("This variable on the layers axis has a summary."));
+          for (enum pivot_axis_type a = 0; a < PIVOT_N_AXES; a++)
+            if (summaries[a])
+              {
+                msg_at (SN, summaries[a]->loc,
+                        a == PIVOT_AXIS_ROW
+                        ? _("This variable on the rows axis has a summary.")
+                        : a == PIVOT_AXIS_COLUMN
+                        ? _("This variable on the columns axis has a summary.")
+                        : _("This variable on the layers axis has a summary."));
+                if (scales[a])
+                  msg_at (SN, summaries[a]->loc,
+                          _("This is a scale variable, so it always has a "
+                            "summary even if the syntax does not explicitly "
+                            "specify one."));
+              }
           goto error;
         }
       for (enum pivot_axis_type a = 0; a < PIVOT_N_AXES; a++)