Commit 24b51482 by Christian Seiler Committed by Serge Hallyn

utils: Add lxc_append_paths to join two paths.

parent 4bee03bc
...@@ -658,6 +658,25 @@ char **lxc_normalize_path(const char *path) ...@@ -658,6 +658,25 @@ char **lxc_normalize_path(const char *path)
return components; return components;
} }
char *lxc_append_paths(const char *first, const char *second)
{
size_t len = strlen(first) + strlen(second) + 1;
const char *pattern = "%s%s";
char *result = NULL;
if (second[0] != '/') {
len += 1;
pattern = "%s/%s";
}
result = calloc(1, len);
if (!result)
return NULL;
snprintf(result, len, pattern, first, second);
return result;
}
bool lxc_string_in_list(const char *needle, const char *haystack, char _sep) bool lxc_string_in_list(const char *needle, const char *haystack, char _sep)
{ {
char *token, *str, *saveptr = NULL; char *token, *str, *saveptr = NULL;
......
...@@ -219,6 +219,7 @@ extern char *lxc_string_join(const char *sep, const char **parts, bool use_as_pr ...@@ -219,6 +219,7 @@ extern char *lxc_string_join(const char *sep, const char **parts, bool use_as_pr
* foo//bar -> { foo, bar, NULL } * foo//bar -> { foo, bar, NULL }
*/ */
extern char **lxc_normalize_path(const char *path); extern char **lxc_normalize_path(const char *path);
extern char *lxc_append_paths(const char *first, const char *second);
/* Note: the following two functions use strtok(), so they will never /* Note: the following two functions use strtok(), so they will never
* consider an empty element, even if two delimiters are next to * consider an empty element, even if two delimiters are next to
* each other. * each other.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment