Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Krüger <mkrueger@xamarin.com>2011-11-09 17:58:38 +0400
committerMike Krüger <mkrueger@xamarin.com>2011-11-09 18:07:22 +0400
commit63a2069ad92ea0836adf4a6d5a5d401aee510a31 (patch)
tree91c44702ef03b03311821f22845f8c03d0c2000e /main/src/core
parent00f53d719bf6313272333e719fc5083b8aa23d75 (diff)
[TextEditor] Fixed bug in segment tree (Part of "Bug 1963 - Replacing
collapsed code acts strangely").
Diffstat (limited to 'main/src/core')
-rw-r--r--main/src/core/Mono.Texteditor/Mono.TextEditor/SegmentTree.cs11
1 files changed, 7 insertions, 4 deletions
diff --git a/main/src/core/Mono.Texteditor/Mono.TextEditor/SegmentTree.cs b/main/src/core/Mono.Texteditor/Mono.TextEditor/SegmentTree.cs
index 51c01508bb..28649d0e9a 100644
--- a/main/src/core/Mono.Texteditor/Mono.TextEditor/SegmentTree.cs
+++ b/main/src/core/Mono.Texteditor/Mono.TextEditor/SegmentTree.cs
@@ -84,7 +84,7 @@ namespace Mono.TextEditor
}
int delta = (e.Value != null ? e.Value.Length : 0) - e.Count;
foreach (var segment in new List<T> (GetSegmentsOverlapping (e.Offset, e.Count))) {
- if (segment.Offset <= e.Offset) {
+ if (segment.Offset < e.Offset) {
if (segment.EndOffset >= e.Offset + e.Count) {
segment.Length += delta;
} else {
@@ -95,14 +95,12 @@ namespace Mono.TextEditor
}
int remainingLength = segment.EndOffset - (e.Offset + e.Count);
Remove (segment);
-
if (remainingLength > 0) {
segment.Offset = e.Offset + e.Count;
segment.Length = remainingLength;
Add (segment);
}
}
-
var next = SearchFirstSegmentWithStartAfter (e.Offset + 1);
if (next != null) {
@@ -215,6 +213,11 @@ namespace Mono.TextEditor
this.start = start;
this.end = end;
}
+
+ public override string ToString ()
+ {
+ return string.Format ("[Interval: start={0},end={1}]", start, end);
+ }
}
public IEnumerable<T> GetSegmentsOverlapping (int offset, int length)
@@ -245,7 +248,7 @@ namespace Mono.TextEditor
if (nodeEnd < 0)
continue;
- if (nodeStart <= node.Length)
+ if (nodeStart <= node.Length)
yield return (T)node;
if (node.right != null)