diff options
Diffstat (limited to 'src/intervals.c')
-rw-r--r-- | src/intervals.c | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/src/intervals.c b/src/intervals.c index 8bbab5a2a28..086db4db6bd 100644 --- a/src/intervals.c +++ b/src/intervals.c @@ -2196,36 +2196,38 @@ set_point_both (buffer, charpos, bytepos) Lisp_Object leave_after, leave_before, enter_after, enter_before; if (fromprev) - leave_after = textget (fromprev->plist, Qpoint_left); + leave_before = textget (fromprev->plist, Qpoint_left); else - leave_after = Qnil; + leave_before = Qnil; + if (from) - leave_before = textget (from->plist, Qpoint_left); + leave_after = textget (from->plist, Qpoint_left); else - leave_before = Qnil; + leave_after = Qnil; if (toprev) - enter_after = textget (toprev->plist, Qpoint_entered); + enter_before = textget (toprev->plist, Qpoint_entered); else - enter_after = Qnil; + enter_before = Qnil; + if (to) - enter_before = textget (to->plist, Qpoint_entered); + enter_after = textget (to->plist, Qpoint_entered); else - enter_before = Qnil; + enter_after = Qnil; if (! EQ (leave_before, enter_before) && !NILP (leave_before)) - call2 (leave_before, make_number (old_position), - make_number (charpos)); + call2 (leave_before, make_number (old_position), + make_number (charpos)); if (! EQ (leave_after, enter_after) && !NILP (leave_after)) - call2 (leave_after, make_number (old_position), - make_number (charpos)); + call2 (leave_after, make_number (old_position), + make_number (charpos)); if (! EQ (enter_before, leave_before) && !NILP (enter_before)) - call2 (enter_before, make_number (old_position), - make_number (charpos)); + call2 (enter_before, make_number (old_position), + make_number (charpos)); if (! EQ (enter_after, leave_after) && !NILP (enter_after)) - call2 (enter_after, make_number (old_position), - make_number (charpos)); + call2 (enter_after, make_number (old_position), + make_number (charpos)); } } |