From cfc595e80e6817275cba136db8d727c01ecb9fb0 Mon Sep 17 00:00:00 2001 From: Zachary Yedidia Date: Fri, 12 Jun 2020 15:16:27 -0400 Subject: [PATCH] Fix MoveLines on last line of buffer Fixes #1723 Fixes #1724 --- internal/buffer/buffer.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/internal/buffer/buffer.go b/internal/buffer/buffer.go index 43b02dc4..598a9fdf 100644 --- a/internal/buffer/buffer.go +++ b/internal/buffer/buffer.go @@ -837,19 +837,18 @@ func (b *Buffer) MoveLinesUp(start int, end int) { } l := string(b.LineBytes(start - 1)) if end == len(b.lines) { - b.Insert( + b.insert( Loc{ util.CharacterCount(b.lines[end-1].data), end - 1, }, - "\n"+l, - ) - } else { - b.Insert( - Loc{0, end}, - l+"\n", + []byte{'\n'}, ) } + b.Insert( + Loc{0, end}, + l+"\n", + ) b.Remove( Loc{0, start - 1}, Loc{0, start}, @@ -858,7 +857,7 @@ func (b *Buffer) MoveLinesUp(start int, end int) { // MoveLinesDown moves the range of lines down one row func (b *Buffer) MoveLinesDown(start int, end int) { - if start < 0 || start >= end || end >= len(b.lines)-1 { + if start < 0 || start >= end || end >= len(b.lines) { return } l := string(b.LineBytes(end))