}
static void cf_prefs(char **argv) {
- struct kvp *k;
+ struct kvp *k, *base;
- if(disorder_prefs(getclient(), argv[0], &k)) exit(EXIT_FAILURE);
- for(; k; k = k->next)
+ if(disorder_prefs(getclient(), argv[0], &base)) exit(EXIT_FAILURE);
+ for(k = base; k; k = k->next)
xprintf("%s = %s\n",
nullcheck(utf82mb(k->name)), nullcheck(utf82mb(k->value)));
+ kvp_free(base);
}
static void cf_search(char **argv) {
return kvp;
}
+void kvp_free(struct kvp *k) {
+ if(k) {
+ kvp_free(k->next);
+ xfree((void *)k->name);
+ xfree((void *)k->value);
+ xfree(k);
+ }
+}
+
/*
Local Variables:
c-basic-offset:2
char *urldecodestring(const char *s, size_t ns);
struct kvp *kvp_make(const char *key, ...);
+void kvp_free(struct kvp *k);
+
#endif /* KVP_H */
/*