summaryrefslogtreecommitdiff
path: root/program/lib
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2009-05-26 08:50:10 +0000
committeralecpl <alec@alec.pl>2009-05-26 08:50:10 +0000
commit8234b4c6bc3c9cd9cb639039d3080131098dd966 (patch)
treeebe4e48e55b710baac2c5392d1810e5e06b3bb5c /program/lib
parentd9f084ccdfe7fe61b022c4eb75a974b4cccb87a1 (diff)
- Support UID EXPUNGE: remove only moved/deleted messages
Diffstat (limited to 'program/lib')
-rw-r--r--program/lib/imap.inc12
1 files changed, 8 insertions, 4 deletions
diff --git a/program/lib/imap.inc b/program/lib/imap.inc
index 1b8bec0fb..b5412e39d 100644
--- a/program/lib/imap.inc
+++ b/program/lib/imap.inc
@@ -82,6 +82,7 @@
- use PREG instead of EREG
- removed caching functions
- handling connection startup response
+ - added UID EXPUNGE support
********************************************************/
@@ -1863,11 +1864,13 @@ function iil_SortHeaders($a, $field, $flag) {
return $result;
}
-function iil_C_Expunge(&$conn, $mailbox) {
+function iil_C_Expunge(&$conn, $mailbox, $messages=NULL) {
if (iil_C_Select($conn, $mailbox)) {
$c = 0;
- iil_PutLine($conn->fp, "exp1 EXPUNGE");
+ $command = $messages ? "UID EXPUNGE $messages" : "EXPUNGE";
+
+ iil_PutLine($conn->fp, "exp1 $command");
do {
$line=chop(iil_ReadLine($conn->fp, 100));
if ($line[0] == '*') {
@@ -2030,12 +2033,13 @@ function iil_C_Search(&$conn, $folder, $criteria) {
}
function iil_C_Move(&$conn, $messages, $from, $to) {
- $fp = $conn->fp;
if (!$from || !$to) {
return -1;
}
- $r = iil_C_Copy($conn, $messages, $from,$to);
+
+ $r = iil_C_Copy($conn, $messages, $from, $to);
+
if ($r==0) {
return iil_C_Delete($conn, $from, $messages);
}