From 9422379f957ea773bf085ae38a7fde94e7945b1f Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Wed, 28 Aug 2013 00:25:39 +0200 Subject: issue 7 and 8, info manual MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- info/argparser.texinfo | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) (limited to 'info') diff --git a/info/argparser.texinfo b/info/argparser.texinfo index 5c04b18..8f41eb5 100644 --- a/info/argparser.texinfo +++ b/info/argparser.texinfo @@ -57,6 +57,7 @@ Texts. A copy of the license is included in the section entitled * Bash version:: Using the Bash version. * Trigger functions:: Trigger events at the time an option is parsed. * Optional arguments:: Using optional arguments. +* Abbreviations:: Using option abbreviations. * Colours in help message:: Configuring colour use in help message * GNU Free Documentation License:: Copying and sharing this manual. @end menu @@ -224,7 +225,9 @@ free its resources using function @code{args_dispose}. @code{args_init} corresponds the the @code{ArgParser} constructor in the Python version, but all parameters are manditory, additionally there as an argument that should be set to be true if you want to use -long options with one dash or plus but not short options. +long options with one dash or plus but not short options, as well as +a seventh argument that you should set to @code{null} until you +have read @ref{Abbreviations}. @code{args_arguments}, @code{args_arguments_count}, @code{args_unrecognised_count}, @code{args_message} and @code{args_files} @@ -369,6 +372,44 @@ tested for using without being sticky. +@node Abbreviations +@chapter Abbreviations + +Abbreviations is a functionallity that lets the user just +write the beginning of an option and not the complete name. +Conside you have the options @option{--help} and +@option{--help-all}. If the user types @option{--help-} we +know that he probably meant @option{--help-all}, but if +less then @option{--help} is written so do not know. + +The author of the software that uses the library can +chose whether to enable this, disable this or something +completely different with it, for example typo correction. + +The constructor in the Python version and the initialisers +in the C version and the Bash version are blessed with +an additionall parameter. A function pointer that is used +to get the correction of an unrecognised option. If this +is left out — not possible in the C version — or is is +@code{null} (C), @code{None} (Python) or empty (Bash) this +feature is disabled. The function should take one string, +the unrecognised option, an array (a list in Python) of +strings, all recognised options, and return a string, the +selection options (the expansion of the unrecognised option). +If exactly one option cannot be selected @code{null} (C, Java) +or @code{None} (Python) should be returned and in the Bash +version the exit value for function should not equal zero. +In the Java version you override the class's function +@code{abbreviations}. + +For the standard behaviour of abbreviation expansion, use +the function @code{args_standard_abbreviations} (C and Bash), +@code{ArgParser.standard_abbreviations} (Python) or +@code{ArgParser.standardAbbreviations} (Java). +In the Java version you can do this by simply using +@code{ArgParser.Abbreviations} instead of @code{ArgParser}. + + @node Colours in help message -- cgit v1.2.3-70-g09d2