Subject: Re: [[email-masked]: gitweb.cgi]

From: Jakub Narebski <[email-masked]>
Date: Mon, 25 Sep 2006 18:32:22 +0200

Florian La Roche wrote:

> Hello git crew,
> 
> I'm not a big perl prorammer, but the following removes perl
> warnings about accessing undefined vars.
[...] 
> --- gitweb/gitweb.perl
> +++ gitweb/gitweb.perl
> @@ -427,7 +427,9 @@ sub esc_html {
>       my $str = shift;
>       $str = decode("utf8", $str, Encode::FB_DEFAULT);
>       $str = escapeHTML($str);
> -     $str =~ s/\014/^L/g; # escape FORM FEED (FF) character (e.g. in COPYING file)
> +     if (defined $str) {
> +             $str =~ s/\014/^L/g; # escape FORM FEED (FF) character (e.g. in COPYING file)
> +     }
>       return $str;
>  }
> 
It would be better to just use

        my $str = shift;
        return '' unless defined $str;

and neither your change in esc_html, nor the change below should be needed. 
By the way, commit without title? But it would be better if correct it, to
set $co{'title'} to an empty string, either in git_log or in parse_commit.
 
> @@ -2860,10 +2819,14 @@ sub git_log {
>               my $ref = format_ref_marker($refs, $commit);
>               my %co = parse_commit($commit);
>               next if !%co;
> +             my $esc_title = $co{'title'};
> +             if (defined $esc_title) {
> +                     $esc_title = esc_html($esc_title);
> +             }
>               my %ad = parse_date($co{'author_epoch'});
>               git_print_header_div('commit',
>                              "<span class=\"age\">$co{'age_string'}</span>" .
> -                            esc_html($co{'title'}) . $ref,
> +                            $esc_title . $ref,
>                              $commit);
>               print "<div class=\"title_text\">\n" .
>                     "<div class=\"log_link\">\n" .

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git