summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-07-27 18:26:03 +0100
committerBram Moolenaar <Bram@vim.org>2022-07-27 18:26:03 +0100
commitf6782732ab4acd02211923fbdccb457dacaf277e (patch)
tree4626f91aa4b1ca65a1867b99a5e328995b5b389a
parent122dea70073d140aa89212d344c3f62bd3b5b3fa (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)
-rw-r--r--src/option.c8
-rw-r--r--src/optionstr.c37
-rw-r--r--src/proto/optionstr.pro2
-rw-r--r--src/version.c2
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,