]> git.wh0rd.org Git - nano.git/commitdiff
Not matching the ^ anchor when looking further on in a line.
authorBenno Schulenberg <bensberg@justemail.net>
Sun, 18 May 2014 10:16:07 +0000 (10:16 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Sun, 18 May 2014 10:16:07 +0000 (10:16 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4903 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/nano.c

index 110453d70bb129631a8715c1eb478f314f0f8177..21d34e5b33f443eb63f26de975ef0b57043c1612 100644 (file)
--- 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.
index bf2d17bf7027b20161c7999056618cf8b6b95ffb..b9fa53ef03e8d0b747462371583cd352995686bd 100644 (file)
@@ -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