summaryrefslogtreecommitdiffstats
path: root/acf/util.lua
diff options
context:
space:
mode:
Diffstat (limited to 'acf/util.lua')
-rw-r--r--acf/util.lua8
1 files changed, 6 insertions, 2 deletions
diff --git a/acf/util.lua b/acf/util.lua
index 9788c81..9ca287c 100644
--- a/acf/util.lua
+++ b/acf/util.lua
@@ -10,11 +10,15 @@ function setdefault(t, k, v)
return t[k]
end
-function setdefaults(dst, src)
- for k, v in pairs(src) do if dst[k] == nil then dst[k] = v end end
+function update(dst, src, preserve)
+ for k, v in pairs(src) do
+ if not preserve or dst[k] == nil then dst[k] = v end
+ end
return dst
end
+function setdefaults(dst, src) return update(dst, src, true) end
+
function copy(var)
return type(var) == 'table' and setdefaults({}, var) or var
end