diff options
-rw-r--r-- | noice.c | 41 |
1 files changed, 20 insertions, 21 deletions
@@ -103,7 +103,6 @@ int idle; void printmsg(char *); void printwarn(void); void printerr(int, char *); -char *mkpath(char *, char *, char *, size_t); #undef dprintf int @@ -361,6 +360,26 @@ canopendir(char *path) return 1; } +char * +mkpath(char *dir, char *name, char *out, size_t n) +{ + /* Handle absolute path */ + if (name[0] == '/') { + strlcpy(out, name, n); + } else { + /* Handle root case */ + if (strcmp(dir, "/") == 0) { + strlcpy(out, "/", n); + strlcat(out, name, n); + } else { + strlcpy(out, dir, n); + strlcat(out, "/", n); + strlcat(out, name, n); + } + } + return out; +} + void printent(struct entry *ent, int active) { @@ -444,26 +463,6 @@ dentfree(struct entry *dents) free(dents); } -char * -mkpath(char *dir, char *name, char *out, size_t n) -{ - /* Handle absolute path */ - if (name[0] == '/') { - strlcpy(out, name, n); - } else { - /* Handle root case */ - if (strcmp(dir, "/") == 0) { - strlcpy(out, "/", n); - strlcat(out, name, n); - } else { - strlcpy(out, dir, n); - strlcat(out, "/", n); - strlcat(out, name, n); - } - } - return out; -} - /* Return the position of the matching entry or 0 otherwise */ int dentfind(struct entry *dents, int n, char *cwd, char *path) |