From 9036363b546b1868e22a9fa3826ab760a3df63a4 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Fri, 12 May 2006 17:48:40 +0000 Subject: [PATCH] * simple.el (line-move-finish): Fix last fix. --- lisp/ChangeLog | 5 +++++ lisp/simple.el | 39 ++++++++++++++++++++++----------------- 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 + + * simple.el (line-move-finish): Avoid calling point motion hooks + while processing intangibility. + 2006-05-12 Dan Nicolaescu * 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. -- 2.39.5