tail = copy.find_tail (copy.Length);
tail.Stack.Clear ();
}
+ M17n.DebugPrint ("Copied: {0}\n", copy);
return copy;
}
if (interval != null)
interval = interval.Copy (mtext, start, end,
- front_grafted || prev == null,
+ (front_grafted
+ || (prev == null && start == 0)),
rear_grafted);
else
interval = new MInterval (Key, mtext, end - start, null);
if (interval != null)
interval = interval.Copy (mtext, start, end,
front_grafted,
- rear_grafted || next == null);
+ (rear_grafted
+ || (next == null && end < interval.mtext.Length)));
else
interval = new MInterval (Key, mtext, end - start, null);
end = To;
rear_checked = true;
}
+ if (start == From
+ && ! front_checked
+ && start > 0
+ && isRearSensitive)
+ Prev.Stack.Clear ();
+ if (end == To
+ && ! rear_checked
+ && Next != null
+ && isFrontSensitive)
+ Next.Stack.Clear ();
if (start == From && end == To)
{
- if (! front_checked
- && start > 0
- && isRearSensitive)
- Prev.Stack.Clear ();
- if (! rear_checked
- && end < mtext.Length
- && isFrontSensitive)
- Next.Stack.Clear ();
if (Right == null)
{
vacate_node (Left);