}
}
+sub html($)
+{
+ my ($s) = @_;
+ $s =~ s/[^-_A-Za-z0-9 ]/&#@{[ord $&]};/g;
+ return $s;
+}
+
+sub nospace($)
+{
+ my ($s) = @_;
+ $s =~ s/ //g;
+ return $s;
+}
+
sub out_html($@)
{
my ($event, @data) = @_;
$map ||= 'any';
print "<h2>For server $addr type $type map $map</h2>\n";
print "<table><tr><th>Weapon</th><th>Rating</th>\n";
- printf '<th><img width=64 height=87 src="http://de.git.xonotic.org/?p=xonotic/xonotic.git;a=blob_plain;f=Docs/htmlfiles/weaponimg/%s_3rd_small.png" alt="%s"></th>', $stats->weaponid_to_model($_), $stats->weaponid_to_name($_) for @columns;
+ printf '<th><img width=64 height=87 src="http://de.git.xonotic.org/?p=xonotic/xonotic.git;a=blob_plain;f=Docs/htmlfiles/weaponimg/%s_3rd_small.png" title="%s" alt="%s"></th>', $stats->weaponid_to_model($_), html $stats->weaponid_to_name($_), html nospace $stats->weaponid_to_name($_) for @columns;
print "</tr>\n";
}
elsif($event eq 'startrow')
{
my ($row, $val) = @data;
- printf '<tr><th><img width=96 height=64 src="http://de.git.xonotic.org/?p=xonotic/xonotic.git;a=blob_plain;f=Docs/htmlfiles/weaponimg/%s_1st_small.png" alt="%s"></th><th align=right>%s</th>', $stats->weaponid_to_model($row), $stats->weaponid_to_name($row), defined $val ? sprintf("%8.5f", $val) : "N/A";
+ printf '<tr><th><img width=96 height=64 src="http://de.git.xonotic.org/?p=xonotic/xonotic.git;a=blob_plain;f=Docs/htmlfiles/weaponimg/%s_1st_small.png" title="%s" alt="%s"></th><th align=right>%s</th>', $stats->weaponid_to_model($row), html $stats->weaponid_to_name($row), html nospace $stats->weaponid_to_name($row), defined $val ? sprintf("%8.5f", $val) : "N/A";
}
elsif($event eq 'cell')
{