VARIABLE ROLE: New command.
[pspp] / src / language / dictionary / sys-file-info.c
index 441054e209b29b3dfdb7434038083dd6df11ce32..1ce94aa91fab83aee356ad0bf15bf31b39550f76 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 1997-9, 2000, 2006, 2009, 2010, 2011, 2012 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
@@ -442,7 +442,7 @@ describe_variable (const struct variable *v, struct tab_table *t, int r,
   /* Make sure that enough rows are allocated. */
   need_rows = 1;
   if (flags & ~(DF_DICT_INDEX | DF_VARIABLE_LABELS))
-    need_rows += 15;
+    need_rows += 16;
   if (flags & DF_VALUE_LABELS)
     need_rows += val_labs_count (var_get_value_labels (v));
   if (flags & (DF_ATTRIBUTES | DF_AT_ATTRIBUTES))
@@ -494,24 +494,28 @@ describe_variable (const struct variable *v, struct tab_table *t, int r,
         }
     }
   
-  /* Measurement level, display width, alignment. */
+  /* Measurement level, role, display width, alignment. */
   if (flags & DF_MISC) 
     {
-      enum measure m = var_get_measure (v);
-      enum alignment a = var_get_alignment (v);
+      enum var_role role = var_get_role (v);
 
       tab_joint_text_format (t, 1, r, 2, r, TAB_LEFT,
                              _("Measure: %s"),
-                             m == MEASURE_NOMINAL ? _("Nominal")
-                             : m == MEASURE_ORDINAL ? _("Ordinal")
-                             : _("Scale"));
+                             measure_to_string (var_get_measure (v)));
       r++;
+
+      if (role != ROLE_NONE)
+        {
+          tab_joint_text_format (t, 1, r, 2, r, TAB_LEFT,
+                                 _("Role: %s"), var_role_to_string (role));
+          r++;
+        }
+
       tab_joint_text_format (t, 1, r, 2, r, TAB_LEFT,
                              _("Display Alignment: %s"),
-                             a == ALIGN_LEFT ? _("Left")
-                             : a == ALIGN_CENTRE ? _("Center")
-                             : _("Right"));
+                             alignment_to_string (var_get_alignment (v)));
       r++;
+
       tab_joint_text_format (t, 1, r, 2, r, TAB_LEFT,
                              _("Display Width: %d"),
                              var_get_display_width (v));