X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=test%2Flib%2Fenv.hpp;h=b1b35885430cb2b6c2937aac5b8097481554b8d1;hb=refs%2Ftags%2F1.1.0-beta1;hp=814e2a156941c1640f0146e491abdd19adda0bb6;hpb=03ba544b4ef8a00bd4d51dfde1ed2bfb477096dc;p=awesomized%2Flibmemcached diff --git a/test/lib/env.hpp b/test/lib/env.hpp index 814e2a15..b1b35885 100644 --- a/test/lib/env.hpp +++ b/test/lib/env.hpp @@ -1,17 +1,43 @@ +/* + +--------------------------------------------------------------------+ + | 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" #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; +}