From 198b9ced365dc6941f89857966ef369cbac7dfa8 Mon Sep 17 00:00:00 2001 From: acegoal07 <39467245+acegoal07@users.noreply.github.com> Date: Tue, 21 May 2024 23:41:43 +0100 Subject: [PATCH] Update nfc_playlist_scene_file_rename.c --- scenes/nfc_playlist_scene_file_rename.c | 29 +++++++++++-------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/scenes/nfc_playlist_scene_file_rename.c b/scenes/nfc_playlist_scene_file_rename.c index 8e2a89cbf2c..f90dfaf8d68 100644 --- a/scenes/nfc_playlist_scene_file_rename.c +++ b/scenes/nfc_playlist_scene_file_rename.c @@ -7,20 +7,19 @@ void nfc_playlist_file_rename_menu_callback(void* context) { char const* old_file_path = (char*)furi_string_get_cstr(nfc_playlist->settings.file_path); char const* old_file_name = strchr(old_file_path, '/') != NULL ? &strrchr(old_file_path, '/')[1] : old_file_path; - FuriString* tmp_old_file_path = furi_string_alloc_set_str(old_file_path); - furi_string_replace(tmp_old_file_path, old_file_name, ""); - - FuriString* tmp_new_file_path = furi_string_alloc(); - furi_string_printf(tmp_new_file_path, "%s%s.txt", furi_string_get_cstr(tmp_old_file_path), nfc_playlist->text_input_output); - - if(!storage_file_exists(storage, furi_string_get_cstr(tmp_new_file_path))) { - storage_common_rename_safe(storage, furi_string_get_cstr(nfc_playlist->settings.file_path), furi_string_get_cstr(tmp_new_file_path)); - nfc_playlist->settings.file_path = furi_string_alloc_set_str(furi_string_get_cstr(tmp_new_file_path)); + FuriString* new_file_path = furi_string_alloc_set_str(old_file_path); + furi_string_replace(new_file_path, old_file_name, nfc_playlist->text_input_output); + furi_string_cat_str(new_file_path, ".txt"); + char const* new_file_path_cstr = furi_string_get_cstr(new_file_path); + + if(!storage_file_exists(storage, new_file_path_cstr)) { + storage_common_rename(storage, furi_string_get_cstr(nfc_playlist->settings.file_path), new_file_path_cstr); + furi_string_free(nfc_playlist->settings.file_path); + nfc_playlist->settings.file_path = furi_string_alloc_set_str(new_file_path_cstr); } - + furi_record_close(RECORD_STORAGE); - furi_string_free(tmp_new_file_path); - furi_string_free(tmp_old_file_path); + furi_string_free(new_file_path); scene_manager_previous_scene(nfc_playlist->scene_manager); } @@ -34,14 +33,12 @@ void nfc_playlist_file_rename_scene_on_enter(void* context) { FuriString* tmp_file_name_furi = furi_string_alloc_set_str(tmp_file_name); furi_string_replace(tmp_file_name_furi, ".txt", ""); - nfc_playlist->text_input_output = (char*)malloc(50 * sizeof(char)); - strcpy(nfc_playlist->text_input_output, furi_string_get_cstr(tmp_file_name_furi)); - + nfc_playlist->text_input_output = strdup(furi_string_get_cstr(tmp_file_name_furi)); furi_string_free(tmp_file_name_furi); text_input_set_header_text(nfc_playlist->text_input, "Enter new file name"); text_input_set_minimum_length(nfc_playlist->text_input, 1); - text_input_set_result_callback(nfc_playlist->text_input, nfc_playlist_file_rename_menu_callback, nfc_playlist, nfc_playlist->text_input_output, (50*sizeof(char)), false); + text_input_set_result_callback(nfc_playlist->text_input, nfc_playlist_file_rename_menu_callback, nfc_playlist, nfc_playlist->text_input_output, (50 * sizeof(char)), false); view_dispatcher_switch_to_view(nfc_playlist->view_dispatcher, NfcPlaylistView_TextInput); }