diff options
Diffstat (limited to 'src/bin/psql/variables.c')
-rw-r--r-- | src/bin/psql/variables.c | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/src/bin/psql/variables.c b/src/bin/psql/variables.c deleted file mode 100644 index b65ce38bd68..00000000000 --- a/src/bin/psql/variables.c +++ /dev/null @@ -1,163 +0,0 @@ -/* - * psql - the PostgreSQL interactive terminal - * - * Copyright 2000 by PostgreSQL Global Development Group - * - * $Header: /cvsroot/pgsql/src/bin/psql/variables.c,v 1.9 2001/02/10 02:31:28 tgl Exp $ - */ -#include "postgres_fe.h" -#include "variables.h" - -#include <assert.h> - - -VariableSpace -CreateVariableSpace(void) -{ - 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; - } - - return ptr; -} - - - -const char * -GetVariable(VariableSpace space, const char *name) -{ - struct _variable *current; - - if (!space) - return NULL; - - if (strspn(name, VALID_VARIABLE_CHARS) != strlen(name)) - return NULL; - - for (current = space; current; current = current->next) - { -#ifdef USE_ASSERT_CHECKING - assert(current->name); - assert(current->value); -#endif - if (strcmp(current->name, name) == 0) - return current->value; - } - - return NULL; -} - - - -bool -GetVariableBool(VariableSpace space, const char *name) -{ - return GetVariable(space, name) != NULL ? true : false; -} - - - -bool -SetVariable(VariableSpace space, const char *name, const char *value) -{ - struct _variable *current, - *previous; - - if (!space) - return false; - - if (!value) - return DeleteVariable(space, name); - - if (strspn(name, VALID_VARIABLE_CHARS) != strlen(name)) - return false; - - for (current = space, previous = NULL; current; previous = current, current = current->next) - { -#ifdef USE_ASSERT_CHECKING - 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; - } - } - - 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 -SetVariableBool(VariableSpace space, const char *name) -{ - return SetVariable(space, name, ""); -} - - - -bool -DeleteVariable(VariableSpace space, const char *name) -{ - struct _variable *current, - *previous; - - if (!space) - return false; - - if (strspn(name, VALID_VARIABLE_CHARS) != strlen(name)) - return false; - - for (current = space, previous = NULL; current; previous = current, current = current->next) - { -#ifdef USE_ASSERT_CHECKING - 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; - } - } - - return true; -} - - - -void -DestroyVariableSpace(VariableSpace space) -{ - if (!space) - return; - - DestroyVariableSpace(space->next); - free(space); -} |