Subject: Re: [PATCH v4' 1/2] gitk: do not parse " >" context as submodule change

From: Jens Lehmann <[email-masked]>
Date: Mon, 19 Apr 2010 19:22:44 +0200

Am 19.04.2010 18:27, schrieb Thomas Rast:
>> Thanks, but now that I have applied Jens Lehmann's patch that also
>> touches this area, your patch doesn't apply.  Could you rebase it and
>> send it again?
> 
> Sure.

There might be a problem with this rebase. Unfortunately I am very
short on time, so I can't test this today.

I think setting the $currdiffsubmod variable to the empty string
has to show up in the two sections formatting the lines with
"  >" & "  <".

>  gitk |   18 ++++++++++--------
>  1 files changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/gitk b/gitk
> index 1b0e09a..6513ef8 100755
> --- a/gitk
> +++ b/gitk
> @@ -7706,14 +7706,8 @@ proc getblobdiffline {bdf ids} {
>  	    } else {
>  		$ctext insert end "$line\n" filesep
>  	    }
> -	} elseif {![string compare -length 3 "  >" $line]} {
> -	    set $currdiffsubmod ""
> -	    set line [encoding convertfrom $diffencoding $line]
> -	    $ctext insert end "$line\n" dresult
> -	} elseif {![string compare -length 3 "  <" $line]} {
> -	    set $currdiffsubmod ""
> -	    set line [encoding convertfrom $diffencoding $line]
> -	    $ctext insert end "$line\n" d0
> +	    # pretend we're in a file header to correctly parse "  [><]"
> +	    set diffinhdr 1
>  	} elseif {$diffinhdr} {
>  	    if {![string compare -length 12 "rename from " $line]} {
>  		set fname [string range $line [expr 6 + [string first " from " $line] ] end]
> @@ -7732,6 +7726,14 @@ proc getblobdiffline {bdf ids} {
>  		    set fname [lindex $fname 0]
>  		}
>  		makediffhdr $fname $ids
> +	    } elseif {![string compare -length 3 "  >" $line]} {

I suspect we need a 'set $currdiffsubmod ""' here

> +		set line [encoding convertfrom $diffencoding $line]
> +		$ctext insert end "$line\n" dresult
> +		continue
> +	    } elseif {![string compare -length 3 "  <" $line]} {

and here.

> +		set line [encoding convertfrom $diffencoding $line]
> +		$ctext insert end "$line\n" d0
> +		continue
>  	    } elseif {[string compare -length 3 $line "---"] == 0} {
>  		# do nothing
>  		continue

If you can wait until tomorrow I can check that.