From: Richard M. Stallman Date: Sat, 20 Nov 1993 09:43:41 +0000 (+0000) Subject: (compute_char_face): Accept new arg LIMIT. X-Git-Tag: emacs-19.34~10767 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b349f4fb74edd57c81f187d01aadfb79e91e9748;p=emacs.git (compute_char_face): Accept new arg LIMIT. Pass Fnext_single_property_change its new arg LIMIT. --- diff --git a/src/xfaces.c b/src/xfaces.c index f2a26a52def..6cba032b7e6 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -724,15 +724,19 @@ sort_overlays (s1, s2) F is the frame in use for display, and W is a window displaying the current buffer. - REGION_BEG, REGION_END delimit the region, so it can be highlighted. */ + REGION_BEG, REGION_END delimit the region, so it can be highlighted. + + LIMIT is a position not to scan beyond. That is to limit + the time this function can take. */ int -compute_char_face (f, w, pos, region_beg, region_end, endptr) +compute_char_face (f, w, pos, region_beg, region_end, endptr, limit) struct frame *f; struct window *w; int pos; int region_beg, region_end; int *endptr; + int limit; { struct face face; Lisp_Object prop, position; @@ -757,9 +761,10 @@ compute_char_face (f, w, pos, region_beg, region_end, endptr) XFASTINT (position) = pos; prop = Fget_text_property (position, Qface, w->buffer); { - Lisp_Object end; + Lisp_Object limit1, end; - end = Fnext_single_property_change (position, Qface, w->buffer); + XFASTINT (limit1) = (limit < endpos ? limit : endpos); + end = Fnext_single_property_change (position, Qface, w->buffer, limit1); if (INTEGERP (end)) endpos = XINT (end); }