Download Latest Version tkdiff-6-0.zip (306.1 kB)
Email in envelope

Get an email when there's a new version of tkdiff

Home / tkdiff / 5.5
Name Modified Size InfoDownloads / Week
Parent folder
tkdiff-5-5.zip 2022-08-01 287.8 kB
SFreadme.md 2022-08-01 5.5 kB
Totals: 2 Items   293.4 kB 1
V 5.5             (07/21/2022):
  • CRITICAL logic repair to 'blanks' suppression support for INLINE hilite!
  • Revised coding to fix random (Mac observed) race-condition bug w/combobox mis-creation.
  • Repaired preference 'change' detection, resulting in a simplification and better rigor.
  • Popup menu now disables "Edit" (file) when POP occurs over DiffMap (not a L/R window).
  • Popup menu 'Find Nearest' when over DiffMap SCALES its search position based on POP location.
  • Added status display of how many merge choices are presently targetted as pure Left or Right
  • Internal: Preference evolution of older settings now tied to explicit versioning data
  • Created a "Engine config" Prefs tab - allows access to other Diff engines having ?better? algorithms ?
    • Also codifies what we need/expect FROM that underlying engine and HOW it is accessed.
    • Still permits ad-hoc specifications AND cmdline pass-thru.
    • Former diffcmd Pref now DERIVES from engine settings (remains for reference purposes)
    • Former ignoreblanks Pref (on/off) renamed and refers to multiple (indiv.) engine settings
    • Primary engine options (suppressions) specifically delineated AND configurable
    • Options shared among Diff and DiffSrch if command(s) 1st word matches, else distinct.
    • Visual feedback of IMPLIED Diff execution PRIOR to invocation (user notification).
  • Diff outputs NOT in "Normal" form, are now re-Evaluated for "Unified" format before giving up
  • Added warning HILITE to Preference actions that result in FORCING a new Diff invocation.
  • Internal: Dbg messaging CAN suspend arg-EVAL until KNOWN they are needed (lighter weight).
  • Handful of spelling typos, internal naming and code consolidations, as always- updated Help.

It might appear that much has changed - yet in the final analysis this is primarily a bug-fix release - at least to the End-user. Existing features such as Diff "suppressions" now operate both correctly and reliably. That they are now ALSO somewhat more rigorously defined and integrated in a formalized way simply clarifies how and when TkDiff uses them. Such "formalization" extended into an extensive redesign of the handling of preference settings throughout TkDiff, including how user settings of a given "older" vintage are mapped into equivalent values (where possible) of a newer release.

The menu system was also reviewed (where a number of keyboard accelerators were found to be ambiguous, and thus repaired). At the same time, it was found that most items on the POPUP menu only needed a notion of which side (Left/Right) it should pertain to, thus it was made functional when "popped-up" over such things as scrollbars and labels (treating them as-if they were simply part of their adjoining text window). Whereas the DiffMap is fundamentally side-agnostic, it now responds in a unique context-specific manner.

The BIG NEW feature is one most Users will not need to concern themselves with, other than a ONE TIME review (owing to that problem of mapping older preferences into a new version). This feature is a new CATEGORY in the Preferences settings where the aforementioned "formalization" manifests itself: the Diff Engine settings.

Basically this consists of both a definition of what engine commandline FLAG performs a specific function, together with a checkbox to tell TkDiff if the designated function is DESIRED to be used when running "Diff". This replaces the generic pass thru of random flags, at least for those that perform a well-known and pertinent display function, such as the wealth of suppression categories; to continue passing odd-use flags, simply encode them as part of the actual Engine "command" itself. Because of the unknown nature of previous options being passed, such previous flags are NOT generally automatically mapped forward when SWITCHING to this release, thus a quick review and possible adjustment is advised. This is particulary relevant to the arguments automatically mapped forward into the "Diff Search" Engine command, where (if it is supported by the specific engine) TkDiff will automatically incorporate filenames to be EXCLUDED from a search, if configured. Failure to do this may result in DUPLICATE arguments being passed when a search is needed.

Besides the formalization of what services TkDiff requests of its underlying engine, this feature provides the possibility of utilizing engines OTHER than just (GNU) "Diff". Reading the updated Help info explains how this can be accomplished, should it be something of interest (such as other differencing algorithms from an available work-alike tool). However, the most notable significance of this entire feature is any preference CHANGES made within any applicable category that would cause Diff to re-invoke, will now ALERT (via a visible highlight) PRIOR to accepting the changes as a reminder that any pending interactive work (selecting merge choices, modifying hunk boundaries) is at risk of being destroyed. This is designed to prevent inadvertently lost work.

The provided zipfile will unzip to its own subdirectory named "tkdiff-5-5" containing a README.txt file (having installation instructions), a Changelog file to highlight current (and past) modifications, the actual tkdiff Tcl script, and the (required) copy of the GNU License. We hope you find this new version both useful and reliable. Feel free to leave reviews, trouble tickets, new ideas; whatever you would like.

Source: SFreadme.md, updated 2022-08-01