Ensure(ll_traverse, adds_new_nodes_in_front_of_the_ll_properly) { ll *linkedlist = new_ll(LL_INT); int i; for(i = 0; i < NUM_OF_NODES; i++) ll_addfront(linkedlist, &i, NULL); int counter = 0; ll_traverse(linkedlist, increment, &counter); assert_that(counter, is_equal_to(linkedlist->len)); dispose_ll(&linkedlist); }
int builtins_env(int argc, char **argv, t_config *conf, int *ret) { char *cmdline; t_config c; if (argc == 1) { ll_traverse(&(conf->env), (void (*)(void *))print_env_entry); *ret = 0; return (MYSH_SIGNAL_NOPE); } else if (!my_strcmp(argv[1], "-i")) { cmdline = build_str_from_wt(argv, 2, argc - 1); my_memcpy(&c, conf, sizeof(t_config)); my_exec(&c, cmdline, ret); x_free(cmdline); return (MYSH_SIGNAL_NOPE); } my_printf_err("'%s': unknown option\n", argv[1]); *ret = -1; return (MYSH_SIGNAL_NOPE); }
int main(int argc, char **argv) { int c = 0; llist_t* list = 0; node_t* aux = 0; list = ll_create(); ll_initialize(list, free, compare_int_data); /* 0...9 */ for(; c < 10; c++) ll_add_last(list, create_node( create_int_data(c) ) ); /* 10 0...9 */ ll_add_first(list, create_node( create_int_data(c) ) ); /* 11 10 0...9 */ ll_add_first(list, create_node( create_int_data(++c) ) ); /* 11 10 12 0...9 */ ll_add_before(list, list->first->next->next, create_node( create_int_data(++c) ) ); /* 11 10 12 0...8 13 9 */ ll_add_after(list, list->last->prev, create_node( create_int_data(++c) )); /* 11 10 12 0...8 13 14 9 */ ll_add_after(list, list->last->prev, create_node( create_int_data(++c) )); /* 11 12 0...8 13 14 9 */ ll_remove(list, list->first->next, DESTROYNODE ); /* 11 12 0...8 13 14 */ ll_remove(list, list->last, DESTROYNODE); /* 12 0...8 13 14 */ ll_remove(list, list->first, DESTROYNODE); /* to test "NOTDESTROY" option*/ aux = list->last->prev; /* 12 0...8 14 */ ll_remove(list, list->last->prev, NOTDESTROY); printf("\n"); /* Forward: 12 0...8 14 */ ll_traverse(list, print_int_data, FORWARDTRAVERSE); printf("\n"); /* Backward: 14 8...0 12 */ ll_traverse(list, print_int_data, BACKWARDTRAVERSE); printf("\n\n"); /* Destroy node "13"*/ free_node(aux, list->free_data); printf("\n"); /* Deleted node, is not found*/ int a = 10; aux = ll_search_node(list, &a); if(aux != NULL) printf("NODE: %p DATA: %d\n", aux ,*(int*)DATA(aux)); a = 4; aux = ll_search_node(list, &a); if(aux != NULL) printf("NODE: %p DATA: %d\n", aux ,*(int*)DATA(aux)); ll_free(list); list = 0; return EXIT_SUCCESS; }