rem: sprintf(path, "%s/%s/WindowMaker", PKGDATADIR, DEFAULTS_DIR);
add: sprintf(path, "%s/WindowMaker", SYSCONFDIR);
context: wDefaultsCheckDomains(void *foo){    WScreen *scr;    struct stat stbuf;    proplist_t dict;    int i;    char path[PATH_MAX];#ifdef HEARTBEAT    puts("Checking domains...");#endif    if (stat(WDWindowMaker->path, &stbuf)>=0	&& WDWindowMaker->timestamp < stbuf.st_mtime) {	proplist_t shared_dict = NULL;#ifdef HEARTBEAT	puts("Checking WindowMaker domain");#endif	WDWindowMaker->timestamp = stbuf.st_mtime;		/* global dictionary */	sprintf(path, "%s/%s/WindowMaker", PKGDATADIR, DEFAULTS_DIR);	if (stat(path, &stbuf)>=0) {	    shared_dict = ReadProplistFromFile(path);	    if (shared_dict && !PLIsDictionary(shared_dict)) {		wwarning(_("Domain %s (%s) of global defaults database is corrupted!"),			 "WindowMaker", path);		PLRelease(shared_dict);		shared_dict = NULL;	    } else if (!shared_dict) {		wwarning(_("could not load domain %s from global defaults database"),			 "WindowMaker");	    }	}	/* user dictionary */	dict = ReadProplistFromFile(WDWindowMaker->path);	if (dict) {	    if (!PLIsDictionary(dict)) {		PLRelease(dict);		dict = NULL;		wwarning(_("Domain %s (%s) of defaults database is corrupted!"),			 "WindowMaker", WDWindowMaker->path);	    } else {		if (shared_dict) {		    PLSetFilename(shared_dict, PLGetFilename(dict));		    PLMergeDictionaries(shared_dict, dict);		    PLRelease(dict);		    dict = shared_dict;		    shared_dict = NULL;		}		for (i=0; i<wScreenCount; i++) {		    scr = wScreenWithNumber(i);		    if (scr)			wReadDefaults(scr, dict);		}		if (WDWindowMaker->dictionary) {		    PLRelease(WDWindowMaker->dictionary);		}		WDWindowMaker->dictionary = dict;	    }	} else {	    wwarning(_("could not load domain %s from user defaults database"),		     "WindowMaker");	}	if (shared_dict) {	    PLRelease(shared_dict);	}    }    if (stat(WDWindowAttributes->path, &stbuf)>=0	&& WDWindowAttributes->timestamp < stbuf.st_mtime) {#ifdef HEARTBEAT	puts("Checking WMWindowAttributes domain");#endif	dict = ReadProplistFromFile(WDWindowAttributes->path);	if (dict) {	    if (!PLIsDictionary(dict)) {		PLRelease(dict);		dict = NULL;		wwarning(_("Domain %s (%s) of defaults database is corrupted!"),			 "WMWindowAttributes", WDWindowAttributes->path);	    } else {		if (WDWindowAttributes->dictionary)		    PLRelease(WDWindowAttributes->dictionary);		WDWindowAttributes->dictionary = dict;		for (i=0; i<wScreenCount; i++) {		    scr = wScreenWithNumber(i);		    if (scr)			wDefaultUpdateIcons(scr);		}	    }	} else {	    wwarning(_("could not load domain %s from user defaults database"),		     "WMWindowAttributes");	}	WDWindowAttributes->timestamp = stbuf.st_mtime;    }#ifndef LITE    if (stat(WDRootMenu->path, &stbuf)>=0	&& WDRootMenu->timestamp < stbuf.st_mtime) {	dict = ReadProplistFromFile(WDRootMenu->path);#ifdef HEARTBEAT	puts("Checking WMRootMenu domain");#endif	if (dict) {	    if (!PLIsArray(dict) && !PLIsString(dict)) {		PLRelease(dict);		dict = NULL;		wwarning(_("Domain %s (%s) of defaults database is corrupted!"),			 "WMRootMenu", WDRootMenu->path);	    } else {		if (WDRootMenu->dictionary) {		    PLRelease(WDRootMenu->dictionary);		}		WDRootMenu->dictionary = dict;	    }	} else {	    wwarning(_("could not load domain %s from user defaults database"),		     "WMRootMenu");	}	WDRootMenu->timestamp = stbuf.st_mtime;    }#endif /* !LITE */    WMAddTimerHandler(DEFAULTS_CHECK_INTERVAL, wDefaultsCheckDomains, foo);}