X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=test%2Flib%2Fenv.hpp;h=b1b35885430cb2b6c2937aac5b8097481554b8d1;hb=a124aaabc96a1e58b03f90ac17a75e1df1918cd5;hp=105fef5d259a289cf90e31d185a10d6b8c3bd823;hpb=7e2b466107a65e22f1cc258ca8643922dbb60352;p=awesomized%2Flibmemcached diff --git a/test/lib/env.hpp b/test/lib/env.hpp index 105fef5d..b1b35885 100644 --- a/test/lib/env.hpp +++ b/test/lib/env.hpp @@ -1,3 +1,18 @@ +/* + +--------------------------------------------------------------------+ + | libmemcached - C/C++ Client Library for memcached | + +--------------------------------------------------------------------+ + | Redistribution and use in source and binary forms, with or without | + | modification, are permitted under the terms of the BSD license. | + | You should have received a copy of the license in a bundled file | + | named LICENSE; in case you did not receive a copy you can review | + | the terms online at: https://opensource.org/licenses/BSD-3-Clause | + +--------------------------------------------------------------------+ + | Copyright (c) 2006-2014 Brian Aker https://datadifferential.com/ | + | Copyright (c) 2020 Michael Wallner | + +--------------------------------------------------------------------+ +*/ + #pragma once #include "mem_config.h" @@ -5,15 +20,24 @@ #include #if HAVE_SETENV -# define SET_ENV_EX(n, k, v, overwrite) setenv(k, v, (overwrite)) +# define SET_ENV_EX(n, k, v, overwrite) setenv(k, v, (overwrite)) #else // !HAVE_SETENV -# define SET_ENV_EX(n, k, v, overwrite) do { \ - static char n ## _env[] = k "=" v; \ - if ((overwrite) || !getenv(k)) { \ - putenv(n ## _env); \ - } \ -} while(false) +# define SET_ENV_EX(n, k, v, overwrite) \ + do { \ + static char n##_env[] = k "=" v; \ + if ((overwrite) || !getenv(k)) { \ + putenv(n##_env); \ + } \ + } while (false) #endif #define SET_ENV(symbolic_name, literal_env_var, literal_env_val) \ SET_ENV_EX(symbolic_name, literal_env_var, literal_env_val, true) + +static inline const char *getenv_else(const char *var, const char *defval) { + auto val = getenv(var); + if (val && *val) { + return val; + } + return defval; +}