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: |
cabf535e4773c880bda8839204701e61 |
User & Date: | aku 2016-06-29 07:54:42.641 |
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: cmdr-1-2, release, release-1-2, trunk, v1.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
Changes to core/officer.tcl.
︙ | ︙ | |||
75 76 77 78 79 80 81 | constructor {super name actions} { debug.cmdr/officer {[self] $super $name} next my super: $super my name: $name | | | | | | | | | | | | | | | > > > | 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | constructor {super name actions} { debug.cmdr/officer {[self] $super $name} next my super: $super my name: $name set myactions $actions ; # Action spec for future initialization set myinit no ; # Dispatch map will be initialized lazily set mymap {} ; # Action map starts knowing nothing set mypmap {} ; # Ditto for the map of action abbreviations. set mycommands {} ; # Ditto set myccommands {} ; # Ditto, derived cache, see method CCommands. set mychildren {} ; # List of created subordinates. set myintercept {} ; # Handler around cmd parsing and execution. set mycustomsetup {} ; # List of setup handlers, run after regular object # # initialization from its definition. set myconfig {} return } # # ## ### ##### ######## ############# method intercept {cmd} { debug.cmdr/officer {[self] $cmd} set myintercept $cmd return } method custom-setup {cmd} { debug.cmdr/officer {[self] $cmd} lappend mycustomsetup $cmd return } forward ehandler my intercept forward shandler my custom-setup # # ## ### ##### ######## ############# ## Public API. (Introspection, mostly). ## - Determine set of known actions. ## - Determine default action. ## - Determine handler for an action. |
︙ | ︙ | |||
250 251 252 253 254 255 256 | No-op if not in a shell. } } [mymethod shell-exit] } # Invoke the user-specified hook for extending a newly-made # officer, if any. | | | | > | > > | > | 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 | No-op if not in a shell. } } [mymethod shell-exit] } # Invoke the user-specified hook for extending a newly-made # officer, if any. debug.cmdr/officer {[debug caller] | call custom-setup} foreach cmd $mycustomsetup { {*}$cmd [self] } debug.cmdr/officer {[debug caller] | /done} return } method learn {script} { debug.cmdr/officer {[self] learn} # Make the DSL commands directly available. Note that # "description:" and "common" are superclass methods, and # renamed to their DSL counterparts. The others are unexported # instance methods of this class. link \ {intercept intercept} \ {ehandler intercept} \ \ {custom-setup custom-setup} \ {shandler custom-setup} \ \ {private Private} \ {officer Officer} \ {default Default} \ {alias Alias} \ {description description:} \ undocumented \ {common set} \ |
︙ | ︙ | |||
373 374 375 376 377 378 379 | # Note: By placing the subordinate objects into the officer's # namespace they will be automatically destroyed with the # officer itself. No special code for cleanup required. set handler [self namespace]::${what}_$name cmdr::$what create $handler [self] $name {*}$args | | | > | > | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 | # Note: By placing the subordinate objects into the officer's # namespace they will be automatically destroyed with the # officer itself. No special code for cleanup required. set handler [self namespace]::${what}_$name cmdr::$what create $handler [self] $name {*}$args # Propagate error (interceptor) and custom setup handlers. $handler intercept $myintercept foreach cmd $mycustomsetup { $handler custom-setup $cmd } lappend mychildren $handler my Def $name $handler return $handler } |
︙ | ︙ | |||
501 502 503 504 505 506 507 | # Split into command and arguments set remainder [lassign $args cmd] # Delegate to the handler for a known command. if {[my Known $cmd]} { debug.cmdr/officer {[debug caller] | /known $cmd} | | | > | 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 | # Split into command and arguments set remainder [lassign $args cmd] # Delegate to the handler for a known command. if {[my Known $cmd]} { debug.cmdr/officer {[debug caller] | /known $cmd} [my root] lappend *prefix* $cmd debug.cmdr/officer {[debug caller] | /prefix [my root] ([my get *prefix*])} [my lookup $cmd] do {*}$remainder debug.cmdr/officer {[debug caller] | /done known} return } # The command word is not known. Delegate the full command to # the default, if we have any. Otherwise fail. |
︙ | ︙ | |||
771 772 773 774 775 776 777 | return $help } # # ## ### ##### ######## ############# variable myinit myactions mymap mycommands myccommands mychildren \ | | | 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 | return $help } # # ## ### ##### ######## ############# variable myinit myactions mymap mycommands myccommands mychildren \ myreplexit myintercept mypmap mycustomsetup myconfig # # ## ### ##### ######## ############# } # # ## ### ##### ######## ############# ##################### ## Ready package provide cmdr::officer 1.4.1 |
Changes to core/private.tcl.
︙ | ︙ | |||
60 61 62 63 64 65 66 | my super: $super my name: $name set myarguments $arguments set mycmd $cmdprefix set myinit 0 | | | 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | my super: $super my name: $name set myarguments $arguments set mycmd $cmdprefix set myinit 0 set myintercept {} return } # # ## ### ##### ######## ############# method children {} { debug.cmdr/private {} |
︙ | ︙ | |||
89 90 91 92 93 94 95 | return -code error \ -errorcode [list CMDR ACTION BAD $word] \ "The command \"$prefix\" has no sub-commands, unexpected word \"$word\"" } # # ## ### ##### ######## ############# | | > > > | > > > > | < | < < < | 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | return -code error \ -errorcode [list CMDR ACTION BAD $word] \ "The command \"$prefix\" has no sub-commands, unexpected word \"$word\"" } # # ## ### ##### ######## ############# method intercept {cmd} { debug.cmdr/private {} set myintercept $cmd return } method custom-setup {cmd} { debug.cmdr/private {} # Privates have no hook/handler for custom setup. # Ignore the inherited definition. return } forward ehandler my intercept forward shandler my custom-setup # # ## ### ##### ######## ############# ## Internal. Argument processing. Defered until required. ## Core setup code runs only once. method Setup {} { # Process myarguments only once. |
︙ | ︙ | |||
135 136 137 138 139 140 141 | method do {args} { debug.cmdr/private {} my Setup my history-add [my FullCmd $args] | | | | | 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | method do {args} { debug.cmdr/private {} my Setup my history-add [my FullCmd $args] if {[llength $myintercept]} { # The handler is expected to have a try/finally construct # which captures everything of interest to it. {*}$myintercept { my Run $args } } else { my Run $args } debug.cmdr/private {/done} } |
︙ | ︙ | |||
207 208 209 210 211 212 213 | debug.cmdr/private {} my Setup config $m {*}$args } # # ## ### ##### ######## ############# | | | 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 | debug.cmdr/private {} my Setup config $m {*}$args } # # ## ### ##### ######## ############# variable myarguments mycmd myinit myconfig myintercept # # ## ### ##### ######## ############# } # # ## ### ##### ######## ############# ##################### ## Ready package provide cmdr::private 1.3.1 |
Changes to doc/cmdr_history.man.
︙ | ︙ | |||
33 34 35 36 37 38 39 | [example { history list ?n? - Show last n history entries. Defaults to all. history clear - Drop all history entries history limit ?n? - Limit history to 'n' entries (n >= 0). Unlimited for n < 0. }] Under most circumstances the attachment is handled through the | | | 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | [example { history list ?n? - Show last n history entries. Defaults to all. history clear - Drop all history entries history limit ?n? - Limit history to 'n' entries (n >= 0). Unlimited for n < 0. }] Under most circumstances the attachment is handled through the method [cmd custom-setup] of officers. See [package cmdr::officer], and the [sectref Example] for more information. [comment {- - -- --- ----- -------- -------------}] [call [cmd ::cmdr::history] [method save-to] [arg path]] When invoked this command sets the package-wide history save file used by the commands to the [arg path]. |
︙ | ︙ | |||
65 66 67 68 69 70 71 | [cmd fossil] DVCS. [example { cmdr history initial-limit 20 cmdr history save-to ~/.fx_history cmdr create fx::fx [file tail $::argv0] { | | | 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | [cmd fossil] DVCS. [example { cmdr history initial-limit 20 cmdr history save-to ~/.fx_history cmdr create fx::fx [file tail $::argv0] { custom-setup ::cmdr::history::attach [...] } }] [include parts/feedback.inc] [manpage_end] |
Changes to doc/cmdr_officer.man.
︙ | ︙ | |||
143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 | [list_begin arguments] [arg_def string word] The words of the command line to parse and match to parameters. [list_end][comment arguments] [comment {- - -- --- ----- -------- -------------}] [call [cmd <officer>] [method ehandler] [arg cmd]] This method specifies a command prefix to wrap around the parsing of the command line for the officer, and the execution of its action. [list_begin arguments] [arg_def cmd-prefix cmd] A command prefix taking a single argument, a script. The command prefix has to execute this script in its caller's context. The script will parse words for the officer,m and perform its action. The command prefix then has the responsbility to perform any custom cleanup action required by the application using the framework to prevent leakage of data between multiple commands executed one after the other (i.e. in an interactive shell run by the framework). [list_end][comment arguments] [comment {- - -- --- ----- -------- -------------}] [call [cmd <officer>] [method exit]] This hook-method for the main shell returns a boolean value indicating whether the main shell was stopped and has to exit ([const true]), or not ([const false]). | > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 | [list_begin arguments] [arg_def string word] The words of the command line to parse and match to parameters. [list_end][comment arguments] [comment {- - -- --- ----- -------- -------------}] [call [cmd <officer>] [method intercept] [arg cmd]] [call [cmd <officer>] [method ehandler] [arg cmd]] [emph Note:] While the form [method ehandler] is still usable, it is deprecated and will be removed in a future release. This method specifies a command prefix to wrap around the parsing of the command line for the officer, and the execution of its action. [list_begin arguments] [arg_def cmd-prefix cmd] A command prefix taking a single argument, a script. The command prefix has to execute this script in its caller's context. The script will parse words for the officer,m and perform its action. The command prefix then has the responsbility to perform any custom cleanup action required by the application using the framework to prevent leakage of data between multiple commands executed one after the other (i.e. in an interactive shell run by the framework). [list_end][comment arguments] [comment {- - -- --- ----- -------- -------------}] [call [cmd <officer>] [method custom-setup] [arg cmd]] This method specifies a command prefix which will be run all the regular setup of the officer from its specification is done, to perform customizations. [para] An example of this can be seen in the package [package cmdr::history]. It provides a command [cmd cmdr::history::attach] to add the history management commands to the actor in question, suitable as argument to this method. [para] When called multiple times, the specified commands accumulate. This makes it easy to specify several indepedent customizations. [list_begin arguments] [arg_def cmd-prefix cmd] A command prefix taking a single argument, the instance command of an [package cmd::actor]. The command prefix has full access to this actor and can modify it as it sees fit. The common use case will be the extension of the actor with additional subordinates. [list_end][comment arguments] [comment {- - -- --- ----- -------- -------------}] [call [cmd <officer>] [method exit]] This hook-method for the main shell returns a boolean value indicating whether the main shell was stopped and has to exit ([const true]), or not ([const false]). |
︙ | ︙ |
Changes to doc/cmdr_private.man.
︙ | ︙ | |||
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | [list_begin arguments] [arg_def string word] The words of the command line to parse and match to parameters. [list_end][comment arguments] [comment {- - -- --- ----- -------- -------------}] [call [cmd <private>] [method ehandler] [arg cmd]] This method specifies a command prefix to wrap around the parsing of the command line for the private, and the execution of its action. [list_begin arguments] [arg_def cmd-prefix cmd] A command prefix taking a single argument, a script. The command prefix has to execute this script in its caller's context. The script will parse words for the private,m and perform its action. The command prefix then has the responsbility to perform any custom cleanup action required by the application using the framework to prevent leakage of data between multiple commands executed one after the other (i.e. in an interactive shell run by the framework). [list_end][comment arguments] [comment {- - -- --- ----- -------- -------------}] [call [cmd <private>] [method find] [arg path]] This method returns the instance command of the sub-ordinate with the given [arg path] of names. An error is thrown if such a sub-ordinate does not exist, i.e. whenever [arg path] is not empty, as a private has no sub-ordinates, ever. | > > > > > > > > > > > > > > > > | 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | [list_begin arguments] [arg_def string word] The words of the command line to parse and match to parameters. [list_end][comment arguments] [comment {- - -- --- ----- -------- -------------}] [call [cmd <private>] [method intercept] [arg cmd]] [call [cmd <private>] [method ehandler] [arg cmd]] [emph Note:] While the form [method ehandler] is still usable, it is deprecated and will be removed in a future release. This method specifies a command prefix to wrap around the parsing of the command line for the private, and the execution of its action. [list_begin arguments] [arg_def cmd-prefix cmd] A command prefix taking a single argument, a script. The command prefix has to execute this script in its caller's context. The script will parse words for the private,m and perform its action. The command prefix then has the responsbility to perform any custom cleanup action required by the application using the framework to prevent leakage of data between multiple commands executed one after the other (i.e. in an interactive shell run by the framework). [list_end][comment arguments] [comment {- - -- --- ----- -------- -------------}] [call [cmd <private>] [method custom-setup] [arg cmd]] This method specifies a command prefix which will be run all the regular setup of an officer from its specification is done, to perform customizations. [para] The [cmd <private>] here ignores such calls. [para] The method exists only to avoid having to special-case code the places propagating these commands down the hierarchy. [comment {- - -- --- ----- -------- -------------}] [call [cmd <private>] [method find] [arg path]] This method returns the instance command of the sub-ordinate with the given [arg path] of names. An error is thrown if such a sub-ordinate does not exist, i.e. whenever [arg path] is not empty, as a private has no sub-ordinates, ever. |
︙ | ︙ |
Changes to doc/parts/changes1.2.inc.
1 2 3 4 5 6 7 | [subsection {Changes for version 1.2}] [vset tcllib http://core.tcl.tk/tcllib/doc/trunk/embedded/www] [vset tm [vset tcllib]/tcllib/files/modules] [list_begin enumerated] [comment {- - -- --- ----- -------- ------------- ---------------------}] | > | < | | | | | | | | | | | | | | | | | | | | | | | | | > > > | | > > < < | < < < | | > > | > > | > > | > | > | > > | > | | | | > > | | > | | | | | | | | | | | | | | < | > > | | | | | | | | | | | | > > > > > > | | > | | > > > > > > > > > > > > > > > > > | | | | > > > > | | > > > > > > > | > > > | > > > > > > | > > > > > | > | < > > > | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 | [subsection {Changes for version 1.2}] [vset tcllib http://core.tcl.tk/tcllib/doc/trunk/embedded/www] [vset tm [vset tcllib]/tcllib/files/modules] [list_begin enumerated] [comment {- - -- --- ----- -------- ------------- ---------------------}] [enum] Extended the package [package cmdr::validate] with many new standard validation types: [list_begin enumerated] [enum] Double [enum] Percent [enum] Posint (positive integers, > 0) [enum] Paths and channels [list_begin enumerated] [enum] Readable file [enum] Writable file [enum] Read/writable file [enum] Readable directory [enum] Read/writeable directory [enum] readable path [enum] Read/writable path [enum] Readable path, as channel [enum] Writable path, as channel [enum] Read/writable path, as channel [list_end] [enum] Date and time related: [list_begin enumerated] [enum] ISO-8601 date/time, [enum] year [enum] weekday, [enum] hour:minute [list_end] [list_end] [enum] In package [package cmdr::validate], modified the integer validation type to have a proper internal representation: decimal. Input in octal, hex, etc. is now normalized to this. [enum] Extended package [package cmdr::validate::common] with more helper commands for the generation of validation failure messages [list_begin enumerated] [enum] [cmd fail-unknown-thing-msg] [enum] [cmd fail-unknown-simple] [enum] [cmd fail-unknown-simple-msg] [enum] [cmd fail-known-thing-msg] [enum] [cmd fail-known-simple] [enum] [cmd fail-known-simple-msg] [list_end] [enum] Added various new supporting packages: [list_begin definitions] [def [package cmdr::tty]] Test for terminal. [def [package cmdr::color]] Color management, ansi control sequences. [def [package cmdr::ask]] User interaction commands. [def [package cmdr::pager]] Text display with automatic invokation of a pager for tall output. [def [package cmdr::history]] Pluggable management of command history. [def [package cmdr::table]] Table formatting, a simplified interface to [uri [vset tcllib]/toc.html Tcllib]'s [package struct::matrix] and [package report] packages. [def [package cmdr::validate::valtype-support]] Even more validation types, now as wrappers around the validation commands provided by [uri [vset tcllib]/toc.html Tcllib]: [list_begin enumerated] [enum] [uri [vset tm]/valtype/cc_amex.html valtype::creditcard::amex] [enum] [uri [vset tm]/valtype/cc_discover.html valtype::creditcard::discover] [enum] [uri [vset tm]/valtype/cc_mastercard.html valtype::creditcard::mastercard] [enum] [uri [vset tm]/valtype/cc_visa.html valtype::creditcard::visa] [enum] [uri [vset tm]/valtype/ean13.html valtype::gs1::ean13] [enum] [uri [vset tm]/valtype/iban.html valtype::iban] [enum] [uri [vset tm]/valtype/imei.html valtype::imei] [enum] [uri [vset tm]/valtype/isbn.html valtype::isbn] [enum] [uri [vset tm]/valtype/luhn.html valtype::luhn] [enum] [uri [vset tm]/valtype/luhn5.html valtype::luhn5] [enum] [uri [vset tm]/valtype/usnpi.html valtype::usnpi] [enum] [uri [vset tm]/valtype/verhoeff.html valtype::verhoeff] [list_end] [list_end] [enum] Extended package [package cmdr::officer] with [list_begin enumerated] [enum] Support for per-officer options. The most common use case will likely be the declaration of global options in the root officer. [para] Related to this, a new common block [const *config*] is set to the active [package config] instance, which will be different from the defining instance, for per-officer options. This gives the per-officer options access to the arguments (and options) of the current command, instead of only their own sibling options. [enum] Support for an option [option -extend] for common blocks, allowing their extension in a subordinate instead of just replacing the entire content. [enum] Support to accept all unique command prefixes of an officer's subordinates for dispatch. [list_end] [enum] Extended package [package cmdr::parameter] with [list_begin enumerated] [enum] Support for the specification of negative aliases for boolean options, i.e. representing the inverted option. [para] See the DSL commands [cmd neg-alias] and [cmd !alias] in [term {Cmdr - Parameter Specification Language}]. [enum] Support for option labeling, for use in the generated help, to make it more descriptive. Options for which no label is specified will use their name as fallback. [para] See DSL command [cmd label] in [term {Cmdr - Parameter Specification Language}]. [list_end] [enum] Help system changes [list_begin enumerated] [enum] Modified it to use the [const short] format for interior nodes of the command hierarchy by default. [enum] Modified it to exclude auto-added commands from the output generated by format [const by-category]. [enum] Modified the format [const full] to show the option arguments for those which have such. See also the extension of package [package cmdr::parameter] with support for option labels, this is what is used here. [enum] Modified it to declare a standard global option [option --help] (with aliases [option -h] and [option -?]). Using the option invokes the standard help (command) on the current command, if any, or the global help if there is no command. [enum] Modified to use a minimum width of 10 characters for descriptions. If the user narrowed the terminal this far then having the text either cut off at the right edge, or wrapped around is not worse then the help trying to wrap the sentence with word boundaries, etc. Also, trying to use negative width threw Tcl errors. [list_end] [enum] Fixed the handling of common block [const *all*] in package [package cmdr::officer]. While it was ok trapping and ignoring a missing definition of this block, trapping everything which could go wrong was not. [para][uri http://core.tcl.tk/akupries/cmdr/info/9159f68bc35d9747 Details]. [enum] Fixed a long-standing bug of package [package cmdr::config] in the forced calculation of parameter values in method [method Force]). Any error in the calculations left an internal flag set, causing future invokations to believe to be in a recursive call and thus do nothing. [para] While this had no effect on regular operation, i.e. with the application exiting after each command, in interactive mode this misbehaviour disabled all checks and validations for the command in question, and also retained old parameter values. [para][uri http://core.tcl.tk/akupries/cmdr/info/f74095b252d4c9df Details] [enum] Modified the formatting of [package cmdr::config] state when interactively entering it for a private. Parameter names now are shown as declared, and an additional flag character indicates if it is inherited from above, or not. [enum] General fixes to testsuite, code comments, bogus variable names, typos in error messages, etc. [comment {- - -- --- ----- -------- ------------- ---------------------}] [list_end] |
Changes to doc/parts/dev_dsl_officer.inc.
︙ | ︙ | |||
10 11 12 13 14 15 16 17 18 | on first call) to provide the necessary in-memory structures. [para] The DSL commands map to instance methods as shown below: [list_begin definitions] [def [cmd alias]] [method Alias] [def [cmd common]] [package cmdr::actor] [method set] [def [cmd default]] [method Default] [def [cmd description]] [package cmdr::actor] [method description:] | > | | | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | on first call) to provide the necessary in-memory structures. [para] The DSL commands map to instance methods as shown below: [list_begin definitions] [def [cmd alias]] [method Alias] [def [cmd common]] [package cmdr::actor] [method set] [def [cmd custom-setup]] [method custom-setup] [def [cmd default]] [method Default] [def [cmd description]] [package cmdr::actor] [method description:] [def [cmd ehandler]] See [cmd intercept]. [emph Deprecated]. [def [cmd intercept]] [method intercept] [def [cmd officer]] [method Officer], forward to [method DefineAction] [def [cmd private]] [method Private], forward to [method DefineAction] [def [cmd undocumented]] [package cmdr::actor] [method undocumented] [list_end] |
Changes to doc/parts/dsl_officer.inc.
︙ | ︙ | |||
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | [comment {- - -- --- ----- -------- -------------}] [call [cmd description] [arg text]] This command declares the help text of the [term officer]. [comment {- - -- --- ----- -------- -------------}] [call [cmd ehandler] [arg cmdprefix]] This is an advanced command which should normally only be specified at the top of the whole hierarchy (from which its value will automatically propagate to all subordinates). [para] At runtime the framework will call the specified command prefix with a single argument, a script whose execution is equivalent to the | > > > > | 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | [comment {- - -- --- ----- -------- -------------}] [call [cmd description] [arg text]] This command declares the help text of the [term officer]. [comment {- - -- --- ----- -------- -------------}] [call [cmd intercept] [arg cmdprefix]] [call [cmd ehandler] [arg cmdprefix]] [emph Note:] While the form [cmd ehandler] is still usable, it is deprecated and will be removed in a future release. This is an advanced command which should normally only be specified at the top of the whole hierarchy (from which its value will automatically propagate to all subordinates). [para] At runtime the framework will call the specified command prefix with a single argument, a script whose execution is equivalent to the |
︙ | ︙ | |||
136 137 138 139 140 141 142 | cleanup code transient state [emph will] leak between multiple commands run from such a shell, something which is definitely not wanted. [list_end] [comment {- - -- --- ----- -------- -------------}] | | > > > > | | < | 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | cleanup code transient state [emph will] leak between multiple commands run from such a shell, something which is definitely not wanted. [list_end] [comment {- - -- --- ----- -------- -------------}] [call [cmd custom-setup] [arg cmdprefix]] This is an advanced command which should normally only be specified at the top of the whole hierarchy (from which its value will automatically propagate to all subordinates). [para] When called multiple times, the specified commands accumulate. This makes it easy to specify several indepedent customizations. [para] At runtime the framework will invoke all the specified commands with a single argument, the command of the actor to initialize. The command prefix is then allowed to modify that actor as it sees fit. The common use case will be the extension of the object with additional subordinates. An example of this is the package [package cmdr::history] which provides a command [cmd cmdr::history::attach] to add the history |
︙ | ︙ |
Changes to doc/parts/dsl_para_support.inc.
︙ | ︙ | |||
21 22 23 24 25 26 27 | The returned callback sets the [arg name]d sibling parameter to the specified [arg value]. A simple method of communication between parameters of a command. [para] Useful for use with [cmd when-set] and/or [cmd when-complete] | | | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | The returned callback sets the [arg name]d sibling parameter to the specified [arg value]. A simple method of communication between parameters of a command. [para] Useful for use with [cmd when-set] and/or [cmd when-complete] [call [cmd touch?] [arg name] [arg value]] The returned callback sets the [arg name]d sibling parameter to the specified [arg value], if and only if that parameter exists. A simple method of communication between parameters of a command, where the sibling may not exists, depending on usage context. [para] Useful for use with [cmd when-set] and/or [cmd when-complete] |
︙ | ︙ |
Changes to embedded/man/files/cmdr_changes.n.
︙ | ︙ | |||
281 282 283 284 285 286 287 | For availability please read \fICmdr - How To Get The Sources\fR\&. .PP This document provides an overview of the changes \fBcmdr\fR underwent from version to version\&. .SH CHANGES .SS "CHANGES FOR VERSION 1\&.2" .IP [1] | > | < | 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 | For availability please read \fICmdr - How To Get The Sources\fR\&. .PP This document provides an overview of the changes \fBcmdr\fR underwent from version to version\&. .SH CHANGES .SS "CHANGES FOR VERSION 1\&.2" .IP [1] Extended the package \fBcmdr::validate\fR with many new standard validation types: .RS .IP [1] Double .IP [2] Percent .IP [3] Posint (positive integers, > 0) |
︙ | ︙ | |||
318 319 320 321 322 323 324 | .IP [10] Read/writable path, as channel .RE .IP [5] Date and time related: .RS .IP [1] | | > | > > | > > | | | < < < < | | < < < < | | | | | < | | | 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 | .IP [10] Read/writable path, as channel .RE .IP [5] Date and time related: .RS .IP [1] ISO-8601 date/time, .IP [2] year .IP [3] weekday, .IP [4] hour:minute .RE .RE .IP [2] In package \fBcmdr::validate\fR, modified the integer validation type to have a proper internal representation: decimal\&. Input in octal, hex, etc\&. is now normalized to this\&. .IP [3] Extended package \fBcmdr::validate::common\fR with more helper commands for the generation of validation failure messages .RS .IP [1] \fBfail-unknown-thing-msg\fR .IP [2] \fBfail-unknown-simple\fR .IP [3] \fBfail-unknown-simple-msg\fR .IP [4] \fBfail-known-thing-msg\fR .IP [5] \fBfail-known-simple\fR .IP [6] \fBfail-known-simple-msg\fR .RE .IP [4] Added various new supporting packages: .RS .TP \fBcmdr::tty\fR Test for terminal\&. .TP \fBcmdr::color\fR Color management, ansi control sequences\&. .TP \fBcmdr::ask\fR User interaction commands\&. .TP \fBcmdr::pager\fR Text display with automatic invokation of a pager for tall output\&. .TP \fBcmdr::history\fR Pluggable management of command history\&. .TP \fBcmdr::table\fR Table formatting, a simplified interface to \fITcllib\fR [http://core\&.tcl\&.tk/tcllib/doc/trunk/embedded/www/toc\&.html]'s \fBstruct::matrix\fR and \fBreport\fR packages\&. .TP \fBcmdr::validate::valtype-support\fR Even more validation types, now as wrappers around the validation commands provided by \fITcllib\fR [http://core\&.tcl\&.tk/tcllib/doc/trunk/embedded/www/toc\&.html]: .RS .IP [1] \fIvaltype::creditcard::amex\fR [http://core\&.tcl\&.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/cc_amex\&.html] .IP [2] \fIvaltype::creditcard::discover\fR [http://core\&.tcl\&.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/cc_discover\&.html] .IP [3] |
︙ | ︙ | |||
410 411 412 413 414 415 416 | .IP [11] \fIvaltype::usnpi\fR [http://core\&.tcl\&.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/usnpi\&.html] .IP [12] \fIvaltype::verhoeff\fR [http://core\&.tcl\&.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/verhoeff\&.html] .RE .RE .IP [5] | > > > | | | | | | | | | | | | | | > > > > > > > | | > | | < | | | > > | < | > | | | | | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > > > > | > | 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 | .IP [11] \fIvaltype::usnpi\fR [http://core\&.tcl\&.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/usnpi\&.html] .IP [12] \fIvaltype::verhoeff\fR [http://core\&.tcl\&.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/verhoeff\&.html] .RE .RE .IP [5] Extended package \fBcmdr::officer\fR with .RS .IP [1] Support for per-officer options\&. The most common use case will likely be the declaration of global options in the root officer\&. .sp Related to this, a new common block \fB*config*\fR is set to the active \fBconfig\fR instance, which will be different from the defining instance, for per-officer options\&. This gives the per-officer options access to the arguments (and options) of the current command, instead of only their own sibling options\&. .IP [2] Support for an option \fB-extend\fR for common blocks, allowing their extension in a subordinate instead of just replacing the entire content\&. .IP [3] Support to accept all unique command prefixes of an officer's subordinates for dispatch\&. .RE .IP [6] Extended package \fBcmdr::parameter\fR with .RS .IP [1] Support for the specification of negative aliases for boolean options, i\&.e\&. representing the inverted option\&. .sp See the DSL commands \fBneg-alias\fR and \fB!alias\fR in \fICmdr - Parameter Specification Language\fR\&. .IP [2] Support for option labeling, for use in the generated help, to make it more descriptive\&. Options for which no label is specified will use their name as fallback\&. .sp See DSL command \fBlabel\fR in \fICmdr - Parameter Specification Language\fR\&. .RE .IP [7] Help system changes .RS .IP [1] Modified it to use the \fBshort\fR format for interior nodes of the command hierarchy by default\&. .IP [2] Modified it to exclude auto-added commands from the output generated by format \fBby-category\fR\&. .IP [3] Modified the format \fBfull\fR to show the option arguments for those which have such\&. See also the extension of package \fBcmdr::parameter\fR with support for option labels, this is what is used here\&. .IP [4] Modified it to declare a standard global option \fB--help\fR (with aliases \fB-h\fR and \fB-?\fR)\&. Using the option invokes the standard help (command) on the current command, if any, or the global help if there is no command\&. .IP [5] Modified to use a minimum width of 10 characters for descriptions\&. If the user narrowed the terminal this far then having the text either cut off at the right edge, or wrapped around is not worse then the help trying to wrap the sentence with word boundaries, etc\&. Also, trying to use negative width threw Tcl errors\&. .RE .IP [8] Fixed the handling of common block \fB*all*\fR in package \fBcmdr::officer\fR\&. While it was ok trapping and ignoring a missing definition of this block, trapping everything which could go wrong was not\&. .sp \fIDetails\fR [http://core\&.tcl\&.tk/akupries/cmdr/info/9159f68bc35d9747]\&. .IP [9] Fixed a long-standing bug of package \fBcmdr::config\fR in the forced calculation of parameter values in method \fBForce\fR)\&. Any error in the calculations left an internal flag set, causing future invokations to believe to be in a recursive call and thus do nothing\&. .sp While this had no effect on regular operation, i\&.e\&. with the application exiting after each command, in interactive mode this misbehaviour disabled all checks and validations for the command in question, and also retained old parameter values\&. .sp \fIDetails\fR [http://core\&.tcl\&.tk/akupries/cmdr/info/f74095b252d4c9df] .IP [10] Modified the formatting of \fBcmdr::config\fR state when interactively entering it for a private\&. Parameter names now are shown as declared, and an additional flag character indicates if it is inherited from above, or not\&. .IP [11] General fixes to testsuite, code comments, bogus variable names, typos in error messages, etc\&. .PP .SS "CHANGES FOR VERSION 1\&.1" .IP [1] Fixed broken requirement references in the meta data of packages \fBcmdr::help::json\fR and \fBcmdr::help::sql\fR\&. .IP [2] Fixed initialization issues in the help generator\&. |
︙ | ︙ |
Changes to embedded/man/files/cmdr_color.n.
1 | '\" | | | 1 2 3 4 5 6 7 8 9 | '\" '\" Generated from file 'cmdr_color\&.man~' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2013-2016 Andreas Kupries '\" Copyright (c) 2013-2016 Documentation, Andreas Kupries '\" .TH "cmdr::color" n 1\&.0\&.2 doc "Cmdr, a framework for command line parsing and dispatch" .\" The -*- nroff -*- definitions below are for supplemental macros used .\" in Tcl/Tk manual entries. .\" |
︙ | ︙ |
Changes to embedded/man/files/cmdr_dev_dsl.n.
︙ | ︙ | |||
306 307 308 309 310 311 312 313 314 315 316 317 318 319 | .TP \fBalias\fR \fBAlias\fR .TP \fBcommon\fR \fBcmdr::actor\fR \fBset\fR .TP \fBdefault\fR \fBDefault\fR .TP \fBdescription\fR \fBcmdr::actor\fR \fBdescription:\fR .TP \fBehandler\fR | > > > | | | | 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 | .TP \fBalias\fR \fBAlias\fR .TP \fBcommon\fR \fBcmdr::actor\fR \fBset\fR .TP \fBcustom-setup\fR \fBcustom-setup\fR .TP \fBdefault\fR \fBDefault\fR .TP \fBdescription\fR \fBcmdr::actor\fR \fBdescription:\fR .TP \fBehandler\fR See \fBintercept\fR\&. \fIDeprecated\fR\&. .TP \fBintercept\fR \fBintercept\fR .TP \fBofficer\fR \fBOfficer\fR, forward to \fBDefineAction\fR .TP \fBprivate\fR \fBPrivate\fR, forward to \fBDefineAction\fR .TP |
︙ | ︙ |
Changes to embedded/man/files/cmdr_dsl_officer.n.
︙ | ︙ | |||
281 282 283 284 285 286 287 288 289 | .sp \fBcommon\fR \fIname\fR \fB-extend\fR \fB--\fR \fItext\fR .sp \fBdefault\fR .sp \fBdescription\fR \fItext\fR .sp \fBehandler\fR \fIcmdprefix\fR .sp | > > | | 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 | .sp \fBcommon\fR \fIname\fR \fB-extend\fR \fB--\fR \fItext\fR .sp \fBdefault\fR .sp \fBdescription\fR \fItext\fR .sp \fBintercept\fR \fIcmdprefix\fR .sp \fBehandler\fR \fIcmdprefix\fR .sp \fBcustom-setup\fR \fIcmdprefix\fR .sp \fBofficer\fR \fIname\fR \fIscript\fR .sp \fBprivate\fR \fIname\fR \fIscript\fR \fIcmdprefix\fR .sp \fBundocumented\fR .sp |
︙ | ︙ | |||
409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 | word does not match any of the commands known to this \fIofficer\fR this default is used\&. If no default is specified an error will be thrown instead\&. .TP \fBdescription\fR \fItext\fR This command declares the help text of the \fIofficer\fR\&. .TP \fBehandler\fR \fIcmdprefix\fR This is an advanced command which should normally only be specified at the top of the whole hierarchy (from which its value will automatically propagate to all subordinates)\&. .sp At runtime the framework will call the specified command prefix with a single argument, a script whose execution is equivalent to the phases \fIParsing\fR, \fICompletion\fR, and \fIExecution\fR of the | > > > > | 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 | word does not match any of the commands known to this \fIofficer\fR this default is used\&. If no default is specified an error will be thrown instead\&. .TP \fBdescription\fR \fItext\fR This command declares the help text of the \fIofficer\fR\&. .TP \fBintercept\fR \fIcmdprefix\fR .TP \fBehandler\fR \fIcmdprefix\fR \fINote:\fR While the form \fBehandler\fR is still usable, it is deprecated and will be removed in a future release\&. This is an advanced command which should normally only be specified at the top of the whole hierarchy (from which its value will automatically propagate to all subordinates)\&. .sp At runtime the framework will call the specified command prefix with a single argument, a script whose execution is equivalent to the phases \fIParsing\fR, \fICompletion\fR, and \fIExecution\fR of the |
︙ | ︙ | |||
437 438 439 440 441 442 443 | This is especially important if the interactive command line shells of the framework are enabled\&. Without such a handler and its bespoke cleanup code transient state \fIwill\fR leak between multiple commands run from such a shell, something which is definitely not wanted\&. .RE .TP | | > > > > | | < | 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 | This is especially important if the interactive command line shells of the framework are enabled\&. Without such a handler and its bespoke cleanup code transient state \fIwill\fR leak between multiple commands run from such a shell, something which is definitely not wanted\&. .RE .TP \fBcustom-setup\fR \fIcmdprefix\fR This is an advanced command which should normally only be specified at the top of the whole hierarchy (from which its value will automatically propagate to all subordinates)\&. .sp When called multiple times, the specified commands accumulate\&. This makes it easy to specify several indepedent customizations\&. .sp At runtime the framework will invoke all the specified commands with a single argument, the command of the actor to initialize\&. The command prefix is then allowed to modify that actor as it sees fit\&. The common use case will be the extension of the object with additional subordinates\&. An example of this is the package \fBcmdr::history\fR which provides a command \fBcmdr::history::attach\fR to add the history management commands to the actor in question\&. .TP |
︙ | ︙ |
Changes to embedded/man/files/cmdr_dsl_parameter.n.
︙ | ︙ | |||
311 312 313 314 315 316 317 | .sp \fBwhen-set\fR \fIcmdprefix\fR .sp \fBstop!\fR .sp \fBtouch\fR \fIname\fR \fIvalue\fR .sp | | | 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 | .sp \fBwhen-set\fR \fIcmdprefix\fR .sp \fBstop!\fR .sp \fBtouch\fR \fIname\fR \fIvalue\fR .sp \fBtouch?\fR \fIname\fR \fIvalue\fR .sp \fBdisallow\fR \fIname\fR .sp .BE .SH DESCRIPTION .PP Welcome to the Cmdr project, written by Andreas Kupries\&. |
︙ | ︙ | |||
755 756 757 758 759 760 761 | \fBtouch\fR \fIname\fR \fIvalue\fR The returned callback sets the \fIname\fRd sibling parameter to the specified \fIvalue\fR\&. A simple method of communication between parameters of a command\&. .sp Useful for use with \fBwhen-set\fR and/or \fBwhen-complete\fR .TP | | | 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 | \fBtouch\fR \fIname\fR \fIvalue\fR The returned callback sets the \fIname\fRd sibling parameter to the specified \fIvalue\fR\&. A simple method of communication between parameters of a command\&. .sp Useful for use with \fBwhen-set\fR and/or \fBwhen-complete\fR .TP \fBtouch?\fR \fIname\fR \fIvalue\fR The returned callback sets the \fIname\fRd sibling parameter to the specified \fIvalue\fR, if and only if that parameter exists\&. A simple method of communication between parameters of a command, where the sibling may not exists, depending on usage context\&. .sp Useful for use with \fBwhen-set\fR and/or \fBwhen-complete\fR .TP |
︙ | ︙ |
Changes to embedded/man/files/cmdr_history.n.
︙ | ︙ | |||
316 317 318 319 320 321 322 | history list ?n? - Show last n history entries\&. Defaults to all\&. history clear - Drop all history entries history limit ?n? - Limit history to 'n' entries (n >= 0)\&. Unlimited for n < 0\&. .CE .IP Under most circumstances the attachment is handled through the | | | 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 | history list ?n? - Show last n history entries\&. Defaults to all\&. history clear - Drop all history entries history limit ?n? - Limit history to 'n' entries (n >= 0)\&. Unlimited for n < 0\&. .CE .IP Under most circumstances the attachment is handled through the method \fBcustom-setup\fR of officers\&. See \fBcmdr::officer\fR, and the \fBExample\fR for more information\&. .TP \fB::cmdr::history\fR \fBsave-to\fR \fIpath\fR When invoked this command sets the package-wide history save file used by the commands to the \fIpath\fR\&. .sp The result of the command is the empty string\&. |
︙ | ︙ | |||
342 343 344 345 346 347 348 | .CS cmdr history initial-limit 20 cmdr history save-to ~/\&.fx_history cmdr create fx::fx [file tail $::argv0] { | | | 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 | .CS cmdr history initial-limit 20 cmdr history save-to ~/\&.fx_history cmdr create fx::fx [file tail $::argv0] { custom-setup ::cmdr::history::attach [\&.\&.\&.] } .CE .SH "BUGS, IDEAS, FEEDBACK" Both the package(s) and this documentation will undoubtedly contain |
︙ | ︙ |
Changes to embedded/man/files/cmdr_officer.n.
︙ | ︙ | |||
291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 | .sp \fB<officer>\fR \fBdefault\fR .sp \fB<officer>\fR \fBdispatch\fR \fIcmd\fR .sp \fB<officer>\fR \fBdo\fR ?\fIword\fR\&.\&.\&.? .sp \fB<officer>\fR \fBehandler\fR \fIcmd\fR .sp \fB<officer>\fR \fBexit\fR .sp \fB<officer>\fR \fBextend\fR \fIpath\fR \fIarguments\fR \fIaction\fR .sp \fB<officer>\fR \fBfind\fR \fIpath\fR .sp | > > > > | 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 | .sp \fB<officer>\fR \fBdefault\fR .sp \fB<officer>\fR \fBdispatch\fR \fIcmd\fR .sp \fB<officer>\fR \fBdo\fR ?\fIword\fR\&.\&.\&.? .sp \fB<officer>\fR \fBintercept\fR \fIcmd\fR .sp \fB<officer>\fR \fBehandler\fR \fIcmd\fR .sp \fB<officer>\fR \fBcustom-setup\fR \fIcmd\fR .sp \fB<officer>\fR \fBexit\fR .sp \fB<officer>\fR \fBextend\fR \fIpath\fR \fIarguments\fR \fIaction\fR .sp \fB<officer>\fR \fBfind\fR \fIpath\fR .sp |
︙ | ︙ | |||
437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 | This represents the "Dispatch" phase of command line processing\&. .RS .TP string \fIword\fR The words of the command line to parse and match to parameters\&. .RE .TP \fB<officer>\fR \fBehandler\fR \fIcmd\fR This method specifies a command prefix to wrap around the parsing of the command line for the officer, and the execution of its action\&. .RS .TP cmd-prefix \fIcmd\fR A command prefix taking a single argument, a script\&. The command prefix has to execute this script in its caller's context\&. The script will parse words for the officer,m and perform its action\&. The command prefix then has the responsbility to perform any custom cleanup action required by the application using the framework to prevent leakage of data between multiple commands executed one after the other (i\&.e\&. in an interactive shell run by the framework)\&. .RE .TP \fB<officer>\fR \fBexit\fR This hook-method for the main shell returns a boolean value indicating whether the main shell was stopped and has to exit (\fBtrue\fR), or not (\fBfalse\fR)\&. .TP \fB<officer>\fR \fBextend\fR \fIpath\fR \fIarguments\fR \fIaction\fR | > > > > > > > > > > > > > > > > > > > > > > > > > > | 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 | This represents the "Dispatch" phase of command line processing\&. .RS .TP string \fIword\fR The words of the command line to parse and match to parameters\&. .RE .TP \fB<officer>\fR \fBintercept\fR \fIcmd\fR .TP \fB<officer>\fR \fBehandler\fR \fIcmd\fR \fINote:\fR While the form \fBehandler\fR is still usable, it is deprecated and will be removed in a future release\&. This method specifies a command prefix to wrap around the parsing of the command line for the officer, and the execution of its action\&. .RS .TP cmd-prefix \fIcmd\fR A command prefix taking a single argument, a script\&. The command prefix has to execute this script in its caller's context\&. The script will parse words for the officer,m and perform its action\&. The command prefix then has the responsbility to perform any custom cleanup action required by the application using the framework to prevent leakage of data between multiple commands executed one after the other (i\&.e\&. in an interactive shell run by the framework)\&. .RE .TP \fB<officer>\fR \fBcustom-setup\fR \fIcmd\fR This method specifies a command prefix which will be run all the regular setup of the officer from its specification is done, to perform customizations\&. .sp An example of this can be seen in the package \fBcmdr::history\fR\&. It provides a command \fBcmdr::history::attach\fR to add the history management commands to the actor in question, suitable as argument to this method\&. .sp When called multiple times, the specified commands accumulate\&. This makes it easy to specify several indepedent customizations\&. .RS .TP cmd-prefix \fIcmd\fR A command prefix taking a single argument, the instance command of an \fBcmd::actor\fR\&. The command prefix has full access to this actor and can modify it as it sees fit\&. The common use case will be the extension of the actor with additional subordinates\&. .RE .TP \fB<officer>\fR \fBexit\fR This hook-method for the main shell returns a boolean value indicating whether the main shell was stopped and has to exit (\fBtrue\fR), or not (\fBfalse\fR)\&. .TP \fB<officer>\fR \fBextend\fR \fIpath\fR \fIarguments\fR \fIaction\fR |
︙ | ︙ |
Changes to embedded/man/files/cmdr_private.n.
︙ | ︙ | |||
281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 | .sp \fB::cmdr::private\fR \fBcreate\fR \fIobj\fR \fIsuper\fR \fIname\fR \fIarguments\fR \fIaction\fR .sp \fB<private>\fR \fBcomplete-words\fR \fIparse\fR .sp \fB<private>\fR \fBdo\fR ?\fIword\fR\&.\&.\&.? .sp \fB<private>\fR \fBehandler\fR \fIcmd\fR .sp \fB<private>\fR \fBfind\fR \fIpath\fR .sp \fB<private>\fR \fBhelp\fR ?\fIprefix\fR? .sp \fB<private>\fR \fBunknown\fR \fIm\fR ?\fIword\fR\&.\&.\&.? .sp | > > > > | 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 | .sp \fB::cmdr::private\fR \fBcreate\fR \fIobj\fR \fIsuper\fR \fIname\fR \fIarguments\fR \fIaction\fR .sp \fB<private>\fR \fBcomplete-words\fR \fIparse\fR .sp \fB<private>\fR \fBdo\fR ?\fIword\fR\&.\&.\&.? .sp \fB<private>\fR \fBintercept\fR \fIcmd\fR .sp \fB<private>\fR \fBehandler\fR \fIcmd\fR .sp \fB<private>\fR \fBcustom-setup\fR \fIcmd\fR .sp \fB<private>\fR \fBfind\fR \fIpath\fR .sp \fB<private>\fR \fBhelp\fR ?\fIprefix\fR? .sp \fB<private>\fR \fBunknown\fR \fIm\fR ?\fIword\fR\&.\&.\&.? .sp |
︙ | ︙ | |||
376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 | filled container of parameters\&. .RS .TP string \fIword\fR The words of the command line to parse and match to parameters\&. .RE .TP \fB<private>\fR \fBehandler\fR \fIcmd\fR This method specifies a command prefix to wrap around the parsing of the command line for the private, and the execution of its action\&. .RS .TP cmd-prefix \fIcmd\fR A command prefix taking a single argument, a script\&. The command prefix has to execute this script in its caller's context\&. The script will parse words for the private,m and perform its action\&. The command prefix then has the responsbility to perform any custom cleanup action required by the application using the framework to prevent leakage of data between multiple commands executed one after the other (i\&.e\&. in an interactive shell run by the framework)\&. .RE .TP \fB<private>\fR \fBfind\fR \fIpath\fR This method returns the instance command of the sub-ordinate with the given \fIpath\fR of names\&. An error is thrown if such a sub-ordinate does not exist, i\&.e\&. whenever \fIpath\fR is not empty, as a private has no sub-ordinates, ever\&. .sp Note, as implied above, an empty \fIpath\fR is allowed and | > > > > > > > > > > > > > > | 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 | filled container of parameters\&. .RS .TP string \fIword\fR The words of the command line to parse and match to parameters\&. .RE .TP \fB<private>\fR \fBintercept\fR \fIcmd\fR .TP \fB<private>\fR \fBehandler\fR \fIcmd\fR \fINote:\fR While the form \fBehandler\fR is still usable, it is deprecated and will be removed in a future release\&. This method specifies a command prefix to wrap around the parsing of the command line for the private, and the execution of its action\&. .RS .TP cmd-prefix \fIcmd\fR A command prefix taking a single argument, a script\&. The command prefix has to execute this script in its caller's context\&. The script will parse words for the private,m and perform its action\&. The command prefix then has the responsbility to perform any custom cleanup action required by the application using the framework to prevent leakage of data between multiple commands executed one after the other (i\&.e\&. in an interactive shell run by the framework)\&. .RE .TP \fB<private>\fR \fBcustom-setup\fR \fIcmd\fR This method specifies a command prefix which will be run all the regular setup of an officer from its specification is done, to perform customizations\&. .sp The \fB<private>\fR here ignores such calls\&. .sp The method exists only to avoid having to special-case code the places propagating these commands down the hierarchy\&. .TP \fB<private>\fR \fBfind\fR \fIpath\fR This method returns the instance command of the sub-ordinate with the given \fIpath\fR of names\&. An error is thrown if such a sub-ordinate does not exist, i\&.e\&. whenever \fIpath\fR is not empty, as a private has no sub-ordinates, ever\&. .sp Note, as implied above, an empty \fIpath\fR is allowed and |
︙ | ︙ |
Added embedded/man/files/cmdr_table.n.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 | '\" '\" Generated from file 'cmdr_table\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2013-2016 Andreas Kupries '\" Copyright (c) 2013-2016 Documentation, Andreas Kupries '\" .TH "cmdr::table" n 0\&.1 doc "Cmdr, a framework for command line parsing and dispatch" .\" The -*- nroff -*- definitions below are for supplemental macros used .\" in Tcl/Tk manual entries. .\" .\" .AP type name in/out ?indent? .\" Start paragraph describing an argument to a library procedure. .\" type is type of argument (int, etc.), in/out is either "in", "out", .\" or "in/out" to describe whether procedure reads or modifies arg, .\" and indent is equivalent to second arg of .IP (shouldn't ever be .\" needed; use .AS below instead) .\" .\" .AS ?type? ?name? .\" Give maximum sizes of arguments for setting tab stops. Type and .\" name are examples of largest possible arguments that will be passed .\" to .AP later. If args are omitted, default tab stops are used. .\" .\" .BS .\" Start box enclosure. From here until next .BE, everything will be .\" enclosed in one large box. .\" .\" .BE .\" End of box enclosure. .\" .\" .CS .\" Begin code excerpt. .\" .\" .CE .\" End code excerpt. .\" .\" .VS ?version? ?br? .\" Begin vertical sidebar, for use in marking newly-changed parts .\" of man pages. The first argument is ignored and used for recording .\" the version when the .VS was added, so that the sidebars can be .\" found and removed when they reach a certain age. If another argument .\" is present, then a line break is forced before starting the sidebar. .\" .\" .VE .\" End of vertical sidebar. .\" .\" .DS .\" Begin an indented unfilled display. .\" .\" .DE .\" End of indented unfilled display. .\" .\" .SO ?manpage? .\" Start of list of standard options for a Tk widget. The manpage .\" argument defines where to look up the standard options; if .\" omitted, defaults to "options". The options follow on successive .\" lines, in three columns separated by tabs. .\" .\" .SE .\" End of list of standard options for a Tk widget. .\" .\" .OP cmdName dbName dbClass .\" Start of description of a specific option. cmdName gives the .\" option's name as specified in the class command, dbName gives .\" the option's name in the option database, and dbClass gives .\" the option's class in the option database. .\" .\" .UL arg1 arg2 .\" Print arg1 underlined, then print arg2 normally. .\" .\" .QW arg1 ?arg2? .\" Print arg1 in quotes, then arg2 normally (for trailing punctuation). .\" .\" .PQ arg1 ?arg2? .\" Print an open parenthesis, arg1 in quotes, then arg2 normally .\" (for trailing punctuation) and then a closing parenthesis. .\" .\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. .if t .wh -1.3i ^B .nr ^l \n(.l .ad b .\" # Start an argument description .de AP .ie !"\\$4"" .TP \\$4 .el \{\ . ie !"\\$2"" .TP \\n()Cu . el .TP 15 .\} .ta \\n()Au \\n()Bu .ie !"\\$3"" \{\ \&\\$1 \\fI\\$2\\fP (\\$3) .\".b .\} .el \{\ .br .ie !"\\$2"" \{\ \&\\$1 \\fI\\$2\\fP .\} .el \{\ \&\\fI\\$1\\fP .\} .\} .. .\" # define tabbing values for .AP .de AS .nr )A 10n .if !"\\$1"" .nr )A \\w'\\$1'u+3n .nr )B \\n()Au+15n .\" .if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n .nr )C \\n()Bu+\\w'(in/out)'u+2n .. .AS Tcl_Interp Tcl_CreateInterp in/out .\" # BS - start boxed text .\" # ^y = starting y location .\" # ^b = 1 .de BS .br .mk ^y .nr ^b 1u .if n .nf .if n .ti 0 .if n \l'\\n(.lu\(ul' .if n .fi .. .\" # BE - end boxed text (draw box now) .de BE .nf .ti 0 .mk ^t .ie n \l'\\n(^lu\(ul' .el \{\ .\" Draw four-sided box normally, but don't draw top of .\" box if the box started on an earlier page. .ie !\\n(^b-1 \{\ \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' .\} .el \}\ \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' .\} .\} .fi .br .nr ^b 0 .. .\" # VS - start vertical sidebar .\" # ^Y = starting y location .\" # ^v = 1 (for troff; for nroff this doesn't matter) .de VS .if !"\\$2"" .br .mk ^Y .ie n 'mc \s12\(br\s0 .el .nr ^v 1u .. .\" # VE - end of vertical sidebar .de VE .ie n 'mc .el \{\ .ev 2 .nf .ti 0 .mk ^t \h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' .sp -1 .fi .ev .\} .nr ^v 0 .. .\" # Special macro to handle page bottom: finish off current .\" # box/sidebar if in box/sidebar mode, then invoked standard .\" # page bottom macro. .de ^B .ev 2 'ti 0 'nf .mk ^t .if \\n(^b \{\ .\" Draw three-sided box if this is the box's first page, .\" draw two sides but no top otherwise. .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 .el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c .\} .if \\n(^v \{\ .nr ^x \\n(^tu+1v-\\n(^Yu \kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c .\} .bp 'fi .ev .if \\n(^b \{\ .mk ^y .nr ^b 2 .\} .if \\n(^v \{\ .mk ^Y .\} .. .\" # DS - begin display .de DS .RS .nf .sp .. .\" # DE - end display .de DE .fi .RE .sp .. .\" # SO - start of list of standard options .de SO 'ie '\\$1'' .ds So \\fBoptions\\fR 'el .ds So \\fB\\$1\\fR .SH "STANDARD OPTIONS" .LP .nf .ta 5.5c 11c .ft B .. .\" # SE - end of list of standard options .de SE .fi .ft R .LP See the \\*(So manual entry for details on the standard options. .. .\" # OP - start of full description for a single option .de OP .LP .nf .ta 4c Command-Line Name: \\fB\\$1\\fR Database Name: \\fB\\$2\\fR Database Class: \\fB\\$3\\fR .fi .IP .. .\" # CS - begin code excerpt .de CS .RS .nf .ta .25i .5i .75i 1i .. .\" # CE - end code excerpt .de CE .fi .RE .. .\" # UL - underline word .de UL \\$1\l'|0\(ul'\\$2 .. .\" # QW - apply quotation marks to word .de QW .ie '\\*(lq'"' ``\\$1''\\$2 .\"" fix emacs highlighting .el \\*(lq\\$1\\*(rq\\$2 .. .\" # PQ - apply parens and quotation marks to word .de PQ .ie '\\*(lq'"' (``\\$1''\\$2)\\$3 .\"" fix emacs highlighting .el (\\*(lq\\$1\\*(rq\\$2)\\$3 .. .\" # QR - quoted range .de QR .ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3 .\"" fix emacs highlighting .el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3 .. .\" # MT - "empty" string .de MT .QW "" .. .BS .SH NAME cmdr::table \- Cmdr - Simple Table creation .SH SYNOPSIS package require \fBcmdr::util \fR .sp \fB::cmdr::table\fR \fBgeneral\fR \fIvar\fR \fIheaders\fR \fIscript\fR .sp \fB::cmdr::table\fR \fBdict\fR \fIvar\fR \fIscript\fR .sp \fB::cmdr::table\fR \fBborders\fR ?\fIenable\fR? .sp \fB::cmdr::table\fR \fBshow\fR ?\fIcmd\fR\&.\&.\&.? .sp \fBt\fR \fBborders\fR ?\fIenable\fR? .sp \fBt\fR \fBheaders\fR ?\fIenable\fR? .sp \fBt\fR \fBstyle\fR ?\fIstyle\fR? .sp \fBt\fR \fBadd\fR \fIword\fR\&.\&.\&. .sp \fBt\fR \fB+\fR \fIword\fR\&.\&.\&. .sp \fBt\fR \fB+=\fR \fIword\fR\&.\&.\&. .sp \fBt\fR \fB<<\fR \fIword\fR\&.\&.\&. .sp \fBt\fR \fB<=\fR \fIword\fR\&.\&.\&. .sp \fBt\fR \fBshow*\fR ?\fIcmd\fR? .sp \fBt\fR \fBshow\fR ?\fIcmd\fR? .sp .BE .SH DESCRIPTION .PP Welcome to the Cmdr project, written by Andreas Kupries\&. .PP For availability please read \fICmdr - How To Get The Sources\fR\&. .PP This package provides convenience commands for the easy creation of simple tables\&. .SH API .TP \fB::cmdr::table\fR \fBgeneral\fR \fIvar\fR \fIheaders\fR \fIscript\fR This command creates a new table with the words found in the list of \fIheaders\fR as the top row\&. The \fIscript\fR is run in the calling context to configure and populate the table\&. The table's object command is stored in the named \fIvar\fR for access by the \fIscript\fR\&. The result of the command is the table's object command\&. .RS .TP varname \fIvar\fR The name of the variable in the calling scope the new table's object command will be stored into\&. .TP list \fIheaders\fR The list of words to user as column headers\&. .TP string \fIscript\fR The tcl script to be run to configure and populate the table\&. .RE .TP \fB::cmdr::table\fR \fBdict\fR \fIvar\fR \fIscript\fR This command creates a new table intended for the display of a Tcl dictionary\&. It will have two columns titled \fBKey\fR and \fBValue\fR\&. The \fIscript\fR is run in the calling context to configure and populate the table\&. The table's object command is stored in the named \fIvar\fR for access by the \fIscript\fR\&. The result of the command is the table's object command\&. .RS .TP varname \fIvar\fR The name of the variable in the calling scope the new table's object command will be stored into\&. .TP string \fIscript\fR The tcl script to be run to configure and populate the table\&. .RE .TP \fB::cmdr::table\fR \fBborders\fR ?\fIenable\fR? This command configures the global \fIborder\fR setting, which indicates the (non)use of borders by the tables of this package\&. Note that changes to this setting influence only the tables created after the change\&. Existing tables are not modified\&. .sp The result of the command is the new state of the setting\&. .sp If the command is called without an argument it simply returns the current state of the setting, without making changes\&. .sp The default value for the setting is \fByes\fR\&. Individual tables can override the global settings via their \fBborders\fR method, see \fBTable API\fR\&. .RS .TP boolean \fIenable\fR The new value of the setting\&. Optional\&. .RE .TP \fB::cmdr::table\fR \fBshow\fR ?\fIcmd\fR\&.\&.\&.? This command configures the global \fIshow\fR setting, which is the command prefix to use to print a table, if the table is not given a specific command to use\&. Note that changes to this setting influence only the tables created after the change\&. Existing tables are not modified\&. .sp The result of the command is the new state of the setting .sp If the command is called without any arguments it simply returns the current state of the setting, without making changes\&. .sp The default value for the setting is \fBputs\fR\&. .RS .TP word \fIcmd\fR The command prefix to use for printing a table, as varargs\&. The prefix will be invoked with a single argument, the string representation of the table\&. .RE .PP .SH "TABLE API" This section lists the methods available for configuration and population of the tables created by this package\&. .TP \fBt\fR \fBborders\fR ?\fIenable\fR? This is the table-level \fIborders\fR setting\&. On creation a table inherits the global setting (See \fB::cmdr::table borders\fR)\&. If that is not to suit then this method can be used to override it\&. .sp The result of the method is the new state of the setting\&. When called without argument no change is made and the result is the current state of the setting\&. .TP \fBt\fR \fBheaders\fR ?\fIenable\fR? This method controls the visibility of the header row\&. By default general tables have the header row visisble, while for dict tables the header is suppressed\&. This method allows the user to override these defaults\&. .sp The result of the method is the new state of the setting\&. When called without argument no change is made and the result is the current state of the setting\&. .TP \fBt\fR \fBstyle\fR ?\fIstyle\fR? This method allows the user to force the use of a completely custom style\&. Please see the documentation for the Tcllib package \fBreport\fR on how to define table styles\&. .sp The package defines four styles of its own, all using the common prefix \fBcmdr/table/\fR in their names\&. When no custom style is set the table chooses between these based on its \fIborders\fR and \fIheaders\fR settings\&. .sp The result of the method is the new state of the setting\&. When called without argument then no change is made and the result is the current state of the setting\&. .sp To revert from a custom style to the automatic choice invoke this method with the empty string as the name of the style\&. .TP \fBt\fR \fBadd\fR \fIword\fR\&.\&.\&. .TP \fBt\fR \fB+\fR \fIword\fR\&.\&.\&. .TP \fBt\fR \fB+=\fR \fIword\fR\&.\&.\&. .TP \fBt\fR \fB<<\fR \fIword\fR\&.\&.\&. .TP \fBt\fR \fB<=\fR \fIword\fR\&.\&.\&. This method adds a new row to the table, containing the given words\&. If less words than headers are specified the row is padded with empty columns\&. If too many words are specified the superfluous words are ignored\&. .sp The result of the method is the empty string\&. .TP \fBt\fR \fBshow*\fR ?\fIcmd\fR? This method formats the table into a string and then invokes the command prefix \fIcmd\fR to print that string\&. The command prefix is run at the global namespace and level\&. If the \fIcmd\fR is not specified the global \fIshow\fR setting is used instead\&. .sp The result of the method is the empty string\&. .TP \fBt\fR \fBshow\fR ?\fIcmd\fR? This is a variant of method \fBshow*\fR above which not only prints the table as above, but also destroys it\&. .PP .SH "BUGS, IDEAS, FEEDBACK" Both the package(s) and this documentation will undoubtedly contain bugs and other problems\&. Please report such at \fICmdr Tickets\fR [https:/core\&.tcl\&.tk/akupries/cmdr]\&. .PP Please also report any ideas you may have for enhancements of either package(s) and/or documentation\&. .SH KEYWORDS 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 .SH COPYRIGHT .nf Copyright (c) 2013-2016 Andreas Kupries Copyright (c) 2013-2016 Documentation, Andreas Kupries .fi |
Changes to embedded/man/index.n.
︙ | ︙ | |||
348 349 350 351 352 353 354 355 356 357 358 359 360 361 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP | > > > | 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_table\&.n\fR cmdr::table .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP |
︙ | ︙ | |||
504 505 506 507 508 509 510 511 512 513 514 515 516 517 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP | > > > | 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_table\&.n\fR cmdr::table .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP |
︙ | ︙ | |||
660 661 662 663 664 665 666 667 668 669 670 671 672 673 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP | > > > | 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_table\&.n\fR cmdr::table .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP |
︙ | ︙ | |||
816 817 818 819 820 821 822 823 824 825 826 827 828 829 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP | > > > | 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_table\&.n\fR cmdr::table .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP |
︙ | ︙ | |||
972 973 974 975 976 977 978 979 980 981 982 983 984 985 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP | > > > | 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_table\&.n\fR cmdr::table .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP |
︙ | ︙ | |||
1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP | > > > | 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_table\&.n\fR cmdr::table .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP |
︙ | ︙ | |||
1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP | > > > | 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_table\&.n\fR cmdr::table .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP |
︙ | ︙ | |||
1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP | > > > | 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_table\&.n\fR cmdr::table .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP |
︙ | ︙ | |||
1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP | > > > | 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_table\&.n\fR cmdr::table .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP |
︙ | ︙ | |||
1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP | > > > | 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_table\&.n\fR cmdr::table .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP |
︙ | ︙ | |||
1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP | > > > | 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_table\&.n\fR cmdr::table .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP |
︙ | ︙ | |||
2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP | > > > | 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_table\&.n\fR cmdr::table .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP |
︙ | ︙ | |||
2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP | > > > | 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_table\&.n\fR cmdr::table .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP |
︙ | ︙ | |||
2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP | > > > | 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 | cmdr::pager .TP \fBfiles/cmdr_parameter\&.n\fR cmdr::parameter .TP \fBfiles/cmdr_private\&.n\fR cmdr::private .TP \fBfiles/cmdr_table\&.n\fR cmdr::table .TP \fBfiles/cmdr_tty\&.n\fR cmdr::tty .TP \fBfiles/cmdr_util\&.n\fR cmdr::util .TP |
︙ | ︙ |
Changes to embedded/man/toc.n.
︙ | ︙ | |||
347 348 349 350 351 352 353 354 355 356 357 358 359 360 | .TP \fBcmdr::parameter\fR \fIfiles/cmdr_parameter\&.n\fR: Cmdr - (Partially internal) Command parameters .TP \fBcmdr::private\fR \fIfiles/cmdr_private\&.n\fR: Cmdr - (Internal) Single command handling, options, and arguments .TP \fBcmdr::tty\fR \fIfiles/cmdr_tty\&.n\fR: Cmdr - Check if stdin is a tty, i\&.e\&. terminal .TP \fBcmdr::util\fR \fIfiles/cmdr_util\&.n\fR: Cmdr - (Internal) General Utilities .TP \fBcmdr::validate\fR | > > > | 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 | .TP \fBcmdr::parameter\fR \fIfiles/cmdr_parameter\&.n\fR: Cmdr - (Partially internal) Command parameters .TP \fBcmdr::private\fR \fIfiles/cmdr_private\&.n\fR: Cmdr - (Internal) Single command handling, options, and arguments .TP \fBcmdr::table\fR \fIfiles/cmdr_table\&.n\fR: Cmdr - Simple Table creation .TP \fBcmdr::tty\fR \fIfiles/cmdr_tty\&.n\fR: Cmdr - Check if stdin is a tty, i\&.e\&. terminal .TP \fBcmdr::util\fR \fIfiles/cmdr_util\&.n\fR: Cmdr - (Internal) General Utilities .TP \fBcmdr::validate\fR |
︙ | ︙ |
Changes to embedded/www/doc/files/cmdr_changes.html.
︙ | ︙ | |||
131 132 133 134 135 136 137 | <p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p> <p>This document provides an overview of the changes <b class="package"><a href="cmdr.html">cmdr</a></b> underwent from version to version.</p> </div> <div id="section2" class="section"><h2><a name="section2">Changes</a></h2> <div id="subsection1" class="subsection"><h3><a name="subsection1">Changes for version 1.2</a></h3> <ol class="enumerated"> | < | > > | | | > | > | > > < < < < < | > | | | | | | < | | | | > > > | | | | | | | | | | | | > > > > > > > | | | | < | | | | | > > | > | | | | | > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 | <p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p> <p>This document provides an overview of the changes <b class="package"><a href="cmdr.html">cmdr</a></b> underwent from version to version.</p> </div> <div id="section2" class="section"><h2><a name="section2">Changes</a></h2> <div id="subsection1" class="subsection"><h3><a name="subsection1">Changes for version 1.2</a></h3> <ol class="enumerated"> <li><p>Extended the package <b class="package"><a href="cmdr_validate.html">cmdr::validate</a></b> with many new standard validation types:</p> <ol class="enumerated"> <li><p>Double</p></li> <li><p>Percent</p></li> <li><p>Posint (positive integers, > 0)</p></li> <li><p>Paths and channels</p> <ol class="enumerated"> <li><p>Readable file</p></li> <li><p>Writable file</p></li> <li><p>Read/writable file</p></li> <li><p>Readable directory</p></li> <li><p>Read/writeable directory</p></li> <li><p>readable path</p></li> <li><p>Read/writable path</p></li> <li><p>Readable path, as channel</p></li> <li><p>Writable path, as channel</p></li> <li><p>Read/writable path, as channel</p></li> </ol> </li> <li><p>Date and time related:</p> <ol class="enumerated"> <li><p>ISO-8601 date/time,</p></li> <li><p>year</p></li> <li><p>weekday,</p></li> <li><p>hour:minute</p></li> </ol> </li> </ol> </li> <li><p>In package <b class="package"><a href="cmdr_validate.html">cmdr::validate</a></b>, modified the integer validation type to have a proper internal representation: decimal. Input in octal, hex, etc. is now normalized to this.</p></li> <li><p>Extended package <b class="package"><a href="cmdr_vcommon.html">cmdr::validate::common</a></b> with more helper commands for the generation of validation failure messages</p> <ol class="enumerated"> <li><p><b class="cmd">fail-unknown-thing-msg</b></p></li> <li><p><b class="cmd">fail-unknown-simple</b></p></li> <li><p><b class="cmd">fail-unknown-simple-msg</b></p></li> <li><p><b class="cmd">fail-known-thing-msg</b></p></li> <li><p><b class="cmd">fail-known-simple</b></p></li> <li><p><b class="cmd">fail-known-simple-msg</b></p></li> </ol> </li> <li><p>Added various new supporting packages:</p> <dl class="definitions"> <dt><b class="package"><a href="cmdr_tty.html">cmdr::tty</a></b></dt> <dd><p>Test for terminal.</p></dd> <dt><b class="package"><a href="cmdr_color.html">cmdr::color</a></b></dt> <dd><p>Color management, ansi control sequences.</p></dd> <dt><b class="package"><a href="cmdr_ask.html">cmdr::ask</a></b></dt> <dd><p>User interaction commands.</p></dd> <dt><b class="package"><a href="cmdr_pager.html">cmdr::pager</a></b></dt> <dd><p>Text display with automatic invokation of a pager for tall output.</p></dd> <dt><b class="package"><a href="cmdr_history.html">cmdr::history</a></b></dt> <dd><p>Pluggable management of command history.</p></dd> <dt><b class="package"><a href="cmdr_table.html">cmdr::table</a></b></dt> <dd><p>Table formatting, a simplified interface to <a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/toc.html">Tcllib</a>'s <b class="package">struct::matrix</b> and <b class="package">report</b> packages.</p></dd> <dt><b class="package">cmdr::validate::valtype-support</b></dt> <dd><p>Even more validation types, now as wrappers around the validation commands provided by <a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/toc.html">Tcllib</a>:</p> <ol class="enumerated"> <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> <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> <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> <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> <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> <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/iban.html">valtype::iban</a></p></li> <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/imei.html">valtype::imei</a></p></li> <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/isbn.html">valtype::isbn</a></p></li> <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/luhn.html">valtype::luhn</a></p></li> <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/luhn5.html">valtype::luhn5</a></p></li> <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/usnpi.html">valtype::usnpi</a></p></li> <li><p><a href="http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/verhoeff.html">valtype::verhoeff</a></p></li> </ol></dd> </dl> </li> <li><p>Extended package <b class="package"><a href="cmdr_officer.html">cmdr::officer</a></b> with</p> <ol class="enumerated"> <li><p>Support for per-officer options. The most common use case will likely be the declaration of global options in the root officer.</p> <p>Related to this, a new common block <b class="const">*config*</b> is set to the active <b class="package">config</b> instance, which will be different from the defining instance, for per-officer options. This gives the per-officer options access to the arguments (and options) of the current command, instead of only their own sibling options.</p></li> <li><p>Support for an option <b class="option">-extend</b> for common blocks, allowing their extension in a subordinate instead of just replacing the entire content.</p></li> <li><p>Support to accept all unique command prefixes of an officer's subordinates for dispatch.</p></li> </ol> </li> <li><p>Extended package <b class="package"><a href="cmdr_parameter.html">cmdr::parameter</a></b> with</p> <ol class="enumerated"> <li><p>Support for the specification of negative aliases for boolean options, i.e. representing the inverted option.</p> <p>See the DSL commands <b class="cmd">neg-alias</b> and <b class="cmd">!alias</b> in <i class="term"><a href="cmdr_dsl_parameter.html">Cmdr - Parameter Specification Language</a></i>.</p></li> <li><p>Support for option labeling, for use in the generated help, to make it more descriptive. Options for which no label is specified will use their name as fallback.</p> <p>See DSL command <b class="cmd">label</b> in <i class="term"><a href="cmdr_dsl_parameter.html">Cmdr - Parameter Specification Language</a></i>.</p></li> </ol> </li> <li><p>Help system changes</p> <ol class="enumerated"> <li><p>Modified it to use the <b class="const">short</b> format for interior nodes of the command hierarchy by default.</p></li> <li><p>Modified it to exclude auto-added commands from the output generated by format <b class="const">by-category</b>.</p></li> <li><p>Modified the format <b class="const">full</b> to show the option arguments for those which have such. See also the extension of package <b class="package"><a href="cmdr_parameter.html">cmdr::parameter</a></b> with support for option labels, this is what is used here.</p></li> <li><p>Modified it to declare a standard global option <b class="option">--help</b> (with aliases <b class="option">-h</b> and <b class="option">-?</b>). Using the option invokes the standard help (command) on the current command, if any, or the global help if there is no command.</p></li> <li><p>Modified to use a minimum width of 10 characters for descriptions. If the user narrowed the terminal this far then having the text either cut off at the right edge, or wrapped around is not worse then the help trying to wrap the sentence with word boundaries, etc. Also, trying to use negative width threw Tcl errors.</p></li> </ol> </li> <li><p>Fixed the handling of common block <b class="const">*all*</b> in package <b class="package"><a href="cmdr_officer.html">cmdr::officer</a></b>. While it was ok trapping and ignoring a missing definition of this block, trapping everything which could go wrong was not.</p> <p><a href="http://core.tcl.tk/akupries/cmdr/info/9159f68bc35d9747">Details</a>.</p></li> <li><p>Fixed a long-standing bug of package <b class="package"><a href="cmdr_config.html">cmdr::config</a></b> in the forced calculation of parameter values in method <b class="method">Force</b>). Any error in the calculations left an internal flag set, causing future invokations to believe to be in a recursive call and thus do nothing.</p> <p>While this had no effect on regular operation, i.e. with the application exiting after each command, in interactive mode this misbehaviour disabled all checks and validations for the command in question, and also retained old parameter values.</p> <p><a href="http://core.tcl.tk/akupries/cmdr/info/f74095b252d4c9df">Details</a></p></li> <li><p>Modified the formatting of <b class="package"><a href="cmdr_config.html">cmdr::config</a></b> state when interactively entering it for a private. Parameter names now are shown as declared, and an additional flag character indicates if it is inherited from above, or not.</p></li> <li><p>General fixes to testsuite, code comments, bogus variable names, typos in error messages, etc.</p></li> </ol> </div> <div id="subsection2" class="subsection"><h3><a name="subsection2">Changes for version 1.1</a></h3> <ol class="enumerated"> <li><p>Fixed broken requirement references in the meta data of packages <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> <li><p>Fixed initialization issues in the help generator.</p></li> |
︙ | ︙ |
Changes to embedded/www/doc/files/cmdr_color.html.
︙ | ︙ | |||
88 89 90 91 92 93 94 | } UL.requirements { margin-bottom: 1em; border-bottom: 1px solid black; } --></style> </head> | | | 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | } UL.requirements { margin-bottom: 1em; border-bottom: 1px solid black; } --></style> </head> <! -- Generated from file 'cmdr_color.man~' by tcllib/doctools with format 'html' --> <! -- Copyright © 2013-2016 Andreas Kupries -- Copyright © 2013-2016 Documentation, Andreas Kupries --> <! -- CVS: $Id$ cmdr::color.n --> <body><div class="doctools"> <hr> [ |
︙ | ︙ |
Changes to embedded/www/doc/files/cmdr_dev_dsl.html.
︙ | ︙ | |||
148 149 150 151 152 153 154 155 156 157 158 159 | on first call) to provide the necessary in-memory structures.</p> <p>The DSL commands map to instance methods as shown below:</p> <dl class="definitions"> <dt><b class="cmd">alias</b></dt> <dd><p><b class="method">Alias</b></p></dd> <dt><b class="cmd">common</b></dt> <dd><p><b class="package"><a href="cmdr_actor.html">cmdr::actor</a></b> <b class="method">set</b></p></dd> <dt><b class="cmd">default</b></dt> <dd><p><b class="method">Default</b></p></dd> <dt><b class="cmd">description</b></dt> <dd><p><b class="package"><a href="cmdr_actor.html">cmdr::actor</a></b> <b class="method">description:</b></p></dd> <dt><b class="cmd">ehandler</b></dt> | > > | | | | 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 | on first call) to provide the necessary in-memory structures.</p> <p>The DSL commands map to instance methods as shown below:</p> <dl class="definitions"> <dt><b class="cmd">alias</b></dt> <dd><p><b class="method">Alias</b></p></dd> <dt><b class="cmd">common</b></dt> <dd><p><b class="package"><a href="cmdr_actor.html">cmdr::actor</a></b> <b class="method">set</b></p></dd> <dt><b class="cmd">custom-setup</b></dt> <dd><p><b class="method">custom-setup</b></p></dd> <dt><b class="cmd">default</b></dt> <dd><p><b class="method">Default</b></p></dd> <dt><b class="cmd">description</b></dt> <dd><p><b class="package"><a href="cmdr_actor.html">cmdr::actor</a></b> <b class="method">description:</b></p></dd> <dt><b class="cmd">ehandler</b></dt> <dd><p>See <b class="cmd">intercept</b>. <em>Deprecated</em>.</p></dd> <dt><b class="cmd">intercept</b></dt> <dd><p><b class="method">intercept</b></p></dd> <dt><b class="cmd">officer</b></dt> <dd><p><b class="method">Officer</b>, forward to <b class="method">DefineAction</b></p></dd> <dt><b class="cmd">private</b></dt> <dd><p><b class="method">Private</b>, forward to <b class="method">DefineAction</b></p></dd> <dt><b class="cmd">undocumented</b></dt> <dd><p><b class="package"><a href="cmdr_actor.html">cmdr::actor</a></b> <b class="method">undocumented</b></p></dd> </dl> |
︙ | ︙ |
Changes to embedded/www/doc/files/cmdr_dsl_officer.html.
︙ | ︙ | |||
126 127 128 129 130 131 132 | <div class="synopsis"> <ul class="syntax"> <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> <li><a href="#2"><b class="cmd">alias</b> <i class="arg">name</i></a></li> <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> <li><a href="#4"><b class="cmd">default</b></a></li> <li><a href="#5"><b class="cmd">description</b> <i class="arg">text</i></a></li> | > | | | | | | 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | <div class="synopsis"> <ul class="syntax"> <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> <li><a href="#2"><b class="cmd">alias</b> <i class="arg">name</i></a></li> <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> <li><a href="#4"><b class="cmd">default</b></a></li> <li><a href="#5"><b class="cmd">description</b> <i class="arg">text</i></a></li> <li><a href="#6"><b class="cmd">intercept</b> <i class="arg">cmdprefix</i></a></li> <li><a href="#7"><b class="cmd">ehandler</b> <i class="arg">cmdprefix</i></a></li> <li><a href="#8"><b class="cmd">custom-setup</b> <i class="arg">cmdprefix</i></a></li> <li><a href="#9"><b class="cmd">officer</b> <i class="arg">name</i> <i class="arg">script</i></a></li> <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> <li><a href="#11"><b class="cmd">undocumented</b></a></li> </ul> </div> </div> <div id="section1" class="section"><h2><a name="section1">Description</a></h2> <p>Welcome to the Cmdr project, written by Andreas Kupries.</p> <p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p> <p>This document is for users of the cmdr framework. It introduces the |
︙ | ︙ | |||
227 228 229 230 231 232 233 | command to use at runtime. This means that if during "Dispatch" phase the currently processed word does not match any of the commands known to this <i class="term">officer</i> this default is used. If no default is specified an error will be thrown instead.</p></dd> <dt><a name="5"><b class="cmd">description</b> <i class="arg">text</i></a></dt> <dd><p>This command declares the help text of the <i class="term">officer</i>.</p></dd> | > > | > > | | 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 | command to use at runtime. This means that if during "Dispatch" phase the currently processed word does not match any of the commands known to this <i class="term">officer</i> this default is used. If no default is specified an error will be thrown instead.</p></dd> <dt><a name="5"><b class="cmd">description</b> <i class="arg">text</i></a></dt> <dd><p>This command declares the help text of the <i class="term">officer</i>.</p></dd> <dt><a name="6"><b class="cmd">intercept</b> <i class="arg">cmdprefix</i></a></dt> <dd></dd> <dt><a name="7"><b class="cmd">ehandler</b> <i class="arg">cmdprefix</i></a></dt> <dd><p><em>Note:</em> While the form <b class="cmd">ehandler</b> is still usable, it is deprecated and will be removed in a future release. This is an advanced command which should normally only be specified at the top of the whole hierarchy (from which its value will automatically propagate to all subordinates).</p> <p>At runtime the framework will call the specified command prefix with a single argument, a script whose execution is equivalent to the phases <i class="term">Parsing</i>, <i class="term">Completion</i>, and <i class="term">Execution</i> of the framework, as described in <i class="term"><a href="cmdr_flow.html">Cmdr - Runtime Processing Flow</a></i>. The handler <em>must</em> call this script, and can perform any |
︙ | ︙ | |||
250 251 252 253 254 255 256 | and/or actions may have set during their execution. This is especially important if the interactive command line shells of the framework are enabled. Without such a handler and its bespoke cleanup code transient state <em>will</em> leak between multiple commands run from such a shell, something which is definitely not wanted.</p></li> </ol></dd> | | > > > | | < | | | | 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 | and/or actions may have set during their execution. This is especially important if the interactive command line shells of the framework are enabled. Without such a handler and its bespoke cleanup code transient state <em>will</em> leak between multiple commands run from such a shell, something which is definitely not wanted.</p></li> </ol></dd> <dt><a name="8"><b class="cmd">custom-setup</b> <i class="arg">cmdprefix</i></a></dt> <dd><p>This is an advanced command which should normally only be specified at the top of the whole hierarchy (from which its value will automatically propagate to all subordinates).</p> <p>When called multiple times, the specified commands accumulate. This makes it easy to specify several indepedent customizations.</p> <p>At runtime the framework will invoke all the specified commands with a single argument, the command of the actor to initialize. The command prefix is then allowed to modify that actor as it sees fit. The common use case will be the extension of the object with additional subordinates. An example of this is the package <b class="package"><a href="cmdr_history.html">cmdr::history</a></b> which provides a command <b class="cmd">cmdr::history::attach</b> to add the history management commands to the actor in question.</p></dd> <dt><a name="9"><b class="cmd">officer</b> <i class="arg">name</i> <i class="arg">script</i></a></dt> <dd><p>This command creates a named subordinate <i class="term">officer</i> with its specification <i class="arg">script</i> of officer commands as described here.</p></dd> <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> <dd><p>This command creates a named subordinate <i class="term">private</i> with its specification <i class="arg">script</i> of private commands (See <i class="term"><a href="cmdr_dsl_private.html">Cmdr - Private Specification Language</a></i>), and a command prefix to invoke when it is chosen.</p> <p>This command prefix is called with a single argument, the <b class="package"><a href="cmdr_config.html">cmdr::config</a></b> instance holding the <i class="term">parameter</i>s of the private.</p> <p>For an example see section <i class="term">Simple backend</i> of <i class="term"><a href="cmdr_dsl.html">Cmdr - Introduction to the Specification Language</a></i>.</p></dd> <dt><a name="11"><b class="cmd">undocumented</b></a></dt> <dd><p>This command excludes the <i class="term">officer</i> (and its subordinates) from the generated help. Note that subordinates reachable through aliases may be included, under the alias name, if they are not explicitly excluded themselves.</p></dd> </dl> <p>Please continue reading with <i class="term"><a href="cmdr_dsl_private.html">Cmdr - Private Specification Language</a></i>.</p> </div> |
︙ | ︙ |
Changes to embedded/www/doc/files/cmdr_dsl_parameter.html.
︙ | ︙ | |||
150 151 152 153 154 155 156 | <li><a href="#14"><b class="cmd">immediate</b></a></li> <li><a href="#15"><b class="cmd">validate</b> <i class="arg">cmdprefix</i></a></li> <li><a href="#16"><b class="cmd">presence</b></a></li> <li><a href="#17"><b class="cmd">when-complete</b> <i class="arg">cmdprefix</i></a></li> <li><a href="#18"><b class="cmd">when-set</b> <i class="arg">cmdprefix</i></a></li> <li><a href="#19"><b class="cmd">stop!</b></a></li> <li><a href="#20"><b class="cmd">touch</b> <i class="arg">name</i> <i class="arg">value</i></a></li> | | | 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | <li><a href="#14"><b class="cmd">immediate</b></a></li> <li><a href="#15"><b class="cmd">validate</b> <i class="arg">cmdprefix</i></a></li> <li><a href="#16"><b class="cmd">presence</b></a></li> <li><a href="#17"><b class="cmd">when-complete</b> <i class="arg">cmdprefix</i></a></li> <li><a href="#18"><b class="cmd">when-set</b> <i class="arg">cmdprefix</i></a></li> <li><a href="#19"><b class="cmd">stop!</b></a></li> <li><a href="#20"><b class="cmd">touch</b> <i class="arg">name</i> <i class="arg">value</i></a></li> <li><a href="#21"><b class="cmd">touch?</b> <i class="arg">name</i> <i class="arg">value</i></a></li> <li><a href="#22"><b class="cmd">disallow</b> <i class="arg">name</i></a></li> </ul> </div> </div> <div id="section1" class="section"><h2><a name="section1">Description</a></h2> <p>Welcome to the Cmdr project, written by Andreas Kupries.</p> <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 524 525 526 527 528 529 | <p>clause then ensures an error when interactive entry gets disabled, either global, or for the specific command.</p></dd> <dt><a name="20"><b class="cmd">touch</b> <i class="arg">name</i> <i class="arg">value</i></a></dt> <dd><p>The returned callback sets the <i class="arg">name</i>d sibling parameter to the specified <i class="arg">value</i>. A simple method of communication between parameters of a command.</p> <p>Useful for use with <b class="cmd">when-set</b> and/or <b class="cmd">when-complete</b></p></dd> | | | 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 | <p>clause then ensures an error when interactive entry gets disabled, either global, or for the specific command.</p></dd> <dt><a name="20"><b class="cmd">touch</b> <i class="arg">name</i> <i class="arg">value</i></a></dt> <dd><p>The returned callback sets the <i class="arg">name</i>d sibling parameter to the specified <i class="arg">value</i>. A simple method of communication between parameters of a command.</p> <p>Useful for use with <b class="cmd">when-set</b> and/or <b class="cmd">when-complete</b></p></dd> <dt><a name="21"><b class="cmd">touch?</b> <i class="arg">name</i> <i class="arg">value</i></a></dt> <dd><p>The returned callback sets the <i class="arg">name</i>d sibling parameter to the specified <i class="arg">value</i>, if and only if that parameter exists. A simple method of communication between parameters of a command, where the sibling may not exists, depending on usage context.</p> <p>Useful for use with <b class="cmd">when-set</b> and/or <b class="cmd">when-complete</b></p></dd> <dt><a name="22"><b class="cmd">disallow</b> <i class="arg">name</i></a></dt> <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 156 157 158 159 160 161 | <p>After attachment the actor will accept the following 3 commands:</p> <pre class="example"> history list ?n? - Show last n history entries. Defaults to all. history clear - Drop all history entries history limit ?n? - Limit history to 'n' entries (n >= 0). Unlimited for n < 0. </pre> <p>Under most circumstances the attachment is handled through the | | | | 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 | <p>After attachment the actor will accept the following 3 commands:</p> <pre class="example"> history list ?n? - Show last n history entries. Defaults to all. history clear - Drop all history entries history limit ?n? - Limit history to 'n' entries (n >= 0). Unlimited for n < 0. </pre> <p>Under most circumstances the attachment is handled through the method <b class="cmd">custom-setup</b> of officers. See <b class="package"><a href="cmdr_officer.html">cmdr::officer</a></b>, and the <span class="sectref"><a href="#section3">Example</a></span> for more information.</p></dd> <dt><a name="2"><b class="cmd">::cmdr::history</b> <b class="method">save-to</b> <i class="arg">path</i></a></dt> <dd><p>When invoked this command sets the package-wide history save file used by the commands to the <i class="arg">path</i>.</p> <p>The result of the command is the empty string.</p></dd> <dt><a name="3"><b class="cmd">::cmdr::history</b> <b class="method">initial-limit</b> <i class="arg">limit</i></a></dt> <dd><p>When invoked this command sets the package-wide limit on history size to <i class="arg">limit</i>. A value less than zero means "no limit".</p> <p>The result of the command is the empty string.</p></dd> </dl> </div> <div id="section3" class="section"><h2><a name="section3">Example</a></h2> <p>Below an example on how to activate history for an officer. The example was taken from the <b class="cmd">fx</b> application extending the <b class="cmd">fossil</b> DVCS.</p> <pre class="example"> cmdr history initial-limit 20 cmdr history save-to ~/.fx_history cmdr create fx::fx [file tail $::argv0] { custom-setup ::cmdr::history::attach [...] } </pre> </div> <div id="section4" class="section"><h2><a name="section4">Bugs, Ideas, Feedback</a></h2> <p>Both the package(s) and this documentation will undoubtedly contain bugs and other problems. |
︙ | ︙ |
Changes to embedded/www/doc/files/cmdr_officer.html.
︙ | ︙ | |||
133 134 135 136 137 138 139 | <li><a href="#3"><b class="cmd"><officer></b> <b class="method">children</b></a></li> <li><a href="#4"><b class="cmd"><officer></b> <b class="method">complete</b> <i class="arg">line</i></a></li> <li><a href="#5"><b class="cmd"><officer></b> <b class="method">complete-words</b> <i class="arg">parse</i></a></li> <li><a href="#6"><b class="cmd"><officer></b> <b class="method">continued</b> <i class="arg">line</i></a></li> <li><a href="#7"><b class="cmd"><officer></b> <b class="method">default</b></a></li> <li><a href="#8"><b class="cmd"><officer></b> <b class="method">dispatch</b> <i class="arg">cmd</i></a></li> <li><a href="#9"><b class="cmd"><officer></b> <b class="method">do</b> <span class="opt">?<i class="arg">word</i>...?</span></a></li> | | | | | | | | | | | | | | | > > | 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | <li><a href="#3"><b class="cmd"><officer></b> <b class="method">children</b></a></li> <li><a href="#4"><b class="cmd"><officer></b> <b class="method">complete</b> <i class="arg">line</i></a></li> <li><a href="#5"><b class="cmd"><officer></b> <b class="method">complete-words</b> <i class="arg">parse</i></a></li> <li><a href="#6"><b class="cmd"><officer></b> <b class="method">continued</b> <i class="arg">line</i></a></li> <li><a href="#7"><b class="cmd"><officer></b> <b class="method">default</b></a></li> <li><a href="#8"><b class="cmd"><officer></b> <b class="method">dispatch</b> <i class="arg">cmd</i></a></li> <li><a href="#9"><b class="cmd"><officer></b> <b class="method">do</b> <span class="opt">?<i class="arg">word</i>...?</span></a></li> <li><a href="#10"><b class="cmd"><officer></b> <b class="method">intercept</b> <i class="arg">cmd</i></a></li> <li><a href="#11"><b class="cmd"><officer></b> <b class="method">ehandler</b> <i class="arg">cmd</i></a></li> <li><a href="#12"><b class="cmd"><officer></b> <b class="method">custom-setup</b> <i class="arg">cmd</i></a></li> <li><a href="#13"><b class="cmd"><officer></b> <b class="method">exit</b></a></li> <li><a href="#14"><b class="cmd"><officer></b> <b class="method">extend</b> <i class="arg">path</i> <i class="arg">arguments</i> <i class="arg">action</i></a></li> <li><a href="#15"><b class="cmd"><officer></b> <b class="method">find</b> <i class="arg">path</i></a></li> <li><a href="#16"><b class="cmd"><officer></b> <b class="method">has</b> <i class="arg">name</i></a></li> <li><a href="#17"><b class="cmd"><officer></b> <b class="method">hasdefault</b></a></li> <li><a href="#18"><b class="cmd"><officer></b> <b class="method">help</b> <span class="opt">?<i class="arg">prefix</i>?</span></a></li> <li><a href="#19"><b class="cmd"><officer></b> <b class="method">known</b></a></li> <li><a href="#20"><b class="cmd"><officer></b> <b class="method">learn</b> <i class="arg">script</i></a></li> <li><a href="#21"><b class="cmd"><officer></b> <b class="method">lookup</b> <i class="arg">name</i></a></li> <li><a href="#22"><b class="cmd"><officer></b> <b class="method">prompt1</b></a></li> <li><a href="#23"><b class="cmd"><officer></b> <b class="method">prompt2</b></a></li> <li><a href="#24"><b class="cmd"><officer></b> <b class="method">report</b> <i class="arg">what</i> <i class="arg">data</i></a></li> <li><a href="#25"><b class="cmd"><officer></b> <b class="method">shell-exit</b> <i class="arg">config</i></a></li> </ul> </div> </div> <div id="section1" class="section"><h2><a name="section1">Description</a></h2> <p>Welcome to the Cmdr project, written by Andreas Kupries.</p> <p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p> <p>This package implements <em>officers</em>, the inner nodes of command |
︙ | ︙ | |||
245 246 247 248 249 250 251 | to the sub-ordinates of the officer. When done without error it recursively invokes the chosen sub-ordinate to continue processing.</p> <p>This represents the "Dispatch" phase of command line processing.</p> <dl class="arguments"> <dt>string <i class="arg">word</i></dt> <dd><p>The words of the command line to parse and match to parameters.</p></dd> </dl></dd> | | > > > > | > > > > > > > > > > > > > > > > > > | | | 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 | to the sub-ordinates of the officer. When done without error it recursively invokes the chosen sub-ordinate to continue processing.</p> <p>This represents the "Dispatch" phase of command line processing.</p> <dl class="arguments"> <dt>string <i class="arg">word</i></dt> <dd><p>The words of the command line to parse and match to parameters.</p></dd> </dl></dd> <dt><a name="10"><b class="cmd"><officer></b> <b class="method">intercept</b> <i class="arg">cmd</i></a></dt> <dd></dd> <dt><a name="11"><b class="cmd"><officer></b> <b class="method">ehandler</b> <i class="arg">cmd</i></a></dt> <dd><p><em>Note:</em> While the form <b class="method">ehandler</b> is still usable, it is deprecated and will be removed in a future release. This method specifies a command prefix to wrap around the parsing of the command line for the officer, and the execution of its action.</p> <dl class="arguments"> <dt>cmd-prefix <i class="arg">cmd</i></dt> <dd><p>A command prefix taking a single argument, a script. The command prefix has to execute this script in its caller's context. The script will parse words for the officer,m and perform its action. The command prefix then has the responsbility to perform any custom cleanup action required by the application using the framework to prevent leakage of data between multiple commands executed one after the other (i.e. in an interactive shell run by the framework).</p></dd> </dl></dd> <dt><a name="12"><b class="cmd"><officer></b> <b class="method">custom-setup</b> <i class="arg">cmd</i></a></dt> <dd><p>This method specifies a command prefix which will be run all the regular setup of the officer from its specification is done, to perform customizations.</p> <p>An example of this can be seen in the package <b class="package"><a href="cmdr_history.html">cmdr::history</a></b>. It provides a command <b class="cmd">cmdr::history::attach</b> to add the history management commands to the actor in question, suitable as argument to this method.</p> <p>When called multiple times, the specified commands accumulate. This makes it easy to specify several indepedent customizations.</p> <dl class="arguments"> <dt>cmd-prefix <i class="arg">cmd</i></dt> <dd><p>A command prefix taking a single argument, the instance command of an <b class="package">cmd::actor</b>. The command prefix has full access to this actor and can modify it as it sees fit. The common use case will be the extension of the actor with additional subordinates.</p></dd> </dl></dd> <dt><a name="13"><b class="cmd"><officer></b> <b class="method">exit</b></a></dt> <dd><p>This hook-method for the main shell returns a boolean value indicating whether the main shell was stopped and has to exit (<b class="const">true</b>), or not (<b class="const">false</b>).</p></dd> <dt><a name="14"><b class="cmd"><officer></b> <b class="method">extend</b> <i class="arg">path</i> <i class="arg">arguments</i> <i class="arg">action</i></a></dt> <dd><p>A convenience method to create a "private" command underneath this officer, with the command name <i class="arg">path</i> (a list of names). Any intermediate officers are created as needed. An error is thrown if any of the intermediates already exist as a (non-extensible) private, or if the last command already exists.</p> <p>The arguments after the <i class="arg">path</i> match the constructor of privates in number and semantics.</p> |
︙ | ︙ | |||
285 286 287 288 289 290 291 | <dt>cmd-prefix <i class="arg">action</i></dt> <dd><p>The command prefix to invoke when this private is selected for execution. It takes a single argument, the instance command of the hidden <b class="package"><a href="cmdr_config.html">cmdr::config</a></b> container holding the private's parameters. The result of the action, if there is any, is ignored by the framework.</p></dd> </dl></dd> | | | | | | | | | | | | | 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 | <dt>cmd-prefix <i class="arg">action</i></dt> <dd><p>The command prefix to invoke when this private is selected for execution. It takes a single argument, the instance command of the hidden <b class="package"><a href="cmdr_config.html">cmdr::config</a></b> container holding the private's parameters. The result of the action, if there is any, is ignored by the framework.</p></dd> </dl></dd> <dt><a name="15"><b class="cmd"><officer></b> <b class="method">find</b> <i class="arg">path</i></a></dt> <dd><p>This method returns the instance command of the sub-ordinate with the given <i class="arg">path</i> (a list) of names. An error is thrown if such a sub-ordinate does not exist. This is an extension of <b class="method">lookup</b> to paths of names.</p> <p>An empty <i class="arg">path</i> is allowed and refers to the officer itself.</p> <dl class="arguments"> <dt>string <i class="arg">path</i></dt> <dd><p>The path of names to the sub-ordinate to look for.</p></dd> </dl></dd> <dt><a name="16"><b class="cmd"><officer></b> <b class="method">has</b> <i class="arg">name</i></a></dt> <dd><p>This method returns a boolean value indicating if this officer has a sub-ordinate of the given <i class="arg">name</i> (<b class="const">true</b>), or not (<b class="const">false</b>). See also method <b class="method">lookup</b>.</p> <dl class="arguments"> <dt>string <i class="arg">name</i></dt> <dd><p>The name of the sub-ordinate to look for.</p></dd> </dl></dd> <dt><a name="17"><b class="cmd"><officer></b> <b class="method">hasdefault</b></a></dt> <dd><p>This method returns a boolean value indicating if this officer has a default sub-ordinate (<b class="const">true</b>), or not (<b class="const">false</b>). See also method <b class="method">default</b>.</p></dd> <dt><a name="18"><b class="cmd"><officer></b> <b class="method">help</b> <span class="opt">?<i class="arg">prefix</i>?</span></a></dt> <dd><p>This method returns the help information for the officer and its subordinates. The <i class="arg">prefix</i>, if specified provides the name of the officer within the help data. It defaults to the empty string. The result of the command is a structure of the form described in section <span class="sectref"><a href="#section4">Help Information</a></span>.</p> <dl class="arguments"> <dt>string <i class="arg">prefix</i></dt> <dd><p>The name to use for the officer within the generated help.</p></dd> </dl></dd> <dt><a name="19"><b class="cmd"><officer></b> <b class="method">known</b></a></dt> <dd><p>This method returns a list containing the names of the subordinate actors managed by this officer. See also method <b class="method">children</b> which returns a list of instance commands. See also method <b class="method">lookup</b> to map names to instance commands.</p></dd> <dt><a name="20"><b class="cmd"><officer></b> <b class="method">learn</b> <i class="arg">script</i></a></dt> <dd><p>This method takes a regular specification script and uses it to extend the set of subordinates known to this officer. This is the same type of script as used during construction, except here we dynamically extend the officer.</p> <dl class="arguments"> <dt>script <i class="arg">actions</i></dt> <dd><p>The specification of the officer's additional subordinates. Please read <i class="term"><a href="cmdr_dsl_officer.html">Cmdr - Officer Specification Language</a></i> for the details.</p></dd> </dl></dd> <dt><a name="21"><b class="cmd"><officer></b> <b class="method">lookup</b> <i class="arg">name</i></a></dt> <dd><p>This method returns the instance command of the sub-ordinate with the given <i class="arg">name</i>. An error is thrown if such a sub-ordinate does not exist. See also method <b class="method">has</b>.</p> <dl class="arguments"> <dt>string <i class="arg">name</i></dt> <dd><p>The name of the sub-ordinate to look for.</p></dd> </dl></dd> <dt><a name="22"><b class="cmd"><officer></b> <b class="method">prompt1</b></a></dt> <dd><p>This hook-method for the main shell returns the primary prompt string to use.</p></dd> <dt><a name="23"><b class="cmd"><officer></b> <b class="method">prompt2</b></a></dt> <dd><p>This hook-method for the main shell returns the secondary prompt string for use within a continuation. As the main shell does not support continuation lines it should not be invoked ever, and thus always throws an error should it be invoked.</p></dd> <dt><a name="24"><b class="cmd"><officer></b> <b class="method">report</b> <i class="arg">what</i> <i class="arg">data</i></a></dt> <dd><p>This hook-method for the main shell is responsible for the reporting of the command results.</p> <p>Its result is the empty string.</p> <dl class="arguments"> <dt>enum <i class="arg">what</i></dt> <dd><p>The result code of the command, one of <b class="const">ok</b>, or <b class="const">fail</b>.</p></dd> <dt>any <i class="arg">data</i></dt> <dd><p>The result of the command, or an error message in case of failure.</p></dd> </dl></dd> <dt><a name="25"><b class="cmd"><officer></b> <b class="method">shell-exit</b> <i class="arg">config</i></a></dt> <dd><p>This is the backend for a private ending the main shell, be it automatically created by the pacge, or by a user.</p> <p>The argument is the <b class="package"><a href="cmdr_config.html">cmdr::config</a></b> instance holding the parameters. The method does not expect any and ignore it.</p></dd> </dl> </div> |
︙ | ︙ |
Changes to embedded/www/doc/files/cmdr_private.html.
︙ | ︙ | |||
128 129 130 131 132 133 134 | <li>package require <b class="pkgname">cmdr::private</b></li> </ul> <ul class="syntax"> <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> <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> <li><a href="#3"><b class="cmd"><private></b> <b class="method">complete-words</b> <i class="arg">parse</i></a></li> <li><a href="#4"><b class="cmd"><private></b> <b class="method">do</b> <span class="opt">?<i class="arg">word</i>...?</span></a></li> | | | > > | | | 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | <li>package require <b class="pkgname">cmdr::private</b></li> </ul> <ul class="syntax"> <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> <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> <li><a href="#3"><b class="cmd"><private></b> <b class="method">complete-words</b> <i class="arg">parse</i></a></li> <li><a href="#4"><b class="cmd"><private></b> <b class="method">do</b> <span class="opt">?<i class="arg">word</i>...?</span></a></li> <li><a href="#5"><b class="cmd"><private></b> <b class="method">intercept</b> <i class="arg">cmd</i></a></li> <li><a href="#6"><b class="cmd"><private></b> <b class="method">ehandler</b> <i class="arg">cmd</i></a></li> <li><a href="#7"><b class="cmd"><private></b> <b class="method">custom-setup</b> <i class="arg">cmd</i></a></li> <li><a href="#8"><b class="cmd"><private></b> <b class="method">find</b> <i class="arg">path</i></a></li> <li><a href="#9"><b class="cmd"><private></b> <b class="method">help</b> <span class="opt">?<i class="arg">prefix</i>?</span></a></li> <li><a href="#10"><b class="cmd"><private></b> <b class="method">unknown</b> <i class="arg">m</i> <span class="opt">?<i class="arg">word</i>...?</span></a></li> </ul> </div> </div> <div id="section1" class="section"><h2><a name="section1">Description</a></h2> <p>Welcome to the Cmdr project, written by Andreas Kupries.</p> <p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p> <p>This package implements <em>privates</em>, the leaves of command |
︙ | ︙ | |||
206 207 208 209 210 211 212 | to the parameters of the private, be they arguments, or options. When done without error it invokes the action of the private with the filled container of parameters.</p> <dl class="arguments"> <dt>string <i class="arg">word</i></dt> <dd><p>The words of the command line to parse and match to parameters.</p></dd> </dl></dd> | | > > > > | > > > > > > > | | | | 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 | to the parameters of the private, be they arguments, or options. When done without error it invokes the action of the private with the filled container of parameters.</p> <dl class="arguments"> <dt>string <i class="arg">word</i></dt> <dd><p>The words of the command line to parse and match to parameters.</p></dd> </dl></dd> <dt><a name="5"><b class="cmd"><private></b> <b class="method">intercept</b> <i class="arg">cmd</i></a></dt> <dd></dd> <dt><a name="6"><b class="cmd"><private></b> <b class="method">ehandler</b> <i class="arg">cmd</i></a></dt> <dd><p><em>Note:</em> While the form <b class="method">ehandler</b> is still usable, it is deprecated and will be removed in a future release. This method specifies a command prefix to wrap around the parsing of the command line for the private, and the execution of its action.</p> <dl class="arguments"> <dt>cmd-prefix <i class="arg">cmd</i></dt> <dd><p>A command prefix taking a single argument, a script. The command prefix has to execute this script in its caller's context. The script will parse words for the private,m and perform its action. The command prefix then has the responsbility to perform any custom cleanup action required by the application using the framework to prevent leakage of data between multiple commands executed one after the other (i.e. in an interactive shell run by the framework).</p></dd> </dl></dd> <dt><a name="7"><b class="cmd"><private></b> <b class="method">custom-setup</b> <i class="arg">cmd</i></a></dt> <dd><p>This method specifies a command prefix which will be run all the regular setup of an officer from its specification is done, to perform customizations.</p> <p>The <b class="cmd"><private></b> here ignores such calls.</p> <p>The method exists only to avoid having to special-case code the places propagating these commands down the hierarchy.</p></dd> <dt><a name="8"><b class="cmd"><private></b> <b class="method">find</b> <i class="arg">path</i></a></dt> <dd><p>This method returns the instance command of the sub-ordinate with the given <i class="arg">path</i> of names. An error is thrown if such a sub-ordinate does not exist, i.e. whenever <i class="arg">path</i> is not empty, as a private has no sub-ordinates, ever.</p> <p>Note, as implied above, an empty <i class="arg">path</i> is allowed and refers to the private itself.</p> <p>See also method <b class="method">find</b> of <b class="package">cdmr::officer</b> for the high-end of the recursion which may end in this method.</p> <dl class="arguments"> <dt>string <i class="arg">path</i></dt> <dd><p>The path of names to the sub-ordinate to look for.</p></dd> </dl></dd> <dt><a name="9"><b class="cmd"><private></b> <b class="method">help</b> <span class="opt">?<i class="arg">prefix</i>?</span></a></dt> <dd><p>This method returns the help information for the private and its parameters. The <i class="arg">prefix</i>, if specified provides the name of the private within the help data. It defaults to the empty string. The result of the command is a structure of the form described in section <span class="sectref"><a href="#section4">Help Information</a></span>.</p> <dl class="arguments"> <dt>string <i class="arg">prefix</i></dt> <dd><p>The name to use for the private within the generated help.</p></dd> </dl></dd> <dt><a name="10"><b class="cmd"><private></b> <b class="method">unknown</b> <i class="arg">m</i> <span class="opt">?<i class="arg">word</i>...?</span></a></dt> <dd><p>This method overrides the standard behaviour for unknown methods. Instead of throwing an error they are routed to the hidden container of the private's parameters, of class <b class="package"><a href="cmdr_config.html">cmdr::config</a></b>.</p> <dl class="arguments"> <dt>string <i class="arg">m</i></dt> <dd><p>The name of the unknown method.</p></dd> <dt>string <i class="arg">word</i></dt> |
︙ | ︙ |
Added embedded/www/doc/files/cmdr_table.html.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 | <html><head> <title>cmdr::table - Cmdr, a framework for command line parsing and dispatch</title> <style type="text/css"><!-- HTML { background: #FFFFFF; color: black; } BODY { background: #FFFFFF; color: black; } DIV.doctools { margin-left: 10%; margin-right: 10%; } DIV.doctools H1,DIV.doctools H2 { margin-left: -5%; } H1, H2, H3, H4 { margin-top: 1em; font-family: sans-serif; font-size: large; color: #005A9C; background: transparent; text-align: left; } H1.title { text-align: center; } UL,OL { margin-right: 0em; margin-top: 3pt; margin-bottom: 3pt; } UL LI { list-style: disc; } OL LI { list-style: decimal; } DT { padding-top: 1ex; } UL.toc,UL.toc UL, UL.toc UL UL { font: normal 12pt/14pt sans-serif; list-style: none; } LI.section, LI.subsection { list-style: none; margin-left: 0em; text-indent: 0em; padding: 0em; } PRE { display: block; font-family: monospace; white-space: pre; margin: 0%; padding-top: 0.5ex; padding-bottom: 0.5ex; padding-left: 1ex; padding-right: 1ex; width: 100%; } PRE.example { color: black; background: #f5dcb3; border: 1px solid black; } UL.requirements LI, UL.syntax LI { list-style: none; margin-left: 0em; text-indent: 0em; padding: 0em; } DIV.synopsis { color: black; background: #80ffff; border: 1px solid black; font-family: serif; margin-top: 1em; margin-bottom: 1em; } UL.syntax { margin-top: 1em; border-top: 1px solid black; } UL.requirements { margin-bottom: 1em; border-bottom: 1px solid black; } --></style> </head> <! -- Generated from file 'cmdr_table.man' by tcllib/doctools with format 'html' --> <! -- Copyright © 2013-2016 Andreas Kupries -- Copyright © 2013-2016 Documentation, Andreas Kupries --> <! -- CVS: $Id$ cmdr::table.n --> <body><div class="doctools"> <hr> [ <a href="../../../../../../home">Home</a> | <a href="../../toc.html">Main Table Of Contents</a> | <a href="../toc.html">Table Of Contents</a> | <a href="../../index.html">Keyword Index</a> ] <hr> <h1 class="title">cmdr::table(n) 0.1 doc "Cmdr, a framework for command line parsing and dispatch"</h1> <div id="name" class="section"><h2><a name="name">Name</a></h2> <p>cmdr::table - Cmdr - Simple Table creation</p> </div> <div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2> <ul class="toc"> <li class="section"><a href="#toc">Table Of Contents</a></li> <li class="section"><a href="#synopsis">Synopsis</a></li> <li class="section"><a href="#section1">Description</a></li> <li class="section"><a href="#section2">API</a></li> <li class="section"><a href="#section3">Table API</a></li> <li class="section"><a href="#section4">Bugs, Ideas, Feedback</a></li> <li class="section"><a href="#keywords">Keywords</a></li> <li class="section"><a href="#copyright">Copyright</a></li> </ul> </div> <div id="synopsis" class="section"><h2><a name="synopsis">Synopsis</a></h2> <div class="synopsis"> <ul class="requirements"> <li>package require <b class="pkgname">cmdr::util</b></li> </ul> <ul class="syntax"> <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> <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> <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> <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> <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> <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> <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> <li><a href="#8"><b class="variable">t</b> <b class="method">add</b> <i class="arg">word</i>...</a></li> <li><a href="#9"><b class="variable">t</b> <b class="method">+</b> <i class="arg">word</i>...</a></li> <li><a href="#10"><b class="variable">t</b> <b class="method">+=</b> <i class="arg">word</i>...</a></li> <li><a href="#11"><b class="variable">t</b> <b class="method"><<</b> <i class="arg">word</i>...</a></li> <li><a href="#12"><b class="variable">t</b> <b class="method"><=</b> <i class="arg">word</i>...</a></li> <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> <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> </ul> </div> </div> <div id="section1" class="section"><h2><a name="section1">Description</a></h2> <p>Welcome to the Cmdr project, written by Andreas Kupries.</p> <p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p> <p>This package provides convenience commands for the easy creation of simple tables.</p> </div> <div id="section2" class="section"><h2><a name="section2">API</a></h2> <dl class="definitions"> <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> <dd><p>This command creates a new table with the words found in the list of <i class="arg">headers</i> as the top row. The <i class="arg">script</i> is run in the calling context to configure and populate the table. The table's object command is stored in the named <i class="arg">var</i> for access by the <i class="arg">script</i>. The result of the command is the table's object command.</p> <dl class="arguments"> <dt>varname <i class="arg">var</i></dt> <dd><p>The name of the variable in the calling scope the new table's object command will be stored into.</p></dd> <dt>list <i class="arg">headers</i></dt> <dd><p>The list of words to user as column headers.</p></dd> <dt>string <i class="arg">script</i></dt> <dd><p>The tcl script to be run to configure and populate the table.</p></dd> </dl></dd> <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> <dd><p>This command creates a new table intended for the display of a Tcl dictionary. It will have two columns titled <b class="const">Key</b> and <b class="const">Value</b>. The <i class="arg">script</i> is run in the calling context to configure and populate the table. The table's object command is stored in the named <i class="arg">var</i> for access by the <i class="arg">script</i>. The result of the command is the table's object command.</p> <dl class="arguments"> <dt>varname <i class="arg">var</i></dt> <dd><p>The name of the variable in the calling scope the new table's object command will be stored into.</p></dd> <dt>string <i class="arg">script</i></dt> <dd><p>The tcl script to be run to configure and populate the table.</p></dd> </dl></dd> <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> <dd><p>This command configures the global <i class="term">border</i> setting, which indicates the (non)use of borders by the tables of this package. Note that changes to this setting influence only the tables created after the change. Existing tables are not modified.</p> <p>The result of the command is the new state of the setting.</p> <p>If the command is called without an argument it simply returns the current state of the setting, without making changes.</p> <p>The default value for the setting is <b class="const">yes</b>. Individual tables can override the global settings via their <b class="method">borders</b> method, see <span class="sectref"><a href="#section3">Table API</a></span>.</p> <dl class="arguments"> <dt>boolean <i class="arg">enable</i></dt> <dd><p>The new value of the setting. Optional.</p></dd> </dl></dd> <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> <dd><p>This command configures the global <i class="term">show</i> setting, which is the command prefix to use to print a table, if the table is not given a specific command to use. Note that changes to this setting influence only the tables created after the change. Existing tables are not modified.</p> <p>The result of the command is the new state of the setting</p> <p>If the command is called without any arguments it simply returns the current state of the setting, without making changes.</p> <p>The default value for the setting is <b class="const">puts</b>.</p> <dl class="arguments"> <dt>word <i class="arg">cmd</i></dt> <dd><p>The command prefix to use for printing a table, as varargs. The prefix will be invoked with a single argument, the string representation of the table.</p></dd> </dl></dd> </dl> </div> <div id="section3" class="section"><h2><a name="section3">Table API</a></h2> <p>This section lists the methods available for configuration and population of the tables created by this package.</p> <dl class="definitions"> <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> <dd><p>This is the table-level <i class="term">borders</i> setting. On creation a table inherits the global setting (See <b class="cmd">::cmdr::table borders</b>). If that is not to suit then this method can be used to override it.</p> <p>The result of the method is the new state of the setting. When called without argument no change is made and the result is the current state of the setting.</p></dd> <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> <dd><p>This method controls the visibility of the header row. By default general tables have the header row visisble, while for dict tables the header is suppressed. This method allows the user to override these defaults.</p> <p>The result of the method is the new state of the setting. When called without argument no change is made and the result is the current state of the setting.</p></dd> <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> <dd><p>This method allows the user to force the use of a completely custom style. Please see the documentation for the Tcllib package <b class="package">report</b> on how to define table styles.</p> <p>The package defines four styles of its own, all using the common prefix <b class="const">cmdr/table/</b> in their names. When no custom style is set the table chooses between these based on its <i class="term">borders</i> and <i class="term">headers</i> settings.</p> <p>The result of the method is the new state of the setting. When called without argument then no change is made and the result is the current state of the setting.</p> <p>To revert from a custom style to the automatic choice invoke this method with the empty string as the name of the style.</p></dd> <dt><a name="8"><b class="variable">t</b> <b class="method">add</b> <i class="arg">word</i>...</a></dt> <dd></dd> <dt><a name="9"><b class="variable">t</b> <b class="method">+</b> <i class="arg">word</i>...</a></dt> <dd></dd> <dt><a name="10"><b class="variable">t</b> <b class="method">+=</b> <i class="arg">word</i>...</a></dt> <dd></dd> <dt><a name="11"><b class="variable">t</b> <b class="method"><<</b> <i class="arg">word</i>...</a></dt> <dd></dd> <dt><a name="12"><b class="variable">t</b> <b class="method"><=</b> <i class="arg">word</i>...</a></dt> <dd><p>This method adds a new row to the table, containing the given words. If less words than headers are specified the row is padded with empty columns. If too many words are specified the superfluous words are ignored.</p> <p>The result of the method is the empty string.</p></dd> <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> <dd><p>This method formats the table into a string and then invokes the command prefix <i class="arg">cmd</i> to print that string. The command prefix is run at the global namespace and level. If the <i class="arg">cmd</i> is not specified the global <i class="term">show</i> setting is used instead.</p> <p>The result of the method is the empty string.</p></dd> <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> <dd><p>This is a variant of method <b class="method">show*</b> above which not only prints the table as above, but also destroys it.</p></dd> </dl> </div> <div id="section4" class="section"><h2><a name="section4">Bugs, Ideas, Feedback</a></h2> <p>Both the package(s) and this documentation will undoubtedly contain bugs and other problems. Please report such at <a href="https:/core.tcl.tk/akupries/cmdr">Cmdr Tickets</a>.</p> <p>Please also report any ideas you may have for enhancements of either package(s) and/or documentation.</p> </div> <div id="keywords" class="section"><h2><a name="keywords">Keywords</a></h2> <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> </div> <div id="copyright" class="section"><h2><a name="copyright">Copyright</a></h2> <p>Copyright © 2013-2016 Andreas Kupries<br> Copyright © 2013-2016 Documentation, Andreas Kupries</p> </div> </div></body></html> |
Changes to embedded/www/doc/toc.html.
︙ | ︙ | |||
114 115 116 117 118 119 120 121 122 123 | <td class="#tocright">Cmdr - (Partially internal) Command parameters</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="files/cmdr_private.html">cmdr::private</a></td> <td class="#tocright">Cmdr - (Internal) Single command handling, options, and arguments</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="files/cmdr_tty.html">cmdr::tty</a></td> <td class="#tocright">Cmdr - Check if stdin is a tty, i.e. terminal</td> </tr> | > > > > | | | | | | | | | | | | | | | | | | | | | | | | | 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 | <td class="#tocright">Cmdr - (Partially internal) Command parameters</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="files/cmdr_private.html">cmdr::private</a></td> <td class="#tocright">Cmdr - (Internal) Single command handling, options, and arguments</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="files/cmdr_table.html">cmdr::table</a></td> <td class="#tocright">Cmdr - Simple Table creation</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="files/cmdr_tty.html">cmdr::tty</a></td> <td class="#tocright">Cmdr - Check if stdin is a tty, i.e. terminal</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="files/cmdr_util.html">cmdr::util</a></td> <td class="#tocright">Cmdr - (Internal) General Utilities</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="files/cmdr_validate.html">cmdr::validate</a></td> <td class="#tocright">Cmdr - Standard validation types for parameters</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="files/cmdr_vcommon.html">cmdr::validate::common</a></td> <td class="#tocright">Cmdr - Utilities for Validation Types</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="files/cmdr_vt_date.html">cmdr::validate::date</a></td> <td class="#tocright">Cmdr - Validation type for dates</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="files/cmdr_vt_posint.html">cmdr::validate::posint</a></td> <td class="#tocright">Cmdr - Validation type for positive integers</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="files/cmdr_vt_time.html">cmdr::validate::time</a></td> <td class="#tocright">Cmdr - Validation type for times (to the second)</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="files/cmdr_vt_time_minute.html">cmdr::validate::time::minute</a></td> <td class="#tocright">Cmdr - Validation type for times to the minute</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="files/cmdr_vt_amex.html">cmdr::validate::valtype::cc::amex</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::cc::amex</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="files/cmdr_vt_discover.html">cmdr::validate::valtype::cc::discover</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::cc::discover</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="files/cmdr_vt_mastercard.html">cmdr::validate::valtype::cc::mastercard</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::cc::mastercard</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="files/cmdr_vt_visa.html">cmdr::validate::valtype::cc::visa</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::cc::visa</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="files/cmdr_vt_ean13.html">cmdr::validate::valtype::gs1::ean13</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::gs1::ean13</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="files/cmdr_vt_iban.html">cmdr::validate::valtype::iban</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::iban</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="files/cmdr_vt_imei.html">cmdr::validate::valtype::imei</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::imei</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="files/cmdr_vt_isbn.html">cmdr::validate::valtype::isbn</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::isbn</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="files/cmdr_vt_luhn.html">cmdr::validate::valtype::luhn</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::luhn</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="files/cmdr_vt_luhn5.html">cmdr::validate::valtype::luhn5</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::luhn5</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="files/cmdr_vt_usnpi.html">cmdr::validate::valtype::usnpi</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::usnpi</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="files/cmdr_vt_verhoeff.html">cmdr::validate::valtype::verhoeff</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::verhoeff</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="files/cmdr_vt_weekday.html">cmdr::validate::weekday</a></td> <td class="#tocright">Cmdr - Validation type for weekday names</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="files/cmdr_vt_year.html">cmdr::validate::year</a></td> <td class="#tocright">Cmdr - Validation type for years</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="files/cmdr_howto_development.html">cmdr_development</a></td> <td class="#tocright">Cmdr - The Developer's Guide</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="files/cmdr_dev_completion.html">cmdr_dev~completion</a></td> <td class="#tocright">Cmdr - Internals of command line completion</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="files/cmdr_dev_dsl.html">cmdr_dev~dsl</a></td> <td class="#tocright">Cmdr - Internals of DSL handling</td> </tr> </table> </dl><hr></body></html> |
Changes to embedded/www/index.html.
︙ | ︙ | |||
18 19 20 21 22 23 24 | <hr><table class="#idx" width="100%"> <tr class="#idxheader"><th colspan="2"> <a name="c1">Keywords: A</a> </th></tr> <tr class="#idxeven" valign=top> <td class="#idxleft" width="35%"><a name="key4"> arguments </a></td> <td class="#idxright" width="65%"> | | | | | | | | | | | | | | | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | <hr><table class="#idx" width="100%"> <tr class="#idxheader"><th colspan="2"> <a name="c1">Keywords: A</a> </th></tr> <tr class="#idxeven" valign=top> <td class="#idxleft" width="35%"><a name="key4"> arguments </a></td> <td class="#idxright" width="65%"> <a href="doc/files/cmdr.html"> cmdr </a> · <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> · <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> · <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> · <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> · <a href="doc/files/cmdr_license.html"> cmdr-license </a> · <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> · <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> · <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> · <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> · <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> · <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> · <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> · <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> · <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> · <a href="doc/files/cmdr_color.html"> cmdr::color </a> · <a href="doc/files/cmdr_config.html"> cmdr::config </a> · <a href="doc/files/cmdr_help.html"> cmdr::help </a> · <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> · <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> · <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> · <a href="doc/files/cmdr_history.html"> cmdr::history </a> · <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> · <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> · <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> · <a href="doc/files/cmdr_private.html"> cmdr::private </a> · <a href="doc/files/cmdr_table.html"> cmdr::table </a> · <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> · <a href="doc/files/cmdr_util.html"> cmdr::util </a> · <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> · <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> · <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> · <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> · <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> · <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> · <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> · <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> · <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> · <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> · <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> · <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> · <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> · <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> · <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> · <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> · <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> · <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> · <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> · <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> · <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> · <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> · <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a> </td></tr> <tr class="#idxheader"><th colspan="2"> <a name="c2">Keywords: C</a> </th></tr> <tr class="#idxodd" valign=top> <td class="#idxleft" width="35%"><a name="key5"> command hierarchy </a></td> <td class="#idxright" width="65%"> <a href="doc/files/cmdr.html"> cmdr </a> · <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> · <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> · <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> · <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> · <a href="doc/files/cmdr_license.html"> cmdr-license </a> · <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> · <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> · <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> · <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> · <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> · <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> · <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> · <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> · <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> · <a href="doc/files/cmdr_color.html"> cmdr::color </a> · <a href="doc/files/cmdr_config.html"> cmdr::config </a> · <a href="doc/files/cmdr_help.html"> cmdr::help </a> · <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> · <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> · <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> · <a href="doc/files/cmdr_history.html"> cmdr::history </a> · <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> · <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> · <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> · <a href="doc/files/cmdr_private.html"> cmdr::private </a> · <a href="doc/files/cmdr_table.html"> cmdr::table </a> · <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> · <a href="doc/files/cmdr_util.html"> cmdr::util </a> · <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> · <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> · <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> · <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> · <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> · <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> · <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> · <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> · <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> · <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> · <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> · <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> · <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> · <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> · <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> · <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> · <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> · <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> · <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> · <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> · <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> · <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> · <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a> </td></tr> <tr class="#idxeven" valign=top> <td class="#idxleft" width="35%"><a name="key9"> command line completion </a></td> <td class="#idxright" width="65%"> <a href="doc/files/cmdr.html"> cmdr </a> · <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> · <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> · <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> · <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> · <a href="doc/files/cmdr_license.html"> cmdr-license </a> · <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> · <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> · <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> · <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> · <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> · <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> · <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> · <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> · <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> · <a href="doc/files/cmdr_color.html"> cmdr::color </a> · <a href="doc/files/cmdr_config.html"> cmdr::config </a> · <a href="doc/files/cmdr_help.html"> cmdr::help </a> · <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> · <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> · <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> · <a href="doc/files/cmdr_history.html"> cmdr::history </a> · <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> · <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> · <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> · <a href="doc/files/cmdr_private.html"> cmdr::private </a> · <a href="doc/files/cmdr_table.html"> cmdr::table </a> · <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> · <a href="doc/files/cmdr_util.html"> cmdr::util </a> · <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> · <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> · <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> · <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> · <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> · <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> · <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> · <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> · <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> · <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> · <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> · <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> · <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> · <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> · <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> · <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> · <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> · <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> · <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> · <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> · <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> · <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> · <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a> </td></tr> <tr class="#idxodd" valign=top> <td class="#idxleft" width="35%"><a name="key11"> command line handling </a></td> <td class="#idxright" width="65%"> <a href="doc/files/cmdr.html"> cmdr </a> · <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> · <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> · <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> · <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> · <a href="doc/files/cmdr_license.html"> cmdr-license </a> · <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> · <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> · <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> · <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> · <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> · <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> · <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> · <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> · <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> · <a href="doc/files/cmdr_color.html"> cmdr::color </a> · <a href="doc/files/cmdr_config.html"> cmdr::config </a> · <a href="doc/files/cmdr_help.html"> cmdr::help </a> · <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> · <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> · <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> · <a href="doc/files/cmdr_history.html"> cmdr::history </a> · <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> · <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> · <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> · <a href="doc/files/cmdr_private.html"> cmdr::private </a> · <a href="doc/files/cmdr_table.html"> cmdr::table </a> · <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> · <a href="doc/files/cmdr_util.html"> cmdr::util </a> · <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> · <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> · <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> · <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> · <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> · <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> · <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> · <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> · <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> · <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> · <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> · <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> · <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> · <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> · <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> · <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> · <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> · <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> · <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> · <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> · <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> · <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> · <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a> </td></tr> <tr class="#idxeven" valign=top> <td class="#idxleft" width="35%"><a name="key13"> command tree </a></td> <td class="#idxright" width="65%"> <a href="doc/files/cmdr.html"> cmdr </a> · <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> · <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> · <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> · <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> · <a href="doc/files/cmdr_license.html"> cmdr-license </a> · <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> · <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> · <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> · <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> · <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> · <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> · <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> · <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> · <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> · <a href="doc/files/cmdr_color.html"> cmdr::color </a> · <a href="doc/files/cmdr_config.html"> cmdr::config </a> · <a href="doc/files/cmdr_help.html"> cmdr::help </a> · <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> · <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> · <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> · <a href="doc/files/cmdr_history.html"> cmdr::history </a> · <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> · <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> · <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> · <a href="doc/files/cmdr_private.html"> cmdr::private </a> · <a href="doc/files/cmdr_table.html"> cmdr::table </a> · <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> · <a href="doc/files/cmdr_util.html"> cmdr::util </a> · <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> · <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> · <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> · <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> · <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> · <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> · <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> · <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> · <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> · <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> · <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> · <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> · <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> · <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> · <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> · <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> · <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> · <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> · <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> · <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> · <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> · <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> · <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a> </td></tr> <tr class="#idxheader"><th colspan="2"> <a name="c3">Keywords: E</a> </th></tr> <tr class="#idxodd" valign=top> <td class="#idxleft" width="35%"><a name="key0"> editing command line </a></td> <td class="#idxright" width="65%"> <a href="doc/files/cmdr.html"> cmdr </a> · <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> · <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> · <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> · <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> · <a href="doc/files/cmdr_license.html"> cmdr-license </a> · <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> · <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> · <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> · <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> · <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> · <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> · <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> · <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> · <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> · <a href="doc/files/cmdr_color.html"> cmdr::color </a> · <a href="doc/files/cmdr_config.html"> cmdr::config </a> · <a href="doc/files/cmdr_help.html"> cmdr::help </a> · <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> · <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> · <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> · <a href="doc/files/cmdr_history.html"> cmdr::history </a> · <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> · <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> · <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> · <a href="doc/files/cmdr_private.html"> cmdr::private </a> · <a href="doc/files/cmdr_table.html"> cmdr::table </a> · <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> · <a href="doc/files/cmdr_util.html"> cmdr::util </a> · <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> · <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> · <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> · <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> · <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> · <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> · <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> · <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> · <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> · <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> · <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> · <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> · <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> · <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> · <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> · <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> · <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> · <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> · <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> · <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> · <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> · <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> · <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a> </td></tr> <tr class="#idxheader"><th colspan="2"> <a name="c4">Keywords: H</a> </th></tr> <tr class="#idxeven" valign=top> <td class="#idxleft" width="35%"><a name="key8"> help for command line </a></td> <td class="#idxright" width="65%"> <a href="doc/files/cmdr.html"> cmdr </a> · <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> · <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> · <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> · <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> · <a href="doc/files/cmdr_license.html"> cmdr-license </a> · <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> · <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> · <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> · <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> · <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> · <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> · <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> · <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> · <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> · <a href="doc/files/cmdr_color.html"> cmdr::color </a> · <a href="doc/files/cmdr_config.html"> cmdr::config </a> · <a href="doc/files/cmdr_help.html"> cmdr::help </a> · <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> · <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> · <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> · <a href="doc/files/cmdr_history.html"> cmdr::history </a> · <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> · <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> · <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> · <a href="doc/files/cmdr_private.html"> cmdr::private </a> · <a href="doc/files/cmdr_table.html"> cmdr::table </a> · <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> · <a href="doc/files/cmdr_util.html"> cmdr::util </a> · <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> · <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> · <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> · <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> · <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> · <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> · <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> · <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> · <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> · <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> · <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> · <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> · <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> · <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> · <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> · <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> · <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> · <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> · <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> · <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> · <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> · <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> · <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a> </td></tr> <tr class="#idxodd" valign=top> <td class="#idxleft" width="35%"><a name="key6"> hierarchy of commands </a></td> <td class="#idxright" width="65%"> <a href="doc/files/cmdr.html"> cmdr </a> · <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> · <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> · <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> · <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> · <a href="doc/files/cmdr_license.html"> cmdr-license </a> · <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> · <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> · <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> · <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> · <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> · <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> · <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> · <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> · <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> · <a href="doc/files/cmdr_color.html"> cmdr::color </a> · <a href="doc/files/cmdr_config.html"> cmdr::config </a> · <a href="doc/files/cmdr_help.html"> cmdr::help </a> · <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> · <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> · <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> · <a href="doc/files/cmdr_history.html"> cmdr::history </a> · <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> · <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> · <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> · <a href="doc/files/cmdr_private.html"> cmdr::private </a> · <a href="doc/files/cmdr_table.html"> cmdr::table </a> · <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> · <a href="doc/files/cmdr_util.html"> cmdr::util </a> · <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> · <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> · <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> · <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> · <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> · <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> · <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> · <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> · <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> · <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> · <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> · <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> · <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> · <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> · <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> · <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> · <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> · <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> · <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> · <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> · <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> · <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> · <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a> </td></tr> <tr class="#idxheader"><th colspan="2"> <a name="c5">Keywords: I</a> </th></tr> <tr class="#idxeven" valign=top> <td class="#idxleft" width="35%"><a name="key3"> interactive command shell </a></td> <td class="#idxright" width="65%"> <a href="doc/files/cmdr.html"> cmdr </a> · <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> · <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> · <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> · <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> · <a href="doc/files/cmdr_license.html"> cmdr-license </a> · <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> · <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> · <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> · <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> · <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> · <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> · <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> · <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> · <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> · <a href="doc/files/cmdr_color.html"> cmdr::color </a> · <a href="doc/files/cmdr_config.html"> cmdr::config </a> · <a href="doc/files/cmdr_help.html"> cmdr::help </a> · <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> · <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> · <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> · <a href="doc/files/cmdr_history.html"> cmdr::history </a> · <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> · <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> · <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> · <a href="doc/files/cmdr_private.html"> cmdr::private </a> · <a href="doc/files/cmdr_table.html"> cmdr::table </a> · <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> · <a href="doc/files/cmdr_util.html"> cmdr::util </a> · <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> · <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> · <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> · <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> · <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> · <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> · <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> · <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> · <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> · <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> · <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> · <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> · <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> · <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> · <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> · <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> · <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> · <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> · <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> · <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> · <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> · <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> · <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a> </td></tr> <tr class="#idxheader"><th colspan="2"> <a name="c6">Keywords: O</a> </th></tr> <tr class="#idxodd" valign=top> <td class="#idxleft" width="35%"><a name="key1"> optional arguments </a></td> <td class="#idxright" width="65%"> <a href="doc/files/cmdr.html"> cmdr </a> · <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> · <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> · <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> · <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> · <a href="doc/files/cmdr_license.html"> cmdr-license </a> · <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> · <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> · <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> · <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> · <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> · <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> · <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> · <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> · <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> · <a href="doc/files/cmdr_color.html"> cmdr::color </a> · <a href="doc/files/cmdr_config.html"> cmdr::config </a> · <a href="doc/files/cmdr_help.html"> cmdr::help </a> · <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> · <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> · <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> · <a href="doc/files/cmdr_history.html"> cmdr::history </a> · <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> · <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> · <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> · <a href="doc/files/cmdr_private.html"> cmdr::private </a> · <a href="doc/files/cmdr_table.html"> cmdr::table </a> · <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> · <a href="doc/files/cmdr_util.html"> cmdr::util </a> · <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> · <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> · <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> · <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> · <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> · <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> · <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> · <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> · <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> · <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> · <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> · <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> · <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> · <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> · <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> · <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> · <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> · <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> · <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> · <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> · <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> · <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> · <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a> </td></tr> <tr class="#idxeven" valign=top> <td class="#idxleft" width="35%"><a name="key2"> options </a></td> <td class="#idxright" width="65%"> <a href="doc/files/cmdr.html"> cmdr </a> · <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> · <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> · <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> · <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> · <a href="doc/files/cmdr_license.html"> cmdr-license </a> · <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> · <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> · <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> · <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> · <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> · <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> · <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> · <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> · <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> · <a href="doc/files/cmdr_color.html"> cmdr::color </a> · <a href="doc/files/cmdr_config.html"> cmdr::config </a> · <a href="doc/files/cmdr_help.html"> cmdr::help </a> · <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> · <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> · <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> · <a href="doc/files/cmdr_history.html"> cmdr::history </a> · <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> · <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> · <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> · <a href="doc/files/cmdr_private.html"> cmdr::private </a> · <a href="doc/files/cmdr_table.html"> cmdr::table </a> · <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> · <a href="doc/files/cmdr_util.html"> cmdr::util </a> · <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> · <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> · <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> · <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> · <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> · <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> · <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> · <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> · <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> · <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> · <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> · <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> · <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> · <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> · <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> · <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> · <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> · <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> · <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> · <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> · <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> · <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> · <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a> </td></tr> <tr class="#idxheader"><th colspan="2"> <a name="c7">Keywords: P</a> </th></tr> <tr class="#idxodd" valign=top> <td class="#idxleft" width="35%"><a name="key12"> parameters </a></td> <td class="#idxright" width="65%"> <a href="doc/files/cmdr.html"> cmdr </a> · <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> · <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> · <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> · <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> · <a href="doc/files/cmdr_license.html"> cmdr-license </a> · <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> · <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> · <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> · <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> · <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> · <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> · <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> · <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> · <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> · <a href="doc/files/cmdr_color.html"> cmdr::color </a> · <a href="doc/files/cmdr_config.html"> cmdr::config </a> · <a href="doc/files/cmdr_help.html"> cmdr::help </a> · <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> · <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> · <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> · <a href="doc/files/cmdr_history.html"> cmdr::history </a> · <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> · <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> · <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> · <a href="doc/files/cmdr_private.html"> cmdr::private </a> · <a href="doc/files/cmdr_table.html"> cmdr::table </a> · <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> · <a href="doc/files/cmdr_util.html"> cmdr::util </a> · <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> · <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> · <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> · <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> · <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> · <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> · <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> · <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> · <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> · <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> · <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> · <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> · <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> · <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> · <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> · <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> · <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> · <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> · <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> · <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> · <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> · <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> · <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a> </td></tr> <tr class="#idxeven" valign=top> <td class="#idxleft" width="35%"><a name="key10"> processing command line </a></td> <td class="#idxright" width="65%"> <a href="doc/files/cmdr.html"> cmdr </a> · <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> · <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> · <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> · <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> · <a href="doc/files/cmdr_license.html"> cmdr-license </a> · <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> · <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> · <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> · <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> · <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> · <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> · <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> · <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> · <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> · <a href="doc/files/cmdr_color.html"> cmdr::color </a> · <a href="doc/files/cmdr_config.html"> cmdr::config </a> · <a href="doc/files/cmdr_help.html"> cmdr::help </a> · <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> · <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> · <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> · <a href="doc/files/cmdr_history.html"> cmdr::history </a> · <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> · <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> · <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> · <a href="doc/files/cmdr_private.html"> cmdr::private </a> · <a href="doc/files/cmdr_table.html"> cmdr::table </a> · <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> · <a href="doc/files/cmdr_util.html"> cmdr::util </a> · <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> · <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> · <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> · <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> · <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> · <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> · <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> · <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> · <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> · <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> · <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> · <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> · <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> · <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> · <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> · <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> · <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> · <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> · <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> · <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> · <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> · <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> · <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a> </td></tr> <tr class="#idxheader"><th colspan="2"> <a name="c8">Keywords: T</a> </th></tr> <tr class="#idxodd" valign=top> <td class="#idxleft" width="35%"><a name="key7"> tree of commands </a></td> <td class="#idxright" width="65%"> <a href="doc/files/cmdr.html"> cmdr </a> · <a href="doc/files/cmdr_changes.html"> cmdr-changes </a> · <a href="doc/files/cmdr_howto_get_sources.html"> cmdr-howto-get-sources </a> · <a href="doc/files/cmdr_howto_installation.html"> cmdr-installation </a> · <a href="doc/files/cmdr_introduction.html"> cmdr-introduction </a> · <a href="doc/files/cmdr_license.html"> cmdr-license </a> · <a href="doc/files/cmdr_dsl.html"> cmdr-spec-dsl </a> · <a href="doc/files/cmdr_dsl_officer.html"> cmdr-spec-dsl-officer </a> · <a href="doc/files/cmdr_dsl_parameter.html"> cmdr-spec-dsl-parameter </a> · <a href="doc/files/cmdr_dsl_private.html"> cmdr-spec-dsl-private </a> · <a href="doc/files/cmdr_flow.html"> cmdr-spec-flow </a> · <a href="doc/files/cmdr_helpformats.html"> cmdr-user-helpformats </a> · <a href="doc/files/cmdr_vtypes.html"> cmdr-user-vtypes </a> · <a href="doc/files/cmdr_actor.html"> cmdr::actor </a> · <a href="doc/files/cmdr_ask.html"> cmdr::ask </a> · <a href="doc/files/cmdr_color.html"> cmdr::color </a> · <a href="doc/files/cmdr_config.html"> cmdr::config </a> · <a href="doc/files/cmdr_help.html"> cmdr::help </a> · <a href="doc/files/cmdr_help_json.html"> cmdr::help::json </a> · <a href="doc/files/cmdr_help_sql.html"> cmdr::help::sql </a> · <a href="doc/files/cmdr_help_tcl.html"> cmdr::help::tcl </a> · <a href="doc/files/cmdr_history.html"> cmdr::history </a> · <a href="doc/files/cmdr_officer.html"> cmdr::officer </a> · <a href="doc/files/cmdr_pager.html"> cmdr::pager </a> · <a href="doc/files/cmdr_parameter.html"> cmdr::parameter </a> · <a href="doc/files/cmdr_private.html"> cmdr::private </a> · <a href="doc/files/cmdr_table.html"> cmdr::table </a> · <a href="doc/files/cmdr_tty.html"> cmdr::tty </a> · <a href="doc/files/cmdr_util.html"> cmdr::util </a> · <a href="doc/files/cmdr_validate.html"> cmdr::validate </a> · <a href="doc/files/cmdr_vcommon.html"> cmdr::validate::common </a> · <a href="doc/files/cmdr_vt_date.html"> cmdr::validate::date </a> · <a href="doc/files/cmdr_vt_posint.html"> cmdr::validate::posint </a> · <a href="doc/files/cmdr_vt_time.html"> cmdr::validate::time </a> · <a href="doc/files/cmdr_vt_time_minute.html"> cmdr::validate::time::minute </a> · <a href="doc/files/cmdr_vt_amex.html"> cmdr::validate::valtype::cc::amex </a> · <a href="doc/files/cmdr_vt_discover.html"> cmdr::validate::valtype::cc::discover </a> · <a href="doc/files/cmdr_vt_mastercard.html"> cmdr::validate::valtype::cc::mastercard </a> · <a href="doc/files/cmdr_vt_visa.html"> cmdr::validate::valtype::cc::visa </a> · <a href="doc/files/cmdr_vt_ean13.html"> cmdr::validate::valtype::gs1::ean13 </a> · <a href="doc/files/cmdr_vt_iban.html"> cmdr::validate::valtype::iban </a> · <a href="doc/files/cmdr_vt_imei.html"> cmdr::validate::valtype::imei </a> · <a href="doc/files/cmdr_vt_isbn.html"> cmdr::validate::valtype::isbn </a> · <a href="doc/files/cmdr_vt_luhn.html"> cmdr::validate::valtype::luhn </a> · <a href="doc/files/cmdr_vt_luhn5.html"> cmdr::validate::valtype::luhn5 </a> · <a href="doc/files/cmdr_vt_usnpi.html"> cmdr::validate::valtype::usnpi </a> · <a href="doc/files/cmdr_vt_verhoeff.html"> cmdr::validate::valtype::verhoeff </a> · <a href="doc/files/cmdr_vt_weekday.html"> cmdr::validate::weekday </a> · <a href="doc/files/cmdr_vt_year.html"> cmdr::validate::year </a> · <a href="doc/files/cmdr_howto_development.html"> cmdr_development </a> · <a href="doc/files/cmdr_dev_completion.html"> cmdr_dev~completion </a> · <a href="doc/files/cmdr_dev_dsl.html"> cmdr_dev~dsl </a> </td></tr> </table> </body></html> |
Changes to embedded/www/toc.html.
︙ | ︙ | |||
114 115 116 117 118 119 120 121 122 123 | <td class="#tocright">Cmdr - (Partially internal) Command parameters</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="doc/files/cmdr_private.html">cmdr::private</a></td> <td class="#tocright">Cmdr - (Internal) Single command handling, options, and arguments</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="doc/files/cmdr_tty.html">cmdr::tty</a></td> <td class="#tocright">Cmdr - Check if stdin is a tty, i.e. terminal</td> </tr> | > > > > | | | | | | | | | | | | | | | | | | | | | | | | | 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 | <td class="#tocright">Cmdr - (Partially internal) Command parameters</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="doc/files/cmdr_private.html">cmdr::private</a></td> <td class="#tocright">Cmdr - (Internal) Single command handling, options, and arguments</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="doc/files/cmdr_table.html">cmdr::table</a></td> <td class="#tocright">Cmdr - Simple Table creation</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="doc/files/cmdr_tty.html">cmdr::tty</a></td> <td class="#tocright">Cmdr - Check if stdin is a tty, i.e. terminal</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="doc/files/cmdr_util.html">cmdr::util</a></td> <td class="#tocright">Cmdr - (Internal) General Utilities</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="doc/files/cmdr_validate.html">cmdr::validate</a></td> <td class="#tocright">Cmdr - Standard validation types for parameters</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="doc/files/cmdr_vcommon.html">cmdr::validate::common</a></td> <td class="#tocright">Cmdr - Utilities for Validation Types</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_date.html">cmdr::validate::date</a></td> <td class="#tocright">Cmdr - Validation type for dates</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_posint.html">cmdr::validate::posint</a></td> <td class="#tocright">Cmdr - Validation type for positive integers</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_time.html">cmdr::validate::time</a></td> <td class="#tocright">Cmdr - Validation type for times (to the second)</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_time_minute.html">cmdr::validate::time::minute</a></td> <td class="#tocright">Cmdr - Validation type for times to the minute</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_amex.html">cmdr::validate::valtype::cc::amex</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::cc::amex</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_discover.html">cmdr::validate::valtype::cc::discover</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::cc::discover</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_mastercard.html">cmdr::validate::valtype::cc::mastercard</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::cc::mastercard</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_visa.html">cmdr::validate::valtype::cc::visa</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::cc::visa</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_ean13.html">cmdr::validate::valtype::gs1::ean13</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::gs1::ean13</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_iban.html">cmdr::validate::valtype::iban</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::iban</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_imei.html">cmdr::validate::valtype::imei</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::imei</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_isbn.html">cmdr::validate::valtype::isbn</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::isbn</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_luhn.html">cmdr::validate::valtype::luhn</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::luhn</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_luhn5.html">cmdr::validate::valtype::luhn5</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::luhn5</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_usnpi.html">cmdr::validate::valtype::usnpi</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::usnpi</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_verhoeff.html">cmdr::validate::valtype::verhoeff</a></td> <td class="#tocright">Cmdr - Validation type facade for Tcllib valtype::verhoeff</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_weekday.html">cmdr::validate::weekday</a></td> <td class="#tocright">Cmdr - Validation type for weekday names</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="doc/files/cmdr_vt_year.html">cmdr::validate::year</a></td> <td class="#tocright">Cmdr - Validation type for years</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="doc/files/cmdr_howto_development.html">cmdr_development</a></td> <td class="#tocright">Cmdr - The Developer's Guide</td> </tr> <tr class="#toceven" > <td class="#tocleft" ><a href="doc/files/cmdr_dev_completion.html">cmdr_dev~completion</a></td> <td class="#tocright">Cmdr - Internals of command line completion</td> </tr> <tr class="#tocodd" > <td class="#tocleft" ><a href="doc/files/cmdr_dev_dsl.html">cmdr_dev~dsl</a></td> <td class="#tocright">Cmdr - Internals of DSL handling</td> </tr> </table> </dl><hr></body></html> |
Changes to help/help.tcl.
︙ | ︙ | |||
33 34 35 36 37 38 39 40 41 42 43 44 45 46 | package require cmdr::pager # # ## ### ##### ######## ############# ##################### debug define cmdr/help debug level cmdr/help debug prefix cmdr/help {[debug caller] | } # # ## ### ##### ######## ############# ##################### ## Definition namespace eval ::cmdr { namespace export help namespace ensemble create | > | 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | package require cmdr::pager # # ## ### ##### ######## ############# ##################### debug define cmdr/help debug level cmdr/help debug prefix cmdr/help {[debug caller] | } debug prefix cmdr/help/short {| } # # ## ### ##### ######## ############# ##################### ## Definition namespace eval ::cmdr { namespace export help namespace ensemble create |
︙ | ︙ | |||
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | alias h alias ? presence when-set [lambda {p x} { # Invoke the help command which will be generated and # inserted below. set root [$p config context root] if {[$root exists *prefix*]} { # Invoke help for the current command. $root do help {*}[$root get *prefix*] } else { # Invoke global help. $root do help } # Prevent any other processing. | > > | 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | alias h alias ? presence when-set [lambda {p x} { # Invoke the help command which will be generated and # inserted below. set root [$p config context root] if {[$root exists *prefix*]} { debug.cmdr/help/short {/prefix $root ([$root get *prefix*])} # Invoke help for the current command. $root do help {*}[$root get *prefix*] } else { # Invoke global help. $root do help } # Prevent any other processing. |
︙ | ︙ |
Changes to utilities/history.tcl.
︙ | ︙ | |||
78 79 80 81 82 83 84 | debug.cmdr/history {} variable limit $new return } proc ::cmdr::history::attach {actor} { debug.cmdr/history {} | | | 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | debug.cmdr/history {} variable limit $new return } proc ::cmdr::history::attach {actor} { debug.cmdr/history {} # For use by cmdr's custom-setup command. # The actor is the officer to extend. # (***) Detect recursive entry through the extend statements # below. Use this to make 'history list' the default of the whole # history officer. And, of course, prevent infinite recursion. # Lastly, not leastly, add help describing the entire ensemble. |
︙ | ︙ | |||
137 138 139 140 141 142 143 | } { optional default 0 validate integer } } ::cmdr::history::Show # This recurses into 'attach' through the automatic inheritance of | | | > | 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | } { optional default 0 validate integer } } ::cmdr::history::Show # This recurses into 'attach' through the automatic inheritance of # the custom-setup hooks. See (***) above for the code # intercepting the recursion and preventing it from becoming # infinite. $actor extend {history clear} { section Introspection {Command history} description { Clear the saved history. } } ::cmdr::history::Clear |
︙ | ︙ |