9 void dir_list_add(dir_list_t **dir_list, DIR *dir)
13 new_dir = my_malloc( sizeof(dir_list_t) );
15 new_dir->next = *dir_list;
21 void dir_list_remove(dir_list_t **dir_list, DIR *dir)
23 dir_list_t *current_dir = *dir_list;
26 if(current_dir->dir == dir) {
28 current_dir->prev->next = current_dir->next;
30 *dir_list = current_dir->next;
32 current_dir->next->prev = current_dir->prev;
38 current_dir = current_dir->next;
42 void dir_list_close_all(dir_list_t **dir_list)
47 for(retries = 0; retries < CLOSE_MAX_RETRIES &&
48 closedir((*dir_list)->dir) == -1 &&
51 dir_list_remove(dir_list, (*dir_list)->dir);
55 bool dir_list_empty(dir_list_t *dir_list)
57 return (dir_list == NULL) ? true : false;