summaryrefslogtreecommitdiff
path: root/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'util.c')
-rw-r--r--util.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/util.c b/util.c
index 8bb1184..8601fca 100644
--- a/util.c
+++ b/util.c
@@ -270,6 +270,26 @@ char *path_extension(char *path)
return strdup(lastdot+1);
}
+char * path_dirname(char *path)
+{
+ char *lastslash = NULL;
+ char *cur;
+ for (cur = path; *cur; cur++)
+ {
+ if (is_path_sep(*cur)) {
+ lastslash = cur;
+ }
+ }
+ if (!lastslash) {
+ return NULL;
+ }
+ char *dir = malloc(lastslash-path+1);
+ memcpy(dir, path, lastslash-path);
+ dir[lastslash-path] = 0;
+
+ return dir;
+}
+
uint32_t nearest_pow2(uint32_t val)
{
uint32_t ret = 1;