summaryrefslogtreecommitdiff
path: root/lualibs-table.lua
diff options
context:
space:
mode:
authorPhilipp Gesang <phg42.2a@gmail.com>2013-12-14 14:31:43 +0100
committerPhilipp Gesang <phg42.2a@gmail.com>2013-12-14 14:31:43 +0100
commita82cbf2bce00df54f59d1b81805e8b40029b93c6 (patch)
treeda13b16e2ff9c367cff159a3e0f951046ecb1940 /lualibs-table.lua
parent3c357e43af3900df8d6de9ec08e05222ea4256eb (diff)
downloadlualibs-a82cbf2bce00df54f59d1b81805e8b40029b93c6.tar.gz
sync with Context as of 2013-12-14
Diffstat (limited to 'lualibs-table.lua')
-rw-r--r--lualibs-table.lua21
1 files changed, 21 insertions, 0 deletions
diff --git a/lualibs-table.lua b/lualibs-table.lua
index 11cb66b..c6bbc62 100644
--- a/lualibs-table.lua
+++ b/lualibs-table.lua
@@ -1054,3 +1054,24 @@ function table.sorted(t,...)
sort(t,...)
return t -- still sorts in-place
end
+
+--
+
+function table.values(t,s) -- optional sort flag
+ if t then
+ local values, keys, v = { }, { }, 0
+ for key, value in next, t do
+ if not keys[value] then
+ v = v + 1
+ values[v] = value
+ keys[k] = key
+ end
+ end
+ if s then
+ sort(values)
+ end
+ return values
+ else
+ return { }
+ end
+end