Color are now only used when outputting to a termainal/TTY. There are three new settings as well
which can be used to control color output, they are:
* `AppSettings::ColorAuto`: The default, and will only output color when outputting to a terminal or TTY
* `AppSettings::ColorAlways`: Outputs color no matter where the output is going
* `AppSettings::ColorNever`: Never colors output
This now allows one to use things like command line options, or environmental variables to turn
colored output on/off.
Closes#512
By default `clap` now automatically wraps and aligns help strings to the
term width. i.e.
```
-o, --option <opt> some really long help
text that should be auto aligned but isn't righ
t now
```
Now looks like this:
```
-o, --option <opt> some really long help
text that should be
auto aligned but isn't
right now
```
The wrapping also respects words, and wraps at spaces so as to not cut
words in the middle.
This requires the `libc` dep which is enabled (by default) with the
`wrap_help` cargo feature flag.
Closes#428
A `*` version constraint makes it hard/impossible to release a breaking
change (e.g. clap 2.0) without causing people's code to break. `cargo
update` with a `*` dependency will happily move from (say) 1.4 to 2.0,
even though semver says these may be a breaking change. Using a more
precise dependency constraint gives the crate author more flexibility in
making breaking changes, and makes users of the crate happier if/when
they do happen.
https://github.com/rust-lang/rfcs/pull/1241 contains a bit more
discussion about this.