WIP: sprintf #21

Draft
kistaro wants to merge 11 commits from kistaro/chameleonic:sprintf into main
Showing only changes of commit 3516d2855e - Show all commits

View File

@ -44,23 +44,29 @@ end
-- %! for tostring(param)
-- which dumps tables
function fmt(f, ...)
local out, i = "", 1
local out, i = "", 0
for s in all(split(f,"%")) do
local m = s[1]
if m == "~" then
out ..= "%"
if i == 0 then
-- before first format directive
out ..= s
i = 1
else
local p = select(i,...)
i+=1
if m == "v" then
out ..= p
elseif m == "!" then
out ..= tostring(p)
local m = s[1]
if m == "~" then
out ..= "%"
else
out ..= "(?!:"..m..":"..tostring(p)..")"
local p = select(i,...)
i+=1
if m == "v" then
out ..= p
elseif m == "!" then
out ..= tostring(p)
else
out ..= "(?!:"..m..":"..tostring(p)..")"
end
end
out ..=sub(s,2)
end
out ..=sub(s,2)
end
return out
end