diff --git a/client/lib/lib.go b/client/lib/lib.go index 469fb60..63f7fa4 100644 --- a/client/lib/lib.go +++ b/client/lib/lib.go @@ -1274,13 +1274,11 @@ func containsUnescaped(query string, token string) bool { } func stripBackslash(query string) string { - runeQuery := []rune(query) var newQuery []rune - for i := 0; i < len(runeQuery); i++ { - if runeQuery[i] == '\\' && i+1 < len(runeQuery) { - i++ + for _, char := range query { + if char != '\\' { + newQuery = append(newQuery, char) } - newQuery = append(newQuery, runeQuery[i]) } return string(newQuery) } diff --git a/client/lib/lib_test.go b/client/lib/lib_test.go index f907eb5..ef30631 100644 --- a/client/lib/lib_test.go +++ b/client/lib/lib_test.go @@ -489,6 +489,9 @@ func TestStripBackslash(t *testing.T) { {"f \\bar", "f bar"}, {"f\\:bar", "f:bar"}, {"f\\:bar\\", "f:bar"}, + {"\\f\\:bar\\", "f:bar"}, + {"", ""}, + {"\\\\", ""}, } for _, tc := range testcases { actual := stripBackslash(tc.input)