diff options
author | Logan Dethrow <log@lindenlab.com> | 2011-09-07 16:40:40 -0400 |
---|---|---|
committer | Logan Dethrow <log@lindenlab.com> | 2011-09-07 16:40:40 -0400 |
commit | b8fddce34d1737acf32d83dac423dbb7a948cc4a (patch) | |
tree | adf4c05ab3a42b2d3fed8fbda23c2de97840bab7 /indra/llcommon/llstring.cpp | |
parent | f73b795bb709b3060e06b4238ae4dac702f21301 (diff) | |
parent | 82b1b1bc6ee91e1778a16634fb9e2988da23fd71 (diff) |
Merge. Fixed issue with LLProxy code related to changes to the LLSocket interface.
Diffstat (limited to 'indra/llcommon/llstring.cpp')
-rw-r--r-- | indra/llcommon/llstring.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/indra/llcommon/llstring.cpp b/indra/llcommon/llstring.cpp index f3b48b0156..e7fe656808 100644 --- a/indra/llcommon/llstring.cpp +++ b/indra/llcommon/llstring.cpp @@ -936,13 +936,18 @@ LLStringUtil::size_type LLStringUtil::getSubstitution(const std::string& instr, { const std::string delims (","); - // Find the first ] - size_type pos2 = instr.find(']', start); + // Find the first [ + size_type pos1 = instr.find('[', start); + if (pos1 == std::string::npos) + return std::string::npos; + + //Find the first ] after the initial [ + size_type pos2 = instr.find(']', pos1); if (pos2 == std::string::npos) return std::string::npos; - // Find the last [ before ] - size_type pos1 = instr.find_last_of('[', pos2-1); + // Find the last [ before ] in case of nested [[]] + pos1 = instr.find_last_of('[', pos2-1); if (pos1 == std::string::npos || pos1 < start) return std::string::npos; |