diff options
Diffstat (limited to 'udev_utils.c')
-rw-r--r-- | udev_utils.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/udev_utils.c b/udev_utils.c index e892012132..6d646b0ee6 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; |