From 3080e32a8faf88af38ccf7d1b7193360cc863cd6 Mon Sep 17 00:00:00 2001 From: Zachary Yedidia Date: Wed, 8 Jun 2016 10:21:27 -0400 Subject: [PATCH] Fix multiline remove in lineArray I forgot that when you remove lines[n] then lines[n+1] becomes lines[n] so to remove the range lines[a:b] you need to remove lines[a] for a-b times. In this case we should delete lines[start.Y + 1] over and over instead of removing lines[i] because i is contantly increasing. Fixes #166 --- cmd/micro/lineArray.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/micro/lineArray.go b/cmd/micro/lineArray.go index 6b5746ec..c6e093ab 100644 --- a/cmd/micro/lineArray.go +++ b/cmd/micro/lineArray.go @@ -92,7 +92,7 @@ func (la *LineArray) remove(start, end Loc) string { la.lines[start.Y] = append(la.lines[start.Y][:startX], la.lines[start.Y][endX:]...) } else { for i := start.Y + 1; i <= end.Y-1; i++ { - la.DeleteLine(i) + la.DeleteLine(start.Y + 1) } la.DeleteToEnd(Loc{startX, start.Y}) la.DeleteFromStart(Loc{endX - 1, start.Y + 1})