gitweb: Refactor untabifying - converting tabs to spaces
Add untabify subroutine and use it. It also fixes git_diff_print which used to get the tabstop wrong. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
10161355ba
commit
f16db173a4
@ -221,6 +221,20 @@ sub unquote {
|
|||||||
return $str;
|
return $str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# escape tabs (convert tabs to spaces)
|
||||||
|
sub untabify {
|
||||||
|
my $line = shift;
|
||||||
|
|
||||||
|
while ((my $pos = index($line, "\t")) != -1) {
|
||||||
|
if (my $count = (8 - ($pos % 8))) {
|
||||||
|
my $spaces = ' ' x $count;
|
||||||
|
$line =~ s/\t/$spaces/;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $line;
|
||||||
|
}
|
||||||
|
|
||||||
## ----------------------------------------------------------------------
|
## ----------------------------------------------------------------------
|
||||||
## HTML aware string manipulation
|
## HTML aware string manipulation
|
||||||
|
|
||||||
@ -1237,12 +1251,7 @@ sub git_diff_print {
|
|||||||
# skip errors
|
# skip errors
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
while ((my $pos = index($line, "\t")) != -1) {
|
$line = untabify($line);
|
||||||
if (my $count = (8 - (($pos-1) % 8))) {
|
|
||||||
my $spaces = ' ' x $count;
|
|
||||||
$line =~ s/\t/$spaces/;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
print "<div class=\"diff$diff_class\">" . esc_html($line) . "</div>\n";
|
print "<div class=\"diff$diff_class\">" . esc_html($line) . "</div>\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1582,13 +1591,8 @@ HTML
|
|||||||
$age_class = age_class($age);
|
$age_class = age_class($age);
|
||||||
$author = esc_html ($author);
|
$author = esc_html ($author);
|
||||||
$author =~ s/ / /g;
|
$author =~ s/ / /g;
|
||||||
# escape tabs
|
|
||||||
while ((my $pos = index($data, "\t")) != -1) {
|
$data = untabify($data);
|
||||||
if (my $count = (8 - ($pos % 8))) {
|
|
||||||
my $spaces = ' ' x $count;
|
|
||||||
$data =~ s/\t/$spaces/;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$data = esc_html ($data);
|
$data = esc_html ($data);
|
||||||
|
|
||||||
print <<HTML;
|
print <<HTML;
|
||||||
@ -1711,12 +1715,7 @@ sub git_blob {
|
|||||||
while (my $line = <$fd>) {
|
while (my $line = <$fd>) {
|
||||||
chomp $line;
|
chomp $line;
|
||||||
$nr++;
|
$nr++;
|
||||||
while ((my $pos = index($line, "\t")) != -1) {
|
$line = untabify($line);
|
||||||
if (my $count = (8 - ($pos % 8))) {
|
|
||||||
my $spaces = ' ' x $count;
|
|
||||||
$line =~ s/\t/$spaces/;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
printf "<div class=\"pre\"><a id=\"l%i\" href=\"#l%i\" class=\"linenr\">%4i</a> %s</div>\n", $nr, $nr, $nr, esc_html($line);
|
printf "<div class=\"pre\"><a id=\"l%i\" href=\"#l%i\" class=\"linenr\">%4i</a> %s</div>\n", $nr, $nr, $nr, esc_html($line);
|
||||||
}
|
}
|
||||||
close $fd or print "Reading blob failed.\n";
|
close $fd or print "Reading blob failed.\n";
|
||||||
|
Loading…
Reference in New Issue
Block a user