work on pspp-output modify command
[pspp] / utilities / pspp-output.c
index f9f149bd6360299567a559d99b26b613a6860cdc..2a8c83ffd502e711040e10ebbf07c2cef3e7a12a 100644 (file)
@@ -79,6 +79,9 @@ static bool force;
 /* --table-look: TableLook to replace table style for conversion. */
 static struct pivot_table_look *table_look;
 
+/* --set-label: New object label. */
+static char *set_label;
+
 /* Number of warnings issued. */
 static size_t n_warnings;
 
@@ -306,6 +309,14 @@ run_convert (int argc UNUSED, char **argv)
       struct spv_item *heading
         = items[i]->type == SPV_ITEM_HEADING ? items[i] : items[i]->parent;
       dump_heading_transition (prev_heading, heading);
+
+      if (set_label && spv_item_is_table (items[i]))
+        {
+          printf ("set label to %s\n", set_label);
+          free (items[i]->label);
+          items[i]->label = xstrdup (set_label);
+        }
+
       dump_item (items[i]);
       prev_heading = heading;
     }
@@ -966,6 +977,7 @@ parse_options (int argc, char *argv[])
           OPT_SORT,
           OPT_RAW,
           OPT_TABLE_LOOK,
+          OPT_SET_LABEL,
         };
       static const struct option long_options[] =
         {
@@ -987,6 +999,7 @@ parse_options (int argc, char *argv[])
           /* "convert" command options. */
           { "force", no_argument, NULL, 'f' },
           { "table-look", required_argument, NULL, OPT_TABLE_LOOK },
+          { "set-label", required_argument, NULL, OPT_SET_LABEL },
 
           /* "dump-light-table" command options. */
           { "sort", no_argument, NULL, OPT_SORT },
@@ -1066,6 +1079,10 @@ parse_options (int argc, char *argv[])
           parse_table_look (optarg);
           break;
 
+        case OPT_SET_LABEL:
+          set_label = optarg;
+          break;
+
         case 'f':
           force = true;
           break;