diff options
Diffstat (limited to 'pseudo_util.c')
-rw-r--r-- | pseudo_util.c | 41 |
1 files changed, 28 insertions, 13 deletions
diff --git a/pseudo_util.c b/pseudo_util.c index 2e75e69..774e387 100644 --- a/pseudo_util.c +++ b/pseudo_util.c @@ -39,6 +39,12 @@ #include "pseudo_ipc.h" #include "pseudo_db.h" +struct pseudo_variables { + char *key; + size_t key_len; + char *value; +}; + /* The order below is not arbitrary, but based on an assumption * of how often things will be used. */ @@ -74,7 +80,8 @@ int _in_init = -1; /* Not yet run */ static void _libpseudo_init(void) __attribute__ ((constructor)); #if 0 -static void dump_env(char **envp) { +static void +dump_env(char **envp) { size_t i = 0; for (i = 0; envp[i]; i++) { pseudo_debug(0,"dump_envp: [%d]%s\n", (int) i, envp[i]); @@ -89,13 +96,16 @@ static void dump_env(char **envp) { #endif /* Caller must free memory! */ -char * pseudo_get_value(const char * key) { +char * +pseudo_get_value(const char *key) { size_t i = 0; char * value; - if (_in_init == -1) _libpseudo_init(); + if (_in_init == -1) + _libpseudo_init(); - for (i = 0; pseudo_env[i].key && memcmp(pseudo_env[i].key, key, pseudo_env[i].key_len + 1); i++) ; + for (i = 0; pseudo_env[i].key && memcmp(pseudo_env[i].key, key, pseudo_env[i].key_len + 1); i++) + ; /* Check if the environment has it and we don't ... * if so, something went wrong... so we'll attempt to recover @@ -103,8 +113,10 @@ char * pseudo_get_value(const char * key) { if (pseudo_env[i].key && !pseudo_env[i].value && getenv(pseudo_env[i].key)) _libpseudo_init(); - if (pseudo_env[i].value) value = strdup(pseudo_env[i].value); - else value = NULL; + if (pseudo_env[i].value) + value = strdup(pseudo_env[i].value); + else + value = NULL; if (!pseudo_env[i].key) pseudo_diag("Unknown variable %s.\n", key); @@ -113,17 +125,20 @@ char * pseudo_get_value(const char * key) { } /* We make a copy, so the original values should be freed. */ -int pseudo_set_value(const char * key, const char * value) { +int +pseudo_set_value(const char *key, const char *value) { int rc = 0; size_t i = 0; - if (_in_init == -1) _libpseudo_init(); + if (_in_init == -1) + _libpseudo_init(); for (i = 0; pseudo_env[i].key && memcmp(pseudo_env[i].key, key, pseudo_env[i].key_len + 1); i++) ; if (pseudo_env[i].key) { - if (pseudo_env[i].value) free(pseudo_env[i].value); + if (pseudo_env[i].value) + free(pseudo_env[i].value); if (value) { char *new = strdup(value); if (new) @@ -141,15 +156,15 @@ int pseudo_set_value(const char * key, const char * value) { return rc; } -static void _libpseudo_init(void) { +static void +_libpseudo_init(void) { size_t i = 0; _in_init = 1; for (i = 0; pseudo_env[i].key; i++) { - if (pseudo_env[i].key) - if (getenv(pseudo_env[i].key)) - pseudo_set_value(pseudo_env[i].key, getenv(pseudo_env[i].key)); + if (getenv(pseudo_env[i].key)) + pseudo_set_value(pseudo_env[i].key, getenv(pseudo_env[i].key)); } _in_init = 0; |