# HG changeset patch # User Matthew Wild # Date 1679072940 0 # Node ID 33d566513eb0088e84c9ed8414f0dfdcab0d51d3 # Parent 4c4f3dd62c54abc79c164ba2ff2b23c17611e7de libs/table: Add table.move diff -r 4c4f3dd62c54 -r 33d566513eb0 libs/table.lua --- a/libs/table.lua Fri Mar 17 12:31:28 2023 +0000 +++ b/libs/table.lua Fri Mar 17 17:09:00 2023 +0000 @@ -1,1 +1,20 @@ -return {pack = function(...) return {n = select("#", ...); ...} end; create = function() return {} end} +return { + pack = function(...) return {n = select("#", ...); ...} end; + create = function() return {} end; + move = function (a1, f, e, t, a2) + a2 = a2 or a1; + if e >= f then + local n = (e - f) + 1; + if t > e or t <= f or a1 ~= a2 then + for i = 0, n-1 do + a2[t+i] = a1[f+i]; + end + else + for i = n-1, 0, -1 do + a2[t+i] = a1[f+i]; + end + end + end + return a2; + end; +}