/* Tuomas Airaksinen tuomas.airaksinen@tuma.stc.cx (http://tuma.stc.cx/) * licenced under GPL */ #include #include #include #include #include #include #define MAXLENGTH 1024 void print_list(GList* iter) { while(iter) { printf("%s", (char*)(iter->data)); iter = g_list_next(iter); } } GList* swap_positions(GList* list, guint first, guint second) { void *pointer1 = g_list_nth_data(list, first); void *pointer2 = g_list_nth_data(list, second); g_list_nth(list, first)->data = pointer2; g_list_nth(list, second)->data = pointer1; return list; } GList* shuffle_list(GList* list) { int i, max = g_list_length(list) - 1; int rand; for(i=0; i < max; i++) { // printf("swapping %d and %d\n", i, rand); do { rand=(rint(drand48() * max)); } while(rand == i); list=swap_positions(list, i, rand); // print_list(list); } return list; } int main(int argc, char *argv[]) { char *buf; char* eof; GList *my_strlist = NULL; int i; srand48(time((time_t *)NULL)); // printf("%d\n", argc); if(argc > 1) { for(i=1; idata)->x); */