[git commit] vi: warn about range in ':!' command

Denys Vlasenko vda.linux at googlemail.com
Tue Oct 7 08:05:08 UTC 2025


commit: https://git.busybox.net/busybox/commit/?id=9443b0bc5efa33832a17567f98f8a950e29afbec
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Currently vi in Busybox doesn't support filtering text through an
external command with ':1,2!cmd'.  Instead it behaves as if no
range had been supplied and displays the output of the command.

Issue a warning and do nothing in such cases.

function                                             old     new   delta
colon                                               3993    4010     +17

Signed-off-by: Ron Yorston <rmy at pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 editors/vi.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/editors/vi.c b/editors/vi.c
index 34932f60c..f48bcf514 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -2951,6 +2951,10 @@ static void colon(char *buf)
 	else if (cmd[0] == '!') {	// run a cmd
 		int retcode;
 		// :!ls   run the <cmd>
+		if (GOT_ADDRESS) {
+			status_line_bold("Range not allowed");
+			goto ret;
+		}
 		exp = expand_args(buf + 1);
 		if (exp == NULL)
 			goto ret;


More information about the busybox-cvs mailing list