summaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
authorChristof Marti <chrmarti@microsoft.com>2017-09-08 16:00:10 -0700
committerAndrew Gallant <jamslam@gmail.com>2017-09-18 11:54:48 -0400
commit1136f8adabb694634e6bc0c5ca3842e9403fe697 (patch)
treeaad0e3a1d751819abee994abb59c2aefa6362452 /src/main.rs
parentbeb010d004a79eedb8baa6f4eab21532e83a0ef0 (diff)
Avoid expensive check with --files (fixes #600)
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs
index 73ced955..1ff8eb00 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -108,6 +108,7 @@ fn run_parallel(args: Arc<Args>) -> Result<u64> {
let dent = match get_or_log_dir_entry(
result,
args.stdout_handle(),
+ args.files(),
args.no_messages(),
) {
None => return Continue,
@@ -154,6 +155,7 @@ fn run_one_thread(args: Arc<Args>) -> Result<u64> {
let dent = match get_or_log_dir_entry(
result,
args.stdout_handle(),
+ args.files(),
args.no_messages(),
) {
None => continue,
@@ -206,6 +208,7 @@ fn run_files_parallel(args: Arc<Args>) -> Result<u64> {
if let Some(dent) = get_or_log_dir_entry(
result,
args.stdout_handle(),
+ args.files(),
args.no_messages(),
) {
tx.send(dent).unwrap();
@@ -224,6 +227,7 @@ fn run_files_one_thread(args: Arc<Args>) -> Result<u64> {
let dent = match get_or_log_dir_entry(
result,
args.stdout_handle(),
+ args.files(),
args.no_messages(),
) {
None => continue,
@@ -251,6 +255,7 @@ fn run_types(args: Arc<Args>) -> Result<u64> {
fn get_or_log_dir_entry(
result: result::Result<ignore::DirEntry, ignore::Error>,
stdout_handle: Option<&same_file::Handle>,
+ files_only: bool,
no_messages: bool,
) -> Option<ignore::DirEntry> {
match result {
@@ -279,7 +284,7 @@ fn get_or_log_dir_entry(
}
// If we are redirecting stdout to a file, then don't search that
// file.
- if is_stdout_file(&dent, stdout_handle, no_messages) {
+ if !files_only && is_stdout_file(&dent, stdout_handle, no_messages) {
return None;
}
Some(dent)