Documentation - FSS Extended List Write
Author: Kevin Day
Description: FSS Extended List Write program documentation.
Keywords: Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS Extended List Write, Open-Source

# FSS Extended List Write Documentation

The fss_extended_list_write program is a tool for generating strings that follow the `FSS-0003 (Extended List)` standard.

This tool is designed to be scriptable and accepts piped input using a special format.

This tool shares parameters between with the other FSS Read and Write programs to make scripting consistent across the FSS Read and Write programs even if any given program neither needs nor uses the parameter.

## Standard Parameters

Short | Long | Description
--- | --- | ---
`-h` | `--help` | Print the help message.
`+C` | `++copyright` | Print the copyright.
`+d` | `++dark` | Output using colors that show up better on dark backgrounds.
`+l` | `++light` | Output using colors that show up better on light backgrounds.
`+n` | `++no_color` | Do not print using color.
`+Q` | `++quiet` | Decrease verbosity, silencing most output.
`+E` | `++error` | Decrease verbosity, using only error output.
`+N` | `++normal` | Set verbosity to normal.
`+V` | `++verbose` | Increase verbosity beyond normal output.
`+D` | `++debug` | Enable debugging, significantly increasing verbosity beyond normal output.
`+v` | `++version` | Print only the version number.

The `+Q/++quiet` parameter silences all output that is not the intent and purpose of the program.
For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code.
The `+Q/++quiet` will not suppress this output.
The new line printed at the end of the program, is however, not printed.
The `+Q/++quiet` is ideal for using in scripting to help guarantee more consistent and controlled output.

The `+N/++no_color` simplifies the output to avoid the special color character codes.
The special color character codes tend to take up a lot of extra space and may slow down printing performance.

## Program Parameters

Short | Long | Description
--- | --- | ---
`-c` | `--content` | The Content to write.
`-E` | `--content_end` | Write the end of Content characters.
`-N` | `--content_next` | Write the next Content characters (separates multi-Content apart).
`-d` | `--double` | Use double quotes (default).
`-f` | `--file` | Specify a file to send data to.
`-g` | `--grave` | Use graves to quote.
`-I` | `--ignore` | Ignore a given range within a Content.
`-o` | `--object` | The Object to write.
`-O` | `--object_open` | Write the open Object characters.
`-p` | `--partial` | Do not file end of Object/Content character.
`-P` | `--prepend` | Prepend the given white space characters to the start of each multi-line Content.
`-s` | `--single` | Use single quotes.
`-T` | `--trim` | Trim Object names.

This special piped input format uses the ASCII Backspace character '`\b`' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).

The Backspace character '`\b`' (U+0008) is used to designate the start of a Content.

The Form Feed character '`\f`' (U+000C) is used to designate the end of the last Content.

The Vertical Line character '`\v`' (U+000B) is used to ignore a Content range, which does nothing in this program.

For the pipe, an Object is terminated by either a Backspace character '`\b`' (U+0008) or a Form Feed character '`\f`' (U+000C).
The end of the pipe represents the end of any Object or Content.

The `FSS-0003 (Extended List)` specification does not support quoted names, therefore the parameters `--single` and `--double` do nothing.

This program uses the parameter `--ignore`, which designates to not escape any valid nested Object or Content within some Content.
This parameter requires two values. This parameter is not used for ignoring anything from the input pipe. This parameter must be specified after a `--content` parameter and this applies only to the Content represented by that specific `--content` parameter.