Fixing the last patch to the surf style. - surf - Surf web browser.
       
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 31ec0fb93d84e7d9f324340de790076e78911b11
 (DIR) parent 1308872b8bd7a2516d0626955abe391af076e711
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Fri,  3 Jun 2016 15:14:53 +0200
       
       Fixing the last patch to the surf style.
       
       Diffstat:
         surf.c                              |      33 +++++++++++++++++--------------
       
       1 file changed, 18 insertions(+), 15 deletions(-)
       ---
 (DIR) diff --git 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);