diff --git a/go.mod b/go.mod index 9e453f0f9..30d31be0f 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/imdario/mergo v0.3.11 github.com/integrii/flaggy v1.4.0 github.com/jesseduffield/go-git/v5 v5.1.2-0.20201006095850-341962be15a4 - github.com/jesseduffield/gocui v0.3.1-0.20210208224444-2eecee85583d + github.com/jesseduffield/gocui v0.3.1-0.20210329130738-e026850021e3 github.com/jesseduffield/termbox-go v0.0.0-20200823212418-a2289ed6aafe github.com/jesseduffield/yaml v2.1.0+incompatible github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 diff --git a/go.sum b/go.sum index 48561c786..806a1d317 100644 --- a/go.sum +++ b/go.sum @@ -71,6 +71,12 @@ github.com/jesseduffield/gocui v0.3.1-0.20201010224802-8a6768078fd7 h1:K3MGrjmpP github.com/jesseduffield/gocui v0.3.1-0.20201010224802-8a6768078fd7/go.mod h1:2RtZznzYKt8RLRwvFiSkXjU0Ei8WwHdubgnlaYH47dw= github.com/jesseduffield/gocui v0.3.1-0.20210208224444-2eecee85583d h1:Jto9W9w8CFwZiAYXa7LsHDEOb5cKCA1f5LOL1A3jva4= github.com/jesseduffield/gocui v0.3.1-0.20210208224444-2eecee85583d/go.mod h1:2RtZznzYKt8RLRwvFiSkXjU0Ei8WwHdubgnlaYH47dw= +github.com/jesseduffield/gocui v0.3.1-0.20210329125022-96b1d3106429 h1:Ih3UVczKRabZnQ7RisGi5uItC2QJxdqgef7AClJ2G9A= +github.com/jesseduffield/gocui v0.3.1-0.20210329125022-96b1d3106429/go.mod h1:2RtZznzYKt8RLRwvFiSkXjU0Ei8WwHdubgnlaYH47dw= +github.com/jesseduffield/gocui v0.3.1-0.20210329125502-e830abf4b73a h1:RVYf2MA/RJbodE+S0e2z++JmB9A7hD1lUsI0euv1fmA= +github.com/jesseduffield/gocui v0.3.1-0.20210329125502-e830abf4b73a/go.mod h1:2RtZznzYKt8RLRwvFiSkXjU0Ei8WwHdubgnlaYH47dw= +github.com/jesseduffield/gocui v0.3.1-0.20210329130738-e026850021e3 h1:UDiArPlzkg+8mmNjhUOamQoyiTSzQUGIpOsu5hCRJVI= +github.com/jesseduffield/gocui v0.3.1-0.20210329130738-e026850021e3/go.mod h1:2RtZznzYKt8RLRwvFiSkXjU0Ei8WwHdubgnlaYH47dw= github.com/jesseduffield/termbox-go v0.0.0-20200823212418-a2289ed6aafe h1:qsVhCf2RFyyKIUe/+gJblbCpXMUki9rZrHuEctg6M/E= github.com/jesseduffield/termbox-go v0.0.0-20200823212418-a2289ed6aafe/go.mod h1:anMibpZtqNxjDbxrcDEAwSdaJ37vyUeM1f/M4uekib4= github.com/jesseduffield/yaml v2.1.0+incompatible h1:HWQJ1gIv2zHKbDYNp0Jwjlj24K8aqpFHnMCynY1EpmE= diff --git a/vendor/github.com/jesseduffield/gocui/edit.go b/vendor/github.com/jesseduffield/gocui/edit.go index 93717f69e..8b23cdd8f 100644 --- a/vendor/github.com/jesseduffield/gocui/edit.go +++ b/vendor/github.com/jesseduffield/gocui/edit.go @@ -65,6 +65,10 @@ func simpleEditor(v *View, key Key, ch rune, mod Modifier) { // EditWrite writes a rune at the cursor position. func (v *View) EditWrite(ch rune) { w := runewidth.RuneWidth(ch) + if w == 0 { + return + } + v.writeRune(v.cx, v.cy, ch) v.moveCursor(w, 0, true) } @@ -326,6 +330,9 @@ func (v *View) moveCursor(dx, dy int, writeMode bool) { // buffer is increased if the point is out of bounds. Overwrite mode is // governed by the value of View.overwrite. func (v *View) writeRune(x, y int, ch rune) error { + v.writeMutex.Lock() + defer v.writeMutex.Unlock() + v.tainted = true x, y, err := v.realPosition(x, y) @@ -377,6 +384,9 @@ func (v *View) writeRune(x, y int, ch rune) error { // position corresponding to the point (x, y). // returns the amount of columns that where removed. func (v *View) deleteRune(x, y int) (int, error) { + v.writeMutex.Lock() + defer v.writeMutex.Unlock() + v.tainted = true x, y, err := v.realPosition(x, y) @@ -404,6 +414,9 @@ func (v *View) deleteRune(x, y int) (int, error) { // mergeLines merges the lines "y" and "y+1" if possible. func (v *View) mergeLines(y int) error { + v.writeMutex.Lock() + defer v.writeMutex.Unlock() + v.tainted = true _, y, err := v.realPosition(0, y) @@ -425,6 +438,9 @@ func (v *View) mergeLines(y int) error { // breakLine breaks a line of the internal buffer at the position corresponding // to the point (x, y). func (v *View) breakLine(x, y int) error { + v.writeMutex.Lock() + defer v.writeMutex.Unlock() + v.tainted = true x, y, err := v.realPosition(x, y) diff --git a/vendor/modules.txt b/vendor/modules.txt index 2fc989eef..4d3e93911 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -107,7 +107,7 @@ github.com/jesseduffield/go-git/v5/utils/merkletrie/filesystem github.com/jesseduffield/go-git/v5/utils/merkletrie/index github.com/jesseduffield/go-git/v5/utils/merkletrie/internal/frame github.com/jesseduffield/go-git/v5/utils/merkletrie/noder -# github.com/jesseduffield/gocui v0.3.1-0.20210208224444-2eecee85583d +# github.com/jesseduffield/gocui v0.3.1-0.20210329130738-e026850021e3 ## explicit github.com/jesseduffield/gocui # github.com/jesseduffield/termbox-go v0.0.0-20200823212418-a2289ed6aafe