50 (*getLinks)(atom)->Next = header->
First;
51 (*getLinks)(atom)->Prev =
NULL;
56 (*getLinks)(header->
First)->Prev = atom;
78 (*getLinks)(header->
Last)->Next = atom;
85 (*getLinks)(atom)->Prev = header->
Last;
86 (*getLinks)(atom)->Next =
NULL;
107 (*getLinks)(atom)->Next = mark;
109 if (mark != header->
First)
111 (*getLinks)(atom)->Prev = (*getLinks)(mark)->Prev;
112 (*getLinks)((*getLinks)(mark)->Prev)->Next = atom;
116 (*getLinks)(atom)->Prev =
NULL;
117 header->
First = atom;
120 (*getLinks)(mark)->Prev = atom;
139 if (header->Lock > 1)
140 OS_PrintMessage (
"List_InsertAfter: Warning insert after on recursive List_Enum call !!\n");
145 (*getLinks)(atom)->Prev = mark;
147 if (mark != header->
Last)
149 (*getLinks)(atom)->Next = (*getLinks)(mark)->Next;
150 (*getLinks)((*getLinks)(mark)->Next)->Prev = atom;
154 (*getLinks)(atom)->Next =
NULL;
158 (*getLinks)(mark)->Next = atom;
178 if ((*getLinks)(first)->Next != second)
181 OS_PrintMessage (
"List_Swap: WARNING wrong input data, swap not done..\n");
188 if (header->
First == first)
189 header->
First = second;
191 (*getLinks)((*getLinks)(first)->Prev)->Next = second;
193 if (header->
Last == second)
194 header->
Last = first;
196 (*getLinks)((*getLinks)(second)->Next)->Prev = first;
200 (*getLinks)(second)->Prev = (*getLinks)(first)->Prev;
201 (*getLinks)(first)->Next = (*getLinks)(second)->Next;
202 (*getLinks)(first)->Prev = second;
203 (*getLinks)(second)->Next = first;
217 save = (*header->
GetLinks)(atom)->Next;
219 (*header->
GetLinks)(atom)->Prev = save;
245 next = (*getLinks)(cur)->Next;
271 if (header->Lock > 1)
272 OS_PrintMessage (
"List_Remove: Warning remove on recursive List_Enum call !!\n");
277 if ((*getLinks)(atom)->Prev !=
NULL)
279 (*getLinks)((*getLinks)(atom)->Prev)->Next =
280 (*getLinks)(atom)->Next;
283 header->
First = (*getLinks)(atom)->Next;
287 if ((*getLinks)(atom)->Next !=
NULL)
289 (*getLinks)((*getLinks)(atom)->Next)->Prev =
290 (*getLinks)(atom)->Prev;
293 header->
Last = (*getLinks)(atom)->Prev;
297 (*getLinks)(atom)->Prev =
NULL;
298 (*getLinks)(atom)->Next =
NULL;
315 OS_PrintMessage (
"List_Concat: ERROR concat different lists\n");
331 (*getLinks)(header1->
Last)->Next = header2->
First;
332 (*getLinks)(header2->
First)->Prev = header1->
Last;
350 int notInterrupted =
TRUE;
357 while (cur !=
NULL && notInterrupted)
360 notInterrupted = (*proc)(cur, closure);
368 return (notInterrupted);
404 int notInterrupted =
TRUE;
411 while (cur !=
NULL && notInterrupted)
414 notInterrupted = (*proc)(cur, closure);
422 return (notInterrupted);
448 long *nb = (
long *)nbR;
500 (*getLinks)(atom)->Next =
NULL;
501 (*getLinks)(newHeader->
First)->Prev =
NULL;
long List_EnumBackFrom(RefListHeader header, Ref atom, RefListEnumProc proc, Ref closure)
List_EnumBackFrom.
void List_Concat(RefListHeader header1, RefListHeader header2)
List_Concat.
void List_Swap(RefListHeader header, Ref first, Ref second)
List_Swap.
long List_IsUnlink(RefListLinks links)
List_IsUnlink.
void List_InsertAfter(RefListHeader header, Ref atom, Ref mark)
List_InsertAfter.
#define List_Prev(header, RefAtom)
void List_InsertBefore(RefListHeader header, Ref atom, Ref mark)
List_InsertBefore.
void List_Cut(RefListHeader header, Ref atom, RefListHeader newHeader)
List_Cut.
static long List_SwapLinks(RefListHeader header, Ref atom)
List_SwapLinks.
void List_Reverse(RefListHeader header)
List_Reverse.
RefListLinks(* RefListGetLinksProc)()
void List_InsertAhead(RefListHeader header, Ref atom)
List_InsertAhead.
#define List_Next(header, RefAtom)
#define TRUE
Standard boolean.
long List_Card(RefListHeader header)
List_Card.
#define List_Last(header)
void List_SetLinkProc(RefListHeader header, RefListGetLinksProc getLinks)
List_SetLinkProc.
long List_EnumFrom(RefListHeader header, Ref atom, RefListEnumProc proc, Ref closure)
List_EnumFrom.
void List_Append(RefListHeader header, Ref atom)
void List_Append
static long List_CountAtom(Ref p, Ref nbR)
List_CountAtom.
long List_EnumBack(RefListHeader header, RefListEnumProc proc, Ref closure)
List_EnumBack.
long List_Enum(RefListHeader header, RefListEnumProc proc, Ref closure)
List_Enum.
struct text_buffer * next
void List_Remove(RefListHeader header, Ref atom)
List_Remove.