[git commit] vi: ':r' should insert text after current line
Denys Vlasenko
vda.linux at googlemail.com
Mon Jun 14 18:58:17 UTC 2021
commit: https://git.busybox.net/busybox/commit/?id=f7ed0e8ae0508fafe91ae3eb20663b9f7870adda
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master
When no line number is specified ':read' should place the inserted
text after the current line, not before.
This used to be correct but was broken when commit 0c42a6b07
(vi: fix empty line range regression) revealed a bug in commit
7a8ceb4eb (vi: changes to line addresses for colon commands).
function old new delta
colon 3960 3952 -8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-8) Total: -8 bytes
Signed-off-by: Ron Yorston <rmy at pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
editors/vi.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/editors/vi.c b/editors/vi.c
index beccef4b4..7c1877bb2 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -2998,12 +2998,10 @@ static void colon(char *buf)
status_line_bold("No current filename");
goto ret;
}
- if (e < 0) { // no addr given- read after current line
- q = begin_line(dot);
- } else if (e == 0) { // user said ":0r foo"
+ if (e == 0) { // user said ":0r foo"
q = text;
- } else { // addr given- read after that line
- q = next_line(find_line(e));
+ } else { // read after given line or current line if none given
+ q = next_line(e > 0 ? find_line(e) : dot);
// read after last line
if (q == end-1)
++q;
More information about the busybox-cvs
mailing list