Tk Source Code

Check-in [dadebc84]
Login

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

Overview
Comment:Merge nab-elide-missing-branch: fix [ad458a3a72] - dangling branch/link connections when toggling -elide across interleaved tag ranges
Downloads: See separate download page
Timelines: family | ancestors | descendants | both | revised_text | tip-466
Files: files | file ages | folders
SHA3-256: dadebc845f7580b720fa76f043629e607a5d23cfa6e1b251d4a33cb28d3dcfa5
User & Date: nab 2026-07-08 13:53:54.375
Context
2026-07-11
07:17
Merge nab-tabs-wrap-none: fix [5d950fd28a] - default tab stops collapse with -wrap none check-in: 093c9902 user: nab tags: revised_text, tip-466
2026-07-10
10:56
Fix DeleteRange() handling of elision switches when the deletion range crosses elided region boundaries. The single savedSegPtr slot becomes savedLinkPtr + savedBranchPtr: a range spanning two elided regions keeps a head link and a tail branch, whose remnant regions must be merged (adjacent switches are not allowed). With undo active the switches now leave the mark re-link path, and the counterpart pointer stashed in tagInfoPtr is no longer treated as a tag set (heap corruption). Branch/LinkRestoreProc re-connect the counterpart, undoing a merge. New tests btree-14.8 - btree-14.17. check-in: aa56b797 user: nab tags: nab-deleterange-elide
2026-07-08
15:54
Fix B-tree inconsistency ("level zero node is not root for tag") after [load]: ClearText swaps in a fresh empty tree but, when tags are preserved (clearTags == 0), it left each surviving tag's rootPtr pointing into the destroyed tree, so AddTagToNode (which only sets rootPtr when NULL) never rebuilt it. Reset the preserved tags' rootPtr to NULL. With regression test. closed check-in: 637d0e0c user: nab tags: nab-load-tag-reset
15:37
Fix B-tree inconsistency ("CheckSegments: segment is protected") when removing an expired branch/link in UpdateElideInfo: a removed structural segment kept its transient protectionFlag and, once parked for reuse, was recycled as a live branch/link still marked protected. Clear the flag before unlinking. Triggered by tag remove/delete over elided ranges. With regression tests. check-in: 477e6779 user: nab tags: nab-elide-updateinfo
15:33
Fix [pathName checksum -displaytext] / -displaychars including elided text: after skipping an elided run via the branch->link shortcut, linePtr was left on the branch's line, so once the segment chain ended the walk resumed on an already-visited line, re-hashing the elided lines. Resync linePtr onto the link's line. With regression test. closed check-in: ad45cbc5 user: nab tags: nab-checksum-displaytext
15:29
Widget -locale changes now trigger a relayout (TK_TEXT_LINE_GEOMETRY typeMask, like -lang): [pathName locale index] and word handling used to keep the old locale until an unrelated relayout happened. With regression test. closed check-in: 61544b88 user: nab tags: nab-locale-relayout
15:26
Fix numeric tab alignment with -wrap none: the unbounded else branch of AdjustForTab's NUMERIC case computed the position from maxX (== -1, the no-wrap sentinel) instead of the tab stop itself; align it with the RIGHT case. With regression test. closed check-in: bf81eba9 user: nab tags: nab-tabs-numeric
14:05
Fix [5d950fd28a]: default tab stops collapse with -wrap none. In AdjustForTab, guard the modulo against maxX == -1 (the no-wrap sentinel), matching the guards already used by the explicit-tabs cases in the same function. With regression test. closed check-in: d1d20c72 user: nab tags: nab-tabs-wrap-none
13:53
Merge nab-elide-missing-branch: fix [ad458a3a72] - dangling branch/link connections when toggling -elide across interleaved tag ranges check-in: dadebc84 user: nab tags: revised_text, tip-466
13:17
Merge revised_text closed check-in: 02718f31 user: nab tags: nab-elide-missing-branch
2026-07-06
21:45
Merge trunk check-in: f3c1d2d0 user: jan.nijtmans tags: revised_text, tip-466
Changes
Unified Diff Side-by-Side Diff Patch
Changes to generic/tkTextBTree.c.
Changes to tests/textBTree.test.