chiark / gitweb /
libudev: handle ! in sysname, add sysnum, return allocated list_entry on add
[elogind.git] / udev / lib / libudev-list.c
index 4849d469439682bbab63ad1d099375bcd2867037..25e69cb3a3a621388d2f3ac5c2345a59f1768bbe 100644 (file)
@@ -33,6 +33,7 @@ struct udev_list_entry {
        struct udev_list_node *list;
        char *name;
        char *value;
+       int flag;
 };
 
 /* list head point to itself if empty */
@@ -196,9 +197,12 @@ struct udev_list_entry *udev_list_entry_get_by_name(struct udev_list_entry *list
 {
        struct udev_list_entry *entry;
 
-       udev_list_entry_foreach(entry, list_entry)
-               if (strcmp(udev_list_entry_get_name(entry), name) == 0)
+       udev_list_entry_foreach(entry, list_entry) {
+               if (strcmp(udev_list_entry_get_name(entry), name) == 0) {
+                       dbg(entry->udev, "found '%s=%s'\n", entry->name, entry->value);
                        return entry;
+               }
+       }
        return NULL;
 }
 
@@ -215,3 +219,17 @@ const char *udev_list_entry_get_value(struct udev_list_entry *list_entry)
                return NULL;
        return list_entry->value;
 }
+
+extern int udev_list_entry_get_flag(struct udev_list_entry *list_entry)
+{
+       if (list_entry == NULL)
+               return -EINVAL;
+       return list_entry->flag;
+}
+
+extern void udev_list_entry_set_flag(struct udev_list_entry *list_entry, int flag)
+{
+       if (list_entry == NULL)
+               return;
+       list_entry->flag = flag;
+}