092wb initial commit
This commit is contained in:
49
lua/092wb_basic.lua
Normal file
49
lua/092wb_basic.lua
Normal file
@@ -0,0 +1,49 @@
|
||||
-- basic.lua
|
||||
|
||||
local basic = {}
|
||||
package.loaded[...] = basic
|
||||
|
||||
function basic.index(table, item)
|
||||
for k, v in pairs(table) do
|
||||
if v == item then return k end
|
||||
end
|
||||
end
|
||||
|
||||
function basic.map(table, func)
|
||||
local t = {}
|
||||
for k, v in pairs(table) do
|
||||
t[k] = func(v)
|
||||
end
|
||||
return t
|
||||
end
|
||||
|
||||
function basic.matchstr(str, pat)
|
||||
local t = {}
|
||||
for i in str:gmatch(pat) do
|
||||
t[#t + 1] = i
|
||||
end
|
||||
return t
|
||||
end
|
||||
|
||||
function basic.utf8chars(str, ...)
|
||||
local chars = {}
|
||||
for pos, code in utf8.codes(str) do
|
||||
chars[#chars + 1] = utf8.char(code)
|
||||
end
|
||||
return chars
|
||||
end
|
||||
|
||||
function basic.utf8sub(str, first, ...)
|
||||
local last = ...
|
||||
if last == nil or last > utf8.len(str) then
|
||||
last = utf8.len(str)
|
||||
elseif last < 0 then
|
||||
last = utf8.len(str) + 1 + last
|
||||
end
|
||||
local fstoff = utf8.offset(str, first)
|
||||
local lstoff = utf8.offset(str, last + 1)
|
||||
if fstoff == nil then fstoff = 1 end
|
||||
if lstoff ~= nil then lstoff = lstoff - 1 end
|
||||
return string.sub(str, fstoff, lstoff)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user