diff options
author | Christoph Lohmann <20h@r-36.net> | 2016-06-03 15:14:53 +0200 |
---|---|---|
committer | Quentin Rameau <quinq@fifth.space> | 2016-07-05 13:01:56 +0200 |
commit | 8682a4dffb33b37ba9d3e42b40f25fac3f92e510 (patch) | |
tree | ed138ef6628527e87b87c6aadcc7bca03dc76606 /surf.c | |
parent | cee8f0186ce3277add9b6a8ac07588be40f0f080 (diff) | |
download | surf-8682a4dffb33b37ba9d3e42b40f25fac3f92e510.tar.gz surf-8682a4dffb33b37ba9d3e42b40f25fac3f92e510.tar.bz2 surf-8682a4dffb33b37ba9d3e42b40f25fac3f92e510.zip |
Fixing the last patch to the surf style.
Diffstat (limited to 'surf.c')
-rw-r--r-- | surf.c | 33 |
1 files changed, 18 insertions, 15 deletions
@@ -144,6 +144,8 @@ static void setup(void); static void sigchld(int unused); static char *buildfile(const char *path); static char *buildpath(const char *path); +static const char *getuserhomedir(const char *user); +static const char *getcurrentuserhomedir(void); static Client *newclient(Client *c); static void loaduri(Client *c, const Arg *a); static const char *geturi(Client *c); @@ -351,34 +353,35 @@ buildfile(const char *path) } static const char* -get_user_homedir(const char *user) { +getuserhomedir(const char *user) +{ struct passwd *pw = getpwnam(user); - if (!pw) { - die("Can't get user `%s' home directory.\n", user); - } + + if (!pw) + die("Can't get user %s login information.\n", user); + return pw->pw_dir; } static const char* -get_current_user_homedir() { +getcurrentuserhomedir(void) +{ const char *homedir; const char *user; struct passwd *pw; homedir = getenv("HOME"); - if (homedir) { + if (homedir) return homedir; - } user = getenv("USER"); - if (user) { - return get_user_homedir(user); - } + if (user) + return getuserhomedir(user); pw = getpwuid(getuid()); - if (!pw) { + if (!pw) die("Can't get current user home directory\n"); - } + return pw->pw_dir; } @@ -386,19 +389,19 @@ char * buildpath(const char *path) { char *apath, *name, *p, *fpath; + const char *homedir; if (path[0] == '~') { - const char *homedir; if (path[1] == '/' || path[1] == '\0') { p = (char *)&path[1]; - homedir = get_current_user_homedir(); + homedir = getcurrentuserhomedir(); } else { if ((p = strchr(path, '/'))) name = g_strndup(&path[1], --p - path); else name = g_strdup(&path[1]); - homedir = get_user_homedir(name); + homedir = getuserhomedir(name); g_free(name); } apath = g_build_filename(homedir, p, NULL); |