From 489897a6a78c41781ac5a5b1db222896cc90b33d Mon Sep 17 00:00:00 2001 From: Dylan William Hardison Date: Thu, 27 Jul 2017 16:45:14 -0700 Subject: Bug 1378873 - user autocomplete no longer works for some strings --- Bugzilla/User.pm | 2 +- Bugzilla/Util.pm | 24 +++++++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) (limited to 'Bugzilla') diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm index 525733069..fafd3551d 100644 --- a/Bugzilla/User.pm +++ b/Bugzilla/User.pm @@ -215,7 +215,7 @@ sub es_document { }, }; my $name = $self->name; - my @nicks = defined($name) ? ( $name =~ /:(\w+)\b/mg ) : (); + my @nicks = extract_nicks($name); if (@nicks) { $doc->{suggest_nick} = { diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm index 925db6594..3c4b2fb65 100644 --- a/Bugzilla/Util.pm +++ b/Bugzilla/Util.pm @@ -26,7 +26,7 @@ use base qw(Exporter); validate_email_syntax clean_text get_text template_var disable_utf8 enable_utf8 detect_encoding email_filter - round); + round extract_nicks); use Bugzilla::Constants; use Bugzilla::RNG qw(irand); @@ -883,6 +883,28 @@ sub round { return (wantarray) ? @res : $res[0]; } +sub extract_nicks { + my ($name) = @_; + return () unless defined $name; + my @nicks = ( + $name =~ / + # This negative lookbehind lets us + # match colons that are not followed by numbers. + (?