diff options
-rw-r--r-- | src/option.c | 19 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/option.c b/src/option.c index 6177daf18..b4beef1c8 100644 --- a/src/option.c +++ b/src/option.c @@ -8219,6 +8219,25 @@ set_option_value(name, number, string, opt_flags) varp = get_varp(&options[opt_idx]); if (varp != NULL) /* hidden option is not changed */ { + if (number == 0 && string != NULL) + { + int index; + + /* Either we are given a string or we are setting option + * to zero. */ + for (index = 0; string[index] == '0'; ++index) + ; + if (string[index] != NUL || index == 0) + { + /* There's another character after zeros or the string + * is empty. In both cases, we are trying to set a + * num option using a string. */ + EMSG3(_("E521: Number required: &%s = '%s'"), + name, string); + return; /* do nothing as we hit an error */ + + } + } if (flags & P_NUM) (void)set_num_option(opt_idx, varp, number, NULL, 0, opt_flags); diff --git a/src/version.c b/src/version.c index 831db0f1c..85402c349 100644 --- a/src/version.c +++ b/src/version.c @@ -667,6 +667,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 12, +/**/ 11, /**/ 10, |