From b1f97f9e776ace017cf652eaa07e37ab2ab42029 Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Sat, 2 Feb 2008 04:06:51 +0000 Subject: Temporarily disabled AllowedCompilers so all 3 compilers are allowed. Fixed bug in how code is handled, hopefully we can now run all 3 languages? :) --- .../DotNetEngine/Compiler/LSL/Compiler.cs | 28 +++++++++++++++------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs') diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs index 883ed5e..2e0d1a3 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs @@ -107,19 +107,25 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL LanguageMapping.Add(enumCompileType.lsl.ToString(), enumCompileType.lsl); // Allowed compilers - string allowedCompilers = m_scriptEngine.ScriptConfigSource.GetString("AllowedCompilers", "lsl;cs;vb"); + string allowComp = m_scriptEngine.ScriptConfigSource.GetString("AllowedCompilers", "lsl;cs;vb"); AllowedCompilers.Clear(); - foreach (string strl in allowedCompilers.Split(';')) + +#if DEBUG + m_scriptEngine.Log.Debug(m_scriptEngine.ScriptEngineName, "Allowed languages: " + allowComp); +#endif + + + foreach (string strl in allowComp.Split(';')) { string strlan = strl.Trim(" \t".ToCharArray()).ToLower(); if (!LanguageMapping.ContainsKey(strlan)) { - m_scriptEngine.Log.Error(m_scriptEngine.ScriptEngineName, "Config error. Compiler is unable to recongnize language type \"" + strl + "\" specified in \"AllowedCompilers\"."); + m_scriptEngine.Log.Error(m_scriptEngine.ScriptEngineName, "Config error. Compiler is unable to recongnize language type \"" + strlan + "\" specified in \"AllowedCompilers\"."); } else { #if DEBUG - m_scriptEngine.Log.Debug(m_scriptEngine.ScriptEngineName, "Config OK. Compiler recongnized language type \"" + strl + "\" specified in \"AllowedCompilers\"."); + m_scriptEngine.Log.Debug(m_scriptEngine.ScriptEngineName, "Config OK. Compiler recongnized language type \"" + strlan + "\" specified in \"AllowedCompilers\"."); #endif } AllowedCompilers.Add(strlan, true); @@ -228,19 +234,25 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL if (Script.StartsWith("//c#", true, CultureInfo.InvariantCulture)) l = enumCompileType.cs; if (Script.StartsWith("//vb", true, CultureInfo.InvariantCulture)) + { l = enumCompileType.vb; + // We need to remove //vb, it won't compile with that + + Script = Script.Substring(4, Script.Length - 4); + } if (Script.StartsWith("//lsl", true, CultureInfo.InvariantCulture)) l = enumCompileType.lsl; + if (!AllowedCompilers.ContainsKey(l.ToString())) { // Not allowed to compile to this language! string errtext = String.Empty; errtext += "The compiler for language \"" + l.ToString() + "\" is not in list of allowed compilers. Script will not be executed!"; - throw new Exception(errtext); + //throw new Exception(errtext); } - string compileScript; + string compileScript = Script; if (l == enumCompileType.lsl) { @@ -257,7 +269,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL String.Empty + "namespace SecondLife { " + String.Empty + "public class Script : OpenSim.Region.ScriptEngine.Common.LSL_BaseClass { " + @"public Script() { } " + - Script + + compileScript + "} }\r\n"; break; case enumCompileType.vb: @@ -266,7 +278,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL String.Empty + "NameSpace SecondLife { " + String.Empty + "Public Class Script: Inherits OpenSim.Region.ScriptEngine.Common.LSL_BaseClass: " + @"Public Sub New(): End Sub: " + - Script + + compileScript + ":End Class :End Namespace\r\n"; break; } -- cgit v1.1