aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/optionstr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/optionstr.c')
-rw-r--r--src/nvim/optionstr.c295
1 files changed, 148 insertions, 147 deletions
diff --git a/src/nvim/optionstr.c b/src/nvim/optionstr.c
index e4cdf883fe..808a70c8cb 100644
--- a/src/nvim/optionstr.c
+++ b/src/nvim/optionstr.c
@@ -122,21 +122,21 @@ static char_u SHM_ALL[] = { SHM_RO, SHM_MOD, SHM_FILE, SHM_LAST, SHM_TEXT, SHM_L
/// option values.
void didset_string_options(void)
{
- (void)opt_strings_flags(p_cmp, p_cmp_values, &cmp_flags, true);
- (void)opt_strings_flags(p_bkc, p_bkc_values, &bkc_flags, true);
- (void)opt_strings_flags(p_bo, p_bo_values, &bo_flags, true);
- (void)opt_strings_flags(p_ssop, p_ssop_values, &ssop_flags, true);
- (void)opt_strings_flags(p_vop, p_ssop_values, &vop_flags, true);
- (void)opt_strings_flags(p_fdo, p_fdo_values, &fdo_flags, true);
- (void)opt_strings_flags(p_dy, p_dy_values, &dy_flags, true);
- (void)opt_strings_flags(p_rdb, p_rdb_values, &rdb_flags, true);
- (void)opt_strings_flags(p_tc, p_tc_values, &tc_flags, false);
- (void)opt_strings_flags(p_tpf, p_tpf_values, &tpf_flags, true);
+ (void)opt_strings_flags((char_u *)p_cmp, p_cmp_values, &cmp_flags, true);
+ (void)opt_strings_flags((char_u *)p_bkc, p_bkc_values, &bkc_flags, true);
+ (void)opt_strings_flags((char_u *)p_bo, p_bo_values, &bo_flags, true);
+ (void)opt_strings_flags((char_u *)p_ssop, p_ssop_values, &ssop_flags, true);
+ (void)opt_strings_flags((char_u *)p_vop, p_ssop_values, &vop_flags, true);
+ (void)opt_strings_flags((char_u *)p_fdo, p_fdo_values, &fdo_flags, true);
+ (void)opt_strings_flags((char_u *)p_dy, p_dy_values, &dy_flags, true);
+ (void)opt_strings_flags((char_u *)p_rdb, p_rdb_values, &rdb_flags, true);
+ (void)opt_strings_flags((char_u *)p_tc, p_tc_values, &tc_flags, false);
+ (void)opt_strings_flags((char_u *)p_tpf, p_tpf_values, &tpf_flags, true);
(void)opt_strings_flags(p_ve, p_ve_values, &ve_flags, true);
- (void)opt_strings_flags(p_swb, p_swb_values, &swb_flags, true);
- (void)opt_strings_flags(p_wop, p_wop_values, &wop_flags, true);
- (void)opt_strings_flags(p_jop, p_jop_values, &jop_flags, true);
- (void)opt_strings_flags(p_cb, p_cb_values, &cb_flags, true);
+ (void)opt_strings_flags((char_u *)p_swb, p_swb_values, &swb_flags, true);
+ (void)opt_strings_flags((char_u *)p_wop, p_wop_values, &wop_flags, true);
+ (void)opt_strings_flags((char_u *)p_jop, p_jop_values, &jop_flags, true);
+ (void)opt_strings_flags((char_u *)p_cb, p_cb_values, &cb_flags, true);
}
/// Trigger the OptionSet autocommand.
@@ -281,19 +281,19 @@ void check_string_option(char **pp)
///
/// @param opt_idx option index
/// @param varp pointer to option variable
-static void set_string_option_global(int opt_idx, char_u **varp)
+static void set_string_option_global(int opt_idx, char **varp)
{
- char_u **p, *s;
+ char **p;
// the global value is always allocated
if (is_window_local_option(opt_idx)) {
- p = (char_u **)GLOBAL_WO(varp);
+ p = (char **)GLOBAL_WO(varp);
} else {
- p = (char_u **)get_option_var(opt_idx);
+ p = (char **)get_option_var(opt_idx);
}
if (!is_global_option(opt_idx) && p != varp) {
- s = vim_strsave(*varp);
- free_string_option((char *)(*p));
+ char *s = xstrdup(*varp);
+ free_string_option(*p);
*p = s;
}
}
@@ -339,7 +339,7 @@ void set_string_option_direct(const char *name, int opt_idx, const char *val, in
// For buffer/window local option may also set the global value.
if (both) {
- set_string_option_global(idx, (char_u **)varp);
+ set_string_option_global(idx, varp);
}
set_option_flag(idx, P_ALLOCED);
@@ -420,7 +420,7 @@ char *set_string_option(const int opt_idx, const char *const value, const int op
char *const saved_newval = xstrdup(s);
int value_checked = false;
- char *const errmsg = did_set_string_option(opt_idx, (char_u **)varp, (char_u *)oldval,
+ char *const errmsg = did_set_string_option(opt_idx, varp, oldval,
NULL, 0,
opt_flags, &value_checked);
if (errmsg == NULL) {
@@ -631,8 +631,8 @@ static int shada_idx = -1;
/// @param value_checked value was checked to be safe, no need to set P_INSECURE
///
/// @return NULL for success, or an untranslated error message for an error
-char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *errbuf,
- size_t errbuflen, int opt_flags, int *value_checked)
+char *did_set_string_option(int opt_idx, char **varp, char *oldval, char *errbuf, size_t errbuflen,
+ int opt_flags, int *value_checked)
{
char *errmsg = NULL;
char *s, *p;
@@ -650,20 +650,19 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
&& (get_option_flags(opt_idx) & P_SECURE)) {
errmsg = e_secure;
} else if (((get_option_flags(opt_idx) & P_NFNAME)
- && strpbrk((char *)(*varp),
- (secure ? "/\\*?[|;&<>\r\n" : "/\\*?[<>\r\n")) != NULL)
+ && strpbrk(*varp, (secure ? "/\\*?[|;&<>\r\n" : "/\\*?[<>\r\n")) != NULL)
|| ((get_option_flags(opt_idx) & P_NDNAME)
- && strpbrk((char *)(*varp), "*?[|;&<>\r\n") != NULL)) {
+ && strpbrk(*varp, "*?[|;&<>\r\n") != NULL)) {
// Check for a "normal" directory or file name in some options. Disallow a
// path separator (slash and/or backslash), wildcards and characters that
// are often illegal in a file name. Be more permissive if "secure" is off.
errmsg = e_invarg;
- } else if (gvarp == &p_bkc) { // 'backupcopy'
- char_u *bkc = p_bkc;
+ } else if (gvarp == (char_u **)&p_bkc) { // 'backupcopy'
+ char *bkc = p_bkc;
unsigned int *flags = &bkc_flags;
if (opt_flags & OPT_LOCAL) {
- bkc = (char_u *)curbuf->b_p_bkc;
+ bkc = curbuf->b_p_bkc;
flags = &curbuf->b_bkc_flags;
}
@@ -671,7 +670,7 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
// make the local value empty: use the global value
*flags = 0;
} else {
- if (opt_strings_flags(bkc, p_bkc_values, flags, true) != OK) {
+ if (opt_strings_flags((char_u *)bkc, p_bkc_values, flags, true) != OK) {
errmsg = e_invarg;
}
@@ -679,7 +678,7 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
+ ((*flags & BKC_YES) != 0)
+ ((*flags & BKC_NO) != 0) != 1) {
// Must have exactly one of "auto", "yes" and "no".
- (void)opt_strings_flags(oldval, p_bkc_values, flags, true);
+ (void)opt_strings_flags((char_u *)oldval, p_bkc_values, flags, true);
errmsg = e_invarg;
}
}
@@ -688,12 +687,12 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
*p_pm == '.' ? p_pm + 1 : p_pm) == 0) {
errmsg = e_backupext_and_patchmode_are_equal;
}
- } else if (varp == (char_u **)&curwin->w_p_briopt) { // 'breakindentopt'
+ } else if (varp == &curwin->w_p_briopt) { // 'breakindentopt'
if (briopt_check(curwin) == FAIL) {
errmsg = e_invarg;
}
} else if (varp == &p_isi
- || varp == (char_u **)&(curbuf->b_p_isk)
+ || varp == &(curbuf->b_p_isk)
|| varp == &p_isp
|| varp == &p_isf) {
// 'isident', 'iskeyword', 'isprint or 'isfname' option: refill g_chartab[]
@@ -713,14 +712,14 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
}
} else if (varp == &p_rtp || varp == &p_pp) { // 'runtimepath' 'packpath'
runtime_search_path_invalidate();
- } else if (varp == (char_u **)&curwin->w_p_culopt
+ } else if (varp == &curwin->w_p_culopt
|| gvarp == (char_u **)&curwin->w_allbuf_opt.wo_culopt) { // 'cursorlineopt'
- if (**varp == NUL || fill_culopt_flags(*varp, curwin) != OK) {
+ if (**varp == NUL || fill_culopt_flags((char_u *)(*varp), curwin) != OK) {
errmsg = e_invarg;
}
- } else if (varp == (char_u **)&curwin->w_p_cc) { // 'colorcolumn'
+ } else if (varp == &curwin->w_p_cc) { // 'colorcolumn'
errmsg = check_colorcolumn(curwin);
- } else if (varp == &p_hlg) { // 'helplang'
+ } else if (varp == (char **)&p_hlg) { // 'helplang'
// Check for "", "ab", "ab,cd", etc.
for (s = (char *)p_hlg; *s != NUL; s += 3) {
if (s[1] == NUL || ((s[2] != ',' || s[3] == NUL) && s[2] != NUL)) {
@@ -736,42 +735,42 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
errmsg = e_unsupportedoption;
}
} else if (varp == &p_jop) { // 'jumpoptions'
- if (opt_strings_flags(p_jop, p_jop_values, &jop_flags, true) != OK) {
+ if (opt_strings_flags((char_u *)p_jop, p_jop_values, &jop_flags, true) != OK) {
errmsg = e_invarg;
}
} else if (gvarp == &p_nf) { // 'nrformats'
- if (check_opt_strings(*varp, p_nf_values, true) != OK) {
+ if (check_opt_strings((char_u *)(*varp), p_nf_values, true) != OK) {
errmsg = e_invarg;
}
} else if (varp == &p_ssop) { // 'sessionoptions'
- if (opt_strings_flags(p_ssop, p_ssop_values, &ssop_flags, true) != OK) {
+ if (opt_strings_flags((char_u *)p_ssop, p_ssop_values, &ssop_flags, true) != OK) {
errmsg = e_invarg;
}
if ((ssop_flags & SSOP_CURDIR) && (ssop_flags & SSOP_SESDIR)) {
// Don't allow both "sesdir" and "curdir".
- (void)opt_strings_flags(oldval, p_ssop_values, &ssop_flags, true);
+ (void)opt_strings_flags((char_u *)oldval, p_ssop_values, &ssop_flags, true);
errmsg = e_invarg;
}
} else if (varp == &p_vop) { // 'viewoptions'
- if (opt_strings_flags(p_vop, p_ssop_values, &vop_flags, true) != OK) {
+ if (opt_strings_flags((char_u *)p_vop, p_ssop_values, &vop_flags, true) != OK) {
errmsg = e_invarg;
}
} else if (varp == &p_rdb) { // 'redrawdebug'
- if (opt_strings_flags(p_rdb, p_rdb_values, &rdb_flags, true) != OK) {
+ if (opt_strings_flags((char_u *)p_rdb, p_rdb_values, &rdb_flags, true) != OK) {
errmsg = e_invarg;
}
- } else if (varp == (char_u **)&p_sbo) { // 'scrollopt'
+ } else if (varp == &p_sbo) { // 'scrollopt'
if (check_opt_strings((char_u *)p_sbo, p_scbopt_values, true) != OK) {
errmsg = e_invarg;
}
} else if (varp == &p_ambw || (int *)varp == &p_emoji) { // 'ambiwidth'
- if (check_opt_strings(p_ambw, p_ambw_values, false) != OK) {
+ if (check_opt_strings((char_u *)p_ambw, p_ambw_values, false) != OK) {
errmsg = e_invarg;
} else {
errmsg = check_chars_options();
}
} else if (varp == &p_bg) { // 'background'
- if (check_opt_strings(p_bg, p_bg_values, false) == OK) {
+ if (check_opt_strings((char_u *)p_bg, p_bg_values, false) == OK) {
int dark = (*p_bg == 'd');
init_highlight(false, false);
@@ -781,9 +780,9 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
// value, that's not what we want here. Disable the color
// scheme and set the colors again.
do_unlet(S_LEN("g:colors_name"), true);
- free_string_option((char *)p_bg);
- p_bg = vim_strsave((char_u *)(dark ? "dark" : "light"));
- check_string_option((char **)&p_bg);
+ free_string_option(p_bg);
+ p_bg = xstrdup((dark ? "dark" : "light"));
+ check_string_option(&p_bg);
init_highlight(false, false);
}
} else {
@@ -794,24 +793,24 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
errmsg = e_invarg;
}
} else if (varp == &p_wop) { // 'wildoptions'
- if (opt_strings_flags(p_wop, p_wop_values, &wop_flags, true) != OK) {
+ if (opt_strings_flags((char_u *)p_wop, p_wop_values, &wop_flags, true) != OK) {
errmsg = e_invarg;
}
} else if (varp == &p_wak) { // 'winaltkeys'
if (*p_wak == NUL
- || check_opt_strings(p_wak, p_wak_values, false) != OK) {
+ || check_opt_strings((char_u *)p_wak, p_wak_values, false) != OK) {
errmsg = e_invarg;
}
} else if (varp == &p_ei) { // 'eventignore'
if (check_ei() == FAIL) {
errmsg = e_invarg;
}
- } else if (varp == &p_enc || gvarp == &p_fenc || gvarp == &p_menc) {
+ } else if (varp == &p_enc || gvarp == (char_u **)&p_fenc || gvarp == &p_menc) {
// 'encoding', 'fileencoding' and 'makeencoding'
- if (gvarp == &p_fenc) {
+ if (gvarp == (char_u **)&p_fenc) {
if (!MODIFIABLE(curbuf) && opt_flags != OPT_GLOBAL) {
errmsg = e_modifiable;
- } else if (vim_strchr((char *)(*varp), ',') != NULL) {
+ } else if (vim_strchr(*varp, ',') != NULL) {
// No comma allowed in 'fileencoding'; catches confusing it
// with 'fileencodings'.
errmsg = e_invarg;
@@ -825,9 +824,9 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
if (errmsg == NULL) {
// canonize the value, so that STRCMP() can be used on it
- p = (char *)enc_canonize(*varp);
+ p = (char *)enc_canonize((char_u *)(*varp));
xfree(*varp);
- *varp = (char_u *)p;
+ *varp = p;
if (varp == &p_enc) {
// only encoding=utf-8 allowed
if (STRCMP(p_enc, "utf-8") != 0) {
@@ -839,11 +838,11 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
}
} else if (varp == &p_penc) {
// Canonize printencoding if VIM standard one
- p = (char *)enc_canonize(p_penc);
+ p = (char *)enc_canonize((char_u *)p_penc);
xfree(p_penc);
- p_penc = (char_u *)p;
- } else if (varp == (char_u **)&curbuf->b_p_keymap) {
- if (!valid_filetype(*varp)) {
+ p_penc = p;
+ } else if (varp == &curbuf->b_p_keymap) {
+ if (!valid_filetype((char_u *)(*varp))) {
errmsg = e_invarg;
} else {
int secure_save = secure;
@@ -884,10 +883,10 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
}
status_redraw_curbuf();
}
- } else if (gvarp == &p_ff) { // 'fileformat'
+ } else if (gvarp == (char_u **)&p_ff) { // 'fileformat'
if (!MODIFIABLE(curbuf) && !(opt_flags & OPT_GLOBAL)) {
errmsg = e_modifiable;
- } else if (check_opt_strings(*varp, p_ff_values, false) != OK) {
+ } else if (check_opt_strings((char_u *)(*varp), p_ff_values, false) != OK) {
errmsg = e_invarg;
} else {
redraw_titles();
@@ -899,12 +898,12 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
redraw_curbuf_later(UPD_NOT_VALID);
}
}
- } else if (varp == (char_u **)&p_ffs) { // 'fileformats'
+ } else if (varp == &p_ffs) { // 'fileformats'
if (check_opt_strings((char_u *)p_ffs, p_ff_values, true) != OK) {
errmsg = e_invarg;
}
} else if (gvarp == &p_mps) { // 'matchpairs'
- for (p = (char *)(*varp); *p != NUL; p++) {
+ for (p = *varp; *p != NUL; p++) {
int x2 = -1;
int x3 = -1;
@@ -924,8 +923,8 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
break;
}
}
- } else if (gvarp == &p_com) { // 'comments'
- for (s = (char *)(*varp); *s;) {
+ } else if (gvarp == (char_u **)&p_com) { // 'comments'
+ for (s = *varp; *s;) {
while (*s && *s != ':') {
if (vim_strchr(COM_ALL, *s) == NULL
&& !ascii_isdigit(*s) && *s != '-') {
@@ -953,7 +952,8 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
} else if (varp == &p_lcs || varp == &p_fcs) { // global 'listchars' or 'fillchars'
char **local_ptr = varp == &p_lcs ? &curwin->w_p_lcs : &curwin->w_p_fcs;
// only apply the global value to "curwin" when it does not have a local value
- errmsg = set_chars_option(curwin, varp, **local_ptr == NUL || !(opt_flags & OPT_GLOBAL));
+ errmsg =
+ set_chars_option(curwin, (char_u **)varp, **local_ptr == NUL || !(opt_flags & OPT_GLOBAL));
if (errmsg == NULL) {
// If the current window is set to use the global
// 'listchars'/'fillchars' value, clear the window-local value.
@@ -972,13 +972,13 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
}
redraw_all_later(UPD_NOT_VALID);
}
- } else if (varp == (char_u **)&curwin->w_p_lcs) { // local 'listchars'
- errmsg = set_chars_option(curwin, varp, true);
- } else if (varp == (char_u **)&curwin->w_p_fcs) { // local 'fillchars'
- errmsg = set_chars_option(curwin, varp, true);
+ } else if (varp == &curwin->w_p_lcs) { // local 'listchars'
+ errmsg = set_chars_option(curwin, (char_u **)varp, true);
+ } else if (varp == &curwin->w_p_fcs) { // local 'fillchars'
+ errmsg = set_chars_option(curwin, (char_u **)varp, true);
} else if (varp == &p_cedit) { // 'cedit'
errmsg = check_cedit();
- } else if (varp == &p_vfile) { // 'verbosefile'
+ } else if (varp == (char **)&p_vfile) { // 'verbosefile'
verbose_stop();
if (*p_vfile != NUL && verbose_open() == FAIL) {
errmsg = e_invarg;
@@ -993,7 +993,7 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
// there would be a disconnect between the check for P_ALLOCED at the start
// of the function and the set of P_ALLOCED at the end of the function.
free_oldval = (get_option_flags(opt_idx) & P_ALLOCED);
- for (s = (char *)p_shada; *s;) {
+ for (s = p_shada; *s;) {
// Check it's a valid character
if (vim_strchr("!\"%'/:<@cfhnrs", *s) == NULL) {
errmsg = illegal_char(errbuf, errbuflen, *s);
@@ -1037,8 +1037,8 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
if (*p_shada && errmsg == NULL && get_shada_parameter('\'') < 0) {
errmsg = N_("E528: Must specify a ' value");
}
- } else if (gvarp == &p_sbr) { // 'showbreak'
- for (s = (char *)(*varp); *s;) {
+ } else if (gvarp == (char_u **)&p_sbr) { // 'showbreak'
+ for (s = *varp; *s;) {
if (ptr2cells(s) != 1) {
errmsg = e_showbreak_contains_unprintable_or_wide_character;
}
@@ -1052,14 +1052,14 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
errmsg = parse_printmbfont();
} else if (varp == &p_langmap) { // 'langmap'
langmap_set();
- } else if (varp == &p_breakat) { // 'breakat'
+ } else if (varp == (char **)&p_breakat) { // 'breakat'
fill_breakat_flags();
} else if (varp == &p_titlestring || varp == &p_iconstring) {
// 'titlestring' and 'iconstring'
int flagval = (varp == &p_titlestring) ? STL_IN_TITLE : STL_IN_ICON;
// NULL => statusline syntax
- if (vim_strchr((char *)(*varp), '%') && check_stl_option((char *)(*varp)) == NULL) {
+ if (vim_strchr(*varp, '%') && check_stl_option(*varp) == NULL) {
stl_syntax |= flagval;
} else {
stl_syntax &= ~flagval;
@@ -1067,65 +1067,65 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
did_set_title();
} else if (varp == &p_sel) { // 'selection'
if (*p_sel == NUL
- || check_opt_strings(p_sel, p_sel_values, false) != OK) {
+ || check_opt_strings((char_u *)p_sel, p_sel_values, false) != OK) {
errmsg = e_invarg;
}
} else if (varp == &p_slm) { // 'selectmode'
- if (check_opt_strings(p_slm, p_slm_values, true) != OK) {
+ if (check_opt_strings((char_u *)p_slm, p_slm_values, true) != OK) {
errmsg = e_invarg;
}
} else if (varp == &p_km) { // 'keymodel'
- if (check_opt_strings(p_km, p_km_values, true) != OK) {
+ if (check_opt_strings((char_u *)p_km, p_km_values, true) != OK) {
errmsg = e_invarg;
} else {
- km_stopsel = (vim_strchr((char *)p_km, 'o') != NULL);
- km_startsel = (vim_strchr((char *)p_km, 'a') != NULL);
+ km_stopsel = (vim_strchr(p_km, 'o') != NULL);
+ km_startsel = (vim_strchr(p_km, 'a') != NULL);
}
} else if (varp == &p_mousem) { // 'mousemodel'
- if (check_opt_strings(p_mousem, p_mousem_values, false) != OK) {
+ if (check_opt_strings((char_u *)p_mousem, p_mousem_values, false) != OK) {
errmsg = e_invarg;
}
} else if (varp == &p_mousescroll) { // 'mousescroll'
- errmsg = check_mousescroll((char *)p_mousescroll);
+ errmsg = check_mousescroll(p_mousescroll);
} else if (varp == &p_swb) { // 'switchbuf'
- if (opt_strings_flags(p_swb, p_swb_values, &swb_flags, true) != OK) {
+ if (opt_strings_flags((char_u *)p_swb, p_swb_values, &swb_flags, true) != OK) {
errmsg = e_invarg;
}
} else if (varp == &p_debug) { // 'debug'
- if (check_opt_strings(p_debug, p_debug_values, true) != OK) {
+ if (check_opt_strings((char_u *)p_debug, p_debug_values, true) != OK) {
errmsg = e_invarg;
}
} else if (varp == &p_dy) { // 'display'
- if (opt_strings_flags(p_dy, p_dy_values, &dy_flags, true) != OK) {
+ if (opt_strings_flags((char_u *)p_dy, p_dy_values, &dy_flags, true) != OK) {
errmsg = e_invarg;
} else {
(void)init_chartab();
msg_grid_validate();
}
} else if (varp == &p_ead) { // 'eadirection'
- if (check_opt_strings(p_ead, p_ead_values, false) != OK) {
+ if (check_opt_strings((char_u *)p_ead, p_ead_values, false) != OK) {
errmsg = e_invarg;
}
} else if (varp == &p_cb) { // 'clipboard'
- if (opt_strings_flags(p_cb, p_cb_values, &cb_flags, true) != OK) {
+ if (opt_strings_flags((char_u *)p_cb, p_cb_values, &cb_flags, true) != OK) {
errmsg = e_invarg;
}
- } else if (varp == (char_u **)&(curwin->w_s->b_p_spl) // 'spell'
- || varp == (char_u **)&(curwin->w_s->b_p_spf)) {
+ } else if (varp == &(curwin->w_s->b_p_spl) // 'spell'
+ || varp == &(curwin->w_s->b_p_spf)) {
// When 'spelllang' or 'spellfile' is set and there is a window for this
// buffer in which 'spell' is set load the wordlists.
- const bool is_spellfile = varp == (char_u **)&(curwin->w_s->b_p_spf);
+ const bool is_spellfile = varp == &(curwin->w_s->b_p_spf);
- if ((is_spellfile && !valid_spellfile(*varp))
- || (!is_spellfile && !valid_spelllang(*varp))) {
+ if ((is_spellfile && !valid_spellfile((char_u *)(*varp)))
+ || (!is_spellfile && !valid_spelllang((char_u *)(*varp)))) {
errmsg = e_invarg;
} else {
errmsg = did_set_spell_option(is_spellfile);
}
- } else if (varp == (char_u **)&(curwin->w_s->b_p_spc)) {
+ } else if (varp == &(curwin->w_s->b_p_spc)) {
// When 'spellcapcheck' is set compile the regexp program.
errmsg = compile_cap_prog(curwin->w_s);
- } else if (varp == (char_u **)&(curwin->w_s->b_p_spo)) { // 'spelloptions'
+ } else if (varp == &(curwin->w_s->b_p_spo)) { // 'spelloptions'
if (**varp != NUL && STRCMP("camel", *varp) != 0) {
errmsg = e_invarg;
}
@@ -1156,24 +1156,25 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
curbuf->b_help = (curbuf->b_p_bt[0] == 'h');
redraw_titles();
}
- } else if (gvarp == &p_stl || gvarp == (char_u **)&p_wbr || varp == &p_tal || varp == &p_ruf) {
+ } else if (gvarp == (char_u **)&p_stl || gvarp == (char_u **)&p_wbr || varp == &p_tal
+ || varp == &p_ruf) {
// 'statusline', 'winbar', 'tabline' or 'rulerformat'
int wid;
if (varp == &p_ruf) { // reset ru_wid first
ru_wid = 0;
}
- s = (char *)(*varp);
+ s = *varp;
if (varp == &p_ruf && *s == '%') {
// set ru_wid if 'ruf' starts with "%99("
if (*++s == '-') { // ignore a '-'
s++;
}
wid = getdigits_int(&s, true, 0);
- if (wid && *s == '(' && (errmsg = check_stl_option((char *)p_ruf)) == NULL) {
+ if (wid && *s == '(' && (errmsg = check_stl_option(p_ruf)) == NULL) {
ru_wid = wid;
} else {
- errmsg = check_stl_option((char *)p_ruf);
+ errmsg = check_stl_option(p_ruf);
}
} else if (varp == &p_ruf || s[0] != '%' || s[1] != '!') {
// check 'statusline', 'winbar' or 'tabline' only if it doesn't start with "%!"
@@ -1188,7 +1189,7 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
}
} else if (gvarp == &p_cpt) {
// check if it is a valid value for 'complete' -- Acevedo
- for (s = (char *)(*varp); *s;) {
+ for (s = *varp; *s;) {
while (*s == ',' || *s == ' ') {
s++;
}
@@ -1222,7 +1223,7 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
}
}
} else if (varp == &p_cot) { // 'completeopt'
- if (check_opt_strings(p_cot, p_cot_values, true) != OK) {
+ if (check_opt_strings((char_u *)p_cot, p_cot_values, true) != OK) {
errmsg = e_invarg;
} else {
completeopt_was_set();
@@ -1234,8 +1235,8 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
errmsg = e_invarg;
}
#endif
- } else if (varp == (char_u **)&curwin->w_p_scl) { // 'signcolumn'
- if (check_signcolumn(*varp) != OK) {
+ } else if (varp == &curwin->w_p_scl) { // 'signcolumn'
+ if (check_signcolumn((char_u *)(*varp)) != OK) {
errmsg = e_invarg;
}
// When changing the 'signcolumn' to or from 'number', recompute the
@@ -1245,13 +1246,13 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
&& (curwin->w_p_nu || curwin->w_p_rnu)) {
curwin->w_nrwidth_line_count = 0;
}
- } else if (varp == (char_u **)&curwin->w_p_fdc
- || varp == (char_u **)&curwin->w_allbuf_opt.wo_fdc) {
+ } else if (varp == &curwin->w_p_fdc
+ || varp == &curwin->w_allbuf_opt.wo_fdc) {
// 'foldcolumn'
- if (**varp == NUL || check_opt_strings(*varp, p_fdc_values, false) != OK) {
+ if (**varp == NUL || check_opt_strings((char_u *)(*varp), p_fdc_values, false) != OK) {
errmsg = e_invarg;
}
- } else if (varp == &p_pt) {
+ } else if (varp == (char **)&p_pt) {
// 'pastetoggle': translate key codes like in a mapping
if (*p_pt) {
p = NULL;
@@ -1269,21 +1270,21 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
if (*p_bs > '3' || p_bs[1] != NUL) {
errmsg = e_invarg;
}
- } else if (check_opt_strings(p_bs, p_bs_values, true) != OK) {
+ } else if (check_opt_strings((char_u *)p_bs, p_bs_values, true) != OK) {
errmsg = e_invarg;
}
} else if (varp == &p_bo) {
- if (opt_strings_flags(p_bo, p_bo_values, &bo_flags, true) != OK) {
+ if (opt_strings_flags((char_u *)p_bo, p_bo_values, &bo_flags, true) != OK) {
errmsg = e_invarg;
}
- } else if (gvarp == &p_tc) { // 'tagcase'
+ } else if (gvarp == (char_u **)&p_tc) { // 'tagcase'
unsigned int *flags;
if (opt_flags & OPT_LOCAL) {
p = curbuf->b_p_tc;
flags = &curbuf->b_tc_flags;
} else {
- p = (char *)p_tc;
+ p = p_tc;
flags = &tc_flags;
}
@@ -1295,7 +1296,7 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
errmsg = e_invarg;
}
} else if (varp == &p_cmp) { // 'casemap'
- if (opt_strings_flags(p_cmp, p_cmp_values, &cmp_flags, true) != OK) {
+ if (opt_strings_flags((char_u *)p_cmp, p_cmp_values, &cmp_flags, true) != OK) {
errmsg = e_invarg;
}
} else if (varp == &p_dip) { // 'diffopt'
@@ -1303,7 +1304,7 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
errmsg = e_invarg;
}
} else if (gvarp == (char_u **)&curwin->w_allbuf_opt.wo_fdm) { // 'foldmethod'
- if (check_opt_strings(*varp, p_fdm_values, false) != OK
+ if (check_opt_strings((char_u *)(*varp), p_fdm_values, false) != OK
|| *curwin->w_p_fdm == NUL) {
errmsg = e_invarg;
} else {
@@ -1312,29 +1313,29 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
newFoldLevel();
}
}
- } else if (varp == (char_u **)&curwin->w_p_fde) { // 'foldexpr'
+ } else if (varp == &curwin->w_p_fde) { // 'foldexpr'
if (foldmethodIsExpr(curwin)) {
foldUpdateAll(curwin);
}
} else if (gvarp == (char_u **)&curwin->w_allbuf_opt.wo_fmr) { // 'foldmarker'
- p = vim_strchr((char *)(*varp), ',');
+ p = vim_strchr(*varp, ',');
if (p == NULL) {
errmsg = N_("E536: comma required");
- } else if ((char_u *)p == *varp || p[1] == NUL) {
+ } else if (p == *varp || p[1] == NUL) {
errmsg = e_invarg;
} else if (foldmethodIsMarker(curwin)) {
foldUpdateAll(curwin);
}
} else if (gvarp == &p_cms) { // 'commentstring'
- if (**varp != NUL && strstr((char *)(*varp), "%s") == NULL) {
+ if (**varp != NUL && strstr(*varp, "%s") == NULL) {
errmsg = N_("E537: 'commentstring' must be empty or contain %s");
}
} else if (varp == &p_fdo) { // 'foldopen'
- if (opt_strings_flags(p_fdo, p_fdo_values, &fdo_flags, true) != OK) {
+ if (opt_strings_flags((char_u *)p_fdo, p_fdo_values, &fdo_flags, true) != OK) {
errmsg = e_invarg;
}
} else if (varp == &p_fcl) { // 'foldclose'
- if (check_opt_strings(p_fcl, p_fcl_values, true) != OK) {
+ if (check_opt_strings((char_u *)p_fcl, p_fcl_values, true) != OK) {
errmsg = e_invarg;
}
} else if (gvarp == (char_u **)&curwin->w_allbuf_opt.wo_fdi) { // 'foldignore'
@@ -1365,7 +1366,7 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
}
} else if (varp == &p_csqf) {
if (p_csqf != NULL) {
- p = (char *)p_csqf;
+ p = p_csqf;
while (*p != NUL) {
if (vim_strchr(CSQF_CMDS, *p) == NULL
|| p[1] == NUL
@@ -1380,15 +1381,15 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
}
}
}
- } else if (gvarp == &p_cino) { // 'cinoptions'
+ } else if (gvarp == (char_u **)&p_cino) { // 'cinoptions'
// TODO(vim): recognize errors
parse_cino(curbuf);
} else if (varp == &p_icm) { // 'inccommand'
- if (check_opt_strings(p_icm, p_icm_values, false) != OK) {
+ if (check_opt_strings((char_u *)p_icm, p_icm_values, false) != OK) {
errmsg = e_invarg;
}
- } else if (gvarp == &p_ft) {
- if (!valid_filetype(*varp)) {
+ } else if (gvarp == (char_u **)&p_ft) {
+ if (!valid_filetype((char_u *)(*varp))) {
errmsg = e_invarg;
} else {
value_changed = STRCMP(oldval, *varp) != 0;
@@ -1398,7 +1399,7 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
*value_checked = true;
}
} else if (gvarp == &p_syn) {
- if (!valid_filetype(*varp)) {
+ if (!valid_filetype((char_u *)(*varp))) {
errmsg = e_invarg;
} else {
value_changed = STRCMP(oldval, *varp) != 0;
@@ -1407,25 +1408,25 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
// even when the value comes from a modeline.
*value_checked = true;
}
- } else if (varp == (char_u **)&curwin->w_p_winhl) {
+ } else if (varp == &curwin->w_p_winhl) {
if (!parse_winhl_opt(curwin)) {
errmsg = e_invarg;
}
} else if (varp == &p_tpf) {
- if (opt_strings_flags(p_tpf, p_tpf_values, &tpf_flags, true) != OK) {
+ if (opt_strings_flags((char_u *)p_tpf, p_tpf_values, &tpf_flags, true) != OK) {
errmsg = e_invarg;
}
- } else if (varp == (char_u **)&(curbuf->b_p_vsts)) { // 'varsofttabstop'
+ } else if (varp == &(curbuf->b_p_vsts)) { // 'varsofttabstop'
char_u *cp;
if (!(*varp)[0] || ((*varp)[0] == '0' && !(*varp)[1])) {
XFREE_CLEAR(curbuf->b_p_vsts_array);
} else {
- for (cp = *varp; *cp; cp++) {
+ for (cp = (char_u *)(*varp); *cp; cp++) {
if (ascii_isdigit(*cp)) {
continue;
}
- if (*cp == ',' && cp > *varp && *(cp - 1) != ',') {
+ if (*cp == ',' && cp > (char_u *)(*varp) && *(cp - 1) != ',') {
continue;
}
errmsg = e_invarg;
@@ -1433,24 +1434,24 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
}
if (errmsg == NULL) {
long *oldarray = curbuf->b_p_vsts_array;
- if (tabstop_set(*varp, &(curbuf->b_p_vsts_array))) {
+ if (tabstop_set((char_u *)(*varp), &(curbuf->b_p_vsts_array))) {
xfree(oldarray);
} else {
errmsg = e_invarg;
}
}
}
- } else if (varp == (char_u **)&(curbuf->b_p_vts)) { // 'vartabstop'
+ } else if (varp == &(curbuf->b_p_vts)) { // 'vartabstop'
char_u *cp;
if (!(*varp)[0] || ((*varp)[0] == '0' && !(*varp)[1])) {
XFREE_CLEAR(curbuf->b_p_vts_array);
} else {
- for (cp = *varp; *cp; cp++) {
+ for (cp = (char_u *)(*varp); *cp; cp++) {
if (ascii_isdigit(*cp)) {
continue;
}
- if (*cp == ',' && cp > *varp && *(cp - 1) != ',') {
+ if (*cp == ',' && cp > (char_u *)(*varp) && *(cp - 1) != ',') {
continue;
}
errmsg = e_invarg;
@@ -1458,7 +1459,7 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
}
if (errmsg == NULL) {
long *oldarray = curbuf->b_p_vts_array;
- if (tabstop_set(*varp, &(curbuf->b_p_vts_array))) {
+ if (tabstop_set((char_u *)(*varp), &(curbuf->b_p_vts_array))) {
xfree(oldarray);
if (foldmethodIsIndent(curwin)) {
foldUpdateAll(curwin);
@@ -1484,17 +1485,17 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
}
if (varp == &p_shm) { // 'shortmess'
p = (char *)SHM_ALL;
- } else if (varp == (char_u **)&(p_cpo)) { // 'cpoptions'
+ } else if (varp == &(p_cpo)) { // 'cpoptions'
p = CPO_VI;
- } else if (varp == (char_u **)&(curbuf->b_p_fo)) { // 'formatoptions'
+ } else if (varp == &(curbuf->b_p_fo)) { // 'formatoptions'
p = FO_ALL;
- } else if (varp == (char_u **)&curwin->w_p_cocu) { // 'concealcursor'
+ } else if (varp == &curwin->w_p_cocu) { // 'concealcursor'
p = COCU_ALL;
} else if (varp == &p_mouse) { // 'mouse'
p = MOUSE_ALL;
}
if (p != NULL) {
- for (s = (char *)(*varp); *s; s++) {
+ for (s = *varp; *s; s++) {
if (vim_strchr(p, *s) == NULL) {
errmsg = illegal_char(errbuf, errbuflen, *s);
break;
@@ -1505,7 +1506,7 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
// If error detected, restore the previous value.
if (errmsg != NULL) {
- free_string_option((char *)(*varp));
+ free_string_option(*varp);
*varp = oldval;
// When resetting some values, need to act on it.
if (did_chartab) {
@@ -1518,7 +1519,7 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
// Use "free_oldval", because recursiveness may change the flags under
// our fingers (esp. init_highlight()).
if (free_oldval) {
- free_string_option((char *)oldval);
+ free_string_option(oldval);
}
set_option_flag(opt_idx, P_ALLOCED);
@@ -1536,7 +1537,7 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
// Trigger the autocommand only after setting the flags.
// When 'syntax' is set, load the syntax of that name
- if (varp == (char_u **)&(curbuf->b_p_syn)) {
+ if (varp == &(curbuf->b_p_syn)) {
static int syn_recursive = 0;
syn_recursive++;
@@ -1546,7 +1547,7 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
value_changed || syn_recursive == 1, curbuf);
curbuf->b_flags |= BF_SYN_SET;
syn_recursive--;
- } else if (varp == (char_u **)&(curbuf->b_p_ft)) {
+ } else if (varp == &(curbuf->b_p_ft)) {
// 'filetype' is set, trigger the FileType autocommand
// Skip this when called from a modeline and the filetype was
// already set to this value.
@@ -1566,13 +1567,13 @@ char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *er
value_changed || ft_recursive == 1, curbuf);
ft_recursive--;
// Just in case the old "curbuf" is now invalid
- if (varp != (char_u **)&(curbuf->b_p_ft)) {
+ if (varp != &(curbuf->b_p_ft)) {
varp = NULL;
}
secure = secure_save;
}
}
- if (varp == (char_u **)&(curwin->w_s->b_p_spl)) {
+ if (varp == &(curwin->w_s->b_p_spl)) {
char_u fname[200];
char_u *q = (char_u *)curwin->w_s->b_p_spl;