Fixes bug where commands after the first noXXX command are ignored.
    e.g. :set noic tabstop=4
---
 editors/vi.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/editors/vi.c b/editors/vi.c
index 458ca6293..2010cd491 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -2709,7 +2709,6 @@ static void colon(char *buf)
 #  if ENABLE_FEATURE_VI_SETOPTS
                char *argp;
 #  endif
-               i = 0;                  // offset into args
                // only blank is regarded as args delimiter. What about tab 
'\t'?
                if (!args[0] || strcasecmp(args, "all") == 0) {
                        // print out values of all options
@@ -2732,8 +2731,11 @@ static void colon(char *buf)
 #  if ENABLE_FEATURE_VI_SETOPTS
                argp = args;
                while (*argp) {
-                       if (strncmp(argp, "no", 2) == 0)
+                       if (strncmp(argp, "no", 2) == 0) {
                                i = 2;          // ":set noautoindent"
+                       } else {
+                               i = 0;
+                       }
                        setops(argp, "autoindent ", i, "ai", VI_AUTOINDENT);
                        setops(argp, "flash "     , i, "fl", VI_ERR_METHOD);
                        setops(argp, "ignorecase ", i, "ic", VI_IGNORECASE);
--
2.30.1

_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to