diff --git a/en/cgi/getmsg.cgi b/en/cgi/getmsg.cgi
index 11b4fcb332..9308284f31 100755
--- a/en/cgi/getmsg.cgi
+++ b/en/cgi/getmsg.cgi
@@ -6,7 +6,7 @@
# by John Fieber
# February 26, 1998
#
-# $FreeBSD: www/en/cgi/getmsg.cgi,v 1.33 2001/11/07 16:32:11 sobomax Exp $
+# $FreeBSD: www/en/cgi/getmsg.cgi,v 1.34 2002/03/19 00:53:52 peter Exp $
#
require "./cgi-lib.pl";
@@ -205,12 +205,23 @@ sub MessageToHTML
return $message;
}
+sub strip_url
+{
+ my $url = shift;
+
+ # strip trailing characters
+ $url =~ s/>?$//;
+ $url =~ s/[.,;>\s]*$//;
+
+ return $url;
+}
+
sub AddAnchors
{
my ($text) = @_;
my $cvsweb = 'http://cvsweb.FreeBSD.org/';
- $text =~ s/(http|https|ftp|gopher|mailto|news|file)(:[^\s]*?\/?)(\W?\s)/$1$2<\/a>$3/goi;
+ $text =~ s/(http|https|ftp|gopher|mailto|news|file)(:[\S]*?\/?)(\W?\s)/sprintf("%s<\/a>$3", &strip_url("$1$2"), &strip_url("$1$2"), $3)/egoi;
if ($text =~ /Revision\s+Changes\s+Path/) {