Enlightenment CVS committal

Author  : tsauerbeck
Project : misc
Module  : embrace

Dir     : misc/embrace/src/plugins/mbox


Modified Files:
        mbox.c 


Log Message:
The mbox plugin will re-check a mbox now if its size _or_ mtime differs
===================================================================
RCS file: /cvsroot/enlightenment/misc/embrace/src/plugins/mbox/mbox.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- mbox.c      3 May 2004 17:50:14 -0000       1.5
+++ mbox.c      3 May 2004 18:26:56 -0000       1.6
@@ -1,5 +1,5 @@
 /*
- * $Id: mbox.c,v 1.5 2004/05/03 17:50:14 tsauerbeck Exp $
+ * $Id: mbox.c,v 1.6 2004/05/03 18:26:56 tsauerbeck Exp $
  *
  * Copyright (C) 2004 Embrace project.
  *
@@ -69,18 +69,24 @@
        char *path;
        struct stat st;
        time_t *mtime;
+       off_t *size;
        bool ret;
 
        assert (mb);
 
        path = mailbox_property_get (mb, "path");
-       mtime = mailbox_property_get (mb, "mtime");
 
        if (stat (path, &st))
                return true;
 
-       ret = (st.st_mtime != *mtime);
+       mtime = mailbox_property_get (mb, "mtime");
+       size = mailbox_property_get (mb, "size");
+
+       /* check whether mtime or size have changed */
+       ret = (st.st_mtime != *mtime || st.st_size != *size);
+
        *mtime = st.st_mtime;
+       *size = st.st_size;
 
        return ret;
 }
@@ -114,7 +120,8 @@
 {
        Ecore_Timer *timer;
        int interval;
-       time_t *zero;
+       time_t *tzero;
+       off_t *ozero;
 
        assert (mb);
 
@@ -125,10 +132,27 @@
 
        mailbox_property_set (mb, "timer", timer);
 
-       zero = malloc (sizeof (time_t));
-       *zero = 0;
+       /* init the mtime and size properties */
+       if (!(tzero = calloc (1, sizeof (time_t)))) {
+               mailbox_property_set (mb, "timer", NULL);
+               ecore_timer_del (timer);
+
+               return false;
+       }
+
+       mailbox_property_set (mb, "mtime", tzero);
+
+       if (!(ozero = calloc (1, sizeof (off_t)))) {
+               mailbox_property_set (mb, "timer", NULL);
+               mailbox_property_set (mb, "mtime", NULL);
+
+               ecore_timer_del (timer);
+               free (tzero);
+
+               return false;
+       }
 
-       mailbox_property_set (mb, "mtime", zero);
+       mailbox_property_set (mb, "size", ozero);
 
        return true;
 }
@@ -144,6 +168,7 @@
                ecore_timer_del (timer);
 
        free (mailbox_property_get (mb, "mtime"));
+       free (mailbox_property_get (mb, "size"));
 
        return true;
 }




-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE. 
http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to