]> code.delx.au - pulseaudio/commitdiff
add two new functions pa_make_path_absolute()/pa_getcwd()
authorLennart Poettering <lennart@poettering.net>
Fri, 31 Aug 2007 00:51:01 +0000 (00:51 +0000)
committerLennart Poettering <lennart@poettering.net>
Fri, 31 Aug 2007 00:51:01 +0000 (00:51 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1737 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/pulsecore/core-util.c
src/pulsecore/core-util.h

index 2c5a32e9e1ba032137e9dd120aa38f276c91448d..82c0ea3ce66b4009beff87d48c9303a841008180 100644 (file)
@@ -1208,3 +1208,36 @@ char *pa_truncate_utf8(char *c, size_t l) {
     
     return c;
 }
+
+char *pa_getcwd(void) {
+    size_t l = 128;
+    
+    for (;;) {
+        char *p = pa_xnew(char, l);
+        if (getcwd(p, l))
+            return p;
+
+        if (errno != ERANGE)
+            return NULL;
+
+        pa_xfree(p);
+        l *= 2;
+    }
+}
+
+char *pa_make_path_absolute(const char *p) {
+    char *r;
+    char *cwd;
+    
+    pa_assert(p);
+
+    if (p[0] == '/')
+        return pa_xstrdup(p);
+
+    if (!(cwd = pa_getcwd()))
+        return pa_xstrdup(p);
+
+    r = pa_sprintf_malloc("%s/%s", cwd, p);
+    pa_xfree(cwd);
+    return r;
+}
index ea571e70331d888e943033d557d50fd549632703..5474928043bdc215d503e617414254d3969404af 100644 (file)
@@ -97,6 +97,9 @@ int pa_snprintf(char *str, size_t size, const char *format, ...);
 
 char *pa_truncate_utf8(char *c, size_t l);
 
+char *pa_getcwd(void);
+char *pa_make_path_absolute(const char *p);
+
 static inline int pa_is_power_of_two(unsigned n) {
     return !(n & (n - 1));
 }