mirror of
https://github.com/clap-rs/clap
synced 2024-12-14 23:02:31 +00:00
1e7c9efc9d
1612: Use about() with help() and long_about() with long_help() r=pksunkara a=TheLostLambda I was going through the clap documentation and was under the impression that calling `help()` would call `about()` and `long_help()` would call `long_about()`, but I've actually discovered this not to be the case. Instead, the `long_about()` was always shown when it existed, rendering the output (in the about section) of programs called with `-h` and `--help` identical. Issue #1472 shows this and that is fixed here. Note this doesn't remove the ability to use the same about in both cases: if `long_about()` is unset, then `about()` is used in both cases. I've changed the implementation here to use `is_some()` and `unwrap()` as opposed to `if let` because it ultimately allows for less repetitive code. Ideally, I'd be able to pair `if let` with a secondary condition (namely `self.use_long`), but to my dismay, let-chains are not stabilized yet. For a second opinion, here is the code a settled on: ``` if self.use_long && parser.meta.long_about.is_some() { debugln!("Help::write_default_help: writing long about"); write_thing!(parser.meta.long_about.unwrap()) } else if parser.meta.about.is_some() { debugln!("Help::write_default_help: writing about"); write_thing!(parser.meta.about.unwrap()) } ``` Here is the alternative: ``` if self.use_long { if let Some(about) = parser.meta.long_about { debugln!("Help::write_default_help: writing long about"); write_thing!(about) } else if let Some(about) = parser.meta.about { debugln!("Help::write_default_help: writing about"); write_thing!(about) } } else { if let Some(about) = parser.meta.about { debugln!("Help::write_default_help: writing about"); write_thing!(about) } } ``` Co-authored-by: Brooks J Rady <b.j.rady@gmail.com> |
||
---|---|---|
.. | ||
fixtures | ||
app_from_crate.rs | ||
app_settings.rs | ||
arg_aliases.rs | ||
borrowed.rs | ||
cargo.rs | ||
conflicts.rs | ||
default_vals.rs | ||
delimiters.rs | ||
derive_order.rs | ||
env.rs | ||
flags.rs | ||
global_args.rs | ||
groups.rs | ||
help.rs | ||
hidden_args.rs | ||
indices.rs | ||
macros.rs | ||
multiple_occurrences.rs | ||
multiple_values.rs | ||
opts.rs | ||
positionals.rs | ||
posix_compatible.rs | ||
possible_values.rs | ||
propagate_globals.rs | ||
require.rs | ||
subcommands.rs | ||
template_help.rs | ||
tests.rs | ||
unique_args.rs | ||
utf8.rs | ||
utils.rs | ||
version-numbers.rs | ||
version.rs | ||
yaml.rs |