From e6ea96f995f4142b169944bfaa9958bb90596c52 Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Mon, 22 Sep 2025 07:02:20 +0100 Subject: [PATCH] fix bug in 'k' motion: when we move from any other line to line 0, always unconditionally decrement column by 1 --- fcore/normal-mode/normal-move.sml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/fcore/normal-mode/normal-move.sml b/fcore/normal-mode/normal-move.sml index daf57b6..0099df3 100644 --- a/fcore/normal-mode/normal-move.sml +++ b/fcore/normal-mode/normal-move.sml @@ -209,13 +209,12 @@ struct val cursorLineNumber = LineGap.idxToLineNumber (cursorIdx, buffer) val newCursorLineNumber = Int.max (cursorLineNumber - count, 0) - val column = cursorIdx - startOfLine - val column = - if newCursorLineNumber = 0 then Int.max (column - 1, 0) else column - val buffer = LineGap.goToLine (newCursorLineNumber, buffer) val lineIdx = LineGap.lineNumberToIdx (newCursorLineNumber, buffer) + 1 + + val column = cursorIdx - startOfLine + val column = if newCursorLineNumber = 0 then column - 1 else column in finishMoveCursorUpDown (app, newCursorLineNumber, buffer, column, lineIdx)