return NULL;
}
+/* Warning: this function only works if you actually store \0-terminated strings as values!! */
+char const * key_value_storage_find_first_stringvalue(key_value_storage_t* stor, char const * value)
+{
+ if(!stor || !value)
+ return NULL;
+
+ string_list_element_t* k = stor->keys_.first_;
+ string_list_element_t* v = stor->values_.first_;
+ while(v && k) {
+ if(!strcmp(v->string_, value))
+ return k->string_;
+
+ k = k->next_;
+ v = v->next_;
+ }
+
+ return NULL;
+}
+
+int key_value_storage_length(key_value_storage_t* stor)
+{
+ if(!stor)
+ return 0;
+
+ int length = 0;
+ string_list_element_t* k = stor->keys_.first_;
+ while(k) {
+ length++;
+ k = k->next_;
+ }
+
+ return length;
+}
+
void key_value_storage_print(key_value_storage_t* stor, const char* head, const char* sep, const char* tail)
{
if(!stor)