void set(const char *name, const char *value) { node *n = tree.search(name); if (!n) { // This variable does not currently exist. Create a node for it. n = new node; n->name = new char [strlen(name) + 2]; strcpy(n->name + 1, name); tree.insert(n); } else // Delete current value. delete [] n->value; if (value) { if (strlen(value) == 0) value = 0; } if (value) { n->value = new char [strlen(value) + 1]; strcpy(n->value, value); } else { // Variable is being set to empty string, which deletes it. tree.remove(name); delete [] n->name; delete n; } }
const char *get(const char *name) { node *n = tree.search(name); return(n ? n->value : ""); }