mirror of
https://github.com/BurntSushi/ripgrep.git
synced 2025-03-17 20:28:03 +02:00
Don't ignore first path when using --files.
This is a docopt oddity, but probably not a bug. If --files is given, then just interpret the pattern (if not empty) as the first file path. Fixes #64.
This commit is contained in:
parent
b941c10b90
commit
c8227e0cf3
@ -463,7 +463,7 @@ impl Args {
|
||||
}
|
||||
}
|
||||
}
|
||||
let raw: RawArgs =
|
||||
let mut raw: RawArgs =
|
||||
Docopt::new(USAGE)
|
||||
.and_then(|d| d.argv(argv).version(Some(version())).decode())
|
||||
.unwrap_or_else(|e| e.exit());
|
||||
@ -478,6 +478,13 @@ impl Args {
|
||||
errored!("failed to initialize logger: {}", err);
|
||||
}
|
||||
|
||||
// *sigh*... If --files is given, then the first path ends up in
|
||||
// pattern.
|
||||
if raw.flag_files {
|
||||
if !raw.arg_pattern.is_empty() {
|
||||
raw.arg_path.insert(0, raw.arg_pattern.clone());
|
||||
}
|
||||
}
|
||||
raw.to_args().map_err(From::from)
|
||||
}
|
||||
|
||||
|
@ -744,6 +744,25 @@ fn files() {
|
||||
}
|
||||
}
|
||||
|
||||
// See: https://github.com/BurntSushi/ripgrep/issues/64
|
||||
#[test]
|
||||
fn regression_64() {
|
||||
let wd = WorkDir::new("regression_64");
|
||||
wd.create_dir("dir");
|
||||
wd.create_dir("foo");
|
||||
wd.create("dir/abc", "");
|
||||
wd.create("foo/abc", "");
|
||||
|
||||
let mut cmd = wd.command();
|
||||
cmd.arg("--files").arg("foo");
|
||||
let lines: String = wd.stdout(&mut cmd);
|
||||
if cfg!(windows) {
|
||||
assert_eq!(lines, "foo\\abc\n");
|
||||
} else {
|
||||
assert_eq!(lines, "foo/abc\n");
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn type_list() {
|
||||
let wd = WorkDir::new("type_list");
|
||||
|
Loading…
x
Reference in New Issue
Block a user