diff options
author | fvogel <fvogelnew1@free.fr> | 2021-04-18 11:45:48 (GMT) |
---|---|---|
committer | fvogel <fvogelnew1@free.fr> | 2021-04-18 11:45:48 (GMT) |
commit | c7001ef810392979672d06f30e272c43a679cb01 (patch) | |
tree | f45bfd3a438a6b080d7e0155f3ff33efec504e40 /generic/tkTextMark.c | |
parent | e697be6fa9901a1479c2b0de7b064d3b8b27b72c (diff) | |
parent | 4f342cf8461171eafee55086646adde29dd8631c (diff) | |
download | tk-c7001ef810392979672d06f30e272c43a679cb01.zip tk-c7001ef810392979672d06f30e272c43a679cb01.tar.gz tk-c7001ef810392979672d06f30e272c43a679cb01.tar.bz2 |
Fix [34db75c0ac]: Text peer widget error on Down arrow key when passed -endline line. Also, propagate the fix for [1630271fff] from marks to embedded images and windows.
Diffstat (limited to 'generic/tkTextMark.c')
-rw-r--r-- | generic/tkTextMark.c | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/generic/tkTextMark.c b/generic/tkTextMark.c index 5d4b5d5..9efa222 100644 --- a/generic/tkTextMark.c +++ b/generic/tkTextMark.c @@ -434,8 +434,6 @@ TkTextMarkNameToIndex( TkTextIndex *indexPtr) /* Index information gets stored here. */ { TkTextSegment *segPtr; - TkTextIndex index; - int start, end; if (textPtr == NULL) { return TCL_ERROR; @@ -456,28 +454,17 @@ TkTextMarkNameToIndex( } TkTextMarkSegToIndex(textPtr, segPtr, indexPtr); - /* If indexPtr refers to somewhere outside the -startline/-endline + /* + * If indexPtr refers to somewhere outside the -startline/-endline * range limits of the widget, error out since the mark indeed is not * reachable from this text widget (it may be reachable from a peer) * (bug 1630271). */ - if (textPtr->start != NULL) { - start = TkBTreeLinesTo(NULL, textPtr->start); - TkTextMakeByteIndex(textPtr->sharedTextPtr->tree, NULL, start, 0, - &index); - if (TkTextIndexCmp(indexPtr, &index) < 0) { - return TCL_ERROR; - } - } - if (textPtr->end != NULL) { - end = TkBTreeLinesTo(NULL, textPtr->end); - TkTextMakeByteIndex(textPtr->sharedTextPtr->tree, NULL, end, 0, - &index); - if (TkTextIndexCmp(indexPtr, &index) > 0) { - return TCL_ERROR; - } + if (TkTextIndexAdjustToStartEnd(textPtr, indexPtr, 1) == TCL_ERROR) { + return TCL_ERROR; } + return TCL_OK; } |