To: vim-dev@vim.org Subject: Patch 7.2.317 Fcc: outbox From: Bram Moolenaar 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 ///