4 From: Bram Moolenaar <Bram@moolenaar.net>
6 Content-Type: text/plain; charset=ISO-8859-1
7 Content-Transfer-Encoding: 8bit
11 Problem: When EXITFREE is defined signs are not freed.
12 Solution: Free all signs on exit. Also free keymaps. (Dominique Pelle)
13 Files: src/misc2.c, src/ex_cmds.c, src/proto/ex_cmds.pro
16 *** ../vim-7.2.125/src/misc2.c Thu Jan 22 21:31:24 2009
17 --- src/misc2.c Sun Feb 22 22:04:53 2009
21 # if defined(FEAT_PROFILE)
22 do_cmdline_cmd((char_u *)"profdel *");
24 + # if defined(FEAT_KEYMAP)
25 + do_cmdline_cmd((char_u *)"set keymap=");
42 *** ../vim-7.2.125/src/ex_cmds.c Wed Feb 11 16:02:29 2009
43 --- src/ex_cmds.c Sun Feb 22 22:07:08 2009
47 static int last_sign_typenr = MAX_TYPENR; /* is decremented */
49 static void sign_list_defined __ARGS((sign_T *sp));
50 + static void sign_undefine __ARGS((sign_T *sp, sign_T *sp_prev));
56 /* ":sign list {name}" */
57 sign_list_defined(sp);
60 /* ":sign undefine {name}" */
61 ! vim_free(sp->sn_name);
62 ! vim_free(sp->sn_icon);
63 ! #ifdef FEAT_SIGN_ICONS
64 ! if (sp->sn_image != NULL)
67 ! gui_mch_destroy_sign(sp->sn_image);
70 ! vim_free(sp->sn_text);
71 ! if (sp_prev == NULL)
72 ! first_sign = sp->sn_next;
74 ! sp_prev->sn_next = sp->sn_next;
81 /* ":sign list {name}" */
82 sign_list_defined(sp);
84 /* ":sign undefine {name}" */
85 ! sign_undefine(sp, sp_prev);
95 + * Undefine a sign and free its memory.
98 + sign_undefine(sp, sp_prev)
102 + vim_free(sp->sn_name);
103 + vim_free(sp->sn_icon);
104 + #ifdef FEAT_SIGN_ICONS
105 + if (sp->sn_image != NULL)
108 + gui_mch_destroy_sign(sp->sn_image);
111 + vim_free(sp->sn_text);
112 + if (sp_prev == NULL)
113 + first_sign = sp->sn_next;
115 + sp_prev->sn_next = sp->sn_next;
120 * Get highlighting attribute for sign "typenr".
121 * If "line" is TRUE: line highl, if FALSE: text highl.
126 return (char_u *)_("[Deleted]");
129 + #if defined(EXITFREE) || defined(PROTO)
131 + * Undefine/free all signs.
136 + while (first_sign != NULL)
137 + sign_undefine(first_sign, NULL);
143 #if defined(FEAT_GUI) || defined(FEAT_CLIENTSERVER) || defined(PROTO)
144 *** ../vim-7.2.125/src/proto/ex_cmds.pro Sat Nov 15 14:10:23 2008
145 --- src/proto/ex_cmds.pro Sun Feb 22 22:04:53 2009
149 int read_viminfo_sub_string __ARGS((vir_T *virp, int force));
150 void write_viminfo_sub_string __ARGS((FILE *fp));
151 void free_old_sub __ARGS((void));
152 + void free_signs __ARGS((void));
153 int prepare_tagpreview __ARGS((int undo_sync));
154 void ex_help __ARGS((exarg_T *eap));
155 char_u *check_help_lang __ARGS((char_u *arg));
156 *** ../vim-7.2.125/src/version.c Tue Feb 24 04:11:07 2009
157 --- src/version.c Tue Feb 24 04:24:46 2009
161 { /* Add new patch number below this line */
167 hundred-and-one symptoms of being an internet addict:
168 125. You begin to wonder how often it REALLY is necessary to get up
171 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
172 /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
173 \\\ download, build and distribute -- http://www.A-A-P.org ///
174 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///