From 31ec0fb93d84e7d9f324340de790076e78911b11 Mon Sep 17 00:00:00 2001 From: Christoph Lohmann <20h@r-36.net> Date: Fri, 3 Jun 2016 15:14:53 +0200 Subject: Fixing the last patch to the surf style. --- surf.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/surf.c b/surf.c index 46b0ce8..7fcd17e 100644 --- a/surf.c +++ b/surf.c @@ -115,6 +115,8 @@ static void addaccelgroup(Client *c); static void beforerequest(WebKitWebView *w, WebKitWebFrame *f, WebKitWebResource *r, WebKitNetworkRequest *req, WebKitNetworkResponse *resp, Client *c); +static const char *getuserhomedir(const char *user); +static const char *getcurrentuserhomedir(void); static char *buildfile(const char *path); static char *buildpath(const char *path); static gboolean buttonrelease(WebKitWebView *web, GdkEventButton *e, Client *c); @@ -288,34 +290,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; } @@ -323,19 +326,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); -- cgit v1.2.3