diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/file_search.c | 2 | ||||
-rw-r--r-- | src/nvim/option.c | 109 | ||||
-rw-r--r-- | src/nvim/optionstr.c | 2 | ||||
-rw-r--r-- | src/nvim/path.c | 2 |
4 files changed, 17 insertions, 98 deletions
diff --git a/src/nvim/file_search.c b/src/nvim/file_search.c index 1bfbe2e634..b5cdeff21c 100644 --- a/src/nvim/file_search.c +++ b/src/nvim/file_search.c @@ -1469,7 +1469,7 @@ char *find_file_in_path_option(char *ptr, size_t len, int options, int first, ch // copy next path buf[0] = 0; - copy_option_part(&dir, buf, MAXPATHL, " ,"); + copy_option_part(&dir, buf, MAXPATHL, ","); // get the stopdir string r_ptr = vim_findfile_stopdir(buf); diff --git a/src/nvim/option.c b/src/nvim/option.c index 598ae8e490..bece6f3605 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -842,77 +842,6 @@ static void do_set_num(int opt_idx, int opt_flags, char **argp, int nextchar, co errbuf, errbuflen, opt_flags); } -// Handle some special cases with string option values -static void munge_string_opt_val(char **varp, char **oldval, char **const origval, - char **const origval_l, char **const origval_g, char **const argp, - char *const whichwrap, size_t whichwraplen, char **const save_argp) -{ - // Set 'keywordprg' to ":help" if an empty - // value was passed to :set by the user. - if (varp == &p_kp && (**argp == NUL || **argp == ' ')) { - *save_argp = *argp; - *argp = ":help"; - } else if (varp == &p_bs && ascii_isdigit((uint8_t)(**varp))) { - // Convert 'backspace' number to string, for - // adding, prepending and removing string. - const int i = getdigits_int(varp, true, 0); - switch (i) { - case 0: - *varp = empty_option; - break; - case 1: - *varp = xstrdup("indent,eol"); - break; - case 2: - *varp = xstrdup("indent,eol,start"); - break; - case 3: - *varp = xstrdup("indent,eol,nostop"); - break; - } - xfree(*oldval); - if (*origval == *oldval) { - *origval = *varp; - } - if (*origval_l == *oldval) { - *origval_l = *varp; - } - if (*origval_g == *oldval) { - *origval_g = *varp; - } - *oldval = *varp; - } else if (varp == &p_ww && ascii_isdigit(**argp)) { - // Convert 'whichwrap' number to string, for backwards compatibility - // with Vim 3.0. - *whichwrap = NUL; - int i = getdigits_int(argp, true, 0); - if (i & 1) { - xstrlcat(whichwrap, "b,", whichwraplen); - } - if (i & 2) { - xstrlcat(whichwrap, "s,", whichwraplen); - } - if (i & 4) { - xstrlcat(whichwrap, "h,l,", whichwraplen); - } - if (i & 8) { - xstrlcat(whichwrap, "<,>,", whichwraplen); - } - if (i & 16) { - xstrlcat(whichwrap, "[,],", whichwraplen); - } - if (*whichwrap != NUL) { // remove trailing , - whichwrap[strlen(whichwrap) - 1] = NUL; - } - *save_argp = *argp; - *argp = whichwrap; - } else if (**argp == '>' && (varp == &p_dir || varp == &p_bdir)) { - // Remove '>' before 'dir' and 'bdir', for backwards compatibility with - // version 3.0 - (*argp)++; - } -} - /// Get the default value for a string option. static char *stropt_get_default_val(int opt_idx, uint64_t flags) { @@ -1084,20 +1013,14 @@ static void stropt_remove_dupflags(char *newval, uint32_t flags) /// set {opt}< /// set {opt}={val} /// set {opt}:{val} -static char *stropt_get_newval(int nextchar, int opt_idx, char **argp, void *varp, - char **origval_arg, char **origval_l_arg, char **origval_g_arg, - char **oldval_arg, set_op_T *op_arg, uint32_t flags) +static char *stropt_get_newval(int nextchar, int opt_idx, char **argp, void *varp, char *origval, + set_op_T *op_arg, uint32_t flags) { char *arg = *argp; - char *origval = *origval_arg; - char *origval_l = *origval_l_arg; - char *origval_g = *origval_g_arg; - char *oldval = *oldval_arg; set_op_T op = *op_arg; char *save_arg = NULL; char *newval; char *s = NULL; - char whichwrap[80]; if (nextchar == '&') { // set to default val newval = stropt_get_default_val(opt_idx, flags); } else if (nextchar == '<') { // set to global val @@ -1105,8 +1028,12 @@ static char *stropt_get_newval(int nextchar, int opt_idx, char **argp, void *var } else { arg++; // jump to after the '=' or ':' - munge_string_opt_val((char **)varp, &oldval, &origval, &origval_l, &origval_g, &arg, - whichwrap, sizeof(whichwrap), &save_arg); + // Set 'keywordprg' to ":help" if an empty + // value was passed to :set by the user. + if (varp == &p_kp && (*arg == NUL || *arg == ' ')) { + save_arg = arg; + arg = ":help"; + } // Copy the new string into allocated memory. newval = stropt_copy_value(origval, &arg, op, flags); @@ -1155,10 +1082,6 @@ static char *stropt_get_newval(int nextchar, int opt_idx, char **argp, void *var arg = save_arg; // arg was temporarily changed, restore it } *argp = arg; - *origval_arg = origval; - *origval_l_arg = origval_l; - *origval_g_arg = origval_g; - *oldval_arg = oldval; *op_arg = op; return newval; @@ -1207,8 +1130,7 @@ static void do_set_option_string(int opt_idx, int opt_flags, char **argp, int ne } // Get the new value for the option - char *newval = stropt_get_newval(nextchar, opt_idx, &arg, varp, &origval, - &origval_l, &origval_g, &oldval, &op, flags); + char *newval = stropt_get_newval(nextchar, opt_idx, &arg, varp, origval, &op, flags); // Set the new value. *(char **)(varp) = newval; @@ -5903,16 +5825,13 @@ bool can_bs(int what) if (what == BS_START && bt_prompt(curbuf)) { return false; } - switch (*p_bs) { - case '3': - return true; - case '2': + + // support for number values was removed but we keep '2' since it is used in + // legacy tests + if (*p_bs == '2') { return what != BS_NOSTOP; - case '1': - return what != BS_START; - case '0': - return false; } + return vim_strchr(p_bs, what) != NULL; } diff --git a/src/nvim/optionstr.c b/src/nvim/optionstr.c index 3750574613..f07c05c113 100644 --- a/src/nvim/optionstr.c +++ b/src/nvim/optionstr.c @@ -1664,7 +1664,7 @@ const char *did_set_foldcolumn(optset_T *args) const char *did_set_backspace(optset_T *args FUNC_ATTR_UNUSED) { if (ascii_isdigit(*p_bs)) { - if (*p_bs > '3' || p_bs[1] != NUL) { + if (*p_bs != '2') { return e_invarg; } } else if (check_opt_strings(p_bs, p_bs_values, true) != OK) { diff --git a/src/nvim/path.c b/src/nvim/path.c index d1e0947038..3b36c2a550 100644 --- a/src/nvim/path.c +++ b/src/nvim/path.c @@ -847,7 +847,7 @@ static void expand_path_option(char *curdir, garray_T *gap) char *buf = xmalloc(MAXPATHL); while (*path_option != NUL) { - copy_option_part(&path_option, buf, MAXPATHL, " ,"); + copy_option_part(&path_option, buf, MAXPATHL, ","); if (buf[0] == '.' && (buf[1] == NUL || vim_ispathsep(buf[1]))) { // Relative to current buffer: |