<?php
+
/**
** imap.php
+ ** Copyright (c) 1999-2001 The Squirrelmail Development Team
+ ** Licensed under the GNU GPL. For full terms see the file COPYING.
**
** This implements all functions that do general imap functions.
**
function sqimap_read_data_list ($imap_stream, $pre, $handle_errors,
&$response, &$message) {
global $color, $squirrelmail_language;
-global $imap_general_debug;
+ global $imap_general_debug;
$read = '';
$resultlist = array();
$size = $regs[1];
} else if (ereg("^\\* [0-9]+ FETCH", $read, $regs)) {
// Sizeless response, probably single-line
-// For debugging purposes
-if ($imap_general_debug) {
- echo "<small><tt><font color=\"#CC0000\">$read</font></tt></small><br>\n";
- flush();
-}
- $size = 0;
+
+ // For debugging purposes
+ if ($imap_general_debug) {
+ echo "<small><tt><font color=\"#CC0000\">$read</font></tt></small><br>\n";
+ flush();
+ }
+
+ $size = -1;
$data[] = $read;
$read = fgets($imap_stream, 9096);
} else {
- $size = 0;
+ $size = -1;
}
while (1) {
while (strpos($read, "\n") === false) {
$read .= fgets($imap_stream, 9096);
}
-// For debugging purposes
-if ($imap_general_debug) {
- echo "<small><tt><font color=\"#CC0000\">$read</font></tt></small><br>\n";
- flush();
-}
+
+ // For debugging purposes
+ if ($imap_general_debug) {
+ echo "<small><tt><font color=\"#CC0000\">$read</font></tt></small><br>\n";
+ flush();
+ }
+
// If we know the size, no need to look at the end parameters
if ($size > 0) {
if ($total_size == $size) {
$total_size += strlen($read);
} else {
if (ereg("^$pre (OK|BAD|NO)(.*)", $read, $regs) ||
- ereg("^\\* [0-9]+ FETCH.*", $read, $regs)) {
+ (($size == -1) && ereg("^\\* [0-9]+ FETCH.*", $read, $regs))) {
break;
} else {
$data[] = $read;
$response = $regs[1];
$message = trim($regs[2]);
-if ($imap_general_debug) echo '--<br>';
-
- if ($handle_errors == false)
- return $resultlist;
+ if ($imap_general_debug) { echo '--<br>'; }
+ if ($handle_errors == false) { return $resultlist; }
if ($response == 'NO') {
// ignore this error from m$ exchange, it is not fatal (aka bug)