]> granicus.if.org Git - vim/commitdiff
updated for version 7.2-126 v7.2.126
authorBram Moolenaar <Bram@vim.org>
Tue, 24 Feb 2009 03:30:14 +0000 (03:30 +0000)
committerBram Moolenaar <Bram@vim.org>
Tue, 24 Feb 2009 03:30:14 +0000 (03:30 +0000)
src/ex_cmds.c
src/misc2.c
src/proto/ex_cmds.pro
src/version.c

index 1ac46f312930815014a92359d52388d7e424c56c..d95a3c23b069db65b164e813654660ea242f2cbe 100644 (file)
@@ -6541,6 +6541,7 @@ static sign_T     *first_sign = NULL;
 static int     last_sign_typenr = MAX_TYPENR;  /* is decremented */
 
 static void sign_list_defined __ARGS((sign_T *sp));
+static void sign_undefine __ARGS((sign_T *sp, sign_T *sp_prev));
 
 /*
  * ":sign" command
@@ -6749,24 +6750,8 @@ ex_sign(eap)
                /* ":sign list {name}" */
                sign_list_defined(sp);
            else
-           {
                /* ":sign undefine {name}" */
-               vim_free(sp->sn_name);
-               vim_free(sp->sn_icon);
-#ifdef FEAT_SIGN_ICONS
-               if (sp->sn_image != NULL)
-               {
-                   out_flush();
-                   gui_mch_destroy_sign(sp->sn_image);
-               }
-#endif
-               vim_free(sp->sn_text);
-               if (sp_prev == NULL)
-                   first_sign = sp->sn_next;
-               else
-                   sp_prev->sn_next = sp->sn_next;
-               vim_free(sp);
-           }
+               sign_undefine(sp, sp_prev);
        }
     }
     else
@@ -7014,6 +6999,31 @@ sign_list_defined(sp)
     }
 }
 
+/*
+ * Undefine a sign and free its memory.
+ */
+    static void
+sign_undefine(sp, sp_prev)
+    sign_T     *sp;
+    sign_T     *sp_prev;
+{
+    vim_free(sp->sn_name);
+    vim_free(sp->sn_icon);
+#ifdef FEAT_SIGN_ICONS
+    if (sp->sn_image != NULL)
+    {
+       out_flush();
+       gui_mch_destroy_sign(sp->sn_image);
+    }
+#endif
+    vim_free(sp->sn_text);
+    if (sp_prev == NULL)
+       first_sign = sp->sn_next;
+    else
+       sp_prev->sn_next = sp->sn_next;
+    vim_free(sp);
+}
+
 /*
  * Get highlighting attribute for sign "typenr".
  * If "line" is TRUE: line highl, if FALSE: text highl.
@@ -7088,6 +7098,18 @@ sign_typenr2name(typenr)
     return (char_u *)_("[Deleted]");
 }
 
+#if defined(EXITFREE) || defined(PROTO)
+/*
+ * Undefine/free all signs.
+ */
+    void
+free_signs()
+{
+    while (first_sign != NULL)
+       sign_undefine(first_sign, NULL);
+}
+#endif
+
 #endif
 
 #if defined(FEAT_GUI) || defined(FEAT_CLIENTSERVER) || defined(PROTO)
index 427708c04966c9c134da3072a9b5867a888ede62..fafe931e67300968091e80927047b315f0b58003 100644 (file)
@@ -1010,6 +1010,9 @@ free_all_mem()
 # if defined(FEAT_PROFILE)
     do_cmdline_cmd((char_u *)"profdel *");
 # endif
+# if defined(FEAT_KEYMAP)
+    do_cmdline_cmd((char_u *)"set keymap=");
+#endif
 
 # ifdef FEAT_TITLE
     free_titles();
@@ -1034,6 +1037,9 @@ free_all_mem()
     free_regexp_stuff();
     free_tag_stuff();
     free_cd_dir();
+# ifdef FEAT_SIGNS
+    free_signs();
+# endif
 # ifdef FEAT_EVAL
     set_expr_line(NULL);
 # endif
index 1a15c88e75a39fd7983fc1a8dd3d462e38e95080..b2c77cd17b2ef8131b337cbafe21c5f26adbd0bd 100644 (file)
@@ -40,6 +40,7 @@ void global_exe __ARGS((char_u *cmd));
 int read_viminfo_sub_string __ARGS((vir_T *virp, int force));
 void write_viminfo_sub_string __ARGS((FILE *fp));
 void free_old_sub __ARGS((void));
+void free_signs __ARGS((void));
 int prepare_tagpreview __ARGS((int undo_sync));
 void ex_help __ARGS((exarg_T *eap));
 char_u *check_help_lang __ARGS((char_u *arg));
index c97e44271210de5acfb00ebfb076545ca541cef9..8189b43905c89044f011adf2265113ae87748705 100644 (file)
@@ -676,6 +676,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    126,
 /**/
     125,
 /**/