if (root_interval != null)
{
MInterval interval = (mt2.root_interval == null
- ? new MInterval (0, false, to - from, false)
+ ? null
: mt2.root_interval.CopyTree (from, to));
root_interval.Insert (pos, interval);
}
{
// position: 0 1 2 3
// index: -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13
- // this |<----------<----------->---->|
- // |<--------->| |<--->|
+ // this |-----------<-----a----->-----|
+ // |-----b-----| |--c--|
//
- // interval |<====>---------->|
- // |<aaaa>---->|
- // |<...>|
+ // interval <--A-->----------->
+ // <--B-->----->
+ // <--C-->
//
- // new |<----------<----->----->-->------------>->|
- // |<--------->| |<---->-->------------>->|
- // |<----------->->|
- // |<>|
+ // new |-----------<-a-A->-----------------------|
+ // |-----b-----| |-----------<--a-->-----|
+ // |-a-B->-----| |--c--|
+ // |-a-C-|
int len = interval.total_end - interval.total_start;
MInterval temp;
for (temp = this; temp.parent != null;
temp = temp.parent)
temp.parent.total_end += len;
- if (End - pos < interval.End)
- {
-
-
- }
+ temp = new MInterval ();
+ temp.stack = new Stack<MTextProperty> (stack);
temp = divide_right (Start + 2);
temp.left = interval;