rem: PLSave(dict, YES);
add: value = PLGetDescription(array); updateDomain(domain, "WorkspaceSpecificBack", value);
context: changeTextureForWorkspace(proplist_t dict, char *texture, int workspace){    proplist_t key;    proplist_t array;    proplist_t val;    int j;    workspace++;        val = PLGetProplistWithDescription(texture);    if (!val) {	wwarning("could not parse texture %s", texture);	return;    }    key = PLMakeString("WorkspaceSpecificBack");    array = PLGetDictionaryEntry(dict, key);    if (!array) {	array = PLMakeArrayFromElements(NULL, NULL);	PLInsertDictionaryEntry(dict, key, array);    }    j = PLGetNumberOfElements(array);    if (workspace >= j) {	proplist_t empty;	empty = PLMakeArrayFromElements(NULL, NULL);	while (j++ < workspace) {	    PLAppendArrayElement(array, empty);	}	PLAppendArrayElement(array, val);    } else {	PLRemoveArrayElement(array, workspace);	PLInsertArrayElement(array, val, workspace);    }    PLSave(dict, YES);}