Re: [PATCH 2v2/2] git-gui: support for diff3 conflict style
Ping.
On Wed, Mar 30, 2011 at 09:18, Bert Wesarg <bert.wesarg@googlemail.com> wrote:
Show 66 quoted lines
> 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 <bert.wesarg@googlemail.com>
> ---
>
> 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
>
>