1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-10-28 04:14:56 +03:00

#158: escapes backticks, which is a problem in shells like Bash

This commit is contained in:
Tommy Nguyen
2018-08-15 23:55:55 -04:00
parent 59ab38fff6
commit ee4660af97
2 changed files with 19 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ import (
"os" "os"
"os/exec" "os/exec"
"runtime" "runtime"
"regexp"
"github.com/davecgh/go-spew/spew" "github.com/davecgh/go-spew/spew"
@@ -170,5 +171,7 @@ func (c *OSCommand) PrepareSubProcess(cmdName string, commandArgs ...string) (*e
// Quote wraps a message in platform-specific quotation marks // Quote wraps a message in platform-specific quotation marks
func (c *OSCommand) Quote(message string) string { func (c *OSCommand) Quote(message string) string {
r := regexp.MustCompile("`")
message = r.ReplaceAllString(message, "\\`")
return c.Platform.escapedQuote + message + c.Platform.escapedQuote return c.Platform.escapedQuote + message + c.Platform.escapedQuote
} }

16
pkg/commands/os_test.go Normal file
View File

@@ -0,0 +1,16 @@
package commands
import "testing"
func TestQuote(t *testing.T) {
osCommand := &OSCommand {
Log: nil,
Platform: getPlatform(),
}
test := "hello `test`"
expected := osCommand.Platform.escapedQuote + "hello \\`test\\`" + osCommand.Platform.escapedQuote
test = osCommand.Quote(test)
if test != expected {
t.Error("Expected " + expected + ", got " + test)
}
}