--- man/procmail.man | 3 --- src/fields.c | 13 +++++++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) --- man/procmail.man +++ man/procmail.man 2004-05-09 22:17:37.000000000 +0000 @@ -605,9 +605,6 @@ it to the filter itself, not to any of t A continued .B Content-Length: field is not handled correctly. -.PP -The embedded newlines in a continued header should be skipped when -matching instead of being treated as a single space as they are now. .SH MISCELLANEOUS If there is an existing .B Content-Length: --- src/fields.c +++ src/fields.c 2009-11-20 15:06:37.571429621 +0000 @@ -68,8 +68,17 @@ void concatenate(fldp)struct field*const l=fldp->Tot_len; if(!eqFrom_(p=fldp->fld_text)) /* don't concatenate From_ lines */ while(l--) - if(*p++=='\n'&&l) /* by substituting all newlines except the last */ - p[-1]=' '; + if(*p=='\n'&&l) /* by removing all newlines except the last */ + { + *p++=' '; + while((*p == ' ' || *p == '\t') && l) + { + tmemmove(p, p+1, l--); + fldp->Tot_len--; + } + } + else + p++; } static void extractfield(p)register const struct field*p;