mirror of
https://github.com/junegunn/fzf.git
synced 2025-11-18 08:13:40 -05:00
Do not enable delayed expansion mode when running cmd.exe
And simplify the argument escaping code. Fix #3764. This may breaks some existing use cases, but the mode causes too much trouble when escaping arguments and it makes some things not possible. # Now you can pass special characters to rg process without any escaping problems: &|<>()@^%! fzf --ansi --disabled --bind "change:reload:rg --column --line-number --no-heading --color=always --smart-case -- {q}" # No sudden expansion of the arguments on '!' fzf --disabled --preview "echo {q} {n} {}" --query "&|<>()@^%!" --prompt "&|<>()@^%!"
This commit is contained in:
@@ -42,7 +42,7 @@ func NewExecutor(withShell string) *Executor {
|
||||
args = args[1:]
|
||||
} else if strings.HasPrefix(basename, "cmd") {
|
||||
shellType = shellTypeCmd
|
||||
args = []string{"/v:on/s/c"}
|
||||
args = []string{"/s/c"}
|
||||
} else if strings.HasPrefix(basename, "pwsh") || strings.HasPrefix(basename, "powershell") {
|
||||
shellType = shellTypePowerShell
|
||||
args = []string{"-NoProfile", "-Command"}
|
||||
@@ -119,8 +119,6 @@ func escapeArg(s string) string {
|
||||
slashes = 0
|
||||
case '\\':
|
||||
slashes++
|
||||
case '&', '|', '<', '>', '(', ')', '@', '^', '%', '!':
|
||||
b = append(b, '^')
|
||||
case '"':
|
||||
for ; slashes > 0; slashes-- {
|
||||
b = append(b, '\\')
|
||||
|
||||
Reference in New Issue
Block a user