From b827a9e32bc91d8528aa4081dc565d35a28b3156 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Wed, 18 Dec 1996 06:30:59 +0000 Subject: [PATCH] (set_point): Use virtual bounds, not real bounds, in the abort test for POSITION. Skip the intangibility test if POSITION is at either end of buffer. --- src/intervals.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/intervals.c b/src/intervals.c index 1e5a3782ef..de5e3b30f5 100644 --- a/src/intervals.c +++ b/src/intervals.c @@ -1613,7 +1613,7 @@ set_point (position, buffer) /* Check this now, before checking if the buffer has any intervals. That way, we can catch conditions which break this sanity check whether or not there are intervals in the buffer. */ - if (position > BUF_Z (buffer) || position < BUF_BEG (buffer)) + if (position > BUF_ZV (buffer) || position < BUF_BEGV (buffer)) abort (); have_overlays = (! NILP (buffer->overlays_before) @@ -1671,7 +1671,10 @@ set_point (position, buffer) move forward or backward until a change in that property. */ if (NILP (Vinhibit_point_motion_hooks) && ((! NULL_INTERVAL_P (to) && ! NULL_INTERVAL_P (toprev)) - || have_overlays)) + || have_overlays) + /* Intangibility never stops us from positioning at the beginning + or end of the buffer, so don't bother checking in that case. */ + && position != BEGV && position != ZV) { Lisp_Object intangible_propval; Lisp_Object pos; -- 2.39.2