procmail/procmail-3.22-headerconcat.dif

40 lines
1.1 KiB
Plaintext
Raw Normal View History

---
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;