Mercurial > emacs
changeset 5084:863e092a5891
(compute_char_face): Accept new arg LIMIT.
Pass Fnext_single_property_change its new arg LIMIT.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 20 Nov 1993 09:43:41 +0000 |
parents | 37fecb3bf8d9 |
children | 82bcf2c36929 |
files | src/xfaces.c |
diffstat | 1 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xfaces.c Sat Nov 20 09:43:03 1993 +0000 +++ b/src/xfaces.c Sat Nov 20 09:43:41 1993 +0000 @@ -724,15 +724,19 @@ 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 @@ 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); }