From: Bram Moolenaar Date: Wed, 25 May 2011 15:56:27 +0000 (+0200) Subject: updated for version 7.3.205 X-Git-Tag: v7.3.205 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6fa46363ad667a60d4d6a07dc1e83653cd0dae17;p=vim updated for version 7.3.205 Problem: Syntax "extend" doesn't work correctly. Solution: Avoid calling check_state_ends() recursively (Ben Schmidt) --- diff --git a/src/syntax.c b/src/syntax.c index da648e398..a9a2e862f 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -990,7 +990,10 @@ syn_start_line() * previous line and regions that have "keepend". */ if (current_state.ga_len > 0) + { syn_update_ends(TRUE); + check_state_ends(); + } next_match_idx = -1; ++current_line_id; @@ -1064,7 +1067,6 @@ syn_update_ends(startofline) } } check_keepend(); - check_state_ends(); } /**************************************** @@ -2533,7 +2535,7 @@ push_next_match(cur_si) check_state_ends() { stateitem_T *cur_si; - int had_extend = FALSE; + int had_extend; cur_si = &CUR_STATE(current_state.ga_len - 1); for (;;) @@ -2586,8 +2588,7 @@ check_state_ends() /* When the ended item has "extend", another item with * "keepend" now needs to check for its end. */ - if (cur_si->si_flags & HL_EXTEND) - had_extend = TRUE; + had_extend = (cur_si->si_flags & HL_EXTEND); pop_current_state(); diff --git a/src/version.c b/src/version.c index 8de124f29..14c2b8507 100644 --- a/src/version.c +++ b/src/version.c @@ -709,6 +709,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 205, /**/ 204, /**/