5 /* required by log.c */
7 char *prog_name = NULL;
15 printf("Current entry's shell command: %s\n",
16 e ? e->e_line->cl_shell : "NULL");
20 print_list(exe_list_t * list)
23 printf("Current list:\n");
24 for (e = exe_list_first(list); e != NULL; e = exe_list_next(list))
25 printf(" Shell command: %s\n", e ? e->e_line->cl_shell : "NULL");
29 main(int argc, char *argv[])
31 exe_list_t *list = NULL;
33 cl_t l1, l2, l3, l4, l5, l6, l7;
35 l1.cl_shell = "line 1";
36 l2.cl_shell = "line 2";
37 l3.cl_shell = "line 3";
38 l4.cl_shell = "line 4";
39 l5.cl_shell = "line 5";
40 l6.cl_shell = "line 6";
41 l7.cl_shell = "line 7";
43 list = exe_list_init();
45 /* trigger a resize of the list during an iteration */
46 printf("Adding l1...\n");
47 exe_list_add_line(list, &l1);
48 printf("Adding l2...\n");
49 exe_list_add_line(list, &l2);
50 printf("Adding l3...\n");
51 exe_list_add_line(list, &l3);
52 e = exe_list_first(list);
54 e = exe_list_next(list);
56 printf("Adding l4...\n");
57 exe_list_add_line(list, &l4);
58 printf("Adding l5...\n");
59 exe_list_add_line(list, &l5);
60 printf("Adding l6...\n");
61 exe_list_add_line(list, &l6);
62 printf("Adding l7...\n");
63 exe_list_add_line(list, &l7);
65 e = exe_list_next(list);
67 e = exe_list_next(list);
69 e = exe_list_next(list);
71 e = exe_list_next(list);
73 e = exe_list_next(list);
75 e = exe_list_next(list);
78 /* "standard" iteration: */
81 /* remove item at the beginning and middle of the list + add an item which is already in there */
82 printf("removing l1, l3, adding l2\n");
83 e = exe_list_first(list);
85 printf("Removing l1...\n");
86 exe_list_remove_cur(list);
87 e = exe_list_next(list);
88 print_cur(e); /* this one will be the item replacing l1 */
89 e = exe_list_next(list);
91 e = exe_list_next(list);
93 printf("Removing l3...\n");
94 exe_list_remove_cur(list);
95 exe_list_end_iteration(list);
96 printf("Adding l2...\n");
97 exe_list_add_line(list, &l2); /* we suppose the list array won't be reallocated() */
101 /* remove an item at the end of the list: */
102 printf("removing l5, l2\n");
103 e = exe_list_first(list);
105 e = exe_list_next(list);
107 e = exe_list_next(list);
109 e = exe_list_next(list);
111 e = exe_list_next(list);
113 printf("Removing l5...\n");
114 exe_list_remove_cur(list);
115 exe_list_end_iteration(list);
116 e = exe_list_first(list);
118 e = exe_list_next(list);
120 printf("Removing l2...\n");
121 exe_list_remove_cur(list);
122 exe_list_end_iteration(list);
126 printf("Adding l1...\n");
127 exe_list_add_line(list, &l1);
131 printf("empty the list\n");
132 e = exe_list_first(list);
134 exe_list_remove_cur(list);
135 e = exe_list_next(list);
137 exe_list_remove_cur(list);
138 e = exe_list_next(list);
140 exe_list_remove_cur(list);
141 e = exe_list_next(list);
143 exe_list_remove_cur(list);
144 e = exe_list_next(list);
146 exe_list_remove_cur(list);
147 e = exe_list_next(list);
152 printf("Destroying the list...\n");
153 list = exe_list_destroy(list);