From 52c154ee7bf49417e6a6b387ccc3fbab884229b8 Mon Sep 17 00:00:00 2001 From: adam Date: Sat, 1 Mar 2008 08:16:04 +0000 Subject: [PATCH] optimize IMAP.java to return a "bodyless message" when only headers are requested darcs-hash:20080301081604-5007d-349a37f3d887c883724bbba3fb997c1c70d362e0.gz --- src/org/ibex/mail/IMAP.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/org/ibex/mail/IMAP.java b/src/org/ibex/mail/IMAP.java index 9588cb4..b4abb24 100644 --- a/src/org/ibex/mail/IMAP.java +++ b/src/org/ibex/mail/IMAP.java @@ -254,8 +254,12 @@ public class IMAP { public void fetch(Query q, int spec, String[] headers, int start, int end, boolean uid) { for(Mailbox.Iterator it = selected().iterator(q); it.next(); ) { Message message = - ((spec & (BODYSTRUCTURE | ENVELOPE | INTERNALDATE | FIELDS | FIELDSNOT | RFC822 | - RFC822TEXT | RFC822SIZE | HEADERNOT | HEADER)) != 0) ? it.cur() : null; + ((spec & (BODYSTRUCTURE | RFC822 | RFC822TEXT | RFC822SIZE)) != 0) + ? it.cur() + : ((spec & (ENVELOPE | INTERNALDATE | FIELDS | FIELDSNOT | RFC822SIZE | HEADERNOT | HEADER)) != 0) + ? Message.newMessage(Fountain.Util.concat(it.head(), Fountain.Util.create("\r\n\r\n"))) + : null; + if (message != null) Log.warn("spec", spec); long size = message == null ? 0 : message.getLength(); client.fetch(it.imapNumber(), it.getFlags(), (int)size, message, it.uid()); it.setFlags(it.getFlags() & ~Mailbox.Flag.RECENT); -- 1.7.10.4