csv: Add ability to suppress table captions.
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 6 Nov 2010 04:11:24 +0000 (21:11 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 6 Nov 2010 04:11:24 +0000 (21:11 -0700)
Requested by Björn Manke <bjoernmanke@gmx.net>.

doc/invoking.texi
src/output/csv.c

index 2080a3e2259b3202e54280c05537f3b848db57eb..82d8a5ed4dfa075b41d79127839369decfc9efad 100644 (file)
@@ -379,8 +379,11 @@ Specify the output format.  This is only necessary if the file name
 given on @option{-o} does not end in @file{.csv}.
 
 @item -O separator=@var{field-separator}
-Sets the character used to separate fields.  The default is a comma
+Sets the character used to separate fields.  Default: a comma
 (@samp{,}).
+
+@item -O captions=@var{boolean}
+Whether table captions should be printed.  Default: @code{on}.
 @end table
 
 The CSV format used is an extension to that specified in RFC 4180:
@@ -390,8 +393,9 @@ The CSV format used is an extension to that specified in RFC 4180:
 Each table row is output on a separate line, and each column is output
 as a field.  The contents of a cell that spans multiple rows or
 columns is output only for the top-left row and column; the rest are
-output as empty fields.  When a table has a caption, it is output just
-above the table as a single field prefixed by @samp{Table:}.
+output as empty fields.  When a table has a caption and captions are
+enabled, the caption is output just above the table as a single field
+prefixed by @samp{Table:}.
 
 @item Text
 Text in output is printed as a field on a line by itself.  The TITLE
index 3fbf53d963448b041d403c81f2e4cd13fe6ad227..d168fd9534140230f2e4fb9c15646aa779c0a7e2 100644 (file)
@@ -45,6 +45,8 @@ struct csv_driver
 
     char *separator;            /* Field separator (usually comma or tab). */
     char *quote_set;            /* Characters that force quoting. */
+    bool captions;              /* Print table captions? */
+
     char *file_name;            /* Output file name. */
     char *command_name;         /* Current command. */
     FILE *file;                 /* Output file. */
@@ -80,6 +82,7 @@ csv_create (const char *file_name, enum settings_output_devices device_type,
 
   csv->separator = parse_string (opt (d, o, "separator", ","));
   csv->quote_set = xasprintf ("\"\n\r\t%s", csv->separator);
+  csv->captions = parse_boolean (opt (d, o, "captions", "true"));
   csv->file_name = xstrdup (file_name);
   csv->file = fn_open (csv->file_name, "w");
   csv->n_items = 0;
@@ -181,7 +184,7 @@ csv_submit (struct output_driver *driver,
 
       csv_put_separator (csv);
 
-      if (caption != NULL)
+      if (csv->captions && caption != NULL)
         {
           csv_output_field_format (csv, "Table: %s", caption);
           putc ('\n', csv->file);