I've located the source of the problem, at least for Linux (and presumably other
Unix machines). If the ^M precedes a number, the internal workings of tkdiff
assume that it is derived from the `diff` output. I have a fix to the code,
in "proc run-command":

Instead of:
set failed [catch "$cmd \"2>$errfile\"" stdout]
do the following:
regsub "^exec " $cmd "" cmd_noexec
set fl [open "| $cmd_noexec \"2>$errfile\""]
fconfigure $fl -translation lf
set stdout [read $fl]
set failed [catch {close $fl}]

This is the first time I've programmed in tcl, so I apologize if I missed
something, but I've tested this fix and it does indeed handle imbedded ^M
characters correctly (for Unix derivations, it was unclear to me that the
-translation option to fconfigure would work on other machines).

Hope this helps,

Marc Pack