return;
}
}
- else {
- const uint32_t flag_actions[] = {
- recurse->flag & f_directory_recurse_do_flag_before_d ? f_directory_recurse_do_flag_before_d : 0,
- f_directory_recurse_do_flag_action_d,
- recurse->flag & f_directory_recurse_do_flag_after_d ? f_directory_recurse_do_flag_after_d : 0,
- };
- uint8_t action = 0;
+ const uint32_t flag_actions[] = {
+ recurse->flag & f_directory_recurse_do_flag_before_d ? f_directory_recurse_do_flag_before_d : 0,
+ f_directory_recurse_do_flag_action_d,
+ recurse->flag & f_directory_recurse_do_flag_after_d ? f_directory_recurse_do_flag_after_d : 0,
+ };
- for (action = 0; action < 3; ++action) {
+ uint8_t action = 0;
- if (recurse->state.interrupt) {
- recurse->state.interrupt((void *) &recurse->state, (void *) recurse);
- if (F_status_set_fine(recurse->state.status) == F_interrupt) break;
- }
+ recurse->depth = 0;
- if (flag_actions[action]) {
- recurse->state.status = F_okay;
+ for (action = 0; action < 3; ++action) {
- recurse->action(recurse, path, flag_actions[action] | recurse->flag);
+ if (recurse->state.interrupt) {
+ recurse->state.interrupt((void *) &recurse->state, (void *) recurse);
+ if (F_status_set_fine(recurse->state.status) == F_interrupt) break;
+ }
- if (F_status_is_error(recurse->state.status)) {
- private_inline_fl_directory_do_handle(recurse, path, flag_actions[action] | recurse->flag);
- if (F_status_is_error(recurse->state.status)) break;
- }
+ if (flag_actions[action]) {
+ recurse->state.status = F_okay;
- // There is nothing to continue onto, so all of these result in a break out of the loop.
- if (recurse->state.status == F_break || recurse->state.status == F_done || recurse->state.status == F_continue || F_status_set_fine(recurse->state.status) == F_interrupt) break;
+ recurse->action(recurse, path, flag_actions[action] | recurse->flag | f_directory_recurse_do_flag_directory_d);
+
+ if (F_status_is_error(recurse->state.status)) {
+ private_inline_fl_directory_do_handle(recurse, path, flag_actions[action] | recurse->flag | f_directory_recurse_do_flag_directory_d);
+ if (F_status_is_error(recurse->state.status)) break;
}
- } // for
- }
+
+ // There is nothing to continue onto, so all of these result in a break out of the loop.
+ if (recurse->state.status == F_break || recurse->state.status == F_done || recurse->state.status == F_continue || F_status_set_fine(recurse->state.status) == F_interrupt) break;
+ }
+ } // for
recurse->state.status = F_okay;
}