//! This function closes the play list and selects this one in current navigator //! //! @return false in case of error, see global value "fs_g_status" for more detail //! @return true otherwise //! bool pl_main_close( void ) { _MEM_TYPE_SLOW_ Fs_index index; uint8_t nav_id_save; if( !pl_main_isopen() ) return false; // Close play list nav_id_save = nav_get(); nav_select( FS_NAV_ID_PLAYLIST ); file_close(); #if( PL_READONLY == false ) if( pl_g_list_is_modify ) { if( pl_g_list_undo ) { uint16_t size_name; FS_STRING sz_name; //** Play list modified but not saved, then restore previous list // Get name of play list nav_string_length_enable(); nav_file_name( (FS_STRING)&size_name, 1, FS_NAME_GET, false ); nav_string_length_disable(); sz_name = PLAYLIST_BUF_ALLOC( size_name* (Is_unicode? 2 : 1 ) ); if( NULL != sz_name ) { if( nav_file_name( sz_name, size_name, FS_NAME_GET, false ) ) { // Delete current play list if( nav_file_del( true ) ) // Remove copy file { nav_gotoindex( ©file_index ); // Select copy play list nav_file_rename( sz_name ); // rename copy play list } } PLAYLIST_BUF_FREE( sz_name ); } } } #endif // Select the play list file in current navigator index = nav_getindex(); // Save a pointer on play list file nav_select( nav_id_save ); nav_gotoindex( &index ); pl_g_list_is_open = false; return true; }
//! @brief This function renames a file or a directory //! void ushell_cmd_rename( void ) { if( g_s_arg[0][0] == 0 ) return; if( g_s_arg[1][0] == 0 ) return; // Select source file if( !nav_setcwd( (FS_STRING)g_s_arg[0], true, false ) ) { fputs(MSG_ER_UNKNOWN_FILE, stdout); return; } // Rename file or directory if( !nav_file_rename( (FS_STRING)g_s_arg[1] ) ) { fputs(MSG_KO, stdout); return; } }