From bf73e037d63e15728160b545531eaf7948dc4092 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Mon, 13 Aug 2012 16:12:14 -0400
Subject: [PATCH] Add fix for http://pear.php.net/bugs/bug.php?id=18819

---
 program/lib/Net/SMTP.php |   12 +++++-------
 1 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/program/lib/Net/SMTP.php b/program/lib/Net/SMTP.php
index 0463758..f780d60 100644
--- a/program/lib/Net/SMTP.php
+++ b/program/lib/Net/SMTP.php
@@ -936,14 +936,12 @@
      */
     function quotedata(&$data)
     {
-        /* Change Unix (\n) and Mac (\r) linefeeds into
-         * Internet-standard CRLF (\r\n) linefeeds. */
-        $data = preg_replace(array('/(?<!\r)\n/','/\r(?!\n)/'), "\r\n", $data);
-
         /* Because a single leading period (.) signifies an end to the
-         * data, legitimate leading periods need to be "doubled"
-         * (e.g. '..'). */
-        $data = str_replace("\n.", "\n..", $data);
+         * data, legitimate leading periods need to be "doubled" ('..'). */
+        $data = preg_replace('/^\./m', '..', $data);
+
+        /* Change Unix (\n) and Mac (\r) linefeeds into CRLF's (\r\n). */
+        $data = preg_replace('/(?:\r\n|\n|\r(?!\n))/', "\r\n", $data);
     }
 
     /**

--
Gitblit v1.9.1