Mercurial > dovecot > core-2.2
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