From: Bert Wesarg Date: Thu, 20 Oct 2011 19:35:25 GMT Subject: Re: [PATCH 2v2/2] git-gui: support for diff3 conflict style Message-ID: In-Reply-To: Ping. On Wed, Mar 30, 2011 at 09:18, Bert Wesarg wrote: > This adds highlight support for the diff3 conflict style. > > The common pre-image will be reversed to --, because it has been removed > and either replaced with our or their side. > > Signed-off-by: Bert Wesarg > --- > > Sorry, I had an syntax error in the last version. > >  git-gui.sh   |    3 +++ >  lib/diff.tcl |   12 ++++++++++++ >  2 files changed, 15 insertions(+), 0 deletions(-) > > diff --git a/git-gui.sh b/git-gui.sh > index d5c1535..6adcda6 100755 > --- a/git-gui.sh > +++ b/git-gui.sh > @@ -3388,6 +3388,9 @@ $ui_diff tag conf d_s- \ >  $ui_diff tag conf d< \ >        -foreground orange \ >        -font font_diffbold > +$ui_diff tag conf d| \ > +       -foreground orange \ > +       -font font_diffbold >  $ui_diff tag conf d= \ >        -foreground orange \ >        -font font_diffbold > diff --git a/lib/diff.tcl b/lib/diff.tcl > index 39e4d90..caa4be7 100644 > --- a/lib/diff.tcl > +++ b/lib/diff.tcl > @@ -339,6 +339,7 @@ proc start_show_diff {cont_info {add_opts {}}} { >        } > >        set ::current_diff_inheader 1 > +       set ::in_conflict_pre_image 0 >        fconfigure $fd \ >                -blocking 0 \ >                -encoding [get_path_encoding $path] \ > @@ -439,10 +440,21 @@ proc read_diff {fd conflict_size cont_info} { >                        {++} { >                                set regexp [string map [list %conflict_size $conflict_size]\ >                                                                {^\+\+([<>=]){%conflict_size}(?: |$)}] > +                               set regexp_pre_image [string map [list %conflict_size $conflict_size]\ > +                                                               {^\+\+\|{%conflict_size}(?: |$)}] >                                if {[regexp $regexp $line _g op]} { >                                        set is_conflict_diff 1 >                                        set line [string replace $line 0 1 {  }] >                                        set tags d$op > +                                       set ::in_conflict_pre_image 0 > +                               } elseif {[regexp $regexp_pre_image $line]} { > +                                       set is_conflict_diff 1 > +                                       set line [string replace $line 0 1 {  }] > +                                       set tags d| > +                                       set ::in_conflict_pre_image 1 > +                               } elseif ($::in_conflict_pre_image) { > +                                       set line [string replace $line 0 1 {--}] > +                                       set tags d_-- >                                } else { >                                        set tags d_++ >                                } > -- > 1.7.4.2.743.g539ab > >