rem: if (value && PLIsArray(value) && PLGetNumberOfElements(value) > 2) { proplist_t type; char *t;
add: if (!value) continue;  if (strcasecmp(PLGetString(key), "WorkspaceSpecificBack")==0) { if (PLIsArray(value)) { int j; proplist_t texture;  for (j = 0; j < PLGetNumberOfElements(value); j++) { texture = PLGetArrayElement(value, j);  if (texture && PLIsArray(texture) && PLGetNumberOfElements(texture) > 2) {  hackPathInTexture(texture, prefix); } } } } else {
context: hackPaths(proplist_t style, char *prefix){    proplist_t keys;    proplist_t key;    proplist_t value;    int i;    keys = PLGetAllDictionaryKeys(style);    for (i = 0; i < PLGetNumberOfElements(keys); i++) {	key = PLGetArrayElement(keys, i);	value = PLGetDictionaryEntry(style, key);	if (value && PLIsArray(value) && PLGetNumberOfElements(value) > 2) {	    proplist_t type;	    char *t;	    	    type = PLGetArrayElement(value, 0);	    t = PLGetString(type);	    if (t && (strcasecmp(t, "tpixmap")==0		      || strcasecmp(t, "spixmap")==0		      || strcasecmp(t, "mpixmap")==0		      || strcasecmp(t, "cpixmap")==0		      || strcasecmp(t, "tvgradient")==0		      || strcasecmp(t, "thgradient")==0				      || strcasecmp(t, "tdgradient")==0)) {		proplist_t file;		char buffer[4018];		file = PLGetArrayElement(value, 1);		sprintf(buffer, "%s/%s", prefix, PLGetString(file));		PLRemoveArrayElement(value, 1);		PLInsertArrayElement(value, PLMakeString(buffer), 1);	    }	}    }    }