|
1 To: [email protected] |
|
2 Subject: Patch 7.2.317 |
|
3 Fcc: outbox |
|
4 From: Bram Moolenaar <[email protected]> |
|
5 Mime-Version: 1.0 |
|
6 Content-Type: text/plain; charset=UTF-8 |
|
7 Content-Transfer-Encoding: 8bit |
|
8 ------------ |
|
9 |
|
10 Patch 7.2.317 |
|
11 Problem: Memory leak when adding a highlight group with unprintable |
|
12 characters, resulting in E669. |
|
13 Solution: Free the memory. And fix a few typos. (Dominique Pelle) |
|
14 Files: src/syntax.c |
|
15 |
|
16 |
|
17 *** ../vim-7.2.316/src/syntax.c 2009-05-17 13:30:58.000000000 +0200 |
|
18 --- src/syntax.c 2009-12-16 18:09:05.000000000 +0100 |
|
19 *************** |
|
20 *** 206,212 **** |
|
21 static int current_attr = 0; /* attr of current syntax word */ |
|
22 #ifdef FEAT_EVAL |
|
23 static int current_id = 0; /* ID of current char for syn_get_id() */ |
|
24 ! static int current_trans_id = 0; /* idem, transparancy removed */ |
|
25 #endif |
|
26 |
|
27 typedef struct syn_cluster_S |
|
28 --- 206,212 ---- |
|
29 static int current_attr = 0; /* attr of current syntax word */ |
|
30 #ifdef FEAT_EVAL |
|
31 static int current_id = 0; /* ID of current char for syn_get_id() */ |
|
32 ! static int current_trans_id = 0; /* idem, transparency removed */ |
|
33 #endif |
|
34 |
|
35 typedef struct syn_cluster_S |
|
36 *************** |
|
37 *** 282,288 **** |
|
38 int si_idx; /* index of syntax pattern or |
|
39 KEYWORD_IDX */ |
|
40 int si_id; /* highlight group ID for keywords */ |
|
41 ! int si_trans_id; /* idem, transparancy removed */ |
|
42 int si_m_lnum; /* lnum of the match */ |
|
43 int si_m_startcol; /* starting column of the match */ |
|
44 lpos_T si_m_endpos; /* just after end posn of the match */ |
|
45 --- 282,288 ---- |
|
46 int si_idx; /* index of syntax pattern or |
|
47 KEYWORD_IDX */ |
|
48 int si_id; /* highlight group ID for keywords */ |
|
49 ! int si_trans_id; /* idem, transparency removed */ |
|
50 int si_m_lnum; /* lnum of the match */ |
|
51 int si_m_startcol; /* starting column of the match */ |
|
52 lpos_T si_m_endpos; /* just after end posn of the match */ |
|
53 *************** |
|
54 *** 1274,1280 **** |
|
55 dist = syn_buf->b_ml.ml_line_count / (syn_buf->b_sst_len - Rows) + 1; |
|
56 |
|
57 /* |
|
58 ! * Go throught the list to find the "tick" for the oldest entry that can |
|
59 * be removed. Set "above" when the "tick" for the oldest entry is above |
|
60 * "b_sst_lasttick" (the display tick wraps around). |
|
61 */ |
|
62 --- 1274,1280 ---- |
|
63 dist = syn_buf->b_ml.ml_line_count / (syn_buf->b_sst_len - Rows) + 1; |
|
64 |
|
65 /* |
|
66 ! * Go through the list to find the "tick" for the oldest entry that can |
|
67 * be removed. Set "above" when the "tick" for the oldest entry is above |
|
68 * "b_sst_lasttick" (the display tick wraps around). |
|
69 */ |
|
70 *************** |
|
71 *** 2319,2325 **** |
|
72 ? (syn_buf->b_spell_cluster_id == 0) |
|
73 : (syn_buf->b_syn_spell == SYNSPL_TOP); |
|
74 |
|
75 ! /* nextgroup ends at end of line, unless "skipnl" or "skipemtpy" present */ |
|
76 if (current_next_list != NULL |
|
77 && syn_getcurline()[current_col + 1] == NUL |
|
78 && !(current_next_flags & (HL_SKIPNL | HL_SKIPEMPTY))) |
|
79 --- 2319,2325 ---- |
|
80 ? (syn_buf->b_spell_cluster_id == 0) |
|
81 : (syn_buf->b_syn_spell == SYNSPL_TOP); |
|
82 |
|
83 ! /* nextgroup ends at end of line, unless "skipnl" or "skipempty" present */ |
|
84 if (current_next_list != NULL |
|
85 && syn_getcurline()[current_col + 1] == NUL |
|
86 && !(current_next_flags & (HL_SKIPNL | HL_SKIPEMPTY))) |
|
87 *************** |
|
88 *** 6108,6114 **** |
|
89 win_T *wp; |
|
90 long lnum; |
|
91 colnr_T col; |
|
92 ! int trans; /* remove transparancy */ |
|
93 int *spellp; /* return: can do spell checking */ |
|
94 int keep_state; /* keep state of char at "col" */ |
|
95 { |
|
96 --- 6108,6114 ---- |
|
97 win_T *wp; |
|
98 long lnum; |
|
99 colnr_T col; |
|
100 ! int trans; /* remove transparency */ |
|
101 int *spellp; /* return: can do spell checking */ |
|
102 int keep_state; /* keep state of char at "col" */ |
|
103 { |
|
104 *************** |
|
105 *** 7523,7529 **** |
|
106 #if defined(FEAT_GUI) || defined(PROTO) |
|
107 /* |
|
108 * Set the normal foreground and background colors according to the "Normal" |
|
109 ! * highlighighting group. For X11 also set "Menu", "Scrollbar", and |
|
110 * "Tooltip" colors. |
|
111 */ |
|
112 void |
|
113 --- 7523,7529 ---- |
|
114 #if defined(FEAT_GUI) || defined(PROTO) |
|
115 /* |
|
116 * Set the normal foreground and background colors according to the "Normal" |
|
117 ! * highlighting group. For X11 also set "Menu", "Scrollbar", and |
|
118 * "Tooltip" colors. |
|
119 */ |
|
120 void |
|
121 *************** |
|
122 *** 8647,8652 **** |
|
123 --- 8647,8653 ---- |
|
124 if (!vim_isprintc(*p)) |
|
125 { |
|
126 EMSG(_("E669: Unprintable character in group name")); |
|
127 + vim_free(name); |
|
128 return 0; |
|
129 } |
|
130 else if (!ASCII_ISALNUM(*p) && *p != '_') |
|
131 *** ../vim-7.2.316/src/version.c 2009-12-16 17:14:08.000000000 +0100 |
|
132 --- src/version.c 2009-12-16 18:09:14.000000000 +0100 |
|
133 *************** |
|
134 *** 683,684 **** |
|
135 --- 683,686 ---- |
|
136 { /* Add new patch number below this line */ |
|
137 + /**/ |
|
138 + 317, |
|
139 /**/ |
|
140 |
|
141 -- |
|
142 hundred-and-one symptoms of being an internet addict: |
|
143 35. Your husband tells you he's had the beard for 2 months. |
|
144 |
|
145 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\ |
|
146 /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
|
147 \\\ download, build and distribute -- http://www.A-A-P.org /// |
|
148 \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |