Skip to content

Commit d81e6bf

Browse files
committed
fix the mistake of overriding mode
a non-searching mode can override non-searching mode. It’s likely just a mistake or typo : if !matches!(*self, Mode::Search(_)); it should be: if !matches!(new, Mode::Search(_))
1 parent e0f1000 commit d81e6bf

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

crates/core/flags/defs.rs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2442,14 +2442,15 @@ fn test_generate() {
24422442
.unwrap();
24432443
assert_eq!(Mode::Generate(GenerateMode::Man), args.mode);
24442444

2445-
let args = parse_low_raw(["--generate", "man", "-l"]).unwrap();
2446-
assert_eq!(Mode::Search(SearchMode::FilesWithMatches), args.mode);
2445+
let args = parse_low_raw(["-l", "--generate", "man",]).unwrap();
2446+
assert_eq!(Mode::Generate(GenerateMode::Man), args.mode);
2447+
2448+
let args = parse_low_raw(["--generate", "man", "--files"]).unwrap();
2449+
assert_eq!(Mode::Files, args.mode);
24472450

2448-
// An interesting quirk of how the modes override each other that lets
2449-
// you get back to the "default" mode of searching.
24502451
let args =
24512452
parse_low_raw(["--generate", "man", "--json", "--no-json"]).unwrap();
2452-
assert_eq!(Mode::Search(SearchMode::Standard), args.mode);
2453+
assert_eq!(Mode::Generate(GenerateMode::Man), args.mode);
24532454
}
24542455

24552456
/// -g/--glob
@@ -5658,6 +5659,10 @@ fn test_quiet() {
56585659

56595660
let args = parse_low_raw(["-q", "--count-matches"]).unwrap();
56605661
assert_eq!(true, args.quiet);
5662+
5663+
let args = parse_low_raw(["--files", "-l"]).unwrap();
5664+
dbg!(args.mode);
5665+
assert_eq!(Mode::Files, args.mode);
56615666
}
56625667

56635668
/// --regex-size-limit

crates/core/flags/lowargs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ impl Mode {
181181
// Once we're in a non-search mode, other non-search modes
182182
// can override it. But search modes cannot. So for example,
183183
// `--files -l` will still be Mode::Files.
184-
if !matches!(*self, Mode::Search(_)) {
184+
if !matches!(new, Mode::Search(_)) {
185185
*self = new;
186186
}
187187
}

0 commit comments

Comments
 (0)