summaryrefslogtreecommitdiff
path: root/doc/invoke-columns.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/invoke-columns.texi')
-rw-r--r--doc/invoke-columns.texi418
1 files changed, 418 insertions, 0 deletions
diff --git a/doc/invoke-columns.texi b/doc/invoke-columns.texi
new file mode 100644
index 0000000..1166465
--- /dev/null
+++ b/doc/invoke-columns.texi
@@ -0,0 +1,418 @@
+@node columns Invocation
+@section Invoking columns
+@pindex columns
+@cindex Columnize Input Text
+@ignore
+# -*- buffer-read-only: t -*- vi: set ro:
+#
+# DO NOT EDIT THIS FILE (invoke-columns.texi)
+#
+# It has been AutoGen-ed August 11, 2012 at 09:45:26 AM by AutoGen 5.16.2
+# From the definitions ./opts.def
+# and the template file agtexi-cmd.tpl
+@end ignore
+This program was designed for the purpose of generating compact,
+columnized tables. It will read a list of text items from standard
+in or a specified input file and produce a columnized listing of
+all the non-blank lines. Leading white space on each line is
+preserved, but trailing white space is stripped. Methods of
+applying per-entry and per-line embellishments are provided.
+See the formatting and separation arguments below.
+
+This program is used by AutoGen to help clean up and organize
+its output.
+
+See @file{autogen/agen5/fsm.tpl} and the generated output
+@file{pseudo-fsm.h}.
+
+This function was not implemented as an expression function because
+either it would have to be many expression functions, or a provision
+would have to be added to provide options to expression functions.
+Maybe not a bad idea, but it is not being implemented at the moment.
+
+A side benefit is that you can use it outside of @code{autogen} to
+columnize input, a la the @code{ls} command.
+
+This section was generated by @strong{AutoGen},
+using the @code{agtexi-cmd} template and the option descriptions for the @code{columns} program.
+This software is released under the GNU General Public License, version 3 or later.
+
+@menu
+* columns usage:: columns help/usage (@option{--help})
+* columns dimensions:: dimensions options
+* columns treatment:: treatment options
+* columns ordering:: ordering options
+* columns input-text:: input-text options
+* columns config:: presetting/configuring columns
+* columns exit status:: exit status
+* columns See Also:: See Also
+@end menu
+
+@node columns usage
+@subsection columns help/usage (@option{--help})
+@cindex columns help
+
+This is the automatically generated usage text for columns.
+
+The text printed is the same whether selected with the @code{help} option
+(@option{--help}) or the @code{more-help} option (@option{--more-help}). @code{more-help} will print
+the usage text by passing it through a pager program.
+@code{more-help} is disabled on platforms without a working
+@code{fork(2)} function. The @code{PAGER} environment variable is
+used to select the program, defaulting to @file{more}. Both will exit
+with a status code of 0.
+
+@exampleindent 0
+@example
+columns (GNU AutoGen) - Columnize Input Text - Ver. 1.2
+USAGE: columns [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
+
+Specify the output dimensions:
+
+ Flg Arg Option-Name Description
+ -W Num width Maximum Line Width
+ - It must be in the range:
+ 16 to 4095
+ -c Num columns Desired number of columns
+ - It must be in the range:
+ 1 to 2048
+ -w Num col-width Set width of each column
+ - It must be in the range:
+ 1 to 2048
+ Num tab-width tab width
+
+Specify how to lay out the text:
+
+ Flg Arg Option-Name Description
+ Num spread maximum spread added to column width
+ - It must be in the range:
+ 1 to 1024
+ no fill Fill lines with input
+ - prohibits these options:
+ spread
+ col-width
+ by-columns
+ -I Str indent Line prefix or indentation
+ Str first-indent First line prefix
+ - requires these options:
+ indent
+ -f Str format Formatting string for each input
+ -S Str separation Separation string - follows all but last
+ Str line-separation string at end of all lines but last
+ Str ending string at end of last line
+
+Specify the ordering of the entries:
+
+ Flg Arg Option-Name Description
+ no by-columns Print entries in column order
+ -s opt sort Sort input text
+
+Redirecting stdin to an alternate file:
+
+ Flg Arg Option-Name Description
+ -i Str input Input file (if not stdin)
+
+version, usage and configuration options:
+
+ Flg Arg Option-Name Description
+ -v opt version Output version information and exit
+ -? no help Display extended usage information and exit
+ -! no more-help Extended usage information passed thru pager
+ -> opt save-opts Save the option state to a config file
+ -< Str load-opts Load options from a config file
+ - disabled as --no-load-opts
+ - may appear multiple times
+
+Options are specified by doubled hyphens and their name or by a single
+hyphen and the flag character.
+
+The following option preset mechanisms are supported:
+ - reading file ./.columnsrc
+ - reading file $HOME/.columnsrc
+ - examining environment variables named COLUMNS_*
+Packaged by Bruce (2012-08-11)
+Report columns bugs to bkorb@@gnu.org
+@end example
+@exampleindent 4
+
+@node columns dimensions
+@subsection dimensions options
+Specify the output dimensions.
+@subsubheading width option (-W).
+@anchor{columns width}
+@cindex columns-width
+
+This is the ``maximum line width'' option.
+This option takes an argument number @file{num}.
+This option specifies the full width of the output line,
+including any start-of-line indentation. The output will fill
+each line as completely as possible, unless the column width has
+been explicitly specified. If the maximum width is less than
+the length of the widest input, you will get a single column
+of output.
+@subsubheading columns option (-c).
+@anchor{columns columns}
+@cindex columns-columns
+
+This is the ``desired number of columns'' option.
+This option takes an argument number @file{count}.
+Use this option to specify exactly how many columns to produce.
+If that many columns will not fit within @var{line_width}, then
+the count will be reduced to the number that fit.
+@subsubheading col-width option (-w).
+@anchor{columns col-width}
+@cindex columns-col-width
+
+This is the ``set width of each column'' option.
+This option takes an argument number @file{num}.
+Use this option to specify exactly how many characters are to be
+allocated for each column. If it is narrower than the widest entry,
+it will be over-ridden with the required width.
+@subsubheading tab-width option.
+@anchor{columns tab-width}
+@cindex columns-tab-width
+
+This is the ``tab width'' option.
+This option takes an argument number @file{num}.
+If an indentation string contains tabs, then this value is used to
+compute the ending column of the prefix string.
+@node columns treatment
+@subsection treatment options
+Specify how to lay out the text.
+@subsubheading spread option.
+@anchor{columns spread}
+@cindex columns-spread
+
+This is the ``maximum spread added to column width'' option.
+This option takes an argument number @file{num}.
+Use this option to specify exactly how many characters may be
+added to each column. It allows you to prevent columns from
+becoming too far apart. Without this option, @file{columns}
+will attempt to widen columns to fill the full width.
+@subsubheading fill option.
+@anchor{columns fill}
+@cindex columns-fill
+
+This is the ``fill lines with input'' option.
+
+@noindent
+This option has some usage constraints. It:
+@itemize @bullet
+@item
+must not appear in combination with any of the following options:
+spread, col_width, by_columns.
+@end itemize
+
+Instead of columnizing the input text, fill the output lines
+with the input lines. Blank lines on input will cause a
+blank line in the output, unless the output is sorted.
+With sorted output, blank lines are ignored.
+@subsubheading indent option (-I).
+@anchor{columns indent}
+@cindex columns-indent
+
+This is the ``line prefix or indentation'' option.
+This option takes an argument string @file{l-pfx}.
+If a number, then this many spaces will be inserted at the start of
+every line. Otherwise, it is a line prefix that will be inserted
+at the start of every line.
+@subsubheading first-indent option.
+@anchor{columns first-indent}
+@cindex columns-first-indent
+
+This is the ``first line prefix'' option.
+This option takes an argument string @file{l-pfx}.
+
+@noindent
+This option has some usage constraints. It:
+@itemize @bullet
+@item
+must appear in combination with the following options:
+indent.
+@end itemize
+
+If a number, then this many spaces will be inserted at the start of
+the first line. Otherwise, it is a line prefix that will be inserted
+at the start of that line. If its length exceeds "indent", then it
+will be emitted on a line by itself, suffixed by any line separation
+string. For example:
+
+@example
+$ columns --first='#define TABLE' -c 2 -I4 --line=' \' <<_EOF_
+one
+two
+three
+four
+_EOF_
+#define TABLE \
+ one two \
+ three four
+@end example
+@subsubheading format option (-f).
+@anchor{columns format}
+@cindex columns-format
+
+This is the ``formatting string for each input'' option.
+This option takes an argument string @file{fmt-str}.
+If you need to reformat each input text, the argument to this
+option is interpreted as an @code{sprintf(3)} format that is used
+to produce each output entry.
+@subsubheading separation option (-S).
+@anchor{columns separation}
+@cindex columns-separation
+
+This is the ``separation string - follows all but last'' option.
+This option takes an argument string @file{sep-str}.
+Use this option if, for example, you wish a comma to appear after
+each entry except the last.
+@subsubheading line-separation option.
+@anchor{columns line-separation}
+@cindex columns-line-separation
+
+This is the ``string at end of all lines but last'' option.
+This option takes an argument string @file{sep-str}.
+Use this option if, for example, you wish a backslash to appear at
+the end of every line, except the last.
+@subsubheading ending option.
+@anchor{columns ending}
+@cindex columns-ending
+
+This is the ``string at end of last line'' option.
+This option takes an argument string @file{end-str}.
+This option puts the specified string at the end of the output.
+@node columns ordering
+@subsection ordering options
+Specify the ordering of the entries.
+@subsubheading by-columns option.
+@anchor{columns by-columns}
+@cindex columns-by-columns
+
+This is the ``print entries in column order'' option.
+Normally, the entries are printed out in order by rows and then columns.
+This option will cause the entries to be ordered within columns.
+The final column, instead of the final row, may be shorter than the
+others.
+@subsubheading sort option (-s).
+@anchor{columns sort}
+@cindex columns-sort
+
+This is the ``sort input text'' option.
+This option takes an optional argument string @file{key-pat}.
+Causes the input text to be sorted. If an argument is supplied,
+it is presumed to be a pattern and the sort is based upon the
+matched text. If the pattern starts with or consists of
+an asterisk (@code{*}), then the sort is case insensitive.
+@node columns input-text
+@subsection input-text options
+Redirecting stdin to an alternate file.
+@subsubheading input option (-i).
+@anchor{columns input}
+@cindex columns-input
+
+This is the ``input file (if not stdin)'' option.
+This option takes an argument string @file{file}.
+This program normally runs as a @code{filter}, reading from standard
+input, columnizing and writing to standard out. This option redirects
+input to a file.
+
+
+@node columns config
+@subsection presetting/configuring columns
+
+Any option that is not marked as @i{not presettable} may be preset by
+loading values from configuration ("rc" or "ini") files, and values from environment variables named @code{COLUMNS} and @code{COLUMNS_<OPTION_NAME>}. @code{<OPTION_NAME>} must be one of
+the options listed above in upper case and segmented with underscores.
+The @code{COLUMNS} variable will be tokenized and parsed like
+the command line. The remaining variables are tested for existence and their
+values are treated like option arguments.
+
+
+@noindent
+@code{libopts} will search in 2 places for configuration files:
+@itemize @bullet
+@item
+$PWD
+@item
+$HOME
+@end itemize
+The environment variables @code{PWD}, and @code{HOME}
+are expanded and replaced when @file{columns} runs.
+For any of these that are plain files, they are simply processed.
+For any that are directories, then a file named @file{.columnsrc} is searched for
+within that directory and processed.
+
+
+Configuration files may be in a wide variety of formats.
+The basic format is an option name followed by a value (argument) on the
+same line. Values may be separated from the option name with a colon,
+equal sign or simply white space. Values may be continued across multiple
+lines by escaping the newline with a backslash.
+
+Multiple programs may also share the same initialization file.
+Common options are collected at the top, followed by program specific
+segments. The segments are separated by lines like:
+@example
+[COLUMNS]
+@end example
+@noindent
+or by
+@example
+<?program columns>
+@end example
+@noindent
+Do not mix these styles within one configuration file.
+
+Compound values and carefully constructed string values may also be
+specified using XML syntax:
+@example
+<option-name>
+ <sub-opt>...&lt;...&gt;...</sub-opt>
+</option-name>
+@end example
+@noindent
+yielding an @code{option-name.sub-opt} string value of
+@example
+"...<...>..."
+@end example
+@code{AutoOpts} does not track suboptions. You simply note that it is a
+hierarchicly valued option. @code{AutoOpts} does provide a means for searching
+the associated name/value pair list (see: optionFindValue).
+
+The command line options relating to configuration and/or usage help are:
+
+@subsubheading version (-v)
+
+Print the program version to standard out, optionally with licensing
+information, then exit 0. The optional argument specifies how much licensing
+detail to provide. The default is to print just the version. The licensing infomation may be selected with an option argument. Only the
+first letter of the argument is examined:
+
+@table @samp
+@item version
+Only print the version. This is the default.
+@item copyright
+Name the copyright usage licensing terms.
+@item verbose
+Print the full copyright usage licensing terms.
+@end table
+
+@node columns exit status
+@subsection columns exit status
+
+One of the following exit values will be returned:
+@table @samp
+@item 0 (EXIT_SUCCESS)
+Successful program execution.
+@item 1 (EXIT_FAILURE)
+The operation failed or the command syntax was not valid.
+@item 66 (EX_NOINPUT)
+A specified configuration file could not be loaded.
+@item 70 (EX_SOFTWARE)
+libopts had an internal operational error. Please report
+it to autogen-users@@lists.sourceforge.net. Thank you.
+@end table
+@node columns See Also
+@subsection columns See Also
+This program is documented more fully in the Columns section
+of the Add-On chapter in the @code{AutoGen} Info system documentation.
+