cmdr
Artifact Content
Not logged in

Artifact cfba25704b2964a81a4f0aae7db4fe5ae1f12a92:


[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]