From 5335c60d6c975dd6f6b8be016397e024d25303ed Mon Sep 17 00:00:00 2001 From: Zachary Yedidia Date: Wed, 2 Jan 2019 17:48:50 -0500 Subject: [PATCH] Fix sub bug --- cmd/micro/buffer/line_array.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cmd/micro/buffer/line_array.go b/cmd/micro/buffer/line_array.go index b52d4da8..3a421076 100644 --- a/cmd/micro/buffer/line_array.go +++ b/cmd/micro/buffer/line_array.go @@ -242,7 +242,10 @@ func (la *LineArray) Substr(start, end Loc) []byte { startX := runeToByteIndex(start.X, la.lines[start.Y].data) endX := runeToByteIndex(end.X, la.lines[end.Y].data) if start.Y == end.Y { - return la.lines[start.Y].data[startX:endX] + src := la.lines[start.Y].data[startX:endX] + dest := make([]byte, len(src)) + copy(dest, src) + return dest } str := make([]byte, 0, len(la.lines[start.Y+1].data)*(end.Y-start.Y)) str = append(str, la.lines[start.Y].data[startX:]...)