Backport of commit
1b595b4598e7 since it turns out this "minor typo"
had disastrous consequences in pathological cases and explains
some of the problems seen in bug#71644 and bug#63040.
* src/marker.c (buf_bytepos_to_charpos): Don't compare byte-positions
with char-positions.
{
CONSIDER (tail->bytepos, tail->charpos);
- /* If we are down to a range of 50 chars,
+ /* If we are down to a range of DISTANCE bytes,
don't bother checking any other markers;
scan the intervening chars directly now. */
- if (best_above - bytepos < distance
- || bytepos - best_below < distance)
+ if (best_above_byte - bytepos < distance
+ || bytepos - best_below_byte < distance)
break;
else
distance += BYTECHAR_DISTANCE_INCREMENT;