[PATCH] vi: ':r' should insert text after current line
Ron Yorston
rmy at pobox.com
Wed Jun 9 15:11:03 UTC 2021
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>
---
editors/vi.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/editors/vi.c b/editors/vi.c
index d85cdd98d..05a3795a3 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -2997,12 +2997,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;
--
2.31.1
More information about the busybox
mailing list