From: Lennart Poettering Date: Mon, 26 Jun 2023 15:10:28 +0000 (+0200) Subject: env-util: introduce proper flags type ReplaceEnvFlags for replace_env() X-Git-Tag: v254-rc1~86^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d5ce24c99ea31a6d787b8e3ac92438cc1e2a27f0;p=thirdparty%2Fsystemd.git env-util: introduce proper flags type ReplaceEnvFlags for replace_env() --- diff --git a/src/basic/env-util.c b/src/basic/env-util.c index 8cc7b72511e..f3b76d6ba2e 100644 --- a/src/basic/env-util.c +++ b/src/basic/env-util.c @@ -500,7 +500,7 @@ int _strv_env_assign_many(char ***l, ...) { return 0; } -char *strv_env_get_n(char **l, const char *name, size_t k, unsigned flags) { +char *strv_env_get_n(char **l, const char *name, size_t k, ReplaceEnvFlags flags) { assert(name); if (k <= 0) @@ -578,7 +578,7 @@ char **strv_env_clean_with_callback(char **e, void (*invalid_callback)(const cha return e; } -char *replace_env_n(const char *format, size_t n, char **env, unsigned flags) { +char *replace_env_n(const char *format, size_t n, char **env, ReplaceEnvFlags flags) { enum { WORD, CURLY, diff --git a/src/basic/env-util.h b/src/basic/env-util.h index b0ff5a11d1a..786ae4cbb0f 100644 --- a/src/basic/env-util.h +++ b/src/basic/env-util.h @@ -19,19 +19,19 @@ bool env_name_is_valid(const char *e); bool env_value_is_valid(const char *e); bool env_assignment_is_valid(const char *e); -enum { +typedef enum ReplaceEnvFlags { REPLACE_ENV_USE_ENVIRONMENT = 1 << 0, REPLACE_ENV_ALLOW_BRACELESS = 1 << 1, REPLACE_ENV_ALLOW_EXTENDED = 1 << 2, -}; +} ReplaceEnvFlags; -char *replace_env_n(const char *format, size_t n, char **env, unsigned flags); -char **replace_env_argv(char **argv, char **env); - -static inline char *replace_env(const char *format, char **env, unsigned flags) { +char *replace_env_n(const char *format, size_t n, char **env, ReplaceEnvFlags flags); +static inline char *replace_env(const char *format, char **env, ReplaceEnvFlags flags) { return replace_env_n(format, strlen(format), env, flags); } +char **replace_env_argv(char **argv, char **env); + bool strv_env_is_valid(char **e); #define strv_env_clean(l) strv_env_clean_with_callback(l, NULL, NULL) char **strv_env_clean_with_callback(char **l, void (*invalid_callback)(const char *p, void *userdata), void *userdata); @@ -52,7 +52,7 @@ int strv_env_assign(char ***l, const char *key, const char *value); int _strv_env_assign_many(char ***l, ...) _sentinel_; #define strv_env_assign_many(l, ...) _strv_env_assign_many(l, __VA_ARGS__, NULL) -char *strv_env_get_n(char **l, const char *name, size_t k, unsigned flags) _pure_; +char *strv_env_get_n(char **l, const char *name, size_t k, ReplaceEnvFlags flags) _pure_; char *strv_env_get(char **x, const char *n) _pure_; char *strv_env_pairs_get(char **l, const char *name) _pure_;