Combined Library

From Second Life Wiki
Revision as of 05:12, 9 August 2007 by Strife Onizuka (talk | contribs) (New page: The Combined Library is comprised of about 40 functions all of which are released under [http://creativecommons.org/licenses/by/3.0/ CC-by v3.0 license]. The library is still be worked on...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The Combined Library is comprised of about 40 functions all of which are released under CC-by v3.0 license.

The library is still be worked on so only some of the compiled functions will be posted at this time

str_replace

string str_replace(string src, string from, string to)
{//replaces all occurances of 'from' with 'to' in 'src'.
    integer len = (~-(llStringLength(from)));
    if(~len)
    {
        string  buffer = src;
        integer b_pos = -1;
        integer to_len = (~-(llStringLength(to)));
        @loop;//instead of a while loop, saves 5 bytes (and run faster).
        integer to_pos = ~llSubStringIndex(buffer, from);
        if(to_pos)
        {
//            b_pos -= to_pos;
//            src = llInsertString(llDeleteSubString(src, b_pos, b_pos + len), b_pos, to);
//            b_pos += to_len;
//            buffer = llGetSubString(src, (-~(b_pos)), 0x8000);
            buffer = llGetSubString(src = llInsertString(llDeleteSubString(src, b_pos -= to_pos, b_pos + len), b_pos, to), (-~(b_pos += to_len)), 0x8000);
            jump loop;
        }
    }
    return src;
}

list_replace

list list_replace(list src, list from, list to)
{//replaces all occurances of 'from' with 'to' in 'src'.
    integer len = ~([] != from);
    if(~len)
    {
        list  buffer = src;
        integer b_pos = -1;
        integer to_len = ~([] != to);
        @loop;//instead of a while loop, saves 5 bytes (and run faster).
        integer to_pos = ~llListFindList(buffer, from);
        if(to_pos)
        {
//            b_pos-=to_pos;
//            src = llListReplaceList(src, to, b_pos, b_pos+len);
//            b_pos += to_len;
//            buffer = llList2List(src, (-~(b_pos)), 0x4000);
            buffer = llList2List(src = llListReplaceList(src, to, b_pos-=to_pos, b_pos+len), (-~(b_pos += to_len)), 0x4000);
            jump loop;
        }
    }
    return src;
}