diff --git a/ChangeLog b/ChangeLog index 3d11a5cc330f662ceb43e2e96f47a72833585b1f..ea83190b775795d567fe59e94ccd6384f9c5100d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,7 @@ 2009-02-08 Chris Allegretta <chrisa@asty.org> + * Make reset_multidata reset more lines, since contrary to previous problems the + syntax highlting is now too *un*ambitious, causing display glitches when + deleting a regex boundary. * Add more multidata initliazers for new buffers and 'magic lines'. Fixes segfaults with syntax highlighting in new buffers, initially reported by Mike Frysinger. diff --git a/src/color.c b/src/color.c index 25c9603a16eb6fa9f39da3a6cf55ac70c1910e2c..c20ace02e6f6c89f579d7ec327c96563be8f0a07 100644 --- a/src/color.c +++ b/src/color.c @@ -268,6 +268,16 @@ void reset_multis_after(filestruct *fileptr, int mindex) else break; } + for (; oof != NULL; oof = oof->next) { + alloc_multidata_if_needed(oof); + if (oof->multidata == NULL) + continue; + if (oof->multidata[mindex] == CNONE) + oof->multidata[mindex] = -1; + else + break; + } + edit_refresh_needed = TRUE; } void reset_multis_before(filestruct *fileptr, int mindex) @@ -282,6 +292,17 @@ void reset_multis_before(filestruct *fileptr, int mindex) else break; } + for (; oof != NULL; oof = oof->prev) { + alloc_multidata_if_needed(oof); + if (oof->multidata == NULL) + continue; + if (oof->multidata[mindex] == CNONE) + oof->multidata[mindex] = -1; + else + break; + } + + edit_refresh_needed = TRUE; }