about summary refs log tree commit diff
path: root/surf.c
diff options
context:
space:
mode:
authorChristoph Lohmann <20h@r-36.net>2016-06-03 15:14:53 +0200
committerQuentin Rameau <quinq@fifth.space>2016-07-05 13:01:56 +0200
commit8682a4dffb33b37ba9d3e42b40f25fac3f92e510 (patch)
treeed138ef6628527e87b87c6aadcc7bca03dc76606 /surf.c
parentCheck $HOME and home dir of $USER before getpwuid()->pw_dir (diff)
downloadsurf-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.c33
1 files changed, 18 insertions, 15 deletions
diff --git a/surf.c b/surf.c
index 105b28e..9851bba 100644
--- a/surf.c
+++ b/surf.c
@@ -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);