diff options
author | Christian Neukirchen <chneukirchen@gmail.com> | 2016-07-11 23:40:00 +0200 |
---|---|---|
committer | Christian Neukirchen <chneukirchen@gmail.com> | 2016-07-11 23:40:00 +0200 |
commit | 3bb545296414c7bc4795a206ab3eb7d06e736047 (patch) | |
tree | c45af6ab0325433b89519eaa95f33e00b89b822c /scan.c | |
parent | d548547d99c5cd72fa205ac2ba6347e672185db7 (diff) | |
download | mblaze-3bb545296414c7bc4795a206ab3eb7d06e736047.tar.gz mblaze-3bb545296414c7bc4795a206ab3eb7d06e736047.tar.xz mblaze-3bb545296414c7bc4795a206ab3eb7d06e736047.zip |
add rfc2047 decoder
Diffstat (limited to 'scan.c')
-rw-r--r-- | scan.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/scan.c b/scan.c index 74e0b14..19b1b49 100644 --- a/scan.c +++ b/scan.c @@ -92,20 +92,16 @@ oneline(char *file) } char fromdec[17]; - if (!decode_rfc2047(from, fromdec, sizeof fromdec)) - memcpy(fromdec, from, sizeof fromdec); + blaze822_decode_rfc2047(fromdec, from, sizeof fromdec - 1, "UTF-8"); fromdec[sizeof fromdec - 1] = 0; char *subj = "(no subject)"; - char subjdec[1000]; // XXX rewrite decode_rfc2047, it overflows! + char subjdec[100]; if ((v = blaze822_hdr(msg, "subject"))) { - if (decode_rfc2047(v, subjdec, sizeof subjdec - 1)) - subj = subjdec; - else - subj = v; - + subj = v; } + blaze822_decode_rfc2047(subjdec, v, sizeof subjdec - 1, "UTF-8"); printf("%c%c%9s ", flag1, flag2, date); u8putstr(stdout, fromdec, 17, 1); @@ -113,7 +109,7 @@ oneline(char *file) int z; for (z = 0; z < indent; z++) printf(" "); - u8putstr(stdout, subj, 80-33-indent, 0); + u8putstr(stdout, subjdec, 80-33-indent, 0); printf("\n"); } |