vi: make cursor positioning more vi compatible
Commit 24effc7a3 (vi: cursor positioning after whole-line 'y') tried to save a few bytes by treating whole-line deletion the same as whole-line yank. If the deletion removed the last lines of the file the cursor was left beyond the end of the file. Revert the part of the commit related to whole-line deletion. Position the cursor on the first non-whitespace character of the line when whole lines are 'put'. function old new delta do_cmd 4759 4781 +22 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 22/0) Total: 22 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
f193aeac1f
commit
d95f89ec57
@ -3717,6 +3717,7 @@ static void do_cmd(int c)
|
||||
# endif
|
||||
} while (--cmdcnt > 0);
|
||||
dot += cnt;
|
||||
dot_skip_over_ws();
|
||||
# if ENABLE_FEATURE_VI_YANKMARK && ENABLE_FEATURE_VI_VERBOSE_STATUS
|
||||
yank_status("Put", p, i);
|
||||
# endif
|
||||
@ -4172,6 +4173,9 @@ static void do_cmd(int c)
|
||||
if (dot != (end-1)) {
|
||||
dot_prev();
|
||||
}
|
||||
} else if (c == 'd') {
|
||||
dot_begin();
|
||||
dot_skip_over_ws();
|
||||
} else {
|
||||
dot = save_dot;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user