aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/optionstr.c44
1 files changed, 32 insertions, 12 deletions
diff --git a/src/nvim/optionstr.c b/src/nvim/optionstr.c
index 2bd45b237f..1400b9652c 100644
--- a/src/nvim/optionstr.c
+++ b/src/nvim/optionstr.c
@@ -1467,6 +1467,34 @@ static void did_set_foldmarker(win_T *win, char **varp, char **errmsg)
}
}
+static void did_set_commentstring(char **varp, char **errmsg)
+{
+ if (**varp != NUL && strstr(*varp, "%s") == NULL) {
+ *errmsg = N_("E537: 'commentstring' must be empty or contain %s");
+ }
+}
+
+static void did_set_foldopen(char **errmsg)
+{
+ if (opt_strings_flags(p_fdo, p_fdo_values, &fdo_flags, true) != OK) {
+ *errmsg = e_invarg;
+ }
+}
+
+static void did_set_foldclose(char **errmsg)
+{
+ if (check_opt_strings(p_fcl, p_fcl_values, true) != OK) {
+ *errmsg = e_invarg;
+ }
+}
+
+static void did_set_foldignore(win_T *win)
+{
+ if (foldmethodIsIndent(win)) {
+ foldUpdateAll(win);
+ }
+}
+
static void did_set_virtualedit(win_T *win, int opt_flags, char *oldval, char **errmsg)
{
char *ve = p_ve;
@@ -1844,21 +1872,13 @@ char *did_set_string_option(int opt_idx, char **varp, char *oldval, char *errbuf
} else if (gvarp == &curwin->w_allbuf_opt.wo_fmr) { // 'foldmarker'
did_set_foldmarker(curwin, varp, &errmsg);
} else if (gvarp == &p_cms) { // 'commentstring'
- if (**varp != NUL && strstr(*varp, "%s") == NULL) {
- errmsg = N_("E537: 'commentstring' must be empty or contain %s");
- }
+ did_set_commentstring(varp, &errmsg);
} else if (varp == &p_fdo) { // 'foldopen'
- if (opt_strings_flags(p_fdo, p_fdo_values, &fdo_flags, true) != OK) {
- errmsg = e_invarg;
- }
+ did_set_foldopen(&errmsg);
} else if (varp == &p_fcl) { // 'foldclose'
- if (check_opt_strings(p_fcl, p_fcl_values, true) != OK) {
- errmsg = e_invarg;
- }
+ did_set_foldclose(&errmsg);
} else if (gvarp == &curwin->w_allbuf_opt.wo_fdi) { // 'foldignore'
- if (foldmethodIsIndent(curwin)) {
- foldUpdateAll(curwin);
- }
+ did_set_foldignore(curwin);
} else if (gvarp == &p_ve) { // 'virtualedit'
did_set_virtualedit(curwin, opt_flags, oldval, &errmsg);
} else if (gvarp == &p_cino) { // 'cinoptions'