summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfvogel <fvogelnew1@free.fr>2015-07-13 10:15:37 (GMT)
committerfvogel <fvogelnew1@free.fr>2015-07-13 10:15:37 (GMT)
commit5f4df2650c00f3dcc60da4204242e9b659e756f3 (patch)
treed70d1a6b047c6e84d8094bb649a2dc979f78d867
parent978fa016faab5c802c8dc5a7d03d97590545e2e2 (diff)
parentdef76faf990796ed8c158a61bd05d4b64ad17984 (diff)
downloadtk-5f4df2650c00f3dcc60da4204242e9b659e756f3.zip
tk-5f4df2650c00f3dcc60da4204242e9b659e756f3.tar.gz
tk-5f4df2650c00f3dcc60da4204242e9b659e756f3.tar.bz2
Fixed bug [3f1f79abcf] - Text widget crash when seeing or bboxing (or selecting, moving the cursor...) in elided text
-rw-r--r--generic/tkTextIndex.c2
-rw-r--r--tests/textIndex.test13
2 files changed, 14 insertions, 1 deletions
diff --git a/generic/tkTextIndex.c b/generic/tkTextIndex.c
index 564b4c3..8820191 100644
--- a/generic/tkTextIndex.c
+++ b/generic/tkTextIndex.c
@@ -1683,7 +1683,7 @@ IndexCountBytesOrdered(
byteCount += segPtr->size;
}
- linePtr = indexPtr1->linePtr->nextPtr;
+ linePtr = TkBTreeNextLine(textPtr, indexPtr1->linePtr);
while (linePtr != indexPtr2->linePtr) {
for (segPtr = linePtr->segPtr; segPtr != NULL;
segPtr = segPtr->nextPtr) {
diff --git a/tests/textIndex.test b/tests/textIndex.test
index 465f097..83a249e 100644
--- a/tests/textIndex.test
+++ b/tests/textIndex.test
@@ -943,6 +943,19 @@ test textIndex-24.1 {text mark prev} {
set res
} {1.0}
+test textIndex-25.1 {IndexCountBytesOrdered, bug [3f1f79abcf]} {
+ pack [text .t2]
+ .t2 tag configure elided -elide 1
+ .t2 insert end "01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n"
+ .t2 insert end "11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n"
+ .t2 insert end "21\n22\n23\n25\n26\n27\n28\n29\n30\n31"
+ .t2 insert end "32\n33\n34\n36\n37\n38\n39" elided
+ # then this used to crash Tk:
+ .t2 see end
+ focus -force .t2 ; # to see the cursor blink
+ destroy .t2
+} {}
+
# cleanup
rename textimage {}
catch {destroy .t}