dmd.backend.dlist
  Interface to the C linked list type. 
List is a complete package of functions to deal with singly linked lists of pointers or integers. 
 
- Features
 1. Uses mem package. 2. Has loop-back tests. 3. Each item in the list can have multiple predecessors, enabling different lists to 'share' a common tail.  
- Authors:
- 
Walter Bright 
- License:
- 
Boost License 1.0 
- Source
-  backend/dlist.d
- nothrow @nogc list_t list_link(list_t list); 
- 
Create link to existing list, that is, share the list with somebody else.  
- Returns:
- pointer to that list entry.
 
- nothrow @nogc list_t list_next(list_t list); 
- 
- Returns:
- pointer to next entry in list.
 
- nothrow @nogc inout(void)* list_ptr(inout list_t list); 
- 
- Returns:
- ptr from list entry.
 
- nothrow @nogc int list_data(list_t list); 
- 
- Returns:
- integer item from list entry.
 
- nothrow @nogc void list_appenddata(list_t* plist, int d); 
- 
Append integer item to list. 
- nothrow @nogc void list_prependdata(list_t* plist, int d); 
- 
Prepend integer item to list. 
- nothrow @nogc void list_init(); 
- 
Initialize list package.  
- Output
-  list_inited = 1
 
- nothrow @nogc void list_term(); 
- 
Terminate list package.  
- Output
-  list_inited = 0
 
- nothrow @nogc void list_free(list_t* plist, list_free_fp freeptr); 
- 
Free list.  
- Parameters:
- 
- 
| list_t* plist | Pointer to list to free |  - 
| list_free_fp freeptr | Pointer to freeing function for the data pointer (use FPNULL if none) |  
 
 
- Output
-  *plist is null
 
- nothrow @nogc void* list_subtract(list_t* plist, void* ptr); 
- 
Remove ptr from the list pointed to by *plist.  
- Output
-  *plist is updated to be the start of the new list 
 
- Returns:
- null if *plist is null otherwise ptr
 
- nothrow @nogc void* list_pop(list_t* plist); 
- 
Remove first element in list pointed to by *plist.  
- Returns:
- First element, null if *plist is null
 
- nothrow @nogc list_t list_append(list_t* plist, void* ptr); 
- 
Append ptr to *plist.  
- Returns:
- pointer to list item created. null if out of memory
 
- nothrow @nogc list_t list_prepend(list_t* plist, void* ptr); 
- 
Prepend ptr to *plist.  
- Returns:
- pointer to list item created (which is also the start of the list). null if out of memory
 
- nothrow @nogc int list_nitems(list_t list); 
- 
Count up and return number of items in list.  
- Returns:
- # of entries in list
 
- nothrow @nogc list_t list_nth(list_t list, int n); 
- 
- Returns:
- nth list entry in list.
 
- nothrow @nogc list_t list_last(list_t list); 
- 
- Returns:
- last list entry in list.
 
- nothrow @nogc list_t list_prev(list_t start, list_t list); 
- 
- Returns:
- pointer to previous item in list.
 
- nothrow @nogc list_t list_copy(list_t list); 
- 
Copy a list and return it. 
- nothrow @nogc int list_equal(list_t list1, list_t list2); 
- 
Compare two lists.  
- Returns:
- If they have the same ptrs, return 1 else 0.
 
- nothrow @nogc int list_cmp(list_t list1, list_t list2, int function(void*, void*) nothrow @nogc fp); 
- 
Compare two lists using the comparison function fp. The comparison function is the same as used for qsort().  
- Returns:
- If they compare equal, return 0 else value returned by fp.
 
- nothrow @nogc list_t list_inlist(list_t list, void* ptr); 
- 
Search for ptr in list.  
- Returns:
- If found, return list entry that it is, else null.
 
- nothrow @nogc list_t list_cat(list_t* pl1, list_t l2); 
- 
Concatenate two lists (l2 appended to l1).  
- Output
-  *pl1 updated to be start of concatenated list. 
 
- Returns:
- *pl1
 
- nothrow @nogc void list_apply(list_t* plist, void function(void*) nothrow @nogc fp); 
- 
Apply a function fp to each member of a list. 
- nothrow @nogc list_t list_reverse(list_t l); 
- 
Reverse a list in place. 
- nothrow @nogc void list_copyinto(list_t l, void* pa); 
- 
Copy list of pointers into an array of pointers. 
- nothrow @nogc list_t list_insert(list_t* pl, void* ptr, int n); 
- 
Insert item into list at nth position. 
- struct ListRange; 
- 
Range for Lists. 
- nothrow list_t list_build(void* p, ...); 
- 
Build a list out of the null-terminated argument list.  
- Returns:
- generated list