techage/icta_controller/edit.lua
2022-01-04 19:40:27 +01:00

41 lines
962 B
Lua

--[[
TechAge
=======
Copyright (C) 2019-2020 Joachim Stolberg
AGPL v3
See LICENSE.txt for more information
ICTA Controller - Formspec edit command
]]--
function techage.edit_command(fs_data, text)
local cmnd, pos1, pos2 = text:match('^(%S)%s(%d+)%s(%d+)$')
if pos2 == nil then
cmnd, pos1 = text:match('^(%S)%s(%d+)$')
end
if cmnd and pos1 and pos2 then
pos1 = math.max(1, math.min(pos1, techage.NUM_RULES))
pos2 = math.max(1, math.min(pos2, techage.NUM_RULES))
if cmnd == "x" then
local temp = fs_data[pos1]
fs_data[pos1] = fs_data[pos2]
fs_data[pos2] = temp
return "rows "..pos1.." and "..pos2.." exchanged"
end
if cmnd == "c" then
fs_data[pos2] = table.copy(fs_data[pos1])
return "row "..pos1.." copied to "..pos2
end
elseif cmnd == "d" and pos1 then
pos1 = math.max(1, math.min(pos1, techage.NUM_RULES))
fs_data[pos1] = {}
return "row "..pos1.." deleted"
end
return "Invalid command '"..text.."'"
end