158 lines
3.8 KiB
C
158 lines
3.8 KiB
C
#include "exe_list.h"
|
|
#include "global.h"
|
|
#include "fcron.h"
|
|
|
|
/* required by log.c */
|
|
char debug_opt = 1;
|
|
char *prog_name = NULL;
|
|
char foreground = 1;
|
|
pid_t daemon_pid = 0;
|
|
uid_t rootuid = 0;
|
|
|
|
void
|
|
print_cur(exe_t * e)
|
|
{
|
|
printf("Current entry's shell command: %s\n",
|
|
e ? e->e_line->cl_shell : "NULL");
|
|
}
|
|
|
|
void
|
|
print_list(exe_list_t * list)
|
|
{
|
|
exe_t *e = NULL;
|
|
printf("Current list:\n");
|
|
for (e = exe_list_first(list); e != NULL; e = exe_list_next(list))
|
|
printf(" Shell command: %s\n", e ? e->e_line->cl_shell : "NULL");
|
|
}
|
|
|
|
int
|
|
main(int argc, char *argv[])
|
|
{
|
|
exe_list_t *list = NULL;
|
|
exe_t *e = NULL;
|
|
cl_t l1, l2, l3, l4, l5, l6, l7;
|
|
|
|
l1.cl_shell = "line 1";
|
|
l2.cl_shell = "line 2";
|
|
l3.cl_shell = "line 3";
|
|
l4.cl_shell = "line 4";
|
|
l5.cl_shell = "line 5";
|
|
l6.cl_shell = "line 6";
|
|
l7.cl_shell = "line 7";
|
|
|
|
list = exe_list_init();
|
|
|
|
/* trigger a resize of the list during an iteration */
|
|
printf("Adding l1...\n");
|
|
exe_list_add_line(list, &l1);
|
|
printf("Adding l2...\n");
|
|
exe_list_add_line(list, &l2);
|
|
printf("Adding l3...\n");
|
|
exe_list_add_line(list, &l3);
|
|
e = exe_list_first(list);
|
|
print_cur(e);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
printf("Adding l4...\n");
|
|
exe_list_add_line(list, &l4);
|
|
printf("Adding l5...\n");
|
|
exe_list_add_line(list, &l5);
|
|
printf("Adding l6...\n");
|
|
exe_list_add_line(list, &l6);
|
|
printf("Adding l7...\n");
|
|
exe_list_add_line(list, &l7);
|
|
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
|
|
/* "standard" iteration: */
|
|
print_list(list);
|
|
|
|
/* remove item at the beginning and middle of the list + add an item which is already in there */
|
|
printf("removing l1, l3, adding l2\n");
|
|
e = exe_list_first(list);
|
|
print_cur(e);
|
|
printf("Removing l1...\n");
|
|
exe_list_remove_cur(list);
|
|
e = exe_list_next(list);
|
|
print_cur(e); /* this one will be the item replacing l1 */
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
printf("Removing l3...\n");
|
|
exe_list_remove_cur(list);
|
|
exe_list_end_iteration(list);
|
|
printf("Adding l2...\n");
|
|
exe_list_add_line(list, &l2); /* we suppose the list array won't be reallocated() */
|
|
|
|
print_list(list);
|
|
|
|
/* remove an item at the end of the list: */
|
|
printf("removing l5, l2\n");
|
|
e = exe_list_first(list);
|
|
print_cur(e);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
printf("Removing l5...\n");
|
|
exe_list_remove_cur(list);
|
|
exe_list_end_iteration(list);
|
|
e = exe_list_first(list);
|
|
print_cur(e);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
printf("Removing l2...\n");
|
|
exe_list_remove_cur(list);
|
|
exe_list_end_iteration(list);
|
|
|
|
print_list(list);
|
|
|
|
printf("Adding l1...\n");
|
|
exe_list_add_line(list, &l1);
|
|
|
|
print_list(list);
|
|
|
|
printf("empty the list\n");
|
|
e = exe_list_first(list);
|
|
print_cur(e);
|
|
exe_list_remove_cur(list);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
exe_list_remove_cur(list);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
exe_list_remove_cur(list);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
exe_list_remove_cur(list);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
exe_list_remove_cur(list);
|
|
e = exe_list_next(list);
|
|
print_cur(e);
|
|
|
|
print_list(list);
|
|
|
|
printf("Destroying the list...\n");
|
|
list = exe_list_destroy(list);
|
|
|
|
return 0;
|
|
|
|
}
|