]> git.pld-linux.org Git - packages/vim.git/blob - 7.2.126
- new
[packages/vim.git] / 7.2.126
1 To: vim-dev@vim.org
2 Subject: Patch 7.2.126
3 Fcc: outbox
4 From: Bram Moolenaar <Bram@moolenaar.net>
5 Mime-Version: 1.0
6 Content-Type: text/plain; charset=ISO-8859-1
7 Content-Transfer-Encoding: 8bit
8 ------------
9
10 Patch 7.2.126
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
14
15
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
18 ***************
19 *** 1010,1015 ****
20 --- 1010,1018 ----
21   # if defined(FEAT_PROFILE)
22       do_cmdline_cmd((char_u *)"profdel *");
23   # endif
24 + # if defined(FEAT_KEYMAP)
25 +     do_cmdline_cmd((char_u *)"set keymap=");
26 + #endif
27   
28   # ifdef FEAT_TITLE
29       free_titles();
30 ***************
31 *** 1034,1039 ****
32 --- 1037,1045 ----
33       free_regexp_stuff();
34       free_tag_stuff();
35       free_cd_dir();
36 + # ifdef FEAT_SIGNS
37 +     free_signs();
38 + # endif
39   # ifdef FEAT_EVAL
40       set_expr_line(NULL);
41   # endif
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
44 ***************
45 *** 6541,6546 ****
46 --- 6541,6547 ----
47   static int    last_sign_typenr = MAX_TYPENR;  /* is decremented */
48   
49   static void sign_list_defined __ARGS((sign_T *sp));
50 + static void sign_undefine __ARGS((sign_T *sp, sign_T *sp_prev));
51   
52   /*
53    * ":sign" command
54 ***************
55 *** 6749,6772 ****
56                 /* ":sign list {name}" */
57                 sign_list_defined(sp);
58             else
59 -           {
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)
65 !               {
66 !                   out_flush();
67 !                   gui_mch_destroy_sign(sp->sn_image);
68 !               }
69 ! #endif
70 !               vim_free(sp->sn_text);
71 !               if (sp_prev == NULL)
72 !                   first_sign = sp->sn_next;
73 !               else
74 !                   sp_prev->sn_next = sp->sn_next;
75 !               vim_free(sp);
76 !           }
77         }
78       }
79       else
80 --- 6750,6757 ----
81                 /* ":sign list {name}" */
82                 sign_list_defined(sp);
83             else
84                 /* ":sign undefine {name}" */
85 !               sign_undefine(sp, sp_prev);
86         }
87       }
88       else
89 ***************
90 *** 7015,7020 ****
91 --- 7000,7030 ----
92   }
93   
94   /*
95 +  * Undefine a sign and free its memory.
96 +  */
97 +     static void
98 + sign_undefine(sp, sp_prev)
99 +     sign_T    *sp;
100 +     sign_T    *sp_prev;
101 + {
102 +     vim_free(sp->sn_name);
103 +     vim_free(sp->sn_icon);
104 + #ifdef FEAT_SIGN_ICONS
105 +     if (sp->sn_image != NULL)
106 +     {
107 +       out_flush();
108 +       gui_mch_destroy_sign(sp->sn_image);
109 +     }
110 + #endif
111 +     vim_free(sp->sn_text);
112 +     if (sp_prev == NULL)
113 +       first_sign = sp->sn_next;
114 +     else
115 +       sp_prev->sn_next = sp->sn_next;
116 +     vim_free(sp);
117 + }
118
119 + /*
120    * Get highlighting attribute for sign "typenr".
121    * If "line" is TRUE: line highl, if FALSE: text highl.
122    */
123 ***************
124 *** 7088,7093 ****
125 --- 7098,7115 ----
126       return (char_u *)_("[Deleted]");
127   }
128   
129 + #if defined(EXITFREE) || defined(PROTO)
130 + /*
131 +  * Undefine/free all signs.
132 +  */
133 +     void
134 + free_signs()
135 + {
136 +     while (first_sign != NULL)
137 +       sign_undefine(first_sign, NULL);
138 + }
139 + #endif
140
141   #endif
142   
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
146 ***************
147 *** 40,45 ****
148 --- 40,46 ----
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
158 ***************
159 *** 678,679 ****
160 --- 678,681 ----
161   {   /* Add new patch number below this line */
162 + /**/
163 +     126,
164   /**/
165
166 -- 
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
169      and shower or bathe.
170
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    ///
This page took 0.042463 seconds and 3 git commands to generate.