diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/optionstr.c | 91 |
1 files changed, 13 insertions, 78 deletions
diff --git a/src/nvim/optionstr.c b/src/nvim/optionstr.c index 9cd4837a5f..b35b318f02 100644 --- a/src/nvim/optionstr.c +++ b/src/nvim/optionstr.c @@ -726,18 +726,16 @@ static void did_set_highlight(char **varp, char **errmsg) } } -static void did_set_jumpoptions(char **errmsg) +static void did_set_opt_flags(char *val, char **values, unsigned *flagp, bool list, char **errmsg) { - if (opt_strings_flags(p_jop, p_jop_values, &jop_flags, true) != OK) { + if (opt_strings_flags(val, values, flagp, list) != OK) { *errmsg = e_invarg; } } static void did_set_opt_strings(char *val, char **values, bool list, char **errmsg) { - if (check_opt_strings(val, values, list) != OK) { - *errmsg = e_invarg; - } + did_set_opt_flags(val, values, NULL, list, errmsg); } static void did_set_sessionoptions(char *oldval, char **errmsg) @@ -752,20 +750,6 @@ static void did_set_sessionoptions(char *oldval, char **errmsg) } } -static void did_set_viewoptions(char **errmsg) -{ - if (opt_strings_flags(p_vop, p_ssop_values, &vop_flags, true) != OK) { - *errmsg = e_invarg; - } -} - -static void did_set_redrawdebug(char **errmsg) -{ - if (opt_strings_flags(p_rdb, p_rdb_values, &rdb_flags, true) != OK) { - *errmsg = e_invarg; - } -} - static void did_set_ambiwidth(char **errmsg) { if (check_opt_strings(p_ambw, p_ambw_values, false) != OK) { @@ -805,13 +789,6 @@ static void did_set_wildmode(char **errmsg) } } -static void did_set_wildoptions(char **errmsg) -{ - if (opt_strings_flags(p_wop, p_wop_values, &wop_flags, true) != OK) { - *errmsg = e_invarg; - } -} - static void did_set_winaltkeys(char **errmsg) { if (*p_wak == NUL || check_opt_strings(p_wak, p_wak_values, false) != OK) { @@ -1114,13 +1091,6 @@ static void did_set_keymodel(char **errmsg) km_startsel = (vim_strchr(p_km, 'a') != NULL); } -static void did_set_switchbuf(char **errmsg) -{ - if (opt_strings_flags(p_swb, p_swb_values, &swb_flags, true) != OK) { - *errmsg = e_invarg; - } -} - static void did_set_display(char **errmsg) { if (opt_strings_flags(p_dy, p_dy_values, &dy_flags, true) != OK) { @@ -1131,13 +1101,6 @@ static void did_set_display(char **errmsg) msg_grid_validate(); } -static void did_set_clipboard(char **errmsg) -{ - if (opt_strings_flags(p_cb, p_cb_values, &cb_flags, true) != OK) { - *errmsg = e_invarg; - } -} - static void did_set_spellfile(char **varp, char **errmsg) { // When there is a window for this buffer in which 'spell' @@ -1335,13 +1298,6 @@ static void did_set_backspace(char **errmsg) } } -static void did_set_belloff(char **errmsg) -{ - if (opt_strings_flags(p_bo, p_bo_values, &bo_flags, true) != OK) { - *errmsg = e_invarg; - } -} - static void did_set_tagcase(buf_T *buf, int opt_flags, char **errmsg) { unsigned int *flags; @@ -1364,13 +1320,6 @@ static void did_set_tagcase(buf_T *buf, int opt_flags, char **errmsg) } } -static void did_set_casemap(char **errmsg) -{ - if (opt_strings_flags(p_cmp, p_cmp_values, &cmp_flags, true) != OK) { - *errmsg = e_invarg; - } -} - static void did_set_diffopt(char **errmsg) { if (diffopt_changed() == FAIL) { @@ -1410,13 +1359,6 @@ static void did_set_commentstring(char **varp, char **errmsg) } } -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_foldignore(win_T *win) { if (foldmethodIsIndent(win)) { @@ -1478,13 +1420,6 @@ static void did_set_winhl(win_T *win, char **errmsg) } } -static void did_set_termpastefilter(char **errmsg) -{ - if (opt_strings_flags(p_tpf, p_tpf_values, &tpf_flags, true) != OK) { - *errmsg = e_invarg; - } -} - static void did_set_optexpr(buf_T *buf, win_T *win, char **varp, char **gvarp) { char **p_opt = NULL; @@ -1685,15 +1620,15 @@ char *did_set_string_option(int opt_idx, char **varp, char *oldval, char *errbuf } else if (varp == &p_hl) { // 'highlight' did_set_highlight(varp, &errmsg); } else if (varp == &p_jop) { // 'jumpoptions' - did_set_jumpoptions(&errmsg); + did_set_opt_flags(p_jop, p_jop_values, &jop_flags, true, &errmsg); } else if (gvarp == &p_nf) { // 'nrformats' did_set_opt_strings(*varp, p_nf_values, true, &errmsg); } else if (varp == &p_ssop) { // 'sessionoptions' did_set_sessionoptions(oldval, &errmsg); } else if (varp == &p_vop) { // 'viewoptions' - did_set_viewoptions(&errmsg); + did_set_opt_flags(p_vop, p_ssop_values, &vop_flags, true, &errmsg); } else if (varp == &p_rdb) { // 'redrawdebug' - did_set_redrawdebug(&errmsg); + did_set_opt_flags(p_rdb, p_rdb_values, &rdb_flags, true, &errmsg); } else if (varp == &p_sbo) { // 'scrollopt' did_set_opt_strings(p_sbo, p_scbopt_values, true, &errmsg); } else if (varp == &p_ambw || (int *)varp == &p_emoji) { // 'ambiwidth' @@ -1703,7 +1638,7 @@ char *did_set_string_option(int opt_idx, char **varp, char *oldval, char *errbuf } else if (varp == &p_wim) { // 'wildmode' did_set_wildmode(&errmsg); } else if (varp == &p_wop) { // 'wildoptions' - did_set_wildoptions(&errmsg); + did_set_opt_flags(p_wop, p_wop_values, &wop_flags, true, &errmsg); } else if (varp == &p_wak) { // 'winaltkeys' did_set_winaltkeys(&errmsg); } else if (varp == &p_ei) { // 'eventignore' @@ -1755,7 +1690,7 @@ char *did_set_string_option(int opt_idx, char **varp, char *oldval, char *errbuf } else if (varp == &p_mousescroll) { // 'mousescroll' errmsg = check_mousescroll(p_mousescroll); } else if (varp == &p_swb) { // 'switchbuf' - did_set_switchbuf(&errmsg); + did_set_opt_flags(p_swb, p_swb_values, &swb_flags, true, &errmsg); } else if (varp == &p_spk) { // 'splitkeep' did_set_opt_strings(p_spk, p_spk_values, false, &errmsg); } else if (varp == &p_debug) { // 'debug' @@ -1765,7 +1700,7 @@ char *did_set_string_option(int opt_idx, char **varp, char *oldval, char *errbuf } else if (varp == &p_ead) { // 'eadirection' did_set_opt_strings(p_ead, p_ead_values, false, &errmsg); } else if (varp == &p_cb) { // 'clipboard' - did_set_clipboard(&errmsg); + did_set_opt_flags(p_cb, p_cb_values, &cb_flags, true, &errmsg); } else if (varp == &(curwin->w_s->b_p_spf)) { did_set_spellfile(varp, &errmsg); } else if (varp == &(curwin->w_s->b_p_spl)) { // 'spell' @@ -1810,11 +1745,11 @@ char *did_set_string_option(int opt_idx, char **varp, char *oldval, char *errbuf } else if (varp == &p_bs) { // 'backspace' did_set_backspace(&errmsg); } else if (varp == &p_bo) { - did_set_belloff(&errmsg); + did_set_opt_flags(p_bo, p_bo_values, &bo_flags, true, &errmsg); } else if (gvarp == &p_tc) { // 'tagcase' did_set_tagcase(curbuf, opt_flags, &errmsg); } else if (varp == &p_cmp) { // 'casemap' - did_set_casemap(&errmsg); + did_set_opt_flags(p_cmp, p_cmp_values, &cmp_flags, true, &errmsg); } else if (varp == &p_dip) { // 'diffopt' did_set_diffopt(&errmsg); } else if (gvarp == &curwin->w_allbuf_opt.wo_fdm) { // 'foldmethod' @@ -1824,7 +1759,7 @@ char *did_set_string_option(int opt_idx, char **varp, char *oldval, char *errbuf } else if (gvarp == &p_cms) { // 'commentstring' did_set_commentstring(varp, &errmsg); } else if (varp == &p_fdo) { // 'foldopen' - did_set_foldopen(&errmsg); + did_set_opt_flags(p_fdo, p_fdo_values, &fdo_flags, true, &errmsg); } else if (varp == &p_fcl) { // 'foldclose' did_set_opt_strings(*varp, p_fcl_values, true, &errmsg); } else if (gvarp == &curwin->w_allbuf_opt.wo_fdi) { // 'foldignore' @@ -1843,7 +1778,7 @@ char *did_set_string_option(int opt_idx, char **varp, char *oldval, char *errbuf } else if (varp == &curwin->w_p_winhl) { did_set_winhl(curwin, &errmsg); } else if (varp == &p_tpf) { - did_set_termpastefilter(&errmsg); + did_set_opt_flags(p_tpf, p_tpf_values, &tpf_flags, true, &errmsg); } else if (varp == &(curbuf->b_p_vsts)) { // 'varsofttabstop' char *cp; |