mirror of
https://github.com/SerenityOS/serenity.git
synced 2025-01-24 10:22:05 -05:00
open: Fix opening "." (again)
We can't always rely on the initial URL's path(), so use either the user-specified argument or the URL path for determining the realpath, depending on whether we got a file:// URL argument. Fixes #4950.
This commit is contained in:
parent
501952852c
commit
3532e1788f
1 changed files with 4 additions and 1 deletions
|
@ -48,7 +48,10 @@ int main(int argc, char* argv[])
|
|||
auto url = URL::create_with_url_or_path(url_or_path);
|
||||
|
||||
if (url.protocol() == "file") {
|
||||
auto real_path = Core::File::real_path_for(url.path());
|
||||
// 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));
|
||||
|
|
Loading…
Add table
Reference in a new issue