3788 |
val =Fget_char_property (make_number (pos), Qauto_composed, it->string); |
val =Fget_char_property (make_number (pos), Qauto_composed, it->string); |
3789 |
if (! NILP (val)) |
if (! NILP (val)) |
3790 |
{ |
{ |
3791 |
Lisp_Object next; |
Lisp_Object limit = Qnil, next; |
3792 |
|
|
3793 |
|
/* As Fnext_single_char_property_change is very slow, we |
3794 |
|
limit the search to the current line. */ |
3795 |
|
if (! STRINGP (it->string)) |
3796 |
|
limit = make_number (find_next_newline_no_quit (pos, 1)); |
3797 |
next = (Fnext_single_property_change |
next = (Fnext_single_property_change |
3798 |
(make_number (pos), Qauto_composed, it->string, Qnil)); |
(make_number (pos), Qauto_composed, it->string, limit)); |
3799 |
if (INTEGERP (next)) |
if (XINT (next) < XINT (limit)) |
3800 |
{ |
{ |
3801 |
/* The current point is auto-composed, but there exist |
/* The current point is auto-composed, but there exist |
3802 |
characers not yet composed beyond the auto-compused |
characters not yet composed beyond the auto-composed |
3803 |
region. There's a possiblity that the last |
region. There's a possiblity that the last |
3804 |
characters in the region may be newly composed. */ |
characters in the region may be newly composed. */ |
3805 |
int charpos = XINT (next) - 1, bytepos, c; |
int charpos = XINT (next) - 1, bytepos, c; |
3832 |
safe_call (3, args); |
safe_call (3, args); |
3833 |
unbind_to (count, Qnil); |
unbind_to (count, Qnil); |
3834 |
|
|
3835 |
val = Fget_char_property (args[1], Qauto_composed, it->string); |
if (this_pos == pos) |
3836 |
/* Return HANDLED_RECOMPUTE_PROPS only if function fontified |
{ |
3837 |
something. This avoids an endless loop if they failed to |
val = Fget_char_property (args[1], Qauto_composed, it->string); |
3838 |
fontify the text for which reason ever. */ |
/* Return HANDLED_RECOMPUTE_PROPS only if function composed |
3839 |
if (! NILP (val)) |
something. This avoids an endless loop if they failed to |
3840 |
|
fontify the text for which reason ever. */ |
3841 |
|
if (! NILP (val)) |
3842 |
|
handled = HANDLED_RECOMPUTE_PROPS; |
3843 |
|
} |
3844 |
|
else |
3845 |
handled = HANDLED_RECOMPUTE_PROPS; |
handled = HANDLED_RECOMPUTE_PROPS; |
3846 |
} |
} |
3847 |
} |
} |