+#ifdef ICONV_OPTION
+ if (need_unsorted_flist) {
+ /* Create an extra array of index pointers that we can sort for
+ * the generator's use (for wading through the files in sorted
+ * order and for calling flist_find()). We keep the "files"
+ * list unsorted for our exchange of index numbers with the
+ * other side (since their names may not sort the same). */
+ if (!(flist->sorted = new_array(struct file_struct *, flist->count)))
+ out_of_memory("recv_file_list");
+ memcpy(flist->sorted, flist->files,
+ flist->count * sizeof (struct file_struct*));
+ if (inc_recurse) {
+ qsort(dir_flist->sorted + dstart, dir_flist->count - dstart,
+ sizeof (struct file_struct*), (int (*)())file_compare);
+ }
+ } else
+#endif
+ {
+ flist->sorted = flist->files;
+ if (inc_recurse) {
+ dir_flist->sorted = dir_flist->files;
+ qsort(dir_flist->sorted + dstart, dir_flist->count - dstart,
+ sizeof (struct file_struct*), (int (*)())file_compare);
+ }
+ }