Forget that previous patch to php_imap.c..
| From: | jtaskine at hit dot fi | Date: | Thu, 15 Jun 2000 00:32:12 +0000 |
| Subject: | Forget that previous patch to php_imap.c.. | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-21366@lists.php.net to get a copy of this message | ||
..because here's the improved one! =)
I was just thinking, that if all those messages are scanned
when using imap_mailboxmsginfo(), why not adding info about 'Deleted'
messages in the object also? It doesn't make it slower, does it?
Anyway, here's the patch:
Index: php_imap.c
===================================================================
RCS file: /repository/php4/ext/imap/php_imap.c,v
retrieving revision 1.28
diff -u -r1.28 php_imap.c
--- php_imap.c 2000/06/14 12:28:20 1.28
+++ php_imap.c 2000/06/14 23:39:59
@@ -2044,8 +2044,8 @@
/* }}} */
-/* {{{ proto array imap_mailboxmsginfo(int stream_id)
- Returns info about the current mailbox in an associative array */
+/* {{{ proto object imap_mailboxmsginfo(int stream_id)
+ Returns info about the current mailbox */
PHP_FUNCTION(imap_mailboxmsginfo)
{
zval **streamind;
@@ -2053,7 +2053,7 @@
int ind, ind_type;
unsigned int msgno;
pils *imap_le_struct;
- unsigned unreadmsg, msize;
+ unsigned unreadmsg, deletedmsg, msize;
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &streamind) == FAILURE) {
ZEND_WRONG_PARAM_COUNT();
@@ -2070,21 +2070,23 @@
RETURN_FALSE;
}
- /* Initialize return array */
+ /* Initialize return object */
if (object_init(return_value) == FAILURE) {
RETURN_FALSE;
}
unreadmsg = 0;
+ deletedmsg = 0;
msize = 0;
for (msgno = 1; msgno <= imap_le_struct->imap_stream->nmsgs; msgno++) {
MESSAGECACHE * cache = mail_elt (imap_le_struct->imap_stream,msgno);
mail_fetchstructure (imap_le_struct->imap_stream,msgno,NIL);
- unreadmsg = cache->recent ? (cache->seen ? unreadmsg : unreadmsg++) : unreadmsg;
- unreadmsg = (cache->recent | cache->seen) ? unreadmsg : unreadmsg++;
+ if(!cache->seen || cache->recent) unreadmsg++;
+ if(cache->deleted) deletedmsg++;
msize = msize + cache->rfc822_size;
}
add_property_long(return_value, "Unread", unreadmsg);
+ add_property_long(return_value, "Deleted", deletedmsg);
add_property_long(return_value, "Nmsgs", imap_le_struct->imap_stream->nmsgs);
add_property_long(return_value, "Size", msize);
rfc822_date(date);