X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/c4d932d08940f689b39b654a714f9ef3657690a9..d327be4e227c2918b6f6e262d8d7636835abaa5d:/uip/picksbr.c diff --git a/uip/picksbr.c b/uip/picksbr.c index 4073919d..91893e3c 100644 --- a/uip/picksbr.c +++ b/uip/picksbr.c @@ -78,6 +78,7 @@ static struct swit parswit[] = { static char linebuf[LBSIZE + 1]; +static char decoded_linebuf[LBSIZE + 1]; /* the magic array for case-independence */ static unsigned char cc[] = { @@ -701,7 +702,8 @@ plist break; } lf++; - c = ' '; + /* Unfold by skipping the newline. */ + c = 0; } } if (c && p1 < &linebuf[LBSIZE - 1]) @@ -713,6 +715,13 @@ plist p1 = linebuf; p2 = n->n_expbuf; + /* Attempt to decode as a MIME header. If it's the last header, + body will be 1 and lf will be at least 1. */ + if ((body == 0 || lf > 0) && + decode_rfc2047 (linebuf, decoded_linebuf, sizeof decoded_linebuf)) { + p1 = decoded_linebuf; + } + if (n->n_circf) { if (advance (p1, p2)) return 1;