mirror of
https://github.com/vim/vim.git
synced 2025-10-10 06:24:10 -04:00
patch 9.0.1345: too many "else if" statements for handling options
Problem: Too many "else if" statements for handling options. Solution: Add more functions to handle options. (Yegappan Lakshmanan, closes #12051)
This commit is contained in:
committed by
Bram Moolenaar
parent
a8f0835a6b
commit
8ad862a1f9
226
src/optionstr.c
226
src/optionstr.c
@@ -791,13 +791,23 @@ did_set_helpfile(optset_T *args UNUSED)
|
||||
}
|
||||
|
||||
#ifdef FEAT_SYN_HL
|
||||
/*
|
||||
* The 'colorcolumn' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_colorcolumn(optset_T *args UNUSED)
|
||||
{
|
||||
return check_colorcolumn(curwin);
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'cursorlineopt' option is changed.
|
||||
*/
|
||||
static char *
|
||||
did_set_cursorlineopt(char_u **varp)
|
||||
char *
|
||||
did_set_cursorlineopt(optset_T *args)
|
||||
{
|
||||
if (**varp == NUL || fill_culopt_flags(*varp, curwin) != OK)
|
||||
if (*args->os_varp == NUL
|
||||
|| fill_culopt_flags(args->os_varp, curwin) != OK)
|
||||
return e_invalid_argument;
|
||||
|
||||
return NULL;
|
||||
@@ -864,7 +874,70 @@ did_set_opt_strings(char_u *val, char **values, int list)
|
||||
return did_set_opt_flags(val, values, NULL, list);
|
||||
}
|
||||
|
||||
#ifdef FEAT_SESSION
|
||||
/*
|
||||
* The 'belloff' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_belloff(optset_T *args UNUSED)
|
||||
{
|
||||
return did_set_opt_flags(p_bo, p_bo_values, &bo_flags, TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'casemap' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_casemap(optset_T *args UNUSED)
|
||||
{
|
||||
return did_set_opt_flags(p_cmp, p_cmp_values, &cmp_flags, TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'scrollopt' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_scrollopt(optset_T *args UNUSED)
|
||||
{
|
||||
return did_set_opt_strings(p_sbo, p_scbopt_values, TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'selectmode' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_selectmode(optset_T *args UNUSED)
|
||||
{
|
||||
return did_set_opt_strings(p_slm, p_slm_values, TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'showcmdloc' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_showcmdloc(optset_T *args UNUSED)
|
||||
{
|
||||
return did_set_opt_strings(p_sloc, p_sloc_values, FALSE);
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'splitkeep' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_splitkeep(optset_T *args UNUSED)
|
||||
{
|
||||
return did_set_opt_strings(p_spk, p_spk_values, FALSE);
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'switchbuf' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_switchbuf(optset_T *args UNUSED)
|
||||
{
|
||||
return did_set_opt_flags(p_swb, p_swb_values, &swb_flags, TRUE);
|
||||
}
|
||||
|
||||
#if defined(FEAT_SESSION) || defined(PROTO)
|
||||
/*
|
||||
* The 'sessionoptions' option is changed.
|
||||
*/
|
||||
@@ -883,6 +956,15 @@ did_set_sessionoptions(optset_T *args)
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'viewoptions' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_viewoptions(optset_T *args UNUSED)
|
||||
{
|
||||
return did_set_opt_flags(p_vop, p_ssop_values, &vop_flags, TRUE);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -944,6 +1026,15 @@ did_set_wildmode(optset_T *args UNUSED)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'wildoptions' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_wildoptions(optset_T *args UNUSED)
|
||||
{
|
||||
return did_set_opt_strings(p_wop, p_wop_values, TRUE);
|
||||
}
|
||||
|
||||
#if defined(FEAT_WAK) || defined(PROTO)
|
||||
/*
|
||||
* The 'winaltkeys' option is changed.
|
||||
@@ -969,6 +1060,27 @@ did_set_winaltkeys(optset_T *args UNUSED)
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The 'wincolor' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_wincolor(optset_T *args UNUSED)
|
||||
{
|
||||
#ifdef FEAT_TERMINAL
|
||||
term_update_wincolor(curwin);
|
||||
#endif
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'eadirection' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_eadirection(optset_T *args UNUSED)
|
||||
{
|
||||
return did_set_opt_strings(p_ead, p_ead_values, FALSE);
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'eventignore' option is changed.
|
||||
*/
|
||||
@@ -1856,6 +1968,15 @@ did_set_mousemodel(optset_T *args UNUSED)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'debug' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_debug(optset_T *args UNUSED)
|
||||
{
|
||||
return did_set_opt_strings(p_debug, p_debug_values, TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'display' option is changed.
|
||||
*/
|
||||
@@ -1945,6 +2066,15 @@ did_set_mkspellmem(optset_T *args UNUSED)
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The 'nrformats' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_nrformats(optset_T *args)
|
||||
{
|
||||
return did_set_opt_strings(args->os_varp, p_nf_values, TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'buftype' option is changed.
|
||||
*/
|
||||
@@ -2197,6 +2327,15 @@ did_set_backspace(optset_T *args UNUSED)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'bufhidden' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_bufhidden(optset_T *args UNUSED)
|
||||
{
|
||||
return did_set_opt_strings(curbuf->b_p_bh, p_bufhidden_values, FALSE);
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'tagcase' option is changed.
|
||||
*/
|
||||
@@ -2299,6 +2438,24 @@ did_set_foldignore(optset_T *args UNUSED)
|
||||
foldUpdateAll(curwin);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'foldclose' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_foldclose(optset_T *args UNUSED)
|
||||
{
|
||||
return did_set_opt_strings(p_fcl, p_fcl_values, TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* The 'foldopen' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_foldopen(optset_T *args UNUSED)
|
||||
{
|
||||
return did_set_opt_flags(p_fdo, p_fdo_values, &fdo_flags, TRUE);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -2459,6 +2616,17 @@ did_set_termwinsize(optset_T *args UNUSED)
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
# if defined(MSWIN) || defined(PROTO)
|
||||
/*
|
||||
* The 'termwintype' option is changed.
|
||||
*/
|
||||
char *
|
||||
did_set_termwintype(optset_T *args UNUSED)
|
||||
{
|
||||
return did_set_opt_strings(p_twt, p_twt_values, FALSE);
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(FEAT_VARTABS) || defined(PROTO)
|
||||
@@ -2753,23 +2921,6 @@ did_set_string_option(
|
||||
|| varp == &p_isp // 'isprint'
|
||||
|| varp == &p_isf) // 'isfname'
|
||||
errmsg = did_set_isopt(&did_chartab);
|
||||
#ifdef FEAT_SYN_HL
|
||||
else if ( varp == &curwin->w_p_culopt // 'cursorlineopt'
|
||||
|| gvarp == &curwin->w_allbuf_opt.wo_culopt)
|
||||
errmsg = did_set_cursorlineopt(varp);
|
||||
else if (varp == &curwin->w_p_cc) // 'colorcolumn'
|
||||
errmsg = check_colorcolumn(curwin);
|
||||
#endif
|
||||
else if (gvarp == &p_nf) // 'nrformats'
|
||||
errmsg = did_set_opt_strings(*varp, p_nf_values, TRUE);
|
||||
#ifdef FEAT_SESSION
|
||||
else if (varp == &p_vop) // 'viewoptions'
|
||||
errmsg = did_set_opt_flags(p_vop, p_ssop_values, &vop_flags, TRUE);
|
||||
#endif
|
||||
else if (varp == &p_sbo) // 'scrollopt'
|
||||
errmsg = did_set_opt_strings(p_sbo, p_scbopt_values, TRUE);
|
||||
else if (varp == &p_wop) // 'wildoptions'
|
||||
errmsg = did_set_opt_strings(p_wop, p_wop_values, TRUE);
|
||||
else if ( varp == &p_enc // 'encoding'
|
||||
|| gvarp == &p_fenc // 'fileencoding'
|
||||
|| varp == &p_tenc // 'termencoding'
|
||||
@@ -2799,33 +2950,8 @@ did_set_string_option(
|
||||
else if (varp == &p_guicursor) // 'guicursor'
|
||||
errmsg = parse_shape_opt(SHAPE_CURSOR);
|
||||
#endif
|
||||
else if (varp == &p_slm) // 'selectmode'
|
||||
errmsg = did_set_opt_strings(p_slm, p_slm_values, TRUE);
|
||||
else if (varp == &p_swb) // 'switchbuf'
|
||||
errmsg = did_set_opt_flags(p_swb, p_swb_values, &swb_flags, TRUE);
|
||||
else if (varp == &p_spk) // 'splitkeep'
|
||||
errmsg = did_set_opt_strings(p_spk, p_spk_values, FALSE);
|
||||
else if (varp == &p_debug) // 'debug'
|
||||
errmsg = did_set_opt_strings(p_debug, p_debug_values, TRUE);
|
||||
else if (varp == &p_ead) // 'eadirection'
|
||||
errmsg = did_set_opt_strings(p_ead, p_ead_values, FALSE);
|
||||
else if (gvarp == &p_bh) // 'bufhidden'
|
||||
errmsg = did_set_opt_strings(curbuf->b_p_bh, p_bufhidden_values,
|
||||
FALSE);
|
||||
else if (gvarp == &p_cpt) // 'complete'
|
||||
errmsg = did_set_complete(varp, errbuf);
|
||||
else if (varp == &p_sloc) // 'showcmdloc'
|
||||
errmsg = did_set_opt_strings(p_sloc, p_sloc_values, FALSE);
|
||||
else if (varp == &p_bo) // 'belloff'
|
||||
errmsg = did_set_opt_flags(p_bo, p_bo_values, &bo_flags, TRUE);
|
||||
else if (varp == &p_cmp) // 'casemap'
|
||||
errmsg = did_set_opt_flags(p_cmp, p_cmp_values, &cmp_flags, TRUE);
|
||||
#ifdef FEAT_FOLDING
|
||||
else if (varp == &p_fdo) // 'foldopen'
|
||||
errmsg = did_set_opt_flags(p_fdo, p_fdo_values, &fdo_flags, TRUE);
|
||||
else if (varp == &p_fcl) // 'foldclose'
|
||||
errmsg = did_set_opt_strings(p_fcl, p_fcl_values, TRUE);
|
||||
#endif
|
||||
else if (gvarp == &p_ft) // 'filetype'
|
||||
errmsg = did_set_filetype_or_syntax(varp, oldval, value_checked,
|
||||
&value_changed);
|
||||
@@ -2834,14 +2960,6 @@ did_set_string_option(
|
||||
errmsg = did_set_filetype_or_syntax(varp, oldval, value_checked,
|
||||
&value_changed);
|
||||
#endif
|
||||
#ifdef FEAT_TERMINAL
|
||||
else if (varp == &curwin->w_p_wcr) // 'wincolor'
|
||||
term_update_wincolor(curwin);
|
||||
# if defined(MSWIN)
|
||||
else if (varp == &p_twt) // 'termwintype'
|
||||
errmsg = did_set_opt_strings(p_twt, p_twt_values, FALSE);
|
||||
# endif
|
||||
#endif
|
||||
#ifdef FEAT_EVAL
|
||||
else if (
|
||||
# ifdef FEAT_BEVAL
|
||||
|
Reference in New Issue
Block a user