Go to the source code of this file.
|
void | List_SetLinkProc (RefListHeader header, RefListGetLinksProc getLinks) |
|
void | List_InsertAhead (RefListHeader header, Ref atom) |
|
void | List_Append (RefListHeader header, Ref atom) |
|
void | List_InsertBefore (RefListHeader header, Ref atom, Ref mark) |
|
void | List_InsertAfter (RefListHeader header, Ref atom, Ref mark) |
|
void | List_Swap (RefListHeader header, Ref first, Ref second) |
|
static long | List_SwapLinks (RefListHeader header, Ref atom) |
|
void | List_Reverse (RefListHeader header) |
|
void | List_Remove (RefListHeader header, Ref atom) |
|
void | List_Concat (RefListHeader header1, RefListHeader header2) |
|
long | List_EnumFrom (RefListHeader header, Ref atom, RefListEnumProc proc, Ref closure) |
|
long | List_Enum (RefListHeader header, RefListEnumProc proc, Ref closure) |
|
long | List_EnumBackFrom (RefListHeader header, Ref atom, RefListEnumProc proc, Ref closure) |
|
long | List_EnumBack (RefListHeader header, RefListEnumProc proc, Ref closure) |
|
static long | List_CountAtom (Ref p, Ref nbR) |
|
long | List_Card (RefListHeader header) |
|
long | List_IsUnlink (RefListLinks links) |
|
void | List_Cut (RefListHeader header, Ref atom, RefListHeader newHeader) |
|
Definition at line 63 of file list.c.
References NULL.
72 (*getLinks)(header->
Last)->Next = atom;
79 (*getLinks)(atom)->Prev = header->
Last;
80 (*getLinks)(atom)->Next =
NULL;
RefListLinks(* RefListGetLinksProc)()
Definition at line 410 of file list.c.
References List_CountAtom(), and List_Enum().
static long List_CountAtom(Ref p, Ref nbR)
long List_Enum(RefListHeader header, RefListEnumProc proc, Ref closure)
static long List_CountAtom |
( |
Ref |
p, |
|
|
Ref |
nbR |
|
) |
| |
|
static |
Definition at line 400 of file list.c.
References TRUE.
404 long *nb = (
long *)nbR;
Definition at line 341 of file list.c.
References List_EnumFrom().
long List_EnumFrom(RefListHeader header, Ref atom, RefListEnumProc proc, Ref closure)
Definition at line 389 of file list.c.
References List_EnumBackFrom().
long List_EnumBackFrom(RefListHeader header, Ref atom, RefListEnumProc proc, Ref closure)
Definition at line 359 of file list.c.
References List_Prev, NULL, and TRUE.
366 int notInterrupted =
TRUE;
373 while (cur !=
NULL && notInterrupted)
376 notInterrupted = (*proc)(cur, closure);
384 return (notInterrupted);
#define List_Prev(header, RefAtom)
Definition at line 311 of file list.c.
References List_Next, NULL, and TRUE.
318 int notInterrupted =
TRUE;
325 while (cur !=
NULL && notInterrupted)
328 notInterrupted = (*proc)(cur, closure);
336 return (notInterrupted);
#define List_Next(header, RefAtom)
Definition at line 119 of file list.c.
References List_InsertAhead(), and NULL.
127 if (header->Lock > 1)
128 OS_PrintMessage (
"List_InsertAfter: Warning insert after on recursive List_Enum call !!\n");
133 (*getLinks)(atom)->Prev = mark;
135 if (mark != header->
Last)
137 (*getLinks)(atom)->Next = (*getLinks)(mark)->Next;
138 (*getLinks)((*getLinks)(mark)->Next)->Prev = atom;
142 (*getLinks)(atom)->Next =
NULL;
146 (*getLinks)(mark)->Next = atom;
RefListLinks(* RefListGetLinksProc)()
void List_InsertAhead(RefListHeader header, Ref atom)
Definition at line 39 of file list.c.
References NULL.
47 (*getLinks)(atom)->Next = header->
First;
48 (*getLinks)(atom)->Prev =
NULL;
53 (*getLinks)(header->
First)->Prev = atom;
RefListLinks(* RefListGetLinksProc)()
Definition at line 89 of file list.c.
References List_Append(), wl_ListLinks::Next, and NULL.
98 (*getLinks)(atom)->Next = mark;
100 if (mark != header->
First)
102 (*getLinks)(atom)->Prev = (*getLinks)(mark)->Prev;
103 (*getLinks)((*getLinks)(mark)->Prev)->Next = atom;
107 (*getLinks)(atom)->Prev =
NULL;
108 header->
First = atom;
111 (*getLinks)(mark)->Prev = atom;
RefListLinks(* RefListGetLinksProc)()
void List_Append(RefListHeader header, Ref atom)
Definition at line 230 of file list.c.
References NULL.
245 if (header->Lock > 1)
246 OS_PrintMessage (
"List_Remove: Warning remove on recursive List_Enum call !!\n");
251 if ((*getLinks)(atom)->Prev !=
NULL)
253 (*getLinks)((*getLinks)(atom)->Prev)->Next =
254 (*getLinks)(atom)->Next;
257 header->
First = (*getLinks)(atom)->Next;
261 if ((*getLinks)(atom)->Next !=
NULL)
263 (*getLinks)((*getLinks)(atom)->Next)->Prev =
264 (*getLinks)(atom)->Prev;
267 header->
Last = (*getLinks)(atom)->Prev;
271 (*getLinks)(atom)->Prev =
NULL;
272 (*getLinks)(atom)->Next =
NULL;
RefListLinks(* RefListGetLinksProc)()
Definition at line 206 of file list.c.
References List_SwapLinks(), and NULL.
222 next = (*getLinks)(cur)->Next;
static long List_SwapLinks(RefListHeader header, Ref atom)
RefListLinks(* RefListGetLinksProc)()
Definition at line 154 of file list.c.
163 if ((*getLinks)(first)->Next != second)
166 OS_PrintMessage (
"List_Swap: WARNING wrong input data, swap not done..\n");
173 if (header->
First == first)
174 header->
First = second;
176 (*getLinks)((*getLinks)(first)->Prev)->Next = second;
178 if (header->
Last == second)
179 header->
Last = first;
181 (*getLinks)((*getLinks)(second)->Next)->Prev = first;
185 (*getLinks)(second)->Prev = (*getLinks)(first)->Prev;
186 (*getLinks)(first)->Next = (*getLinks)(second)->Next;
187 (*getLinks)(first)->Prev = second;
188 (*getLinks)(second)->Next = first;
RefListLinks(* RefListGetLinksProc)()