summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRon Yorston2021-03-28 13:19:26 +0100
committerDenys Vlasenko2021-03-29 12:16:21 +0200
commit18871c3f2b96e76269f5c5e4bbf102808b69bd42 (patch)
tree432d5bb2e4f7a6ec9d8c0248908db915dff5a8bb
parent5ae25f40bdc839e3fb24dcb7ddd6067698bf87b0 (diff)
downloadbusybox-18871c3f2b96e76269f5c5e4bbf102808b69bd42.zip
busybox-18871c3f2b96e76269f5c5e4bbf102808b69bd42.tar.gz
vi: 'G'/'M' commands move to first visible character
The 'G' command with no target (meaning 'go to last line') should position the cursor on the first visible character of the line, as it already does in other cases. The 'M' command should position the cursor on the first visible character (as 'H' and 'L' already do). function old new delta do_cmd 4842 4853 +11 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 11/0) Total: 11 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--editors/vi.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/editors/vi.c b/editors/vi.c
index 47b13b3..f4da380 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -3596,6 +3596,7 @@ static void do_cmd(int c)
if (cmdcnt > 0) {
dot = find_line(cmdcnt); // what line is #cmdcnt
}
+ dot_begin();
dot_skip_over_ws();
break;
case 'H': // H- goto top line on screen
@@ -3652,6 +3653,7 @@ static void do_cmd(int c)
dot = screenbegin;
for (cnt = 0; cnt < (rows-1) / 2; cnt++)
dot = next_line(dot);
+ dot_skip_over_ws();
break;
case 'O': // O- open a empty line above
// 0i\n ESC -i