# HG changeset patch # User chainsaw # Date 1159124910 25200 # Node ID c525c2b6a3d871af62c7ce72f5a5039cf37d9335 # Parent 6b9e1c2b2b32b0817fcd56e3fc7baaecafc46a5b [svn] Interpret set_string for a NULL value as a key unset action, as gconf will not store NULL values. diff -r 6b9e1c2b2b32 -r c525c2b6a3d8 ChangeLog --- a/ChangeLog Sun Sep 24 00:40:12 2006 -0700 +++ b/ChangeLog Sun Sep 24 12:08:30 2006 -0700 @@ -1,3 +1,12 @@ +2006-09-24 07:40:12 +0000 Yoshiki Yazawa + revision [2453] + - fix for gconf_value_get_string() does not accept null string. + + trunk/audacious/prefswin.c | 23 ++++++++++++++++------- + trunk/configure.ac | 2 +- + 2 files changed, 17 insertions(+), 8 deletions(-) + + 2006-09-23 20:53:46 +0000 Tony Vroon revision [2451] Revert botched workaround, the actual 3 NULL writes will have to be addressed. diff -r 6b9e1c2b2b32 -r c525c2b6a3d8 libaudacious/configdb_gconf.c --- a/libaudacious/configdb_gconf.c Sun Sep 24 00:40:12 2006 -0700 +++ b/libaudacious/configdb_gconf.c Sun Sep 24 12:08:30 2006 -0700 @@ -194,10 +194,14 @@ { GConfValue *cval; - cval = gconf_value_new(GCONF_VALUE_STRING); - gconf_value_set_string(cval, value); - bmp_cfg_db_set_value(db, section, key, cval); - gconf_value_free(cval); + if (value == NULL) { + bmp_cfg_db_unset_key(db, section, key); + } else { + cval = gconf_value_new(GCONF_VALUE_STRING); + gconf_value_set_string(cval, value); + bmp_cfg_db_set_value(db, section, key, cval); + gconf_value_free(cval); + } } void