commit 277701f530948898c1f666ea5e3d5b5e005863af
parent 3be5f461f7dadc4995d423494c13a97cbc0d9002
Author: Benno Schulenberg <bensberg@justemail.net>
Date: Sun, 18 May 2014 10:16:07 +0000
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
Diffstat:
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,8 @@
+2014-05-18 Benno Schulenberg <bensberg@justemail.net>
+ * 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 <bensberg@justemail.net>
* 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
@@ -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