1
0
mirror of https://github.com/BurntSushi/ripgrep.git synced 2025-03-17 20:28:03 +02:00

cli: make resolve_binary take COM executables into account

When `resolve_binary()` attempts to resolve a path to a program on
Windows while searching for a program in `PATH` without an extension,
`ripgrep` will assume the extension of the file to be `.exe` as it's
the *de facto* standard, which will work most (99.99%) of the time...

...unless the binary is a COM executable (we're on Windows, duh).

Closes #2523
This commit is contained in:
mataha 2023-05-30 02:08:06 +02:00 committed by Andrew Gallant
parent 545a7dc759
commit da8ecddce9
2 changed files with 11 additions and 3 deletions

View File

@ -2,6 +2,10 @@ TBD
===
Unreleased changes. Release notes have not yet been written.
Feature enhancements:
* Added or improved file type filtering for Fuchsia
Bug fixes:
* [BUG #1891](https://github.com/BurntSushi/ripgrep/issues/1891):
@ -10,6 +14,8 @@ Bug fixes:
Disable mmap searching in all non-64-bit environments.
* [BUG #2236](https://github.com/BurntSushi/ripgrep/issues/2236):
Fix gitignore parsing bug where a trailing `\/` resulted in an error.
* [BUG #2523](https://github.com/BurntSushi/ripgrep/issues/2523):
Make executable searching take `.com` into account on Windows.
13.0.0 (2021-06-12)

View File

@ -455,9 +455,11 @@ pub fn resolve_binary<P: AsRef<Path>>(
return Ok(abs_prog.to_path_buf());
}
if abs_prog.extension().is_none() {
let abs_prog = abs_prog.with_extension("exe");
if is_exe(&abs_prog) {
return Ok(abs_prog.to_path_buf());
for extension in ["com", "exe"] {
let abs_prog = abs_prog.with_extension(extension);
if is_exe(&abs_prog) {
return Ok(abs_prog.to_path_buf());
}
}
}
}