void print(Table_T files) { int i; void **array = Table_toArray(files, NULL); qsort(array, Table_length(files), 2*sizeof (*array), compare); for (i = 0; array[i]; i += 2) { Ring_T ring = array[i+1]; Text_T *filename = array[i]; if (filename->len > 0) Fmt_print("\t%T:", filename); while (Ring_length(ring) > 0) { Integer_T line = Ring_remhi(ring); Fmt_print(" %D", line); FREE(line); } Fmt_print("\n"); FREE(filename); Ring_free(&ring); } FREE(array); Table_free(&files); }
void *Ring_remlo(T ring) { assert(ring); assert(ring->length > 0); ring->head = ring->head->rlink; return Ring_remhi(ring); }