summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRon Yorston2021-05-01 13:15:30 +0100
committerDenys Vlasenko2021-05-04 14:51:48 +0200
commit8e71f2aab8f9f893be7741af21a7c689cf165c66 (patch)
tree0e3d40f6be30deb895ded0a738008d62ed213dbb
parent24effc7a3f32b3d4e78779473ddc683848ac3cb0 (diff)
downloadbusybox-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.c17
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;
}
}