pspp-output: New feature for retrieving the default look.
authorBen Pfaff <blp@cs.stanford.edu>
Fri, 1 Jan 2021 04:46:56 +0000 (20:46 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Fri, 1 Jan 2021 04:47:11 +0000 (20:47 -0800)
doc/pspp-output.texi
utilities/pspp-output.1
utilities/pspp-output.c

index f8b7931d735c20afb8979dd8850409867b4ad172..b580690dc5708f20cac83a9813838e6dce378055 100644 (file)
@@ -136,6 +136,9 @@ selected object, extracts the TableLook from that table, and writes it
 to @var{destination} (typically with an @file{.stt} extension) in the
 TableLook XML format.
 
+Use @samp{-} for @var{source} to instead write the default look to
+@var{destination}.
+
 The user may use the TableLook file to change the style of tables in
 other files, by passing it to the @option{--table-look} option on the
 @code{convert} command.
index 55f47b574accd16120a3a5f4d1b6459ace3e7806..5fd913789c0051306d12a9f62945a08a6be9fee0 100644 (file)
@@ -111,6 +111,9 @@ extracts the TableLook from that table, and writes it to
 \fIdestination\fR (typically with an \fB.stt\fR extension) in the
 TableLook XML format.
 .PP
+Use \fB\-\fR for \fIsource\fR to instead write the default look to
+\fIdestination\fR.
+.PP
 The user may use the TableLook file to change the style of tables in
 other files, by passing it to the \fB\-\-table\-look\fR option on the
 \fBconvert\fR command.
index f9f149bd6360299567a559d99b26b613a6860cdc..59c915dd443935e6eda189dfd6b6c12f76460adc 100644 (file)
@@ -346,20 +346,30 @@ get_first_table (const struct spv_reader *spv)
 static void
 run_get_table_look (int argc UNUSED, char **argv)
 {
-  struct spv_reader *spv;
-  char *err = spv_open (argv[1], &spv);
-  if (err)
-    error (1, 0, "%s", err);
+  struct pivot_table_look *look;
+  if (strcmp (argv[1], "-"))
+    {
+      struct spv_reader *spv;
+      char *err = spv_open (argv[1], &spv);
+      if (err)
+        error (1, 0, "%s", err);
 
-  const struct pivot_table *table = get_first_table (spv);
-  if (!table)
-    error (1, 0, "%s: no tables found", argv[1]);
+      const struct pivot_table *table = get_first_table (spv);
+      if (!table)
+        error (1, 0, "%s: no tables found", argv[1]);
 
-  err = spv_table_look_write (argv[2], pivot_table_get_look (table));
+      look = pivot_table_look_ref (pivot_table_get_look (table));
+
+      spv_close (spv);
+    }
+  else
+    look = pivot_table_look_ref (pivot_table_look_builtin_default ());
+
+  char *err = spv_table_look_write (argv[2], look);
   if (err)
     error (1, 0, "%s", err);
 
-  spv_close (spv);
+  pivot_table_look_unref (look);
 }
 
 static void