diff --git a/ChangeLog b/ChangeLog index 3d11a5cc..ea83190b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,7 @@ 2009-02-08 Chris Allegretta + * 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 25c9603a..c20ace02 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; }