From 052dff6daeb6899327d897ffd73462db8ffbcc47 Mon Sep 17 00:00:00 2001 From: Kp Date: Sun, 9 Oct 2022 23:15:21 +0000 Subject: [PATCH] Pass std::ranges::subrange to menu selection functions --- similar/main/menu.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/similar/main/menu.cpp b/similar/main/menu.cpp index 8e70fd15e..11a439696 100644 --- a/similar/main/menu.cpp +++ b/similar/main/menu.cpp @@ -251,7 +251,7 @@ enum class select_dir_flag : uint8_t }; __attribute_nonnull() -static int select_file_recursive(const menu_title title, const std::array &orig_path, const partial_range_t &ext_list, select_dir_flag select_dir, ntstring &userdata); +static int select_file_recursive(const menu_title title, const std::array &orig_path, const std::ranges::subrange &ext_list, select_dir_flag select_dir, ntstring &userdata); static window_event_result get_absolute_path(ntstring &full_path, const char *rel_path) { @@ -2216,23 +2216,23 @@ struct browser_storage { struct target_path_not_mounted {}; // List of file extensions we're looking for (if looking for a music file many types are possible) - const partial_range_t ext_range; + const std::ranges::subrange ext_range; const select_dir_flag select_dir; // Allow selecting the current directory (e.g. for Jukebox level song directory) physfsx_mounted_path view_path; // The absolute path we're currently looking at string_array_t list; - browser_storage(const char *orig_path, const partial_range_t &ext_range, const select_dir_flag select_dir, const char *const sep) : + browser_storage(const char *orig_path, const std::ranges::subrange &ext_range, const select_dir_flag select_dir, const char *const sep) : ext_range(ext_range), select_dir(select_dir), /* view_path is trivially constructed, then properly initialized as * a side effect of preparing the string list */ list(construct_string_list(orig_path, view_path, ext_range, select_dir, sep)) { } - static string_array_t construct_string_list(const char *orig_path, physfsx_mounted_path &view_path, const partial_range_t &r, const select_dir_flag select_dir, const char *const sep); + static string_array_t construct_string_list(const char *orig_path, physfsx_mounted_path &view_path, const std::ranges::subrange &r, const select_dir_flag select_dir, const char *const sep); }; struct browser : browser_storage, listbox { - browser(const char *orig_path, menu_title title, const partial_range_t &r, const select_dir_flag select_dir, const char *const sep, ntstring &userdata) : + browser(const char *orig_path, menu_title title, const std::ranges::subrange &r, const select_dir_flag select_dir, const char *const sep, ntstring &userdata) : browser_storage(orig_path, r, select_dir, sep), listbox(0, list.pointer().size(), &list.pointer().front(), title, grd_curscreen->sc_canvas, 1), userdata(userdata) @@ -2245,7 +2245,7 @@ struct browser : browser_storage, listbox struct list_directory_context { string_array_t &string_list; - const partial_range_t ext_range; + const std::ranges::subrange ext_range; const std::array &path; }; @@ -2364,7 +2364,7 @@ window_event_result browser::callback_handler(const d_event &event, window_event return window_event_result::ignored; } -static int select_file_recursive(const menu_title title, const std::array &orig_path_storage, const partial_range_t &ext_range, const select_dir_flag select_dir, ntstring &userdata) +static int select_file_recursive(const menu_title title, const std::array &orig_path_storage, const std::ranges::subrange &ext_range, const select_dir_flag select_dir, ntstring &userdata) { const auto sep = PHYSFS_getDirSeparator(); auto orig_path = orig_path_storage.data(); @@ -2383,7 +2383,7 @@ static int select_file_recursive(const menu_title title, const std::array &ext_range, const select_dir_flag select_dir, const char *const sep) +string_array_t browser_storage::construct_string_list(const char *orig_path, physfsx_mounted_path &view_path, const std::ranges::subrange &ext_range, const select_dir_flag select_dir, const char *const sep) { view_path.path.front() = 0; // Set the viewing directory to orig_path, or some parent of it