Fix bug #9495 with cursor positioning on truncated lines.
authorJohan Bockgård <bojohan@gnu.org>
Thu, 15 Sep 2011 16:02:49 +0000 (19:02 +0300)
committerEli Zaretskii <eliz@gnu.org>
Thu, 15 Sep 2011 16:02:49 +0000 (19:02 +0300)
Patch by Johan Bockgוrd <bojohan@gnu.org>

 src/xdisp.c (try_cursor_movement): Only check for exact match if
 cursor hpos found by set_cursor_from_row is valid.  (Bug#9495)

src/ChangeLog
src/xdisp.c

index 3dbddc9..83dc66a 100644 (file)
@@ -1,3 +1,8 @@
+2011-09-15  Johan Bockgård  <bojohan@gnu.org>
+
+       * xdisp.c (try_cursor_movement): Only check for exact match if
+       cursor hpos found by set_cursor_from_row is valid.  (Bug#9495)
+
 2011-09-14  Paul Eggert  <eggert@cs.ucla.edu>
 
        Remove unused external symbols.
index 1ccaa06..0f842b8 100644 (file)
@@ -14627,7 +14627,10 @@ try_cursor_movement (Lisp_Object window, struct text_pos startp, int *scroll_ste
                     is set, we are done.  */
                  at_zv_p =
                    MATRIX_ROW (w->current_matrix, w->cursor.vpos)->ends_at_zv_p;
-                 if (!at_zv_p)
+                 if (rv && !at_zv_p
+                     && w->cursor.hpos >= 0
+                     && w->cursor.hpos < MATRIX_ROW_USED (w->current_matrix,
+                                                          w->cursor.vpos))
                    {
                      struct glyph_row *candidate =
                        MATRIX_ROW (w->current_matrix, w->cursor.vpos);