Software /
code /
prosody
File
util/bitcompat.lua @ 11056:0b0a42542456
util.jid: Fix special escaping of '\' per XEP-0106
From XEP-0106 §2. Requirements:
> in certain circumstances, the escaping character itself ("\") might
> also be escaped
Later in §4.2 Address Transformation Algorithm it is stated that the
backslash would only be escaped if it forms an escape sequence. Thus
'\foo' is unaltered but '\20' must be escaped into '\5c20'.
Thanks to lovetox and jonas’ for brining up.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 28 Aug 2020 18:44:02 +0200 |
parent | 10241:48f7cda4174d |
child | 12573:0f4feaf9ca64 |
line wrap: on
line source
-- Compatibility layer for bitwise operations -- First try the bit32 lib -- Lua 5.3 has it with compat enabled -- Lua 5.2 has it by default if _G.bit32 then return _G.bit32; else -- Lua 5.1 may have it as a standalone module that can be installed local ok, bitop = pcall(require, "bit32") if ok then return bitop; end end do -- Lua 5.3 and 5.4 would be able to use native infix operators local ok, bitop = pcall(require, "util.bit53") if ok then return bitop; end end do -- Lastly, try the LuaJIT bitop library local ok, bitop = pcall(require, "bit") if ok then return bitop; end end error "No bit module found. See https://prosody.im/doc/depends#bitop";