diff options
author | Ron Yorston | 2021-05-01 13:15:30 +0100 |
---|---|---|
committer | Denys Vlasenko | 2021-05-04 14:51:48 +0200 |
commit | 8e71f2aab8f9f893be7741af21a7c689cf165c66 (patch) | |
tree | 0e3d40f6be30deb895ded0a738008d62ed213dbb | |
parent | 24effc7a3f32b3d4e78779473ddc683848ac3cb0 (diff) | |
download | busybox-8e71f2aab8f9f893be7741af21a7c689cf165c66.zip busybox-8e71f2aab8f9f893be7741af21a7c689cf165c66.tar.gz |
vi: :wq/:x should warn if there are more files to edit
':wq' or ':x' should issue a warning if there are more files to edit,
unless they're followed by '!'.
function old new delta
colon 3911 3960 +49
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 49/0) Total: 49 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | editors/vi.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/editors/vi.c b/editors/vi.c index c7e7c67..4a7f8c3 100644 --- a/editors/vi.c +++ b/editors/vi.c @@ -3181,9 +3181,20 @@ static void colon(char *buf) modified_count = 0; last_modified_count = -1; } - if (cmd[0] == 'x' - || cmd[1] == 'q' || cmd[1] == 'n' - ) { + if (cmd[1] == 'n') { + editing = 0; + } else if (cmd[0] == 'x' || cmd[1] == 'q') { + // are there other files to edit? + int n = cmdline_filecnt - optind - 1; + if (n > 0) { + if (useforce) { + // force end of argv list + optind = cmdline_filecnt; + } else { + status_line_bold("%u more file(s) to edit", n); + goto ret; + } + } editing = 0; } } |