Difference between revisions of "EscapeXML"
Jump to navigation
Jump to search
(→EscapeXML: the LSL compiler sucks, the function was slow, we parse it backwords so we don't have to fudge the indexes, this isn't the fastest solution.) |
m |
||
Line 1: | Line 1: | ||
=====EscapeXML===== | =====EscapeXML===== | ||
<lsl> | <lsl>// Escape standard reserved XML chars with entities | ||
// Escape standard reserved XML chars with entities | |||
// Copyright 2008, JB Kraft & Strife Onizuka | // Copyright 2008, JB Kraft & Strife Onizuka | ||
// Released under BSD license | // Released under BSD license | ||
Line 37: | Line 36: | ||
llSay(0, escapeXML("<Black> & \"White\" & 'Red' & <Green>")); | llSay(0, escapeXML("<Black> & \"White\" & 'Red' & <Green>")); | ||
} | } | ||
} | }</lsl> | ||
[[Category:LSL Examples]] | [[Category:LSL Examples]] |
Revision as of 01:15, 9 March 2008
EscapeXML
<lsl>// Escape standard reserved XML chars with entities // Copyright 2008, JB Kraft & Strife Onizuka // Released under BSD license // http://www.opensource.org/licenses/bsd-license.php
// ------------------------------------------------------------------------
// escape standard reserved XML chars with entities
// ------------------------------------------------------------------------
string escapeXML( string str )
{
integer i = llStringLength( str ); if(i) { string unescapedChars = "&\"'<>"; list escapedChars = ["&", """, "'", "<", ">"]; integer ndx;
do if( ~(ndx = llSubStringIndex( unescapedChars, llGetSubString(str, --i, i))) ) str = llInsertString( llDeleteSubString( str, i, i), i, llList2String( escapedChars, ndx)); while(i); } return str;
}
// ------------------------------------------------------------------------ // D E F A U L T // ------------------------------------------------------------------------ default {
state_entry() { llSay(0, escapeXML("<Black> & \"White\" & 'Red' & <Green>")); }
}</lsl>