From: Chong Yidong Date: Fri, 12 May 2006 17:39:39 +0000 (+0000) Subject: * intervals.c (set_point_both): Fix mixup before before and after X-Git-Tag: emacs-pretest-22.0.90~2596 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4e8f005c08487874cfb812f271e4d7c103eb40e7;p=emacs.git * intervals.c (set_point_both): Fix mixup before before and after in variable names. * editfns.c (Fline_beginning_position): Inhibit point-motion hooks while setting point temporarily. --- diff --git a/src/ChangeLog b/src/ChangeLog index 14a172d0b37..066cd655696 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2006-05-12 Chong Yidong + + * intervals.c (set_point_both): Fix mixup before before and after + in variable names. + + * editfns.c (Fline_beginning_position): Inhibit point-motion hooks + while setting point temporarily. + 2006-05-11 Richard Stallman * lread.c (readevalloop): Abort if START non-nil for non-buffer input. diff --git a/src/editfns.c b/src/editfns.c index b74fd2a41c2..85ce94c8f8a 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -823,6 +823,8 @@ This function does not move point. */) Lisp_Object n; { int orig, orig_byte, end; + int count = SPECPDL_INDEX (); + specbind (Qinhibit_point_motion_hooks, Qt); if (NILP (n)) XSETFASTINT (n, 1); @@ -836,6 +838,8 @@ This function does not move point. */) SET_PT_BOTH (orig, orig_byte); + unbind_to (count, Qnil); + /* Return END constrained to the current input field. */ return Fconstrain_to_field (make_number (end), make_number (orig), XINT (n) != 1 ? Qt : Qnil, 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)); } }