You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by si...@apache.org on 2005/12/19 10:03:09 UTC

svn commit: r357667 - /spamassassin/branches/3.1/lib/Mail/SpamAssassin/Message.pm

Author: sidney
Date: Mon Dec 19 01:03:04 2005
New Revision: 357667

URL: http://svn.apache.org/viewcvs?rev=357667&view=rev
Log:
Bug 4719: fix wrap of long paragraphs. This is the correct patch after the wrong one was checked in for revison 357661

Modified:
    spamassassin/branches/3.1/lib/Mail/SpamAssassin/Message.pm

Modified: spamassassin/branches/3.1/lib/Mail/SpamAssassin/Message.pm
URL: http://svn.apache.org/viewcvs/spamassassin/branches/3.1/lib/Mail/SpamAssassin/Message.pm?rev=357667&r1=357666&r2=357667&view=diff
==============================================================================
--- spamassassin/branches/3.1/lib/Mail/SpamAssassin/Message.pm (original)
+++ spamassassin/branches/3.1/lib/Mail/SpamAssassin/Message.pm Mon Dec 19 01:03:04 2005
@@ -1018,8 +1018,11 @@
   my @result = ();
   foreach my $line (split (/^/m, $_[0])) {
     while (length ($line) > MAX_BODY_LINE_LENGTH) {
-      push (@result, substr($line, 0, MAX_BODY_LINE_LENGTH));
-      substr($line, 0, MAX_BODY_LINE_LENGTH) = '';
+      # try splitting "nicely" so that we don't chop an url in half or
+      # something.  if there's no space, then just split at max length.
+      my $length = rindex($line, ' ', MAX_BODY_LINE_LENGTH) + 1;
+      $length ||= MAX_BODY_LINE_LENGTH;
+      push (@result, substr($line, 0, $length, ''));
     }
     push (@result, $line);
   }