diff options
Diffstat (limited to 'common/util.c')
-rw-r--r-- | common/util.c | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/common/util.c b/common/util.c index 467aa4b5..78d46a2a 100644 --- a/common/util.c +++ b/common/util.c @@ -138,40 +138,3 @@ bool parse_boolean(const char *boolean, bool current) { // All other values are false to match i3 return false; } - -char* resolve_path(const char* path) { - struct stat sb; - ssize_t r; - int i; - char *current = NULL; - char *resolved = NULL; - - if(!(current = strdup(path))) { - return NULL; - } - for (i = 0; i < 16; ++i) { - if (lstat(current, &sb) == -1) { - goto failed; - } - if((sb.st_mode & S_IFMT) != S_IFLNK) { - return current; - } - if (!(resolved = malloc(sb.st_size + 1))) { - goto failed; - } - r = readlink(current, resolved, sb.st_size); - if (r == -1 || r > sb.st_size) { - goto failed; - } - resolved[r] = '\0'; - free(current); - current = strdup(resolved); - free(resolved); - resolved = NULL; - } - -failed: - free(resolved); - free(current); - return NULL; -} |