diff options
author | Dylan William Hardison <dylan@hardison.net> | 2017-07-28 01:45:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-28 01:45:14 +0200 |
commit | 489897a6a78c41781ac5a5b1db222896cc90b33d (patch) | |
tree | 23e2b457fd004a0f5f6976eb46af340b80a3639a /Bugzilla | |
parent | 1defbc2e962683d0e740e8850e2544cfd1d6acb5 (diff) | |
download | bugzilla-489897a6a78c41781ac5a5b1db222896cc90b33d.tar.gz bugzilla-489897a6a78c41781ac5a5b1db222896cc90b33d.tar.xz |
Bug 1378873 - user autocomplete no longer works for some strings
Diffstat (limited to 'Bugzilla')
-rw-r--r-- | Bugzilla/User.pm | 2 | ||||
-rw-r--r-- | Bugzilla/Util.pm | 24 |
2 files changed, 24 insertions, 2 deletions
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. + (?<!\d) + : + # try tp capture a "word", plus some symbols + # this covers most everything people use for ircnicks + # in bmo. + ([\p{IsAlnum}|._-]+) + # require a word terminator, which + # can be the end of the string or some punctuation. + \b + /mgx + ); + + return grep { defined $_ } @nicks; +} + 1; __END__ |