mirror of
https://github.com/git/git.git
synced 2024-10-29 21:37:53 +01:00
git-gui: Elide CRs appearing in diff output from display.
If we are displaying a diff for a DOS-style (CRLF) formatted file then the Tk text widget would normally show the CR at the end of every line; in most fonts this will come out as a square box. Rather than showing this character we'll tag it with a tag which forces the character to be elided away, so its not displayed. However since the character is still within the text buffer we can still obtain it and supply it over to `git apply` when staging or unstaging an individual hunk, ensuring that the file contents is always fully preserved as-is. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
a25c518933
commit
30b14ed390
1 changed files with 4 additions and 0 deletions
|
@ -793,6 +793,9 @@ proc read_diff {fd} {
|
|||
}
|
||||
}
|
||||
$ui_diff insert end $line $tags
|
||||
if {[string index $line end] eq "\r"} {
|
||||
$ui_diff tag add d_cr {end - 2c}
|
||||
}
|
||||
$ui_diff insert end "\n" $tags
|
||||
}
|
||||
$ui_diff conf -state disabled
|
||||
|
@ -4304,6 +4307,7 @@ pack $ui_diff -side left -fill both -expand 1
|
|||
pack .vpane.lower.diff.header -side top -fill x
|
||||
pack .vpane.lower.diff.body -side bottom -fill both -expand 1
|
||||
|
||||
$ui_diff tag conf d_cr -elide true
|
||||
$ui_diff tag conf d_@ -foreground blue -font font_diffbold
|
||||
$ui_diff tag conf d_+ -foreground {#00a000}
|
||||
$ui_diff tag conf d_- -foreground red
|
||||
|
|
Loading…
Reference in a new issue