aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-config-listener.c
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2003-01-07 23:04:07 +0800
committerDan Winship <danw@src.gnome.org>2003-01-07 23:04:07 +0800
commit186d1089e50636826ba0841063699c8b834d1dc4 (patch)
tree382082539030acca29710ca97da20b46ecdaca3a /e-util/e-config-listener.c
parentdd175b7cbdcd1e981e4f01b3d233237eedac9a07 (diff)
downloadgsoc2013-evolution-186d1089e50636826ba0841063699c8b834d1dc4.tar
gsoc2013-evolution-186d1089e50636826ba0841063699c8b834d1dc4.tar.gz
gsoc2013-evolution-186d1089e50636826ba0841063699c8b834d1dc4.tar.bz2
gsoc2013-evolution-186d1089e50636826ba0841063699c8b834d1dc4.tar.lz
gsoc2013-evolution-186d1089e50636826ba0841063699c8b834d1dc4.tar.xz
gsoc2013-evolution-186d1089e50636826ba0841063699c8b834d1dc4.tar.zst
gsoc2013-evolution-186d1089e50636826ba0841063699c8b834d1dc4.zip
New.
* e-config-listener.c (e_config_listener_remove_value): New. * e-passwords.c (e_passwords_get_password): Don't look at the passwords hash until calling e_passwords_init(). svn path=/trunk/; revision=19253
Diffstat (limited to 'e-util/e-config-listener.c')
-rw-r--r--e-util/e-config-listener.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/e-util/e-config-listener.c b/e-util/e-config-listener.c
index 5d676985ad..8db46d049d 100644
--- a/e-util/e-config-listener.c
+++ b/e-util/e-config-listener.c
@@ -562,10 +562,33 @@ e_config_listener_set_string (EConfigListener *cl, const char *key, const char *
}
void
+e_config_listener_remove_value (EConfigListener *cl, const char *key)
+{
+ gpointer orig_key, orig_value;
+
+ g_return_if_fail (E_IS_CONFIG_LISTENER (cl));
+ g_return_if_fail (key != NULL);
+
+ if (g_hash_table_lookup_extended (cl->priv->keys, key, &orig_key, &orig_value)) {
+ KeyData *kd = orig_value;
+
+ g_hash_table_remove (cl->priv->keys, key);
+ g_free (kd->key);
+ if (kd->type == GCONF_VALUE_STRING)
+ g_free (kd->value.v_str);
+ gconf_client_notify_remove (cl->priv->db, kd->lid);
+
+ g_free (kd);
+ }
+
+ gconf_client_unset (cl->priv->db, key, NULL);
+}
+
+void
e_config_listener_remove_dir (EConfigListener *cl, const char *dir)
{
GSList *slist, *iter;
- gchar *key;
+ const gchar *key;
g_return_if_fail (E_IS_CONFIG_LISTENER (cl));
g_return_if_fail (dir != NULL);