rem: char buffer[256];
context: get_generic_value(WScreen *scr, char *instance, char *class, proplist_t option,		  Bool noDefault){    proplist_t value, key, dict;    char buffer[256];        value = NULL;    PLSetStringCmpHook(NULL);    if (class && instance) {	key = PLMakeString(strcat(strcat(strcpy(buffer,instance),"."),class));		dict = PLGetDictionaryEntry(WDWindowAttributes->dictionary, key);	PLRelease(key);	if (dict) {	    value = PLGetDictionaryEntry(dict, option);	}    }    if (!value && instance) {	key = PLMakeString(instance);		dict = PLGetDictionaryEntry(WDWindowAttributes->dictionary, key);	PLRelease(key);	if (dict) {	    value = PLGetDictionaryEntry(dict, option);	}    }    if (!value && class) {	key = PLMakeString(class);		dict = PLGetDictionaryEntry(WDWindowAttributes->dictionary, key);	PLRelease(key);	if (dict) {	    value = PLGetDictionaryEntry(dict, option);	}    }    if (!value && !noDefault) {	dict = PLGetDictionaryEntry(WDWindowAttributes->dictionary, AnyWindow);		if (dict) {	    value = PLGetDictionaryEntry(dict, option);	}    }        PLSetStringCmpHook(StringCompareHook);    return value;}