From 1a575bc9ae39d562a6a8ca27f79a616f3ee86ec3 Mon Sep 17 00:00:00 2001 From: Zachary Yedidia Date: Thu, 7 Sep 2017 16:44:05 -0400 Subject: [PATCH] Fix UpN if proposedY < 0 Fixes #804 --- cmd/micro/cursor.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/micro/cursor.go b/cmd/micro/cursor.go index 2b5889a0..65baa773 100644 --- a/cmd/micro/cursor.go +++ b/cmd/micro/cursor.go @@ -249,8 +249,8 @@ func (c *Cursor) RuneUnder(x int) rune { func (c *Cursor) UpN(amount int) { proposedY := c.Y - amount if proposedY < 0 { - c.X = 0 // first line: X moved before the first character - return + proposedY = 0 + c.LastVisualX = 0 } else if proposedY >= c.buf.NumLines { proposedY = c.buf.NumLines - 1 } @@ -258,7 +258,7 @@ func (c *Cursor) UpN(amount int) { runes := []rune(c.buf.Line(c.Y)) c.X = c.GetCharPosInLine(proposedY, c.LastVisualX) - if c.X > len(runes) || proposedY == c.Y { + if c.X > len(runes) { c.X = len(runes) }