Description:
Several common useful Lua functions
-FileId:
-$Id$
-
License:
Copyright 2008 Steven Barth <steven@midlink.org>
-- String and data manipulation routines
--
---- Escapes all occurrences of the given character in given string.
--- @param s String value containing unescaped characters
--- @param c String value with character to escape (optional, defaults to "\")
--- @return String value with each occurrence of character escaped with "\"
-function escape(s, c)
- c = c or "\\"
- return s:gsub(c, "\\" .. c)
-end
-
--- Create valid XML PCDATA from given string.
-- @param value String value containing the data to escape
-- @return String value containing the escaped data
function pcdata(value)
- return value and tparser.sanitize_pcdata(tostring(value))
+ return value and tparser.pcdata(tostring(value))
end
--- Strip HTML tags from given string.
-- @param value String containing the HTML text
-- @return String with HTML tags stripped of
-function striptags(s)
- return pcdata(tostring(s):gsub("</?[A-Za-z][A-Za-z0-9:_%-]*[^>]*>", " "):gsub("%s+", " "))
+function striptags(value)
+ return value and tparser.striptags(tostring(value))
end
--- Splits given string on a defined separator sequence and return a table
end
-- also register functions above in the central string class for convenience
-string.escape = escape
string.pcdata = pcdata
string.striptags = striptags
string.split = split
function _sortiter( t, f )
local keys = { }
+ local k, v
for k, v in pairs(t) do
keys[#keys+1] = k
end
return function()
_pos = _pos + 1
if _pos <= #keys then
- return keys[_pos], t[keys[_pos]]
+ return keys[_pos], t[keys[_pos]], _pos
end
end
end