diff options
| -rw-r--r-- | src/ChangeLog | 8 | ||||
| -rw-r--r-- | src/editfns.c | 4 | ||||
| -rw-r--r-- | src/intervals.c | 34 |
3 files changed, 30 insertions, 16 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 14a172d0b37..066cd655696 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2006-05-12 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * intervals.c (set_point_both): Fix mixup before before and after | ||
| 4 | in variable names. | ||
| 5 | |||
| 6 | * editfns.c (Fline_beginning_position): Inhibit point-motion hooks | ||
| 7 | while setting point temporarily. | ||
| 8 | |||
| 1 | 2006-05-11 Richard Stallman <rms@gnu.org> | 9 | 2006-05-11 Richard Stallman <rms@gnu.org> |
| 2 | 10 | ||
| 3 | * lread.c (readevalloop): Abort if START non-nil for non-buffer input. | 11 | * 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. */) | |||
| 823 | Lisp_Object n; | 823 | Lisp_Object n; |
| 824 | { | 824 | { |
| 825 | int orig, orig_byte, end; | 825 | int orig, orig_byte, end; |
| 826 | int count = SPECPDL_INDEX (); | ||
| 827 | specbind (Qinhibit_point_motion_hooks, Qt); | ||
| 826 | 828 | ||
| 827 | if (NILP (n)) | 829 | if (NILP (n)) |
| 828 | XSETFASTINT (n, 1); | 830 | XSETFASTINT (n, 1); |
| @@ -836,6 +838,8 @@ This function does not move point. */) | |||
| 836 | 838 | ||
| 837 | SET_PT_BOTH (orig, orig_byte); | 839 | SET_PT_BOTH (orig, orig_byte); |
| 838 | 840 | ||
| 841 | unbind_to (count, Qnil); | ||
| 842 | |||
| 839 | /* Return END constrained to the current input field. */ | 843 | /* Return END constrained to the current input field. */ |
| 840 | return Fconstrain_to_field (make_number (end), make_number (orig), | 844 | return Fconstrain_to_field (make_number (end), make_number (orig), |
| 841 | XINT (n) != 1 ? Qt : Qnil, | 845 | 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) | |||
| 2196 | Lisp_Object leave_after, leave_before, enter_after, enter_before; | 2196 | Lisp_Object leave_after, leave_before, enter_after, enter_before; |
| 2197 | 2197 | ||
| 2198 | if (fromprev) | 2198 | if (fromprev) |
| 2199 | leave_after = textget (fromprev->plist, Qpoint_left); | 2199 | leave_before = textget (fromprev->plist, Qpoint_left); |
| 2200 | else | 2200 | else |
| 2201 | leave_after = Qnil; | 2201 | leave_before = Qnil; |
| 2202 | |||
| 2202 | if (from) | 2203 | if (from) |
| 2203 | leave_before = textget (from->plist, Qpoint_left); | 2204 | leave_after = textget (from->plist, Qpoint_left); |
| 2204 | else | 2205 | else |
| 2205 | leave_before = Qnil; | 2206 | leave_after = Qnil; |
| 2206 | 2207 | ||
| 2207 | if (toprev) | 2208 | if (toprev) |
| 2208 | enter_after = textget (toprev->plist, Qpoint_entered); | 2209 | enter_before = textget (toprev->plist, Qpoint_entered); |
| 2209 | else | 2210 | else |
| 2210 | enter_after = Qnil; | 2211 | enter_before = Qnil; |
| 2212 | |||
| 2211 | if (to) | 2213 | if (to) |
| 2212 | enter_before = textget (to->plist, Qpoint_entered); | 2214 | enter_after = textget (to->plist, Qpoint_entered); |
| 2213 | else | 2215 | else |
| 2214 | enter_before = Qnil; | 2216 | enter_after = Qnil; |
| 2215 | 2217 | ||
| 2216 | if (! EQ (leave_before, enter_before) && !NILP (leave_before)) | 2218 | if (! EQ (leave_before, enter_before) && !NILP (leave_before)) |
| 2217 | call2 (leave_before, make_number (old_position), | 2219 | call2 (leave_before, make_number (old_position), |
| 2218 | make_number (charpos)); | 2220 | make_number (charpos)); |
| 2219 | if (! EQ (leave_after, enter_after) && !NILP (leave_after)) | 2221 | if (! EQ (leave_after, enter_after) && !NILP (leave_after)) |
| 2220 | call2 (leave_after, make_number (old_position), | 2222 | call2 (leave_after, make_number (old_position), |
| 2221 | make_number (charpos)); | 2223 | make_number (charpos)); |
| 2222 | 2224 | ||
| 2223 | if (! EQ (enter_before, leave_before) && !NILP (enter_before)) | 2225 | if (! EQ (enter_before, leave_before) && !NILP (enter_before)) |
| 2224 | call2 (enter_before, make_number (old_position), | 2226 | call2 (enter_before, make_number (old_position), |
| 2225 | make_number (charpos)); | 2227 | make_number (charpos)); |
| 2226 | if (! EQ (enter_after, leave_after) && !NILP (enter_after)) | 2228 | if (! EQ (enter_after, leave_after) && !NILP (enter_after)) |
| 2227 | call2 (enter_after, make_number (old_position), | 2229 | call2 (enter_after, make_number (old_position), |
| 2228 | make_number (charpos)); | 2230 | make_number (charpos)); |
| 2229 | } | 2231 | } |
| 2230 | } | 2232 | } |
| 2231 | 2233 | ||