+ if ((i = get_redo_num()) == -1) {
+ if (incremental)
+ break;
+ wait_for_receiver();
+ continue;
+ }
+
+ save_flist = cur_flist;
+ cur_flist = flist_for_ndx(i);
+ file = cur_flist->files[i];
+ if (local_name)
+ strlcpy(fbuf, local_name, sizeof fbuf);
+ else
+ f_name(file, fbuf);
+ recv_generator(fbuf, file, i, itemizing, code, f_out);
+ cur_flist->to_redo--;
+ cur_flist = save_flist;
+ }
+
+ csum_length = SHORT_SUM_LENGTH;
+ max_size = -max_size;
+ min_size = -min_size;
+ ignore_existing = -ignore_existing;
+ ignore_non_existing = -ignore_non_existing;
+ update_only = -update_only;
+ always_checksum = -always_checksum;
+ size_only = -size_only;
+ append_mode = -append_mode;
+ make_backups = -make_backups;
+ ignore_times--;
+
+ if (!incremental)
+ break;
+
+ while (!cur_flist->next && !flist_eof)
+ wait_for_receiver();
+ next_flist = cur_flist->next;
+ while (first_flist != next_flist) {
+ if (first_flist->in_progress || first_flist->to_redo) {
+ if (next_flist)
+ break;
+ wait_for_receiver();
+ continue;
+ }
+
+ cur_flist = first_flist;
+ if (delete_during == 2 || !dir_tweaking) {
+ /* Skip directory touch-up. */
+ } else if (cur_flist->ndx_start != 0) {
+ touch_up_dirs(dir_flist, cur_flist->parent_ndx,
+ need_retouch_dir_times, lull_mod);
+ } else if (relative_paths && implied_dirs) {
+ touch_up_dirs(cur_flist, -1,
+ need_retouch_dir_times, lull_mod);
+ }