mirror of
https://github.com/junegunn/fzf
synced 2024-11-14 18:12:53 +00:00
46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
//go:build windows
|
|
|
|
package fzf
|
|
|
|
import (
|
|
"os"
|
|
"regexp"
|
|
"strings"
|
|
)
|
|
|
|
func notifyOnResize(resizeChan chan<- os.Signal) {
|
|
// TODO
|
|
}
|
|
|
|
func notifyStop(p *os.Process) {
|
|
// NOOP
|
|
}
|
|
|
|
func notifyOnCont(resizeChan chan<- os.Signal) {
|
|
// NOOP
|
|
}
|
|
|
|
func quoteEntry(entry string) string {
|
|
shell := os.Getenv("SHELL")
|
|
if len(shell) == 0 {
|
|
shell = "cmd"
|
|
}
|
|
|
|
if strings.Contains(shell, "cmd") {
|
|
// backslash escaping is done here for applications
|
|
// (see ripgrep test case in terminal_test.go#TestWindowsCommands)
|
|
escaped := strings.Replace(entry, `\`, `\\`, -1)
|
|
escaped = `"` + strings.Replace(escaped, `"`, `\"`, -1) + `"`
|
|
// caret is the escape character for cmd shell
|
|
r, _ := regexp.Compile(`[&|<>()@^%!"]`)
|
|
return r.ReplaceAllStringFunc(escaped, func(match string) string {
|
|
return "^" + match
|
|
})
|
|
} else if strings.Contains(shell, "pwsh") || strings.Contains(shell, "powershell") {
|
|
escaped := strings.Replace(entry, `"`, `\"`, -1)
|
|
return "'" + strings.Replace(escaped, "'", "''", -1) + "'"
|
|
} else {
|
|
return "'" + strings.Replace(entry, "'", "'\\''", -1) + "'"
|
|
}
|
|
}
|