All pastes #959845 Raw Edit

Anonym

public diff v1 · immutable
#959845 ·published 2008-03-27 18:50 UTC
rendered paste body
diff -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); 	}