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