Update in regards to recent FLL directory changes.
#define _di_f_date_t_
#define _di_f_directory_at_d_
//#define _di_f_directory_back_s_
+#define _di_f_directory_close_
+//#define _di_f_directory_compare_call_t_
#define _di_f_directory_create_
#define _di_f_directory_create_at_
//#define _di_f_directory_current_s_
+//#define _di_f_directory_entity_t_
//#define _di_f_directory_exists_
#define _di_f_directory_exists_at_
+//#define _di_f_directory_filter_call_t_
//#define _di_f_directory_flag_d_
#define _di_f_directory_is_
#define _di_f_directory_is_at_
#define _di_f_directory_open_at_
//#define _di_f_directory_recurse_do_delete_
#define _di_f_directory_recurse_do_destroy_
-//#define _di_f_directory_recurse_do_flag_e_
+//#define _di_f_directory_recurse_do_flag_d_
//#define _di_f_directory_recurse_do_t_
#define _di_f_directory_recurse_dos_delete_callback_
#define _di_f_directory_recurse_dos_destroy_callback_
#define _di_fll_print_
#define _di_fll_print_character_
#define _di_fll_print_character_safely_
-#define _di_fll_print_dynamic_
+//#define _di_fll_print_dynamic_
#define _di_fll_print_dynamic_partial_
#define _di_fll_print_dynamic_partial_raw_
#define _di_fll_print_dynamic_partial_raw_safely_
#endif // _di_kt_remove_flag_mode_d_
/**
- * Defines for bitwise directory recurse flag enumeration combinations.
- *
- * _di_kt_remove_flag_recurse_*_d:
- * - directory_not: All non-directory flags combined.
- */
-#ifndef _di_kt_remove_flag_recurse_d_
- #define kt_remove_flag_recurse_directory_not_d (f_directory_recurse_do_flag_block_e | f_directory_recurse_do_flag_character_e | f_directory_recurse_do_flag_fifo_e | f_directory_recurse_do_flag_link_e | f_directory_recurse_do_flag_path_e | f_directory_recurse_do_flag_regular_e | f_directory_recurse_do_flag_socket_e | f_directory_recurse_do_flag_unknown_e)
-#endif // _di_kt_remove_flag_recurse_d_
-
-/**
* Flags passed to the main function or program.
*
* kt_remove_main_flag_*_d:
void kt_remove_operate_recurse_action(f_directory_recurse_do_t * const recurse, const f_string_static_t name, const uint32_t flag) {
if (!recurse || !recurse->state.custom || F_status_set_fine(recurse->state.status) == F_interrupt) return;
- if (!kt_remove_operate_shall_remove(recurse->state.code) || !(flag & f_directory_recurse_do_flag_action_e)) return;
+ if (!kt_remove_operate_shall_remove(recurse->state.code) || !(flag & f_directory_recurse_do_flag_action_d)) return;
kt_remove_main_t * const main = (kt_remove_main_t *) recurse->state.custom;
kt_remove_main_t * const main = (kt_remove_main_t *) recurse->state.custom;
// Arguments to fl_recurse_do() are invalid (parameter checking).
- if (flag == f_directory_recurse_do_flag_top_e) {
+ if (!recurse->depth) {
kt_remove_print_error_status(&main->program.error, macro_kt_remove_f(fl_recurse_do), recurse->state.status);
return;
}
- if (flag & f_directory_recurse_do_flag_list_e && recurse->state.status == F_status_set_error(F_recurse)) {
+ if (flag & f_directory_recurse_do_flag_list_d && recurse->state.status == F_status_set_error(F_recurse)) {
recurse->state.status = F_status_set_error(F_directory_empty_not);
- kt_remove_print_error_file_status(&main->program.error, macro_kt_remove_f(fl_recurse_do), flag & f_directory_recurse_do_flag_top_after_e ? *recurse->path_top : recurse->path, f_file_operation_delete_s, fll_error_file_type_directory_e, recurse->state.status);
+ kt_remove_print_error_file_status(&main->program.error, macro_kt_remove_f(fl_recurse_do), (!recurse->depth && (flag & f_directory_recurse_do_flag_after_d)) ? *recurse->path_top : recurse->path, f_file_operation_delete_s, fll_error_file_type_directory_e, recurse->state.status);
return;
}
// The top-level path is an empty string or an error occurred while processing the top-level path.
- if (flag == (f_directory_recurse_do_flag_top_e | f_directory_recurse_do_flag_path_e) || flag == (f_directory_recurse_do_flag_top_e | f_directory_recurse_do_flag_path_e | f_directory_recurse_do_flag_before_e)) {
- kt_remove_print_error_file_status(&main->program.error, macro_kt_remove_f(fl_recurse_do), flag & f_directory_recurse_do_flag_top_after_e ? *recurse->path_top : recurse->path, f_file_operation_stat_s, fll_error_file_type_path_e, recurse->state.status);
+ if (!recurse->depth && (flag == f_directory_recurse_do_flag_path_d || flag == f_directory_recurse_do_flag_path_before_d)) {
+ kt_remove_print_error_file_status(&main->program.error, macro_kt_remove_f(fl_recurse_do), *recurse->path_top, f_file_operation_stat_s, fll_error_file_type_path_e, recurse->state.status);
return;
}
// An error happened during directory list loading.
- if (flag == (f_directory_recurse_do_flag_list_e | f_directory_recurse_do_flag_path_e)) {
- kt_remove_print_error_file_status(&main->program.error, macro_kt_remove_f(fl_recurse_do), flag & f_directory_recurse_do_flag_top_after_e ? *recurse->path_top : recurse->path, f_file_operation_list_s, fll_error_file_type_directory_e, recurse->state.status);
+ if (flag == f_directory_recurse_do_flag_path_list_d) {
+ kt_remove_print_error_file_status(&main->program.error, macro_kt_remove_f(fl_recurse_do), recurse->depth ? recurse->path : *recurse->path_top, f_file_operation_list_s, fll_error_file_type_directory_e, recurse->state.status);
return;
}
* The operate file specific flags from kt_remove_flag_file_operate_*_e.
* @param recurse
* If F_true as 0x1, then this function is being called during directory recursion.
- * If F_true as 0x2, then this funtion is being called during directory recursion and it represents the parent directory being recursed.
+ * If F_true as 0x2, then this function is being called during directory recursion and it represents the parent directory being recursed.
+ * If F_true as 0x3, then this function is being called during directory recursion and it represents the parent tree directories are being recursed.
* If F_false, then this function is being called outside of directory recursion.
*
* @return
will_return(__wrap_fl_directory_do, 1);
will_return(__wrap_fl_directory_do, &file);
will_return(__wrap_fl_directory_do, &file);
- will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_e | f_directory_recurse_do_flag_directory_e);
+ will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_d | f_directory_recurse_do_flag_directory_d);
// The pre-process gets called again before the final removal for directories.
will_return(__wrap_f_file_exists, F_true);
will_return(__wrap_fl_directory_do, 1);
will_return(__wrap_fl_directory_do, &file);
will_return(__wrap_fl_directory_do, &file);
- will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_e | f_directory_recurse_do_flag_directory_e);
+ will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_d | f_directory_recurse_do_flag_directory_d);
// The pre-process gets called again before the final removal for directories.
will_return(__wrap_f_file_exists, F_true);
will_return(__wrap_fl_directory_do, 1);
will_return(__wrap_fl_directory_do, &file);
will_return(__wrap_fl_directory_do, &file);
- will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_e | f_directory_recurse_do_flag_directory_e);
+ will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_d | f_directory_recurse_do_flag_directory_d);
// The pre-process gets called again before the final removal for directories.
will_return(__wrap_f_file_exists, F_true);
// Child
will_return(__wrap_fl_directory_do, &child);
will_return(__wrap_fl_directory_do, &child);
- will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_e | f_directory_recurse_do_flag_regular_e);
+ will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_d | f_directory_recurse_do_flag_regular_d);
will_return(__wrap_f_file_exists, F_true);
will_return(__wrap_f_file_is, F_false); // Not a link, kt_remove_flag_file_operate_link_d is not set.
will_return(__wrap_f_file_stat, &statistics_regular);
will_return(__wrap_fl_directory_do, 1);
will_return(__wrap_fl_directory_do, &file);
will_return(__wrap_fl_directory_do, &file);
- will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_e | f_directory_recurse_do_flag_directory_e);
+ will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_d | f_directory_recurse_do_flag_directory_d);
// The pre-process gets called again before the final removal for directories.
will_return(__wrap_f_file_exists, F_true);
will_return(__wrap_fl_directory_do, 1);
will_return(__wrap_fl_directory_do, &file);
will_return(__wrap_fl_directory_do, &file);
- will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_e | f_directory_recurse_do_flag_directory_e);
+ will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_d | f_directory_recurse_do_flag_directory_d);
// The pre-process gets called again before the final removal for directories.
will_return(__wrap_f_file_exists, F_true);
// The first child pre-processing.
will_return(__wrap_fl_directory_do, &child_1);
will_return(__wrap_fl_directory_do, &child_1);
- will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_e | f_directory_recurse_do_flag_regular_e);
+ will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_d | f_directory_recurse_do_flag_regular_d);
will_return(__wrap_f_file_exists, F_true);
will_return(__wrap_f_file_is, F_false); // Not a link, kt_remove_flag_file_operate_link_d is not set.
will_return(__wrap_f_file_stat, &stat_regular);
// The first child pre-processing.
will_return(__wrap_fl_directory_do, &child_1);
will_return(__wrap_fl_directory_do, &child_1);
- will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_e | f_directory_recurse_do_flag_regular_e);
+ will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_d | f_directory_recurse_do_flag_regular_d);
will_return(__wrap_f_file_exists, F_true);
will_return(__wrap_f_file_is, F_false); // Not a link, kt_remove_flag_file_operate_link_d is not set.
will_return(__wrap_f_file_stat, &stat_regular);
// The first child processing.
will_return(__wrap_fl_directory_do, &child_1);
will_return(__wrap_fl_directory_do, &child_1);
- will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_e | f_directory_recurse_do_flag_regular_e);
+ will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_d | f_directory_recurse_do_flag_regular_d);
will_return(__wrap_f_file_exists, F_true);
will_return(__wrap_f_file_is, F_false); // Not a link, kt_remove_flag_file_operate_link_d is not set.
will_return(__wrap_f_file_stat, &stat_regular);
// The second child processing.
will_return(__wrap_fl_directory_do, &child_2);
will_return(__wrap_fl_directory_do, &child_2);
- will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_e | f_directory_recurse_do_flag_regular_e);
+ will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_d | f_directory_recurse_do_flag_regular_d);
will_return(__wrap_f_file_exists, F_true);
will_return(__wrap_f_file_is, F_true); // A link, kt_remove_flag_file_operate_link_d is set.
will_return(__wrap_f_file_stat, &stat_regular);
// The first child processing.
will_return(__wrap_fl_directory_do, &child_1);
will_return(__wrap_fl_directory_do, &child_1);
- will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_e | f_directory_recurse_do_flag_regular_e);
+ will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_d | f_directory_recurse_do_flag_regular_d);
will_return(__wrap_f_file_exists, F_true);
will_return(__wrap_f_file_is, F_false); // Not a link, kt_remove_flag_file_operate_link_d is not set.
will_return(__wrap_f_file_stat, &stat_regular);
// The second child processing.
will_return(__wrap_fl_directory_do, &child_2);
will_return(__wrap_fl_directory_do, &child_2);
- will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_e | f_directory_recurse_do_flag_regular_e);
+ will_return(__wrap_fl_directory_do, f_directory_recurse_do_flag_action_d | f_directory_recurse_do_flag_regular_d);
will_return(__wrap_f_file_exists, F_true);
will_return(__wrap_f_file_is, F_true); // A link, kt_remove_flag_file_operate_link_d is set.
will_return(__wrap_f_file_stat, &stat_regular);