diff options
Diffstat (limited to 'src/bin/psql/variables.c')
-rw-r--r-- | src/bin/psql/variables.c | 168 |
1 files changed, 93 insertions, 75 deletions
diff --git a/src/bin/psql/variables.c b/src/bin/psql/variables.c index ea824cff69..132ecc9322 100644 --- a/src/bin/psql/variables.c +++ b/src/bin/psql/variables.c @@ -6,127 +6,145 @@ #include <assert.h> -VariableSpace CreateVariableSpace(void) +VariableSpace +CreateVariableSpace(void) { - struct _variable *ptr; - - ptr = calloc(1, sizeof *ptr); - if (!ptr) return NULL; + struct _variable *ptr; + + ptr = calloc(1, sizeof *ptr); + if (!ptr) + return NULL; + + ptr->name = strdup("@"); + ptr->value = strdup(""); + if (!ptr->name || !ptr->value) + { + free(ptr->name); + free(ptr->value); + free(ptr); + return NULL; + } - ptr->name = strdup("@"); - ptr->value = strdup(""); - if (!ptr->name || !ptr->value) { - free(ptr->name); - free(ptr->value); - free(ptr); - return NULL; - } - - return ptr; + return ptr; } -const char * GetVariable(VariableSpace space, const char * name) +const char * +GetVariable(VariableSpace space, const char *name) { - struct _variable *current; + struct _variable *current; - if (!space) - return NULL; + if (!space) + return NULL; - if (strspn(name, VALID_VARIABLE_CHARS) != strlen(name)) return NULL; + if (strspn(name, VALID_VARIABLE_CHARS) != strlen(name)) + return NULL; - for (current = space; current; current = current->next) { + for (current = space; current; current = current->next) + { #ifdef USE_ASSERT_CHECKING - assert(current->name); - assert(current->value); + assert(current->name); + assert(current->value); #endif - if (strcmp(current->name, name)==0) - return current->value; - } + if (strcmp(current->name, name) == 0) + return current->value; + } - return NULL; + return NULL; } -bool GetVariableBool(VariableSpace space, const char * name) +bool +GetVariableBool(VariableSpace space, const char *name) { - return GetVariable(space, name)!=NULL ? true : false; + return GetVariable(space, name) != NULL ? true : false; } -bool SetVariable(VariableSpace space, const char * name, const char * value) +bool +SetVariable(VariableSpace space, const char *name, const char *value) { - struct _variable *current, *previous; + struct _variable *current, + *previous; - if (!space) - return false; + if (!space) + return false; - if (!value) - return DeleteVariable(space, name); + if (!value) + return DeleteVariable(space, name); - if (strspn(name, VALID_VARIABLE_CHARS) != strlen(name)) return false; + if (strspn(name, VALID_VARIABLE_CHARS) != strlen(name)) + return false; - for (current = space; current; previous = current, current = current->next) { + for (current = space; current; previous = current, current = current->next) + { #ifdef USE_ASSERT_CHECKING - assert(current->name); - assert(current->value); + assert(current->name); + assert(current->value); #endif - if (strcmp(current->name, name)==0) { - free (current->value); - current->value = strdup(value); - return current->value ? true : false; + if (strcmp(current->name, name) == 0) + { + free(current->value); + current->value = strdup(value); + return current->value ? true : false; + } } - } - - previous->next = calloc(1, sizeof *(previous->next)); - if (!previous->next) - return false; - previous->next->name = strdup(name); - if (!previous->next->name) - return false; - previous->next->value = strdup(value); - return previous->next->value ? true : false; + + previous->next = calloc(1, sizeof *(previous->next)); + if (!previous->next) + return false; + previous->next->name = strdup(name); + if (!previous->next->name) + return false; + previous->next->value = strdup(value); + return previous->next->value ? true : false; } -bool DeleteVariable(VariableSpace space, const char * name) +bool +DeleteVariable(VariableSpace space, const char *name) { - struct _variable *current, *previous; + struct _variable *current, + *previous; - if (!space) - return false; + if (!space) + return false; - if (strspn(name, VALID_VARIABLE_CHARS) != strlen(name)) return false; + if (strspn(name, VALID_VARIABLE_CHARS) != strlen(name)) + return false; - for (current = space, previous = NULL; current; previous = current, current = current->next) { + for (current = space, previous = NULL; current; previous = current, current = current->next) + { #ifdef USE_ASSERT_CHECKING - assert(current->name); - assert(current->value); + assert(current->name); + assert(current->value); #endif - if (strcmp(current->name, name)==0) { - free (current->name); - free (current->value); - if (previous) - previous->next = current->next; - free(current); - return true; + if (strcmp(current->name, name) == 0) + { + free(current->name); + free(current->value); + if (previous) + previous->next = current->next; + free(current); + return true; + } } - } - return true; + return true; } -void DestroyVariableSpace(VariableSpace space) +void +DestroyVariableSpace(VariableSpace space) { - if (!space) - return; + if (!space) + return; - DestroyVariableSpace(space->next); - free(space); + DestroyVariableSpace(space->next); + free(space); } |