diff options
Diffstat (limited to 'src/nvim/option.c')
-rw-r--r-- | src/nvim/option.c | 474 |
1 files changed, 195 insertions, 279 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c index 96d6d8e01e..fd4f1eb50f 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -24,8 +24,6 @@ #include <stdlib.h> #include <string.h> -#include "auto/config.h" -#include "klib/kvec.h" #include "nvim/api/extmark.h" #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" @@ -49,7 +47,6 @@ #include "nvim/ex_getln.h" #include "nvim/ex_session.h" #include "nvim/fold.h" -#include "nvim/func_attr.h" #include "nvim/garray.h" #include "nvim/gettext.h" #include "nvim/globals.h" @@ -99,22 +96,20 @@ #include "nvim/vim_defs.h" #include "nvim/window.h" +#include "auto/config.h" +#include "klib/kvec.h" + #ifdef BACKSLASH_IN_FILENAME # include "nvim/arglist.h" #endif -static const char e_unknown_option[] - = N_("E518: Unknown option"); -static const char e_not_allowed_in_modeline[] - = N_("E520: Not allowed in a modeline"); +static const char e_unknown_option[] = N_("E518: Unknown option"); +static const char e_not_allowed_in_modeline[] = N_("E520: Not allowed in a modeline"); static const char e_not_allowed_in_modeline_when_modelineexpr_is_off[] = N_("E992: Not allowed in a modeline when 'modelineexpr' is off"); -static const char e_key_code_not_set[] - = N_("E846: Key code not set"); -static const char e_number_required_after_equal[] - = N_("E521: Number required after ="); -static const char e_preview_window_already_exists[] - = N_("E590: A preview window already exists"); +static const char e_key_code_not_set[] = N_("E846: Key code not set"); +static const char e_number_required_after_equal[] = N_("E521: Number required after ="); +static const char e_preview_window_already_exists[] = N_("E590: A preview window already exists"); static char *p_term = NULL; static char *p_ttytype = NULL; @@ -157,13 +152,10 @@ typedef enum { # include "options.generated.h" #endif -static char *(p_bin_dep_opts[]) = { - "textwidth", "wrapmargin", "modeline", "expandtab", NULL -}; -static char *(p_paste_dep_opts[]) = { - "autoindent", "expandtab", "ruler", "showmatch", "smarttab", - "softtabstop", "textwidth", "wrapmargin", "revins", "varsofttabstop", NULL -}; +static char *(p_bin_dep_opts[]) = { "textwidth", "wrapmargin", "modeline", "expandtab", NULL }; +static char *(p_paste_dep_opts[]) + = { "autoindent", "expandtab", "ruler", "showmatch", "smarttab", "softtabstop", + "textwidth", "wrapmargin", "revins", "varsofttabstop", NULL }; void set_init_tablocal(void) { @@ -226,8 +218,7 @@ static void set_init_default_backupskip(void) xstrlcpy(item, p, len); add_pathsep(item); xstrlcat(item, "*", len); - if (find_dup_item(ga.ga_data, item, options[opt_idx].flags) - == NULL) { + if (find_dup_item(ga.ga_data, item, options[opt_idx].flags) == NULL) { ga_grow(&ga, (int)len); if (!GA_EMPTY(&ga)) { STRCAT(ga.ga_data, ","); @@ -257,7 +248,7 @@ static void set_init_default_cdpath(void) } char *buf = xmalloc(2 * strlen(cdpath) + 2); - buf[0] = ','; // start with ",", current dir first + buf[0] = ','; // start with ",", current dir first int j = 1; for (int i = 0; cdpath[i] != NUL; i++) { if (vim_ispathlistsep(cdpath[i])) { @@ -275,7 +266,7 @@ static void set_init_default_cdpath(void) options[opt_idx].def_val = buf; options[opt_idx].flags |= P_DEF_ALLOCED; } else { - xfree(buf); // cannot happen + xfree(buf); // cannot happen } xfree(cdpath); } @@ -348,12 +339,9 @@ void set_init_1(bool clean_arg) memmove(backupdir + 2, backupdir, backupdir_len + 1); memmove(backupdir, ".,", 2); set_string_default("backupdir", backupdir, true); - set_string_default("viewdir", stdpaths_user_state_subpath("view", 2, true), - true); - set_string_default("directory", stdpaths_user_state_subpath("swap", 2, true), - true); - set_string_default("undodir", stdpaths_user_state_subpath("undo", 2, true), - true); + set_string_default("viewdir", stdpaths_user_state_subpath("view", 2, true), true); + set_string_default("directory", stdpaths_user_state_subpath("swap", 2, true), true); + set_string_default("undodir", stdpaths_user_state_subpath("undo", 2, true), true); // Set default for &runtimepath. All necessary expansions are performed in // this function. char *rtp = runtimepath_default(clean_arg); @@ -369,7 +357,7 @@ void set_init_1(bool clean_arg) set_options_default(0); curbuf->b_p_initialized = true; - curbuf->b_p_ar = -1; // no local 'autoread' value + curbuf->b_p_ar = -1; // no local 'autoread' value curbuf->b_p_ul = NO_LOCAL_UNDOLEVEL; check_buf_options(curbuf); check_win_options(curwin); @@ -391,7 +379,7 @@ void set_init_1(bool clean_arg) // Expand environment variables and things like "~" for the defaults. set_init_expand_env(); - save_file_ff(curbuf); // Buffer is unchanged + save_file_ff(curbuf); // Buffer is unchanged // Detect use of mlterm. // Mlterm is a terminal emulator akin to xterm that has some special @@ -429,7 +417,7 @@ static void set_option_default(const int opt_idx, int opt_flags) vimoption_T *opt = &options[opt_idx]; void *varp = get_varp_scope(opt, both ? OPT_LOCAL : opt_flags); uint32_t flags = opt->flags; - if (varp != NULL) { // skip hidden option, nothing to do for it + if (varp != NULL) { // skip hidden option, nothing to do for it if (flags & P_STRING) { // Use set_string_option_direct() for local options to handle // freeing and allocating the value. @@ -447,8 +435,7 @@ static void set_option_default(const int opt_idx, int opt_flags) win_comp_scroll(curwin); } else { OptInt def_val = (OptInt)(intptr_t)opt->def_val; - if ((OptInt *)varp == &curwin->w_p_so - || (OptInt *)varp == &curwin->w_p_siso) { + if ((OptInt *)varp == &curwin->w_p_so || (OptInt *)varp == &curwin->w_p_siso) { // 'scrolloff' and 'sidescrolloff' local values have a // different default value than the global default. *(OptInt *)varp = -1; @@ -470,8 +457,7 @@ static void set_option_default(const int opt_idx, int opt_flags) #endif // May also set global value for local option. if (both) { - *(int *)get_varp_scope(opt, OPT_GLOBAL) = - *(int *)varp; + *(int *)get_varp_scope(opt, OPT_GLOBAL) = *(int *)varp; } } @@ -508,8 +494,7 @@ static void set_options_default(int opt_flags) /// @param name The name of the option /// @param val The value of the option /// @param allocated If true, do not copy default as it was already allocated. -static void set_string_default(const char *name, char *val, bool allocated) - FUNC_ATTR_NONNULL_ALL +static void set_string_default(const char *name, char *val, bool allocated) FUNC_ATTR_NONNULL_ALL { int opt_idx = findoption(name); if (opt_idx >= 0) { @@ -544,8 +529,7 @@ static char *find_dup_item(char *origval, const char *newval, uint32_t flags) // Count backslashes. Only a comma with an even number of backslashes // or a single backslash preceded by a comma before it is recognized as // a separator. - if ((s > origval + 1 && s[-1] == '\\' && s[-2] != ',') - || (s == origval + 1 && s[-1] == '\\')) { + if ((s > origval + 1 && s[-1] == '\\' && s[-2] != ',') || (s == origval + 1 && s[-1] == '\\')) { bs++; } else { bs = 0; @@ -612,19 +596,15 @@ void set_init_2(bool headless) /// Initialize the options, part three: After reading the .vimrc void set_init_3(void) { - parse_shape_opt(SHAPE_CURSOR); // set cursor shapes from 'guicursor' + parse_shape_opt(SHAPE_CURSOR); // set cursor shapes from 'guicursor' // Set 'shellpipe' and 'shellredir', depending on the 'shell' option. // This is done after other initializations, where 'shell' might have been // set, but only if they have not been set before. int idx_srr = findoption("srr"); - int do_srr = (idx_srr < 0) - ? false - : !(options[idx_srr].flags & P_WAS_SET); + int do_srr = (idx_srr < 0) ? false : !(options[idx_srr].flags & P_WAS_SET); int idx_sp = findoption("sp"); - int do_sp = (idx_sp < 0) - ? false - : !(options[idx_sp].flags & P_WAS_SET); + int do_sp = (idx_sp < 0) ? false : !(options[idx_sp].flags & P_WAS_SET); size_t len = 0; char *p = (char *)invocation_path_tail(p_sh, &len); @@ -635,8 +615,7 @@ void set_init_3(void) // Default for p_sp is "| tee", for p_srr is ">". // For known shells it is changed here to include stderr. // - if (path_fnamecmp(p, "csh") == 0 - || path_fnamecmp(p, "tcsh") == 0) { + if (path_fnamecmp(p, "csh") == 0 || path_fnamecmp(p, "tcsh") == 0) { if (do_sp) { p_sp = "|& tee"; options[idx_sp].def_val = p_sp; @@ -645,16 +624,11 @@ void set_init_3(void) p_srr = ">&"; options[idx_srr].def_val = p_srr; } - } else if (path_fnamecmp(p, "sh") == 0 - || path_fnamecmp(p, "ksh") == 0 - || path_fnamecmp(p, "mksh") == 0 - || path_fnamecmp(p, "pdksh") == 0 - || path_fnamecmp(p, "zsh") == 0 - || path_fnamecmp(p, "zsh-beta") == 0 - || path_fnamecmp(p, "bash") == 0 - || path_fnamecmp(p, "fish") == 0 - || path_fnamecmp(p, "ash") == 0 - || path_fnamecmp(p, "dash") == 0) { + } else if (path_fnamecmp(p, "sh") == 0 || path_fnamecmp(p, "ksh") == 0 + || path_fnamecmp(p, "mksh") == 0 || path_fnamecmp(p, "pdksh") == 0 + || path_fnamecmp(p, "zsh") == 0 || path_fnamecmp(p, "zsh-beta") == 0 + || path_fnamecmp(p, "bash") == 0 || path_fnamecmp(p, "fish") == 0 + || path_fnamecmp(p, "ash") == 0 || path_fnamecmp(p, "dash") == 0) { // Always use POSIX shell style redirection if we reach this if (do_sp) { p_sp = "2>&1| tee"; @@ -796,13 +770,10 @@ static char *stropt_copy_value(char *origval, char **argp, set_op_T op, while (*arg != NUL && !ascii_iswhite(*arg)) { if (*arg == '\\' && arg[1] != NUL #ifdef BACKSLASH_IN_FILENAME - && !((flags & P_EXPAND) - && vim_isfilec((uint8_t)arg[1]) - && !ascii_iswhite(arg[1]) - && (arg[1] != '\\' - || (s == newval && arg[2] != '\\'))) + && !((flags & P_EXPAND) && vim_isfilec((uint8_t)arg[1]) && !ascii_iswhite(arg[1]) + && (arg[1] != '\\' || (s == newval && arg[2] != '\\'))) #endif - ) { + ) { arg++; // remove backslash } int i = utfc_ptr2len(arg); @@ -849,9 +820,7 @@ static void stropt_concat_with_comma(char *origval, char *newval, set_op_T op, u if (op == OP_ADDING) { len = (int)strlen(origval); // Strip a trailing comma, would get 2. - if (comma && len > 1 - && (flags & P_ONECOMMA) == P_ONECOMMA - && origval[len - 1] == ',' + if (comma && len > 1 && (flags & P_ONECOMMA) == P_ONECOMMA && origval[len - 1] == ',' && origval[len - 2] != '\\') { len--; } @@ -899,15 +868,13 @@ static void stropt_remove_dupflags(char *newval, uint32_t flags) for (s = newval; *s;) { // if options have P_FLAGLIST and P_ONECOMMA such as 'whichwrap' if (flags & P_ONECOMMA) { - if (*s != ',' && *(s + 1) == ',' - && vim_strchr(s + 2, (uint8_t)(*s)) != NULL) { + if (*s != ',' && *(s + 1) == ',' && vim_strchr(s + 2, (uint8_t)(*s)) != NULL) { // Remove the duplicated value and the next comma. STRMOVE(s, s + 2); continue; } } else { - if ((!(flags & P_COMMA) || *s != ',') - && vim_strchr(s + 1, (uint8_t)(*s)) != NULL) { + if ((!(flags & P_COMMA) || *s != ',') && vim_strchr(s + 1, (uint8_t)(*s)) != NULL) { STRMOVE(s, s + 1); continue; } @@ -1001,11 +968,11 @@ static set_op_T get_op(const char *arg) set_op_T op = OP_NONE; if (*arg != NUL && *(arg + 1) == '=') { if (*arg == '+') { - op = OP_ADDING; // "+=" + op = OP_ADDING; // "+=" } else if (*arg == '^') { - op = OP_PREPENDING; // "^=" + op = OP_PREPENDING; // "^=" } else if (*arg == '-') { - op = OP_REMOVING; // "-=" + op = OP_REMOVING; // "-=" } } return op; @@ -1091,14 +1058,12 @@ static int validate_opt_idx(win_T *win, int opt_idx, int opt_flags, uint32_t fla // Skip all options that are not window-local (used when showing // an already loaded buffer in a window). - if ((opt_flags & OPT_WINONLY) - && (opt_idx < 0 || options[opt_idx].var != VAR_WIN)) { + if ((opt_flags & OPT_WINONLY) && (opt_idx < 0 || options[opt_idx].var != VAR_WIN)) { return FAIL; } // Skip all options that are window-local (used for :vimgrep). - if ((opt_flags & OPT_NOWIN) && opt_idx >= 0 - && options[opt_idx].var == VAR_WIN) { + if ((opt_flags & OPT_NOWIN) && opt_idx >= 0 && options[opt_idx].var == VAR_WIN) { return FAIL; } @@ -1115,10 +1080,8 @@ static int validate_opt_idx(win_T *win, int opt_idx, int opt_flags, uint32_t fla // In diff mode some options are overruled. This avoids that // 'foldmethod' becomes "marker" instead of "diff" and that // "wrap" gets set. - if (win->w_p_diff - && opt_idx >= 0 // shut up coverity warning - && (options[opt_idx].indir == PV_FDM - || options[opt_idx].indir == PV_WRAP)) { + if (win->w_p_diff && opt_idx >= 0 // shut up coverity warning + && (options[opt_idx].indir == PV_FDM || options[opt_idx].indir == PV_WRAP)) { return FAIL; } } @@ -1135,8 +1098,8 @@ static int validate_opt_idx(win_T *win, int opt_idx, int opt_flags, uint32_t fla /// Get new option value from argp. Allocated OptVal must be freed by caller. static OptVal get_option_newval(int opt_idx, int opt_flags, set_prefix_T prefix, char **argp, int nextchar, set_op_T op, uint32_t flags, void *varp, char *errbuf, - const size_t errbuflen, const char **errmsg) - FUNC_ATTR_WARN_UNUSED_RESULT + const size_t errbuflen, + const char **errmsg) FUNC_ATTR_WARN_UNUSED_RESULT { assert(varp != NULL); @@ -1294,21 +1257,20 @@ static void do_one_set_option(int opt_flags, char **argp, bool *did_show, char * uint8_t nextchar = (uint8_t)arg[len]; // next non-white char after option name - if (opt_idx == -1 && key == 0) { // found a mismatch: skip + if (opt_idx == -1 && key == 0) { // found a mismatch: skip *errmsg = e_unknown_option; return; } - uint32_t flags; // flags for current option + uint32_t flags; // flags for current option void *varp = NULL; // pointer to variable for current option if (opt_idx >= 0) { - if (options[opt_idx].var == NULL) { // hidden option: skip + if (options[opt_idx].var == NULL) { // hidden option: skip // Only give an error message when requesting the value of // a hidden option, ignore setting it. if (vim_strchr("=:!&<", nextchar) == NULL - && (!(options[opt_idx].flags & P_BOOL) - || nextchar == '?')) { + && (!(options[opt_idx].flags & P_BOOL) || nextchar == '?')) { *errmsg = e_unsupportedoption; } return; @@ -1333,8 +1295,7 @@ static void do_one_set_option(int opt_flags, char **argp, bool *did_show, char * *argp += 2; } } - if (vim_strchr("?!&<", nextchar) != NULL - && (*argp)[1] != NUL && !ascii_iswhite((*argp)[1])) { + if (vim_strchr("?!&<", nextchar) != NULL && (*argp)[1] != NUL && !ascii_iswhite((*argp)[1])) { *errmsg = e_trailing; return; } @@ -1345,15 +1306,13 @@ static void do_one_set_option(int opt_flags, char **argp, bool *did_show, char * // '=' character per "set" command line. grrr. (jw) // if (nextchar == '?' - || (prefix == PREFIX_NONE - && vim_strchr("=:&<", nextchar) == NULL - && !(flags & P_BOOL))) { + || (prefix == PREFIX_NONE && vim_strchr("=:&<", nextchar) == NULL && !(flags & P_BOOL))) { // print value if (*did_show) { - msg_putchar('\n'); // cursor below last one + msg_putchar('\n'); // cursor below last one } else { - gotocmdline(true); // cursor at status line - *did_show = true; // remember that we did a line + gotocmdline(true); // cursor at status line + *did_show = true; // remember that we did a line } if (opt_idx >= 0) { showoneopt(&options[opt_idx], opt_flags); @@ -1426,15 +1385,14 @@ static void do_one_set_option(int opt_flags, char **argp, bool *did_show, char * /// @return FAIL if an error is detected, OK otherwise int do_set(char *arg, int opt_flags) { - bool did_show = false; // already showed one value + bool did_show = false; // already showed one value if (*arg == NUL) { showoptions(false, opt_flags); did_show = true; } else { - while (*arg != NUL) { // loop to process all options - if (strncmp(arg, "all", 3) == 0 && !ASCII_ISALPHA(arg[3]) - && !(opt_flags & OPT_MODELINE)) { + while (*arg != NUL) { // loop to process all options + if (strncmp(arg, "all", 3) == 0 && !ASCII_ISALPHA(arg[3]) && !(opt_flags & OPT_MODELINE)) { // ":set all" show all options. // ":set all&" set all options to their default value. arg += 3; @@ -1451,7 +1409,7 @@ int do_set(char *arg, int opt_flags) did_show = true; } } else { - char *startarg = arg; // remember for error message + char *startarg = arg; // remember for error message const char *errmsg = NULL; char errbuf[80]; @@ -1482,8 +1440,8 @@ int do_set(char *arg, int opt_flags) // make sure all characters are printable trans_characters(IObuff, IOSIZE); - no_wait_return++; // wait_return() done later - emsg(IObuff); // show error highlighted + no_wait_return++; // wait_return() done later + emsg(IObuff); // show error highlighted no_wait_return--; return FAIL; @@ -1497,10 +1455,10 @@ int do_set(char *arg, int opt_flags) if (silent_mode && did_show) { // After displaying option values in silent mode. silent_mode = false; - info_message = true; // use os_msg(), not os_errmsg() + info_message = true; // use os_msg(), not os_errmsg() msg_putchar('\n'); silent_mode = true; - info_message = false; // use os_msg(), not os_errmsg() + info_message = false; // use os_msg(), not os_errmsg() } return OK; @@ -1538,7 +1496,7 @@ void set_options_bin(int oldval, int newval, int opt_flags) // The option values that are changed when 'bin' changes are // copied when 'bin is set and restored when 'bin' is reset. if (newval) { - if (!oldval) { // switched on + if (!oldval) { // switched on if (!(opt_flags & OPT_GLOBAL)) { curbuf->b_p_tw_nobin = curbuf->b_p_tw; curbuf->b_p_wm_nobin = curbuf->b_p_wm; @@ -1554,19 +1512,19 @@ void set_options_bin(int oldval, int newval, int opt_flags) } if (!(opt_flags & OPT_GLOBAL)) { - curbuf->b_p_tw = 0; // no automatic line wrap - curbuf->b_p_wm = 0; // no automatic line wrap - curbuf->b_p_ml = 0; // no modelines - curbuf->b_p_et = 0; // no expandtab + curbuf->b_p_tw = 0; // no automatic line wrap + curbuf->b_p_wm = 0; // no automatic line wrap + curbuf->b_p_ml = 0; // no modelines + curbuf->b_p_et = 0; // no expandtab } if (!(opt_flags & OPT_LOCAL)) { p_tw = 0; p_wm = 0; p_ml = false; p_et = false; - p_bin = true; // needed when called for the "-b" argument + p_bin = true; // needed when called for the "-b" argument } - } else if (oldval) { // switched off + } else if (oldval) { // switched off if (!(opt_flags & OPT_GLOBAL)) { curbuf->b_p_tw = curbuf->b_p_tw_nobin; curbuf->b_p_wm = curbuf->b_p_wm_nobin; @@ -1608,11 +1566,11 @@ char *find_shada_parameter(int type) if (*p == type) { return p + 1; } - if (*p == 'n') { // 'n' is always the last one + if (*p == 'n') { // 'n' is always the last one break; } - p = vim_strchr(p, ','); // skip until next ',' - if (p == NULL) { // hit the end without finding parameter + p = vim_strchr(p, ','); // skip until next ',' + if (p == NULL) { // hit the end without finding parameter break; } } @@ -1644,11 +1602,9 @@ static char *option_expand(int opt_idx, char *val) // Escape spaces when expanding 'tags', they are used to separate file // names. // For 'spellsuggest' expand after "file:". - expand_env_esc(val, NameBuff, MAXPATHL, - (char **)options[opt_idx].var == &p_tags, false, - (char **)options[opt_idx].var == &p_sps ? "file:" - : NULL); - if (strcmp(NameBuff, val) == 0) { // they are the same + expand_env_esc(val, NameBuff, MAXPATHL, (char **)options[opt_idx].var == &p_tags, false, + (char **)options[opt_idx].var == &p_sps ? "file:" : NULL); + if (strcmp(NameBuff, val) == 0) { // they are the same return NULL; } @@ -1692,7 +1648,7 @@ static void didset_options2(void) xfree(curbuf->b_p_vsts_array); (void)tabstop_set(curbuf->b_p_vsts, &curbuf->b_p_vsts_array); xfree(curbuf->b_p_vts_array); - (void)tabstop_set(curbuf->b_p_vts, &curbuf->b_p_vts_array); + (void)tabstop_set(curbuf->b_p_vts, &curbuf->b_p_vts_array); } /// Check for string options that are NULL (normally only termcap options). @@ -1763,8 +1719,7 @@ bool valid_name(const char *val, const char *allowed) FUNC_ATTR_NONNULL_ALL FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT { for (const char *s = val; *s != NUL; s++) { - if (!ASCII_ISALNUM(*s) - && vim_strchr(allowed, (uint8_t)(*s)) == NULL) { + if (!ASCII_ISALNUM(*s) && vim_strchr(allowed, (uint8_t)(*s)) == NULL) { return false; } } @@ -1773,8 +1728,7 @@ bool valid_name(const char *val, const char *allowed) void check_blending(win_T *wp) { - wp->w_grid_alloc.blending = - wp->w_p_winbl > 0 || (wp->w_floating && wp->w_float_config.shadow); + wp->w_grid_alloc.blending = wp->w_p_winbl > 0 || (wp->w_floating && wp->w_float_config.shadow); } /// Handle setting `winhighlight' in window "wp" @@ -1858,7 +1812,7 @@ void set_option_sctx_idx(int opt_idx, int opt_flags, sctx_T script_ctx) // Remember where the option was set. For local options need to do that // in the buffer or window structure. - if (both || (opt_flags & OPT_GLOBAL) || (indir & (PV_BUF|PV_WIN)) == 0) { + if (both || (opt_flags & OPT_GLOBAL) || (indir & (PV_BUF | PV_WIN)) == 0) { options[opt_idx].last_set = last_set; } if (both || (opt_flags & OPT_LOCAL)) { @@ -2018,8 +1972,7 @@ static const char *did_set_buflisted(optset_T *args) // when 'buflisted' changes, trigger autocommands if (args->os_oldval.boolean != buf->b_p_bl) { - apply_autocmds(buf->b_p_bl ? EVENT_BUFADD : EVENT_BUFDELETE, - NULL, NULL, true, buf); + apply_autocmds(buf->b_p_bl ? EVENT_BUFADD : EVENT_BUFDELETE, NULL, NULL, true, buf); } return NULL; } @@ -2193,7 +2146,7 @@ static const char *did_set_lisp(optset_T *args) { buf_T *buf = (buf_T *)args->os_buf; // When 'lisp' option changes include/exclude '-' in keyword characters. - (void)buf_init_chartab(buf, false); // ignore errors + (void)buf_init_chartab(buf, false); // ignore errors return NULL; } @@ -2262,9 +2215,8 @@ static const char *did_set_paste(optset_T *args FUNC_ATTR_UNUSED) if (buf->b_p_vsts_nopaste) { xfree(buf->b_p_vsts_nopaste); } - buf->b_p_vsts_nopaste = buf->b_p_vsts && buf->b_p_vsts != empty_string_option - ? xstrdup(buf->b_p_vsts) - : NULL; + buf->b_p_vsts_nopaste + = buf->b_p_vsts && buf->b_p_vsts != empty_string_option ? xstrdup(buf->b_p_vsts) : NULL; } // save global options @@ -2288,11 +2240,11 @@ static const char *did_set_paste(optset_T *args FUNC_ATTR_UNUSED) // already on. // set options for each buffer FOR_ALL_BUFFERS(buf) { - buf->b_p_tw = 0; // textwidth is 0 - buf->b_p_wm = 0; // wrapmargin is 0 - buf->b_p_sts = 0; // softtabstop is 0 - buf->b_p_ai = 0; // no auto-indent - buf->b_p_et = 0; // no expandtab + buf->b_p_tw = 0; // textwidth is 0 + buf->b_p_wm = 0; // wrapmargin is 0 + buf->b_p_sts = 0; // softtabstop is 0 + buf->b_p_ai = 0; // no auto-indent + buf->b_p_et = 0; // no expandtab if (buf->b_p_vsts) { free_string_option(buf->b_p_vsts); } @@ -2301,13 +2253,13 @@ static const char *did_set_paste(optset_T *args FUNC_ATTR_UNUSED) } // set global options - p_sm = 0; // no showmatch - p_sta = 0; // no smarttab + p_sm = 0; // no showmatch + p_sta = 0; // no smarttab if (p_ru) { - status_redraw_all(); // redraw to remove the ruler + status_redraw_all(); // redraw to remove the ruler } - p_ru = 0; // no ruler - p_ri = 0; // no reverse insert + p_ru = 0; // no ruler + p_ri = 0; // no reverse insert // set global values for local buffer options p_tw = 0; p_wm = 0; @@ -2344,7 +2296,7 @@ static const char *did_set_paste(optset_T *args FUNC_ATTR_UNUSED) p_sm = save_sm; p_sta = save_sta; if (p_ru != save_ru) { - status_redraw_all(); // redraw to draw the ruler + status_redraw_all(); // redraw to draw the ruler } p_ru = save_ru; p_ri = save_ri; @@ -2525,11 +2477,11 @@ static const char *did_set_swapfile(optset_T *args) buf_T *buf = (buf_T *)args->os_buf; // when 'swf' is set, create swapfile, when reset remove swapfile if (buf->b_p_swf && p_uc) { - ml_open_file(buf); // create the swap file + ml_open_file(buf); // create the swap file } else { // no need to reset curbuf->b_may_swap, ml_open_file() will check // buf->b_p_swf - mf_close_file(buf, true); // remove the swap file + mf_close_file(buf, true); // remove the swap file } return NULL; } @@ -2582,9 +2534,8 @@ static const char *did_set_undofile(optset_T *args) // only for the current buffer: Try to read in the undofile, // if one exists, the buffer wasn't changed and the buffer was // loaded - if ((curbuf == bp - || (args->os_flags & OPT_GLOBAL) || args->os_flags == 0) - && !bufIsChanged(bp) && bp->b_ml.ml_mfp != NULL) { + if ((curbuf == bp || (args->os_flags & OPT_GLOBAL) || args->os_flags == 0) && !bufIsChanged(bp) + && bp->b_ml.ml_mfp != NULL) { u_compute_hash(bp, hash); u_read_undo(NULL, hash, bp->b_fname); } @@ -2620,9 +2571,9 @@ static const char *did_set_undolevels(optset_T *args) buf_T *buf = (buf_T *)args->os_buf; OptInt *pp = (OptInt *)args->os_varp; - if (pp == &p_ul) { // global 'undolevels' + if (pp == &p_ul) { // global 'undolevels' did_set_global_undolevels(args->os_newval.number, args->os_oldval.number); - } else if (pp == &curbuf->b_p_ul) { // buffer local 'undolevels' + } else if (pp == &curbuf->b_p_ul) { // buffer local 'undolevels' did_set_buflocal_undolevels(buf, args->os_newval.number, args->os_oldval.number); } @@ -2729,8 +2680,8 @@ static void do_syntax_autocmd(buf_T *buf, bool value_changed) syn_recursive++; // Only pass true for "force" when the value changed or not used // recursively, to avoid endless recurrence. - apply_autocmds(EVENT_SYNTAX, buf->b_p_syn, buf->b_fname, - value_changed || syn_recursive == 1, buf); + apply_autocmds(EVENT_SYNTAX, buf->b_p_syn, buf->b_fname, value_changed || syn_recursive == 1, + buf); buf->b_flags |= BF_SYN_SET; syn_recursive--; } @@ -3097,9 +3048,7 @@ int findoption_len(const char *const arg, const size_t len) bool is_tty_option(const char *name) FUNC_ATTR_NONNULL_ALL FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT { - return (name[0] == 't' && name[1] == '_') - || strequal(name, "term") - || strequal(name, "ttytype"); + return (name[0] == 't' && name[1] == '_') || strequal(name, "term") || strequal(name, "ttytype"); } #define TCO_BUFFER_SIZE 8 @@ -3170,8 +3119,7 @@ bool set_tty_option(const char *name, char *value) /// @param[in] arg Option name. /// /// @return Option index or -1 if option was not found. -int findoption(const char *const arg) - FUNC_ATTR_NONNULL_ALL +int findoption(const char *const arg) FUNC_ATTR_NONNULL_ALL { return findoption_len(arg, strlen(arg)); } @@ -3548,20 +3496,18 @@ static const char *did_set_option(int opt_idx, void *varp, OptVal old_value, Opt bool free_oldval = (opt->flags & P_ALLOCED); bool value_changed = false; - optset_T did_set_cb_args = { - .os_varp = varp, - .os_idx = opt_idx, - .os_flags = opt_flags, - .os_oldval = old_value.data, - .os_newval = new_value.data, - .os_value_checked = false, - .os_value_changed = false, - .os_restore_chartab = false, - .os_errbuf = errbuf, - .os_errbuflen = errbuflen, - .os_buf = curbuf, - .os_win = curwin - }; + optset_T did_set_cb_args = { .os_varp = varp, + .os_idx = opt_idx, + .os_flags = opt_flags, + .os_oldval = old_value.data, + .os_newval = new_value.data, + .os_value_checked = false, + .os_value_changed = false, + .os_restore_chartab = false, + .os_errbuf = errbuf, + .os_errbuflen = errbuflen, + .os_buf = curbuf, + .os_win = curwin }; // Disallow changing immutable options. if (opt->immutable && !optval_equal(old_value, new_value)) { @@ -3615,8 +3561,8 @@ static const char *did_set_option(int opt_idx, void *varp, OptVal old_value, Opt // Check the bound for num options. if (new_value.type == kOptValTypeNumber) { - errmsg = check_num_option_bounds((OptInt *)varp, old_value.data.number, errbuf, errbuflen, - errmsg); + errmsg + = check_num_option_bounds((OptInt *)varp, old_value.data.number, errbuf, errbuflen, errmsg); // Re-assign new_value because the new value was modified by the bound check. new_value = optval_from_varp(opt_idx, varp); } @@ -3704,12 +3650,10 @@ static const char *set_option(const int opt_idx, void *varp, OptVal value, int o vimoption_T *opt = &options[opt_idx]; - static const char *optval_type_names[] = { - [kOptValTypeNil] = "Nil", - [kOptValTypeBoolean] = "Boolean", - [kOptValTypeNumber] = "Number", - [kOptValTypeString] = "String" - }; + static const char *optval_type_names[] = { [kOptValTypeNil] = "Nil", + [kOptValTypeBoolean] = "Boolean", + [kOptValTypeNumber] = "Number", + [kOptValTypeString] = "String" }; if (value.type == kOptValTypeNil) { // Don't try to unset local value if scope is global. @@ -3899,8 +3843,8 @@ int find_key_option_len(const char *arg_arg, size_t len, bool has_lt) } else if (has_lt) { arg--; // put arg at the '<' int modifiers = 0; - key = find_special_key(&arg, len + 1, &modifiers, - FSK_KEYCODE | FSK_KEEP_X_KEY | FSK_SIMPLIFY, NULL); + key = find_special_key(&arg, len + 1, &modifiers, FSK_KEYCODE | FSK_KEEP_X_KEY | FSK_SIMPLIFY, + NULL); if (modifiers) { // can't handle modifiers here key = 0; } @@ -3959,13 +3903,12 @@ static void showoptions(bool all, int opt_flags) if (opt_flags & OPT_ONECOLUMN) { len = Columns; } else if (p->flags & P_BOOL) { - len = 1; // a toggle option fits always + len = 1; // a toggle option fits always } else { option_value2string(p, opt_flags); len = (int)strlen(p->fullname) + vim_strsize(NameBuff) + 1; } - if ((len <= INC - GAP && run == 1) - || (len > INC - GAP && run == 2)) { + if ((len <= INC - GAP && run == 1) || (len > INC - GAP && run == 2)) { items[item_count++] = p; } } @@ -3975,26 +3918,24 @@ static void showoptions(bool all, int opt_flags) // display the items if (run == 1) { - assert(Columns <= INT_MAX - GAP - && Columns + GAP >= INT_MIN + 3 - && (Columns + GAP - 3) / INC >= INT_MIN - && (Columns + GAP - 3) / INC <= INT_MAX); + assert(Columns <= INT_MAX - GAP && Columns + GAP >= INT_MIN + 3 + && (Columns + GAP - 3) / INC >= INT_MIN && (Columns + GAP - 3) / INC <= INT_MAX); int cols = (Columns + GAP - 3) / INC; if (cols == 0) { cols = 1; } rows = (item_count + cols - 1) / cols; - } else { // run == 2 + } else { // run == 2 rows = item_count; } for (int row = 0; row < rows && !got_int; row++) { - msg_putchar('\n'); // go to next line - if (got_int) { // 'q' typed in more + msg_putchar('\n'); // go to next line + if (got_int) { // 'q' typed in more break; } int col = 0; for (int i = row; i < item_count; i += rows) { - msg_col = col; // make columns + msg_col = col; // make columns showoneopt(items[i], opt_flags); col += INC; } @@ -4008,7 +3949,7 @@ static void showoptions(bool all, int opt_flags) static int optval_default(vimoption_T *p, const void *varp) { if (varp == NULL) { - return true; // hidden option is always at default + return true; // hidden option is always at default } if (p->flags & P_NUM) { return *(OptInt *)varp == (OptInt)(intptr_t)p->def_val; @@ -4055,13 +3996,13 @@ static void showoneopt(vimoption_T *p, int opt_flags) int save_silent = silent_mode; silent_mode = false; - info_message = true; // use os_msg(), not os_errmsg() + info_message = true; // use os_msg(), not os_errmsg() void *varp = get_varp_scope(p, opt_flags); // for 'modified' we also need to check if 'ff' or 'fenc' changed. - if ((p->flags & P_BOOL) && ((int *)varp == &curbuf->b_changed - ? !curbufIsChanged() : !*(int *)varp)) { + if ((p->flags & P_BOOL) + && ((int *)varp == &curbuf->b_changed ? !curbufIsChanged() : !*(int *)varp)) { msg_puts("no"); } else if ((p->flags & P_BOOL) && *(int *)varp < 0) { msg_puts("--"); @@ -4111,8 +4052,7 @@ int makeset(FILE *fd, int opt_flags, int local_only) // P_PRI_MKRC flag and once without. for (int pri = 1; pri >= 0; pri--) { for (vimoption_T *p = &options[0]; p->fullname; p++) { - if (!(p->flags & P_NO_MKRC) - && ((pri == 1) == ((p->flags & P_PRI_MKRC) != 0))) { + if (!(p->flags & P_NO_MKRC) && ((pri == 1) == ((p->flags & P_PRI_MKRC) != 0))) { // skip global option when only doing locals if (p->indir == PV_NONE && !(opt_flags & OPT_GLOBAL)) { continue; @@ -4134,8 +4074,7 @@ int makeset(FILE *fd, int opt_flags, int local_only) continue; } - if ((opt_flags & OPT_SKIPRTP) - && (p->var == &p_rtp || p->var == &p_pp)) { + if ((opt_flags & OPT_SKIPRTP) && (p->var == &p_rtp || p->var == &p_pp)) { continue; } @@ -4178,14 +4117,13 @@ int makeset(FILE *fd, int opt_flags, int local_only) if (put_setnum(fd, cmd, p->fullname, (OptInt *)varp) == FAIL) { return FAIL; } - } else { // P_STRING + } else { // P_STRING int do_endif = false; // Don't set 'syntax' and 'filetype' again if the value is // already right, avoids reloading the syntax file. if (p->indir == PV_SYN || p->indir == PV_FT) { - if (fprintf(fd, "if &%s != '%s'", p->fullname, - *(char **)(varp)) < 0 + if (fprintf(fd, "if &%s != '%s'", p->fullname, *(char **)(varp)) < 0 || put_eol(fd) < 0) { return FAIL; } @@ -4245,8 +4183,7 @@ static int put_setstring(FILE *fd, char *cmd, char *name, char **valuep, uint64_ // If the option value is longer than MAXPATHL, we need to append // each comma separated part of the option separately, so that it // can be expanded when read back. - if (size >= MAXPATHL && (flags & P_COMMA) != 0 - && vim_strchr(*valuep, ',') != NULL) { + if (size >= MAXPATHL && (flags & P_COMMA) != 0 && vim_strchr(*valuep, ',') != NULL) { part = xmalloc(size); // write line break to clear the option, e.g. ':set rtp=' @@ -4310,11 +4247,10 @@ static int put_setnum(FILE *fd, char *cmd, char *name, OptInt *valuep) static int put_setbool(FILE *fd, char *cmd, char *name, int value) { - if (value < 0) { // global/local option using global value + if (value < 0) { // global/local option using global value return OK; } - if (fprintf(fd, "%s %s%s", cmd, value ? "" : "no", name) < 0 - || put_eol(fd) < 0) { + if (fprintf(fd, "%s %s%s", cmd, value ? "" : "no", name) < 0 || put_eol(fd) < 0) { return FAIL; } return OK; @@ -4387,7 +4323,7 @@ void *get_varp_scope_from(vimoption_T *p, int scope, buf_T *buf, win_T *win) case PV_VE: return &(win->w_p_ve); } - return NULL; // "cannot happen" + return NULL; // "cannot happen" } return get_varp_from(p, buf, win); } @@ -4587,6 +4523,8 @@ void *get_varp_from(vimoption_T *p, buf_T *buf, win_T *win) return &(buf->b_p_cfu); case PV_OFU: return &(buf->b_p_ofu); + case PV_URF: + return &(buf->b_p_urf); case PV_EOF: return &(buf->b_p_eof); case PV_EOL: @@ -4667,6 +4605,8 @@ void *get_varp_from(vimoption_T *p, buf_T *buf, win_T *win) return &(buf->b_p_sw); case PV_TFU: return &(buf->b_p_tfu); + case PV_UMF: + return &(buf->b_p_umf); case PV_TS: return &(buf->b_p_ts); case PV_TW: @@ -4790,7 +4730,7 @@ void copy_winopt(winopt_T *from, winopt_T *to) // Copy the script context so that we know were the value was last set. memmove(to->wo_script_ctx, from->wo_script_ctx, sizeof(to->wo_script_ctx)); - check_winopt(to); // don't want NULL pointers + check_winopt(to); // don't want NULL pointers } /// Check string options in a window for a NULL value. @@ -4898,7 +4838,7 @@ static void init_buf_opt_idx(void) void buf_copy_options(buf_T *buf, int flags) { int should_copy = true; - char *save_p_isk = NULL; // init for GCC + char *save_p_isk = NULL; // init for GCC int did_isk = false; // Skip this when the option defaults have not been set yet. Happens when @@ -4918,8 +4858,7 @@ void buf_copy_options(buf_T *buf, int flags) /// if ((vim_strchr(p_cpo, CPO_BUFOPTGLOB) == NULL || !(flags & BCO_ENTER)) && (buf->b_p_initialized - || (!(flags & BCO_ENTER) - && vim_strchr(p_cpo, CPO_BUFOPT) != NULL))) { + || (!(flags & BCO_ENTER) && vim_strchr(p_cpo, CPO_BUFOPT) != NULL))) { should_copy = false; } @@ -4930,7 +4869,7 @@ void buf_copy_options(buf_T *buf, int flags) // BCO_NOHELP is given or the options were initialized already // (jumping back to a help file with CTRL-T or CTRL-O) bool dont_do_help = ((flags & BCO_NOHELP) && buf->b_help) || buf->b_p_initialized; - if (dont_do_help) { // don't free b_p_isk + if (dont_do_help) { // don't free b_p_isk save_p_isk = buf->b_p_isk; buf->b_p_isk = NULL; } @@ -4938,7 +4877,7 @@ void buf_copy_options(buf_T *buf, int flags) // reset 'readonly' and copy 'fileformat'. if (!buf->b_p_initialized) { free_buf_options(buf, true); - buf->b_p_ro = false; // don't copy readonly + buf->b_p_ro = false; // don't copy readonly buf->b_p_fenc = xstrdup(p_fenc); switch (*p_ffs) { case 'm': @@ -5007,9 +4946,13 @@ void buf_copy_options(buf_T *buf, int flags) set_buflocal_cfu_callback(buf); buf->b_p_ofu = xstrdup(p_ofu); COPY_OPT_SCTX(buf, BV_OFU); + buf->b_p_urf = xstrdup(p_urf); + COPY_OPT_SCTX(buf, BV_URF); set_buflocal_ofu_callback(buf); buf->b_p_tfu = xstrdup(p_tfu); COPY_OPT_SCTX(buf, BV_TFU); + buf->b_p_umf = xstrdup(p_umf); + COPY_OPT_SCTX(buf, BV_UMF); set_buflocal_tfu_callback(buf); buf->b_p_sts = p_sts; COPY_OPT_SCTX(buf, BV_STS); @@ -5161,7 +5104,7 @@ void buf_copy_options(buf_T *buf, int flags) } } - check_buf_options(buf); // make sure we don't have NULLs + check_buf_options(buf); // make sure we don't have NULLs if (did_isk) { (void)buf_init_chartab(buf, false); } @@ -5247,12 +5190,12 @@ void set_context_in_set_cmd(expand_T *xp, char *arg, int opt_flags) if (*arg == '<') { while (*p != '>') { - if (*p++ == NUL) { // expand terminal option name + if (*p++ == NUL) { // expand terminal option name return; } } int key = get_special_key_code(arg + 1); - if (key == 0) { // unknown name + if (key == 0) { // unknown name xp->xp_context = EXPAND_NOTHING; return; } @@ -5267,7 +5210,7 @@ void set_context_in_set_cmd(expand_T *xp, char *arg, int opt_flags) p++; } if (*p == NUL) { - return; // expand option name + return; // expand option name } nextchar = *++p; is_term_option = true; @@ -5307,8 +5250,7 @@ void set_context_in_set_cmd(expand_T *xp, char *arg, int opt_flags) p++; nextchar = '='; } - if ((nextchar != '=' && nextchar != ':') - || xp->xp_context == EXPAND_BOOL_SETTINGS) { + if ((nextchar != '=' && nextchar != ':') || xp->xp_context == EXPAND_BOOL_SETTINGS) { xp->xp_context = EXPAND_UNSUCCESSFUL; return; } @@ -5340,8 +5282,7 @@ void set_context_in_set_cmd(expand_T *xp, char *arg, int opt_flags) if (expand_option_subtract) { xp->xp_context = EXPAND_SETTING_SUBTRACT; return; - } else if (expand_option_idx >= 0 - && options[expand_option_idx].opt_expand_cb != NULL) { + } else if (expand_option_idx >= 0 && options[expand_option_idx].opt_expand_cb != NULL) { xp->xp_context = EXPAND_STRING_SETTING; } else if (*xp->xp_pattern == NUL) { xp->xp_context = EXPAND_OLD_SETTING; @@ -5359,13 +5300,8 @@ void set_context_in_set_cmd(expand_T *xp, char *arg, int opt_flags) // Options that have P_EXPAND are considered to all use file/dir expansion. if (flags & P_EXPAND) { p = options[opt_idx].var; - if (p == (char *)&p_bdir - || p == (char *)&p_dir - || p == (char *)&p_path - || p == (char *)&p_pp - || p == (char *)&p_rtp - || p == (char *)&p_cdpath - || p == (char *)&p_vdir) { + if (p == (char *)&p_bdir || p == (char *)&p_dir || p == (char *)&p_path || p == (char *)&p_pp + || p == (char *)&p_rtp || p == (char *)&p_cdpath || p == (char *)&p_vdir) { xp->xp_context = EXPAND_DIRECTORIES; if (p == (char *)&p_path || p == (char *)&p_cdpath) { xp->xp_backslash = XP_BS_THREE; @@ -5489,10 +5425,9 @@ int ExpandSettings(expand_T *xp, regmatch_T *regmatch, char *fuzzystr, int *numM for (int loop = 0; loop <= 1; loop++) { regmatch->rm_ic = ic; if (xp->xp_context != EXPAND_BOOL_SETTINGS) { - for (int match = 0; match < (int)ARRAY_SIZE(names); - match++) { - if (match_str(names[match], regmatch, *matches, - count, (loop == 0), fuzzy, fuzzystr, fuzmatch)) { + for (int match = 0; match < (int)ARRAY_SIZE(names); match++) { + if (match_str(names[match], regmatch, *matches, count, (loop == 0), fuzzy, fuzzystr, + fuzmatch)) { if (loop == 0) { num_normal++; } else { @@ -5502,18 +5437,15 @@ int ExpandSettings(expand_T *xp, regmatch_T *regmatch, char *fuzzystr, int *numM } } char *str; - for (size_t opt_idx = 0; (str = options[opt_idx].fullname) != NULL; - opt_idx++) { + for (size_t opt_idx = 0; (str = options[opt_idx].fullname) != NULL; opt_idx++) { if (options[opt_idx].var == NULL) { continue; } - if (xp->xp_context == EXPAND_BOOL_SETTINGS - && !(options[opt_idx].flags & P_BOOL)) { + if (xp->xp_context == EXPAND_BOOL_SETTINGS && !(options[opt_idx].flags & P_BOOL)) { continue; } - if (match_str(str, regmatch, *matches, count, (loop == 0), - fuzzy, fuzzystr, fuzmatch)) { + if (match_str(str, regmatch, *matches, count, (loop == 0), fuzzy, fuzzystr, fuzmatch)) { if (loop == 0) { num_normal++; } else { @@ -5566,10 +5498,8 @@ static char *escape_option_str_cmdline(char *var) // before a file name character. // The reverse is found at stropt_copy_value(). for (var = buf; *var != NUL; MB_PTR_ADV(var)) { - if (var[0] == '\\' && var[1] == '\\' - && expand_option_idx >= 0 - && (options[expand_option_idx].flags & P_EXPAND) - && vim_isfilec((uint8_t)var[2]) + if (var[0] == '\\' && var[1] == '\\' && expand_option_idx >= 0 + && (options[expand_option_idx].flags & P_EXPAND) && vim_isfilec((uint8_t)var[2]) && (var[2] != '\\' || (var == buf && var[4] != '\\'))) { STRMOVE(var, var + 1); } @@ -5609,8 +5539,7 @@ int ExpandOldSetting(int *numMatches, char ***matches) /// Expansion handler for :set=/:set+= when the option has a custom expansion handler. int ExpandStringSetting(expand_T *xp, regmatch_T *regmatch, int *numMatches, char ***matches) { - if (expand_option_idx < 0 - || options[expand_option_idx].opt_expand_cb == NULL) { + if (expand_option_idx < 0 || options[expand_option_idx].opt_expand_cb == NULL) { // Not supposed to reach this. This function is only for options with // custom expansion callbacks. return FAIL; @@ -5647,9 +5576,8 @@ int ExpandSettingSubtract(expand_T *xp, regmatch_T *regmatch, int *numMatches, c return ExpandOldSetting(numMatches, matches); } - char *option_val = *(char **)get_option_varp_scope_from(expand_option_idx, - expand_option_flags, - curbuf, curwin); + char *option_val + = *(char **)get_option_varp_scope_from(expand_option_idx, expand_option_flags, curbuf, curwin); uint32_t option_flags = options[expand_option_idx].flags; @@ -5760,10 +5688,7 @@ static void option_value2string(vimoption_T *opp, int scope) } else if (wc != 0) { xstrlcpy(NameBuff, transchar((int)wc), sizeof(NameBuff)); } else { - snprintf(NameBuff, - sizeof(NameBuff), - "%" PRId64, - (int64_t)(*(OptInt *)varp)); + snprintf(NameBuff, sizeof(NameBuff), "%" PRId64, (int64_t)(*(OptInt *)varp)); } } else { // P_STRING varp = *(char **)(varp); @@ -5797,8 +5722,7 @@ bool shortmess(int x) { return (p_shm != NULL && (vim_strchr(p_shm, x) != NULL - || (vim_strchr(p_shm, 'a') != NULL - && vim_strchr(SHM_ALL_ABBREVIATIONS, x) != NULL))); + || (vim_strchr(p_shm, 'a') != NULL && vim_strchr(SHM_ALL_ABBREVIATIONS, x) != NULL))); } /// vimrc_found() - Called when a vimrc or "VIMINIT" has been found. @@ -5922,8 +5846,7 @@ int option_set_callback_func(char *optval, Callback *optcb) } typval_T *tv; - if (*optval == '{' - || (strncmp(optval, "function(", 9) == 0) + if (*optval == '{' || (strncmp(optval, "function(", 9) == 0) || (strncmp(optval, "funcref(", 8) == 0)) { // Lambda expression or a funcref tv = eval_expr(optval, NULL); @@ -6009,8 +5932,7 @@ unsigned get_ve_flags(void) /// /// @param win If not NULL, the window to get the local option from; global /// otherwise. -char *get_showbreak_value(win_T *const win) - FUNC_ATTR_WARN_UNUSED_RESULT +char *get_showbreak_value(win_T *const win) FUNC_ATTR_WARN_UNUSED_RESULT { if (win->w_p_sbr == NULL || *win->w_p_sbr == NUL) { return p_sbr; @@ -6040,16 +5962,14 @@ int get_fileformat(const buf_T *buf) /// argument. /// /// @param eap can be NULL! -int get_fileformat_force(const buf_T *buf, const exarg_T *eap) - FUNC_ATTR_NONNULL_ARG(1) +int get_fileformat_force(const buf_T *buf, const exarg_T *eap) FUNC_ATTR_NONNULL_ARG(1) { int c; if (eap != NULL && eap->force_ff != 0) { c = eap->force_ff; } else { - if ((eap != NULL && eap->force_bin != 0) - ? (eap->force_bin == FORCE_BIN) : buf->b_p_bin) { + if ((eap != NULL && eap->force_bin != 0) ? (eap->force_bin == FORCE_BIN) : buf->b_p_bin) { return EOL_UNIX; } c = (unsigned char)(*buf->b_p_ff); @@ -6152,7 +6072,7 @@ size_t copy_option_part(char **option, char *buf, size_t maxlen, char *sep_chars if (*p != NUL && *p != ',') { // skip non-standard separator p++; } - p = skip_to_option_part(p); // p points to next file name + p = skip_to_option_part(p); // p points to next file name *option = p; return len; @@ -6185,25 +6105,21 @@ int win_signcol_count(win_T *wp) } /// Get window or buffer local options -dict_T *get_winbuf_options(const int bufopt) - FUNC_ATTR_WARN_UNUSED_RESULT +dict_T *get_winbuf_options(const int bufopt) FUNC_ATTR_WARN_UNUSED_RESULT { dict_T *const d = tv_dict_alloc(); for (int opt_idx = 0; options[opt_idx].fullname; opt_idx++) { struct vimoption *opt = &options[opt_idx]; - if ((bufopt && (opt->indir & PV_BUF)) - || (!bufopt && (opt->indir & PV_WIN))) { + if ((bufopt && (opt->indir & PV_BUF)) || (!bufopt && (opt->indir & PV_WIN))) { void *varp = get_varp(opt); if (varp != NULL) { if (opt->flags & P_STRING) { - tv_dict_add_str(d, opt->fullname, strlen(opt->fullname), - *(const char **)varp); + tv_dict_add_str(d, opt->fullname, strlen(opt->fullname), *(const char **)varp); } else if (opt->flags & P_NUM) { - tv_dict_add_nr(d, opt->fullname, strlen(opt->fullname), - *(OptInt *)varp); + tv_dict_add_nr(d, opt->fullname, strlen(opt->fullname), *(OptInt *)varp); } else { tv_dict_add_nr(d, opt->fullname, strlen(opt->fullname), *(int *)varp); } @@ -6235,9 +6151,8 @@ int get_sidescrolloff_value(win_T *wp) Dictionary get_vimoption(String name, int scope, buf_T *buf, win_T *win, Error *err) { int opt_idx = findoption_len(name.data, name.size); - VALIDATE_S(opt_idx >= 0, "option (not found)", name.data, { - return (Dictionary)ARRAY_DICT_INIT; - }); + VALIDATE_S(opt_idx >= 0, "option (not found)", name.data, + { return (Dictionary)ARRAY_DICT_INIT; }); return vimoption2dict(&options[opt_idx], scope, buf, win); } @@ -6311,7 +6226,8 @@ static Dictionary vimoption2dict(vimoption_T *opt, int req_scope, buf_T *buf, wi type = "boolean"; def = BOOLEAN_OBJ((intptr_t)def_val); } else { - type = ""; def = NIL; + type = ""; + def = NIL; } PUT(dict, "type", CSTR_TO_OBJ(type)); PUT(dict, "default", def); |