Add changes file for bug40642.
[tor.git] / src / lib / process / env.h
blob67185c50a884f48ee377826039cfc5093391a031
1 /* Copyright (c) 2003-2004, Roger Dingledine
2 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
3 * Copyright (c) 2007-2021, The Tor Project, Inc. */
4 /* See LICENSE for licensing information */
6 /**
7 * \file env.h
8 * \brief Header for env.c
9 **/
11 #ifndef TOR_ENV_H
12 #define TOR_ENV_H
14 char **get_environment(void);
16 struct smartlist_t;
18 int environment_variable_names_equal(const char *s1, const char *s2);
20 /* DOCDOC process_environment_t */
21 typedef struct process_environment_t {
22 /** A pointer to a sorted empty-string-terminated sequence of
23 * NUL-terminated strings of the form "NAME=VALUE". */
24 char *windows_environment_block;
25 /** A pointer to a NULL-terminated array of pointers to
26 * NUL-terminated strings of the form "NAME=VALUE". */
27 char **unixoid_environment_block;
28 } process_environment_t;
30 process_environment_t *process_environment_make(struct smartlist_t *env_vars);
31 void process_environment_free_(process_environment_t *env);
32 #define process_environment_free(env) \
33 FREE_AND_NULL(process_environment_t, process_environment_free_, (env))
35 struct smartlist_t *get_current_process_environment_variables(void);
37 void set_environment_variable_in_smartlist(struct smartlist_t *env_vars,
38 const char *new_var,
39 void (*free_old)(void*),
40 int free_p);
41 #endif /* !defined(TOR_ENV_H) */