From 33cdc59dff1a3cb94b45e1cac6ee8638af275542 Mon Sep 17 00:00:00 2001 From: Filip Kania Date: Wed, 2 Jun 2021 13:14:52 +0200 Subject: [PATCH] Utilities: Add support for relative paths in open command --- Userland/Utilities/open.cpp | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/Userland/Utilities/open.cpp b/Userland/Utilities/open.cpp index d7661c31e3..d56303fd3c 100644 --- a/Userland/Utilities/open.cpp +++ b/Userland/Utilities/open.cpp @@ -11,7 +11,6 @@ #include #include #include -#include int main(int argc, char* argv[]) { @@ -25,21 +24,8 @@ int main(int argc, char* argv[]) bool all_ok = true; for (auto& url_or_path : urls_or_paths) { - auto url = URL::create_with_url_or_path(url_or_path); - - if (url.protocol() == "file") { - // NOTE: Since URL::create_with_url_or_path() returns "file:///" for ".", and we chose - // to fix that in open(1) itself using Core::File::real_path_for(), we have to - // conditionally chose either the URL's path or user-specified argument (also a path). - auto real_path = Core::File::real_path_for(StringView(url_or_path).starts_with("file://") ? url.path() : url_or_path); - if (real_path.is_null()) { - // errno *should* be preserved from Core::File::real_path_for(). - warnln("Failed to open '{}': {}", url.path(), strerror(errno)); - all_ok = false; - continue; - } - url = URL::create_with_url_or_path(real_path); - } + auto path = Core::File::real_path_for(url_or_path); + auto url = URL::create_with_url_or_path(path.is_null() ? url_or_path : path); if (!Desktop::Launcher::open(url)) { warnln("Failed to open '{}'", url);