aboutsummaryrefslogtreecommitdiff
path: root/utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'utils.c')
-rw-r--r--utils.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/utils.c b/utils.c
index a87c927..c32ecb8 100644
--- a/utils.c
+++ b/utils.c
@@ -62,3 +62,21 @@ filesize(int fd)
return -1;
return len;
}
+
+char *
+absolutify_path(const char *path)
+{
+ char *wd, *r;
+
+ if (*path == '/') {
+ if ((r = strdup(path)) == NULL)
+ err(1, "strdup");
+ return r;
+ }
+
+ wd = getcwd(NULL, 0);
+ if (asprintf(&r, "%s/%s", wd, path) == -1)
+ err(1, "asprintf");
+ free(wd);
+ return r;
+}