diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-07-27 18:26:03 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-07-27 18:26:03 +0100 |
commit | f6782732ab4acd02211923fbdccb457dacaf277e (patch) | |
tree | 4626f91aa4b1ca65a1867b99a5e328995b5b389a /src | |
parent | 122dea70073d140aa89212d344c3f62bd3b5b3fa (diff) |
patch 9.0.0096: flag "new_value_alloced" is always truev9.0.0096
Problem: Flag "new_value_alloced" is always true.
Solution: Remove "new_value_alloced". (closes #10792)
Diffstat (limited to 'src')
-rw-r--r-- | src/option.c | 8 | ||||
-rw-r--r-- | src/optionstr.c | 37 | ||||
-rw-r--r-- | src/proto/optionstr.pro | 2 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 14 insertions, 35 deletions
diff --git a/src/option.c b/src/option.c index 8286713cba..2a5c9144ac 100644 --- a/src/option.c +++ b/src/option.c @@ -1716,8 +1716,6 @@ do_set( #endif unsigned newlen; int comma; - int new_value_alloced; // new string option - // was allocated // When using ":set opt=val" for a global option // with a local value the local value will be @@ -1785,13 +1783,11 @@ do_set( s = newval; newval = vim_strsave(s); } - new_value_alloced = TRUE; } else if (nextchar == '<') // set to global val { newval = vim_strsave(*(char_u **)get_varp_scope( &(options[opt_idx]), OPT_GLOBAL)); - new_value_alloced = TRUE; } else { @@ -2060,7 +2056,6 @@ do_set( if (save_arg != NULL) // number for 'whichwrap' arg = save_arg; - new_value_alloced = TRUE; } /* @@ -2109,8 +2104,7 @@ do_set( // 'syntax' or 'filetype' autocommands may be // triggered that can cause havoc. errmsg = did_set_string_option( - opt_idx, (char_u **)varp, - new_value_alloced, oldval, errbuf, + opt_idx, (char_u **)varp, oldval, errbuf, opt_flags, &value_checked); secure = secure_saved; diff --git a/src/optionstr.c b/src/optionstr.c index 5147a2120c..331207b67e 100644 --- a/src/optionstr.c +++ b/src/optionstr.c @@ -537,7 +537,7 @@ set_string_option( saved_newval = vim_strsave(s); } #endif - if ((errmsg = did_set_string_option(opt_idx, varp, TRUE, oldval, NULL, + if ((errmsg = did_set_string_option(opt_idx, varp, oldval, NULL, opt_flags, &value_checked)) == NULL) did_set_option(opt_idx, opt_flags, TRUE, value_checked); @@ -639,13 +639,13 @@ check_stl_option(char_u *s) /* * Handle string options that need some action to perform when changed. + * The new value must be allocated. * Returns NULL for success, or an unstranslated error message for an error. */ char * did_set_string_option( int opt_idx, // index in options[] table char_u **varp, // pointer to the option variable - int new_value_alloced, // new value was allocated char_u *oldval, // previous value of the option char *errbuf, // buffer for errors, or NULL int opt_flags, // OPT_LOCAL and/or OPT_GLOBAL @@ -1188,10 +1188,8 @@ ambw_end: // When setting the global value to empty, make it "zip". if (*p_cm == NUL) { - if (new_value_alloced) - free_string_option(p_cm); + free_string_option(p_cm); p_cm = vim_strsave((char_u *)"zip"); - new_value_alloced = TRUE; } // When using ":set cm=name" the local value is going to be empty. // Do that here, otherwise the crypt functions will still use the @@ -1441,8 +1439,7 @@ ambw_end: t_colors = colors; if (t_colors <= 1) { - if (new_value_alloced) - vim_free(T_CCO); + vim_free(T_CCO); T_CCO = empty_option; } #if defined(FEAT_VTP) && defined(FEAT_TERMGUICOLORS) @@ -1511,12 +1508,8 @@ ambw_end: if (STRCMP(p, "*") == 0) { p = gui_mch_font_dialog(oldval); - - if (new_value_alloced) - free_string_option(p_guifont); - + free_string_option(p_guifont); p_guifont = (p != NULL) ? p : vim_strsave(oldval); - new_value_alloced = TRUE; } # endif if (p != NULL && gui_init_font(p_guifont, FALSE) != OK) @@ -1526,10 +1519,8 @@ ambw_end: { // Dialog was cancelled: Keep the old value without giving // an error message. - if (new_value_alloced) - free_string_option(p_guifont); + free_string_option(p_guifont); p_guifont = vim_strsave(oldval); - new_value_alloced = TRUE; } else # endif @@ -1950,10 +1941,8 @@ ambw_end: REPTERM_FROM_PART | REPTERM_DO_LT, NULL); if (p != NULL) { - if (new_value_alloced) - free_string_option(p_pt); + free_string_option(p_pt); p_pt = p; - new_value_alloced = TRUE; } } } @@ -2369,10 +2358,8 @@ ambw_end: name = get_scriptlocal_funcname(*p_opt); if (name != NULL) { - if (new_value_alloced) - free_string_option(*p_opt); + free_string_option(*p_opt); *p_opt = name; - new_value_alloced = TRUE; } } @@ -2486,8 +2473,7 @@ ambw_end: // If error detected, restore the previous value. if (errmsg != NULL) { - if (new_value_alloced) - free_string_option(*varp); + free_string_option(*varp); *varp = oldval; // When resetting some values, need to act on it. if (did_chartab) @@ -2506,10 +2492,7 @@ ambw_end: // our fingers (esp. init_highlight()). if (free_oldval) free_string_option(oldval); - if (new_value_alloced) - set_option_flag(opt_idx, P_ALLOCED); - else - clear_option_flag(opt_idx, P_ALLOCED); + set_option_flag(opt_idx, P_ALLOCED); if ((opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0 && is_global_local_option(opt_idx)) diff --git a/src/proto/optionstr.pro b/src/proto/optionstr.pro index 654c935fce..0d452c2618 100644 --- a/src/proto/optionstr.pro +++ b/src/proto/optionstr.pro @@ -9,6 +9,6 @@ void set_string_option_direct(char_u *name, int opt_idx, char_u *val, int opt_fl void set_string_option_direct_in_win(win_T *wp, char_u *name, int opt_idx, char_u *val, int opt_flags, int set_sid); void set_string_option_direct_in_buf(buf_T *buf, char_u *name, int opt_idx, char_u *val, int opt_flags, int set_sid); char *set_string_option(int opt_idx, char_u *value, int opt_flags); -char *did_set_string_option(int opt_idx, char_u **varp, int new_value_alloced, char_u *oldval, char *errbuf, int opt_flags, int *value_checked); +char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *errbuf, int opt_flags, int *value_checked); int check_ff_value(char_u *p); /* vim: set ft=c : */ diff --git a/src/version.c b/src/version.c index 064d566ad3..967f7aa003 100644 --- a/src/version.c +++ b/src/version.c @@ -736,6 +736,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 96, +/**/ 95, /**/ 94, |