diff options
author | Jeff Ames | 2008-03-23 00:39:35 +0000 |
---|---|---|
committer | Jeff Ames | 2008-03-23 00:39:35 +0000 |
commit | 0d43aaa337c1ee3752392aa87d49a6d55e555848 (patch) | |
tree | 79d7e89cbc986c7c856ab9d1f9e45cb6a1b65841 | |
parent | Fix compiler warnings in pCampBot, TestSuite, and ScriptEngine/RemoteServer. ... (diff) | |
download | opensim-SC-0d43aaa337c1ee3752392aa87d49a6d55e555848.zip opensim-SC-0d43aaa337c1ee3752392aa87d49a6d55e555848.tar.gz opensim-SC-0d43aaa337c1ee3752392aa87d49a6d55e555848.tar.bz2 opensim-SC-0d43aaa337c1ee3752392aa87d49a6d55e555848.tar.xz |
Fix llParseString2List bug when separator is longer than 1 character.
-rw-r--r-- | OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index 62dcf8c..6438312 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | |||
@@ -2685,25 +2685,25 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
2685 | { | 2685 | { |
2686 | m_host.AddScriptLPS(1); | 2686 | m_host.AddScriptLPS(1); |
2687 | LSL_Types.list ret = new LSL_Types.list(); | 2687 | LSL_Types.list ret = new LSL_Types.list(); |
2688 | object[] delimeters = new object[separators.Length + spacers.Length]; | 2688 | object[] delimiters = new object[separators.Length + spacers.Length]; |
2689 | separators.Data.CopyTo(delimeters, 0); | 2689 | separators.Data.CopyTo(delimiters, 0); |
2690 | spacers.Data.CopyTo(delimeters, separators.Length); | 2690 | spacers.Data.CopyTo(delimiters, separators.Length); |
2691 | bool dfound = false; | 2691 | bool dfound = false; |
2692 | do | 2692 | do |
2693 | { | 2693 | { |
2694 | dfound = false; | 2694 | dfound = false; |
2695 | int cindex = -1; | 2695 | int cindex = -1; |
2696 | string cdeli = ""; | 2696 | string cdeli = ""; |
2697 | for (int i = 0; i < delimeters.Length; i++) | 2697 | for (int i = 0; i < delimiters.Length; i++) |
2698 | { | 2698 | { |
2699 | int index = str.IndexOf(delimeters[i].ToString()); | 2699 | int index = str.IndexOf(delimiters[i].ToString()); |
2700 | bool found = index != -1; | 2700 | bool found = index != -1; |
2701 | if (found) | 2701 | if (found) |
2702 | { | 2702 | { |
2703 | if ((cindex > index) || (cindex == -1)) | 2703 | if ((cindex > index) || (cindex == -1)) |
2704 | { | 2704 | { |
2705 | cindex = index; | 2705 | cindex = index; |
2706 | cdeli = (string)delimeters[i]; | 2706 | cdeli = (string)delimiters[i]; |
2707 | } | 2707 | } |
2708 | dfound = dfound || found; | 2708 | dfound = dfound || found; |
2709 | } | 2709 | } |
@@ -2722,16 +2722,14 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
2722 | { | 2722 | { |
2723 | ret.Add(cdeli); | 2723 | ret.Add(cdeli); |
2724 | } | 2724 | } |
2725 | str = str.Substring(cindex + 1); | 2725 | str = str.Substring(cindex + cdeli.Length); |
2726 | } | 2726 | } |
2727 | } | 2727 | } while (dfound); |
2728 | while (dfound); | ||
2729 | if (str != "") | 2728 | if (str != "") |
2730 | { | 2729 | { |
2731 | ret.Add(str); | 2730 | ret.Add(str); |
2732 | } | 2731 | } |
2733 | return ret; | 2732 | return ret; |
2734 | |||
2735 | } | 2733 | } |
2736 | 2734 | ||
2737 | public int llOverMyLand(string id) | 2735 | public int llOverMyLand(string id) |