X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev_utils.c;h=6d646b0ee6f1f51f4c0f0969d6da2f2b4b6dc5e5;hp=e892012132eff8678c5a7fdd139a5a6356fc28ab;hb=db6e59df561dbedb89a27d7362d6564847258bfe;hpb=07bc6002cac04de7dc80fae0287695f91b2c3f23 diff --git a/udev_utils.c b/udev_utils.c index e89201213..6d646b0ee 100644 --- a/udev_utils.c +++ b/udev_utils.c @@ -110,6 +110,26 @@ char *name_list_key_add(struct list_head *name_list, const char *key, const char return new_name->name; } +int name_list_key_remove(struct list_head *name_list, const char *key) +{ + struct name_entry *name_loop; + struct name_entry *temp_loop; + size_t keylen = strlen(key); + int retval = 0; + + list_for_each_entry_safe(name_loop, temp_loop, name_list, node) { + if (strncmp(name_loop->name, key, keylen) != 0) + continue; + if (name_loop->name[keylen] != '=') + continue; + list_del(&name_loop->node); + free(name_loop); + retval = 1; + break; + } + return retval; +} + void name_list_cleanup(struct list_head *name_list) { struct name_entry *name_loop;