summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/simple.el39
2 files changed, 27 insertions, 17 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c607fc35d17..2f9fb90ee3e 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2006-05-12 Chong Yidong <cyd@stupidchicken.com>
+
+ * simple.el (line-move-finish): Avoid calling point motion hooks
+ while processing intangibility.
+
2006-05-12 Dan Nicolaescu <dann@ics.uci.edu>
* term/xterm.el (terminal-init-xterm): Fix typo.
diff --git a/lisp/simple.el b/lisp/simple.el
index a5db709ac5e..3efffbce416 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -3645,25 +3645,30 @@ Outline mode sets this."
;; Process intangibility within a line.
;; Move to the chosen destination position from above,
;; with intangibility processing enabled.
+
+ ;; Avoid calling point-entered and point-left.
(goto-char new)
- ;; If intangibility moves us to a different (later) place
- ;; in the same line, use that as the destination.
- (if (<= (point) line-end)
- (setq new (point))
- ;; If that position is "too late",
- ;; try the previous allowable position.
- ;; See if it is ok.
- (backward-char)
- (if (if forward
- ;; If going forward, don't accept the previous
- ;; allowable position if it is before the target line.
- (< line-beg (point))
- ;; If going backward, don't accept the previous
- ;; allowable position if it is still after the target line.
- (<= (point) line-end))
+ (let ((inhibit-point-motion-hooks nil))
+ (goto-char new)
+
+ ;; If intangibility moves us to a different (later) place
+ ;; in the same line, use that as the destination.
+ (if (<= (point) line-end)
(setq new (point))
- ;; As a last resort, use the end of the line.
- (setq new line-end)))
+ ;; If that position is "too late",
+ ;; try the previous allowable position.
+ ;; See if it is ok.
+ (backward-char)
+ (if (if forward
+ ;; If going forward, don't accept the previous
+ ;; allowable position if it is before the target line.
+ (< line-beg (point))
+ ;; If going backward, don't accept the previous
+ ;; allowable position if it is still after the target line.
+ (<= (point) line-end))
+ (setq new (point))
+ ;; As a last resort, use the end of the line.
+ (setq new line-end))))
;; Now move to the updated destination, processing fields
;; as well as intangibility.