User:SignpostMarv Martin/LSL2/csv ampersandise

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
/**
/*     @package LSL
/*     @subpackage strings
/*     @author SignpostMarv Martin
/*     @license Creative Commons BY-SA UK 2.0 http://creativecommons.org/licenses/by-sa/2.0/uk/
/*     trivial function for converting a list to an ampersandised csv ("foo & baz" or "foo, bar & baz" type strings).
**/

/**
/*     @param list items The list to convert to an ampersandised csv
/*     @return string an ampersandised csv
**/
string csv_ampersandise(list items)
{
/**
*   Stores the last entry in the list in a variable since it is used in two different places.
*/
    string last = llList2String(items,-1);
/**
*   Return an empty string if the list is empty
*/
    if(llGetListLength(items) == 0)
    {
        return "";
    }
/**
*   return last if it is the only entry in the list.
*/
    else if(llGetListLength(items) == 1)
    {
        return last;
    }
/**
*   if the list length is 2, output will be along the lines of "foo & bar"
*   if the list length is 3 or more, output will be along the lines of "foo, bar & baz"
*/
    else
    {
        return llDumpList2String(llDeleteSubList(items,-1,-1),", ") + " & " + last;
    }
}