From 0a97a039c4b35223ab8d23684185ae526c1bca2a Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 17 Apr 2008 03:01:03 -0400
Subject: [PATCH] - Fix IMAP response in message body when message has no body (#1484964)

---
 CHANGELOG            |    6 +++++-
 program/lib/imap.inc |   23 ++++++++++++++---------
 2 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 8f91d15..b7c8da5 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,7 +1,11 @@
 CHANGELOG RoundCube Webmail
 ---------------------------
 
-2008/04/12 (estadtherr)
+2008/04/17 (alec)
+----------
+- Fix IMAP response in message body when message has no body (#1484964)
+
+2008/04/16 (estadtherr)
 ----------
 - Fix mail sending with new TinyMCE
 
diff --git a/program/lib/imap.inc b/program/lib/imap.inc
index 5c15353..918e71a 100644
--- a/program/lib/imap.inc
+++ b/program/lib/imap.inc
@@ -2332,17 +2332,22 @@
         $len = strlen($line);
         if ($line[$len-1] == ')') {
             //one line response, get everything between first and last quotes
-            $from = strpos($line, '"') + 1;
-            $to   = strrpos($line, '"');
-            $len  = $to - $from;
-            if ($mode == 1) {
-                $result = substr($line, $from, $len);
-            } else if ($mode == 2) {
-                echo substr($line, $from, $len);
+	    if (substr($line, -4, 3) == 'NIL') {
+		// NIL response
+		$result = '';
+	    } else {
+	        $from = strpos($line, '"') + 1;
+        	$to   = strrpos($line, '"');
+        	$len  = $to - $from;
+		$result = substr($line, $from, $len);
+	    }
+	    
+            if ($mode == 2) {
+                echo $result;
             } else if ($mode == 3) {
-                echo base64_decode(substr($line, $from, $len));
+                echo base64_decode($result);
             }
-        }else if ($line[$len-1] == '}') {
+        } else if ($line[$len-1] == '}') {
             //multi-line request, find sizes of content and receive that many bytes
             $from     = strpos($line, '{') + 1;
             $to       = strrpos($line, '}');

--
Gitblit v1.9.1