changeset 70842:8b271981e0c5

Update comments.
author Chong Yidong <cyd@stupidchicken.com>
date Tue, 23 May 2006 00:49:55 +0000
parents 2a874a2efaf4
children 4f398d726c7c
files lisp/simple.el src/intervals.c
diffstat 2 files changed, 12 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/simple.el	Mon May 22 21:50:47 2006 +0000
+++ b/lisp/simple.el	Tue May 23 00:49:55 2006 +0000
@@ -3645,10 +3645,14 @@
 	(setq new (point))
 
 	;; Process intangibility within a line.
-	;; Move to the chosen destination position from above,
-	;; with intangibility processing enabled.
-
-	;; Avoid calling point-entered and point-left.
+	;; With inhibit-point-motion-hooks bound to nil, a call to
+	;; goto-char moves point past intangible text.
+
+	;; However, inhibit-point-motion-hooks controls both the
+	;; intangibility and the point-entered/point-left hooks.  The
+	;; following hack avoids calling the point-* hooks
+	;; unnecessarily.  Note that we move *forward* past intangible
+	;; text when the initial and final points are the same.
 	(goto-char new)
 	(let ((inhibit-point-motion-hooks nil))
 	  (goto-char new)
--- a/src/intervals.c	Mon May 22 21:50:47 2006 +0000
+++ b/src/intervals.c	Tue May 23 00:49:55 2006 +0000
@@ -2016,6 +2016,10 @@
   register INTERVAL to, from, toprev, fromprev;
   int buffer_point;
   int old_position = BUF_PT (buffer);
+  /* This ensures that we move forward past intangible text when the
+     initial position is the same as the destination, in the rare
+     instances where this is important, e.g. in line-move-finish
+     (simple.el).  */
   int backwards = (charpos < old_position ? 1 : 0);
   int have_overlays;
   int original_position;