diff options
Diffstat (limited to 'src/nvim/option.c')
-rw-r--r-- | src/nvim/option.c | 63 |
1 files changed, 28 insertions, 35 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c index b5f480870e..0ac2a49621 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -2102,7 +2102,8 @@ void set_init_1(void) p = (char_u *)_(*(char **)options[opt_idx].var); else p = option_expand(opt_idx, NULL); - if (p != NULL && (p = vim_strsave(p)) != NULL) { + if (p != NULL) { + p = vim_strsave(p); *(char_u **)options[opt_idx].var = p; /* VIMEXP * Defaults for all expanded options are currently the same for Vi @@ -2291,14 +2292,12 @@ void set_string_default(char *name, char_u *val) int opt_idx; p = vim_strsave(val); - if (p != NULL) { /* we don't want a NULL */ - opt_idx = findoption((char_u *)name); - if (opt_idx >= 0) { - if (options[opt_idx].flags & P_DEF_ALLOCED) - free(options[opt_idx].def_val[VI_DEFAULT]); - options[opt_idx].def_val[VI_DEFAULT] = p; - options[opt_idx].flags |= P_DEF_ALLOCED; - } + opt_idx = findoption((char_u *)name); + if (opt_idx >= 0) { + if (options[opt_idx].flags & P_DEF_ALLOCED) + free(options[opt_idx].def_val[VI_DEFAULT]); + options[opt_idx].def_val[VI_DEFAULT] = p; + options[opt_idx].flags |= P_DEF_ALLOCED; } } @@ -2463,7 +2462,7 @@ void set_init_3(void) p1 = p2 + 1; p = vim_strnsave(p1, (int)(p - p1)); } - if (p != NULL) { + { /* * Default for p_sp is "| tee", for p_srr is ">". * For known shells it is changed here to include stderr. @@ -2519,16 +2518,12 @@ void set_helplang_default(char_u *lang) if (options[idx].flags & P_ALLOCED) free_string_option(p_hlg); p_hlg = vim_strsave(lang); - if (p_hlg == NULL) - p_hlg = empty_option; - else { - /* zh_CN becomes "cn", zh_TW becomes "tw". */ - if (STRNICMP(p_hlg, "zh_", 3) == 0 && STRLEN(p_hlg) >= 5) { - p_hlg[0] = TOLOWER_ASC(p_hlg[3]); - p_hlg[1] = TOLOWER_ASC(p_hlg[4]); - } - p_hlg[2] = NUL; + /* zh_CN becomes "cn", zh_TW becomes "tw". */ + if (STRNICMP(p_hlg, "zh_", 3) == 0 && STRLEN(p_hlg) >= 5) { + p_hlg[0] = TOLOWER_ASC(p_hlg[3]); + p_hlg[1] = TOLOWER_ASC(p_hlg[4]); } + p_hlg[2] = NUL; options[idx].flags |= P_ALLOCED; } } @@ -3754,7 +3749,7 @@ set_string_option_direct ( return; s = vim_strsave(val); - if (s != NULL) { + { varp = (char_u **)get_varp_scope(&(options[idx]), both ? OPT_LOCAL : opt_flags); if ((opt_flags & OPT_FREE) && (options[idx].flags & P_ALLOCED)) @@ -3795,9 +3790,8 @@ set_string_option_global ( p = (char_u **)GLOBAL_WO(varp); else p = (char_u **)options[opt_idx].var; - if (options[opt_idx].indir != PV_NONE - && p != varp - && (s = vim_strsave(*varp)) != NULL) { + if (options[opt_idx].indir != PV_NONE && p != varp) { + s = vim_strsave(*varp); free_string_option(*p); *p = s; } @@ -3824,18 +3818,17 @@ set_string_option ( return NULL; s = vim_strsave(value); - if (s != NULL) { - varp = (char_u **)get_varp_scope(&(options[opt_idx]), - (opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0 - ? (((int)options[opt_idx].indir & PV_BOTH) - ? OPT_GLOBAL : OPT_LOCAL) - : opt_flags); - oldval = *varp; - *varp = s; - if ((r = did_set_string_option(opt_idx, varp, TRUE, oldval, NULL, - opt_flags)) == NULL) - did_set_option(opt_idx, opt_flags, TRUE); - } + varp = (char_u **)get_varp_scope(&(options[opt_idx]), + (opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0 + ? (((int)options[opt_idx].indir & PV_BOTH) + ? OPT_GLOBAL : OPT_LOCAL) + : opt_flags); + oldval = *varp; + *varp = s; + if ((r = did_set_string_option(opt_idx, varp, TRUE, oldval, NULL, + opt_flags)) == NULL) + did_set_option(opt_idx, opt_flags, TRUE); + return r; } |