Skip to content

Commit aaf0d6f

Browse files
committed
fix(Usage Strings): fixes a bug ordering of elements in usage strings
Closes #298
1 parent dcfe965 commit aaf0d6f

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/app/app.rs

+8-5
Original file line numberDiff line numberDiff line change
@@ -1325,7 +1325,6 @@ impl<'a, 'v, 'ab, 'u, 'h, 'ar> App<'a, 'v, 'ab, 'u, 'h, 'ar>{
13251325
acc + &format!(" {}", s)[..]
13261326
});
13271327

1328-
13291328
if !self.flags.is_empty() && !self.settings.is_set(&AppSettings::UnifiedHelpMessage) {
13301329
usage.push_str(" [FLAGS]");
13311330
} else {
@@ -1335,11 +1334,16 @@ impl<'a, 'v, 'ab, 'u, 'h, 'ar> App<'a, 'v, 'ab, 'u, 'h, 'ar>{
13351334
self.opts.values().any(|a| !a.settings.is_set(&ArgSettings::Required)) {
13361335
usage.push_str(" [OPTIONS]");
13371336
}
1337+
1338+
usage.push_str(&req_string[..]);
1339+
13381340
// places a '--' in the usage string if there are args and options
13391341
// supporting multiple values
1340-
if !self.positionals_idx.is_empty() && self.opts.values().any(|a| a.settings.is_set(&ArgSettings::Multiple)) &&
1341-
!self.opts.values().any(|a| a.settings.is_set(&ArgSettings::Required)) &&
1342-
self.subcommands.is_empty() {
1342+
if !self.positionals_idx.is_empty() &&
1343+
(self.opts.values().any(|a| a.settings.is_set(&ArgSettings::Multiple)) ||
1344+
self.positionals_idx.values().any(|a| a.settings.is_set(&ArgSettings::Multiple))) &&
1345+
!self.opts.values().any(|a| a.settings.is_set(&ArgSettings::Required)) &&
1346+
self.subcommands.is_empty() {
13431347
usage.push_str(" [--]")
13441348
}
13451349
if !self.positionals_idx.is_empty() &&
@@ -1348,7 +1352,6 @@ impl<'a, 'v, 'ab, 'u, 'h, 'ar> App<'a, 'v, 'ab, 'u, 'h, 'ar>{
13481352
usage.push_str(" [ARGS]");
13491353
}
13501354

1351-
usage.push_str(&req_string[..]);
13521355

13531356
if !self.subcommands.is_empty() && !self.settings.is_set(&AppSettings::SubcommandRequired) {
13541357
usage.push_str(" [SUBCOMMAND]");

0 commit comments

Comments
 (0)