Tk Source Code

Changes On Branch bug-1871581951
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch bug-1871581951 Excluding Merge-Ins

This is equivalent to a diff from a61e5e47 to f83994c5

2024-09-14
21:48
Please cleanup GITHUB building after the build is done. Closed-Leaf check-in: f83994c5 user: jan.nijtmans tags: bug-1871581951
2024-09-13
21:35
Fix wrong behavior of the revised text widget when moving the cursor one line down while already on the last displayed line of the text. See comment in ticket [1871581951] for details. check-in: fd4362b4 user: fvogel tags: bug-1871581951
2024-09-10
20:16
Let this bugfix branch build and test at Github Actions. check-in: 79959164 user: fvogel tags: bug-1871581951
20:14
Fix [1871581951]: Assertion failed in textIndex-19.12.2 check-in: 69bb32d8 user: fvogel tags: bug-1871581951
11:50
Merge 9.0 check-in: 8b9e8882 user: jan.nijtmans tags: revised_text, tip-466
2024-09-06
08:24
Bring back mac-build.yml as it was check-in: a61e5e47 user: jan.nijtmans tags: revised_text, tip-466
2024-09-05
14:28
For now, shut down the "mem" assert errors, try to concentrate on XQuartz for now. When this is done, I'll revert mac-build.yml to the trunk version check-in: 7d60ba89 user: jan.nijtmans tags: revised_text, tip-466
2024-09-04
14:07
Is this assert correct? And we are (for now) only interested in --disable-aqua builds check-in: e27c4627 user: jan.nijtmans tags: revised_text, tip-466

Changes to generic/tkTextDisp.c.
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748

7749
7750
7751
7752
7753
7754
7755
	    removedLines = 1;
	}

	TkrTextIndexBackBytes(textPtr, indexPtr, info.byteOffset, indexPtr);

	if (displayLineOffset > 0) {
	    ComputeMissingMetric(textPtr, &info, THRESHOLD_LINE_OFFSET, displayLineOffset);
	    info.numDispLines -= info.displayLineNo;

	    while (1) {
		const TkTextDispLineEntry *last;


		if ((int) info.numDispLines >= displayLineOffset) {
		    last = info.entry + displayLineOffset;
		    byteOffset = last->byteOffset;
		    break;
		}
		last = info.entry + info.numDispLines;
		byteOffset = last->byteOffset;







<




>







7737
7738
7739
7740
7741
7742
7743

7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
	    removedLines = 1;
	}

	TkrTextIndexBackBytes(textPtr, indexPtr, info.byteOffset, indexPtr);

	if (displayLineOffset > 0) {
	    ComputeMissingMetric(textPtr, &info, THRESHOLD_LINE_OFFSET, displayLineOffset);


	    while (1) {
		const TkTextDispLineEntry *last;

		info.numDispLines -= info.displayLineNo;
		if ((int) info.numDispLines >= displayLineOffset) {
		    last = info.entry + displayLineOffset;
		    byteOffset = last->byteOffset;
		    break;
		}
		last = info.entry + info.numDispLines;
		byteOffset = last->byteOffset;
Changes to generic/tkTextIndex.c.
2941
2942
2943
2944
2945
2946
2947








2948




2949
2950
2951
2952
2953
2954
2955
	     * the case where we have "+ -3 displaylines", for example.
	     */

	    forward = (count < 0) == (*string == '-');
	    count = abs(count);

	    if (forward) {








		TkTextFindDisplayIndex(textPtr, indexPtr, count, &xOffset);




	    } else {
		TkTextIndex indexPtr2 = *indexPtr;

		/*
		 * Check crossing of the start of text boundary. If crossed, adjust
		 * xOffset so that the returned index will refer to the start of line.
		 */







>
>
>
>
>
>
>
>

>
>
>
>







2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
	     * the case where we have "+ -3 displaylines", for example.
	     */

	    forward = (count < 0) == (*string == '-');
	    count = abs(count);

	    if (forward) {
		TkTextIndex indexPtr2 = *indexPtr;

		/*
		 * Check crossing of the end of text boundary. If crossed, adjust
		 * xOffset so that the returned index will refer to the end of line.
		 */

		TkTextFindDisplayIndex(textPtr, &indexPtr2, count - 1, NULL);
		TkTextFindDisplayIndex(textPtr, indexPtr, count, &xOffset);
		if (!TkTextIndexCompare(&indexPtr2, indexPtr)) {
		    TkTextIndexSetupToEndOfText(indexPtr, textPtr, textPtr->sharedTextPtr->tree);
		    TkTextFindDisplayIndex(textPtr, indexPtr, 0, &xOffset);
		}
	    } else {
		TkTextIndex indexPtr2 = *indexPtr;

		/*
		 * Check crossing of the start of text boundary. If crossed, adjust
		 * xOffset so that the returned index will refer to the start of line.
		 */
Changes to tests/textMark.test.
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
  update
  .p mark set insert 1.2
  focus -force .p
  event generate .p <<NextLine>>  ; # shall not error out
  set res [.p index insert]
} -cleanup {
  destroy .p
} -result {1.2}

test textMark-7.1 {MarkFindNext - invalid mark name} -body {
    .t mark next bogus
} -returnCodes error -result {bad text index "bogus"}
test textMark-7.2 {MarkFindNext - marks at same location} -body {
    .t mark set insert 2.0
    .t mark set current 2.0







|







200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
  update
  .p mark set insert 1.2
  focus -force .p
  event generate .p <<NextLine>>  ; # shall not error out
  set res [.p index insert]
} -cleanup {
  destroy .p
} -result {1.9}

test textMark-7.1 {MarkFindNext - invalid mark name} -body {
    .t mark next bogus
} -returnCodes error -result {bad text index "bogus"}
test textMark-7.2 {MarkFindNext - marks at same location} -body {
    .t mark set insert 2.0
    .t mark set current 2.0