]> granicus.if.org Git - vim/commitdiff
updated for version 7.2-238 v7.2.238
authorBram Moolenaar <Bram@vim.org>
Wed, 22 Jul 2009 12:28:17 +0000 (12:28 +0000)
committerBram Moolenaar <Bram@vim.org>
Wed, 22 Jul 2009 12:28:17 +0000 (12:28 +0000)
src/option.c
src/proto/option.pro
src/term.c
src/version.c

index 6eb7903295ad385e00c59a3aba4b3d6bf7952e70..a400eb6f3e032422140c7ca7744051fed63ab0b3 100644 (file)
@@ -403,8 +403,9 @@ struct vimoption
 #define P_NUM          0x02    /* the option is numeric */
 #define P_STRING       0x04    /* the option is a string */
 #define P_ALLOCED      0x08    /* the string option is in allocated memory,
-                                   must use vim_free() when assigning new
-                                   value. Not set if default is the same. */
+                                  must use free_string_option() when
+                                  assigning new value. Not set if default is
+                                  the same. */
 #define P_EXPAND       0x10    /* environment expansion.  NOTE: P_EXPAND can
                                   never be used for local or hidden options! */
 #define P_NODEFAULT    0x40    /* don't set to default value */
@@ -8926,6 +8927,28 @@ free_termoptions()
     clear_termcodes();
 }
 
+/*
+ * Free the string for one term option, if it was allocated.
+ * Set the string to empty_option and clear allocated flag.
+ * "var" points to the option value.
+ */
+    void
+free_one_termoption(var)
+    char_u *var;
+{
+    struct vimoption   *p;
+
+    for (p = &options[0]; p->fullname != NULL; p++)
+       if (p->var == var)
+       {
+           if (p->flags & P_ALLOCED)
+               free_string_option(*(char_u **)(p->var));
+           *(char_u **)(p->var) = empty_option;
+           p->flags &= ~P_ALLOCED;
+           break;
+       }
+}
+
 /*
  * Set the terminal option defaults to the current value.
  * Used after setting the terminal name.
index 39ee7be21a71997ed4cb77fb7002c29b0b91a83b..9c58c3e9dcc9758102716166e77041ea42295868 100644 (file)
@@ -29,6 +29,7 @@ int makeset __ARGS((FILE *fd, int opt_flags, int local_only));
 int makefoldset __ARGS((FILE *fd));
 void clear_termoptions __ARGS((void));
 void free_termoptions __ARGS((void));
+void free_one_termoption __ARGS((char_u *var));
 void set_term_defaults __ARGS((void));
 void comp_col __ARGS((void));
 char_u *get_equalprg __ARGS((void));
index 48e557ffda87f977a2a54b0e4fc5edb92667191b..f607575b14f3c8f021431d5a51485331db66fcf9 100644 (file)
@@ -2881,7 +2881,7 @@ ttest(pairs)
 
        /* if 'Sb' and 'AB' are not defined, reset "Co" */
        if (*T_CSB == NUL && *T_CAB == NUL)
-           T_CCO = empty_option;
+           free_one_termoption(T_CCO);
 
        /* Set 'weirdinvert' according to value of 't_xs' */
        p_wiv = (*T_XS != NUL);
index 5f53901ec9a7c7f276abe83aa5886df85c2dc883..9f59ffd7699a860a8e910a8f31f9307035fb4b76 100644 (file)
@@ -676,6 +676,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    238,
 /**/
     237,
 /**/