diff options
| author | Maxim Nikolenko <maximnproductengine@lindenlab.com> | 2025-05-07 18:59:00 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-07 18:59:00 +0300 |
| commit | 50108bf0b7953e1f44a13b0790fe8dd8e9f7d2ca (patch) | |
| tree | e87e54e6f02c7065a63981eba6ce1d2ebbf7f1d7 /indra/llui/llurlregistry.cpp | |
| parent | ed705097c430fa0962f879a79aa10a1a68ca12ce (diff) | |
#4011 Add conversation list highlight for chat mention
Diffstat (limited to 'indra/llui/llurlregistry.cpp')
| -rw-r--r-- | indra/llui/llurlregistry.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/indra/llui/llurlregistry.cpp b/indra/llui/llurlregistry.cpp index 02d88c83fb..cb101d325d 100644 --- a/indra/llui/llurlregistry.cpp +++ b/indra/llui/llurlregistry.cpp @@ -327,3 +327,30 @@ void LLUrlRegistry::setKeybindingHandler(LLKeyBindingToStringHandler* handler) LLUrlEntryKeybinding *entry = (LLUrlEntryKeybinding*)mUrlEntryKeybinding; entry->setHandler(handler); } + +bool LLUrlRegistry::containsAgentMention(const std::string& text) +{ + // avoid costly regexes if there is clearly no URL in the text + if (!stringHasUrl(text)) + { + return false; + } + + try + { + boost::sregex_iterator it(text.begin(), text.end(), mUrlEntryAgentMention->getPattern()); + boost::sregex_iterator end; + for (; it != end; ++it) + { + if (mUrlEntryAgentMention->isAgentID(it->str())) + { + return true; + } + } + } + catch (boost::regex_error&) + { + LL_INFOS() << "Regex error for: " << text << LL_ENDL; + } + return false; +} |
