diff options
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/luasocket/src/mbox.lua')
-rw-r--r-- | Build/source/texk/web2c/luatexdir/luasocket/src/mbox.lua | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/Build/source/texk/web2c/luatexdir/luasocket/src/mbox.lua b/Build/source/texk/web2c/luatexdir/luasocket/src/mbox.lua deleted file mode 100644 index ed9e7814e60..00000000000 --- a/Build/source/texk/web2c/luatexdir/luasocket/src/mbox.lua +++ /dev/null @@ -1,92 +0,0 @@ -local _M = {} - -if module then - mbox = _M -end - -function _M.split_message(message_s) - local message = {} - message_s = string.gsub(message_s, "\r\n", "\n") - string.gsub(message_s, "^(.-\n)\n", function (h) message.headers = h end) - string.gsub(message_s, "^.-\n\n(.*)", function (b) message.body = b end) - if not message.body then - string.gsub(message_s, "^\n(.*)", function (b) message.body = b end) - end - if not message.headers and not message.body then - message.headers = message_s - end - return message.headers or "", message.body or "" -end - -function _M.split_headers(headers_s) - local headers = {} - headers_s = string.gsub(headers_s, "\r\n", "\n") - headers_s = string.gsub(headers_s, "\n[ ]+", " ") - string.gsub("\n" .. headers_s, "\n([^\n]+)", function (h) table.insert(headers, h) end) - return headers -end - -function _M.parse_header(header_s) - header_s = string.gsub(header_s, "\n[ ]+", " ") - header_s = string.gsub(header_s, "\n+", "") - local _, __, name, value = string.find(header_s, "([^%s:]-):%s*(.*)") - return name, value -end - -function _M.parse_headers(headers_s) - local headers_t = _M.split_headers(headers_s) - local headers = {} - for i = 1, #headers_t do - local name, value = _M.parse_header(headers_t[i]) - if name then - name = string.lower(name) - if headers[name] then - headers[name] = headers[name] .. ", " .. value - else headers[name] = value end - end - end - return headers -end - -function _M.parse_from(from) - local _, __, name, address = string.find(from, "^%s*(.-)%s*%<(.-)%>") - if not address then - _, __, address = string.find(from, "%s*(.+)%s*") - end - name = name or "" - address = address or "" - if name == "" then name = address end - name = string.gsub(name, '"', "") - return name, address -end - -function _M.split_mbox(mbox_s) - local mbox = {} - mbox_s = string.gsub(mbox_s, "\r\n", "\n") .."\n\nFrom \n" - local nj, i, j = 1, 1, 1 - while 1 do - i, nj = string.find(mbox_s, "\n\nFrom .-\n", j) - if not i then break end - local message = string.sub(mbox_s, j, i-1) - table.insert(mbox, message) - j = nj+1 - end - return mbox -end - -function _M.parse(mbox_s) - local mbox = _M.split_mbox(mbox_s) - for i = 1, #mbox do - mbox[i] = _M.parse_message(mbox[i]) - end - return mbox -end - -function _M.parse_message(message_s) - local message = {} - message.headers, message.body = _M.split_message(message_s) - message.headers = _M.parse_headers(message.headers) - return message -end - -return _M |