diff options
Diffstat (limited to 'src/lib/env-util.h')
-rw-r--r-- | src/lib/env-util.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/lib/env-util.h b/src/lib/env-util.h new file mode 100644 index 0000000..e5b87de --- /dev/null +++ b/src/lib/env-util.h @@ -0,0 +1,30 @@ +#ifndef ENV_UTIL_H +#define ENV_UTIL_H + +/* Add a new environment variable or replace an existing one. + Wrapper to setenv(). Note that setenv() often doesn't free memory used by + replaced environment, so don't keep repeatedly changing values in + environment. */ +void env_put(const char *name, const char *value); +/* env_put() NULL-terminated array of name=value strings */ +void env_put_array(const char *const *envs); +/* Remove a single environment. */ +void env_remove(const char *name); +/* Clear all environment variables. */ +void env_clean(void); +/* Clear all environment variables except what's listed in preserve_envs[] */ +void env_clean_except(const char *const preserve_envs[]); + +/* Save a copy of the current environment. */ +struct env_backup *env_backup_save(void); +/* Clear the current environment and restore the backup. */ +void env_backup_restore(struct env_backup *env); +/* Free the memory used by environment backup. */ +void env_backup_free(struct env_backup **env); + +/* Returns the value of "&environ". This is more portable than using it + directly. */ +char ***env_get_environ_p(void); + + +#endif |