rem: if (stat(path, &stbuf) >= 0) defaults->timestamp = stbuf.st_mtime;
add: path = wdefaultspathfordomain(WMGetFromPLString(key));
context: WMGetStandardUserDefaults(void){    WMUserDefaults *defaults;    WMPropList *domain;    WMPropList *key;    struct stat stbuf;    char *path;    int i;    if (sharedUserDefaults) {        defaults = sharedUserDefaults;        while (defaults) {            /* Trick, path == NULL only for StandardUserDefaults db */            if (defaults->path == NULL)                return defaults;            defaults = defaults->next;        }    }    /* we didn't found the database we are looking for. Go read it. */    defaults = wmalloc(sizeof(WMUserDefaults));    memset(defaults, 0, sizeof(WMUserDefaults));    defaults->defaults = WMCreatePLDictionary(NULL, NULL, NULL);    defaults->searchList = wmalloc(sizeof(WMPropList*)*3);    /* application domain */    key = WMCreatePLString(WMGetApplicationName());    defaults->searchList[0] = key;    /* temporary kluge */    if (strcmp(WMGetApplicationName(), "WindowMaker")==0) {        domain = NULL;        path = NULL;    } else {        path = wdefaultspathfordomain(WMGetFromPLString(key));        if (stat(path, &stbuf) >= 0)            defaults->timestamp = stbuf.st_mtime;        domain = WMReadPropListFromFile(path);    }    if (!domain)        domain = WMCreatePLDictionary(NULL, NULL, NULL);    if (path)        wfree(path);    defaults->appDomain = domain;    if (domain)        WMPutInPLDictionary(defaults->defaults, key, domain);    /* global domain */    key = WMCreatePLString("WMGLOBAL");    defaults->searchList[1] = key;    path = wdefaultspathfordomain(WMGetFromPLString(key));    domain = WMReadPropListFromFile(path);    wfree(path);    if (!domain)        domain = WMCreatePLDictionary(NULL, NULL, NULL);    if (domain)        WMPutInPLDictionary(defaults->defaults, key, domain);    /* terminate list */    defaults->searchList[2] = NULL;    defaults->searchListArray = WMCreatePLArray(NULL,NULL);    i = 0;    while (defaults->searchList[i]) {        WMAddToPLArray(defaults->searchListArray,                             defaults->searchList[i]);        i++;    }    if (sharedUserDefaults)        defaults->next = sharedUserDefaults;    sharedUserDefaults = defaults;    addSynchronizeTimerHandler();    registerSaveOnExit();    return defaults;}