ed

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

types.c (781B)


      1 #include <stdlib.h>
      2 #include <stdio.h>
      3 #include "types.h"
      4 #include "util.h"
      5 
      6 dl_list *
      7 new_dl_list(char *str) {
      8 	dl_list *new = zmalloc(sizeof(dl_list));
      9 	new->str = str;
     10 	return new;
     11 }
     12 
     13 dl_list *
     14 end_dl_list(dl_list *l) {
     15 	if (l->next)
     16 		return end_dl_list(l->next);
     17 	return l;
     18 }
     19 
     20 dl_list *
     21 start_dl_list(dl_list *l) {
     22 	if (l->prev)
     23 		return end_dl_list(l->prev);
     24 	return l;
     25 }
     26 
     27 
     28 
     29 void
     30 append_dl_list(dl_list *l1, dl_list *l2) {
     31 	dl_list *swp = l1->next, *end = end_dl_list(l2);
     32 	l1->next = l2;
     33 	end->next = swp;
     34 }
     35 
     36 dl_list *
     37 insert_dl_list(dl_list *l1, dl_list *l2) {
     38 	dl_list *swp = l1->prev, *end = end_dl_list(l2);
     39 	l1->prev = l2;
     40 	end->next = swp;
     41 	return start_dl_list(l2);
     42 }
     43 
     44 void
     45 free_dl_list(dl_list *l) {
     46 	if (l->next)
     47 		free_dl_list(l->next);
     48 	free(l->str);
     49 	free(l);
     50 }