diff options
Diffstat (limited to 'libbb/concat_path_file.c')
-rw-r--r-- | libbb/concat_path_file.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/libbb/concat_path_file.c b/libbb/concat_path_file.c new file mode 100644 index 000000000..9aae601a4 --- /dev/null +++ b/libbb/concat_path_file.c | |||
@@ -0,0 +1,27 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * Utility routines. | ||
4 | * | ||
5 | * Copyright (C) many different people. | ||
6 | * If you wrote this, please acknowledge your work. | ||
7 | * | ||
8 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | ||
9 | */ | ||
10 | |||
11 | /* concatenate path and file name to new allocation buffer, | ||
12 | * not adding '/' if path name already has '/' | ||
13 | */ | ||
14 | |||
15 | #include "libbb.h" | ||
16 | |||
17 | char *concat_path_file(const char *path, const char *filename) | ||
18 | { | ||
19 | char *lc; | ||
20 | |||
21 | if (!path) | ||
22 | path = ""; | ||
23 | lc = last_char_is(path, '/'); | ||
24 | while (*filename == '/') | ||
25 | filename++; | ||
26 | return xasprintf("%s%s%s", path, (lc==NULL ? "/" : ""), filename); | ||
27 | } | ||