Go to the source code of this file.
| Classes | |
| struct | list | 
| Functions | |
| list * | mklist (void) | 
| void | linsert (list *l, void *data, int len, int key) | 
| void * | lfind (list *l, int key, int *len) | 
| void * | lremove (list *l, int key, int *len) | 
| 
 | ||||||||||||||||
| 
 Definition at line 36 of file LList.c. References list::data, list::key, list::len, and list::next. 00037 {
00038   /* skip first node (dummy) */
00039   l=l->next;
00040 
00041   while ((l->key!=key) && (l->next!=NULL))
00042     l=l->next;
00043   if (l->key!=key)
00044     return(NULL);
00045   *len=l->len;
00046   return l->data;
00047 }
 | 
| 
 | ||||||||||||||||||||
| 
 Definition at line 16 of file LList.c. References list::data, list::key, list::len, and list::next. 00017 {
00018   list *newnode;
00019 
00020   printf("linsert() - inserting into list at location 0x%x...\n",l);
00021   while (l->next != NULL)
00022     l=l->next;
00023 
00024   newnode = (list*) malloc(sizeof(list));
00025   if (newnode==NULL) {
00026     fprintf(stderr, "insert to a list failed, Ack!\n");
00027     return;
00028   }
00029   newnode->data=data;
00030   newnode->len=len;
00031   newnode->key=key;
00032   newnode->next=NULL;
00033   l->next=newnode;
00034 }
 | 
| 
 | ||||||||||||||||
| 
 Definition at line 49 of file LList.c. References list::data, data, list::key, list::len, and list::next. 00050 {
00051   void *data;
00052   list *it;
00053   list *nxt;
00054 
00055   /* save pointer to start of list */
00056   it=l;
00057 
00058   if (it->next==NULL)
00059     return NULL;
00060 
00061   /* skip first node (dummy) */
00062   it=it->next;
00063 
00064   /* find match */
00065   while ((it->key!=key) && (it->next!=NULL)) 
00066     it=it->next;
00067 
00068   /* if we didn't find a match, return NULL */
00069   if (it->key!=key)
00070     return(NULL);
00071 
00072   /* Save the stuff we're looking for */
00073   *len=it->len;
00074   data=it->data;
00075 
00076   /* Now try to remove the node */
00077   nxt=it->next;
00078   while (l->next!=it)
00079     l=l->next;
00080   l->next=nxt;
00081   free(it);
00082 
00083   return(data);
00084 }
 | 
| 
 | 
| 
 Definition at line 4 of file LList.c. References list::data, list::key, and list::next. 00005 {
00006   list *l;
00007   l=(list*)malloc(sizeof(list));
00008   if (l==NULL) 
00009     return NULL;
00010   l->data=NULL;
00011   l->key=-1;
00012   l->next=NULL;
00013   return l;
00014 }
 | 
 1.3.9.1
 1.3.9.1