summaryrefslogtreecommitdiffstats
path: root/acf/util.lua
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-03-15 10:58:36 +0200
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-03-15 10:58:36 +0200
commitc72a57b99c93a14cdf924771455a74aa358227c6 (patch)
tree25407e84c18cdddc05ec7b3d9ce0b0c3541ce6a9 /acf/util.lua
parentfe648009635c8b744c51303020fd0b3b9cfe83c9 (diff)
downloadaconf-c72a57b99c93a14cdf924771455a74aa358227c6.tar.bz2
aconf-c72a57b99c93a14cdf924771455a74aa358227c6.tar.xz
improved handling of nested transactions
add nested transaction support to protocol allow deferring validation to parent transaction process each update request within a nested transaction
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