From 6eb8d7fbcbc64bcb89083ab46d591d9f9ed5b388 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Fri, 10 Sep 2021 13:31:24 +0200 Subject: Convert file-manager --dir to absolute path Fixes parent navigation when using relative path for --dir. Submit should not be async for peertube. Fixes peertube video length. --- src/QuickMedia.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/QuickMedia.cpp') diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index 32696b6..aef1073 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include #include @@ -314,6 +315,15 @@ namespace QuickMedia { return body_item; } + static bool convert_to_absolute_path(std::filesystem::path &path) { + char resolved[PATH_MAX]; + if(!realpath(path.c_str(), resolved)) + return false; + + path = resolved; + return true; + } + int Program::run(int argc, char **argv) { if(argc < 1) { usage(); @@ -456,8 +466,12 @@ namespace QuickMedia { } std::filesystem::path home_path = get_home_dir().data; - if(file_manager_start_dir.empty()) + if(file_manager_start_dir.empty()) { file_manager_start_dir = home_path; + } else { + if(!convert_to_absolute_path(file_manager_start_dir)) + fprintf(stderr, "Warning: failed to get absolute path for path: %s\n", file_manager_start_dir.c_str()); + } int start_tab_index = 0; FileManagerMimeType fm_mine_type = FILE_MANAGER_MIME_TYPE_ALL; -- cgit v1.2.3