aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2023-01-19 09:59:17 +0000
committerLewis Russell <lewis6991@gmail.com>2023-01-25 11:48:52 +0000
commitb3272031f7c1a28a1a0e19b8627d524fd28432ed (patch)
tree3e7af8daed1315da7698b2022b98de12508191bc
parent9d12b074052aa4d582854f66c637dfce661d060e (diff)
downloadrneovim-b3272031f7c1a28a1a0e19b8627d524fd28432ed.tar.gz
rneovim-b3272031f7c1a28a1a0e19b8627d524fd28432ed.tar.bz2
rneovim-b3272031f7c1a28a1a0e19b8627d524fd28432ed.zip
refactor(optionstr.c): break up did_set_string_option 13
-rw-r--r--src/nvim/optionstr.c33
1 files changed, 19 insertions, 14 deletions
diff --git a/src/nvim/optionstr.c b/src/nvim/optionstr.c
index ddbef9faae..42505aa14c 100644
--- a/src/nvim/optionstr.c
+++ b/src/nvim/optionstr.c
@@ -966,6 +966,23 @@ static void did_set_shada(vimoption_T **opt, int *opt_idx, bool *free_oldval, ch
}
}
+static void did_set_buftype(buf_T *buf, win_T *win, char **errmsg)
+{
+ // When 'buftype' is set, check for valid value.
+ if ((buf->terminal && buf->b_p_bt[0] != 't')
+ || (!buf->terminal && buf->b_p_bt[0] == 't')
+ || check_opt_strings(buf->b_p_bt, p_buftype_values, false) != OK) {
+ *errmsg = e_invarg;
+ } else {
+ if (win->w_status_height || global_stl_height()) {
+ win->w_redr_status = true;
+ redraw_later(win, UPD_VALID);
+ }
+ buf->b_help = (buf->b_p_bt[0] == 'h');
+ redraw_titles();
+ }
+}
+
/// Handle string options that need some action to perform when changed.
/// The new value must be allocated.
///
@@ -1230,20 +1247,8 @@ char *did_set_string_option(int opt_idx, char **varp, char *oldval, char *errbuf
if (check_opt_strings(curbuf->b_p_bh, p_bufhidden_values, false) != OK) {
errmsg = e_invarg;
}
- } else if (gvarp == &p_bt) {
- // When 'buftype' is set, check for valid value.
- if ((curbuf->terminal && curbuf->b_p_bt[0] != 't')
- || (!curbuf->terminal && curbuf->b_p_bt[0] == 't')
- || check_opt_strings(curbuf->b_p_bt, p_buftype_values, false) != OK) {
- errmsg = e_invarg;
- } else {
- if (curwin->w_status_height || global_stl_height()) {
- curwin->w_redr_status = true;
- redraw_later(curwin, UPD_VALID);
- }
- curbuf->b_help = (curbuf->b_p_bt[0] == 'h');
- redraw_titles();
- }
+ } else if (gvarp == &p_bt) { // 'buftype'
+ did_set_buftype(curbuf, curwin, &errmsg);
} else if (gvarp == &p_stl || gvarp == &p_wbr || varp == &p_tal
|| varp == &p_ruf || varp == &curwin->w_p_stc) {
// 'statusline', 'winbar', 'tabline', 'rulerformat' or 'statuscolumn'