Software /
code /
prosody
Changeset
12365:af02b033bd7f
util.bit53: Support for more than 2 arguments, for compat with bit32
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 04 Mar 2022 19:37:59 +0000 |
parents | 12364:261ce358e436 |
children | 12366:c640717e01ca |
files | util/bit53.lua |
diffstat | 1 files changed, 27 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/util/bit53.lua Fri Mar 04 17:46:33 2022 +0100 +++ b/util/bit53.lua Fri Mar 04 19:37:59 2022 +0000 @@ -1,8 +1,32 @@ -- Only the operators needed by net.websocket.frames are provided at this point return { - band = function (a, b) return a & b end; - bor = function (a, b) return a | b end; - bxor = function (a, b) return a ~ b end; + band = function (a, b, ...) + local ret = a & b; + if ... then + for i = 1, select("#", ...) do + ret = ret & (select(i, ...)); + end + end + return ret; + end; + bor = function (a, b, ...) + local ret = a | b; + if ... then + for i = 1, select("#", ...) do + ret = ret | (select(i, ...)); + end + end + return ret; + end; + bxor = function (a, b, ...) + local ret = a ~ b; + if ... then + for i = 1, select("#", ...) do + ret = ret ~ (select(i, ...)); + end + end + return ret; + end; rshift = function (a, n) return a >> n end; lshift = function (a, n) return a << n end; };