From 67bc2765892daf7f385ec91fe03c20d0803287a4 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Mon, 14 Jan 2019 13:32:11 +0000 Subject: [PATCH] bug fix: Erase To Cursor should be inclusive --- buffer/buffer.go | 8 ++++---- buffer/buffer_test.go | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/buffer/buffer.go b/buffer/buffer.go index b69c632..edd1e50 100644 --- a/buffer/buffer.go +++ b/buffer/buffer.go @@ -489,8 +489,8 @@ func (buffer *Buffer) insertLine() { out := make([]Line, newLineCount) copy( - out[ : pos - ( uint64(len(buffer.lines)) + 1 - newLineCount )], - buffer.lines[ uint64(len(buffer.lines)) + 1 - newLineCount : pos] ) + out[:pos-(uint64(len(buffer.lines))+1-newLineCount)], + buffer.lines[uint64(len(buffer.lines))+1-newLineCount:pos]) out[pos] = newLine() copy(out[pos+1:], buffer.lines[pos:]) buffer.lines = out @@ -587,7 +587,7 @@ func (buffer *Buffer) Index() { buffer.lines = append(buffer.lines, newLine()) maxLines := buffer.getMaxLines() 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 { buffer.cursorY++ @@ -924,7 +924,7 @@ func (buffer *Buffer) EraseDisplayToCursor() { defer buffer.emitDisplayChange() line := buffer.getCurrentLine() - for i := 0; i < int(buffer.cursorX); i++ { + for i := 0; i <= int(buffer.cursorX); i++ { if i >= len(line.cells) { break } diff --git a/buffer/buffer_test.go b/buffer/buffer_test.go index 523635c..1b48f2e 100644 --- a/buffer/buffer_test.go +++ b/buffer/buffer_test.go @@ -508,7 +508,7 @@ func TestEraseDisplayToCursor(t *testing.T) { lines := b.GetVisibleLines() assert.Equal(t, "", lines[0].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, "funny", b.lines[0].String()) assert.Equal(t, "world", b.lines[1].String()) -} \ No newline at end of file +}