webmcp
view framework/env/encode/mime/quoted_printable_text_content.lua @ 3:795b764629ca
Version 1.0.3
Important bugfix related to internal forwards (Bug was introduced by the restriction of views with underscore prefix in Version 1.0.2)
Important bugfix related to internal forwards (Bug was introduced by the restriction of views with underscore prefix in Version 1.0.2)
author | jbe |
---|---|
date | Thu Dec 10 12:00:00 2009 +0100 (2009-12-10) |
parents | 9fdfb27f8e67 |
children |
line source
1 function encode.mime.quoted_printable_text_content(str)
2 local parts = {}
3 for str_part in string.gmatch(str, "[^\r\n]+[\r\n]*") do
4 local line, extra_gap = string.match(str_part, "^([^\r\n]+)\r?\n?(.*)$")
5 local line_length = 0
6 for char in string.gmatch(line, ".") do
7 if string.find(char, "^[\t -<>-~]$") then
8 if line_length + 1 > 75 then
9 parts[#parts+1] = "=\r\n"
10 line_length = 0
11 end
12 parts[#parts+1] = char
13 line_length = line_length + 1
14 else
15 if line_length + 3 > 75 then
16 parts[#parts+1] = "=\r\n"
17 line_length = 0
18 end
19 parts[#parts+1] = string.format("=%02X", string.byte(char))
20 line_length = line_length + 3
21 end
22 end
23 for i = 1, #extra_gap do
24 if string.sub(extra_gap, i, i) == "\n" then
25 parts[#parts+1] = "\r\n"
26 end
27 end
28 parts[#parts+1] = "\r\n"
29 end
30 return table.concat(parts)
31 end