aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2018-12-25 20:46:55 +0100
committerMichael Muré <batolettre@gmail.com>2018-12-25 20:49:54 +0100
commitebcf3a75879360ee64c5ea9ce3dafcc766f16e88 (patch)
treec8c2c0ce6de867ec6754ff5ba4e552776480d6cd /vendor/github.com
parent60d44f750ed7929e90a394e232f069e47bc78170 (diff)
downloadgit-bug-ebcf3a75879360ee64c5ea9ce3dafcc766f16e88.tar.gz
termui: use a forked gocui to fix large character handling
Diffstat (limited to 'vendor/github.com')
-rw-r--r--vendor/github.com/MichaelMure/gocui/.gitignore (renamed from vendor/github.com/jroimartin/gocui/.gitignore)0
-rw-r--r--vendor/github.com/MichaelMure/gocui/AUTHORS (renamed from vendor/github.com/jroimartin/gocui/AUTHORS)0
-rw-r--r--vendor/github.com/MichaelMure/gocui/LICENSE (renamed from vendor/github.com/jroimartin/gocui/LICENSE)0
-rw-r--r--vendor/github.com/MichaelMure/gocui/README.md (renamed from vendor/github.com/jroimartin/gocui/README.md)0
-rw-r--r--vendor/github.com/MichaelMure/gocui/attribute.go (renamed from vendor/github.com/jroimartin/gocui/attribute.go)0
-rw-r--r--vendor/github.com/MichaelMure/gocui/doc.go (renamed from vendor/github.com/jroimartin/gocui/doc.go)0
-rw-r--r--vendor/github.com/MichaelMure/gocui/edit.go (renamed from vendor/github.com/jroimartin/gocui/edit.go)27
-rw-r--r--vendor/github.com/MichaelMure/gocui/escape.go (renamed from vendor/github.com/jroimartin/gocui/escape.go)0
-rw-r--r--vendor/github.com/MichaelMure/gocui/gui.go (renamed from vendor/github.com/jroimartin/gocui/gui.go)0
-rw-r--r--vendor/github.com/MichaelMure/gocui/keybinding.go (renamed from vendor/github.com/jroimartin/gocui/keybinding.go)0
-rw-r--r--vendor/github.com/MichaelMure/gocui/view.go (renamed from vendor/github.com/jroimartin/gocui/view.go)3
11 files changed, 18 insertions, 12 deletions
diff --git a/vendor/github.com/jroimartin/gocui/.gitignore b/vendor/github.com/MichaelMure/gocui/.gitignore
index 1377554e..1377554e 100644
--- a/vendor/github.com/jroimartin/gocui/.gitignore
+++ b/vendor/github.com/MichaelMure/gocui/.gitignore
diff --git a/vendor/github.com/jroimartin/gocui/AUTHORS b/vendor/github.com/MichaelMure/gocui/AUTHORS
index 43ec4cec..43ec4cec 100644
--- a/vendor/github.com/jroimartin/gocui/AUTHORS
+++ b/vendor/github.com/MichaelMure/gocui/AUTHORS
diff --git a/vendor/github.com/jroimartin/gocui/LICENSE b/vendor/github.com/MichaelMure/gocui/LICENSE
index 8cb28215..8cb28215 100644
--- a/vendor/github.com/jroimartin/gocui/LICENSE
+++ b/vendor/github.com/MichaelMure/gocui/LICENSE
diff --git a/vendor/github.com/jroimartin/gocui/README.md b/vendor/github.com/MichaelMure/gocui/README.md
index d7b55a3b..d7b55a3b 100644
--- a/vendor/github.com/jroimartin/gocui/README.md
+++ b/vendor/github.com/MichaelMure/gocui/README.md
diff --git a/vendor/github.com/jroimartin/gocui/attribute.go b/vendor/github.com/MichaelMure/gocui/attribute.go
index bad758a1..bad758a1 100644
--- a/vendor/github.com/jroimartin/gocui/attribute.go
+++ b/vendor/github.com/MichaelMure/gocui/attribute.go
diff --git a/vendor/github.com/jroimartin/gocui/doc.go b/vendor/github.com/MichaelMure/gocui/doc.go
index fe128afb..fe128afb 100644
--- a/vendor/github.com/jroimartin/gocui/doc.go
+++ b/vendor/github.com/MichaelMure/gocui/doc.go
diff --git a/vendor/github.com/jroimartin/gocui/edit.go b/vendor/github.com/MichaelMure/gocui/edit.go
index e1b19c20..de86580f 100644
--- a/vendor/github.com/jroimartin/gocui/edit.go
+++ b/vendor/github.com/MichaelMure/gocui/edit.go
@@ -4,7 +4,11 @@
package gocui
-import "errors"
+import (
+ "errors"
+
+ "github.com/mattn/go-runewidth"
+)
const maxInt = int(^uint(0) >> 1)
@@ -55,7 +59,7 @@ func simpleEditor(v *View, key Key, ch rune, mod Modifier) {
// EditWrite writes a rune at the cursor position.
func (v *View) EditWrite(ch rune) {
v.writeRune(v.cx, v.cy, ch)
- v.MoveCursor(1, 0, true)
+ v.MoveCursor(runewidth.RuneWidth(ch), 0, true)
}
// EditDelete deletes a rune at the cursor position. back determines the
@@ -89,12 +93,12 @@ func (v *View) EditDelete(back bool) {
v.MoveCursor(-1, 0, true)
}
} else { // wrapped line
- v.deleteRune(len(v.viewLines[y-1].line)-1, v.cy-1)
- v.MoveCursor(-1, 0, true)
+ ch, _ := v.deleteRune(len(v.viewLines[y-1].line)-1, v.cy-1)
+ v.MoveCursor(0-runewidth.RuneWidth(ch), 0, true)
}
} else { // middle/end of the line
- v.deleteRune(v.cx-1, v.cy)
- v.MoveCursor(-1, 0, true)
+ ch, _ := v.deleteRune(v.cx-1, v.cy)
+ v.MoveCursor(0-runewidth.RuneWidth(ch), 0, true)
}
} else {
if x == len(v.viewLines[y].line) { // end of the line
@@ -275,19 +279,20 @@ func (v *View) writeRune(x, y int, ch rune) error {
// deleteRune removes a rune from the view's internal buffer, at the
// position corresponding to the point (x, y).
-func (v *View) deleteRune(x, y int) error {
+func (v *View) deleteRune(x, y int) (ch rune, err error) {
v.tainted = true
- x, y, err := v.realPosition(x, y)
+ x, y, err = v.realPosition(x, y)
if err != nil {
- return err
+ return 0, err
}
if x < 0 || y < 0 || y >= len(v.lines) || x >= len(v.lines[y]) {
- return errors.New("invalid point")
+ return 0, errors.New("invalid point")
}
+ chx := v.lines[y][x]
v.lines[y] = append(v.lines[y][:x], v.lines[y][x+1:]...)
- return nil
+ return chx.chr, nil
}
// mergeLines merges the lines "y" and "y+1" if possible.
diff --git a/vendor/github.com/jroimartin/gocui/escape.go b/vendor/github.com/MichaelMure/gocui/escape.go
index ec31bbe0..ec31bbe0 100644
--- a/vendor/github.com/jroimartin/gocui/escape.go
+++ b/vendor/github.com/MichaelMure/gocui/escape.go
diff --git a/vendor/github.com/jroimartin/gocui/gui.go b/vendor/github.com/MichaelMure/gocui/gui.go
index 9499d3c3..9499d3c3 100644
--- a/vendor/github.com/jroimartin/gocui/gui.go
+++ b/vendor/github.com/MichaelMure/gocui/gui.go
diff --git a/vendor/github.com/jroimartin/gocui/keybinding.go b/vendor/github.com/MichaelMure/gocui/keybinding.go
index 03fe677c..03fe677c 100644
--- a/vendor/github.com/jroimartin/gocui/keybinding.go
+++ b/vendor/github.com/MichaelMure/gocui/keybinding.go
diff --git a/vendor/github.com/jroimartin/gocui/view.go b/vendor/github.com/MichaelMure/gocui/view.go
index 42082f8c..d7943497 100644
--- a/vendor/github.com/jroimartin/gocui/view.go
+++ b/vendor/github.com/MichaelMure/gocui/view.go
@@ -10,6 +10,7 @@ import (
"io"
"strings"
+ "github.com/mattn/go-runewidth"
"github.com/nsf/termbox-go"
)
@@ -353,7 +354,7 @@ func (v *View) draw() error {
if err := v.setRune(x, y, c.chr, fgColor, bgColor); err != nil {
return err
}
- x++
+ x += runewidth.RuneWidth(c.chr)
}
y++
}