output_headers(CT ct, FILE *out)
{
HF hp;
+ charstring_t body = charstring_create(0);
hp = ct->c_first_hf;
while (hp) {
- fprintf(out, "%s:%s", hp->name, hp->value);
+ fold(body, strlen(hp->name), hp->value);
+ fprintf(out, "%s:%s", hp->name, charstring_buffer(body));
hp = hp->next;
}
+ charstring_free(body);
}
n = 0;
}
for (; *cp; cp++) {
- if (n > CPERLIN - 3) {
+ if (n + 1 >= CPERLIN) {
fputs("=\n", out);
n = 0;
}
break;
default:
- if (*cp < '!' || *cp > '~')
+ if (*cp < '!' || *cp > '~') {
goto three_print;
+ }
+ if (n == 0 && *cp == '.') {
+ /*
+ ** encode dot at start of line,
+ ** because it could be alone ...
+ */
+ goto three_print;
+ }
putc(*cp, out);
n++;
break;