mirror of
https://github.com/nushell/nushell.git
synced 2025-08-09 04:45:04 +02:00
Escape path that could be a flag (#10721)
# Description Files that begin with dashes can be ambiguous when passed to commands like `ls`. For example if there exists a file `--help`, it might be considered a flag if not properly escaped. This PR escapes any file that begins with a dash. # User-Facing Changes Files beginning with dashes will be escaped. # Tests + Formatting Tests are added.
This commit is contained in:
committed by
GitHub
parent
9c70c68914
commit
7162d4d9aa
@ -152,7 +152,9 @@ pub fn complete_item(
|
||||
pub fn escape_path(path: String, dir: bool) -> String {
|
||||
let filename_contaminated = !dir && path.contains(['\'', '"', ' ', '#', '(', ')']);
|
||||
let dirname_contaminated = dir && path.contains(['\'', '"', ' ', '#']);
|
||||
if filename_contaminated || dirname_contaminated || path.parse::<f64>().is_ok() {
|
||||
let maybe_flag = path.starts_with('-');
|
||||
let maybe_number = path.parse::<f64>().is_ok();
|
||||
if filename_contaminated || dirname_contaminated || maybe_flag || maybe_number {
|
||||
format!("`{path}`")
|
||||
} else {
|
||||
path
|
||||
|
Reference in New Issue
Block a user