libudev: enumerate - fix move_later logic

The move_later_prefix variable was reset to zero on each
loop iteration, and thus the move_later entry (if any) was
not added right after changing to another syspath prefix,
but rather after exiting the enumeration loop.
This commit is contained in:
Thomas de Grenier de Latour 2009-12-30 16:21:59 +01:00 committed by Kay Sievers
parent 1f819a1776
commit 9bdcffd738

View file

@ -251,6 +251,7 @@ struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enumerate *ude
unsigned int i;
unsigned int max;
struct syspath *prev = NULL, *move_later = NULL;
size_t move_later_prefix = 0;
udev_list_cleanup_entries(udev_enumerate->udev, &udev_enumerate->devices_list);
qsort(udev_enumerate->devices, udev_enumerate->devices_cur, sizeof(struct syspath), syspath_cmp);
@ -258,7 +259,6 @@ struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enumerate *ude
max = udev_enumerate->devices_cur;
for (i = 0; i < max; i++) {
struct syspath *entry = &udev_enumerate->devices[i];
size_t move_later_prefix = 0;
/* skip duplicated entries */
if (prev != NULL &&