]> git.eshelyaron.com Git - emacs.git/commit
Maintain interval ->position fields correctly in update_interval
authorAlan Mackenzie <acm@muc.de>
Fri, 1 Mar 2019 17:35:12 +0000 (17:35 +0000)
committerAlan Mackenzie <acm@muc.de>
Fri, 1 Mar 2019 17:37:56 +0000 (17:37 +0000)
commit31182c1d17f6f7bc946d5e4576e025c9b975e0b5
tree49f54fc69a83fbc5f7a7c01a82fe1e1417a94a59
parent287f2a676405009a6927fe7c33e36299a86b2827
Maintain interval ->position fields correctly in update_interval

Also fix some anomalies in the handling of byte positions in regexp-emacs.c
This fixes bug #34525.

* src/intervals.c (SET_PARENT_POSITION): New macro.
(update_interval): When moving to an interval's parent, set that parent's
->position field, to maintain the consistency of the tree.

* src/intervals.h (struct interval): Amend the comment describing when
->position is valid.

* src/pdumper.c: Update the hash associated with struct interval.

* src/regex-emacs.c: (re_match_2_internal): Only invoke POINTER_TO_OFFSET on a
known character boundary.  Only perform arithmetic on character positions, not
on byte positions.  Correct the argument to an invocation of
UPDATE_SYNTAX_TABLE_FORWARD by adding 1 to it (in case wordend:).

* src/syntax.c: (update_syntax_table): Remove the now redundant code that set
the ->position field of all parents of the interval found by update_interval.
src/intervals.c
src/intervals.h
src/pdumper.c
src/regex-emacs.c
src/syntax.c