Aurora.ScriptEngine.AuroraDotNetEngine.APIs.LSL_Api.llDeleteSubString C# (CSharp) Method

llDeleteSubString() public method

Delete substring removes the specified substring bounded by the inclusive indices start and end. Indices may be negative (indicating end-relative) and may be inverted, i.e. end < start./>
public llDeleteSubString ( string src, int start, int end ) : Aurora.ScriptEngine.AuroraDotNetEngine.LSL_Types.LSLString
src string
start int
end int
return Aurora.ScriptEngine.AuroraDotNetEngine.LSL_Types.LSLString
        public LSL_String llDeleteSubString(string src, int start, int end)
        {

            if (!ScriptProtection.CheckThreatLevel(ThreatLevel.None, "LSL", m_host, "LSL", m_itemID)) return new LSL_String();


            // Normalize indices (if negative).
            // After normlaization they may still be
            // negative, but that is now relative to
            // the start, rather than the end, of the
            // sequence.
            if (start < 0)
            {
                start = src.Length + start;
            }
            if (end < 0)
            {
                end = src.Length + end;
            }
            // Conventionally delimited substring
            if (start <= end)
            {
                // If both bounds are outside of the existing
                // string, then return unchanges.
                if (end < 0 || start >= src.Length)
                {
                    return src;
                }
                // At least one bound is in-range, so we
                // need to clip the out-of-bound argument.
                if (start < 0)
                {
                    start = 0;
                }

                if (end >= src.Length)
                {
                    end = src.Length - 1;
                }

                return src.Remove(start, end - start + 1);
            }
            // Inverted substring
            // In this case, out of bounds means that
            // the existing string is part of the cut.
            if (start < 0 || end >= src.Length)
            {
                return String.Empty;
            }

            if (end > 0)
            {
                if (start < src.Length)
                {
                    return src.Remove(start).Remove(0, end + 1);
                }
                return src.Remove(0, end + 1);
            }
            if (start < src.Length)
            {
                return src.Remove(start);
            }
            return src;
        }
LSL_Api