mirror of
https://github.com/git-for-windows/git.git
synced 2026-05-05 05:58:01 -05:00
git-gui: remove EOL translation for gets
git-gui configures '-translation lf' on a number of channels. The default configuration is 'auto', which on input changes any occurrence of \n, \r, or \r\n to \n, and on output changes any such EOL sequence to a platform dependent value (\n on Unix, \r\n on Windows). Such translation can be necessary, but much of what is configured now is redundant. In particular, many of the channels configured this way are then consumed by gets, which already recognizes any of \n, \r, or \r\n as terminators. Configuring a channel to first change these line endings, then give the result to gets, is redundant. The valid uses of -translation lf are for output where we do not want \r\n on Windows, and for consuming entire files without going through gets, assuring that \n will be used internally. Let's remove all the others that only serve to confuse. lib/diff.tcl must have -translation lf because \r\n might be stored in the repository (e.g., on Windows, with no crlf translation enabled), and git will treat \n as the line ending, while the preceding \r is just whitespace, and these may be split by ANSI color coding. git-gui's read_diff handles this correctly as-is. Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
This commit is contained in:
@@ -324,6 +324,8 @@ proc start_show_diff {cont_info {add_opts {}}} {
|
||||
# '++' lines which is not bijective. Thus, we need to maintain a state
|
||||
# across lines.
|
||||
set ::conflict_in_pre_image 0
|
||||
|
||||
# git-diff has eol==\n, \r if present is part of the text
|
||||
fconfigure $fd \
|
||||
-blocking 0 \
|
||||
-encoding [get_path_encoding $path] \
|
||||
|
||||
Reference in New Issue
Block a user