vi: don't move cursor when yanking whole lines
When whole lines are yanked using 'yy' or 'Y' vi doesn't change the cursor position. Make BusyBox vi do the same. function old new delta do_cmd 4776 4786 +10 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 10/0) Total: 10 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
38ae0f3e3e
commit
d6e653d667
@ -3934,6 +3934,7 @@ static void do_cmd(int c)
|
|||||||
# endif
|
# endif
|
||||||
if (c == 'y' || c == 'Y')
|
if (c == 'y' || c == 'Y')
|
||||||
yf = YANKONLY;
|
yf = YANKONLY;
|
||||||
|
save_dot = dot;
|
||||||
#endif
|
#endif
|
||||||
// determine range, and whether it spans lines
|
// determine range, and whether it spans lines
|
||||||
buftype = find_range(&p, &q, c);
|
buftype = find_range(&p, &q, c);
|
||||||
@ -3951,6 +3952,11 @@ static void do_cmd(int c)
|
|||||||
dot_begin();
|
dot_begin();
|
||||||
dot_skip_over_ws();
|
dot_skip_over_ws();
|
||||||
}
|
}
|
||||||
|
#if ENABLE_FEATURE_VI_YANKMARK
|
||||||
|
else /* (c == 'y' || c == 'Y') */ {
|
||||||
|
dot = save_dot;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
// if CHANGING, not deleting, start inserting after the delete
|
// if CHANGING, not deleting, start inserting after the delete
|
||||||
if (c == 'c') {
|
if (c == 'c') {
|
||||||
|
Loading…
Reference in New Issue
Block a user