1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-01-04 03:48:07 +02:00

NormalizeLinefeeds removes rather than converts Window/Mac style lf's

This commit is contained in:
Tommy Nguyen 2018-08-19 08:48:03 -04:00
parent d2bdac29aa
commit 766197de9d
No known key found for this signature in database
GPG Key ID: DB7FA8161647D196
3 changed files with 15 additions and 13 deletions

View File

@ -219,7 +219,8 @@ func (gui *Gui) renderString(g *gocui.Gui, viewName, s string) error {
return nil
}
v.Clear()
output := utils.NormalizeLinefeeds(string(bom.Clean([]byte(s))))
output := string(bom.Clean([]byte(s)))
output = utils.NormalizeLinefeeds(s)
fmt.Fprint(v, output)
v.Wrap = true
return nil

View File

@ -64,9 +64,10 @@ func TrimTrailingNewline(str string) string {
return str
}
// NormalizeLinefeeds - Removes all Windows and Mac style line feeds
func NormalizeLinefeeds(str string) string {
str = strings.Replace(str, "\r\n", "\n", -1)
str = strings.Replace(str, "\r", "\n", -1)
str = strings.Replace(str, "\r\n", "", -1)
str = strings.Replace(str, "\r", "", -1)
return str
}

View File

@ -3,32 +3,32 @@ package utils
import "testing"
var testCases = []struct {
Input []byte
Input []byte
Expected []byte
}{
{
// \r\n
Input: []byte{97, 115, 100, 102, 13, 10},
Expected: []byte{97, 115, 100, 102, 10},
Input: []byte{97, 115, 100, 102, 13, 10},
Expected: []byte{97, 115, 100, 102},
},
{
// \r
Input: []byte{97, 115, 100, 102, 13},
Expected: []byte{97, 115, 100, 102, 10},
Input: []byte{97, 115, 100, 102, 13},
Expected: []byte{97, 115, 100, 102},
},
{
// \n
Input: []byte{97, 115, 100, 102, 10},
Input: []byte{97, 115, 100, 102, 10},
Expected: []byte{97, 115, 100, 102, 10},
},
}
func TestNormalizeLinefeeds(t *testing.T) {
for _, tc := range testCases {
if NormalizeLinefeeds(string(tc.Input)) != string(tc.Expected) {
t.Error("Error")
input := NormalizeLinefeeds(string(tc.Input))
expected := string(tc.Expected)
if input != expected {
t.Error("Expected " + expected + ", got " + input)
}
}
}