Note

The wasCircularListInsertAfter function takes as input a circular list, an element in the list an element to insert and inserts the element after the element in the list and returns the resulting list. An example call is the following:

list a = [ 1, 2, 3, 4, 5 ];
a = wasCircularListInsertAfter(a, [1], ["b"]);

after which the contents of the list a will be:

1 b 2 3 4 5

Code

///////////////////////////////////////////////////////////////////////////
//  Copyright (C) Wizardry and Steamworks 2014 - License: GNU GPLv3      //
///////////////////////////////////////////////////////////////////////////
list wasCircularListInsertAfter(list input, list node, list insert) {
    integer i = llListFindList(input, node);
    if(i == -1) return input;
    return llListInsertList(input, insert, i+1);
}