[git commit] vi: revert change in how "end of file list" is deteced - fixes 'q' in bare "vi"

Denys Vlasenko vda.linux at googlemail.com
Wed Apr 3 14:35:23 UTC 2019


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

function                                             old     new   delta
vi_main                                              273     272      -1
colon                                               2853    2852      -1
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-2)               Total: -2 bytes

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

diff --git a/editors/vi.c b/editors/vi.c
index 38177dec4..c4360f8d3 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -2625,7 +2625,7 @@ static void colon(char *buf)
 		if (useforce) {
 			if (*cmd == 'q') {
 				// force end of argv list
-				optind = cmdline_filecnt - 1;
+				optind = cmdline_filecnt;
 			}
 			editing = 0;
 			goto ret;
@@ -4384,7 +4384,7 @@ int vi_main(int argc, char **argv)
 		edit_file(argv[optind]); // might be NULL on 1st iteration
 		// NB: optind can be changed by ":next" and ":rewind" commands
 		optind++;
-		if (!argv[optind])
+		if (optind >= cmdline_filecnt)
 			break;
 	}
 	// "Use normal screen buffer, restore cursor"


More information about the busybox-cvs mailing list