threads / discuss / 5693

[laroche@redhat.com: gitweb.cgi]

Subject: [laroche@redhat.com: gitweb.cgi]

## tl;dr

2 messages between Sep 25, 2006 and Sep 25, 2006.

replies: 1people: 2as markdown or json

Florian La Roche· Sep 25, 2006, 16:19 UTC · lore
Hello git crew,

I'm not a big perl prorammer, but the following removes perl warnings about accessing undefined vars.

regards,
Florian La Roche

--- 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;
 }
 
@@ -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· Sep 25, 2006, 16:32 UTC · re: Florian La Roche · lore

Re: [laroche@redhat.com: gitweb.cgi]

Florian La Roche wrote:
> Hello git crew,
> 
> I'm not a big perl prorammer, but the following removes perl
> warnings about accessing undefined vars.
[...] 
Show 13 quoted lines
> --- 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.
 
Show 16 quoted lines
> @@ -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

← back to recent threads