summaryrefslogtreecommitdiffstats
path: root/vim/vim-7.2/7.2.317
blob: bc0ceeea4d4d4af6975deebb29ae3ad92cf6a57c (plain)
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    ///