#include #include #include #include "memory.h" #include "keyval.h" /* Create a new key/value pair. */ keyval *keyval_new(char *key, void *value) { keyval *out = malloc(sizeof(keyval)); if (out == NULL) { fprintf(stderr, "Out of memory.\n"); abort(); } *out = (keyval){.key = key, .value = value}; return out; } /* Copy a key/value pair. The new pair has pointers to the values in the old pair, not copies of their data. */ keyval *keyval_copy(const keyval *in) { keyval *out = malloc(sizeof(keyval)); if (out == NULL) { fprintf(stderr, "Out of memory.\n"); abort(); } *out = *in; return out; } /* Free a existing key/value pair. */ void keyval_free(keyval *in) { safeFree(in); } /* Check if key of key/value pair matches given key. */ int keyval_matches(const keyval *in, const char *key) { return !strcmp(in->key, key); }