Mercurial > prosody-hg
comparison util/datamanager.lua @ 7735:1502ec4f3cbe
Merge 0.10->trunk
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Mon, 21 Nov 2016 02:40:47 +0100 |
| parents | 6a52415ed68a |
| children | 209503ee3aaa |
comparison
equal
deleted
inserted
replaced
| 7727:0011889c928f | 7735:1502ec4f3cbe |
|---|---|
| 48 local _ENV = nil; | 48 local _ENV = nil; |
| 49 | 49 |
| 50 ---- utils ----- | 50 ---- utils ----- |
| 51 local encode, decode; | 51 local encode, decode; |
| 52 do | 52 do |
| 53 local urlcodes = setmetatable({}, { __index = function (t, k) t[k] = char(tonumber("0x"..k)); return t[k]; end }); | 53 local urlcodes = setmetatable({}, { __index = function (t, k) t[k] = char(tonumber(k, 16)); return t[k]; end }); |
| 54 | 54 |
| 55 decode = function (s) | 55 decode = function (s) |
| 56 return s and (s:gsub("+", " "):gsub("%%([a-fA-F0-9][a-fA-F0-9])", urlcodes)); | 56 return s and (s:gsub("%%(%x%x)", urlcodes)); |
| 57 end | 57 end |
| 58 | 58 |
| 59 encode = function (s) | 59 encode = function (s) |
| 60 return s and (s:gsub("%W", function (c) return format("%%%02x", c:byte()); end)); | 60 return s and (s:gsub("%W", function (c) return format("%%%02x", c:byte()); end)); |
| 61 end | 61 end |
