Discovery of replacing display properties now uses the same code
authorEli Zaretskii <eliz@gnu.org>
Sat, 21 May 2011 14:22:14 +0000 (17:22 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 21 May 2011 14:22:14 +0000 (17:22 +0300)
commitfc6f18ceeaae3c3eb4d68120899e16c2fc73ea86
treedbbc17ffa38f01c0fe0184605569c1051f6eec8d
parent683a44f77c8c83febe1ab7ebe7fc32d26fc71bcd
Discovery of replacing display properties now uses the same code
as the display engine.  Tested OK with display properties whose
value is a list.

 src/dispextern.h (struct bidi_it): New member frame_window_p.
 (bidi_init_it, compute_display_string_pos): Update prototypes.
 src/bidi.c (bidi_fetch_char): Accept additional argument
 FRAME_WINDOW_P and pass it to compute_display_string_pos.  All
 callers changed.
 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
 it to initialize the frame_window_p member of struct bidi_it.
 src/xdisp.c (handle_display_spec): New function, refactored from the
 last portion of handle_display_prop.
 (compute_display_string_pos): Accept additional argument
 FRAME_WINDOW_P.  Call handle_display_spec to determine whether the
 value of a `display' property is a "replacing spec".
 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
 and FRAME_WINDOW_P.  If IT is NULL, don't set up the iterator from
 the display property, but just return a value indicating whether
 the display property will replace the characters it covers.
 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
 frame_window_p members of struct bidi_it.
src/ChangeLog
src/bidi.c
src/dispextern.h
src/xdisp.c