File procmail-3.22-headerconcat.dif of Package procmail

---
 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;
openSUSE Build Service is sponsored by