summaryrefslogtreecommitdiff
path: root/src/option.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/option.c')
-rw-r--r--src/option.c19
1 files changed, 19 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);