Hello everyone here,

I hope it's the right place to send this, I was recommended to do so on
the #e irc.

So, I already have used the mail module in the past and I remember it
used to display the number of new (unread) e-mails of my mailbox, using
pop3. This seems quite expected. I would be really surprised if I'm
wrong about this.

Yesterday I tried it again but this time instead of displaying the
number of unread e-mails, it displays the total number of e-mails. Which
I find weird (is it really the purpose of the mail module ?).

So I checked the source code here :
http://trac.enlightenment.org/e/browser … A/mail/src
<http://trac.enlightenment.org/e/browser/trunk/E-MODULES-EXTRA/mail/src>

and noticed that there is a field called num_new that is used... and
because of its name, and because of the way it is used, I think it is
intended to get the number of new messages.

For instance, in e_mod_main.c :


        Code:

649    void
650    _mail_set_text (void *data)
651    {
652      Instance *inst = data;
653      Eina_List *l;
654      char buf[1024];
655      int count = 0;
656
657      if (!inst)
658        return;
659
660      for (l = inst->ci->boxes; l; l = l->next)
661        {
662           Config_Box *cb;
663
664           cb = l->data;
665           if (!cb)
666             continue;
667           count += cb->num_new;
668        }
669
670      if (count > 0)
671        {
...


The loop seems to count the sum of all new messages of the different
mailboxes.

In pop.c :


        Code:

static void
215    _mail_cb_mouse_down (void *data, Evas * e, Evas_Object * obj,
216                         void *event_info)
217    {
...
254                  snprintf (buf, sizeof (buf), "%s: %d/%d", cb->name,
cb->num_new,
255                            cb->num_total);
...



this seems to be the code what displays the small pop-up with name of
the mailbox, plus number of new messages and number of all messages
(that can be expected to be usually different).

Then here in pop.c :


        Code:

156    static int
157    _mail_pop_server_data (void *data, int type, void *event)
158    {
...
203 case POP_STATE_STATUS_OK:
204          if (sscanf (in, "+OK %i %i", &num, &total) == 2)
205            {
206              pc->config->num_new = num;
207              pc->config->num_total = num;
208            }



Here the data received from the pop3 server are "scanned" and weirdly,
both fields num_new and num_total get the same value (num).

Then I read the pop3 rfc (http://www.ietf.org/rfc/rfc1939.txt) and
unfortunately it seems NOT to be possible to retrieve directly the
number of new e-mails from the pop3 server. The sscanf (in, "+OK %i %i",
&num, &total) actually gives the total number of e-mails to &num and the
size of the mailbox to &total. So num_new gets the total number of
e-mails and it's no surprise that the mail module displays this number
instead of the number of new messages.

So I am a bit confused. I am quite sure it used to work. Is there still
a way to bring the mail module to display the number of new e-mails
(using pop3) ? Or am I totally wrong and it is not intended to do so ??

I hope I didn't bother you with a scilly question, but I couldn't find
an answer to it anywhere else so far.

I wish you a nice day,



Nicolas Hainaux





------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to