cmdr
Check-in [cabf535e47]
Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:officers/private * Renamed 'ehandler' to intercept. Documented the change. Kept the old name around, deprecated it. * Renamed 'shandler' to custom-setup, and documented it. Extended the implementation to support a list of customizations, instead of a single. * Fixed handling of *prefix* for --help. Code wrongly extended the local copy of the block, instead of the root copy. Updated docs, change information. Regenerated the embedded docs.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: cabf535e4773c880bda8839204701e61e2adbac6
User & Date: aku 2016-06-29 07:54:42
Original Comment: officers/private * Renamed 'ehandler' to intercept. Documented the change. Kept the old name around, deprecated it. * Renamed 'shandler' to custom-setup, and documented it. Extended the implementation to support a list of cusomizations, instead of a single. * Fixed handling of *prefix* for --help. Code wrongly extended the local copy of the block, instead of the root copy. Updated docs, change information. Regenerated the embedded docs.
Context
2016-06-30
06:07
Bumped primary version to 1.2. Regenerated docs. check-in: 39c3c491d0 user: aku tags: trunk, release, v1.2, cmdr-1-2, release-1-2
2016-06-29
07:54
officers/private * Renamed 'ehandler' to intercept. Documented the change. Kept the old name around, deprecated it. * Renamed 'shandler' to custom-setup, and documented it. Extended the implementation to support a list of customizations, instead of a single. * Fixed handling of *prefix* for --help. Code wrongly extended the local copy of the block, instead of the root copy. Updated docs, change information. Regenerated the embedded docs. check-in: cabf535e47 user: aku tags: trunk
07:09
cmdr::color - Add forgotten docs about new symbolic name. check-in: d1c012590f user: aku tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to core/officer.tcl.

    75     75       constructor {super name actions} {
    76     76   	debug.cmdr/officer {[self] $super $name}
    77     77   	next
    78     78   
    79     79   	my super: $super
    80     80   	my name:  $name
    81     81   
    82         -	set myactions   $actions ; # Action spec for future initialization
    83         -	set myinit      no       ; # Dispatch map will be initialized lazily
    84         -	set mymap       {}       ; # Action map starts knowing nothing
    85         -	set mypmap      {}       ; # Ditto for the map of action abbreviations.
    86         -	set mycommands  {}       ; # Ditto
    87         -	set myccommands {}       ; # Ditto, derived cache, see method CCommands.
    88         -	set mychildren  {}       ; # List of created subordinates.
    89         -	set myhandler   {}       ; # Handler around cmd parsing and execution.
    90         -	set myshandler  {}       ; # Setup handler, run after regular object
    91         -	#                          # initialization from its definition.
           82  +	set myactions     $actions ; # Action spec for future initialization
           83  +	set myinit        no       ; # Dispatch map will be initialized lazily
           84  +	set mymap         {}       ; # Action map starts knowing nothing
           85  +	set mypmap        {}       ; # Ditto for the map of action abbreviations.
           86  +	set mycommands    {}       ; # Ditto
           87  +	set myccommands   {}       ; # Ditto, derived cache, see method CCommands.
           88  +	set mychildren    {}       ; # List of created subordinates.
           89  +	set myintercept   {}       ; # Handler around cmd parsing and execution.
           90  +	set mycustomsetup {}       ; # List of setup handlers, run after regular object
           91  +	#                            # initialization from its definition.
    92     92   	set myconfig    {}
    93     93   	return
    94     94       }
    95     95   
    96     96       # # ## ### ##### ######## #############
    97     97   
    98         -    method ehandler {cmd} {
           98  +    method intercept {cmd} {
           99  +	debug.cmdr/officer {[self] $cmd}
          100  +	set myintercept $cmd
          101  +	return
          102  +    }
          103  +
          104  +    method custom-setup {cmd} {
    99    105   	debug.cmdr/officer {[self] $cmd}
   100         -	set myhandler $cmd
          106  +	lappend mycustomsetup $cmd
   101    107   	return
   102    108       }
   103    109   
   104         -    method shandler {cmd} {
   105         -	debug.cmdr/officer {[self] $cmd}
   106         -	set myshandler $cmd
   107         -	return
   108         -    }
          110  +    forward ehandler my intercept
          111  +    forward shandler my custom-setup
   109    112   
   110    113       # # ## ### ##### ######## #############
   111    114       ## Public API. (Introspection, mostly).
   112    115       ## - Determine set of known actions.
   113    116       ## - Determine default action.
   114    117       ## - Determine handler for an action.
   115    118   
................................................................................
   250    253   		    No-op if not in a shell.
   251    254   		}
   252    255   	    } [mymethod shell-exit]
   253    256   	}
   254    257   
   255    258   	# Invoke the user-specified hook for extending a newly-made
   256    259   	# officer, if any.
   257         -	debug.cmdr/officer {[debug caller] | call shandler}
   258         -	if {[llength $myshandler]} {
   259         -	    {*}$myshandler [self]
          260  +	debug.cmdr/officer {[debug caller] | call custom-setup}
          261  +	foreach cmd $mycustomsetup {
          262  +	    {*}$cmd [self]
   260    263   	}
   261    264   
   262    265   	debug.cmdr/officer {[debug caller] | /done}
   263    266   	return
   264    267       }
   265    268   
   266    269       method learn {script} {
................................................................................
   267    270   	debug.cmdr/officer {[self] learn}
   268    271   	# Make the DSL commands directly available. Note that
   269    272   	# "description:" and "common" are superclass methods, and
   270    273   	# renamed to their DSL counterparts. The others are unexported
   271    274   	# instance methods of this class.
   272    275   
   273    276   	link \
   274         -	    {ehandler    ehandler} \
   275         -	    {shandler    shandler} \
          277  +	    {intercept   intercept} \
          278  +	    {ehandler    intercept} \
          279  +	    \
          280  +	    {custom-setup custom-setup} \
          281  +	    {shandler     custom-setup} \
          282  +	    \
   276    283   	    {private     Private} \
   277    284   	    {officer     Officer} \
   278    285   	    {default     Default} \
   279    286   	    {alias       Alias} \
   280    287   	    {description description:} \
   281    288   	    undocumented \
   282    289   	    {common      set} \
................................................................................
   373    380   	# Note: By placing the subordinate objects into the officer's
   374    381   	# namespace they will be automatically destroyed with the
   375    382   	# officer itself. No special code for cleanup required.
   376    383   
   377    384   	set handler [self namespace]::${what}_$name
   378    385   	cmdr::$what create $handler [self] $name {*}$args
   379    386   
   380         -	# Propagate error and setup handlers.
   381         -	$handler ehandler $myhandler
   382         -	$handler shandler $myshandler
          387  +	# Propagate error (interceptor) and custom setup handlers.
          388  +	$handler intercept $myintercept
          389  +	foreach cmd  $mycustomsetup {
          390  +	    $handler custom-setup $cmd
          391  +	}
   383    392   
   384    393   	lappend mychildren $handler
   385    394   
   386    395   	my Def $name $handler
   387    396   	return $handler
   388    397       }
   389    398   
................................................................................
   501    510   	    # Split into command and arguments
   502    511   	    set remainder [lassign $args cmd]
   503    512   
   504    513   	    # Delegate to the handler for a known command.
   505    514   	    if {[my Known $cmd]} {
   506    515   		debug.cmdr/officer {[debug caller] | /known $cmd}
   507    516   
   508         -		my lappend *prefix* $cmd
          517  +		[my root] lappend *prefix* $cmd
          518  +		debug.cmdr/officer {[debug caller] | /prefix [my root] ([my get *prefix*])}
          519  +
   509    520   		[my lookup $cmd] do {*}$remainder
   510         -
   511    521   		debug.cmdr/officer {[debug caller] | /done known}
   512    522   		return
   513    523   	    }
   514    524   
   515    525   	    # The command word is not known. Delegate the full command to
   516    526   	    # the default, if we have any. Otherwise fail.
   517    527   
................................................................................
   771    781   
   772    782   	return $help
   773    783       }
   774    784   
   775    785       # # ## ### ##### ######## #############
   776    786   
   777    787       variable myinit myactions mymap mycommands myccommands mychildren \
   778         -	myreplexit myhandler mypmap myshandler myconfig
          788  +	myreplexit myintercept mypmap mycustomsetup myconfig
   779    789   
   780    790       # # ## ### ##### ######## #############
   781    791   }
   782    792   
   783    793   # # ## ### ##### ######## ############# #####################
   784    794   ## Ready
   785    795   package provide cmdr::officer 1.4.1

