+ 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 (!inc_recurse)
+ 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);
+ }
+
+ flist_free(first_flist); /* updates cur_flist & first_flist */
+
+ if (!read_batch)
+ write_ndx(f_out, NDX_DONE);
+ }
+ } while ((cur_flist = next_flist) != NULL);
+
+ phase++;