current version
[opsoft_test.git] / silentbob / gclib / src / elist.cxx
blob3c6853a7ddc2fcbe9f482df9756203d953637ad0
1 /*
2 * (c) Oleg Puchinin 2006
3 * graycardinalster@gmail.com
5 */
7 #include <gclib/gclib.h>
9 EList::EList ()
11 pos = NULL;
14 EList::~EList ()
18 char * EList::get ()
20 if (! pos)
21 return NULL;
22 else
23 return pos->data;
26 char * EList::first ()
28 pos = get_head ();
29 return get ();
32 char * EList::last ()
34 pos = get_tail ();
35 return get ();
38 char * EList::next ()
40 if (! pos->next)
41 pos = NULL;
42 else
43 pos = pos->next;
44 return get ();
47 char * EList::prev ()
49 if (! pos->prev)
50 pos = NULL;
51 else
52 pos = pos->prev;
53 return get ();
56 char * EList::rm ()
58 __dlist_entry_t *ptr;
59 char * Ret;
61 if (! pos)
62 return NULL;
64 ptr = pos;
65 Ret = ptr->data;
67 if (ptr->next)
68 pos = ptr->next;
69 else if (ptr->prev)
70 pos = ptr->prev;
71 else
72 pos = NULL;
74 DList::rm (ptr);
75 return Ret;
78 EList & EList::operator << (char * S)
80 add_tail (S);
81 return *this;
84 bool EList::eol ()
86 return pos ? false : true;