diff options
Diffstat (limited to 'libbb/concat_path_file.c')
-rw-r--r-- | libbb/concat_path_file.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libbb/concat_path_file.c b/libbb/concat_path_file.c new file mode 100644 index 000000000..d53dc0e2e --- /dev/null +++ b/libbb/concat_path_file.c | |||
@@ -0,0 +1,24 @@ | |||
1 | /* | ||
2 | * busybox library eXtendet funcion | ||
3 | * | ||
4 | * concatenate path and file name to new allocation buffer, | ||
5 | * not addition '/' if path name already have '/' | ||
6 | * | ||
7 | */ | ||
8 | |||
9 | #include "libbb.h" | ||
10 | |||
11 | extern char *concat_path_file(const char *path, const char *filename) | ||
12 | { | ||
13 | char *outbuf; | ||
14 | int l; | ||
15 | int flg_slash = 1; | ||
16 | |||
17 | l = strlen(path); | ||
18 | if(l>0 && path[l-1] == '/') | ||
19 | flg_slash--; | ||
20 | l += strlen(filename); | ||
21 | outbuf = xmalloc(l+1+flg_slash); | ||
22 | sprintf(outbuf, (flg_slash ? "%s/%s" : "%s%s"), path, filename); | ||
23 | return outbuf; | ||
24 | } | ||