rendered paste bodydiff -upNr compiz-0.7.2.orign/plugins/gconf.c compiz-0.7.2/plugins/gconf.c--- compiz-0.7.2.orign/plugins/gconf.c 2008-03-06 18:52:26.000000000 +0100+++ compiz-0.7.2/plugins/gconf.c 2008-03-27 19:44:11.000000000 +0100@@ -443,6 +443,46 @@ gconfReadOptionValue (CompObject *o return TRUE; } ++static void+gconfFixupPluginList (CompOptionValue *value)+{+ unsigned int i, j, length;+ CompOptionValue *new;++ for (i = 0; i < value->list.nValue; i++)+ if (!strcmp (value->list.value[i].s, "core"))+ break;++ if (i != value->list.nValue)+ return;++ puts("fix up list");+ length = value->list.nValue + 1;++ new = calloc (length, sizeof (CompOptionValue));++ if (!new)+ return;++ new[0].s = strdup ("core");++ j = 1;++ for (i = 0; i < value->list.nValue; i++)+ {+ if (strcmp (value->list.value[i].s, "core"))+ new[j++].s = strdup (value->list.value[i].s);+ free (value->list.value[i].s);+ }++ free (value->list.value);++ value->list.value = new;+ value->list.nValue = length;+}++ static void gconfGetOption (CompObject *object, CompOption *o,@@ -462,6 +502,10 @@ gconfGetOption (CompObject *object, if (gconfReadOptionValue (object, entry, o, &value)) {+ if (strcmp (plugin, "core") == 0) {+ if (!strcmp (o->name, "active_plugins"))+ gconfFixupPluginList (&value);+ } (*core.setOptionForPlugin) (object, plugin, o->name, &value); compFiniOptionValue (&value, o->type); }