From 7c9d922b96f9a88b350d6e07f5bde84ccc40f9b0 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Tue, 02 Mar 2010 16:27:53 -0500
Subject: [PATCH] New recent check based on UIDs

---
 program/lib/imap.inc |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/program/lib/imap.inc b/program/lib/imap.inc
index ed30937..9a5a67b 100644
--- a/program/lib/imap.inc
+++ b/program/lib/imap.inc
@@ -915,7 +915,7 @@
 	return preg_split('/\s+/', $data, -1, PREG_SPLIT_NO_EMPTY);
 }
 
-function iil_C_FetchHeaderIndex(&$conn, $mailbox, $message_set, $index_field='', $skip_deleted=true) {
+function iil_C_FetchHeaderIndex(&$conn, $mailbox, $message_set, $index_field='', $skip_deleted=true, $uidfetch=false) {
 
 	list($from_idx, $to_idx) = explode(':', $message_set);
 	if (empty($message_set) ||
@@ -949,21 +949,22 @@
 	
 	// build FETCH command string
 	$key     = 'fhi0';
+	$cmd     = $uidfetch ? 'UID FETCH' : 'FETCH';
 	$deleted = $skip_deleted ? ' FLAGS' : '';
 
 	if ($mode == 1 && $index_field == 'DATE')
-		$request = " FETCH $message_set (INTERNALDATE BODY.PEEK[HEADER.FIELDS (DATE)]$deleted)";
+		$request = " $cmd $message_set (INTERNALDATE BODY.PEEK[HEADER.FIELDS (DATE)]$deleted)";
 	else if ($mode == 1)
-		$request = " FETCH $message_set (BODY.PEEK[HEADER.FIELDS ($index_field)]$deleted)";
+		$request = " $cmd $message_set (BODY.PEEK[HEADER.FIELDS ($index_field)]$deleted)";
 	else if ($mode == 2) {
 		if ($index_field == 'SIZE')
-			$request = " FETCH $message_set (RFC822.SIZE$deleted)";
+			$request = " $cmd $message_set (RFC822.SIZE$deleted)";
 		else
-			$request = " FETCH $message_set ($index_field$deleted)";
+			$request = " $cmd $message_set ($index_field$deleted)";
 	} else if ($mode == 3)
-		$request = " FETCH $message_set (FLAGS)";
+		$request = " $cmd $message_set (FLAGS)";
 	else // 4
-		$request = " FETCH $message_set (INTERNALDATE$deleted)";
+		$request = " $cmd $message_set (INTERNALDATE$deleted)";
 
 	$request = $key . $request;
 

--
Gitblit v1.9.1