diff options
author | Rider Linden <rider@lindenlab.com> | 2017-01-25 11:13:59 -0800 |
---|---|---|
committer | Rider Linden <rider@lindenlab.com> | 2017-01-25 11:13:59 -0800 |
commit | 25cd2ed2052b0d30d61e8b81df151993983f561b (patch) | |
tree | 7f9b29356b658303bdf7608a25ccb23c8e6130da /indra/llui/llview.cpp | |
parent | 8d86f5a0c457fceff5923fb7ca32259b2718addc (diff) | |
parent | 68413474c4479eee9bdbeb34ea131475ba1d646e (diff) |
Merge
Diffstat (limited to 'indra/llui/llview.cpp')
-rw-r--r-- | indra/llui/llview.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index 62c3f401bf..9604e5ce10 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -391,7 +391,27 @@ static void buildPathname(std::ostream& out, const LLView* view) buildPathname(out, view->getParent()); // Build pathname into ostream on the way back from recursion. - out << '/' << view->getName(); + out << '/'; + + // substitute all '/' in name with appropriate code + std::string name = view->getName(); + std::size_t found = name.find('/'); + std::size_t start = 0; + while (found != std::string::npos) + { + std::size_t sub_len = found - start; + if (sub_len > 0) + { + out << name.substr(start, sub_len); + } + out << "%2F"; + start = found + 1; + found = name.find('/', start); + } + if (start < name.size()) + { + out << name.substr(start, name.size() - start); + } } std::string LLView::getPathname() const @@ -812,7 +832,7 @@ LLView* LLView::childrenHandleHover(S32 x, S32 y, MASK mask) LLView* LLView::childFromPoint(S32 x, S32 y, bool recur) { if (!getVisible()) - return false; + return NULL; BOOST_FOREACH(LLView* viewp, mChildList) { |