1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-03-21 21:47:32 +02:00

Factor out into NormalizeLinefeeds; add tests

This commit is contained in:
Tommy Nguyen 2018-08-19 07:20:50 -04:00
parent b46d174f70
commit cea736e6e9
No known key found for this signature in database
GPG Key ID: DB7FA8161647D196
4 changed files with 54 additions and 2 deletions

View File

@ -7,6 +7,7 @@ import (
"time"
"github.com/jesseduffield/gocui"
"github.com/jesseduffield/lazygit/pkg/utils"
"github.com/spkg/bom"
)
@ -218,8 +219,7 @@ func (gui *Gui) renderString(g *gocui.Gui, viewName, s string) error {
return nil
}
v.Clear()
output := string(bom.Clean([]byte(s)))
output = strings.Replace(output, "\r", "\r\n", -1)
output := utils.NormalizeLinefeeds(string(bom.Clean([]byte(s))))
fmt.Fprint(v, output)
v.Wrap = true
return nil

View File

@ -63,3 +63,9 @@ func TrimTrailingNewline(str string) string {
}
return str
}
func NormalizeLinefeeds(str string) string {
str = strings.Replace(str, "\r\n", "\n", -1)
str = strings.Replace(str, "\r", "\n", -1)
return str
}

34
pkg/utils/utils_test.go Normal file
View File

@ -0,0 +1,34 @@
package utils
import "testing"
var testCases = []struct {
Input []byte
Expected []byte
}{
{
// \r\n
Input: []byte{97, 115, 100, 102, 13, 10},
Expected: []byte{97, 115, 100, 102, 10},
},
{
// \r
Input: []byte{97, 115, 100, 102, 13},
Expected: []byte{97, 115, 100, 102, 10},
},
{
// \n
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")
}
}
}

View File

@ -3,6 +3,18 @@ set -ex; rm -rf repo; mkdir repo; cd repo
git init
cat <<EOT >> windowslf.txt
asdf
asdf
EOT
unix2dos windowslf.txt
cat <<EOT >> linuxlf.txt
asdf
asdf
EOT
cat <<EOT >> bomtest.txt
A,B,C,D,E
F,G,H,I,J