From: Tor Arvid Lund Date: Thu, 21 Oct 2010 12:36:36 GMT Subject: Re: [PATCH] git-gui: support core.whitespace rules in diff view Message-ID: In-Reply-To: <7vy69stop2.fsf@alter.siamese.dyndns.org> On Thu, Oct 21, 2010 at 1:43 AM, Junio C Hamano wrote: > Pat Thoyts writes: > >> This is a rather more complete implementation of whitespace highlighting >> according to the core.whitespace setting. The diff view whitespace >> highlights should match what you see with 'git diff' when color is >> enabled for all the whitespace rules except cr-at-eol where there is >> currently a rule to hide these. >> >> Suggested-by: Tor Arvid Lund >> Signed-off-by: Pat Thoyts >> --- > > This might be a very stupid question, but isn't it an easier-to-maintain > option to let underlying "git diff" color its output and convert the ANSI > coloring to whatever Tcl wants to use, especially in the long run, instead > of trying to replicate the logic to check whitespace breakages here? Hi Pat, and thanks again for doing the Tcl hacking :) I did a quick test (with core.whitespace unset, so the defaults should be used). I wonder if there is a little bug somewhere else in git-gui. If I have committed a line like this: ............Hello world and change it to: ........*Hello world I used '.' to indicate Space, and '*' to indicate Tab, so I changed 4 spaces to one tab character. As I understand space-before-tab, this should render 8 red spaces, 1 white Tab, and then "Hello world". But instead I get 9 white spaces... So the tab gets converted to a space (I verified that it was not my editor that converted it - it really is 8 SP and 1 TAB). If I change it to ***Hello world so that there are no leading spaces, then the Tabs do not get converted. Can you reproduce this? I have applied your patch on top of Junio's master and build on msysgit on Vista 64 (if that matters). Btw, I almost feel bad saying this after you implemented my suggestion, but Junio's suggestion to parse the ANSI escapes seems quite clever, doesn't it? Have a good day. -Tor Arvid-