1
0
mirror of https://github.com/BurntSushi/ripgrep.git synced 2025-06-14 22:15:13 +02:00

Merge pull request #157 from CannedYerins/follow-explicit-args

Always follow symlinks on explicit file arguments
This commit is contained in:
Andrew Gallant
2016-10-10 19:11:10 -04:00
committed by GitHub
2 changed files with 22 additions and 1 deletions

View File

@ -708,7 +708,9 @@ impl Args {
/// Create a new recursive directory iterator at the path given.
pub fn walker(&self, path: &Path) -> Result<walk::Iter> {
let mut wd = WalkDir::new(path).follow_links(self.follow);
// Always follow symlinks for explicitly specified files.
let mut wd = WalkDir::new(path).follow_links(self.follow
|| path.is_file());
if let Some(maxdepth) = self.maxdepth {
wd = wd.max_depth(maxdepth);
}

View File

@ -567,6 +567,25 @@ baz/sherlock:be, to a very large extent, the result of luck. Sherlock Holmes
assert_eq!(lines, path(expected));
});
// Follow symlinks on explicit file arguments.
sherlock!(symlink_explicit_file, "Sherlock", ".", |wd: WorkDir, mut cmd: Command| {
wd.link("sherlock", "sym1");
wd.link("sherlock", "sym2");
cmd.arg("sym1");
cmd.arg("sym2");
let lines: String = wd.stdout(&mut cmd);
let expected = "\
sherlock:For the Doctor Watsons of this world, as opposed to the Sherlock
sherlock:be, to a very large extent, the result of luck. Sherlock Holmes
sym1:For the Doctor Watsons of this world, as opposed to the Sherlock
sym1:be, to a very large extent, the result of luck. Sherlock Holmes
sym2:For the Doctor Watsons of this world, as opposed to the Sherlock
sym2:be, to a very large extent, the result of luck. Sherlock Holmes
";
assert_eq!(lines, path(expected));
});
sherlock!(unrestricted1, "Sherlock", ".", |wd: WorkDir, mut cmd: Command| {
wd.create(".gitignore", "sherlock\n");
cmd.arg("-u");