diff --git a/src/wayland-util.c b/src/wayland-util.c index 0dae01bd..9eb3d591 100644 --- a/src/wayland-util.c +++ b/src/wayland-util.c @@ -70,6 +70,15 @@ wl_list_empty(struct wl_list *list) return list->next == list; } +WL_EXPORT void +wl_list_insert_list(struct wl_list *list, struct wl_list *other) +{ + other->next->prev = list; + other->prev->next = list->next; + list->next->prev = other->prev; + list->next = other->next; +} + WL_EXPORT void wl_array_init(struct wl_array *array) { diff --git a/src/wayland-util.h b/src/wayland-util.h index 76e0f1da..608ea033 100644 --- a/src/wayland-util.h +++ b/src/wayland-util.h @@ -115,6 +115,7 @@ void wl_list_insert(struct wl_list *list, struct wl_list *elm); void wl_list_remove(struct wl_list *elm); int wl_list_length(struct wl_list *list); int wl_list_empty(struct wl_list *list); +void wl_list_insert_list(struct wl_list *list, struct wl_list *other); #define __container_of(ptr, sample, member) \ (void *)((char *)(ptr) - \