string_utils: add must_make_path_relative()

Stolen without shame from my previous implementation in LXCFS. Cc: stable-4.0 Signed-off-by: 's avatarChristian Brauner <christian.brauner@ubuntu.com>
parent d23cb29e
...@@ -87,6 +87,16 @@ __hidden __attribute__((sentinel)) extern char *must_concat(size_t *len, const c ...@@ -87,6 +87,16 @@ __hidden __attribute__((sentinel)) extern char *must_concat(size_t *len, const c
__hidden __attribute__((sentinel)) extern char *must_make_path(const char *first, ...); __hidden __attribute__((sentinel)) extern char *must_make_path(const char *first, ...);
__hidden __attribute__((sentinel)) extern char *must_append_path(char *first, ...); __hidden __attribute__((sentinel)) extern char *must_append_path(char *first, ...);
#define must_make_path_relative(__first__, ...) \
({ \
char *__ptr__; \
if (*__first__ == '/') \
__ptr__ = must_make_path(".", __first__, __VA_ARGS__); \
else \
__ptr__ = must_make_path(__first__, __VA_ARGS__); \
__ptr__; \
})
/* Return copy of string @entry. Do not fail. */ /* Return copy of string @entry. Do not fail. */
__hidden extern char *must_copy_string(const char *entry); __hidden extern char *must_copy_string(const char *entry);
......
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