]> Pileus Git - wmpus/blob - util.c
Improve window management
[wmpus] / util.c
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 #include "util.h"
5
6 list_t *list_insert(list_t *next, void *data)
7 {
8         list_t *node = new0(list_t);
9         node->data = data;
10         node->next = next;
11         node->prev = next ? next->prev : NULL;
12         if (node->next) node->next->prev = node;
13         if (node->prev) node->next->next = node;
14         return node;
15 }
16
17 list_t *list_remove(list_t *head, list_t *node)
18 {
19         list_t *next = node->next;
20         list_t *prev = node->prev;
21         if (next) next->prev = prev;
22         if (prev) prev->next = next;
23         free(node);
24         return head == node ? next : head;
25 }
26
27 int list_length(list_t *node)
28 {
29         int len = 0;
30         for (; node; node = node->next)
31                 len++;
32         return len;
33 }
34
35 void list_move(list_t *node, int offset)
36 {
37 }