summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.2.126
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/vim/patches/7.2.126')
-rw-r--r--source/ap/vim/patches/7.2.126174
1 files changed, 174 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.2.126 b/source/ap/vim/patches/7.2.126
new file mode 100644
index 000000000..fe2dd6576
--- /dev/null
+++ b/source/ap/vim/patches/7.2.126
@@ -0,0 +1,174 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.126
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.126
+Problem: When EXITFREE is defined signs are not freed.
+Solution: Free all signs on exit. Also free keymaps. (Dominique Pelle)
+Files: src/misc2.c, src/ex_cmds.c, src/proto/ex_cmds.pro
+
+
+*** ../vim-7.2.125/src/misc2.c Thu Jan 22 21:31:24 2009
+--- src/misc2.c Sun Feb 22 22:04:53 2009
+***************
+*** 1010,1015 ****
+--- 1010,1018 ----
+ # 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,1039 ****
+--- 1037,1045 ----
+ free_regexp_stuff();
+ free_tag_stuff();
+ free_cd_dir();
++ # ifdef FEAT_SIGNS
++ free_signs();
++ # endif
+ # ifdef FEAT_EVAL
+ set_expr_line(NULL);
+ # endif
+*** ../vim-7.2.125/src/ex_cmds.c Wed Feb 11 16:02:29 2009
+--- src/ex_cmds.c Sun Feb 22 22:07:08 2009
+***************
+*** 6541,6546 ****
+--- 6541,6547 ----
+ 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,6772 ****
+ /* ":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);
+! }
+ }
+ }
+ else
+--- 6750,6757 ----
+ /* ":sign list {name}" */
+ sign_list_defined(sp);
+ else
+ /* ":sign undefine {name}" */
+! sign_undefine(sp, sp_prev);
+ }
+ }
+ else
+***************
+*** 7015,7020 ****
+--- 7000,7030 ----
+ }
+
+ /*
++ * 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,7093 ****
+--- 7098,7115 ----
+ 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)
+*** ../vim-7.2.125/src/proto/ex_cmds.pro Sat Nov 15 14:10:23 2008
+--- src/proto/ex_cmds.pro Sun Feb 22 22:04:53 2009
+***************
+*** 40,45 ****
+--- 40,46 ----
+ 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));
+*** ../vim-7.2.125/src/version.c Tue Feb 24 04:11:07 2009
+--- src/version.c Tue Feb 24 04:24:46 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 126,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+125. You begin to wonder how often it REALLY is necessary to get up
+ and shower or bathe.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///