Changes to core/private.tcl.

    60     60   
    61     61   	my super: $super
    62     62   	my name:  $name
    63     63   
    64     64   	set myarguments $arguments
    65     65   	set mycmd       $cmdprefix
    66     66   	set myinit      0
    67         -	set myhandler   {}
           67  +	set myintercept {}
    68     68   	return
    69     69       }
    70     70   
    71     71       # # ## ### ##### ######## #############
    72     72   
    73     73       method children {} {
    74     74   	debug.cmdr/private {}
................................................................................
    89     89   	return -code error \
    90     90   	    -errorcode [list CMDR ACTION BAD $word] \
    91     91   	    "The command \"$prefix\" has no sub-commands, unexpected word \"$word\""
    92     92       }
    93     93   
    94     94       # # ## ### ##### ######## #############
    95     95   
    96         -    method ehandler {cmd} {
           96  +    method intercept {cmd} {
           97  +	debug.cmdr/private {}
           98  +	set myintercept $cmd
           99  +	return
          100  +    }
          101  +
          102  +    method custom-setup {cmd} {
    97    103   	debug.cmdr/private {}
    98         -	set myhandler $cmd
          104  +	# Privates have no hook/handler for custom setup.
          105  +	# Ignore the inherited definition.
    99    106   	return
   100    107       }
   101    108   
   102         -    method shandler {cmd} {
   103         -	debug.cmdr/private {}
   104         -	# Privates have no setup handler/hook.
   105         -	# Ignoring the inherited definition.
   106         -	return
   107         -    }
          109  +    forward ehandler my intercept
          110  +    forward shandler my custom-setup
   108    111   
   109    112       # # ## ### ##### ######## #############
   110    113       ## Internal. Argument processing. Defered until required.
   111    114       ## Core setup code runs only once.
   112    115   
   113    116       method Setup {} {
   114    117   	# Process myarguments only once.
................................................................................
   135    138   
   136    139       method do {args} {
   137    140   	debug.cmdr/private {}
   138    141   	my Setup
   139    142   
   140    143   	my history-add [my FullCmd $args]
   141    144   
   142         -	if {[llength $myhandler]} {
          145  +	if {[llength $myintercept]} {
   143    146   	    # The handler is expected to have a try/finally construct
   144         -	    # which captures all of interest.
   145         -	    {*}$myhandler {
          147  +	    # which captures everything of interest to it.
          148  +	    {*}$myintercept {
   146    149   		my Run $args
   147    150   	    }
   148    151   	} else {
   149    152   	    my Run $args
   150    153   	}
   151    154   	debug.cmdr/private {/done}
   152    155       }
................................................................................
   207    210   	debug.cmdr/private {}
   208    211   	my Setup
   209    212   	config $m {*}$args
   210    213       }
   211    214   
   212    215       # # ## ### ##### ######## #############
   213    216   
   214         -    variable myarguments mycmd myinit myconfig myhandler
          217  +    variable myarguments mycmd myinit myconfig myintercept
   215    218   
   216    219       # # ## ### ##### ######## #############
   217    220   }
   218    221   
   219    222   # # ## ### ##### ######## ############# #####################
   220    223   ## Ready
   221    224   package provide cmdr::private 1.3.1

Changes to doc/cmdr_history.man.

    33     33   [example {
    34     34       history list ?n?  - Show last n history entries. Defaults to all.
    35     35       history clear     - Drop all history entries
    36     36       history limit ?n? - Limit history to 'n' entries (n >= 0). Unlimited for n < 0.
    37     37   }]
    38     38   
    39     39   Under most circumstances the attachment is handled through the
    40         -[cmd shandler] method of officers. See [package cmdr::officer], and
           40  +method [cmd custom-setup] of officers. See [package cmdr::officer], and
    41     41   the [sectref Example] for more information.
    42     42   
    43     43   [comment {- - -- --- ----- -------- -------------}]
    44     44   [call [cmd ::cmdr::history] [method save-to] [arg path]]
    45     45   
    46     46   When invoked this command sets the package-wide history save file used
    47     47   by the commands to the [arg path].
................................................................................
    65     65   [cmd fossil] DVCS.
    66     66   
    67     67   [example {
    68     68   cmdr history initial-limit 20
    69     69   cmdr history save-to       ~/.fx_history
    70     70   
    71     71   cmdr create fx::fx [file tail $::argv0] {
    72         -    shandler ::cmdr::history::attach
           72  +    custom-setup ::cmdr::history::attach
    73     73   
    74     74       [...]
    75     75   }
    76     76   }]
    77     77   
    78     78   [include parts/feedback.inc]
    79     79   [manpage_end]

Changes to doc/cmdr_officer.man.

   143    143   
   144    144   [list_begin arguments]
   145    145   [arg_def string word]
   146    146   The words of the command line to parse and match to parameters.
   147    147   [list_end][comment arguments]
   148    148   
   149    149   [comment {- - -- --- ----- -------- -------------}]
          150  +[call [cmd <officer>] [method intercept] [arg cmd]]
   150    151   [call [cmd <officer>] [method ehandler] [arg cmd]]
          152  +
          153  +[emph Note:] While the form [method ehandler] is still usable, it is
          154  +deprecated and will be removed in a future release.
   151    155   
   152    156   This method specifies a command prefix to wrap around the parsing of
   153    157   the command line for the officer, and the execution of its action.
   154    158   
   155    159   [list_begin arguments]
   156    160   [arg_def cmd-prefix cmd]
   157    161   A command prefix taking a single argument, a script. The command
................................................................................
   158    162   prefix has to execute this script in its caller's context. The script
   159    163   will parse words for the officer,m and perform its action. The command
   160    164   prefix then has the responsbility to perform any custom cleanup action
   161    165   required by the application using the framework to prevent leakage of
   162    166   data between multiple commands executed one after the other (i.e. in
   163    167   an interactive shell run by the framework).
   164    168   [list_end][comment arguments]
          169  +
          170  +[comment {- - -- --- ----- -------- -------------}]
          171  +[call [cmd <officer>] [method custom-setup] [arg cmd]]
          172  +
          173  +This method specifies a command prefix which will be run all the
          174  +regular setup of the officer from its specification is done, to
          175  +perform customizations.
          176  +
          177  +[para] An example of this can be seen in the package
          178  +[package cmdr::history]. It provides a command
          179  +[cmd cmdr::history::attach] to add the history management commands to
          180  +the actor in question, suitable as argument to this method.
          181  +
          182  +[para] When called multiple times, the specified commands
          183  +accumulate. This makes it easy to specify several indepedent
          184  +customizations.
          185  +
          186  +[list_begin arguments]
          187  +[arg_def cmd-prefix cmd]
          188  +A command prefix taking a single argument, the instance command of an
          189  +[package cmd::actor]. The command prefix has full access to this actor
          190  +and can modify it as it sees fit. The common use case will be the
          191  +extension of the actor with additional subordinates.
          192  +[list_end][comment arguments]
   165    193   
   166    194   [comment {- - -- --- ----- -------- -------------}]
   167    195   [call [cmd <officer>] [method exit]]
   168    196   
   169    197   This hook-method for the main shell returns a boolean value indicating
   170    198   whether the main shell was stopped and has to exit ([const true]), or
   171    199   not ([const false]).

Changes to doc/cmdr_private.man.

   101    101   
   102    102   [list_begin arguments]
   103    103   [arg_def string word]
   104    104   The words of the command line to parse and match to parameters.
   105    105   [list_end][comment arguments]
   106    106   
   107    107   [comment {- - -- --- ----- -------- -------------}]
          108  +[call [cmd <private>] [method intercept] [arg cmd]]
   108    109   [call [cmd <private>] [method ehandler] [arg cmd]]
          110  +
          111  +[emph Note:] While the form [method ehandler] is still usable, it is
          112  +deprecated and will be removed in a future release.
   109    113   
   110    114   This method specifies a command prefix to wrap around the parsing of
   111    115   the command line for the private, and the execution of its action.
   112    116   
   113    117   [list_begin arguments]
   114    118   [arg_def cmd-prefix cmd]
   115    119   A command prefix taking a single argument, a script. The command
................................................................................
   117    121   will parse words for the private,m and perform its action. The command
   118    122   prefix then has the responsbility to perform any custom cleanup action
   119    123   required by the application using the framework to prevent leakage of
   120    124   data between multiple commands executed one after the other (i.e. in
   121    125   an interactive shell run by the framework).
   122    126   [list_end][comment arguments]
   123    127   
          128  +[comment {- - -- --- ----- -------- -------------}]
          129  +[call [cmd <private>] [method custom-setup] [arg cmd]]
          130  +
          131  +This method specifies a command prefix which will be run all the
          132  +regular setup of an officer from its specification is done, to perform
          133  +customizations.
          134  +
          135  +[para] The [cmd <private>] here ignores such calls.
          136  +
          137  +[para] The method exists only to avoid having to special-case code the
          138  +places propagating these commands down the hierarchy.
          139  +
   124    140   [comment {- - -- --- ----- -------- -------------}]
   125    141   [call [cmd <private>] [method find] [arg path]]
   126    142   
   127    143   This method returns the instance command of the sub-ordinate with the
   128    144   given [arg path] of names. An error is thrown if such a sub-ordinate
   129    145   does not exist, i.e. whenever [arg path] is not empty, as a private
   130    146   has no sub-ordinates, ever.

Changes to doc/parts/changes1.2.inc.

     1      1   [subsection {Changes for version 1.2}]
     2      2   [vset tcllib http://core.tcl.tk/tcllib/doc/trunk/embedded/www]
     3      3   [vset tm     [vset tcllib]/tcllib/files/modules]
     4      4   
     5      5   [list_begin enumerated]
     6      6   [comment {- - -- --- ----- -------- ------------- ---------------------}]
     7      7   
     8         -[enum] Added many new standard validation types to package
     9         -       [package cmdr::validate]:
    10         -
    11         -[list_begin enumerated]
    12         -[enum] Double
    13         -[enum] Percent
    14         -[enum] Posint (positive integers, > 0)
    15         -[enum] Paths and channels
    16         -       [list_begin enumerated]
    17         -       [enum] Readable file
    18         -       [enum] Writable file
    19         -       [enum] Read/writable file
    20         -       [enum] Readable directory
    21         -       [enum] Read/writeable directory
    22         -       [enum] readable path
    23         -       [enum] Read/writable path
    24         -       [enum] Readable path, as channel
    25         -       [enum] Writable path, as channel
    26         -       [enum] Read/writable path, as channel
    27         -       [list_end]
    28         -[enum] Date and time related:
    29         -       [list_begin enumerated]
    30         -       [enum] iso8601 date/time,
    31         -       [enum] year
    32         -       [enum] weekday, 
    33         -       [enum] hour:minute
    34         -       [list_end]
    35         -[list_end]
    36         -
    37         -[enum] Added more helper commands for validation failure messages to
    38         -       package [package cmdr::validate::common].
            8  +[enum] Extended the package [package cmdr::validate] with many new
            9  +       standard validation types:
    39     10   
    40     11          [list_begin enumerated]
    41         -       [enum] [cmd fail-unknown-thing]
           12  +       [enum] Double
           13  +       [enum] Percent
           14  +       [enum] Posint (positive integers, > 0)
           15  +       [enum] Paths and channels
           16  +              [list_begin enumerated]
           17  +              [enum] Readable file
           18  +              [enum] Writable file
           19  +              [enum] Read/writable file
           20  +              [enum] Readable directory
           21  +              [enum] Read/writeable directory
           22  +              [enum] readable path
           23  +              [enum] Read/writable path
           24  +              [enum] Readable path, as channel
           25  +              [enum] Writable path, as channel
           26  +              [enum] Read/writable path, as channel
           27  +              [list_end]
           28  +       [enum] Date and time related:
           29  +              [list_begin enumerated]
           30  +              [enum] ISO-8601 date/time,
           31  +              [enum] year
           32  +              [enum] weekday, 
           33  +              [enum] hour:minute
           34  +              [list_end]
           35  +       [list_end]
           36  +
           37  +[enum] In package [package cmdr::validate], modified the integer
           38  +       validation type to have a proper internal representation:
           39  +       decimal. Input in octal, hex, etc. is now normalized to this.
           40  +
           41  +[enum] Extended package [package cmdr::validate::common] with more
           42  +       helper commands for the generation of validation failure
           43  +       messages
           44  +
           45  +       [list_begin enumerated]
    42     46          [enum] [cmd fail-unknown-thing-msg]
    43     47          [enum] [cmd fail-unknown-simple]
    44     48          [enum] [cmd fail-unknown-simple-msg]
    45         -       [enum] [cmd fail-known-thing]
    46     49          [enum] [cmd fail-known-thing-msg]
    47     50          [enum] [cmd fail-known-simple]
    48     51          [enum] [cmd fail-known-simple-msg]
    49     52          [list_end]
    50     53   
    51         -[enum] Modified integer validation to have a proper internal
    52         -       representation: decimal. Octal, hex, etc. input is now
    53         -       normalized to this.
    54         -
    55         -[enum] Various new supporting packages:
    56         -[list_begin definitions]
    57         -[def [package cmdr::tty]] Test for terminal.
    58         -[def [package cmdr::color]] Color management, ansi control sequences.
    59         -[def [package cmdr::ask]] User interaction commands.
    60         -[def [package cmdr::pager]] Text display with automatic invokation of
    61         -     	      		    a pager for tall output.
    62         -[def [package cmdr::history]] Pluggable management of command history.
    63         -[def [package cmdr::table]] Table formatting, simplified interface to
    64         -      		            [uri [vset tcllib]/toc.html Tcllib]'s
    65         -      		            [package struct::matrix] and
    66         -			    [package report] packages.
    67         -[def [package cmdr::validate::valtype-support]] Even more validation types.
    68         -     Wrappers around the validation commands provided by
    69         -       [uri [vset tcllib]/toc.html Tcllib]:
           54  +[enum] Added various new supporting packages:
           55  +
           56  +       [list_begin definitions]
           57  +       [def [package cmdr::tty]]
           58  +            Test for terminal.
           59  +
           60  +       [def [package cmdr::color]]
           61  +            Color management, ansi control sequences.
           62  +
           63  +       [def [package cmdr::ask]]
           64  +            User interaction commands.
           65  +
           66  +       [def [package cmdr::pager]]
           67  +            Text display with automatic invokation of a pager for tall
           68  +            output.
           69  +
           70  +       [def [package cmdr::history]]
           71  +            Pluggable management of command history.
           72  +
           73  +       [def [package cmdr::table]]
           74  +            Table formatting, a simplified interface to
           75  +            [uri [vset tcllib]/toc.html Tcllib]'s
           76  +            [package struct::matrix] and [package report] packages.
           77  +
           78  +       [def [package cmdr::validate::valtype-support]]
           79  +
           80  +            Even more validation types, now as wrappers around the
           81  +            validation commands provided by
           82  +            [uri [vset tcllib]/toc.html Tcllib]:
           83  +
           84  +            [list_begin enumerated]
           85  +            [enum] [uri [vset tm]/valtype/cc_amex.html       valtype::creditcard::amex]
           86  +            [enum] [uri [vset tm]/valtype/cc_discover.html   valtype::creditcard::discover]
           87  +            [enum] [uri [vset tm]/valtype/cc_mastercard.html valtype::creditcard::mastercard]
           88  +            [enum] [uri [vset tm]/valtype/cc_visa.html       valtype::creditcard::visa]
           89  +            [enum] [uri [vset tm]/valtype/ean13.html         valtype::gs1::ean13]
           90  +            [enum] [uri [vset tm]/valtype/iban.html          valtype::iban]
           91  +            [enum] [uri [vset tm]/valtype/imei.html          valtype::imei]
           92  +            [enum] [uri [vset tm]/valtype/isbn.html          valtype::isbn]
           93  +            [enum] [uri [vset tm]/valtype/luhn.html          valtype::luhn]
           94  +            [enum] [uri [vset tm]/valtype/luhn5.html         valtype::luhn5]
           95  +            [enum] [uri [vset tm]/valtype/usnpi.html         valtype::usnpi]
           96  +            [enum] [uri [vset tm]/valtype/verhoeff.html      valtype::verhoeff]
           97  +            [list_end]
           98  +       [list_end]
           99  +
          100  +[enum] Extended package [package cmdr::officer] with 
          101  +       [list_begin enumerated]
          102  +       [enum] Support for per-officer options. The most common use
          103  +              case will likely be the declaration of global options in
          104  +              the root officer.
          105  +
          106  +       [para] Related to this, a new common block [const *config*] is
          107  +              set to the active [package config] instance, which will
          108  +              be different from the defining instance, for per-officer
          109  +              options. This gives the per-officer options access to
          110  +              the arguments (and options) of the current command,
          111  +              instead of only their own sibling options.
          112  +
          113  +       [enum] Support for an option [option -extend] for common
          114  +              blocks, allowing their extension in a subordinate
          115  +              instead of just replacing the entire content.
          116  +
          117  +       [enum] Support to accept all unique command prefixes of an
          118  +              officer's subordinates for dispatch.
          119  +       [list_end]
          120  +
          121  +[enum] Extended package [package cmdr::parameter] with 
          122  +       [list_begin enumerated]
          123  +       [enum] Support for the specification of negative aliases for
          124  +              boolean options, i.e. representing the inverted option.
          125  +
          126  +       [para] See the DSL commands [cmd neg-alias] and [cmd !alias] in
          127  +              [term {Cmdr - Parameter Specification Language}].
          128  +
          129  +       [enum] Support for option labeling, for use in the generated
          130  +              help, to make it more descriptive. Options for which no
          131  +              label is specified will use their name as fallback.
          132  +
          133  +       [para] See DSL command [cmd label] in
          134  +              [term {Cmdr - Parameter Specification Language}].
          135  +       [list_end]
          136  +
          137  +[enum] Help system changes
    70    138          [list_begin enumerated]
    71         -       [enum] [uri [vset tm]/valtype/cc_amex.html       valtype::creditcard::amex]
    72         -       [enum] [uri [vset tm]/valtype/cc_discover.html   valtype::creditcard::discover]
    73         -       [enum] [uri [vset tm]/valtype/cc_mastercard.html valtype::creditcard::mastercard]
    74         -       [enum] [uri [vset tm]/valtype/cc_visa.html       valtype::creditcard::visa]
    75         -       [enum] [uri [vset tm]/valtype/ean13.html         valtype::gs1::ean13]
    76         -       [enum] [uri [vset tm]/valtype/iban.html          valtype::iban]
    77         -       [enum] [uri [vset tm]/valtype/imei.html          valtype::imei]
    78         -       [enum] [uri [vset tm]/valtype/isbn.html          valtype::isbn]
    79         -       [enum] [uri [vset tm]/valtype/luhn.html          valtype::luhn]
    80         -       [enum] [uri [vset tm]/valtype/luhn5.html         valtype::luhn5]
    81         -       [enum] [uri [vset tm]/valtype/usnpi.html         valtype::usnpi]
    82         -       [enum] [uri [vset tm]/valtype/verhoeff.html      valtype::verhoeff]
          139  +
          140  +       [enum] Modified it to use the [const short] format for interior
          141  +              nodes of the command hierarchy by default.
          142  +
          143  +       [enum] Modified it to exclude auto-added commands from the
          144  +              output generated by format [const by-category].
          145  +
          146  +       [enum] Modified the format [const full] to show the option
          147  +       	      arguments for those which have such. See also the
          148  +       	      extension of package [package cmdr::parameter] with
          149  +       	      support for option labels, this is what is used here.
          150  +
          151  +       [enum] Modified it to declare a standard global option
          152  +              [option --help] (with aliases [option -h] and
          153  +              [option -?]). Using the option invokes the standard help
          154  +              (command) on the current command, if any, or the global
          155  +              help if there is no command.
          156  +
          157  +       [enum] Modified to use a minimum width of 10 characters for
          158  +       	      descriptions. If the user narrowed the terminal this far
          159  +       	      then having the text either cut off at the right edge,
          160  +       	      or wrapped around is not worse then the help trying to
          161  +       	      wrap the sentence with word boundaries, etc. Also,
          162  +       	      trying to use negative width threw Tcl errors.
    83    163          [list_end]
    84    164   
    85         -[list_end]
          165  +[enum] Fixed the handling of common block [const *all*] in package
          166  +       [package cmdr::officer]. While it was ok trapping and ignoring
          167  +       a missing definition of this block, trapping everything which
          168  +       could go wrong was not.
          169  +
          170  +       [para][uri http://core.tcl.tk/akupries/cmdr/info/9159f68bc35d9747 Details].
          171  +
          172  +[enum] Fixed a long-standing bug of package [package cmdr::config] in
          173  +       the forced calculation of parameter values in method
          174  +       [method Force]). Any error in the calculations left an internal
          175  +       flag set, causing future invokations to believe to be in a
          176  +       recursive call and thus do nothing.
    86    177   
    87         -[enum] Added support for per-officer options. The most common use case
    88         -       will likely be the declaration of global options in the root
    89         -       officer.
          178  +       [para] While this had no effect on regular operation, i.e.
          179  +       with the application exiting after each command, in interactive
          180  +       mode this misbehaviour disabled all checks and validations for
          181  +       the command in question, and also retained old parameter
          182  +       values.
    90    183   
    91         -[para] Related to this, a new common block [const *config*] is set to
    92         -       the active [package config] instance, which will be different
    93         -       from the defining instance, , for per-officer options. This
    94         -       gives the per-officer options access to the arguments (and
    95         -       options) of the current command, instead of only their own
    96         -       sibling options.
          184  +       [para][uri http://core.tcl.tk/akupries/cmdr/info/f74095b252d4c9df Details]
    97    185   
    98         -[enum] Added support for an option [option -extend] for common blocks,
    99         -       allowing their extension in a subordinate instead of just
   100         -       replacing the entire content.
   101         -
   102         -[enum] Extended boolean options to allow the specification of negative
   103         -       aliases, i.e. representing the inverted option. See the DSL
   104         -       commands [cmd neg-alias] and [cmd !alias] in
   105         -       [term {Cmdr - Parameter Specification Language}].
          186  +[enum] Modified the formatting of [package cmdr::config] state when
          187  +       interactively entering it for a private. Parameter names now
          188  +       are shown as declared, and an additional flag character
          189  +       indicates if it is inherited from above, or not.
   106    190   
   107         -[enum] Extended the DSL for options in general with the ability to set
   108         -       a label for the option argument so that the generated help can
   109         -       be more descriptive. The option name is used as fallback for
   110         -       options for which no such label was specified.
   111         -
   112         -       See DSL command [cmd label] in
   113         -       [term {Cmdr - Parameter Specification Language}].
   114         -
   115         -[enum] Extended officers to accept all unique command prefixes of
   116         -       their subordinates for dispatch.
   117         -
   118         -[enum] Modified the help system to use the [const short] format for
   119         -       interior nodes of the command hierarchy by default.
   120         -
   121         -[enum] Modified the help system to exclude auto-added commands from
   122         -       the output generated by format [const by-category].
   123         -
   124         -[enum] ... A suite of bug fixes ... // TODO: list the details.
          191  +[enum] General fixes to testsuite, code comments, bogus variable
          192  +       names, typos in error messages, etc.
   125    193   
   126    194   [comment {- - -- --- ----- -------- ------------- ---------------------}]
   127    195   [list_end]

Changes to doc/parts/dev_dsl_officer.inc.

    10     10   on first call) to provide the necessary in-memory structures.
    11     11   
    12     12   [para] The DSL commands map to instance methods as shown below:
    13     13   
    14     14   [list_begin definitions]
    15     15   [def [cmd alias]]        [method Alias]
    16     16   [def [cmd common]]       [package cmdr::actor] [method set]
           17  +[def [cmd custom-setup]] [method custom-setup]
    17     18   [def [cmd default]]      [method Default]
    18     19   [def [cmd description]]  [package cmdr::actor] [method description:]
    19         -[def [cmd ehandler]]     [method ehandler]
    20         -[def [cmd shandler]]     [method shandler]
           20  +[def [cmd ehandler]]     See [cmd intercept]. [emph Deprecated].
           21  +[def [cmd intercept]]    [method intercept]
    21     22   [def [cmd officer]]      [method Officer], forward to [method DefineAction]
    22     23   [def [cmd private]]      [method Private], forward to [method DefineAction]
    23     24   [def [cmd undocumented]] [package cmdr::actor] [method undocumented]
    24     25   [list_end]

Changes to doc/parts/dsl_officer.inc.

   102    102   
   103    103   [comment {- - -- --- ----- -------- -------------}]
   104    104   [call [cmd description] [arg text]]
   105    105   
   106    106   This command declares the help text of the [term officer].
   107    107   
   108    108   [comment {- - -- --- ----- -------- -------------}]
          109  +[call [cmd intercept] [arg cmdprefix]]
   109    110   [call [cmd ehandler] [arg cmdprefix]]
          111  +
          112  +[emph Note:] While the form [cmd ehandler] is still usable, it is
          113  +deprecated and will be removed in a future release.
   110    114   
   111    115   This is an advanced command which should normally only be specified at
   112    116   the top of the whole hierarchy (from which its value will
   113    117   automatically propagate to all subordinates).
   114    118   
   115    119   [para] At runtime the framework will call the specified command prefix
   116    120   with a single argument, a script whose execution is equivalent to the
................................................................................
   136    140   cleanup code transient state [emph will] leak between multiple
   137    141   commands run from such a shell, something which is definitely not
   138    142   wanted.
   139    143   
   140    144   [list_end]
   141    145   
   142    146   [comment {- - -- --- ----- -------- -------------}]
   143         -[call [cmd shandler] [arg cmdprefix]]
          147  +[call [cmd custom-setup] [arg cmdprefix]]
   144    148   
   145    149   This is an advanced command which should normally only be specified at
   146    150   the top of the whole hierarchy (from which its value will
   147    151   automatically propagate to all subordinates).
   148    152   
   149         -[para] At runtime the framework will call the specified command prefix
   150         -with a single argument, the command of the actor we wish to
   151         -initialize.
          153  +[para] When called multiple times, the specified commands
          154  +accumulate. This makes it easy to specify several indepedent
          155  +customizations.
          156  +
          157  +[para] At runtime the framework will invoke all the specified commands
          158  +with a single argument, the command of the actor to initialize.
   152    159   
   153    160   The command prefix is then allowed to modify that actor as it sees
   154    161   fit. The common use case will be the extension of the object with
   155    162   additional subordinates.
   156    163   
   157    164   An example of this is the package [package cmdr::history] which
   158    165   provides a command [cmd cmdr::history::attach] to add the history

Changes to doc/parts/dsl_para_support.inc.

    21     21   
    22     22   The returned callback sets the [arg name]d sibling parameter to the
    23     23   specified [arg value]. A simple method of communication between
    24     24   parameters of a command.
    25     25   
    26     26   [para] Useful for use with [cmd when-set] and/or [cmd when-complete]
    27     27   
    28         -[call [cmd touch] [arg name] [arg value]]
           28  +[call [cmd touch?] [arg name] [arg value]]
    29     29   
    30     30   The returned callback sets the [arg name]d sibling parameter to the
    31     31   specified [arg value], if and only if that parameter exists. A simple
    32     32   method of communication between parameters of a command, where the
    33     33   sibling may not exists, depending on usage context.
    34     34   
    35     35   [para] Useful for use with [cmd when-set] and/or [cmd when-complete]

Changes to embedded/man/files/cmdr_changes.n.

   281    281   For availability please read \fICmdr - How To Get The Sources\fR\&.
   282    282   .PP
   283    283   This document provides an overview of the changes \fBcmdr\fR
   284    284   underwent from version to version\&.
   285    285   .SH CHANGES
   286    286   .SS "CHANGES FOR VERSION 1\&.2"
   287    287   .IP [1]
   288         -Added many new standard validation types to package
   289         -\fBcmdr::validate\fR:
          288  +Extended the package \fBcmdr::validate\fR with many new
          289  +standard validation types:
   290    290   .RS
   291    291   .IP [1]
   292    292   Double
   293    293   .IP [2]
   294    294   Percent
   295    295   .IP [3]
   296    296   Posint (positive integers, > 0)
................................................................................
   318    318   .IP [10]
   319    319   Read/writable path, as channel
   320    320   .RE
   321    321   .IP [5]
   322    322   Date and time related:
   323    323   .RS
   324    324   .IP [1]
   325         -iso8601 date/time,
          325  +ISO-8601 date/time,
   326    326   .IP [2]
   327    327   year
   328    328   .IP [3]
   329    329   weekday,
   330    330   .IP [4]
   331    331   hour:minute
   332    332   .RE
   333    333   .RE
   334    334   .IP [2]
   335         -Added more helper commands for validation failure messages to
   336         -package \fBcmdr::validate::common\fR\&.
          335  +In package \fBcmdr::validate\fR, modified the integer
          336  +validation type to have a proper internal representation:
          337  +decimal\&. Input in octal, hex, etc\&. is now normalized to this\&.
          338  +.IP [3]
          339  +Extended package \fBcmdr::validate::common\fR with more
          340  +helper commands for the generation of validation failure
          341  +messages
   337    342   .RS
   338    343   .IP [1]
   339         -\fBfail-unknown-thing\fR
          344  +\fBfail-unknown-thing-msg\fR
   340    345   .IP [2]
   341         -\fBfail-unknown-thing-msg\fR
          346  +\fBfail-unknown-simple\fR
   342    347   .IP [3]
   343         -\fBfail-unknown-simple\fR
          348  +\fBfail-unknown-simple-msg\fR
   344    349   .IP [4]
   345         -\fBfail-unknown-simple-msg\fR
          350  +\fBfail-known-thing-msg\fR
   346    351   .IP [5]
   347         -\fBfail-known-thing\fR
   348         -.IP [6]
   349         -\fBfail-known-thing-msg\fR
   350         -.IP [7]
   351    352   \fBfail-known-simple\fR
   352         -.IP [8]
          353  +.IP [6]
   353    354   \fBfail-known-simple-msg\fR
   354    355   .RE
   355         -.IP [3]
   356         -Modified integer validation to have a proper internal
   357         -representation: decimal\&. Octal, hex, etc\&. input is now
   358         -normalized to this\&.
   359    356   .IP [4]
   360         -Various new supporting packages:
          357  +Added various new supporting packages:
   361    358   .RS
   362    359   .TP
   363    360   \fBcmdr::tty\fR
   364    361   Test for terminal\&.
   365    362   .TP
   366    363   \fBcmdr::color\fR
   367    364   Color management, ansi control sequences\&.
   368    365   .TP
   369    366   \fBcmdr::ask\fR
   370    367   User interaction commands\&.
   371    368   .TP
   372    369   \fBcmdr::pager\fR
   373         -Text display with automatic invokation of
   374         -a pager for tall output\&.
          370  +Text display with automatic invokation of a pager for tall
          371  +output\&.
   375    372   .TP
   376    373   \fBcmdr::history\fR
   377    374   Pluggable management of command history\&.
   378    375   .TP
   379    376   \fBcmdr::table\fR
   380         -Table formatting, simplified interface to
          377  +Table formatting, a simplified interface to
   381    378   \fITcllib\fR [http://core\&.tcl\&.tk/tcllib/doc/trunk/embedded/www/toc\&.html]'s
   382         -\fBstruct::matrix\fR and
   383         -\fBreport\fR packages\&.
          379  +\fBstruct::matrix\fR and \fBreport\fR packages\&.
   384    380   .TP
   385    381   \fBcmdr::validate::valtype-support\fR
   386         -Even more validation types\&.
   387         -Wrappers around the validation commands provided by
          382  +Even more validation types, now as wrappers around the
          383  +validation commands provided by
   388    384   \fITcllib\fR [http://core\&.tcl\&.tk/tcllib/doc/trunk/embedded/www/toc\&.html]:
   389    385   .RS
   390    386   .IP [1]
   391    387   \fIvaltype::creditcard::amex\fR [http://core\&.tcl\&.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/cc_amex\&.html]
   392    388   .IP [2]
   393    389   \fIvaltype::creditcard::discover\fR [http://core\&.tcl\&.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/cc_discover\&.html]
   394    390   .IP [3]
................................................................................
   410    406   .IP [11]
   411    407   \fIvaltype::usnpi\fR [http://core\&.tcl\&.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/usnpi\&.html]
   412    408   .IP [12]
   413    409   \fIvaltype::verhoeff\fR [http://core\&.tcl\&.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/verhoeff\&.html]
   414    410   .RE
   415    411   .RE
   416    412   .IP [5]
   417         -Added support for per-officer options\&. The most common use case
   418         -will likely be the declaration of global options in the root
   419         -officer\&.
          413  +Extended package \fBcmdr::officer\fR with
          414  +.RS
          415  +.IP [1]
          416  +Support for per-officer options\&. The most common use
          417  +case will likely be the declaration of global options in
          418  +the root officer\&.
   420    419   .sp
   421         -Related to this, a new common block \fB*config*\fR is set to
   422         -the active \fBconfig\fR instance, which will be different
   423         -from the defining instance, , for per-officer options\&. This
   424         -gives the per-officer options access to the arguments (and
   425         -options) of the current command, instead of only their own
   426         -sibling options\&.
          420  +Related to this, a new common block \fB*config*\fR is
          421  +set to the active \fBconfig\fR instance, which will
          422  +be different from the defining instance, for per-officer
          423  +options\&. This gives the per-officer options access to
          424  +the arguments (and options) of the current command,
          425  +instead of only their own sibling options\&.
          426  +.IP [2]
          427  +Support for an option \fB-extend\fR for common
          428  +blocks, allowing their extension in a subordinate
          429  +instead of just replacing the entire content\&.
          430  +.IP [3]
          431  +Support to accept all unique command prefixes of an
          432  +officer's subordinates for dispatch\&.
          433  +.RE
   427    434   .IP [6]
   428         -Added support for an option \fB-extend\fR for common blocks,
   429         -allowing their extension in a subordinate instead of just
   430         -replacing the entire content\&.
   431         -.IP [7]
   432         -Extended boolean options to allow the specification of negative
   433         -aliases, i\&.e\&. representing the inverted option\&. See the DSL
   434         -commands \fBneg-alias\fR and \fB!alias\fR in
          435  +Extended package \fBcmdr::parameter\fR with
          436  +.RS
          437  +.IP [1]
          438  +Support for the specification of negative aliases for
          439  +boolean options, i\&.e\&. representing the inverted option\&.
          440  +.sp
          441  +See the DSL commands \fBneg-alias\fR and \fB!alias\fR in
   435    442   \fICmdr - Parameter Specification Language\fR\&.
   436         -.IP [8]
   437         -Extended the DSL for options in general with the ability to set
   438         -a label for the option argument so that the generated help can
   439         -be more descriptive\&. The option name is used as fallback for
   440         -options for which no such label was specified\&.
          443  +.IP [2]
          444  +Support for option labeling, for use in the generated
          445  +help, to make it more descriptive\&. Options for which no
          446  +label is specified will use their name as fallback\&.
          447  +.sp
   441    448   See DSL command \fBlabel\fR in
   442    449   \fICmdr - Parameter Specification Language\fR\&.
          450  +.RE
          451  +.IP [7]
          452  +Help system changes
          453  +.RS
          454  +.IP [1]
          455  +Modified it to use the \fBshort\fR format for interior
          456  +nodes of the command hierarchy by default\&.
          457  +.IP [2]
          458  +Modified it to exclude auto-added commands from the
          459  +output generated by format \fBby-category\fR\&.
          460  +.IP [3]
          461  +Modified the format \fBfull\fR to show the option
          462  +arguments for those which have such\&. See also the
          463  +extension of package \fBcmdr::parameter\fR with
          464  +support for option labels, this is what is used here\&.
          465  +.IP [4]
          466  +Modified it to declare a standard global option
          467  +\fB--help\fR (with aliases \fB-h\fR and
          468  +\fB-?\fR)\&. Using the option invokes the standard help
          469  +(command) on the current command, if any, or the global
          470  +help if there is no command\&.
          471  +.IP [5]
          472  +Modified to use a minimum width of 10 characters for
          473  +descriptions\&. If the user narrowed the terminal this far
          474  +then having the text either cut off at the right edge,
          475  +or wrapped around is not worse then the help trying to
          476  +wrap the sentence with word boundaries, etc\&. Also,
          477  +trying to use negative width threw Tcl errors\&.
          478  +.RE
          479  +.IP [8]
          480  +Fixed the handling of common block \fB*all*\fR in package
          481  +\fBcmdr::officer\fR\&. While it was ok trapping and ignoring
          482  +a missing definition of this block, trapping everything which
          483  +could go wrong was not\&.
          484  +.sp
          485  +\fIDetails\fR [http://core\&.tcl\&.tk/akupries/cmdr/info/9159f68bc35d9747]\&.
   443    486   .IP [9]
   444         -Extended officers to accept all unique command prefixes of
   445         -their subordinates for dispatch\&.
          487  +Fixed a long-standing bug of package \fBcmdr::config\fR in
          488  +the forced calculation of parameter values in method
          489  +\fBForce\fR)\&. Any error in the calculations left an internal
          490  +flag set, causing future invokations to believe to be in a
          491  +recursive call and thus do nothing\&.
          492  +.sp
          493  +While this had no effect on regular operation, i\&.e\&.
          494  +with the application exiting after each command, in interactive
          495  +mode this misbehaviour disabled all checks and validations for
          496  +the command in question, and also retained old parameter
          497  +values\&.
          498  +.sp
          499  +\fIDetails\fR [http://core\&.tcl\&.tk/akupries/cmdr/info/f74095b252d4c9df]
   446    500   .IP [10]
   447         -Modified the help system to use the \fBshort\fR format for
   448         -interior nodes of the command hierarchy by default\&.
          501  +Modified the formatting of \fBcmdr::config\fR state when
          502  +interactively entering it for a private\&. Parameter names now
          503  +are shown as declared, and an additional flag character
          504  +indicates if it is inherited from above, or not\&.
   449    505   .IP [11]
   450         -Modified the help system to exclude auto-added commands from
   451         -the output generated by format \fBby-category\fR\&.
   452         -.IP [12]
   453         -\&.\&.\&. A suite of bug fixes \&.\&.\&. // TODO: list the details\&.
          506  +General fixes to testsuite, code comments, bogus variable
          507  +names, typos in error messages, etc\&.
   454    508   .PP
   455    509   .SS "CHANGES FOR VERSION 1\&.1"
   456    510   .IP [1]
   457    511   Fixed broken requirement references in the meta data of packages
   458    512   \fBcmdr::help::json\fR and \fBcmdr::help::sql\fR\&.
   459    513   .IP [2]
   460    514   Fixed initialization issues in the help generator\&.

Changes to embedded/man/files/cmdr_color.n.

     1      1   '\"
     2         -'\" Generated from file 'cmdr_color\&.man' by tcllib/doctools with format 'nroff'
            2  +'\" Generated from file 'cmdr_color\&.man~' by tcllib/doctools with format 'nroff'
     3      3   '\" Copyright (c) 2013-2016 Andreas Kupries
     4      4   '\" Copyright (c) 2013-2016 Documentation, Andreas Kupries
     5      5   '\"
     6      6   .TH "cmdr::color" n 1\&.0\&.2 doc "Cmdr, a framework for command line parsing and dispatch"
     7      7   .\" The -*- nroff -*- definitions below are for supplemental macros used
     8      8   .\" in Tcl/Tk manual entries.
     9      9   .\"

Changes to embedded/man/files/cmdr_dev_dsl.n.

   306    306   .TP
   307    307   \fBalias\fR
   308    308   \fBAlias\fR
   309    309   .TP
   310    310   \fBcommon\fR
   311    311   \fBcmdr::actor\fR \fBset\fR
   312    312   .TP
          313  +\fBcustom-setup\fR
          314  +\fBcustom-setup\fR
          315  +.TP
   313    316   \fBdefault\fR
   314    317   \fBDefault\fR
   315    318   .TP
   316    319   \fBdescription\fR
   317    320   \fBcmdr::actor\fR \fBdescription:\fR
   318    321   .TP
   319    322   \fBehandler\fR
   320         -\fBehandler\fR
          323  +See \fBintercept\fR\&. \fIDeprecated\fR\&.
   321    324   .TP
   322         -\fBshandler\fR
   323         -\fBshandler\fR
          325  +\fBintercept\fR
          326  +\fBintercept\fR
   324    327   .TP
   325    328   \fBofficer\fR
   326    329   \fBOfficer\fR, forward to \fBDefineAction\fR
   327    330   .TP
   328    331   \fBprivate\fR
   329    332   \fBPrivate\fR, forward to \fBDefineAction\fR
   330    333   .TP

Changes to embedded/man/files/cmdr_dsl_officer.n.

   281    281   .sp
   282    282   \fBcommon\fR \fIname\fR \fB-extend\fR \fB--\fR \fItext\fR
   283    283   .sp
   284    284   \fBdefault\fR
   285    285   .sp
   286    286   \fBdescription\fR \fItext\fR
   287    287   .sp
          288  +\fBintercept\fR \fIcmdprefix\fR
          289  +.sp
   288    290   \fBehandler\fR \fIcmdprefix\fR
   289    291   .sp
   290         -\fBshandler\fR \fIcmdprefix\fR
          292  +\fBcustom-setup\fR \fIcmdprefix\fR
   291    293   .sp
   292    294   \fBofficer\fR \fIname\fR \fIscript\fR
   293    295   .sp
   294    296   \fBprivate\fR \fIname\fR \fIscript\fR \fIcmdprefix\fR
   295    297   .sp
   296    298   \fBundocumented\fR
   297    299   .sp
................................................................................
   409    411   word does not match any of the commands known to this \fIofficer\fR
   410    412   this default is used\&. If no default is specified an error will be
   411    413   thrown instead\&.
   412    414   .TP
   413    415   \fBdescription\fR \fItext\fR
   414    416   This command declares the help text of the \fIofficer\fR\&.
   415    417   .TP
          418  +\fBintercept\fR \fIcmdprefix\fR
          419  +.TP
   416    420   \fBehandler\fR \fIcmdprefix\fR
          421  +\fINote:\fR While the form \fBehandler\fR is still usable, it is
          422  +deprecated and will be removed in a future release\&.
   417    423   This is an advanced command which should normally only be specified at
   418    424   the top of the whole hierarchy (from which its value will
   419    425   automatically propagate to all subordinates)\&.
   420    426   .sp
   421    427   At runtime the framework will call the specified command prefix
   422    428   with a single argument, a script whose execution is equivalent to the
   423    429   phases \fIParsing\fR, \fICompletion\fR, and \fIExecution\fR of the
................................................................................
   437    443   This is especially important if the interactive command line shells of
   438    444   the framework are enabled\&. Without such a handler and its bespoke
   439    445   cleanup code transient state \fIwill\fR leak between multiple
   440    446   commands run from such a shell, something which is definitely not
   441    447   wanted\&.
   442    448   .RE
   443    449   .TP
   444         -\fBshandler\fR \fIcmdprefix\fR
          450  +\fBcustom-setup\fR \fIcmdprefix\fR
   445    451   This is an advanced command which should normally only be specified at
   446    452   the top of the whole hierarchy (from which its value will
   447    453   automatically propagate to all subordinates)\&.
   448    454   .sp
   449         -At runtime the framework will call the specified command prefix
   450         -with a single argument, the command of the actor we wish to
   451         -initialize\&.
          455  +When called multiple times, the specified commands
          456  +accumulate\&. This makes it easy to specify several indepedent
          457  +customizations\&.
          458  +.sp
          459  +At runtime the framework will invoke all the specified commands
          460  +with a single argument, the command of the actor to initialize\&.
   452    461   The command prefix is then allowed to modify that actor as it sees
   453    462   fit\&. The common use case will be the extension of the object with
   454    463   additional subordinates\&.
   455    464   An example of this is the package \fBcmdr::history\fR which
   456    465   provides a command \fBcmdr::history::attach\fR to add the history
   457    466   management commands to the actor in question\&.
   458    467   .TP

Changes to embedded/man/files/cmdr_dsl_parameter.n.

   311    311   .sp
   312    312   \fBwhen-set\fR \fIcmdprefix\fR
   313    313   .sp
   314    314   \fBstop!\fR
   315    315   .sp
   316    316   \fBtouch\fR \fIname\fR \fIvalue\fR
   317    317   .sp
   318         -\fBtouch\fR \fIname\fR \fIvalue\fR
          318  +\fBtouch?\fR \fIname\fR \fIvalue\fR
   319    319   .sp
   320    320   \fBdisallow\fR \fIname\fR
   321    321   .sp
   322    322   .BE
   323    323   .SH DESCRIPTION
   324    324   .PP
   325    325   Welcome to the Cmdr project, written by Andreas Kupries\&.
................................................................................
   755    755   \fBtouch\fR \fIname\fR \fIvalue\fR
   756    756   The returned callback sets the \fIname\fRd sibling parameter to the
   757    757   specified \fIvalue\fR\&. A simple method of communication between
   758    758   parameters of a command\&.
   759    759   .sp
   760    760   Useful for use with \fBwhen-set\fR and/or \fBwhen-complete\fR
   761    761   .TP
   762         -\fBtouch\fR \fIname\fR \fIvalue\fR
          762  +\fBtouch?\fR \fIname\fR \fIvalue\fR
   763    763   The returned callback sets the \fIname\fRd sibling parameter to the
   764    764   specified \fIvalue\fR, if and only if that parameter exists\&. A simple
   765    765   method of communication between parameters of a command, where the
   766    766   sibling may not exists, depending on usage context\&.
   767    767   .sp
   768    768   Useful for use with \fBwhen-set\fR and/or \fBwhen-complete\fR
   769    769   .TP

Changes to embedded/man/files/cmdr_history.n.

   316    316       history list ?n?  - Show last n history entries\&. Defaults to all\&.
   317    317       history clear     - Drop all history entries
   318    318       history limit ?n? - Limit history to 'n' entries (n >= 0)\&. Unlimited for n < 0\&.
   319    319   
   320    320   .CE
   321    321   .IP
   322    322   Under most circumstances the attachment is handled through the
   323         -\fBshandler\fR method of officers\&. See \fBcmdr::officer\fR, and
          323  +method \fBcustom-setup\fR of officers\&. See \fBcmdr::officer\fR, and
   324    324   the \fBExample\fR for more information\&.
   325    325   .TP
   326    326   \fB::cmdr::history\fR \fBsave-to\fR \fIpath\fR
   327    327   When invoked this command sets the package-wide history save file used
   328    328   by the commands to the \fIpath\fR\&.
   329    329   .sp
   330    330   The result of the command is the empty string\&.
................................................................................
   342    342   .CS
   343    343   
   344    344   
   345    345   cmdr history initial-limit 20
   346    346   cmdr history save-to       ~/\&.fx_history
   347    347   
   348    348   cmdr create fx::fx [file tail $::argv0] {
   349         -    shandler ::cmdr::history::attach
          349  +    custom-setup ::cmdr::history::attach
   350    350   
   351    351       [\&.\&.\&.]
   352    352   }
   353    353   
   354    354   .CE
   355    355   .SH "BUGS, IDEAS, FEEDBACK"
   356    356   Both the package(s) and this documentation will undoubtedly contain

Changes to embedded/man/files/cmdr_officer.n.

   291    291   .sp
   292    292   \fB<officer>\fR \fBdefault\fR
   293    293   .sp
   294    294   \fB<officer>\fR \fBdispatch\fR \fIcmd\fR
   295    295   .sp
   296    296   \fB<officer>\fR \fBdo\fR ?\fIword\fR\&.\&.\&.?
   297    297   .sp
          298  +\fB<officer>\fR \fBintercept\fR \fIcmd\fR
          299  +.sp
   298    300   \fB<officer>\fR \fBehandler\fR \fIcmd\fR
          301  +.sp
          302  +\fB<officer>\fR \fBcustom-setup\fR \fIcmd\fR
   299    303   .sp
   300    304   \fB<officer>\fR \fBexit\fR
   301    305   .sp
   302    306   \fB<officer>\fR \fBextend\fR \fIpath\fR \fIarguments\fR \fIaction\fR
   303    307   .sp
   304    308   \fB<officer>\fR \fBfind\fR \fIpath\fR
   305    309   .sp
................................................................................
   437    441   This represents the "Dispatch" phase of command line processing\&.
   438    442   .RS
   439    443   .TP
   440    444   string \fIword\fR
   441    445   The words of the command line to parse and match to parameters\&.
   442    446   .RE
   443    447   .TP
          448  +\fB<officer>\fR \fBintercept\fR \fIcmd\fR
          449  +.TP
   444    450   \fB<officer>\fR \fBehandler\fR \fIcmd\fR
          451  +\fINote:\fR While the form \fBehandler\fR is still usable, it is
          452  +deprecated and will be removed in a future release\&.
   445    453   This method specifies a command prefix to wrap around the parsing of
   446    454   the command line for the officer, and the execution of its action\&.
   447    455   .RS
   448    456   .TP
   449    457   cmd-prefix \fIcmd\fR
   450    458   A command prefix taking a single argument, a script\&. The command
   451    459   prefix has to execute this script in its caller's context\&. The script
   452    460   will parse words for the officer,m and perform its action\&. The command
   453    461   prefix then has the responsbility to perform any custom cleanup action
   454    462   required by the application using the framework to prevent leakage of
   455    463   data between multiple commands executed one after the other (i\&.e\&. in
   456    464   an interactive shell run by the framework)\&.
   457    465   .RE
          466  +.TP
          467  +\fB<officer>\fR \fBcustom-setup\fR \fIcmd\fR
          468  +This method specifies a command prefix which will be run all the
          469  +regular setup of the officer from its specification is done, to
          470  +perform customizations\&.
          471  +.sp
          472  +An example of this can be seen in the package
          473  +\fBcmdr::history\fR\&. It provides a command
          474  +\fBcmdr::history::attach\fR to add the history management commands to
          475  +the actor in question, suitable as argument to this method\&.
          476  +.sp
          477  +When called multiple times, the specified commands
          478  +accumulate\&. This makes it easy to specify several indepedent
          479  +customizations\&.
          480  +.RS
          481  +.TP
          482  +cmd-prefix \fIcmd\fR
          483  +A command prefix taking a single argument, the instance command of an
          484  +\fBcmd::actor\fR\&. The command prefix has full access to this actor
          485  +and can modify it as it sees fit\&. The common use case will be the
          486  +extension of the actor with additional subordinates\&.
          487  +.RE
   458    488   .TP
   459    489   \fB<officer>\fR \fBexit\fR
   460    490   This hook-method for the main shell returns a boolean value indicating
   461    491   whether the main shell was stopped and has to exit (\fBtrue\fR), or
   462    492   not (\fBfalse\fR)\&.
   463    493   .TP
   464    494   \fB<officer>\fR \fBextend\fR \fIpath\fR \fIarguments\fR \fIaction\fR

Changes to embedded/man/files/cmdr_private.n.

   281    281   .sp
   282    282   \fB::cmdr::private\fR \fBcreate\fR \fIobj\fR \fIsuper\fR \fIname\fR \fIarguments\fR \fIaction\fR
   283    283   .sp
   284    284   \fB<private>\fR \fBcomplete-words\fR \fIparse\fR
   285    285   .sp
   286    286   \fB<private>\fR \fBdo\fR ?\fIword\fR\&.\&.\&.?
   287    287   .sp
          288  +\fB<private>\fR \fBintercept\fR \fIcmd\fR
          289  +.sp
   288    290   \fB<private>\fR \fBehandler\fR \fIcmd\fR
          291  +.sp
          292  +\fB<private>\fR \fBcustom-setup\fR \fIcmd\fR
   289    293   .sp
   290    294   \fB<private>\fR \fBfind\fR \fIpath\fR
   291    295   .sp
   292    296   \fB<private>\fR \fBhelp\fR ?\fIprefix\fR?
   293    297   .sp
   294    298   \fB<private>\fR \fBunknown\fR \fIm\fR ?\fIword\fR\&.\&.\&.?
   295    299   .sp
................................................................................
   376    380   filled container of parameters\&.
   377    381   .RS
   378    382   .TP
   379    383   string \fIword\fR
   380    384   The words of the command line to parse and match to parameters\&.
   381    385   .RE
   382    386   .TP
          387  +\fB<private>\fR \fBintercept\fR \fIcmd\fR
          388  +.TP
   383    389   \fB<private>\fR \fBehandler\fR \fIcmd\fR
          390  +\fINote:\fR While the form \fBehandler\fR is still usable, it is
          391  +deprecated and will be removed in a future release\&.
   384    392   This method specifies a command prefix to wrap around the parsing of
   385    393   the command line for the private, and the execution of its action\&.
   386    394   .RS
   387    395   .TP
   388    396   cmd-prefix \fIcmd\fR
   389    397   A command prefix taking a single argument, a script\&. The command
   390    398   prefix has to execute this script in its caller's context\&. The script
................................................................................
   391    399   will parse words for the private,m and perform its action\&. The command
   392    400   prefix then has the responsbility to perform any custom cleanup action
   393    401   required by the application using the framework to prevent leakage of
   394    402   data between multiple commands executed one after the other (i\&.e\&. in
   395    403   an interactive shell run by the framework)\&.
   396    404   .RE
   397    405   .TP
          406  +\fB<private>\fR \fBcustom-setup\fR \fIcmd\fR
          407  +This method specifies a command prefix which will be run all the
          408  +regular setup of an officer from its specification is done, to perform
          409  +customizations\&.
          410  +.sp
          411  +The \fB<private>\fR here ignores such calls\&.
          412  +.sp
          413  +The method exists only to avoid having to special-case code the
          414  +places propagating these commands down the hierarchy\&.
          415  +.TP
   398    416   \fB<private>\fR \fBfind\fR \fIpath\fR
   399    417   This method returns the instance command of the sub-ordinate with the
   400    418   given \fIpath\fR of names\&. An error is thrown if such a sub-ordinate
   401    419   does not exist, i\&.e\&. whenever \fIpath\fR is not empty, as a private
   402    420   has no sub-ordinates, ever\&.
   403    421   .sp
   404    422   Note, as implied above, an empty \fIpath\fR is allowed and

Added embedded/man/files/cmdr_table.n.

            1  +'\"
            2  +'\" Generated from file 'cmdr_table\&.man' by tcllib/doctools with format 'nroff'
            3  +'\" Copyright (c) 2013-2016 Andreas Kupries
            4  +'\" Copyright (c) 2013-2016 Documentation, Andreas Kupries
            5  +'\"
            6  +.TH "cmdr::table" n 0\&.1 doc "Cmdr, a framework for command line parsing and dispatch"
            7  +.\" The -*- nroff -*- definitions below are for supplemental macros used
            8  +.\" in Tcl/Tk manual entries.
            9  +.\"
           10  +.\" .AP type name in/out ?indent?
           11  +.\"	Start paragraph describing an argument to a library procedure.
           12  +.\"	type is type of argument (int, etc.), in/out is either "in", "out",
           13  +.\"	or "in/out" to describe whether procedure reads or modifies arg,
           14  +.\"	and indent is equivalent to second arg of .IP (shouldn't ever be
           15  +.\"	needed;  use .AS below instead)
           16  +.\"
           17  +.\" .AS ?type? ?name?
           18  +.\"	Give maximum sizes of arguments for setting tab stops.  Type and
           19  +.\"	name are examples of largest possible arguments that will be passed
           20  +.\"	to .AP later.  If args are omitted, default tab stops are used.
           21  +.\"
           22  +.\" .BS
           23  +.\"	Start box enclosure.  From here until next .BE, everything will be
           24  +.\"	enclosed in one large box.
           25  +.\"
           26  +.\" .BE
           27  +.\"	End of box enclosure.
           28  +.\"
           29  +.\" .CS
           30  +.\"	Begin code excerpt.
           31  +.\"
           32  +.\" .CE
           33  +.\"	End code excerpt.
           34  +.\"
           35  +.\" .VS ?version? ?br?
           36  +.\"	Begin vertical sidebar, for use in marking newly-changed parts
           37  +.\"	of man pages.  The first argument is ignored and used for recording
           38  +.\"	the version when the .VS was added, so that the sidebars can be
           39  +.\"	found and removed when they reach a certain age.  If another argument
           40  +.\"	is present, then a line break is forced before starting the sidebar.
           41  +.\"
           42  +.\" .VE
           43  +.\"	End of vertical sidebar.
           44  +.\"
           45  +.\" .DS
           46  +.\"	Begin an indented unfilled display.
           47  +.\"
           48  +.\" .DE
           49  +.\"	End of indented unfilled display.
           50  +.\"
           51  +.\" .SO ?manpage?
           52  +.\"	Start of list of standard options for a Tk widget. The manpage
           53  +.\"	argument defines where to look up the standard options; if
           54  +.\"	omitted, defaults to "options". The options follow on successive
           55  +.\"	lines, in three columns separated by tabs.
           56  +.\"
           57  +.\" .SE
           58  +.\"	End of list of standard options for a Tk widget.
           59  +.\"
           60  +.\" .OP cmdName dbName dbClass
           61  +.\"	Start of description of a specific option.  cmdName gives the
           62  +.\"	option's name as specified in the class command, dbName gives
           63  +.\"	the option's name in the option database, and dbClass gives
           64  +.\"	the option's class in the option database.
           65  +.\"
           66  +.\" .UL arg1 arg2
           67  +.\"	Print arg1 underlined, then print arg2 normally.
           68  +.\"
           69  +.\" .QW arg1 ?arg2?
           70  +.\"	Print arg1 in quotes, then arg2 normally (for trailing punctuation).
           71  +.\"
           72  +.\" .PQ arg1 ?arg2?
           73  +.\"	Print an open parenthesis, arg1 in quotes, then arg2 normally
           74  +.\"	(for trailing punctuation) and then a closing parenthesis.
           75  +.\"
           76  +.\"	# Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
           77  +.if t .wh -1.3i ^B
           78  +.nr ^l \n(.l
           79  +.ad b
           80  +.\"	# Start an argument description
           81  +.de AP
           82  +.ie !"\\$4"" .TP \\$4
           83  +.el \{\
           84  +.   ie !"\\$2"" .TP \\n()Cu
           85  +.   el          .TP 15
           86  +.\}
           87  +.ta \\n()Au \\n()Bu
           88  +.ie !"\\$3"" \{\
           89  +\&\\$1 \\fI\\$2\\fP (\\$3)
           90  +.\".b
           91  +.\}
           92  +.el \{\
           93  +.br
           94  +.ie !"\\$2"" \{\
           95  +\&\\$1	\\fI\\$2\\fP
           96  +.\}
           97  +.el \{\
           98  +\&\\fI\\$1\\fP
           99  +.\}
          100  +.\}
          101  +..
          102  +.\"	# define tabbing values for .AP
          103  +.de AS
          104  +.nr )A 10n
          105  +.if !"\\$1"" .nr )A \\w'\\$1'u+3n
          106  +.nr )B \\n()Au+15n
          107  +.\"
          108  +.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
          109  +.nr )C \\n()Bu+\\w'(in/out)'u+2n
          110  +..
          111  +.AS Tcl_Interp Tcl_CreateInterp in/out
          112  +.\"	# BS - start boxed text
          113  +.\"	# ^y = starting y location
          114  +.\"	# ^b = 1
          115  +.de BS
          116  +.br
          117  +.mk ^y
          118  +.nr ^b 1u
          119  +.if n .nf
          120  +.if n .ti 0
          121  +.if n \l'\\n(.lu\(ul'
          122  +.if n .fi
          123  +..
          124  +.\"	# BE - end boxed text (draw box now)
          125  +.de BE
          126  +.nf
          127  +.ti 0
          128  +.mk ^t
          129  +.ie n \l'\\n(^lu\(ul'
          130  +.el \{\
          131  +.\"	Draw four-sided box normally, but don't draw top of
          132  +.\"	box if the box started on an earlier page.
          133  +.ie !\\n(^b-1 \{\
          134  +\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
          135  +.\}
          136  +.el \}\
          137  +\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
          138  +.\}
          139  +.\}
          140  +.fi
          141  +.br
          142  +.nr ^b 0
          143  +..
          144  +.\"	# VS - start vertical sidebar
          145  +.\"	# ^Y = starting y location
          146  +.\"	# ^v = 1 (for troff;  for nroff this doesn't matter)
          147  +.de VS
          148  +.if !"\\$2"" .br
          149  +.mk ^Y
          150  +.ie n 'mc \s12\(br\s0
          151  +.el .nr ^v 1u
          152  +..
          153  +.\"	# VE - end of vertical sidebar
          154  +.de VE
          155  +.ie n 'mc
          156  +.el \{\
          157  +.ev 2
          158  +.nf
          159  +.ti 0
          160  +.mk ^t
          161  +\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
          162  +.sp -1
          163  +.fi
          164  +.ev
          165  +.\}
          166  +.nr ^v 0
          167  +..
          168  +.\"	# Special macro to handle page bottom:  finish off current
          169  +.\"	# box/sidebar if in box/sidebar mode, then invoked standard
          170  +.\"	# page bottom macro.
          171  +.de ^B
          172  +.ev 2
          173  +'ti 0
          174  +'nf
          175  +.mk ^t
          176  +.if \\n(^b \{\
          177  +.\"	Draw three-sided box if this is the box's first page,
          178  +.\"	draw two sides but no top otherwise.
          179  +.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
          180  +.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
          181  +.\}
          182  +.if \\n(^v \{\
          183  +.nr ^x \\n(^tu+1v-\\n(^Yu
          184  +\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
          185  +.\}
          186  +.bp
          187  +'fi
          188  +.ev
          189  +.if \\n(^b \{\
          190  +.mk ^y
          191  +.nr ^b 2
          192  +.\}
          193  +.if \\n(^v \{\
          194  +.mk ^Y
          195  +.\}
          196  +..
          197  +.\"	# DS - begin display
          198  +.de DS
          199  +.RS
          200  +.nf
          201  +.sp
          202  +..
          203  +.\"	# DE - end display
          204  +.de DE
          205  +.fi
          206  +.RE
          207  +.sp
          208  +..
          209  +.\"	# SO - start of list of standard options
          210  +.de SO
          211  +'ie '\\$1'' .ds So \\fBoptions\\fR
          212  +'el .ds So \\fB\\$1\\fR
          213  +.SH "STANDARD OPTIONS"
          214  +.LP
          215  +.nf
          216  +.ta 5.5c 11c
          217  +.ft B
          218  +..
          219  +.\"	# SE - end of list of standard options
          220  +.de SE
          221  +.fi
          222  +.ft R
          223  +.LP
          224  +See the \\*(So manual entry for details on the standard options.
          225  +..
          226  +.\"	# OP - start of full description for a single option
          227  +.de OP
          228  +.LP
          229  +.nf
          230  +.ta 4c
          231  +Command-Line Name:	\\fB\\$1\\fR
          232  +Database Name:	\\fB\\$2\\fR
          233  +Database Class:	\\fB\\$3\\fR
          234  +.fi
          235  +.IP
          236  +..
          237  +.\"	# CS - begin code excerpt
          238  +.de CS
          239  +.RS
          240  +.nf
          241  +.ta .25i .5i .75i 1i
          242  +..
          243  +.\"	# CE - end code excerpt
          244  +.de CE
          245  +.fi
          246  +.RE
          247  +..
          248  +.\"	# UL - underline word
          249  +.de UL
          250  +\\$1\l'|0\(ul'\\$2
          251  +..
          252  +.\"	# QW - apply quotation marks to word
          253  +.de QW
          254  +.ie '\\*(lq'"' ``\\$1''\\$2
          255  +.\"" fix emacs highlighting
          256  +.el \\*(lq\\$1\\*(rq\\$2
          257  +..
          258  +.\"	# PQ - apply parens and quotation marks to word
          259  +.de PQ
          260  +.ie '\\*(lq'"' (``\\$1''\\$2)\\$3
          261  +.\"" fix emacs highlighting
          262  +.el (\\*(lq\\$1\\*(rq\\$2)\\$3
          263  +..
          264  +.\"	# QR - quoted range
          265  +.de QR
          266  +.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3
          267  +.\"" fix emacs highlighting
          268  +.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3
          269  +..
          270  +.\"	# MT - "empty" string
          271  +.de MT
          272  +.QW ""
          273  +..
          274  +.BS
          275  +.SH NAME
          276  +cmdr::table \- Cmdr - Simple Table creation
          277  +.SH SYNOPSIS
          278  +package require \fBcmdr::util \fR
          279  +.sp
          280  +\fB::cmdr::table\fR \fBgeneral\fR \fIvar\fR \fIheaders\fR \fIscript\fR
          281  +.sp
          282  +\fB::cmdr::table\fR \fBdict\fR \fIvar\fR \fIscript\fR
          283  +.sp
          284  +\fB::cmdr::table\fR \fBborders\fR ?\fIenable\fR?
          285  +.sp
          286  +\fB::cmdr::table\fR \fBshow\fR ?\fIcmd\fR\&.\&.\&.?
          287  +.sp
          288  +\fBt\fR \fBborders\fR ?\fIenable\fR?
          289  +.sp
          290  +\fBt\fR \fBheaders\fR ?\fIenable\fR?
          291  +.sp
          292  +\fBt\fR \fBstyle\fR ?\fIstyle\fR?
          293  +.sp
          294  +\fBt\fR \fBadd\fR \fIword\fR\&.\&.\&.
          295  +.sp
          296  +\fBt\fR \fB+\fR \fIword\fR\&.\&.\&.
          297  +.sp
          298  +\fBt\fR \fB+=\fR \fIword\fR\&.\&.\&.
          299  +.sp
          300  +\fBt\fR \fB<<\fR \fIword\fR\&.\&.\&.
          301  +.sp
          302  +\fBt\fR \fB<=\fR \fIword\fR\&.\&.\&.
          303  +.sp
          304  +\fBt\fR \fBshow*\fR ?\fIcmd\fR?
          305  +.sp
          306  +\fBt\fR \fBshow\fR ?\fIcmd\fR?
          307  +.sp
          308  +.BE
          309  +.SH DESCRIPTION
          310  +.PP
          311  +Welcome to the Cmdr project, written by Andreas Kupries\&.
          312  +.PP
          313  +For availability please read \fICmdr - How To Get The Sources\fR\&.
          314  +.PP
          315  +This package provides convenience commands for the easy creation of
          316  +simple tables\&.
          317  +.SH API
          318  +.TP
          319  +\fB::cmdr::table\fR \fBgeneral\fR \fIvar\fR \fIheaders\fR \fIscript\fR
          320  +This command creates a new table with the words found in the list of
          321  +\fIheaders\fR as the top row\&.
          322  +The \fIscript\fR is run in the calling context to configure and
          323  +populate the table\&.
          324  +The table's object command is stored in the named \fIvar\fR for access
          325  +by the \fIscript\fR\&.
          326  +The result of the command is the table's object command\&.
          327  +.RS
          328  +.TP
          329  +varname \fIvar\fR
          330  +The name of the variable in the calling scope the new table's object
          331  +command will be stored into\&.
          332  +.TP
          333  +list \fIheaders\fR
          334  +The list of words to user as column headers\&.
          335  +.TP
          336  +string \fIscript\fR
          337  +The tcl script to be run to configure and populate the table\&.
          338  +.RE
          339  +.TP
          340  +\fB::cmdr::table\fR \fBdict\fR \fIvar\fR \fIscript\fR
          341  +This command creates a new table intended for the display of a Tcl
          342  +dictionary\&.
          343  +It will have two columns titled \fBKey\fR and \fBValue\fR\&.
          344  +The \fIscript\fR is run in the calling context to configure and
          345  +populate the table\&.
          346  +The table's object command is stored in the named \fIvar\fR for access
          347  +by the \fIscript\fR\&.
          348  +The result of the command is the table's object command\&.
          349  +.RS
          350  +.TP
          351  +varname \fIvar\fR
          352  +The name of the variable in the calling scope the new table's object
          353  +command will be stored into\&.
          354  +.TP
          355  +string \fIscript\fR
          356  +The tcl script to be run to configure and populate the table\&.
          357  +.RE
          358  +.TP
          359  +\fB::cmdr::table\fR \fBborders\fR ?\fIenable\fR?
          360  +This command configures the global \fIborder\fR setting, which
          361  +indicates the (non)use of borders by the tables of this package\&. Note
          362  +that changes to this setting influence only the tables created after
          363  +the change\&. Existing tables are not modified\&.
          364  +.sp
          365  +The result of the command is the new state of the setting\&.
          366  +.sp
          367  +If the command is called without an argument it simply returns the
          368  +current state of the setting, without making changes\&.
          369  +.sp
          370  +The default value for the setting is \fByes\fR\&.
          371  +Individual tables can override the global settings via their
          372  +\fBborders\fR method, see \fBTable API\fR\&.
          373  +.RS
          374  +.TP
          375  +boolean \fIenable\fR
          376  +The new value of the setting\&. Optional\&.
          377  +.RE
          378  +.TP
          379  +\fB::cmdr::table\fR \fBshow\fR ?\fIcmd\fR\&.\&.\&.?
          380  +This command configures the global \fIshow\fR setting, which is the
          381  +command prefix to use to print a table, if the table is not given a
          382  +specific command to use\&. Note that changes to this setting influence
          383  +only the tables created after the change\&. Existing tables are not
          384  +modified\&.
          385  +.sp
          386  +The result of the command is the new state of the setting
          387  +.sp
          388  +If the command is called without any arguments it simply
          389  +returns the current state of the setting, without making changes\&.
          390  +.sp
          391  +The default value for the setting is \fBputs\fR\&.
          392  +.RS
          393  +.TP
          394  +word \fIcmd\fR
          395  +The command prefix to use for printing a table, as varargs\&.
          396  +The prefix will be invoked with a single argument, the string
          397  +representation of the table\&.
          398  +.RE
          399  +.PP
          400  +.SH "TABLE API"
          401  +This section lists the methods available for configuration and
          402  +population of the tables created by this package\&.
          403  +.TP
          404  +\fBt\fR \fBborders\fR ?\fIenable\fR?
          405  +This is the table-level \fIborders\fR setting\&. On creation a table
          406  +inherits the global setting (See \fB::cmdr::table borders\fR)\&. If
          407  +that is not to suit then this method can be used to override it\&.
          408  +.sp
          409  +The result of the method is the new state of the setting\&. When
          410  +called without argument no change is made and the result is the
          411  +current state of the setting\&.
          412  +.TP
          413  +\fBt\fR \fBheaders\fR ?\fIenable\fR?
          414  +This method controls the visibility of the header row\&.  By default
          415  +general tables have the header row visisble, while for dict tables the
          416  +header is suppressed\&. This method allows the user to override these
          417  +defaults\&.
          418  +.sp
          419  +The result of the method is the new state of the setting\&. When
          420  +called without argument no change is made and the result is the
          421  +current state of the setting\&.
          422  +.TP
          423  +\fBt\fR \fBstyle\fR ?\fIstyle\fR?
          424  +This method allows the user to force the use of a completely custom
          425  +style\&.
          426  +Please see the documentation for the Tcllib package \fBreport\fR
          427  +on how to define table styles\&.
          428  +.sp
          429  +The package defines four styles of its own, all using the
          430  +common prefix \fBcmdr/table/\fR in their names\&.
          431  +When no custom style is set the table chooses between these based on
          432  +its \fIborders\fR and \fIheaders\fR settings\&.
          433  +.sp
          434  +The result of the method is the new state of the setting\&. When
          435  +called without argument then no change is made and the result is the
          436  +current state of the setting\&.
          437  +.sp
          438  +To revert from a custom style to the automatic choice invoke
          439  +this method with the empty string as the name of the style\&.
          440  +.TP
          441  +\fBt\fR \fBadd\fR \fIword\fR\&.\&.\&.
          442  +.TP
          443  +\fBt\fR \fB+\fR \fIword\fR\&.\&.\&.
          444  +.TP
          445  +\fBt\fR \fB+=\fR \fIword\fR\&.\&.\&.
          446  +.TP
          447  +\fBt\fR \fB<<\fR \fIword\fR\&.\&.\&.
          448  +.TP
          449  +\fBt\fR \fB<=\fR \fIword\fR\&.\&.\&.
          450  +This method adds a new row to the table, containing the given words\&.
          451  +If less words than headers are specified the row is padded with empty columns\&.
          452  +If too many words are specified the superfluous words are ignored\&.
          453  +.sp
          454  +The result of the method is the empty string\&.
          455  +.TP
          456  +\fBt\fR \fBshow*\fR ?\fIcmd\fR?
          457  +This method formats the table into a string and then invokes the
          458  +command prefix \fIcmd\fR to print that string\&. The command prefix is
          459  +run at the global namespace and level\&. If the \fIcmd\fR is not
          460  +specified the global \fIshow\fR setting is used instead\&.
          461  +.sp
          462  +The result of the method is the empty string\&.
          463  +.TP
          464  +\fBt\fR \fBshow\fR ?\fIcmd\fR?
          465  +This is a variant of method \fBshow*\fR above which not only prints
          466  +the table as above, but also destroys it\&.
          467  +.PP
          468  +.SH "BUGS, IDEAS, FEEDBACK"
          469  +Both the package(s) and this documentation will undoubtedly contain
          470  +bugs and other problems\&.
          471  +Please report such at
          472  +\fICmdr Tickets\fR [https:/core\&.tcl\&.tk/akupries/cmdr]\&.
          473  +.PP
          474  +Please also report any ideas you may have for enhancements of
          475  +either package(s) and/or documentation\&.
          476  +.SH KEYWORDS
          477  +arguments, command hierarchy, command line completion, command line handling, command tree, editing command line, help for command line, hierarchy of commands, interactive command shell, optional arguments, options, parameters, processing command line, tree of commands
          478  +.SH COPYRIGHT
          479  +.nf
          480  +Copyright (c) 2013-2016 Andreas Kupries
          481  +Copyright (c) 2013-2016 Documentation, Andreas Kupries
          482  +
          483  +.fi

Changes to embedded/man/index.n.

   348    348   cmdr::pager
   349    349   .TP
   350    350   \fBfiles/cmdr_parameter\&.n\fR
   351    351   cmdr::parameter
   352    352   .TP
   353    353   \fBfiles/cmdr_private\&.n\fR
   354    354   cmdr::private
          355  +.TP
          356  +\fBfiles/cmdr_table\&.n\fR
          357  +cmdr::table
   355    358   .TP
   356    359   \fBfiles/cmdr_tty\&.n\fR
   357    360   cmdr::tty
   358    361   .TP
   359    362   \fBfiles/cmdr_util\&.n\fR
   360    363   cmdr::util
   361    364   .TP
................................................................................
   504    507   cmdr::pager
   505    508   .TP
   506    509   \fBfiles/cmdr_parameter\&.n\fR
   507    510   cmdr::parameter
   508    511   .TP
   509    512   \fBfiles/cmdr_private\&.n\fR
   510    513   cmdr::private
          514  +.TP
          515  +\fBfiles/cmdr_table\&.n\fR
          516  +cmdr::table
   511    517   .TP
   512    518   \fBfiles/cmdr_tty\&.n\fR
   513    519   cmdr::tty
   514    520   .TP
   515    521   \fBfiles/cmdr_util\&.n\fR
   516    522   cmdr::util
   517    523   .TP
................................................................................
   660    666   cmdr::pager
   661    667   .TP
   662    668   \fBfiles/cmdr_parameter\&.n\fR
   663    669   cmdr::parameter
   664    670   .TP
   665    671   \fBfiles/cmdr_private\&.n\fR
   666    672   cmdr::private
          673  +.TP
          674  +\fBfiles/cmdr_table\&.n\fR
          675  +cmdr::table
   667    676   .TP
   668    677   \fBfiles/cmdr_tty\&.n\fR
   669    678   cmdr::tty
   670    679   .TP
   671    680   \fBfiles/cmdr_util\&.n\fR
   672    681   cmdr::util
   673    682   .TP
................................................................................
   816    825   cmdr::pager
   817    826   .TP
   818    827   \fBfiles/cmdr_parameter\&.n\fR
   819    828   cmdr::parameter
   820    829   .TP
   821    830   \fBfiles/cmdr_private\&.n\fR
   822    831   cmdr::private
          832  +.TP
          833  +\fBfiles/cmdr_table\&.n\fR
          834  +cmdr::table
   823    835   .TP
   824    836   \fBfiles/cmdr_tty\&.n\fR
   825    837   cmdr::tty
   826    838   .TP
   827    839   \fBfiles/cmdr_util\&.n\fR
   828    840   cmdr::util
   829    841   .TP
................................................................................
   972    984   cmdr::pager
   973    985   .TP
   974    986   \fBfiles/cmdr_parameter\&.n\fR
   975    987   cmdr::parameter
   976    988   .TP
   977    989   \fBfiles/cmdr_private\&.n\fR
   978    990   cmdr::private
          991  +.TP
          992  +\fBfiles/cmdr_table\&.n\fR
          993  +cmdr::table
   979    994   .TP
   980    995   \fBfiles/cmdr_tty\&.n\fR
   981    996   cmdr::tty
   982    997   .TP
   983    998   \fBfiles/cmdr_util\&.n\fR
   984    999   cmdr::util
   985   1000   .TP
................................................................................
  1128   1143   cmdr::pager
  1129   1144   .TP
  1130   1145   \fBfiles/cmdr_parameter\&.n\fR
  1131   1146   cmdr::parameter
  1132   1147   .TP
  1133   1148   \fBfiles/cmdr_private\&.n\fR
  1134   1149   cmdr::private
         1150  +.TP
         1151  +\fBfiles/cmdr_table\&.n\fR
         1152  +cmdr::table
  1135   1153   .TP
  1136   1154   \fBfiles/cmdr_tty\&.n\fR
  1137   1155   cmdr::tty
  1138   1156   .TP
  1139   1157   \fBfiles/cmdr_util\&.n\fR
  1140   1158   cmdr::util
  1141   1159   .TP
................................................................................
  1284   1302   cmdr::pager
  1285   1303   .TP
  1286   1304   \fBfiles/cmdr_parameter\&.n\fR
  1287   1305   cmdr::parameter
  1288   1306   .TP
  1289   1307   \fBfiles/cmdr_private\&.n\fR
  1290   1308   cmdr::private
         1309  +.TP
         1310  +\fBfiles/cmdr_table\&.n\fR
         1311  +cmdr::table
  1291   1312   .TP
  1292   1313   \fBfiles/cmdr_tty\&.n\fR
  1293   1314   cmdr::tty
  1294   1315   .TP
  1295   1316   \fBfiles/cmdr_util\&.n\fR
  1296   1317   cmdr::util
  1297   1318   .TP
................................................................................
  1440   1461   cmdr::pager
  1441   1462   .TP
  1442   1463   \fBfiles/cmdr_parameter\&.n\fR
  1443   1464   cmdr::parameter
  1444   1465   .TP
  1445   1466   \fBfiles/cmdr_private\&.n\fR
  1446   1467   cmdr::private
         1468  +.TP
         1469  +\fBfiles/cmdr_table\&.n\fR
         1470  +cmdr::table
  1447   1471   .TP
  1448   1472   \fBfiles/cmdr_tty\&.n\fR
  1449   1473   cmdr::tty
  1450   1474   .TP
  1451   1475   \fBfiles/cmdr_util\&.n\fR
  1452   1476   cmdr::util
  1453   1477   .TP
................................................................................
  1596   1620   cmdr::pager
  1597   1621   .TP
  1598   1622   \fBfiles/cmdr_parameter\&.n\fR
  1599   1623   cmdr::parameter
  1600   1624   .TP
  1601   1625   \fBfiles/cmdr_private\&.n\fR
  1602   1626   cmdr::private
         1627  +.TP
         1628  +\fBfiles/cmdr_table\&.n\fR
         1629  +cmdr::table
  1603   1630   .TP
  1604   1631   \fBfiles/cmdr_tty\&.n\fR
  1605   1632   cmdr::tty
  1606   1633   .TP
  1607   1634   \fBfiles/cmdr_util\&.n\fR
  1608   1635   cmdr::util
  1609   1636   .TP
................................................................................
  1752   1779   cmdr::pager
  1753   1780   .TP
  1754   1781   \fBfiles/cmdr_parameter\&.n\fR
  1755   1782   cmdr::parameter
  1756   1783   .TP
  1757   1784   \fBfiles/cmdr_private\&.n\fR
  1758   1785   cmdr::private
         1786  +.TP
         1787  +\fBfiles/cmdr_table\&.n\fR
         1788  +cmdr::table
  1759   1789   .TP
  1760   1790   \fBfiles/cmdr_tty\&.n\fR
  1761   1791   cmdr::tty
  1762   1792   .TP
  1763   1793   \fBfiles/cmdr_util\&.n\fR
  1764   1794   cmdr::util
  1765   1795   .TP
................................................................................
  1908   1938   cmdr::pager
  1909   1939   .TP
  1910   1940   \fBfiles/cmdr_parameter\&.n\fR
  1911   1941   cmdr::parameter
  1912   1942   .TP
  1913   1943   \fBfiles/cmdr_private\&.n\fR
  1914   1944   cmdr::private
         1945  +.TP
         1946  +\fBfiles/cmdr_table\&.n\fR
         1947  +cmdr::table
  1915   1948   .TP
  1916   1949   \fBfiles/cmdr_tty\&.n\fR
  1917   1950   cmdr::tty
  1918   1951   .TP
  1919   1952   \fBfiles/cmdr_util\&.n\fR
  1920   1953   cmdr::util
  1921   1954   .TP
................................................................................
  2064   2097   cmdr::pager
  2065   2098   .TP
  2066   2099   \fBfiles/cmdr_parameter\&.n\fR
  2067   2100   cmdr::parameter
  2068   2101   .TP
  2069   2102   \fBfiles/cmdr_private\&.n\fR
  2070   2103   cmdr::private
         2104  +.TP
         2105  +\fBfiles/cmdr_table\&.n\fR
         2106  +cmdr::table
  2071   2107   .TP
  2072   2108   \fBfiles/cmdr_tty\&.n\fR
  2073   2109   cmdr::tty
  2074   2110   .TP
  2075   2111   \fBfiles/cmdr_util\&.n\fR
  2076   2112   cmdr::util
  2077   2113   .TP
................................................................................
  2220   2256   cmdr::pager
  2221   2257   .TP
  2222   2258   \fBfiles/cmdr_parameter\&.n\fR
  2223   2259   cmdr::parameter
  2224   2260   .TP
  2225   2261   \fBfiles/cmdr_private\&.n\fR
  2226   2262   cmdr::private
         2263  +.TP
         2264  +\fBfiles/cmdr_table\&.n\fR
         2265  +cmdr::table
  2227   2266   .TP
  2228   2267   \fBfiles/cmdr_tty\&.n\fR
  2229   2268   cmdr::tty
  2230   2269   .TP
  2231   2270   \fBfiles/cmdr_util\&.n\fR
  2232   2271   cmdr::util
  2233   2272   .TP
................................................................................
  2376   2415   cmdr::pager
  2377   2416   .TP
  2378   2417   \fBfiles/cmdr_parameter\&.n\fR
  2379   2418   cmdr::parameter
  2380   2419   .TP
  2381   2420   \fBfiles/cmdr_private\&.n\fR
  2382   2421   cmdr::private
         2422  +.TP
         2423  +\fBfiles/cmdr_table\&.n\fR
         2424  +cmdr::table
  2383   2425   .TP
  2384   2426   \fBfiles/cmdr_tty\&.n\fR
  2385   2427   cmdr::tty
  2386   2428   .TP
  2387   2429   \fBfiles/cmdr_util\&.n\fR
  2388   2430   cmdr::util
  2389   2431   .TP

Changes to embedded/man/toc.n.

   347    347   .TP
   348    348   \fBcmdr::parameter\fR
   349    349   \fIfiles/cmdr_parameter\&.n\fR: Cmdr - (Partially internal) Command parameters
   350    350   .TP
   351    351   \fBcmdr::private\fR
   352    352   \fIfiles/cmdr_private\&.n\fR: Cmdr - (Internal) Single command handling, options, and arguments
   353    353   .TP
          354  +\fBcmdr::table\fR
          355  +\fIfiles/cmdr_table\&.n\fR: Cmdr - Simple Table creation
          356  +.TP
   354    357   \fBcmdr::tty\fR
   355    358   \fIfiles/cmdr_tty\&.n\fR: Cmdr - Check if stdin is a tty, i\&.e\&. terminal
   356    359   .TP
   357    360   \fBcmdr::util\fR
   358    361   \fIfiles/cmdr_util\&.n\fR: Cmdr - (Internal) General Utilities
   359    362   .TP
   360    363   \fBcmdr::validate\fR

Changes to embedded/www/doc/files/cmdr_changes.html.

   131    131   <p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p>
   132    132   <p>This document provides an overview of the changes <b class="package"><a href="cmdr.html">cmdr</a></b>
   133    133   underwent from version to version.</p>
   134    134   </div>
   135    135   <div id="section2" class="section"><h2><a name="section2">Changes</a></h2>
   136    136   <div id="subsection1" class="subsection"><h3><a name="subsection1">Changes for version 1.2</a></h3>
   137    137   <ol class="enumerated">
   138         -<li><p>Added many new standard validation types to package
   139         -       <b class="package"><a href="cmdr_validate.html">cmdr::validate</a></b>:</p>
          138  +<li><p>Extended the package <b class="package"><a href="cmdr_validate.html">cmdr::validate</a></b> with many new
          139  +       standard validation types:</p>
   140    140   <ol class="enumerated">
          141  +       
   141    142   <li><p>Double</p></li>
   142    143   <li><p>Percent</p></li>
   143    144   <li><p>Posint (positive integers, &gt; 0)</p></li>
   144    145   <li><p>Paths and channels</p>
   145    146   <ol class="enumerated">
   146         -       
          147  +              
   147    148   <li><p>Readable file</p></li>
   148    149   <li><p>Writable file</p></li>
   149    150   <li><p>Read/writable file</p></li>
   150    151   <li><p>Readable directory</p></li>
   151    152   <li><p>Read/writeable directory</p></li>
   152    153   <li><p>readable path</p></li>
   153    154   <li><p>Read/writable path</p></li>
................................................................................
   154    155   <li><p>Readable path, as channel</p></li>
   155    156   <li><p>Writable path, as channel</p></li>
   156    157   <li><p>Read/writable path, as channel</p></li>
   157    158   </ol>
   158    159   </li>
   159    160   <li><p>Date and time related:</p>
   160    161   <ol class="enumerated">
   161         -       
   162         -<li><p>iso8601 date/time,</p></li>
          162  +              
          163  +<li><p>ISO-8601 date/time,</p></li>
   163    164   <li><p>year</p></li>
   164    165   <li><p>weekday,</p></li>
   165    166   <li><p>hour:minute</p></li>
   166    167   </ol>
   167    168   </li>
   168    169   </ol>
   169    170   </li>
   170         -<li><p>Added more helper commands for validation failure messages to
   171         -       package <b class="package"><a href="cmdr_vcommon.html">cmdr::validate::common</a></b>.</p>
          171  +<li><p>In package <b class="package"><a href="cmdr_validate.html">cmdr::validate</a></b>, modified the integer
          172  +       validation type to have a proper internal representation:
          173  +       decimal. Input in octal, hex, etc. is now normalized to this.</p></li>
          174  +<li><p>Extended package <b class="package"><a href="cmdr_vcommon.html">cmdr::validate::common</a></b> with more
          175  +       helper commands for the generation of validation failure
          176  +       messages</p>
   172    177   <ol class="enumerated">
   173    178          
   174         -<li><p><b class="cmd">fail-unknown-thing</b></p></li>
   175    179   <li><p><b class="cmd">fail-unknown-thing-msg</b></p></li>
   176    180   <li><p><b class="cmd">fail-unknown-simple</b></p></li>
   177    181   <li><p><b class="cmd">fail-unknown-simple-msg</b></p></li>
   178         -<li><p><b class="cmd">fail-known-thing</b></p></li>
   179    182   <li><p><b class="cmd">fail-known-thing-msg</b></p></li>
   180    183   <li><p><b class="cmd">fail-known-simple</b></p></li>
   181    184   <li><p><b class="cmd">fail-known-simple-msg</b></p></li>
   182    185   </ol>
   183    186   </li>
   184         -<li><p>Modified integer validation to have a proper internal
   185         -       representation: decimal. Octal, hex, etc. input is now
   186         -       normalized to this.</p></li>
   187         -<li><p>Various new supporting packages:</p>
          187  +<li><p>Added various new supporting packages:</p>
   188    188   <dl class="definitions">
          189  +       
   189    190   <dt><b class="package"><a href="cmdr_tty.html">cmdr::tty</a></b></dt>
   190    191   <dd><p>Test for terminal.</p></dd>
   191    192   <dt><b class="package"><a href="cmdr_color.html">cmdr::color</a></b></dt>
   192    193   <dd><p>Color management, ansi control sequences.</p></dd>
   193    194   <dt><b class="package"><a href="cmdr_ask.html">cmdr::ask</a></b></dt>
   194    195   <dd><p>User interaction commands.</p></dd>
   195    196   <dt><b class="package"><a href="cmdr_pager.html">cmdr::pager</a></b></dt>
   196         -<dd><p>Text display with automatic invokation of
   197         -     	      		    a pager for tall output.</p></dd>
          197  +<dd><p>Text display with automatic invokation of a pager for tall
          198  +            output.</p></dd>
   198    199   <dt><b class="package"><a href="cmdr_history.html">cmdr::history</a></b></dt>
   199    200   <dd><p>Pluggable management of command history.</p></dd>
   200         -<dt><b class="package">cmdr::table</b></dt>
   201         -<dd><p>Table formatting, simplified interface to
   202         -      		            <a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/toc.html">Tcllib</a>'s
   203         -      		            <b class="package">struct::matrix</b> and
   204         -			    <b class="package">report</b> packages.</p></dd>
          201  +<dt><b class="package"><a href="cmdr_table.html">cmdr::table</a></b></dt>
          202  +<dd><p>Table formatting, a simplified interface to
          203  +            <a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/toc.html">Tcllib</a>'s
          204  +            <b class="package">struct::matrix</b> and <b class="package">report</b> packages.</p></dd>
   205    205   <dt><b class="package">cmdr::validate::valtype-support</b></dt>
   206         -<dd><p>Even more validation types.
   207         -     Wrappers around the validation commands provided by
   208         -       <a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/toc.html">Tcllib</a>:</p>
          206  +<dd><p>Even more validation types, now as wrappers around the
          207  +            validation commands provided by
          208  +            <a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/toc.html">Tcllib</a>:</p>
   209    209   <ol class="enumerated">
   210         -       
          210  +            
   211    211   <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/cc_amex.html">valtype::creditcard::amex</a></p></li>
   212    212   <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/cc_discover.html">valtype::creditcard::discover</a></p></li>
   213    213   <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/cc_mastercard.html">valtype::creditcard::mastercard</a></p></li>
   214    214   <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/cc_visa.html">valtype::creditcard::visa</a></p></li>
   215    215   <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/ean13.html">valtype::gs1::ean13</a></p></li>
   216    216   <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/iban.html">valtype::iban</a></p></li>
   217    217   <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/imei.html">valtype::imei</a></p></li>
................................................................................
   219    219   <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/luhn.html">valtype::luhn</a></p></li>
   220    220   <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/luhn5.html">valtype::luhn5</a></p></li>
   221    221   <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/usnpi.html">valtype::usnpi</a></p></li>
   222    222   <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/verhoeff.html">valtype::verhoeff</a></p></li>
   223    223   </ol></dd>
   224    224   </dl>
   225    225   </li>
   226         -<li><p>Added support for per-officer options. The most common use case
   227         -       will likely be the declaration of global options in the root
   228         -       officer.</p>
   229         -<p>Related to this, a new common block <b class="const">*config*</b> is set to
   230         -       the active <b class="package">config</b> instance, which will be different
   231         -       from the defining instance, , for per-officer options. This
   232         -       gives the per-officer options access to the arguments (and
   233         -       options) of the current command, instead of only their own
   234         -       sibling options.</p></li>
   235         -<li><p>Added support for an option <b class="option">-extend</b> for common blocks,
   236         -       allowing their extension in a subordinate instead of just
   237         -       replacing the entire content.</p></li>
   238         -<li><p>Extended boolean options to allow the specification of negative
   239         -       aliases, i.e. representing the inverted option. See the DSL
   240         -       commands <b class="cmd">neg-alias</b> and <b class="cmd">!alias</b> in
   241         -       <i class="term"><a href="cmdr_dsl_parameter.html">Cmdr - Parameter Specification Language</a></i>.</p></li>
   242         -<li><p>Extended the DSL for options in general with the ability to set
   243         -       a label for the option argument so that the generated help can
   244         -       be more descriptive. The option name is used as fallback for
   245         -       options for which no such label was specified.
   246         -       See DSL command <b class="cmd">label</b> in
   247         -       <i class="term"><a href="cmdr_dsl_parameter.html">Cmdr - Parameter Specification Language</a></i>.</p></li>
   248         -<li><p>Extended officers to accept all unique command prefixes of
   249         -       their subordinates for dispatch.</p></li>
   250         -<li><p>Modified the help system to use the <b class="const">short</b> format for
   251         -       interior nodes of the command hierarchy by default.</p></li>
   252         -<li><p>Modified the help system to exclude auto-added commands from
   253         -       the output generated by format <b class="const">by-category</b>.</p></li>
   254         -<li><p>... A suite of bug fixes ... // TODO: list the details.</p></li>
          226  +<li><p>Extended package <b class="package"><a href="cmdr_officer.html">cmdr::officer</a></b> with</p>
          227  +<ol class="enumerated">
          228  +       
          229  +<li><p>Support for per-officer options. The most common use
          230  +              case will likely be the declaration of global options in
          231  +              the root officer.</p>
          232  +<p>Related to this, a new common block <b class="const">*config*</b> is
          233  +              set to the active <b class="package">config</b> instance, which will
          234  +              be different from the defining instance, for per-officer
          235  +              options. This gives the per-officer options access to
          236  +              the arguments (and options) of the current command,
          237  +              instead of only their own sibling options.</p></li>
          238  +<li><p>Support for an option <b class="option">-extend</b> for common
          239  +              blocks, allowing their extension in a subordinate
          240  +              instead of just replacing the entire content.</p></li>
          241  +<li><p>Support to accept all unique command prefixes of an
          242  +              officer's subordinates for dispatch.</p></li>
          243  +</ol>
          244  +</li>
          245  +<li><p>Extended package <b class="package"><a href="cmdr_parameter.html">cmdr::parameter</a></b> with</p>
          246  +<ol class="enumerated">
          247  +       
          248  +<li><p>Support for the specification of negative aliases for
          249  +              boolean options, i.e. representing the inverted option.</p>
          250  +<p>See the DSL commands <b class="cmd">neg-alias</b> and <b class="cmd">!alias</b> in
          251  +              <i class="term"><a href="cmdr_dsl_parameter.html">Cmdr - Parameter Specification Language</a></i>.</p></li>
          252  +<li><p>Support for option labeling, for use in the generated
          253  +              help, to make it more descriptive. Options for which no
          254  +              label is specified will use their name as fallback.</p>
          255  +<p>See DSL command <b class="cmd">label</b> in
          256  +              <i class="term"><a href="cmdr_dsl_parameter.html">Cmdr - Parameter Specification Language</a></i>.</p></li>
          257  +</ol>
          258  +</li>
          259  +<li><p>Help system changes</p>
          260  +<ol class="enumerated">
          261  +       
          262  +<li><p>Modified it to use the <b class="const">short</b> format for interior
          263  +              nodes of the command hierarchy by default.</p></li>
          264  +<li><p>Modified it to exclude auto-added commands from the
          265  +              output generated by format <b class="const">by-category</b>.</p></li>
          266  +<li><p>Modified the format <b class="const">full</b> to show the option
          267  +       	      arguments for those which have such. See also the
          268  +       	      extension of package <b class="package"><a href="cmdr_parameter.html">cmdr::parameter</a></b> with
          269  +       	      support for option labels, this is what is used here.</p></li>
          270  +<li><p>Modified it to declare a standard global option
          271  +              <b class="option">--help</b> (with aliases <b class="option">-h</b> and
          272  +              <b class="option">-?</b>). Using the option invokes the standard help
          273  +              (command) on the current command, if any, or the global
          274  +              help if there is no command.</p></li>
          275  +<li><p>Modified to use a minimum width of 10 characters for
          276  +       	      descriptions. If the user narrowed the terminal this far
          277  +       	      then having the text either cut off at the right edge,
          278  +       	      or wrapped around is not worse then the help trying to
          279  +       	      wrap the sentence with word boundaries, etc. Also,
          280  +       	      trying to use negative width threw Tcl errors.</p></li>
          281  +</ol>
          282  +</li>
          283  +<li><p>Fixed the handling of common block <b class="const">*all*</b> in package
          284  +       <b class="package"><a href="cmdr_officer.html">cmdr::officer</a></b>. While it was ok trapping and ignoring
          285  +       a missing definition of this block, trapping everything which
          286  +       could go wrong was not.</p>
          287  +<p><a href="http://core.tcl.tk/akupries/cmdr/info/9159f68bc35d9747">Details</a>.</p></li>
          288  +<li><p>Fixed a long-standing bug of package <b class="package"><a href="cmdr_config.html">cmdr::config</a></b> in
          289  +       the forced calculation of parameter values in method
          290  +       <b class="method">Force</b>). Any error in the calculations left an internal
          291  +       flag set, causing future invokations to believe to be in a
          292  +       recursive call and thus do nothing.</p>
          293  +<p>While this had no effect on regular operation, i.e.
          294  +       with the application exiting after each command, in interactive
          295  +       mode this misbehaviour disabled all checks and validations for
          296  +       the command in question, and also retained old parameter
          297  +       values.</p>
          298  +<p><a href="http://core.tcl.tk/akupries/cmdr/info/f74095b252d4c9df">Details</a></p></li>
          299  +<li><p>Modified the formatting of <b class="package"><a href="cmdr_config.html">cmdr::config</a></b> state when
          300  +       interactively entering it for a private. Parameter names now
          301  +       are shown as declared, and an additional flag character
          302  +       indicates if it is inherited from above, or not.</p></li>
          303  +<li><p>General fixes to testsuite, code comments, bogus variable
          304  +       names, typos in error messages, etc.</p></li>
   255    305   </ol>
   256    306   </div>
   257    307   <div id="subsection2" class="subsection"><h3><a name="subsection2">Changes for version 1.1</a></h3>
   258    308   <ol class="enumerated">
   259    309   <li><p>Fixed broken requirement references in the meta data of packages
   260    310          <b class="package"><a href="cmdr_help_json.html">cmdr::help::json</a></b> and <b class="package"><a href="cmdr_help_sql.html">cmdr::help::sql</a></b>.</p></li>
   261    311   <li><p>Fixed initialization issues in the help generator.</p></li>

Changes to embedded/www/doc/files/cmdr_color.html.

    88     88       }
    89     89       UL.requirements {
    90     90   	margin-bottom: 	1em;
    91     91   	border-bottom:	1px solid black;
    92     92       }
    93     93   --></style>
    94     94   </head>
    95         -<! -- Generated from file 'cmdr_color.man' by tcllib/doctools with format 'html'
           95  +<! -- Generated from file 'cmdr_color.man~' by tcllib/doctools with format 'html'
    96     96      -->
    97     97   <! -- Copyright &copy; 2013-2016 Andreas Kupries   -- Copyright &copy; 2013-2016 Documentation, Andreas Kupries
    98     98      -->
    99     99   <! -- CVS: $Id$ cmdr::color.n
   100    100      -->
   101    101   <body><div class="doctools">
   102    102   <hr> [

Changes to embedded/www/doc/files/cmdr_dev_dsl.html.

   148    148   on first call) to provide the necessary in-memory structures.</p>
   149    149   <p>The DSL commands map to instance methods as shown below:</p>
   150    150   <dl class="definitions">
   151    151   <dt><b class="cmd">alias</b></dt>
   152    152   <dd><p><b class="method">Alias</b></p></dd>
   153    153   <dt><b class="cmd">common</b></dt>
   154    154   <dd><p><b class="package"><a href="cmdr_actor.html">cmdr::actor</a></b> <b class="method">set</b></p></dd>
          155  +<dt><b class="cmd">custom-setup</b></dt>
          156  +<dd><p><b class="method">custom-setup</b></p></dd>
   155    157   <dt><b class="cmd">default</b></dt>
   156    158   <dd><p><b class="method">Default</b></p></dd>
   157    159   <dt><b class="cmd">description</b></dt>
   158    160   <dd><p><b class="package"><a href="cmdr_actor.html">cmdr::actor</a></b> <b class="method">description:</b></p></dd>
   159    161   <dt><b class="cmd">ehandler</b></dt>
   160         -<dd><p><b class="method">ehandler</b></p></dd>
   161         -<dt><b class="cmd">shandler</b></dt>
   162         -<dd><p><b class="method">shandler</b></p></dd>
          162  +<dd><p>See <b class="cmd">intercept</b>. <em>Deprecated</em>.</p></dd>
          163  +<dt><b class="cmd">intercept</b></dt>
          164  +<dd><p><b class="method">intercept</b></p></dd>
   163    165   <dt><b class="cmd">officer</b></dt>
   164    166   <dd><p><b class="method">Officer</b>, forward to <b class="method">DefineAction</b></p></dd>
   165    167   <dt><b class="cmd">private</b></dt>
   166    168   <dd><p><b class="method">Private</b>, forward to <b class="method">DefineAction</b></p></dd>
   167    169   <dt><b class="cmd">undocumented</b></dt>
   168    170   <dd><p><b class="package"><a href="cmdr_actor.html">cmdr::actor</a></b> <b class="method">undocumented</b></p></dd>
   169    171   </dl>

Changes to embedded/www/doc/files/cmdr_dsl_officer.html.

   126    126   <div class="synopsis">
   127    127   <ul class="syntax">
   128    128   <li><a href="#1"><b class="cmd">alias</b> <i class="arg">name</i> <b class="const">=</b> <i class="arg">name'</i>...</a></li>
   129    129   <li><a href="#2"><b class="cmd">alias</b> <i class="arg">name</i></a></li>
   130    130   <li><a href="#3"><b class="cmd">common</b> <i class="arg">name</i> <b class="option">-extend</b> <b class="option">--</b> <i class="arg">text</i></a></li>
   131    131   <li><a href="#4"><b class="cmd">default</b></a></li>
   132    132   <li><a href="#5"><b class="cmd">description</b> <i class="arg">text</i></a></li>
   133         -<li><a href="#6"><b class="cmd">ehandler</b> <i class="arg">cmdprefix</i></a></li>
   134         -<li><a href="#7"><b class="cmd">shandler</b> <i class="arg">cmdprefix</i></a></li>
   135         -<li><a href="#8"><b class="cmd">officer</b> <i class="arg">name</i> <i class="arg">script</i></a></li>
   136         -<li><a href="#9"><b class="cmd">private</b> <i class="arg">name</i> <i class="arg">script</i> <i class="arg">cmdprefix</i></a></li>
   137         -<li><a href="#10"><b class="cmd">undocumented</b></a></li>
          133  +<li><a href="#6"><b class="cmd">intercept</b> <i class="arg">cmdprefix</i></a></li>
          134  +<li><a href="#7"><b class="cmd">ehandler</b> <i class="arg">cmdprefix</i></a></li>
          135  +<li><a href="#8"><b class="cmd">custom-setup</b> <i class="arg">cmdprefix</i></a></li>
          136  +<li><a href="#9"><b class="cmd">officer</b> <i class="arg">name</i> <i class="arg">script</i></a></li>
          137  +<li><a href="#10"><b class="cmd">private</b> <i class="arg">name</i> <i class="arg">script</i> <i class="arg">cmdprefix</i></a></li>
          138  +<li><a href="#11"><b class="cmd">undocumented</b></a></li>
   138    139   </ul>
   139    140   </div>
   140    141   </div>
   141    142   <div id="section1" class="section"><h2><a name="section1">Description</a></h2>
   142    143   <p>Welcome to the Cmdr project, written by Andreas Kupries.</p>
   143    144   <p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p>
   144    145   <p>This document is for users of the cmdr framework. It introduces the
................................................................................
   227    228   command to use at runtime.
   228    229   This means that if during &quot;Dispatch&quot; phase the currently processed
   229    230   word does not match any of the commands known to this <i class="term">officer</i>
   230    231   this default is used. If no default is specified an error will be
   231    232   thrown instead.</p></dd>
   232    233   <dt><a name="5"><b class="cmd">description</b> <i class="arg">text</i></a></dt>
   233    234   <dd><p>This command declares the help text of the <i class="term">officer</i>.</p></dd>
   234         -<dt><a name="6"><b class="cmd">ehandler</b> <i class="arg">cmdprefix</i></a></dt>
   235         -<dd><p>This is an advanced command which should normally only be specified at
          235  +<dt><a name="6"><b class="cmd">intercept</b> <i class="arg">cmdprefix</i></a></dt>
          236  +<dd></dd>
          237  +<dt><a name="7"><b class="cmd">ehandler</b> <i class="arg">cmdprefix</i></a></dt>
          238  +<dd><p><em>Note:</em> While the form <b class="cmd">ehandler</b> is still usable, it is
          239  +deprecated and will be removed in a future release.
          240  +This is an advanced command which should normally only be specified at
   236    241   the top of the whole hierarchy (from which its value will
   237    242   automatically propagate to all subordinates).</p>
   238    243   <p>At runtime the framework will call the specified command prefix
   239    244   with a single argument, a script whose execution is equivalent to the
   240    245   phases <i class="term">Parsing</i>, <i class="term">Completion</i>, and <i class="term">Execution</i> of the
   241    246   framework, as described in <i class="term"><a href="cmdr_flow.html">Cmdr - Runtime Processing Flow</a></i>.
   242    247   The handler <em>must</em> call this script, and can perform any
................................................................................
   250    255   and/or actions may have set during their execution.
   251    256   This is especially important if the interactive command line shells of
   252    257   the framework are enabled. Without such a handler and its bespoke
   253    258   cleanup code transient state <em>will</em> leak between multiple
   254    259   commands run from such a shell, something which is definitely not
   255    260   wanted.</p></li>
   256    261   </ol></dd>
   257         -<dt><a name="7"><b class="cmd">shandler</b> <i class="arg">cmdprefix</i></a></dt>
          262  +<dt><a name="8"><b class="cmd">custom-setup</b> <i class="arg">cmdprefix</i></a></dt>
   258    263   <dd><p>This is an advanced command which should normally only be specified at
   259    264   the top of the whole hierarchy (from which its value will
   260    265   automatically propagate to all subordinates).</p>
   261         -<p>At runtime the framework will call the specified command prefix
   262         -with a single argument, the command of the actor we wish to
   263         -initialize.
          266  +<p>When called multiple times, the specified commands
          267  +accumulate. This makes it easy to specify several indepedent
          268  +customizations.</p>
          269  +<p>At runtime the framework will invoke all the specified commands
          270  +with a single argument, the command of the actor to initialize.
   264    271   The command prefix is then allowed to modify that actor as it sees
   265    272   fit. The common use case will be the extension of the object with
   266    273   additional subordinates.
   267    274   An example of this is the package <b class="package"><a href="cmdr_history.html">cmdr::history</a></b> which
   268    275   provides a command <b class="cmd">cmdr::history::attach</b> to add the history
   269    276   management commands to the actor in question.</p></dd>
   270         -<dt><a name="8"><b class="cmd">officer</b> <i class="arg">name</i> <i class="arg">script</i></a></dt>
          277  +<dt><a name="9"><b class="cmd">officer</b> <i class="arg">name</i> <i class="arg">script</i></a></dt>
   271    278   <dd><p>This command creates a named subordinate <i class="term">officer</i> with its
   272    279   specification <i class="arg">script</i> of officer commands as described here.</p></dd>
   273         -<dt><a name="9"><b class="cmd">private</b> <i class="arg">name</i> <i class="arg">script</i> <i class="arg">cmdprefix</i></a></dt>
          280  +<dt><a name="10"><b class="cmd">private</b> <i class="arg">name</i> <i class="arg">script</i> <i class="arg">cmdprefix</i></a></dt>
   274    281   <dd><p>This command creates a named subordinate <i class="term">private</i> with its
   275    282   specification <i class="arg">script</i> of private commands
   276    283   (See <i class="term"><a href="cmdr_dsl_private.html">Cmdr - Private Specification Language</a></i>), and a command prefix to invoke
   277    284   when it is chosen.</p>
   278    285   <p>This command prefix is called with a single argument, the
   279    286   <b class="package"><a href="cmdr_config.html">cmdr::config</a></b> instance holding the <i class="term">parameter</i>s of the
   280    287   private.</p>
   281    288   <p>For an example see section <i class="term">Simple backend</i>
   282    289   of <i class="term"><a href="cmdr_dsl.html">Cmdr - Introduction to the Specification Language</a></i>.</p></dd>
   283         -<dt><a name="10"><b class="cmd">undocumented</b></a></dt>
          290  +<dt><a name="11"><b class="cmd">undocumented</b></a></dt>
   284    291   <dd><p>This command excludes the <i class="term">officer</i> (and its subordinates) from
   285    292   the generated help.
   286    293   Note that subordinates reachable through aliases may be included,
   287    294   under the alias name, if they are not explicitly excluded themselves.</p></dd>
   288    295   </dl>
   289    296   <p>Please continue reading with <i class="term"><a href="cmdr_dsl_private.html">Cmdr - Private Specification Language</a></i>.</p>
   290    297   </div>

Changes to embedded/www/doc/files/cmdr_dsl_parameter.html.

   150    150   <li><a href="#14"><b class="cmd">immediate</b></a></li>
   151    151   <li><a href="#15"><b class="cmd">validate</b> <i class="arg">cmdprefix</i></a></li>
   152    152   <li><a href="#16"><b class="cmd">presence</b></a></li>
   153    153   <li><a href="#17"><b class="cmd">when-complete</b> <i class="arg">cmdprefix</i></a></li>
   154    154   <li><a href="#18"><b class="cmd">when-set</b> <i class="arg">cmdprefix</i></a></li>
   155    155   <li><a href="#19"><b class="cmd">stop!</b></a></li>
   156    156   <li><a href="#20"><b class="cmd">touch</b> <i class="arg">name</i> <i class="arg">value</i></a></li>
   157         -<li><a href="#21"><b class="cmd">touch</b> <i class="arg">name</i> <i class="arg">value</i></a></li>
          157  +<li><a href="#21"><b class="cmd">touch?</b> <i class="arg">name</i> <i class="arg">value</i></a></li>
   158    158   <li><a href="#22"><b class="cmd">disallow</b> <i class="arg">name</i></a></li>
   159    159   </ul>
   160    160   </div>
   161    161   </div>
   162    162   <div id="section1" class="section"><h2><a name="section1">Description</a></h2>
   163    163   <p>Welcome to the Cmdr project, written by Andreas Kupries.</p>
   164    164   <p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p>
................................................................................
   523    523   <p>clause then ensures an error when interactive entry gets disabled,
   524    524   either global, or for the specific command.</p></dd>
   525    525   <dt><a name="20"><b class="cmd">touch</b> <i class="arg">name</i> <i class="arg">value</i></a></dt>
   526    526   <dd><p>The returned callback sets the <i class="arg">name</i>d sibling parameter to the
   527    527   specified <i class="arg">value</i>. A simple method of communication between
   528    528   parameters of a command.</p>
   529    529   <p>Useful for use with <b class="cmd">when-set</b> and/or <b class="cmd">when-complete</b></p></dd>
   530         -<dt><a name="21"><b class="cmd">touch</b> <i class="arg">name</i> <i class="arg">value</i></a></dt>
          530  +<dt><a name="21"><b class="cmd">touch?</b> <i class="arg">name</i> <i class="arg">value</i></a></dt>
   531    531   <dd><p>The returned callback sets the <i class="arg">name</i>d sibling parameter to the
   532    532   specified <i class="arg">value</i>, if and only if that parameter exists. A simple
   533    533   method of communication between parameters of a command, where the
   534    534   sibling may not exists, depending on usage context.</p>
   535    535   <p>Useful for use with <b class="cmd">when-set</b> and/or <b class="cmd">when-complete</b></p></dd>
   536    536   <dt><a name="22"><b class="cmd">disallow</b> <i class="arg">name</i></a></dt>
   537    537   <dd><p>This command simplifies the use of the parameter's <b class="method">lock</b>

Changes to embedded/www/doc/files/cmdr_history.html.

   155    155   <p>After attachment the actor will accept the following 3 commands:</p>
   156    156   <pre class="example">
   157    157       history list ?n?  - Show last n history entries. Defaults to all.
   158    158       history clear     - Drop all history entries
   159    159       history limit ?n? - Limit history to 'n' entries (n &gt;= 0). Unlimited for n &lt; 0.
   160    160   </pre>
   161    161   <p>Under most circumstances the attachment is handled through the
   162         -<b class="cmd">shandler</b> method of officers. See <b class="package"><a href="cmdr_officer.html">cmdr::officer</a></b>, and
          162  +method <b class="cmd">custom-setup</b> of officers. See <b class="package"><a href="cmdr_officer.html">cmdr::officer</a></b>, and
   163    163   the <span class="sectref"><a href="#section3">Example</a></span> for more information.</p></dd>
   164    164   <dt><a name="2"><b class="cmd">::cmdr::history</b> <b class="method">save-to</b> <i class="arg">path</i></a></dt>
   165    165   <dd><p>When invoked this command sets the package-wide history save file used
   166    166   by the commands to the <i class="arg">path</i>.</p>
   167    167   <p>The result of the command is the empty string.</p></dd>
   168    168   <dt><a name="3"><b class="cmd">::cmdr::history</b> <b class="method">initial-limit</b> <i class="arg">limit</i></a></dt>
   169    169   <dd><p>When invoked this command sets the package-wide limit on history size
................................................................................
   175    175   <p>Below an example on how to activate history for an officer.
   176    176   The example was taken from the <b class="cmd">fx</b> application extending the
   177    177   <b class="cmd">fossil</b> DVCS.</p>
   178    178   <pre class="example">
   179    179   cmdr history initial-limit 20
   180    180   cmdr history save-to       ~/.fx_history
   181    181   cmdr create fx::fx [file tail $::argv0] {
   182         -    shandler ::cmdr::history::attach
          182  +    custom-setup ::cmdr::history::attach
   183    183       [...]
   184    184   }
   185    185   </pre>
   186    186   </div>
   187    187   <div id="section4" class="section"><h2><a name="section4">Bugs, Ideas, Feedback</a></h2>
   188    188   <p>Both the package(s) and this documentation will undoubtedly contain
   189    189   bugs and other problems.

Changes to embedded/www/doc/files/cmdr_officer.html.

   133    133   <li><a href="#3"><b class="cmd">&lt;officer&gt;</b> <b class="method">children</b></a></li>
   134    134   <li><a href="#4"><b class="cmd">&lt;officer&gt;</b> <b class="method">complete</b> <i class="arg">line</i></a></li>
   135    135   <li><a href="#5"><b class="cmd">&lt;officer&gt;</b> <b class="method">complete-words</b> <i class="arg">parse</i></a></li>
   136    136   <li><a href="#6"><b class="cmd">&lt;officer&gt;</b> <b class="method">continued</b> <i class="arg">line</i></a></li>
   137    137   <li><a href="#7"><b class="cmd">&lt;officer&gt;</b> <b class="method">default</b></a></li>
   138    138   <li><a href="#8"><b class="cmd">&lt;officer&gt;</b> <b class="method">dispatch</b> <i class="arg">cmd</i></a></li>
   139    139   <li><a href="#9"><b class="cmd">&lt;officer&gt;</b> <b class="method">do</b> <span class="opt">?<i class="arg">word</i>...?</span></a></li>
   140         -<li><a href="#10"><b class="cmd">&lt;officer&gt;</b> <b class="method">ehandler</b> <i class="arg">cmd</i></a></li>
   141         -<li><a href="#11"><b class="cmd">&lt;officer&gt;</b> <b class="method">exit</b></a></li>
   142         -<li><a href="#12"><b class="cmd">&lt;officer&gt;</b> <b class="method">extend</b> <i class="arg">path</i> <i class="arg">arguments</i> <i class="arg">action</i></a></li>
   143         -<li><a href="#13"><b class="cmd">&lt;officer&gt;</b> <b class="method">find</b> <i class="arg">path</i></a></li>
   144         -<li><a href="#14"><b class="cmd">&lt;officer&gt;</b> <b class="method">has</b> <i class="arg">name</i></a></li>
   145         -<li><a href="#15"><b class="cmd">&lt;officer&gt;</b> <b class="method">hasdefault</b></a></li>
   146         -<li><a href="#16"><b class="cmd">&lt;officer&gt;</b> <b class="method">help</b> <span class="opt">?<i class="arg">prefix</i>?</span></a></li>
   147         -<li><a href="#17"><b class="cmd">&lt;officer&gt;</b> <b class="method">known</b></a></li>
   148         -<li><a href="#18"><b class="cmd">&lt;officer&gt;</b> <b class="method">learn</b> <i class="arg">script</i></a></li>
   149         -<li><a href="#19"><b class="cmd">&lt;officer&gt;</b> <b class="method">lookup</b> <i class="arg">name</i></a></li>
   150         -<li><a href="#20"><b class="cmd">&lt;officer&gt;</b> <b class="method">prompt1</b></a></li>
   151         -<li><a href="#21"><b class="cmd">&lt;officer&gt;</b> <b class="method">prompt2</b></a></li>
   152         -<li><a href="#22"><b class="cmd">&lt;officer&gt;</b> <b class="method">report</b> <i class="arg">what</i> <i class="arg">data</i></a></li>
   153         -<li><a href="#23"><b class="cmd">&lt;officer&gt;</b> <b class="method">shell-exit</b> <i class="arg">config</i></a></li>
          140  +<li><a href="#10"><b class="cmd">&lt;officer&gt;</b> <b class="method">intercept</b> <i class="arg">cmd</i></a></li>
          141  +<li><a href="#11"><b class="cmd">&lt;officer&gt;</b> <b class="method">ehandler</b> <i class="arg">cmd</i></a></li>
          142  +<li><a href="#12"><b class="cmd">&lt;officer&gt;</b> <b class="method">custom-setup</b> <i class="arg">cmd</i></a></li>
          143  +<li><a href="#13"><b class="cmd">&lt;officer&gt;</b> <b class="method">exit</b></a></li>
          144  +<li><a href="#14"><b class="cmd">&lt;officer&gt;</b> <b class="method">extend</b> <i class="arg">path</i> <i class="arg">arguments</i> <i class="arg">action</i></a></li>
          145  +<li><a href="#15"><b class="cmd">&lt;officer&gt;</b> <b class="method">find</b> <i class="arg">path</i></a></li>
          146  +<li><a href="#16"><b class="cmd">&lt;officer&gt;</b> <b class="method">has</b> <i class="arg">name</i></a></li>
          147  +<li><a href="#17"><b class="cmd">&lt;officer&gt;</b> <b class="method">hasdefault</b></a></li>
          148  +<li><a href="#18"><b class="cmd">&lt;officer&gt;</b> <b class="method">help</b> <span class="opt">?<i class="arg">prefix</i>?</span></a></li>
          149  +<li><a href="#19"><b class="cmd">&lt;officer&gt;</b> <b class="method">known</b></a></li>
          150  +<li><a href="#20"><b class="cmd">&lt;officer&gt;</b> <b class="method">learn</b> <i class="arg">script</i></a></li>
          151  +<li><a href="#21"><b class="cmd">&lt;officer&gt;</b> <b class="method">lookup</b> <i class="arg">name</i></a></li>
          152  +<li><a href="#22"><b class="cmd">&lt;officer&gt;</b> <b class="method">prompt1</b></a></li>
          153  +<li><a href="#23"><b class="cmd">&lt;officer&gt;</b> <b class="method">prompt2</b></a></li>
          154  +<li><a href="#24"><b class="cmd">&lt;officer&gt;</b> <b class="method">report</b> <i class="arg">what</i> <i class="arg">data</i></a></li>
          155  +<li><a href="#25"><b class="cmd">&lt;officer&gt;</b> <b class="method">shell-exit</b> <i class="arg">config</i></a></li>
   154    156   </ul>
   155    157   </div>
   156    158   </div>
   157    159   <div id="section1" class="section"><h2><a name="section1">Description</a></h2>
   158    160   <p>Welcome to the Cmdr project, written by Andreas Kupries.</p>
   159    161   <p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p>
   160    162   <p>This package implements <em>officers</em>, the inner nodes of command
................................................................................
   245    247   to the sub-ordinates of the officer. When done without error it
   246    248   recursively invokes the chosen sub-ordinate to continue processing.</p>
   247    249   <p>This represents the &quot;Dispatch&quot; phase of command line processing.</p>
   248    250   <dl class="arguments">
   249    251   <dt>string <i class="arg">word</i></dt>
   250    252   <dd><p>The words of the command line to parse and match to parameters.</p></dd>
   251    253   </dl></dd>
   252         -<dt><a name="10"><b class="cmd">&lt;officer&gt;</b> <b class="method">ehandler</b> <i class="arg">cmd</i></a></dt>
   253         -<dd><p>This method specifies a command prefix to wrap around the parsing of
          254  +<dt><a name="10"><b class="cmd">&lt;officer&gt;</b> <b class="method">intercept</b> <i class="arg">cmd</i></a></dt>
          255  +<dd></dd>
          256  +<dt><a name="11"><b class="cmd">&lt;officer&gt;</b> <b class="method">ehandler</b> <i class="arg">cmd</i></a></dt>
          257  +<dd><p><em>Note:</em> While the form <b class="method">ehandler</b> is still usable, it is
          258  +deprecated and will be removed in a future release.
          259  +This method specifies a command prefix to wrap around the parsing of
   254    260   the command line for the officer, and the execution of its action.</p>
   255    261   <dl class="arguments">
   256    262   <dt>cmd-prefix <i class="arg">cmd</i></dt>
   257    263   <dd><p>A command prefix taking a single argument, a script. The command
   258    264   prefix has to execute this script in its caller's context. The script
   259    265   will parse words for the officer,m and perform its action. The command
   260    266   prefix then has the responsbility to perform any custom cleanup action
   261    267   required by the application using the framework to prevent leakage of
   262    268   data between multiple commands executed one after the other (i.e. in
   263    269   an interactive shell run by the framework).</p></dd>
   264    270   </dl></dd>
   265         -<dt><a name="11"><b class="cmd">&lt;officer&gt;</b> <b class="method">exit</b></a></dt>
          271  +<dt><a name="12"><b class="cmd">&lt;officer&gt;</b> <b class="method">custom-setup</b> <i class="arg">cmd</i></a></dt>
          272  +<dd><p>This method specifies a command prefix which will be run all the
          273  +regular setup of the officer from its specification is done, to
          274  +perform customizations.</p>
          275  +<p>An example of this can be seen in the package
          276  +<b class="package"><a href="cmdr_history.html">cmdr::history</a></b>. It provides a command
          277  +<b class="cmd">cmdr::history::attach</b> to add the history management commands to
          278  +the actor in question, suitable as argument to this method.</p>
          279  +<p>When called multiple times, the specified commands
          280  +accumulate. This makes it easy to specify several indepedent
          281  +customizations.</p>
          282  +<dl class="arguments">
          283  +<dt>cmd-prefix <i class="arg">cmd</i></dt>
          284  +<dd><p>A command prefix taking a single argument, the instance command of an
          285  +<b class="package">cmd::actor</b>. The command prefix has full access to this actor
          286  +and can modify it as it sees fit. The common use case will be the
          287  +extension of the actor with additional subordinates.</p></dd>
          288  +</dl></dd>
          289  +<dt><a name="13"><b class="cmd">&lt;officer&gt;</b> <b class="method">exit</b></a></dt>
   266    290   <dd><p>This hook-method for the main shell returns a boolean value indicating
   267    291   whether the main shell was stopped and has to exit (<b class="const">true</b>), or
   268    292   not (<b class="const">false</b>).</p></dd>
   269         -<dt><a name="12"><b class="cmd">&lt;officer&gt;</b> <b class="method">extend</b> <i class="arg">path</i> <i class="arg">arguments</i> <i class="arg">action</i></a></dt>
          293  +<dt><a name="14"><b class="cmd">&lt;officer&gt;</b> <b class="method">extend</b> <i class="arg">path</i> <i class="arg">arguments</i> <i class="arg">action</i></a></dt>
   270    294   <dd><p>A convenience method to create a &quot;private&quot; command underneath this
   271    295   officer, with the command name <i class="arg">path</i> (a list of names). Any
   272    296   intermediate officers are created as needed. An error is thrown if any
   273    297   of the intermediates already exist as a (non-extensible) private, or
   274    298   if the last command already exists.</p>
   275    299   <p>The arguments after the <i class="arg">path</i> match the constructor of
   276    300   privates in number and semantics.</p>
................................................................................
   285    309   <dt>cmd-prefix <i class="arg">action</i></dt>
   286    310   <dd><p>The command prefix to invoke when this private is selected for
   287    311   execution.  It takes a single argument, the instance command of the
   288    312   hidden <b class="package"><a href="cmdr_config.html">cmdr::config</a></b> container holding the private's
   289    313   parameters. The result of the action, if there is any, is ignored by
   290    314   the framework.</p></dd>
   291    315   </dl></dd>
   292         -<dt><a name="13"><b class="cmd">&lt;officer&gt;</b> <b class="method">find</b> <i class="arg">path</i></a></dt>
          316  +<dt><a name="15"><b class="cmd">&lt;officer&gt;</b> <b class="method">find</b> <i class="arg">path</i></a></dt>
   293    317   <dd><p>This method returns the instance command of the sub-ordinate with the
   294    318   given <i class="arg">path</i> (a list) of names. An error is thrown if such a sub-ordinate
   295    319   does not exist. This is an extension of <b class="method">lookup</b> to paths of names.</p>
   296    320   <p>An empty <i class="arg">path</i> is allowed and refers to the officer itself.</p>
   297    321   <dl class="arguments">
   298    322   <dt>string <i class="arg">path</i></dt>
   299    323   <dd><p>The path of names to the sub-ordinate to look for.</p></dd>
   300    324   </dl></dd>
   301         -<dt><a name="14"><b class="cmd">&lt;officer&gt;</b> <b class="method">has</b> <i class="arg">name</i></a></dt>
          325  +<dt><a name="16"><b class="cmd">&lt;officer&gt;</b> <b class="method">has</b> <i class="arg">name</i></a></dt>
   302    326   <dd><p>This method returns a boolean value indicating if this officer has a
   303    327   sub-ordinate of the given <i class="arg">name</i> (<b class="const">true</b>), or not
   304    328   (<b class="const">false</b>). See also method <b class="method">lookup</b>.</p>
   305    329   <dl class="arguments">
   306    330   <dt>string <i class="arg">name</i></dt>
   307    331   <dd><p>The name of the sub-ordinate to look for.</p></dd>
   308    332   </dl></dd>
   309         -<dt><a name="15"><b class="cmd">&lt;officer&gt;</b> <b class="method">hasdefault</b></a></dt>
          333  +<dt><a name="17"><b class="cmd">&lt;officer&gt;</b> <b class="method">hasdefault</b></a></dt>
   310    334   <dd><p>This method returns a boolean value indicating if this officer has a
   311    335   default sub-ordinate (<b class="const">true</b>), or not (<b class="const">false</b>). See also
   312    336   method <b class="method">default</b>.</p></dd>
   313         -<dt><a name="16"><b class="cmd">&lt;officer&gt;</b> <b class="method">help</b> <span class="opt">?<i class="arg">prefix</i>?</span></a></dt>
          337  +<dt><a name="18"><b class="cmd">&lt;officer&gt;</b> <b class="method">help</b> <span class="opt">?<i class="arg">prefix</i>?</span></a></dt>
   314    338   <dd><p>This method returns the help information for the officer and its
   315    339   subordinates. The <i class="arg">prefix</i>, if specified provides the name of the
   316    340   officer within the help data. It defaults to the empty string.
   317    341   The result of the command is a structure of the form
   318    342   described in section <span class="sectref"><a href="#section4">Help Information</a></span>.</p>
   319    343   <dl class="arguments">
   320    344   <dt>string <i class="arg">prefix</i></dt>
   321    345   <dd><p>The name to use for the officer within the generated help.</p></dd>
   322    346   </dl></dd>
   323         -<dt><a name="17"><b class="cmd">&lt;officer&gt;</b> <b class="method">known</b></a></dt>
          347  +<dt><a name="19"><b class="cmd">&lt;officer&gt;</b> <b class="method">known</b></a></dt>
   324    348   <dd><p>This method returns a list containing the names of the subordinate
   325    349   actors managed by this officer.
   326    350   See also method <b class="method">children</b> which returns a list of instance
   327    351   commands.
   328    352   See also method <b class="method">lookup</b> to map names to instance commands.</p></dd>
   329         -<dt><a name="18"><b class="cmd">&lt;officer&gt;</b> <b class="method">learn</b> <i class="arg">script</i></a></dt>
          353  +<dt><a name="20"><b class="cmd">&lt;officer&gt;</b> <b class="method">learn</b> <i class="arg">script</i></a></dt>
   330    354   <dd><p>This method takes a regular specification script and uses it to extend
   331    355   the set of subordinates known to this officer. This is the same type
   332    356   of script as used during construction, except here we dynamically
   333    357   extend the officer.</p>
   334    358   <dl class="arguments">
   335    359   <dt>script <i class="arg">actions</i></dt>
   336    360   <dd><p>The specification of the officer's additional subordinates.
   337    361   Please read <i class="term"><a href="cmdr_dsl_officer.html">Cmdr - Officer Specification Language</a></i> for the details.</p></dd>
   338    362   </dl></dd>
   339         -<dt><a name="19"><b class="cmd">&lt;officer&gt;</b> <b class="method">lookup</b> <i class="arg">name</i></a></dt>
          363  +<dt><a name="21"><b class="cmd">&lt;officer&gt;</b> <b class="method">lookup</b> <i class="arg">name</i></a></dt>
   340    364   <dd><p>This method returns the instance command of the sub-ordinate with the
   341    365   given <i class="arg">name</i>. An error is thrown if such a sub-ordinate does not
   342    366   exist. See also method <b class="method">has</b>.</p>
   343    367   <dl class="arguments">
   344    368   <dt>string <i class="arg">name</i></dt>
   345    369   <dd><p>The name of the sub-ordinate to look for.</p></dd>
   346    370   </dl></dd>
   347         -<dt><a name="20"><b class="cmd">&lt;officer&gt;</b> <b class="method">prompt1</b></a></dt>
          371  +<dt><a name="22"><b class="cmd">&lt;officer&gt;</b> <b class="method">prompt1</b></a></dt>
   348    372   <dd><p>This hook-method for the main shell returns the primary prompt string
   349    373   to use.</p></dd>
   350         -<dt><a name="21"><b class="cmd">&lt;officer&gt;</b> <b class="method">prompt2</b></a></dt>
          374  +<dt><a name="23"><b class="cmd">&lt;officer&gt;</b> <b class="method">prompt2</b></a></dt>
   351    375   <dd><p>This hook-method for the main shell returns the secondary prompt
   352    376   string for use within a continuation. As the main shell does not
   353    377   support continuation lines it should not be invoked ever, and thus
   354    378   always throws an error should it be invoked.</p></dd>
   355         -<dt><a name="22"><b class="cmd">&lt;officer&gt;</b> <b class="method">report</b> <i class="arg">what</i> <i class="arg">data</i></a></dt>
          379  +<dt><a name="24"><b class="cmd">&lt;officer&gt;</b> <b class="method">report</b> <i class="arg">what</i> <i class="arg">data</i></a></dt>
   356    380   <dd><p>This hook-method for the main shell is responsible for the reporting
   357    381   of the command results.</p>
   358    382   <p>Its result is the empty string.</p>
   359    383   <dl class="arguments">
   360    384   <dt>enum <i class="arg">what</i></dt>
   361    385   <dd><p>The result code of the command, one of <b class="const">ok</b>, or <b class="const">fail</b>.</p></dd>
   362    386   <dt>any <i class="arg">data</i></dt>
   363    387   <dd><p>The result of the command, or an error message in case of failure.</p></dd>
   364    388   </dl></dd>
   365         -<dt><a name="23"><b class="cmd">&lt;officer&gt;</b> <b class="method">shell-exit</b> <i class="arg">config</i></a></dt>
          389  +<dt><a name="25"><b class="cmd">&lt;officer&gt;</b> <b class="method">shell-exit</b> <i class="arg">config</i></a></dt>
   366    390   <dd><p>This is the backend for a private ending the main shell,
   367    391   be it automatically created by the pacge, or by a user.</p>
   368    392   <p>The argument is the <b class="package"><a href="cmdr_config.html">cmdr::config</a></b>
   369    393   instance holding the parameters. The method does not
   370    394   expect any and ignore it.</p></dd>
   371    395   </dl>
   372    396   </div>

Changes to embedded/www/doc/files/cmdr_private.html.

   128    128   <li>package require <b class="pkgname">cmdr::private</b></li>
   129    129   </ul>
   130    130   <ul class="syntax">
   131    131   <li><a href="#1"><b class="cmd">::cmdr::private</b> <b class="method">new</b> <i class="arg">super</i> <i class="arg">name</i> <i class="arg">arguments</i> <i class="arg">action</i></a></li>
   132    132   <li><a href="#2"><b class="cmd">::cmdr::private</b> <b class="method">create</b> <i class="arg">obj</i> <i class="arg">super</i> <i class="arg">name</i> <i class="arg">arguments</i> <i class="arg">action</i></a></li>
   133    133   <li><a href="#3"><b class="cmd">&lt;private&gt;</b> <b class="method">complete-words</b> <i class="arg">parse</i></a></li>
   134    134   <li><a href="#4"><b class="cmd">&lt;private&gt;</b> <b class="method">do</b> <span class="opt">?<i class="arg">word</i>...?</span></a></li>
   135         -<li><a href="#5"><b class="cmd">&lt;private&gt;</b> <b class="method">ehandler</b> <i class="arg">cmd</i></a></li>
   136         -<li><a href="#6"><b class="cmd">&lt;private&gt;</b> <b class="method">find</b> <i class="arg">path</i></a></li>
   137         -<li><a href="#7"><b class="cmd">&lt;private&gt;</b> <b class="method">help</b> <span class="opt">?<i class="arg">prefix</i>?</span></a></li>
   138         -<li><a href="#8"><b class="cmd">&lt;private&gt;</b> <b class="method">unknown</b> <i class="arg">m</i> <span class="opt">?<i class="arg">word</i>...?</span></a></li>
          135  +<li><a href="#5"><b class="cmd">&lt;private&gt;</b> <b class="method">intercept</b> <i class="arg">cmd</i></a></li>
          136  +<li><a href="#6"><b class="cmd">&lt;private&gt;</b> <b class="method">ehandler</b> <i class="arg">cmd</i></a></li>
          137  +<li><a href="#7"><b class="cmd">&lt;private&gt;</b> <b class="method">custom-setup</b> <i class="arg">cmd</i></a></li>
          138  +<li><a href="#8"><b class="cmd">&lt;private&gt;</b> <b class="method">find</b> <i class="arg">path</i></a></li>
          139  +<li><a href="#9"><b class="cmd">&lt;private&gt;</b> <b class="method">help</b> <span class="opt">?<i class="arg">prefix</i>?</span></a></li>
          140  +<li><a href="#10"><b class="cmd">&lt;private&gt;</b> <b class="method">unknown</b> <i class="arg">m</i> <span class="opt">?<i class="arg">word</i>...?</span></a></li>
   139    141   </ul>
   140    142   </div>
   141    143   </div>
   142    144   <div id="section1" class="section"><h2><a name="section1">Description</a></h2>
   143    145   <p>Welcome to the Cmdr project, written by Andreas Kupries.</p>
   144    146   <p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p>
   145    147   <p>This package implements <em>privates</em>, the leaves of command
................................................................................
   206    208   to the parameters of the private, be they arguments, or options. When
   207    209   done without error it invokes the action of the private with the
   208    210   filled container of parameters.</p>
   209    211   <dl class="arguments">
   210    212   <dt>string <i class="arg">word</i></dt>
   211    213   <dd><p>The words of the command line to parse and match to parameters.</p></dd>
   212    214   </dl></dd>
   213         -<dt><a name="5"><b class="cmd">&lt;private&gt;</b> <b class="method">ehandler</b> <i class="arg">cmd</i></a></dt>
   214         -<dd><p>This method specifies a command prefix to wrap around the parsing of
          215  +<dt><a name="5"><b class="cmd">&lt;private&gt;</b> <b class="method">intercept</b> <i class="arg">cmd</i></a></dt>
          216  +<dd></dd>
          217  +<dt><a name="6"><b class="cmd">&lt;private&gt;</b> <b class="method">ehandler</b> <i class="arg">cmd</i></a></dt>
          218  +<dd><p><em>Note:</em> While the form <b class="method">ehandler</b> is still usable, it is
          219  +deprecated and will be removed in a future release.
          220  +This method specifies a command prefix to wrap around the parsing of
   215    221   the command line for the private, and the execution of its action.</p>
   216    222   <dl class="arguments">
   217    223   <dt>cmd-prefix <i class="arg">cmd</i></dt>
   218    224   <dd><p>A command prefix taking a single argument, a script. The command
   219    225   prefix has to execute this script in its caller's context. The script
   220    226   will parse words for the private,m and perform its action. The command
   221    227   prefix then has the responsbility to perform any custom cleanup action
   222    228   required by the application using the framework to prevent leakage of
   223    229   data between multiple commands executed one after the other (i.e. in
   224    230   an interactive shell run by the framework).</p></dd>
   225    231   </dl></dd>
   226         -<dt><a name="6"><b class="cmd">&lt;private&gt;</b> <b class="method">find</b> <i class="arg">path</i></a></dt>
          232  +<dt><a name="7"><b class="cmd">&lt;private&gt;</b> <b class="method">custom-setup</b> <i class="arg">cmd</i></a></dt>
          233  +<dd><p>This method specifies a command prefix which will be run all the
          234  +regular setup of an officer from its specification is done, to perform
          235  +customizations.</p>
          236  +<p>The <b class="cmd">&lt;private&gt;</b> here ignores such calls.</p>
          237  +<p>The method exists only to avoid having to special-case code the
          238  +places propagating these commands down the hierarchy.</p></dd>
          239  +<dt><a name="8"><b class="cmd">&lt;private&gt;</b> <b class="method">find</b> <i class="arg">path</i></a></dt>
   227    240   <dd><p>This method returns the instance command of the sub-ordinate with the
   228    241   given <i class="arg">path</i> of names. An error is thrown if such a sub-ordinate
   229    242   does not exist, i.e. whenever <i class="arg">path</i> is not empty, as a private
   230    243   has no sub-ordinates, ever.</p>
   231    244   <p>Note, as implied above, an empty <i class="arg">path</i> is allowed and
   232    245   refers to the private itself.</p>
   233    246   <p>See also method <b class="method">find</b> of <b class="package">cdmr::officer</b> for the
   234    247   high-end of the recursion which may end in this method.</p>
   235    248   <dl class="arguments">
   236    249   <dt>string <i class="arg">path</i></dt>
   237    250   <dd><p>The path of names to the sub-ordinate to look for.</p></dd>
   238    251   </dl></dd>
   239         -<dt><a name="7"><b class="cmd">&lt;private&gt;</b> <b class="method">help</b> <span class="opt">?<i class="arg">prefix</i>?</span></a></dt>
          252  +<dt><a name="9"><b class="cmd">&lt;private&gt;</b> <b class="method">help</b> <span class="opt">?<i class="arg">prefix</i>?</span></a></dt>
   240    253   <dd><p>This method returns the help information for the private and its
   241    254   parameters. The <i class="arg">prefix</i>, if specified provides the name of the
   242    255   private within the help data. It defaults to the empty string.
   243    256   The result of the command is a structure of the form
   244    257   described in section <span class="sectref"><a href="#section4">Help Information</a></span>.</p>
   245    258   <dl class="arguments">
   246    259   <dt>string <i class="arg">prefix</i></dt>
   247    260   <dd><p>The name to use for the private within the generated help.</p></dd>
   248    261   </dl></dd>
   249         -<dt><a name="8"><b class="cmd">&lt;private&gt;</b> <b class="method">unknown</b> <i class="arg">m</i> <span class="opt">?<i class="arg">word</i>...?</span></a></dt>
          262  +<dt><a name="10"><b class="cmd">&lt;private&gt;</b> <b class="method">unknown</b> <i class="arg">m</i> <span class="opt">?<i class="arg">word</i>...?</span></a></dt>
   250    263   <dd><p>This method overrides the standard behaviour for unknown methods.
   251    264   Instead of throwing an error they are routed to the hidden container
   252    265   of the private's parameters, of class <b class="package"><a href="cmdr_config.html">cmdr::config</a></b>.</p>
   253    266   <dl class="arguments">
   254    267   <dt>string <i class="arg">m</i></dt>
   255    268   <dd><p>The name of the unknown method.</p></dd>
   256    269   <dt>string <i class="arg">word</i></dt>

Added embedded/www/doc/files/cmdr_table.html.

            1  +
            2  +<html><head>
            3  +<title>cmdr::table - Cmdr, a framework for command line parsing and dispatch</title>
            4  +<style type="text/css"><!--
            5  +    HTML {
            6  +	background: 	#FFFFFF;
            7  +	color: 		black;
            8  +    }
            9  +    BODY {
           10  +	background: 	#FFFFFF;
           11  +	color:	 	black;
           12  +    }
           13  +    DIV.doctools {
           14  +	margin-left:	10%;
           15  +	margin-right:	10%;
           16  +    }
           17  +    DIV.doctools H1,DIV.doctools H2 {
           18  +	margin-left:	-5%;
           19  +    }
           20  +    H1, H2, H3, H4 {
           21  +	margin-top: 	1em;
           22  +	font-family:	sans-serif;
           23  +	font-size:	large;
           24  +	color:		#005A9C;
           25  +	background: 	transparent;
           26  +	text-align:		left;
           27  +    }
           28  +    H1.title {
           29  +	text-align: center;
           30  +    }
           31  +    UL,OL {
           32  +	margin-right: 0em;
           33  +	margin-top: 3pt;
           34  +	margin-bottom: 3pt;
           35  +    }
           36  +    UL LI {
           37  +	list-style: disc;
           38  +    }
           39  +    OL LI {
           40  +	list-style: decimal;
           41  +    }
           42  +    DT {
           43  +	padding-top: 	1ex;
           44  +    }
           45  +    UL.toc,UL.toc UL, UL.toc UL UL {
           46  +	font:		normal 12pt/14pt sans-serif;
           47  +	list-style:	none;
           48  +    }
           49  +    LI.section, LI.subsection {
           50  +	list-style: 	none;
           51  +	margin-left: 	0em;
           52  +	text-indent:	0em;
           53  +	padding: 	0em;
           54  +    }
           55  +    PRE {
           56  +	display: 	block;
           57  +	font-family:	monospace;
           58  +	white-space:	pre;
           59  +	margin:		0%;
           60  +	padding-top:	0.5ex;
           61  +	padding-bottom:	0.5ex;
           62  +	padding-left:	1ex;
           63  +	padding-right:	1ex;
           64  +	width:		100%;
           65  +    }
           66  +    PRE.example {
           67  +	color: 		black;
           68  +	background: 	#f5dcb3;
           69  +	border:		1px solid black;
           70  +    }
           71  +    UL.requirements LI, UL.syntax LI {
           72  +	list-style: 	none;
           73  +	margin-left: 	0em;
           74  +	text-indent:	0em;
           75  +	padding:	0em;
           76  +    }
           77  +    DIV.synopsis {
           78  +	color: 		black;
           79  +	background: 	#80ffff;
           80  +	border:		1px solid black;
           81  +	font-family:	serif;
           82  +	margin-top: 	1em;
           83  +	margin-bottom: 	1em;
           84  +    }
           85  +    UL.syntax {
           86  +	margin-top: 	1em;
           87  +	border-top:	1px solid black;
           88  +    }
           89  +    UL.requirements {
           90  +	margin-bottom: 	1em;
           91  +	border-bottom:	1px solid black;
           92  +    }
           93  +--></style>
           94  +</head>
           95  +<! -- Generated from file 'cmdr_table.man' by tcllib/doctools with format 'html'
           96  +   -->
           97  +<! -- Copyright &copy; 2013-2016 Andreas Kupries   -- Copyright &copy; 2013-2016 Documentation, Andreas Kupries
           98  +   -->
           99  +<! -- CVS: $Id$ cmdr::table.n
          100  +   -->
          101  +<body><div class="doctools">
          102  +<hr> [
          103  +   <a href="../../../../../../home">Home</a>
          104  +| <a href="../../toc.html">Main Table Of Contents</a>
          105  +| <a href="../toc.html">Table Of Contents</a>
          106  +| <a href="../../index.html">Keyword Index</a>
          107  + ] <hr>
          108  +<h1 class="title">cmdr::table(n) 0.1 doc &quot;Cmdr, a framework for command line parsing and dispatch&quot;</h1>
          109  +<div id="name" class="section"><h2><a name="name">Name</a></h2>
          110  +<p>cmdr::table - Cmdr - Simple Table creation</p>
          111  +</div>
          112  +<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
          113  +<ul class="toc">
          114  +<li class="section"><a href="#toc">Table Of Contents</a></li>
          115  +<li class="section"><a href="#synopsis">Synopsis</a></li>
          116  +<li class="section"><a href="#section1">Description</a></li>
          117  +<li class="section"><a href="#section2">API</a></li>
          118  +<li class="section"><a href="#section3">Table API</a></li>
          119  +<li class="section"><a href="#section4">Bugs, Ideas, Feedback</a></li>
          120  +<li class="section"><a href="#keywords">Keywords</a></li>
          121  +<li class="section"><a href="#copyright">Copyright</a></li>
          122  +</ul>
          123  +</div>
          124  +<div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2>
          125  +<div class="synopsis">
          126  +<ul class="requirements">
          127  +<li>package require <b class="pkgname">cmdr::util</b></li>
          128  +</ul>
          129  +<ul class="syntax">
          130  +<li><a href="#1"><b class="cmd">::cmdr::table</b> <b class="method">general</b> <i class="arg">var</i> <i class="arg">headers</i> <i class="arg">script</i></a></li>
          131  +<li><a href="#2"><b class="cmd">::cmdr::table</b> <b class="method">dict</b> <i class="arg">var</i> <i class="arg">script</i></a></li>
          132  +<li><a href="#3"><b class="cmd">::cmdr::table</b> <b class="method">borders</b> <span class="opt">?<i class="arg">enable</i>?</span></a></li>
          133  +<li><a href="#4"><b class="cmd">::cmdr::table</b> <b class="method">show</b> <span class="opt">?<i class="arg">cmd</i>...?</span></a></li>
          134  +<li><a href="#5"><b class="variable">t</b> <b class="method">borders</b> <span class="opt">?<i class="arg">enable</i>?</span></a></li>
          135  +<li><a href="#6"><b class="variable">t</b> <b class="method">headers</b> <span class="opt">?<i class="arg">enable</i>?</span></a></li>
          136  +<li><a href="#7"><b class="variable">t</b> <b class="method">style</b> <span class="opt">?<i class="arg">style</i>?</span></a></li>
          137  +<li><a href="#8"><b class="variable">t</b> <b class="method">add</b> <i class="arg">word</i>...</a></li>
          138  +<li><a href="#9"><b class="variable">t</b> <b class="method">+</b> <i class="arg">word</i>...</a></li>
          139  +<li><a href="#10"><b class="variable">t</b> <b class="method">+=</b> <i class="arg">word</i>...</a></li>
          140  +<li><a href="#11"><b class="variable">t</b> <b class="method">&lt;&lt;</b> <i class="arg">word</i>...</a></li>
          141  +<li><a href="#12"><b class="variable">t</b> <b class="method">&lt;=</b> <i class="arg">word</i>...</a></li>
          142  +<li><a href="#13"><b class="variable">t</b> <b class="method">show*</b> <span class="opt">?<i class="arg">cmd</i>?</span></a></li>
          143  +<li><a href="#14"><b class="variable">t</b> <b class="method">show</b> <span class="opt">?<i class="arg">cmd</i>?</span></a></li>
          144  +</ul>
          145  +</div>
          146  +</div>
          147  +<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
          148  +<p>Welcome to the Cmdr project, written by Andreas Kupries.</p>
          149  +<p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p>
          150  +<p>This package provides convenience commands for the easy creation of
          151  +simple tables.</p>
          152  +</div>
          153  +<div id="section2" class="section"><h2><a name="section2">API</a></h2>
          154  +<dl class="definitions">
          155  +<dt><a name="1"><b class="cmd">::cmdr::table</b> <b class="method">general</b> <i class="arg">var</i> <i class="arg">headers</i> <i class="arg">script</i></a></dt>
          156  +<dd><p>This command creates a new table with the words found in the list of
          157  +<i class="arg">headers</i> as the top row.
          158  +The <i class="arg">script</i> is run in the calling context to configure and
          159  +populate the table.
          160  +The table's object command is stored in the named <i class="arg">var</i> for access
          161  +by the <i class="arg">script</i>.
          162  +The result of the command is the table's object command.</p>
          163  +<dl class="arguments">
          164  +<dt>varname <i class="arg">var</i></dt>
          165  +<dd><p>The name of the variable in the calling scope the new table's object
          166  +command will be stored into.</p></dd>
          167  +<dt>list <i class="arg">headers</i></dt>
          168  +<dd><p>The list of words to user as column headers.</p></dd>
          169  +<dt>string <i class="arg">script</i></dt>
          170  +<dd><p>The tcl script to be run to configure and populate the table.</p></dd>
          171  +</dl></dd>
          172  +<dt><a name="2"><b class="cmd">::cmdr::table</b> <b class="method">dict</b> <i class="arg">var</i> <i class="arg">script</i></a></dt>
          173  +<dd><p>This command creates a new table intended for the display of a Tcl
          174  +dictionary.
          175  +It will have two columns titled <b class="const">Key</b> and <b class="const">Value</b>.
          176  +The <i class="arg">script</i> is run in the calling context to configure and
          177  +populate the table.
          178  +The table's object command is stored in the named <i class="arg">var</i> for access
          179  +by the <i class="arg">script</i>.
          180  +The result of the command is the table's object command.</p>
          181  +<dl class="arguments">
          182  +<dt>varname <i class="arg">var</i></dt>
          183  +<dd><p>The name of the variable in the calling scope the new table's object
          184  +command will be stored into.</p></dd>
          185  +<dt>string <i class="arg">script</i></dt>
          186  +<dd><p>The tcl script to be run to configure and populate the table.</p></dd>
          187  +</dl></dd>
          188  +<dt><a name="3"><b class="cmd">::cmdr::table</b> <b class="method">borders</b> <span class="opt">?<i class="arg">enable</i>?</span></a></dt>
          189  +<dd><p>This command configures the global <i class="term">border</i> setting, which
          190  +indicates the (non)use of borders by the tables of this package. Note
          191  +that changes to this setting influence only the tables created after
          192  +the change. Existing tables are not modified.</p>
          193  +<p>The result of the command is the new state of the setting.</p>
          194  +<p>If the command is called without an argument it simply returns the
          195  +current state of the setting, without making changes.</p>
          196  +<p>The default value for the setting is <b class="const">yes</b>.
          197  +Individual tables can override the global settings via their
          198  +<b class="method">borders</b> method, see <span class="sectref"><a href="#section3">Table API</a></span>.</p>
          199  +<dl class="arguments">
          200  +<dt>boolean <i class="arg">enable</i></dt>
          201  +<dd><p>The new value of the setting. Optional.</p></dd>
          202  +</dl></dd>
          203  +<dt><a name="4"><b class="cmd">::cmdr::table</b> <b class="method">show</b> <span class="opt">?<i class="arg">cmd</i>...?</span></a></dt>
          204  +<dd><p>This command configures the global <i class="term">show</i> setting, which is the
          205  +command prefix to use to print a table, if the table is not given a
          206  +specific command to use. Note that changes to this setting influence
          207  +only the tables created after the change. Existing tables are not
          208  +modified.</p>
          209  +<p>The result of the command is the new state of the setting</p>
          210  +<p>If the command is called without any arguments it simply
          211  +returns the current state of the setting, without making changes.</p>
          212  +<p>The default value for the setting is <b class="const">puts</b>.</p>
          213  +<dl class="arguments">
          214  +<dt>word <i class="arg">cmd</i></dt>
          215  +<dd><p>The command prefix to use for printing a table, as varargs.
          216  +The prefix will be invoked with a single argument, the string
          217  +representation of the table.</p></dd>
          218  +</dl></dd>
          219  +</dl>
          220  +</div>
          221  +<div id="section3" class="section"><h2><a name="section3">Table API</a></h2>
          222  +<p>This section lists the methods available for configuration and
          223  +population of the tables created by this package.</p>
          224  +<dl class="definitions">
          225  +<dt><a name="5"><b class="variable">t</b> <b class="method">borders</b> <span class="opt">?<i class="arg">enable</i>?</span></a></dt>
          226  +<dd><p>This is the table-level <i class="term">borders</i> setting. On creation a table
          227  +inherits the global setting (See <b class="cmd">::cmdr::table borders</b>). If
          228  +that is not to suit then this method can be used to override it.</p>
          229  +<p>The result of the method is the new state of the setting. When
          230  +called without argument no change is made and the result is the
          231  +current state of the setting.</p></dd>
          232  +<dt><a name="6"><b class="variable">t</b> <b class="method">headers</b> <span class="opt">?<i class="arg">enable</i>?</span></a></dt>
          233  +<dd><p>This method controls the visibility of the header row.  By default
          234  +general tables have the header row visisble, while for dict tables the
          235  +header is suppressed. This method allows the user to override these
          236  +defaults.</p>
          237  +<p>The result of the method is the new state of the setting. When
          238  +called without argument no change is made and the result is the
          239  +current state of the setting.</p></dd>
          240  +<dt><a name="7"><b class="variable">t</b> <b class="method">style</b> <span class="opt">?<i class="arg">style</i>?</span></a></dt>
          241  +<dd><p>This method allows the user to force the use of a completely custom
          242  +style.
          243  +Please see the documentation for the Tcllib package <b class="package">report</b>
          244  +on how to define table styles.</p>
          245  +<p>The package defines four styles of its own, all using the
          246  +common prefix <b class="const">cmdr/table/</b> in their names.
          247  +When no custom style is set the table chooses between these based on
          248  +its <i class="term">borders</i> and <i class="term">headers</i> settings.</p>
          249  +<p>The result of the method is the new state of the setting. When
          250  +called without argument then no change is made and the result is the
          251  +current state of the setting.</p>
          252  +<p>To revert from a custom style to the automatic choice invoke
          253  +this method with the empty string as the name of the style.</p></dd>
          254  +<dt><a name="8"><b class="variable">t</b> <b class="method">add</b> <i class="arg">word</i>...</a></dt>
          255  +<dd></dd>
          256  +<dt><a name="9"><b class="variable">t</b> <b class="method">+</b> <i class="arg">word</i>...</a></dt>
          257  +<dd></dd>
          258  +<dt><a name="10"><b class="variable">t</b> <b class="method">+=</b> <i class="arg">word</i>...</a></dt>
          259  +<dd></dd>
          260  +<dt><a name="11"><b class="variable">t</b> <b class="method">&lt;&lt;</b> <i class="arg">word</i>...</a></dt>
          261  +<dd></dd>
          262  +<dt><a name="12"><b class="variable">t</b> <b class="method">&lt;=</b> <i class="arg">word</i>...</a></dt>
          263  +<dd><p>This method adds a new row to the table, containing the given words.
          264  +If less words than headers are specified the row is padded with empty columns.
          265  +If too many words are specified the superfluous words are ignored.</p>
          266  +<p>The result of the method is the empty string.</p></dd>
          267  +<dt><a name="13"><b class="variable">t</b> <b class="method">show*</b> <span class="opt">?<i class="arg">cmd</i>?</span></a></dt>
          268  +<dd><p>This method formats the table into a string and then invokes the
          269  +command prefix <i class="arg">cmd</i> to print that string. The command prefix is
          270  +run at the global namespace and level. If the <i class="arg">cmd</i> is not
          271  +specified the global <i class="term">show</i> setting is used instead.</p>
          272  +<p>The result of the method is the empty string.</p></dd>
          273  +<dt><a name="14"><b class="variable">t</b> <b class="method">show</b> <span class="opt">?<i class="arg">cmd</i>?</span></a></dt>
          274  +<dd><p>This is a variant of method <b class="method">show*</b> above which not only prints
          275  +the table as above, but also destroys it.</p></dd>
          276  +</dl>
          277  +</div>
          278  +<div id="section4" class="section"><h2><a name="section4">Bugs, Ideas, Feedback</a></h2>
          279  +<p>Both the package(s) and this documentation will undoubtedly contain
          280  +bugs and other problems.
          281  +Please report such at
          282  +<a href="https:/core.tcl.tk/akupries/cmdr">Cmdr Tickets</a>.</p>
          283  +<p>Please also report any ideas you may have for enhancements of
          284  +either package(s) and/or documentation.</p>
          285  +</div>
          286  +<div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2>
          287  +<p><a href="../../index.html#key4">arguments</a>, <a href="../../index.html#key5">command hierarchy</a>, <a href="../../index.html#key9">command line completion</a>, <a href="../../index.html#key11">command line handling</a>, <a href="../../index.html#key13">command tree</a>, <a href="../../index.html#key0">editing command line</a>, <a href="../../index.html#key8">help for command line</a>, <a href="../../index.html#key6">hierarchy of commands</a>, <a href="../../index.html#key3">interactive command shell</a>, <a href="../../index.html#key1">optional arguments</a>, <a href="../../index.html#key2">options</a>, <a href="../../index.html#key12">parameters</a>, <a href="../../index.html#key10">processing command line</a>, <a href="../../index.html#key7">tree of commands</a></p>
          288  +</div>
          289  +<div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2>
          290  +<p>Copyright &copy; 2013-2016 Andreas Kupries<br>
          291  +Copyright &copy; 2013-2016 Documentation, Andreas Kupries</p>
          292  +</div>
          293  +</div></body></html>

Changes to embedded/www/doc/toc.html.

   114    114   <td class="#tocright">Cmdr - (Partially internal) Command parameters</td>
   115    115   </tr>
   116    116   <tr class="#tocodd"  >
   117    117   <td class="#tocleft" ><a href="files/cmdr_private.html">cmdr::private</a></td>
   118    118   <td class="#tocright">Cmdr - (Internal) Single command handling, options, and arguments</td>
   119    119   </tr>
   120    120   <tr class="#toceven" >
          121  +<td class="#tocleft" ><a href="files/cmdr_table.html">cmdr::table</a></td>
          122  +<td class="#tocright">Cmdr - Simple Table creation</td>
          123  +</tr>
          124  +<tr class="#tocodd"  >
   121    125   <td class="#tocleft" ><a href="files/cmdr_tty.html">cmdr::tty</a></td>
   122    126   <td class="#tocright">Cmdr - Check if stdin is a tty, i.e. terminal</td>
   123    127   </tr>
   124         -<tr class="#tocodd"  >
          128  +<tr class="#toceven" >
   125    129   <td class="#tocleft" ><a href="files/cmdr_util.html">cmdr::util</a></td>
   126    130   <td class="#tocright">Cmdr - (Internal) General Utilities</td>
   127    131   </tr>
   128         -<tr class="#toceven" >
          132  +<tr class="#tocodd"  >
   129    133   <td class="#tocleft" ><a href="files/cmdr_validate.html">cmdr::validate</a></td>
   130    134   <td class="#tocright">Cmdr - Standard validation types for parameters</td>
   131    135   </tr>
   132         -<tr class="#tocodd"  >
          136  +<tr class="#toceven" >
   133    137   <td class="#tocleft" ><a href="files/cmdr_vcommon.html">cmdr::validate::common</a></td>
   134    138   <td class="#tocright">Cmdr - Utilities for Validation Types</td>
   135    139   </tr>
   136         -<tr class="#toceven" >
          140  +<tr class="#tocodd"  >
   137    141   <td class="#tocleft" ><a href="files/cmdr_vt_date.html">cmdr::validate::date</a></td>
   138    142   <td class="#tocright">Cmdr - Validation type for dates</td>
   139    143   </tr>
   140         -<tr class="#tocodd"  >
          144  +<tr class="#toceven" >
   141    145   <td class="#tocleft" ><a href="files/cmdr_vt_posint.html">cmdr::validate::posint</a></td>
   142    146   <td class="#tocright">Cmdr - Validation type for positive integers</td>
   143    147   </tr>
   144         -<tr class="#toceven" >
          148  +<tr class="#tocodd"  >
   145    149   <td class="#tocleft" ><a href="files/cmdr_vt_time.html">cmdr::validate::time</a></td>
   146    150   <td class="#tocright">Cmdr - Validation type for times (to the second)</td>
   147    151   </tr>
   148         -<tr class="#tocodd"  >
          152  +<tr class="#toceven" >
   149    153   <td class="#tocleft" ><a href="files/cmdr_vt_time_minute.html">cmdr::validate::time::minute</a></td>
   150    154   <td class="#tocright">Cmdr - Validation type for times to the minute</td>
   151    155   </tr>
   152         -<tr class="#toceven" >
          156  +<tr class="#tocodd"  >
   153    157   <td class="#tocleft" ><a href="files/cmdr_vt_amex.html">cmdr::validate::valtype::cc::amex</a></td>
   154    158   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::cc::amex</td>
   155    159   </tr>
   156         -<tr class="#tocodd"  >
          160  +<tr class="#toceven" >
   157    161   <td class="#tocleft" ><a href="files/cmdr_vt_discover.html">cmdr::validate::valtype::cc::discover</a></td>
   158    162   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::cc::discover</td>
   159    163   </tr>
   160         -<tr class="#toceven" >
          164  +<tr class="#tocodd"  >
   161    165   <td class="#tocleft" ><a href="files/cmdr_vt_mastercard.html">cmdr::validate::valtype::cc::mastercard</a></td>
   162    166   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::cc::mastercard</td>
   163    167   </tr>
   164         -<tr class="#tocodd"  >
          168  +<tr class="#toceven" >
   165    169   <td class="#tocleft" ><a href="files/cmdr_vt_visa.html">cmdr::validate::valtype::cc::visa</a></td>
   166    170   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::cc::visa</td>
   167    171   </tr>
   168         -<tr class="#toceven" >
          172  +<tr class="#tocodd"  >
   169    173   <td class="#tocleft" ><a href="files/cmdr_vt_ean13.html">cmdr::validate::valtype::gs1::ean13</a></td>
   170    174   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::gs1::ean13</td>
   171    175   </tr>
   172         -<tr class="#tocodd"  >
          176  +<tr class="#toceven" >
   173    177   <td class="#tocleft" ><a href="files/cmdr_vt_iban.html">cmdr::validate::valtype::iban</a></td>
   174    178   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::iban</td>
   175    179   </tr>
   176         -<tr class="#toceven" >
          180  +<tr class="#tocodd"  >
   177    181   <td class="#tocleft" ><a href="files/cmdr_vt_imei.html">cmdr::validate::valtype::imei</a></td>
   178    182   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::imei</td>
   179    183   </tr>
   180         -<tr class="#tocodd"  >
          184  +<tr class="#toceven" >
   181    185   <td class="#tocleft" ><a href="files/cmdr_vt_isbn.html">cmdr::validate::valtype::isbn</a></td>
   182    186   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::isbn</td>
   183    187   </tr>
   184         -<tr class="#toceven" >
          188  +<tr class="#tocodd"  >
   185    189   <td class="#tocleft" ><a href="files/cmdr_vt_luhn.html">cmdr::validate::valtype::luhn</a></td>
   186    190   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::luhn</td>
   187    191   </tr>
   188         -<tr class="#tocodd"  >
          192  +<tr class="#toceven" >
   189    193   <td class="#tocleft" ><a href="files/cmdr_vt_luhn5.html">cmdr::validate::valtype::luhn5</a></td>
   190    194   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::luhn5</td>
   191    195   </tr>
   192         -<tr class="#toceven" >
          196  +<tr class="#tocodd"  >
   193    197   <td class="#tocleft" ><a href="files/cmdr_vt_usnpi.html">cmdr::validate::valtype::usnpi</a></td>
   194    198   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::usnpi</td>
   195    199   </tr>
   196         -<tr class="#tocodd"  >
          200  +<tr class="#toceven" >
   197    201   <td class="#tocleft" ><a href="files/cmdr_vt_verhoeff.html">cmdr::validate::valtype::verhoeff</a></td>
   198    202   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::verhoeff</td>
   199    203   </tr>
   200         -<tr class="#toceven" >
          204  +<tr class="#tocodd"  >
   201    205   <td class="#tocleft" ><a href="files/cmdr_vt_weekday.html">cmdr::validate::weekday</a></td>
   202    206   <td class="#tocright">Cmdr - Validation type for weekday names</td>
   203    207   </tr>
   204         -<tr class="#tocodd"  >
          208  +<tr class="#toceven" >
   205    209   <td class="#tocleft" ><a href="files/cmdr_vt_year.html">cmdr::validate::year</a></td>
   206    210   <td class="#tocright">Cmdr - Validation type for years</td>
   207    211   </tr>
   208         -<tr class="#toceven" >
          212  +<tr class="#tocodd"  >
   209    213   <td class="#tocleft" ><a href="files/cmdr_howto_development.html">cmdr_development</a></td>
   210    214   <td class="#tocright">Cmdr - The Developer's Guide</td>
   211    215   </tr>
   212         -<tr class="#tocodd"  >
          216  +<tr class="#toceven" >
   213    217   <td class="#tocleft" ><a href="files/cmdr_dev_completion.html">cmdr_dev~completion</a></td>
   214    218   <td class="#tocright">Cmdr - Internals of command line completion</td>
   215    219   </tr>
   216         -<tr class="#toceven" >
          220  +<tr class="#tocodd"  >
   217    221   <td class="#tocleft" ><a href="files/cmdr_dev_dsl.html">cmdr_dev~dsl</a></td>
   218    222   <td class="#tocright">Cmdr - Internals of DSL handling</td>
   219    223   </tr>
   220    224   </table>
   221    225   </dl><hr></body></html>

Changes to embedded/www/index.html.

    18     18   <hr><table class="#idx" width="100%">
    19     19   <tr class="#idxheader"><th colspan="2">
    20     20   <a name="c1">Keywords: A</a>
    21     21   </th></tr>
    22     22   <tr class="#idxeven" valign=top>
    23     23   <td class="#idxleft" width="35%"><a name="key4"> arguments </a></td>
    24     24   <td class="#idxright" width="65%">
    25         -<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
           25  +<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_table.html"> cmdr::table </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
    26     26   </td></tr>
    27     27   <tr class="#idxheader"><th colspan="2">
    28     28   <a name="c2">Keywords: C</a>
    29     29   </th></tr>
    30     30   <tr class="#idxodd" valign=top>
    31     31   <td class="#idxleft" width="35%"><a name="key5"> command hierarchy </a></td>
    32     32   <td class="#idxright" width="65%">
    33         -<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
           33  +<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_table.html"> cmdr::table </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
    34     34   </td></tr>
    35     35   <tr class="#idxeven" valign=top>
    36     36   <td class="#idxleft" width="35%"><a name="key9"> command line completion </a></td>
    37     37   <td class="#idxright" width="65%">
    38         -<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
           38  +<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_table.html"> cmdr::table </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
    39     39   </td></tr>
    40     40   <tr class="#idxodd" valign=top>
    41     41   <td class="#idxleft" width="35%"><a name="key11"> command line handling </a></td>
    42     42   <td class="#idxright" width="65%">
    43         -<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
           43  +<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_table.html"> cmdr::table </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
    44     44   </td></tr>
    45     45   <tr class="#idxeven" valign=top>
    46     46   <td class="#idxleft" width="35%"><a name="key13"> command tree </a></td>
    47     47   <td class="#idxright" width="65%">
    48         -<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
           48  +<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_table.html"> cmdr::table </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
    49     49   </td></tr>
    50     50   <tr class="#idxheader"><th colspan="2">
    51     51   <a name="c3">Keywords: E</a>
    52     52   </th></tr>
    53     53   <tr class="#idxodd" valign=top>
    54     54   <td class="#idxleft" width="35%"><a name="key0"> editing command line </a></td>
    55     55   <td class="#idxright" width="65%">
    56         -<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
           56  +<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_table.html"> cmdr::table </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
    57     57   </td></tr>
    58     58   <tr class="#idxheader"><th colspan="2">
    59     59   <a name="c4">Keywords: H</a>
    60     60   </th></tr>
    61     61   <tr class="#idxeven" valign=top>
    62     62   <td class="#idxleft" width="35%"><a name="key8"> help for command line </a></td>
    63     63   <td class="#idxright" width="65%">
    64         -<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
           64  +<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_table.html"> cmdr::table </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
    65     65   </td></tr>
    66     66   <tr class="#idxodd" valign=top>
    67     67   <td class="#idxleft" width="35%"><a name="key6"> hierarchy of commands </a></td>
    68     68   <td class="#idxright" width="65%">
    69         -<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
           69  +<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_table.html"> cmdr::table </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
    70     70   </td></tr>
    71     71   <tr class="#idxheader"><th colspan="2">
    72     72   <a name="c5">Keywords: I</a>
    73     73   </th></tr>
    74     74   <tr class="#idxeven" valign=top>
    75     75   <td class="#idxleft" width="35%"><a name="key3"> interactive command shell </a></td>
    76     76   <td class="#idxright" width="65%">
    77         -<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
           77  +<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_table.html"> cmdr::table </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
    78     78   </td></tr>
    79     79   <tr class="#idxheader"><th colspan="2">
    80     80   <a name="c6">Keywords: O</a>
    81     81   </th></tr>
    82     82   <tr class="#idxodd" valign=top>
    83     83   <td class="#idxleft" width="35%"><a name="key1"> optional arguments </a></td>
    84     84   <td class="#idxright" width="65%">
    85         -<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
           85  +<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_table.html"> cmdr::table </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
    86     86   </td></tr>
    87     87   <tr class="#idxeven" valign=top>
    88     88   <td class="#idxleft" width="35%"><a name="key2"> options </a></td>
    89     89   <td class="#idxright" width="65%">
    90         -<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
           90  +<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_table.html"> cmdr::table </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
    91     91   </td></tr>
    92     92   <tr class="#idxheader"><th colspan="2">
    93     93   <a name="c7">Keywords: P</a>
    94     94   </th></tr>
    95     95   <tr class="#idxodd" valign=top>
    96     96   <td class="#idxleft" width="35%"><a name="key12"> parameters </a></td>
    97     97   <td class="#idxright" width="65%">
    98         -<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
           98  +<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_table.html"> cmdr::table </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
    99     99   </td></tr>
   100    100   <tr class="#idxeven" valign=top>
   101    101   <td class="#idxleft" width="35%"><a name="key10"> processing command line </a></td>
   102    102   <td class="#idxright" width="65%">
   103         -<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
          103  +<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_table.html"> cmdr::table </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
   104    104   </td></tr>
   105    105   <tr class="#idxheader"><th colspan="2">
   106    106   <a name="c8">Keywords: T</a>
   107    107   </th></tr>
   108    108   <tr class="#idxodd" valign=top>
   109    109   <td class="#idxleft" width="35%"><a name="key7"> tree of commands </a></td>
   110    110   <td class="#idxright" width="65%">
   111         -<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
          111  +<a href="doc/files/cmdr.html"> cmdr </a> &#183; <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> &#183; <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> &#183; <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> &#183; <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> &#183; <a href="doc/files/cmdr_license.html"> cmdr-license </a> &#183; <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> &#183; <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> &#183; <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> &#183; <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> &#183; <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> &#183; <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> &#183; <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> &#183; <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> &#183; <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> &#183; <a href="doc/files/cmdr_color.html"> cmdr::color </a> &#183; <a href="doc/files/cmdr_config.html"> cmdr::config </a> &#183; <a href="doc/files/cmdr_help.html"> cmdr::help </a> &#183; <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> &#183; <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> &#183; <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> &#183; <a href="doc/files/cmdr_history.html"> cmdr::history </a> &#183; <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> &#183; <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> &#183; <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> &#183; <a href="doc/files/cmdr_private.html"> cmdr::private </a> &#183; <a href="doc/files/cmdr_table.html"> cmdr::table </a> &#183; <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> &#183; <a href="doc/files/cmdr_util.html"> cmdr::util </a> &#183; <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> &#183; <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> &#183; <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> &#183; <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> &#183; <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> &#183; <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> &#183; <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> &#183; <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> &#183; <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> &#183; <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> &#183; <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> &#183; <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> &#183; <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> &#183; <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> &#183; <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> &#183; <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> &#183; <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> &#183; <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> &#183; <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> &#183; <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> &#183; <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> &#183; <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> &#183; <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a>
   112    112   </td></tr>
   113    113   </table>
   114    114   </body></html>

Changes to embedded/www/toc.html.

   114    114   <td class="#tocright">Cmdr - (Partially internal) Command parameters</td>
   115    115   </tr>
   116    116   <tr class="#tocodd"  >
   117    117   <td class="#tocleft" ><a href="doc/files/cmdr_private.html">cmdr::private</a></td>
   118    118   <td class="#tocright">Cmdr - (Internal) Single command handling, options, and arguments</td>
   119    119   </tr>
   120    120   <tr class="#toceven" >
          121  +<td class="#tocleft" ><a href="doc/files/cmdr_table.html">cmdr::table</a></td>
          122  +<td class="#tocright">Cmdr - Simple Table creation</td>
          123  +</tr>
          124  +<tr class="#tocodd"  >
   121    125   <td class="#tocleft" ><a href="doc/files/cmdr_tty.html">cmdr::tty</a></td>
   122    126   <td class="#tocright">Cmdr - Check if stdin is a tty, i.e. terminal</td>
   123    127   </tr>
   124         -<tr class="#tocodd"  >
          128  +<tr class="#toceven" >
   125    129   <td class="#tocleft" ><a href="doc/files/cmdr_util.html">cmdr::util</a></td>
   126    130   <td class="#tocright">Cmdr - (Internal) General Utilities</td>
   127    131   </tr>
   128         -<tr class="#toceven" >
          132  +<tr class="#tocodd"  >
   129    133   <td class="#tocleft" ><a href="doc/files/cmdr_validate.html">cmdr::validate</a></td>
   130    134   <td class="#tocright">Cmdr - Standard validation types for parameters</td>
   131    135   </tr>
   132         -<tr class="#tocodd"  >
          136  +<tr class="#toceven" >
   133    137   <td class="#tocleft" ><a href="doc/files/cmdr_vcommon.html">cmdr::validate::common</a></td>
   134    138   <td class="#tocright">Cmdr - Utilities for Validation Types</td>
   135    139   </tr>
   136         -<tr class="#toceven" >
          140  +<tr class="#tocodd"  >
   137    141   <td class="#tocleft" ><a href="doc/files/cmdr_vt_date.html">cmdr::validate::date</a></td>
   138    142   <td class="#tocright">Cmdr - Validation type for dates</td>
   139    143   </tr>
   140         -<tr class="#tocodd"  >
          144  +<tr class="#toceven" >
   141    145   <td class="#tocleft" ><a href="doc/files/cmdr_vt_posint.html">cmdr::validate::posint</a></td>
   142    146   <td class="#tocright">Cmdr - Validation type for positive integers</td>
   143    147   </tr>
   144         -<tr class="#toceven" >
          148  +<tr class="#tocodd"  >
   145    149   <td class="#tocleft" ><a href="doc/files/cmdr_vt_time.html">cmdr::validate::time</a></td>
   146    150   <td class="#tocright">Cmdr - Validation type for times (to the second)</td>
   147    151   </tr>
   148         -<tr class="#tocodd"  >
          152  +<tr class="#toceven" >
   149    153   <td class="#tocleft" ><a href="doc/files/cmdr_vt_time_minute.html">cmdr::validate::time::minute</a></td>
   150    154   <td class="#tocright">Cmdr - Validation type for times to the minute</td>
   151    155   </tr>
   152         -<tr class="#toceven" >
          156  +<tr class="#tocodd"  >
   153    157   <td class="#tocleft" ><a href="doc/files/cmdr_vt_amex.html">cmdr::validate::valtype::cc::amex</a></td>
   154    158   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::cc::amex</td>
   155    159   </tr>
   156         -<tr class="#tocodd"  >
          160  +<tr class="#toceven" >
   157    161   <td class="#tocleft" ><a href="doc/files/cmdr_vt_discover.html">cmdr::validate::valtype::cc::discover</a></td>
   158    162   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::cc::discover</td>
   159    163   </tr>
   160         -<tr class="#toceven" >
          164  +<tr class="#tocodd"  >
   161    165   <td class="#tocleft" ><a href="doc/files/cmdr_vt_mastercard.html">cmdr::validate::valtype::cc::mastercard</a></td>
   162    166   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::cc::mastercard</td>
   163    167   </tr>
   164         -<tr class="#tocodd"  >
          168  +<tr class="#toceven" >
   165    169   <td class="#tocleft" ><a href="doc/files/cmdr_vt_visa.html">cmdr::validate::valtype::cc::visa</a></td>
   166    170   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::cc::visa</td>
   167    171   </tr>
   168         -<tr class="#toceven" >
          172  +<tr class="#tocodd"  >
   169    173   <td class="#tocleft" ><a href="doc/files/cmdr_vt_ean13.html">cmdr::validate::valtype::gs1::ean13</a></td>
   170    174   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::gs1::ean13</td>
   171    175   </tr>
   172         -<tr class="#tocodd"  >
          176  +<tr class="#toceven" >
   173    177   <td class="#tocleft" ><a href="doc/files/cmdr_vt_iban.html">cmdr::validate::valtype::iban</a></td>
   174    178   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::iban</td>
   175    179   </tr>
   176         -<tr class="#toceven" >
          180  +<tr class="#tocodd"  >
   177    181   <td class="#tocleft" ><a href="doc/files/cmdr_vt_imei.html">cmdr::validate::valtype::imei</a></td>
   178    182   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::imei</td>
   179    183   </tr>
   180         -<tr class="#tocodd"  >
          184  +<tr class="#toceven" >
   181    185   <td class="#tocleft" ><a href="doc/files/cmdr_vt_isbn.html">cmdr::validate::valtype::isbn</a></td>
   182    186   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::isbn</td>
   183    187   </tr>
   184         -<tr class="#toceven" >
          188  +<tr class="#tocodd"  >
   185    189   <td class="#tocleft" ><a href="doc/files/cmdr_vt_luhn.html">cmdr::validate::valtype::luhn</a></td>
   186    190   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::luhn</td>
   187    191   </tr>
   188         -<tr class="#tocodd"  >
          192  +<tr class="#toceven" >
   189    193   <td class="#tocleft" ><a href="doc/files/cmdr_vt_luhn5.html">cmdr::validate::valtype::luhn5</a></td>
   190    194   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::luhn5</td>
   191    195   </tr>
   192         -<tr class="#toceven" >
          196  +<tr class="#tocodd"  >
   193    197   <td class="#tocleft" ><a href="doc/files/cmdr_vt_usnpi.html">cmdr::validate::valtype::usnpi</a></td>
   194    198   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::usnpi</td>
   195    199   </tr>
   196         -<tr class="#tocodd"  >
          200  +<tr class="#toceven" >
   197    201   <td class="#tocleft" ><a href="doc/files/cmdr_vt_verhoeff.html">cmdr::validate::valtype::verhoeff</a></td>
   198    202   <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::verhoeff</td>
   199    203   </tr>
   200         -<tr class="#toceven" >
          204  +<tr class="#tocodd"  >
   201    205   <td class="#tocleft" ><a href="doc/files/cmdr_vt_weekday.html">cmdr::validate::weekday</a></td>
   202    206   <td class="#tocright">Cmdr - Validation type for weekday names</td>
   203    207   </tr>
   204         -<tr class="#tocodd"  >
          208  +<tr class="#toceven" >
   205    209   <td class="#tocleft" ><a href="doc/files/cmdr_vt_year.html">cmdr::validate::year</a></td>
   206    210   <td class="#tocright">Cmdr - Validation type for years</td>
   207    211   </tr>
   208         -<tr class="#toceven" >
          212  +<tr class="#tocodd"  >
   209    213   <td class="#tocleft" ><a href="doc/files/cmdr_howto_development.html">cmdr_development</a></td>
   210    214   <td class="#tocright">Cmdr - The Developer's Guide</td>
   211    215   </tr>
   212         -<tr class="#tocodd"  >
          216  +<tr class="#toceven" >
   213    217   <td class="#tocleft" ><a href="doc/files/cmdr_dev_completion.html">cmdr_dev~completion</a></td>
   214    218   <td class="#tocright">Cmdr - Internals of command line completion</td>
   215    219   </tr>
   216         -<tr class="#toceven" >
          220  +<tr class="#tocodd"  >
   217    221   <td class="#tocleft" ><a href="doc/files/cmdr_dev_dsl.html">cmdr_dev~dsl</a></td>
   218    222   <td class="#tocright">Cmdr - Internals of DSL handling</td>
   219    223   </tr>
   220    224   </table>
   221    225   </dl><hr></body></html>

Changes to help/help.tcl.

    33     33   package require cmdr::pager
    34     34   
    35     35   # # ## ### ##### ######## ############# #####################
    36     36   
    37     37   debug define cmdr/help
    38     38   debug level  cmdr/help
    39     39   debug prefix cmdr/help {[debug caller] | }
           40  +debug prefix cmdr/help/short {| }
    40     41   
    41     42   # # ## ### ##### ######## ############# #####################
    42     43   ## Definition
    43     44   
    44     45   namespace eval ::cmdr {
    45     46       namespace export help
    46     47       namespace ensemble create
................................................................................
    86     87   	    alias h
    87     88   	    alias ?
    88     89   	    presence
    89     90   	    when-set [lambda {p x} {
    90     91   		# Invoke the help command which will be generated and
    91     92   		# inserted below.
    92     93   		set root [$p config context root]
           94  +
    93     95   		if {[$root exists *prefix*]} {
           96  +		    debug.cmdr/help/short {/prefix $root ([$root get *prefix*])}
    94     97   		    # Invoke help for the current command.
    95     98   		    $root do help {*}[$root get *prefix*]
    96     99   		} else {
    97    100   		    # Invoke global help.
    98    101   		    $root do help
    99    102   		}
   100    103   		# Prevent any other processing.

Changes to utilities/history.tcl.

    78     78       debug.cmdr/history {}
    79     79       variable limit $new
    80     80       return
    81     81   }
    82     82   
    83     83   proc ::cmdr::history::attach {actor} {
    84     84       debug.cmdr/history {}
    85         -    # cmdr shandler to use.
           85  +    # For use by cmdr's custom-setup command.
    86     86       # The actor is the officer to extend.
    87     87   
    88     88       # (***) Detect recursive entry through the extend statements
    89     89       # below. Use this to make 'history list' the default of the whole
    90     90       # history officer. And, of course, prevent infinite recursion.
    91     91       # Lastly, not leastly, add help describing the entire ensemble.
    92     92   
................................................................................
   137    137   	} {
   138    138   	    optional
   139    139   	    default 0
   140    140   	    validate integer
   141    141   	}
   142    142       } ::cmdr::history::Show
   143    143       # This recurses into 'attach' through the automatic inheritance of
   144         -    # the shandler. See (***) above for the code intercepting the
   145         -    # recursion and preventing it from becoming infinite.
          144  +    # the custom-setup hooks. See (***) above for the code
          145  +    # intercepting the recursion and preventing it from becoming
          146  +    # infinite.
   146    147   
   147    148       $actor extend {history clear} {
   148    149   	section Introspection {Command history}
   149    150   	description {
   150    151   	    Clear the saved history.
   151    152   	}
   152    153       } ::cmdr::history::Clear