From 277701f530948898c1f666ea5e3d5b5e005863af Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Sun, 18 May 2014 10:16:07 +0000 Subject: [PATCH] Not matching the ^ anchor when looking further on in a line. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4903 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 5 +++++ src/nano.c | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 110453d7..21d34e5b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2014-05-18 Benno Schulenberg + * src/nano (precalc_multicolorinfo): Do not match the ^ anchor when + looking further on in a line. This prevents an end="^$" from being + sometimes mistakenly matched. Fix inspired by Savannah bug #27708. + 2014-05-17 Benno Schulenberg * doc/syntax/json.nanorc: New file, originally from Aapo Rantalainen, but edited, extended, and improved. See Savannah patch #7410. diff --git a/src/nano.c b/src/nano.c index bf2d17bf..b9fa53ef 100644 --- a/src/nano.c +++ b/src/nano.c @@ -1884,7 +1884,8 @@ void precalc_multicolorinfo(void) goto precalc_cleanup; } - while ((nostart = regexec(tmpcolor->start, &fileptr->data[startx], 1, &startmatch, 0)) == 0) { + while ((nostart = regexec(tmpcolor->start, &fileptr->data[startx], 1, &startmatch, + (startx == 0) ? 0 : REG_NOTBOL)) == 0) { /* Look for an end, and start marking how many lines are * encompassed, which should speed up rendering later. */ startx += startmatch.rm_eo; @@ -1893,7 +1894,8 @@ void precalc_multicolorinfo(void) #endif /* Look first on this line for an end. */ - if (regexec(tmpcolor->end, &fileptr->data[startx], 1, &endmatch, 0) == 0) { + if (regexec(tmpcolor->end, &fileptr->data[startx], 1, &endmatch, + (startx == 0) ? 0 : REG_NOTBOL) == 0) { startx += endmatch.rm_eo; fileptr->multidata[tmpcolor->id] |= CSTARTENDHERE; #ifdef DEBUG -- 2.39.5