Commit ca41a64d by Richard M. Stallman

### (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.```
parent 97f7b3b2
 ... ... @@ -769,11 +769,43 @@ adjust_intervals_for_insertion (tree, position, length) So split this interval at the insertion point. */ if (! (position == i->position || eobp) && END_NONSTICKY_P (i) && ! FRONT_STICKY_P (i)) && FRONT_NONSTICKY_P (i)) { temp = split_interval_right (i, position - i->position); copy_properties (i, temp); i = temp; Lisp_Object tail; Lisp_Object front, rear; front = textget (i->plist, Qfront_sticky); rear = textget (i->plist, Qrear_nonsticky); /* Does any actual property pose an actual problem? */ for (tail = i->plist; ! NILP (tail); tail = Fcdr (Fcdr (tail))) { Lisp_Object prop; prop = XCONS (tail)->car; /* Is this particular property rear-sticky? Note, if REAR isn't a cons, it must be non-nil, which means that all properties are rear-nonsticky. */ if (CONSP (rear) && NILP (Fmemq (prop, rear))) continue; /* Is this particular property front-sticky? Note, if FRONT isn't a cons, it must be nil, which means that all properties are front-nonsticky. */ if (CONSP (front) && ! NILP (Fmemq (prop, front))) continue; /* PROP isn't sticky on either side => it is a real problem. */ break; } /* If any property is a real problem, split the interval. */ if (! NILP (tail)) { temp = split_interval_right (i, position - i->position); copy_properties (i, temp); i = temp; } } /* If we are positioned between intervals, check the stickiness of ... ...
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!