mirror of
https://github.com/junegunn/fzf.git
synced 2026-08-17 13:18:04 +08:00
Split the doubled and plain backslash cases in the quoting test
escapeArg only doubles a backslash that precedes a quote or ends the argument, the same rule as syscall.EscapeArg, and @ is not a cmd metacharacter so it is not caret-escaped. The Windows expectations here still asked for both. Checked by round-tripping each entry through cmd.exe into a program's argv: all ten come back byte for byte.
This commit is contained in:
@@ -251,9 +251,9 @@ func TestReplacePlaceholder(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestQuoteEntry(t *testing.T) {
|
func TestQuoteEntry(t *testing.T) {
|
||||||
type quotes struct{ E, O, SQ, DQ, BS string } // standalone escape, outer, single and double quotes, backslash
|
type quotes struct{ E, O, SQ, DQ, BS, PB string } // standalone escape, outer, single and double quotes, doubled and plain backslash
|
||||||
unixStyle := quotes{``, `'`, `'\''`, `"`, `\`}
|
unixStyle := quotes{``, `'`, `'\''`, `"`, `\`, `\`}
|
||||||
windowsStyle := quotes{`^`, `^"`, `'`, `\^"`, `\\`}
|
windowsStyle := quotes{`^`, `^"`, `'`, `\^"`, `\\`, `\`}
|
||||||
var effectiveStyle quotes
|
var effectiveStyle quotes
|
||||||
exec := util.NewExecutor("")
|
exec := util.NewExecutor("")
|
||||||
|
|
||||||
@@ -280,13 +280,13 @@ func TestQuoteEntry(t *testing.T) {
|
|||||||
`>`: `{{.O}}{{.E}}>{{.O}}`,
|
`>`: `{{.O}}{{.E}}>{{.O}}`,
|
||||||
`(`: `{{.O}}{{.E}}({{.O}}`,
|
`(`: `{{.O}}{{.E}}({{.O}}`,
|
||||||
`)`: `{{.O}}{{.E}}){{.O}}`,
|
`)`: `{{.O}}{{.E}}){{.O}}`,
|
||||||
`@`: `{{.O}}{{.E}}@{{.O}}`,
|
`@`: `{{.O}}@{{.O}}`,
|
||||||
`^`: `{{.O}}{{.E}}^{{.O}}`,
|
`^`: `{{.O}}{{.E}}^{{.O}}`,
|
||||||
`%`: `{{.O}}{{.E}}%{{.O}}`,
|
`%`: `{{.O}}{{.E}}%{{.O}}`,
|
||||||
`!`: `{{.O}}{{.E}}!{{.O}}`,
|
`!`: `{{.O}}{{.E}}!{{.O}}`,
|
||||||
`%USERPROFILE%`: `{{.O}}{{.E}}%USERPROFILE{{.E}}%{{.O}}`,
|
`%USERPROFILE%`: `{{.O}}{{.E}}%USERPROFILE{{.E}}%{{.O}}`,
|
||||||
`C:\Program Files (x86)\`: `{{.O}}C:{{.BS}}Program Files {{.E}}(x86{{.E}}){{.BS}}{{.O}}`,
|
`C:\Program Files (x86)\`: `{{.O}}C:{{.PB}}Program Files {{.E}}(x86{{.E}}){{.BS}}{{.O}}`,
|
||||||
`"C:\Program Files"`: `{{.O}}{{.DQ}}C:{{.BS}}Program Files{{.DQ}}{{.O}}`,
|
`"C:\Program Files"`: `{{.O}}{{.DQ}}C:{{.PB}}Program Files{{.DQ}}{{.O}}`,
|
||||||
}
|
}
|
||||||
|
|
||||||
for input, expected := range tests {
|
for input, expected := range tests {
|
||||||
|
|||||||
Reference in New Issue
Block a user