diff options
author | Paul Eggert <[email protected]> | 2011-09-03 16:03:38 -0700 |
---|---|---|
committer | Paul Eggert <[email protected]> | 2011-09-03 16:03:38 -0700 |
commit | b49e353d9d01adbe60bc5d0b1658b4ef978b0b06 (patch) | |
tree | 9f2ffa6f7a6562abf661a4951012b488ad8b1ae7 /src/xrdb.c | |
parent | 74b880cbc18bd0194c7b1fc44c4a983ee05adae2 (diff) | |
parent | bc3200871917d5c54c8c4299a06bf8f8ba2ea02d (diff) |
Merge from trunk.
Diffstat (limited to 'src/xrdb.c')
-rw-r--r-- | src/xrdb.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/xrdb.c b/src/xrdb.c index 6a16e3260b..63f06738b9 100644 --- a/src/xrdb.c +++ b/src/xrdb.c @@ -426,24 +426,22 @@ get_environ_db (void) { XrmDatabase db; char *p; - char *path = 0, *home = 0; - const char *host; + char *path = 0; if ((p = getenv ("XENVIRONMENT")) == NULL) { - home = gethomedir (); - host = get_system_name (); - path = (char *) xmalloc (strlen (home) - + sizeof (".Xdefaults-") - + strlen (host)); - sprintf (path, "%s%s%s", home, ".Xdefaults-", host); + static char const xdefaults[] = ".Xdefaults-"; + char *home = gethomedir (); + char const *host = get_system_name (); + ptrdiff_t pathsize = strlen (home) + sizeof xdefaults + strlen (host); + path = (char *) xrealloc (home, pathsize); + strcat (strcat (path, xdefaults), host); p = path; } db = XrmGetFileDatabase (p); xfree (path); - xfree (home); return db; } |