rem: else
add: free(buffer); } else
context: wDefaultFillAttributes(WScreen *scr, char *instance, char *class, 		       WWindowAttributes *attr,		       WWindowAttributes *mask,		       Bool useGlobalDefault){    proplist_t value;    proplist_t key1, key2, key3;    proplist_t dw, dc, dn, da;    char buffer[256];    if (class && instance)      key1 = PLMakeString(strcat(strcat(strcpy(buffer,instance),"."),class));    else      key1 = NULL;    if (instance)      key2 = PLMakeString(instance);    else      key2 = NULL;    if (class)      key3 = PLMakeString(class);    else      key3 = NULL;        if (!ANoTitlebar) {	init_wdefaults(scr);    }    PLSetStringCmpHook(NULL);    if (WDWindowAttributes->dictionary) {	dw = key1 ? PLGetDictionaryEntry(WDWindowAttributes->dictionary, key1) : NULL;	dn = key2 ? PLGetDictionaryEntry(WDWindowAttributes->dictionary, key2) : NULL;	dc = key3 ? PLGetDictionaryEntry(WDWindowAttributes->dictionary, key3) : NULL;	if (useGlobalDefault)	    da = PLGetDictionaryEntry(WDWindowAttributes->dictionary, AnyWindow);	else	    da = NULL;    } else {	dw = NULL;	dn = NULL;	dc = NULL;	da = NULL;    }    if (key1)      PLRelease(key1);    if (key2)      PLRelease(key2);    if (key3)      PLRelease(key3);#define APPLY_VAL(value, flag, attrib)	\	if (value) {attr->flag = getBool(attrib, value); \			if (mask) mask->flag = 1;}    /* get the data */            value = get_value(dw, dc, dn, da, ANoTitlebar, No, useGlobalDefault);    APPLY_VAL(value, no_titlebar, ANoTitlebar);            value = get_value(dw, dc, dn, da, ANoResizebar, No, useGlobalDefault);    APPLY_VAL(value, no_resizebar, ANoResizebar);    value = get_value(dw, dc, dn, da, ANoMiniaturizeButton, No, useGlobalDefault);    APPLY_VAL(value, no_miniaturize_button, ANoMiniaturizeButton);        value = get_value(dw, dc, dn, da, ANoCloseButton, No, useGlobalDefault);    APPLY_VAL(value, no_close_button, ANoCloseButton);    value = get_value(dw, dc, dn, da, ANoHideOthers, No, useGlobalDefault);    APPLY_VAL(value, no_hide_others, ANoHideOthers);        value = get_value(dw, dc, dn, da, ANoMouseBindings, No, useGlobalDefault);    APPLY_VAL(value, no_bind_mouse, ANoMouseBindings);        value = get_value(dw, dc, dn, da, ANoKeyBindings, No, useGlobalDefault);    APPLY_VAL(value, no_bind_keys, ANoKeyBindings);        value = get_value(dw, dc, dn, da, ANoAppIcon, No, useGlobalDefault);    APPLY_VAL(value, no_appicon, ANoAppIcon);    value = get_value(dw, dc, dn, da, AKeepOnTop, No, useGlobalDefault);    APPLY_VAL(value, floating, AKeepOnTop);    value = get_value(dw, dc, dn, da, AKeepOnBottom, No, useGlobalDefault);    APPLY_VAL(value, sunken, AKeepOnBottom);    value = get_value(dw, dc, dn, da, AOmnipresent, No, useGlobalDefault);    APPLY_VAL(value, omnipresent, AOmnipresent);    value = get_value(dw, dc, dn, da, ASkipWindowList, No, useGlobalDefault);    APPLY_VAL(value, skip_window_list, ASkipWindowList);        value = get_value(dw, dc, dn, da, AKeepInsideScreen, No, useGlobalDefault);    APPLY_VAL(value, dont_move_off, AKeepInsideScreen);    value = get_value(dw, dc, dn, da, AUnfocusable, No, useGlobalDefault);    APPLY_VAL(value, no_focusable, AUnfocusable);    value = get_value(dw, dc, dn, da, AAlwaysUserIcon, No, useGlobalDefault);    APPLY_VAL(value, always_user_icon, AAlwaysUserIcon);    value = get_value(dw, dc, dn, da, AStartMiniaturized, No, useGlobalDefault);    APPLY_VAL(value, start_miniaturized, AStartMiniaturized);        value = get_value(dw, dc, dn, da, AStartHidden, No, useGlobalDefault);    APPLY_VAL(value, start_hidden, AStartHidden);    value = get_value(dw, dc, dn, da, AStartMaximized, No, useGlobalDefault);    APPLY_VAL(value, start_maximized, AStartMaximized);    value = get_value(dw, dc, dn, da, ADontSaveSession, No, useGlobalDefault);    APPLY_VAL(value, dont_save_session, ADontSaveSession);    value = get_value(dw, dc, dn, da, AEmulateAppIcon, No, useGlobalDefault);    APPLY_VAL(value, emulate_appicon, AEmulateAppIcon);    value = get_value(dw, dc, dn, da, AFullMaximize, No, useGlobalDefault);    APPLY_VAL(value, full_maximize, AFullMaximize);#ifdef XKB_BUTTON_HINT    value = get_value(dw, dc, dn, da, ANoLanguageButton, No, useGlobalDefault);    APPLY_VAL(value, no_language_button, ANoLanguageButton);#endif    /* clean up */    PLSetStringCmpHook(StringCompareHook);}