diff options
author | Bram Moolenaar <Bram@vim.org> | 2011-05-25 17:56:27 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2011-05-25 17:56:27 +0200 |
commit | 6fa46363ad667a60d4d6a07dc1e83653cd0dae17 (patch) | |
tree | 60350319b401e722d25ba40a61a064c899bf485d /src | |
parent | 9b83c2f979ee756eab63dc93c67cb4ad165f10f3 (diff) | |
download | vim-6fa46363ad667a60d4d6a07dc1e83653cd0dae17.zip |
updated for version 7.3.205
Problem: Syntax "extend" doesn't work correctly.
Solution: Avoid calling check_state_ends() recursively (Ben Schmidt)
Diffstat (limited to 'src')
-rw-r--r-- | src/syntax.c | 9 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 7 insertions, 4 deletions
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 @@ -710,6 +710,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 205, +/**/ 204, /**/ 203, |