refactor(optionstr.c): break up did_set_expropt

This commit is contained in:
Lewis Russell
2023-01-25 12:06:12 +00:00
parent f37ec6026f
commit 15499fa856

View File

@@ -1497,39 +1497,12 @@ static void did_set_vartabstop(buf_T *buf, win_T *win, char **varp, char **errms
} }
} }
static void did_set_optexpr(buf_T *buf, win_T *win, char **varp, char **gvarp) static void did_set_optexpr(win_T *win, char **p_opt, char **varp, char **gvarp)
{ {
char **p_opt = NULL; char *name = get_scriptlocal_funcname(*p_opt);
if (name != NULL) {
// If the option value starts with <SID> or s:, then replace that with free_string_option(*p_opt);
// the script identifier. *p_opt = name;
if (varp == &p_dex) { // 'diffexpr'
p_opt = &p_dex;
} else if (varp == &win->w_p_fde) { // 'foldexpr'
p_opt = &win->w_p_fde;
} else if (varp == &win->w_p_fdt) { // 'foldtext'
p_opt = &win->w_p_fdt;
} else if (varp == &p_pex) { // 'patchexpr'
p_opt = &p_pex;
} else if (gvarp == &p_fex) { // 'formatexpr'
p_opt = &buf->b_p_fex;
} else if (gvarp == &p_inex) { // 'includeexpr'
p_opt = &buf->b_p_inex;
} else if (gvarp == &p_inde) { // 'indentexpr'
p_opt = &buf->b_p_inde;
}
if (p_opt != NULL) {
char *name = get_scriptlocal_funcname(*p_opt);
if (name != NULL) {
free_string_option(*p_opt);
*p_opt = name;
}
}
if (varp == &win->w_p_fde && foldmethodIsExpr(win)) {
foldUpdateAll(win);
} }
} }
@@ -1835,14 +1808,23 @@ static char *did_set_string_option_for(buf_T *buf, win_T *win, int opt_idx, char
did_set_varsoftabstop(buf, varp, &errmsg); did_set_varsoftabstop(buf, varp, &errmsg);
} else if (varp == &buf->b_p_vts) { // 'vartabstop' } else if (varp == &buf->b_p_vts) { // 'vartabstop'
did_set_vartabstop(buf, win, varp, &errmsg); did_set_vartabstop(buf, win, varp, &errmsg);
} else if (varp == &p_dex } else if (varp == &p_dex) { // 'diffexpr'
|| varp == &win->w_p_fde did_set_optexpr(win, &p_dex, varp, gvarp);
|| varp == &win->w_p_fdt } else if (varp == &win->w_p_fde) { // 'foldexpr'
|| gvarp == &p_fex did_set_optexpr(win, &win->w_p_fde, varp, gvarp);
|| gvarp == &p_inex if (foldmethodIsExpr(win)) {
|| gvarp == &p_inde foldUpdateAll(win);
|| varp == &p_pex) { // '*expr' options }
did_set_optexpr(buf, win, varp, gvarp); } else if (varp == &win->w_p_fdt) { // 'foldtext'
did_set_optexpr(win, &win->w_p_fdt, varp, gvarp);
} else if (varp == &p_pex) { // 'patchexpr'
did_set_optexpr(win, &p_pex, varp, gvarp);
} else if (gvarp == &p_fex) { // 'formatexpr'
did_set_optexpr(win, &buf->b_p_fex, varp, gvarp);
} else if (gvarp == &p_inex) { // 'includeexpr'
did_set_optexpr(win, &buf->b_p_inex, varp, gvarp);
} else if (gvarp == &p_inde) { // 'indentexpr'
did_set_optexpr(win, &buf->b_p_inde, varp, gvarp);
} else if (gvarp == &p_cfu) { // 'completefunc' } else if (gvarp == &p_cfu) { // 'completefunc'
set_completefunc_option(&errmsg); set_completefunc_option(&errmsg);
} else if (gvarp == &p_ofu) { // 'omnifunc' } else if (gvarp == &p_ofu) { // 'omnifunc'