--- GConf-3.2.6.old/backends/markup-tree.c +++ GConf-3.2.6/backends/markup-tree.c @@ -71,6 +71,11 @@ } #endif +/* PATH_MAX is not defined in limits.h on some platforms */ +#ifndef PATH_MAX +#define PATH_MAX 4096 +#endif + typedef struct { char *locale; --- GConf-3.2.6.old/backends/xml-dir.c +++ GConf-3.2.6/backends/xml-dir.c @@ -36,6 +36,11 @@ #include "gconf/gconf-internals.h" +/* PATH_MAX is not defined in limits.h on some platforms */ +#ifndef PATH_MAX +#define PATH_MAX 4096 +#endif + /* This makes hash table safer when debugging */ #ifndef GCONF_ENABLE_DEBUG #define safe_g_hash_table_insert g_hash_table_insert --- GConf-3.2.6.old/gconf/gconf-client.c +++ GConf-3.2.6/gconf/gconf-client.c @@ -2373,7 +2373,7 @@ { g_free (dir); trace ("Negative cache hit on %s", key); - return TRUE; + return FALSE; } else { @@ -2389,7 +2389,7 @@ { g_free (dir); trace ("Non-existing dir for %s", key); - return TRUE; + return FALSE; } not_cached = TRUE; } --- GConf-3.2.6.old/gconf/gconf-dbus.c +++ GConf-3.2.6/gconf/gconf-dbus.c @@ -2195,6 +2195,29 @@ } } +gboolean +gconf_engine_key_is_writable (GConfEngine *conf, + const gchar *key, + GError **err) +{ + gboolean is_writable = TRUE; + GConfValue *val; + + CHECK_OWNER_USE (conf); + + /* FIXME implement IDL to allow getting only writability + * (not that urgent since GConfClient caches this crap + * anyway) + */ + + val = gconf_engine_get_full(conf, key, NULL, TRUE, + NULL, &is_writable, err); + + gconf_value_free (val); + + return is_writable; +} + static void cnxn_get_all_func (gpointer key, gpointer value,