aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2023-01-25 12:06:12 +0000
committerLewis Russell <lewis6991@gmail.com>2023-01-25 12:13:06 +0000
commit15499fa856f6fbaf3208a26647db95259ae76e8e (patch)
treee815f193be703599c0c2a48a545d4fd8e2dcd762
parentf37ec6026fcb3f9a124aab61418a6ae7145d14e9 (diff)
downloadrneovim-15499fa856f6fbaf3208a26647db95259ae76e8e.tar.gz
rneovim-15499fa856f6fbaf3208a26647db95259ae76e8e.tar.bz2
rneovim-15499fa856f6fbaf3208a26647db95259ae76e8e.zip
refactor(optionstr.c): break up did_set_expropt
-rw-r--r--src/nvim/optionstr.c62
1 files changed, 22 insertions, 40 deletions
diff --git a/src/nvim/optionstr.c b/src/nvim/optionstr.c
index 95a881c3ab..5ce72693df 100644
--- a/src/nvim/optionstr.c
+++ b/src/nvim/optionstr.c
@@ -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;
-
- // If the option value starts with <SID> or s:, then replace that with
- // the script identifier.
-
- 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);
+ char *name = get_scriptlocal_funcname(*p_opt);
+ if (name != NULL) {
+ free_string_option(*p_opt);
+ *p_opt = name;
}
}
@@ -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);
} else if (varp == &buf->b_p_vts) { // 'vartabstop'
did_set_vartabstop(buf, win, varp, &errmsg);
- } else if (varp == &p_dex
- || varp == &win->w_p_fde
- || varp == &win->w_p_fdt
- || gvarp == &p_fex
- || gvarp == &p_inex
- || gvarp == &p_inde
- || varp == &p_pex) { // '*expr' options
- did_set_optexpr(buf, win, varp, gvarp);
+ } else if (varp == &p_dex) { // 'diffexpr'
+ did_set_optexpr(win, &p_dex, varp, gvarp);
+ } else if (varp == &win->w_p_fde) { // 'foldexpr'
+ did_set_optexpr(win, &win->w_p_fde, varp, gvarp);
+ if (foldmethodIsExpr(win)) {
+ foldUpdateAll(win);
+ }
+ } 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'
set_completefunc_option(&errmsg);
} else if (gvarp == &p_ofu) { // 'omnifunc'