changeset 5385:284f2994ea5f HEAD

Added home_expand_tilde()
author Timo Sirainen <tss@iki.fi>
date Fri, 23 Mar 2007 02:06:42 +0200
parents 2a6ff0bbc932
children bf4a85a47901
files src/lib/home-expand.c src/lib/home-expand.h
diffstat 2 files changed, 16 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/home-expand.c	Fri Mar 23 02:04:52 2007 +0200
+++ b/src/lib/home-expand.c	Fri Mar 23 02:06:42 2007 +0200
@@ -47,3 +47,17 @@
 	(void)home_try_expand(&path);
 	return path;
 }
+
+const char *home_expand_tilde(const char *path, const char *home)
+{
+	if (path == NULL || *path != '~')
+		return path;
+
+	if (path[1] == '\0')
+		return home;
+	if (path[1] != '/')
+		return path;
+
+	/* ~/ used */
+	return t_strconcat(home, path + 1, NULL);
+}
--- a/src/lib/home-expand.h	Fri Mar 23 02:04:52 2007 +0200
+++ b/src/lib/home-expand.h	Fri Mar 23 02:06:42 2007 +0200
@@ -6,5 +6,7 @@
 const char *home_expand(const char *path);
 /* Returns 0 if ok, -1 if user wasn't found. */
 int home_try_expand(const char **path);
+/* Expand ~/ in the beginning of the path with the give home directory. */
+const char *home_expand_tilde(const char *path, const char *home);
 
 #endif