Fix cursor motion across display strings covering reordered text.
authorEli Zaretskii <eliz@gnu.org>
Sat, 28 May 2011 17:23:44 +0000 (20:23 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 28 May 2011 17:23:44 +0000 (20:23 +0300)
commit0e14fe90d816f77788f1985ce853b473b9416d3b
tree4f8c37497a507dbc356b0605d75cfaab29d5cb78
parentc40e2fb22c6f1e21b63209574b75daaee853123f
Fix cursor motion across display strings covering reordered text.

 src/xdisp.c (set_cursor_from_row): Set start and stop points
 according to the row's direction when priming the loop that looks
 for the glyph on which to display cursor.
 (single_display_spec_intangible_p): Function deleted.
 (display_prop_intangible_p): Reimplement to call
 handle_display_spec instead of single_display_spec_intangible_p.
 Accept 3 additional arguments needed by handle_display_spec.  This
 fixes incorrect cursor motion across display property with complex
 values: lists, `(when COND...)' forms, etc.
 (single_display_spec_string_p): Support property values that are
 lists with the argument STRING its top-level element.
 (display_prop_string_p): Fix the condition for processing a
 property that is a list to be consistent with handle_display_spec.
 src/keyboard.c (adjust_point_for_property): Adjust the call to
 display_prop_intangible_p to its new signature.
 src/dispextern.h (display_prop_intangible_p): Adjust prototype.
src/ChangeLog
src/dispextern.h
src/keyboard.c
src/xdisp.c