From: Jakub Narebski Date: Fri, 06 Feb 2009 10:49:14 GMT Subject: [PATCHv2] gitweb: Better regexp for SHA-1 committag match Message-ID: <200902061149.16210.jnareb@gmail.com> In-Reply-To: Make SHA-1 regexp to be turned into hyperlink (SHA-1 committag) to match word boundary at beginning and end. This way we limit false matches, for example 0x74a5cd01 which is hex decimal (for example memory address) but not SHA-1. Also make sure that it is not Message-ID, which fragment just looks like SHA-1 (e.g. "Message-ID: <46A0F335@example.com>"), by using zero-width negative look-ahead assertion to _not_ match '@' after. Suggested-by: Johannes Schindelin Suggested-by: Rafael Garcia-Suarez Signed-off-by: Jakub Narebski --- v2: Added protection against matching Message-IDs fragments. gitweb/gitweb.perl | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index f27dbb6..5dcc108 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -1364,7 +1364,7 @@ sub format_log_line_html { my $line = shift; $line = esc_html($line, -nbsp=>1); - if ($line =~ m/([0-9a-fA-F]{8,40})/) { + if ($line =~ m/\b([0-9a-fA-F]{8,40})\b(!?\@)/) { my $hash_text = $1; my $link = $cgi->a({-href => href(action=>"object", hash=>$hash_text), -- 1.6.1