+ * comment_leader: Specifies the sequence which starts comments that run
+ * up to the end of the current text line. Can be empty to disable
+ * comment support. Defaults to semicolon.
+ *
+ * Typical examples of using these options:
+ * - ... -I csv:column_formats=*l ...
+ * All columns are single-bit logic data. Identical to the previous
+ * multi-column mode (the default when no options were given at all).
+ * - ... -I csv:column_formats=3-,*l ...
+ * Ignore the first three columns, get single-bit logic data from all
+ * remaining lines (multi-column mode with first-column above 1).
+ * - ... -I csv:column_formats=3-,4l,x8 ...
+ * Ignore the first three columns, get single-bit logic data from the
+ * next four columns, then eight-bit data in hex format from the next
+ * column. More columns may follow in the input text but won't get
+ * processed. (Mix of previous multi-column as well as single-column
+ * modes.)
+ * - ... -I csv:column_formats=4x8,b16,5l ...
+ * Get eight-bit data in hex format from the first four columns, then
+ * sixteen-bit data in binary format, then five times single-bit data.
+ * - ... -I csv:single_column=2:single_format=bin:logic_channels=8 ...
+ * Get eight logic bits in binary format from column 2. (Simple
+ * single-column mode, corresponds to the "-,b8" format.)
+ * - ... -I csv:first_column=6:logic_channels=4 ...
+ * Get four single-bit logic channels from columns 6 to 9 respectively.
+ * (Simple multi-column mode, corresponds to the "5-,4b" format.)
+ * - ... -I csv:start_line=20:header=yes:...
+ * Skip the first 19 text lines. Use line 20 to derive channel names.
+ * Data starts at line 21.
+ */
+
+/*
+ * TODO
+ *
+ * - Determine how the text line handling can get improved, regarding
+ * all of robustness and flexibility and correctness.
+ * - The current implementation splits on "any run of CR and LF". Which
+ * translates to: Line numbers are wrong in the presence of empty
+ * lines in the input stream. See below for an (expensive) fix.
+ * - Dropping support for CR style end-of-line markers could improve
+ * the situation a lot. Code could search for and split on LF, and
+ * trim optional trailing CR. This would result in proper support
+ * for CRLF (Windows) as well as LF (Unix), and allow for correct
+ * line number counts.
+ * - When support for CR-only line termination cannot get dropped,
+ * then the current implementation is inappropriate. Currently the
+ * input stream is scanned for the first occurance of either of the
+ * supported termination styles (which is good). For the remaining
+ * session a consistent encoding of the text lines is assumed (which
+ * is acceptable).
+ * - When line numbers need to be correct and reliable, _and_ the full
+ * set of previously supported line termination sequences are required,
+ * and potentially more are to get added for improved compatibility
+ * with more platforms or generators, then the current approach of
+ * splitting on runs of termination characters needs to get replaced,
+ * by the more expensive approach to scan for and count the initially
+ * determined termination sequence.
+ *
+ * - Add support for analog input data? (optional)
+ * - Needs a syntax first for user specs which channels (columns) are
+ * logic and which are analog. May need heuristics(?) to guess from
+ * input data in the absence of user provided specs.