Mercurial > emacs
changeset 22280:e179bf1418b7
(Fnext_property_change): Properly offset interval
position for string when comparing with LIMIT.
(property_change_between_p): Likewise.
(Fnext_single_property_change, Fprevious_property_change): Likewise.
(Fprevious_single_property_change): Likewise.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Fri, 29 May 1998 22:26:22 +0000 |
parents | e50e9ea93700 |
children | fa2cf768a61a |
files | src/textprop.c |
diffstat | 1 files changed, 18 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/textprop.c Thu May 28 18:10:20 1998 +0000 +++ b/src/textprop.c Fri May 29 22:26:22 1998 +0000 @@ -726,12 +726,14 @@ next = next_interval (i); while (! NULL_INTERVAL_P (next) && intervals_equal (i, next) - && (NILP (limit) || next->position < XFASTINT (limit))) + && (NILP (limit) + || next->position - (STRINGP (object)) < XFASTINT (limit))) next = next_interval (next); if (NULL_INTERVAL_P (next)) return limit; - if (! NILP (limit) && !(next->position < XFASTINT (limit))) + if (! NILP (limit) + && !(next->position - (STRINGP (object)) < XFASTINT (limit))) return limit; XSETFASTINT (position, next->position - (STRINGP (object))); @@ -760,7 +762,7 @@ next = next_interval (next); if (NULL_INTERVAL_P (next)) return 0; - if (next->position >= end) + if (next->position - (STRINGP (object)) >= end) return 0; } @@ -801,12 +803,13 @@ next = next_interval (i); while (! NULL_INTERVAL_P (next) && EQ (here_val, textget (next->plist, prop)) - && (NILP (limit) || next->position < XFASTINT (limit))) + && (NILP (limit) || next->position - (STRINGP (object)) < XFASTINT (limit))) next = next_interval (next); if (NULL_INTERVAL_P (next)) return limit; - if (! NILP (limit) && !(next->position < XFASTINT (limit))) + if (! NILP (limit) + && !(next->position - (STRINGP (object)) < XFASTINT (limit))) return limit; XSETFASTINT (position, next->position - (STRINGP (object))); @@ -845,16 +848,18 @@ previous = previous_interval (i); while (! NULL_INTERVAL_P (previous) && intervals_equal (previous, i) && (NILP (limit) - || previous->position + LENGTH (previous) > XFASTINT (limit))) + || (previous->position + LENGTH (previous) - (STRINGP (object)) + > XFASTINT (limit)))) previous = previous_interval (previous); if (NULL_INTERVAL_P (previous)) return limit; if (!NILP (limit) - && !(previous->position + LENGTH (previous) > XFASTINT (limit))) + && !(previous->position + LENGTH (previous) - (STRINGP (object)) + > XFASTINT (limit))) return limit; XSETFASTINT (position, (previous->position + LENGTH (previous) - - (STRINGP (object)))); + - (STRINGP (object)))); return position; } @@ -895,16 +900,18 @@ while (! NULL_INTERVAL_P (previous) && EQ (here_val, textget (previous->plist, prop)) && (NILP (limit) - || previous->position + LENGTH (previous) > XFASTINT (limit))) + || (previous->position + LENGTH (previous) - (STRINGP (object)) + > XFASTINT (limit)))) previous = previous_interval (previous); if (NULL_INTERVAL_P (previous)) return limit; if (!NILP (limit) - && !(previous->position + LENGTH (previous) > XFASTINT (limit))) + && !(previous->position + LENGTH (previous) - (STRINGP (object)) + > XFASTINT (limit))) return limit; XSETFASTINT (position, (previous->position + LENGTH (previous) - - (STRINGP (object)))); + - (STRINGP (object)))); return position; }