tFixing the last patch to the surf style. - surf - customized build of surf, the suckless webkit browser
 (HTM) git clone git://src.adamsgaard.dk/surf
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 8682a4dffb33b37ba9d3e42b40f25fac3f92e510
 (DIR) parent cee8f0186ce3277add9b6a8ac07588be40f0f080
 (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:
         M surf.c                              |      33 +++++++++++++++++--------------
       
       1 file changed, 18 insertions(+), 15 deletions(-)
       ---
 (DIR) diff --git a/surf.c b/surf.c
       t@@ -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);
       t@@ -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;
        }
        
       t@@ -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);