mirror of
https://github.com/wting/autojump
synced 2024-10-27 20:34:07 +00:00
Errors should not equal length of string.
Otherwise a match is always possible.
This commit is contained in:
parent
9b977379eb
commit
544aefa178
18
autojump
18
autojump
@ -126,14 +126,22 @@ def find_matches(dirs, patterns, result_list, ignore_case, approx, max_matches):
|
|||||||
for path, count in dirs:
|
for path, count in dirs:
|
||||||
if len(one_error_paths) >= max_matches:
|
if len(one_error_paths) >= max_matches:
|
||||||
break
|
break
|
||||||
errors = sum(approximatch(pattern, match_string)
|
total_errors = 0
|
||||||
for pattern, match_string in get_pattern_and_match(patterns, path))
|
bad_match = False
|
||||||
|
for pattern, match_string in get_pattern_and_match(patterns, path):
|
||||||
|
errors = approximatch(pattern, match_string)
|
||||||
|
if errors >= len(pattern) or errors >= len(match_string):
|
||||||
|
bad_match = True
|
||||||
|
break
|
||||||
|
total_errors += errors
|
||||||
|
if bad_match:
|
||||||
|
continue
|
||||||
#Verify that the path exists
|
#Verify that the path exists
|
||||||
#(useful in the case of external drives, for example)
|
#(useful in the case of external drives, for example)
|
||||||
if errors <= 2 and os.path.exists(path):
|
if total_errors <= 2 and os.path.exists(path):
|
||||||
if errors == 1:
|
if total_errors == 1:
|
||||||
uniqadd(one_error_paths, path)
|
uniqadd(one_error_paths, path)
|
||||||
elif errors == 2:
|
elif total_errors == 2:
|
||||||
uniqadd(two_error_paths, path)
|
uniqadd(two_error_paths, path)
|
||||||
result_list.extend(one_error_paths)
|
result_list.extend(one_error_paths)
|
||||||
result_list.extend(two_error_paths[:max_matches-len(one_error_paths)])
|
result_list.extend(two_error_paths[:max_matches-len(one_error_paths)])
|
||||||
|
Loading…
Reference in New Issue
Block a user