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