env-util.h revision 5aaddefb351e87ea1e97db92924a75ff8aa50181
76b43e4417bab52e913da39b5f5bc2a130d3f149Timo Sirainen#ifndef ENV_UTIL_H
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen#define ENV_UTIL_H
5254d77805cd35b9356d072ba325c356c43b0d51Timo Sirainen
5254d77805cd35b9356d072ba325c356c43b0d51Timo Sirainen/* Add new environment variable. Wrapper to putenv(). Note that calls to this
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen function allocates memory which isn't free'd until env_clean() is called. */
07e4875d250e7a7157cd99132aafc773cf3cdf83Timo Sirainenvoid env_put(const char *env);
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen/* Remove a single environment. */
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainenvoid env_remove(const char *name);
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen/* Clear all environment variables. */
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainenvoid env_clean(void);
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen/* Clear all environment variables except what's listed in preserve_envs[] */
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainenvoid env_clean_except(const char *const preserve_envs[]);
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen
c0435c854a0e7246373b9752d163095cc4fbe985Timo Sirainen/* Save a copy of the current environment. */
252db51b6c0a605163326b3ea5d09e9936ca3b29Timo Sirainenstruct env_backup *env_backup_save(void);
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen/* Clear the current environment and restore the backup. */
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainenvoid env_backup_restore(struct env_backup *env);
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen/* Free the memory used by environment backup. */
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainenvoid env_backup_free(struct env_backup **env);
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen
8edc373587d75f8040e3c4416e50638aa2a32188Timo Sirainen/* Free all memory used by env_put() function. Environment must not be
c0435c854a0e7246373b9752d163095cc4fbe985Timo Sirainen accessed afterwards. */
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainenvoid env_deinit(void);
a94936bafd127680184da114c6a177b37ff656e5Timo Sirainen
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen#endif
252db51b6c0a605163326b3ea5d09e9936ca3b29Timo Sirainen