You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
gitk often uses the output of Tcl's exec, and thus implicitly depends
upon whatever Tcl does in transcoding stdout/stderr. A prior commit
adds -profile tcl8 on [open, assuring the tcl8 behaviour is maintained.
The Tcl documentation does not define any particular behavior for exec,
nor is any enconding option exposed. Experiment shows that
exec in Tcl 8 apparently uses the same strategy as other operations
to map extended ascii characters according to ISO-8859-1. But, Tcl 9
seems to use -profile replace, meaning extended ascii characters are
given the unicode "replacement" symbol �.
exec is basically a shorthand for "open a pipeline, capture its stdout
(and possibly stderr), trim any trailing newline, and return that."
So, let's replace exec with a pipeline using [open, and where we have
overridden that to use -profile tcl8.
With this, the built-in exec is not called at all, so rename it out of
the way. Also, remove the Windows override of exec, the replacement uses
the overridden open to achieve the same PATH safety.
Signed-off-by: Mark Levedahl <[email protected]>
0 commit comments