Re: imap4 search criteria
| From: | Dominik Gehl | Date: | Wed, 03 Feb 2010 20:19:43 +0000 |
| Subject: | Re: imap4 search criteria | ||
| References: | 1 2 3 4 5 6 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-46941@lists.php.net to get a copy of this message | ||
Hi,
I just checked the mailinglist archive (http://news.php.net/php.internals/46939) and you're
right, the attachment was missing, even though it's in my sent items ... is there some list
policy which rejects attachments ?
Dominik
On 2010-02-03, at 3:08 PM, Pierre Joye wrote:
> hi,
>
> Can you send patches as attachment please?
>
> Also I like to think again about a nicer approach. As your proposal
> works, it sounds like multiple calls could be avoided.
>
> Cheers,
>
> On Wed, Feb 3, 2010 at 8:37 PM, Dominik Gehl <dominik@dokdok.com> wrote:
>> Attached is a patch which would allow the usage of most of the IMAP4 search criteria.
>>
>> Please let me know if I should contact someone else (IMAP extension maintainer(s) ?)
>> regarding this ...
>>
>> Dominik
>>
>>
>> On 2010-02-02, at 4:14 PM, Dominik Gehl wrote:
>>
>>> I continued thinking about this and came up with the idea of adding a new resource
>>> 'imap_searchpgm' to the imap extension, which would then have quite a good number of new
>>> functions: imap_searchprogram_new, imap_searchprogram_sentsince, imap_searchprogram_since,
>>> imap_searchprogram_before, imap_searchprogram_on etc. etc.
>>>
>>> The functions could then be defined along the following lines (untested code ...):
>>>
>>> PHP_FUNCTION(imap_searchprogram_new)
>>> {
>>> int myargc = ZEND_NUM_ARGS();
>>>
>>> if (myargc != 0) {
>>> ZEND_WRONG_PARAM_COUNT();
>>> }
>>>
>>> pgm = mail_newsearchpgm();
>>> searchpgm = emalloc(sizeof(php_imap_searchpgm));
>>> searchpgm->searchpgm = pgm;
>>> ZEND_REGISTER_RESOURCE(return_value, searchpgm, le_imap_searchpgm);
>>> }
>>>
>>> PHP_FUNCTION(imap_searchprogram_sentsince)
>>> {
>>> zval *zpgm;
>>> php_imap_searchpgm *pgm;
>>> char *criterion = "";
>>>
>>> if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &zpgm,
>>> &criterion) == FAILURE) {
>>> RETURN_FALSE;
>>> }
>>>
>>> ZEND_FETCH_RESOURCE(pgm, php_imap_search_pgm*, &zpgm, -1,
>>> "imapsearch", le_imap_searchpgm);
>>>
>>> mail_criteria_date(&pgm->searchpgm->sentsince, &criterion);
>>>
>>> RETURN_TRUE;
>>> }
>>>
>>> etc. etc.
>>>
>>>
>>> And finally, the imap_search function could then accept either the criteria string OR
>>> an imap_searchpgm resource.
>>>
>>> Ideas, comments ?
>>>
>>> Thanks,
>>> Dominik
>>>
>>>
>>> On 2010-02-01, at 10:06 AM, Dominik Gehl wrote:
>>>
>>>> Thanks a lot for your reply. I also found a second bug report related to this:
>>>> http://bugs.php.net/bug.php?id=21168
>>>>
>>>> Now, how about adding an imap_newsearchpgm function to the PHP imap extension which
>>>> would do a call to mail_nsewsearchpgm inside c-client and return a structure allowing to contruct
>>>> IMAP4 search programs (SEARCHPGM inside c-client) ?
>>>>
>>>> Anyone interested in this ?
>>>>
>>>> Dominik
>>>>
>>>> On 2010-01-30, at 6:22 PM, Joey Smith wrote:
>>>>
>>>>> There's an open bug on this, #15238
>>>>> (http://bugs.php.net/bug.php?id=15238&). I'm
>>>>> sure patches would be welcomed.
>>>>>
>>>>> On Fri, Jan 29, 2010 at 03:49:18PM -0500, Dominik Gehl wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I noticed that the imap extension seems to support only IMAP2 search
>>>>>> criteria.
>>>>>>
>>>>>> This is caused by the fact that in ext/imap/php_imap.c, the imap_search
>>>>>> function uses a call to mail_criteria. And
>>>>>> the University of Washington IMAP toolkit mentions in docs/internal.txt:
>>>>>>
>>>>>> SEARCHPGM *mail_criteria (char *criteria);
>>>>>> criteria IMAP2-format search criteria string
>>>>>>
>>>>>> This function accepts an IMAP2-format search criteria string and
>>>>>> parses it. If the parse is successful, it returns a search program
>>>>>> suitable for use in mail_search_full().
>>>>>> WARNING: This function does not accept IMAP4 search criteria.
>>>>>>
>>>>>>
>>>>>> Is there any specific reason why PHP uses this mail_criteria call ? It
>>>>>> really would be nice to be able to use IMAP4 search criteria !
>>>>>>
>>>>>> Thanks,
>>>>>> Dominik
>>>>>>
>>>>>> --
>>>>>> PHP Internals - PHP Runtime Development Mailing List
>>>>>> To unsubscribe, visit:
>>>>>> http://www.php.net/unsub.php
>>>>>>
>>>>
>>>
>>
>>
>>
>> --
>> PHP Internals - PHP Runtime Development Mailing List
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>
>
>
> --
> Pierre
>
> @pierrejoye | http://blog.thepimp.net | Íü"øe†,„ÄY—Ð{£
> http://www.libgd.org