Archived
1
0
Fork 0

path: added mkpath

This commit is contained in:
Henrik Hautakoski 2011-02-05 14:13:17 +01:00
parent 9c73f8f867
commit 1b3035b249
4 changed files with 41 additions and 1 deletions

View file

@ -67,6 +67,32 @@ int is_dir(const char *path) {
return 0;
}
const char *mkpath(const char *fmt, ...) {
static strbuf_t sb = STRBUF_INIT;
va_list va;
int len;
if (strbuf_avail(&sb)) {
strbuf_reduce(&sb, sb.len);
} else {
strbuf_expand(&sb, 1);
}
va_start(va, fmt);
len = strbuf_append_va(&sb, fmt, va);
va_end(va);
if (len > 0) {
strbuf_expand(&sb, len);
va_start(va, fmt);
strbuf_append_va(&sb, fmt, va);
va_end(va);
}
return sb.buf;
}
static char* expand_home() {
char *home = getenv("HOME");

View file

@ -20,6 +20,8 @@ int is_file(const char *path);
int is_dir(const char *path);
const char* mkpath(const char *fmt, ...);
char* path_normalize(const char *base, const char *name, unsigned dir);
#endif /* __PATH_H */