mirror of https://github.com/liamg/aminal.git
bug fix: Erase To Cursor should be inclusive
This commit is contained in:
parent
3c7b325fe5
commit
67bc276589
|
@ -489,8 +489,8 @@ func (buffer *Buffer) insertLine() {
|
||||||
|
|
||||||
out := make([]Line, newLineCount)
|
out := make([]Line, newLineCount)
|
||||||
copy(
|
copy(
|
||||||
out[ : pos - ( uint64(len(buffer.lines)) + 1 - newLineCount )],
|
out[:pos-(uint64(len(buffer.lines))+1-newLineCount)],
|
||||||
buffer.lines[ uint64(len(buffer.lines)) + 1 - newLineCount : pos] )
|
buffer.lines[uint64(len(buffer.lines))+1-newLineCount:pos])
|
||||||
out[pos] = newLine()
|
out[pos] = newLine()
|
||||||
copy(out[pos+1:], buffer.lines[pos:])
|
copy(out[pos+1:], buffer.lines[pos:])
|
||||||
buffer.lines = out
|
buffer.lines = out
|
||||||
|
@ -587,7 +587,7 @@ func (buffer *Buffer) Index() {
|
||||||
buffer.lines = append(buffer.lines, newLine())
|
buffer.lines = append(buffer.lines, newLine())
|
||||||
maxLines := buffer.getMaxLines()
|
maxLines := buffer.getMaxLines()
|
||||||
if uint64(len(buffer.lines)) > maxLines {
|
if uint64(len(buffer.lines)) > maxLines {
|
||||||
buffer.lines = buffer.lines[ uint64(len(buffer.lines)) - maxLines : ]
|
buffer.lines = buffer.lines[uint64(len(buffer.lines))-maxLines:]
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
buffer.cursorY++
|
buffer.cursorY++
|
||||||
|
@ -924,7 +924,7 @@ func (buffer *Buffer) EraseDisplayToCursor() {
|
||||||
defer buffer.emitDisplayChange()
|
defer buffer.emitDisplayChange()
|
||||||
line := buffer.getCurrentLine()
|
line := buffer.getCurrentLine()
|
||||||
|
|
||||||
for i := 0; i < int(buffer.cursorX); i++ {
|
for i := 0; i <= int(buffer.cursorX); i++ {
|
||||||
if i >= len(line.cells) {
|
if i >= len(line.cells) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
|
@ -508,7 +508,7 @@ func TestEraseDisplayToCursor(t *testing.T) {
|
||||||
lines := b.GetVisibleLines()
|
lines := b.GetVisibleLines()
|
||||||
assert.Equal(t, "", lines[0].String())
|
assert.Equal(t, "", lines[0].String())
|
||||||
assert.Equal(t, "", lines[1].String())
|
assert.Equal(t, "", lines[1].String())
|
||||||
assert.Equal(t, "\x00\x00\x00ng", lines[2].String())
|
assert.Equal(t, "\x00\x00\x00\x00g", lines[2].String())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -634,4 +634,4 @@ func TestBufferMaxLines(t *testing.T) {
|
||||||
assert.Equal(t, 2, len(b.lines))
|
assert.Equal(t, 2, len(b.lines))
|
||||||
assert.Equal(t, "funny", b.lines[0].String())
|
assert.Equal(t, "funny", b.lines[0].String())
|
||||||
assert.Equal(t, "world", b.lines[1].String())
|
assert.Equal(t, "world", b.lines[1].String())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue