summaryrefslogtreecommitdiff
path: root/capplets/common
diff options
context:
space:
mode:
authorBradford Hovinen <hovinen@ximian.com>2001-09-25 01:40:39 +0000
committerBradford Hovinen (Gdict maintainer) <hovinen@src.gnome.org>2001-09-25 01:40:39 +0000
commitb4d4a62dbbb954c5965075d0e555be4755f213cd (patch)
tree09cbc3f53874e0f70d699ff3b0a2413d8644f6d6 /capplets/common
parente8eded81668e2ce13045db2770edf77262c1aea0 (diff)
downloadgnome-control-center-b4d4a62dbbb954c5965075d0e555be4755f213cd.tar.gz
Improved error checking and cleaned up the logic a bit
2001-09-24 Bradford Hovinen <hovinen@ximian.com> * capplet-util.c (legacy_is_modified): Improved error checking and cleaned up the logic a bit
Diffstat (limited to 'capplets/common')
-rw-r--r--capplets/common/ChangeLog5
-rw-r--r--capplets/common/capplet-util.c33
2 files changed, 22 insertions, 16 deletions
diff --git a/capplets/common/ChangeLog b/capplets/common/ChangeLog
index 8ce644d98..b9ae3b5a1 100644
--- a/capplets/common/ChangeLog
+++ b/capplets/common/ChangeLog
@@ -1,3 +1,8 @@
+2001-09-24 Bradford Hovinen <hovinen@ximian.com>
+
+ * capplet-util.c (legacy_is_modified): Improved error checking and
+ cleaned up the logic a bit
+
2001-09-14 Bradford Hovinen <hovinen@ximian.com>
* capplet-util.c (set_moniker_cb): Don't call setup_cb after the
diff --git a/capplets/common/capplet-util.c b/capplets/common/capplet-util.c
index f4a603df0..27acf2a06 100644
--- a/capplets/common/capplet-util.c
+++ b/capplets/common/capplet-util.c
@@ -430,24 +430,23 @@ legacy_is_modified (Bonobo_ConfigDatabase db, const gchar *filename)
struct stat stbuf;
gchar *realfile;
struct tm *legacy_tm;
+ gboolean ret;
g_return_val_if_fail (db != CORBA_OBJECT_NIL, FALSE);
CORBA_exception_init (&ev);
pb = Bonobo_Unknown_queryInterface (db, "IDL:Bonobo/PropertyBag:1.0", &ev);
- if (BONOBO_EX (&ev)) {
- CORBA_exception_free (&ev);
+
+ if (pb == CORBA_OBJECT_NIL || BONOBO_EX (&ev))
return FALSE;
- }
arg = bonobo_property_bag_client_get_value_any (pb, "last_modified", &ev);
- if (BONOBO_EX (&ev)) {
- CORBA_exception_free (&ev);
- return FALSE;
- }
- bonobo_object_release_unref (pb, &ev);
+ bonobo_object_release_unref (pb, NULL);
+
+ if (arg == NULL || BONOBO_EX (&ev))
+ return FALSE;
log_val = BONOBO_ARG_GET_GENERAL (arg, TC_ulonglong, CORBA_unsigned_long_long, NULL);
bonobo_arg_release (arg);
@@ -461,16 +460,18 @@ legacy_is_modified (Bonobo_ConfigDatabase db, const gchar *filename)
NULL);
if (stat (realfile, &stbuf) != 0) {
- CORBA_exception_free (&ev);
- g_free (realfile);
- return FALSE;
+ ret = FALSE;
+ } else {
+ legacy_tm = localtime (&stbuf.st_mtime);
+ legacy_val = mktime (legacy_tm);
+ ret = (legacy_val > log_val);
}
-
- CORBA_exception_free (&ev);
+
g_free (realfile);
- legacy_tm = localtime (&stbuf.st_mtime);
- legacy_val = mktime (legacy_tm);
- return (legacy_val > log_val);
+
+ CORBA_exception_free (&ev);
+
+ return ret;
}
/* capplet_init -- see documentation in capplet-util.h