Move pack files instead of copying; one file-op core for all modes
Install: staging and sd:/ are on the same card, so pack folders are now moved with f_rename (a missing target folder moves in one step, existing ones are merged file by file). Copying is only a per-entry fallback. The staging cleanup afterwards only removes empty folders. Deletion: one f_stat per list entry, no full recursive count before deleting; large folders are detected with a probe that stops after 51 entries. Progress lines count processed entries instead of needing an extra pass for a total. Six copy/delete walkers (fs.c + install.c) are replaced by fs_delete_tree, fs_move_tree and fs_move_file sharing one path buffer and one copy buffer per run; the 'alternative copy method' retry is gone. extras/hekate-ams-pro is moved too. Backups keep copy semantics.
This commit is contained in:
1 parent
c033b988ca
commit
664216fa11
6 files changed
+453
-784
No files matched your search
+3
-7
@@ -39,11 +39,7 @@ void install_preserve_update_cleanup_end(void);
|
||||
void install_set_color(u32 color);
|
||||
void install_check_and_clear_screen_if_needed(void);
|
||||
bool install_path_exists(const char *path);
|
||||
int install_count_directory_items(const char *path);
|
||||
void install_combine_path(char *result, size_t size, const char *base, const char *add);
|
||||
int install_copy_staging_root_files(const char *staging, const char *dst_root);
|
||||
int delete_path_list(const char* paths[], const char* description);
|
||||
int install_move_staging_root_files(const char *staging, const char *dst_root);
|
||||
int install_move_tree(const char *src, const char *dst_parent, const char *display_name);
|
||||
int install_delete_tree(const char *path);
|
||||
int delete_path_lists_grouped(const char *folder_display_name, ...);
|
||||
int folder_delete_single_with_progress(const char *path, const char *display_name);
|
||||
int folder_delete_progress_recursive(const char *path, int *deleted, int total, u32 start_x, u32 start_y, const char *display_name, int *last_percent);
|
||||
int folder_copy_with_progress_v2(const char *src, const char *dst, const char *display_name);
|
||||
Reference in new issue
Block a user