webmcp
annotate framework/env/encode/html.lua @ 360:785ff282af16
Changed version string to "2.0.1"
| author | jbe | 
|---|---|
| date | Thu Mar 26 20:51:35 2015 +0100 (2015-03-26) | 
| parents | 9fdfb27f8e67 | 
| children | 
| rev | line source | 
|---|---|
| jbe/bsw@0 | 1 --[[-- | 
| jbe/bsw@0 | 2 result = -- encoded string | 
| jbe/bsw@0 | 3 encode.html( | 
| jbe/bsw@0 | 4 str -- original string | 
| jbe/bsw@0 | 5 ) | 
| jbe/bsw@0 | 6 | 
| jbe/bsw@0 | 7 This function replaces the special characters '<', '>', '&' and '"' by their HTML entities '<', '&rt;', '&' and '"'. | 
| jbe/bsw@0 | 8 | 
| jbe/bsw@0 | 9 NOTE: ACCELERATED FUNCTION | 
| jbe/bsw@0 | 10 Do not change unless also you also update webmcp_accelerator.c | 
| jbe/bsw@0 | 11 | 
| jbe/bsw@0 | 12 --]]-- | 
| jbe/bsw@0 | 13 | 
| jbe/bsw@0 | 14 function encode.html(text) | 
| jbe/bsw@0 | 15 -- TODO: perhaps filter evil control characters? | 
| jbe/bsw@0 | 16 return ( | 
| jbe/bsw@0 | 17 string.gsub( | 
| jbe/bsw@0 | 18 text, '[<>&"]', | 
| jbe/bsw@0 | 19 function(char) | 
| jbe/bsw@0 | 20 if char == '<' then | 
| jbe/bsw@0 | 21 return "<" | 
| jbe/bsw@0 | 22 elseif char == '>' then | 
| jbe/bsw@0 | 23 return ">" | 
| jbe/bsw@0 | 24 elseif char == '&' then | 
| jbe/bsw@0 | 25 return "&" | 
| jbe/bsw@0 | 26 elseif char == '"' then | 
| jbe/bsw@0 | 27 return """ | 
| jbe/bsw@0 | 28 end | 
| jbe/bsw@0 | 29 end | 
| jbe/bsw@0 | 30 ) | 
| jbe/bsw@0 | 31 ) | 
| jbe/bsw@0 | 32 end |