# HG changeset patch # User Karl Heuer # Date 896480782 0 # Node ID e179bf1418b71b605c452525da7a303aacf6af74 # Parent e50e9ea937000a6fc1956a1625171203de76c458 (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. diff -r e50e9ea93700 -r e179bf1418b7 src/textprop.c --- 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; }