]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix bug #17744 with cursor motion near overlay string with 'cursor' prop.
authorEli Zaretskii <eliz@gnu.org>
Wed, 11 Jun 2014 16:11:32 +0000 (19:11 +0300)
committerEli Zaretskii <eliz@gnu.org>
Wed, 11 Jun 2014 16:11:32 +0000 (19:11 +0300)
 src/xdisp.c (set_cursor_from_row): Fix an off-by-one error when
 matching overlay strings with 'cursor' property against buffer
 positions traversed in the glyph row.

src/ChangeLog
src/xdisp.c

index f7ee48d1d0781ccc915b47dae1138b868b0b699f..3468cea6159c11c1f80be35a83a744ad48a1135b 100644 (file)
@@ -1,3 +1,9 @@
+2014-06-11  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (set_cursor_from_row): Fix an off-by-one error when
+       matching overlay strings with 'cursor' property against buffer
+       positions traversed in the glyph row.  (Bug#17744)
+
 2014-06-08  Glenn Morris  <rgm@gnu.org>
 
        * fileio.c (write-region-inhibit-fsync): Doc tweak.
index 1a5c29ac5bed35a9ae5756fb3d19f5b166503657..f0eeb9ac60163cc91629e5a3396f7bb15d67668e 100644 (file)
@@ -14421,7 +14421,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
                                              pos_after, 0);
 
                if (prop_pos >= pos_before)
-                 bpos_max = prop_pos - 1;
+                 bpos_max = prop_pos;
              }
            if (INTEGERP (chprop))
              {
@@ -14495,7 +14495,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
                                              pos_after, 0);
 
                if (prop_pos >= pos_before)
-                 bpos_max = prop_pos - 1;
+                 bpos_max = prop_pos;
              }
            if (INTEGERP (chprop))
              {
@@ -14525,7 +14525,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
      GLYPH_BEFORE and GLYPH_AFTER.  */
   if (!((row->reversed_p ? glyph > glyphs_end : glyph < glyphs_end)
        && BUFFERP (glyph->object) && glyph->charpos == pt_old)
-      && !(bpos_max < pt_old && pt_old <= bpos_covered))
+      && !(bpos_max <= pt_old && pt_old <= bpos_covered))
     {
       /* An empty line has a single glyph whose OBJECT is zero and
         whose CHARPOS is the position of a newline on that line.