summaryrefslogtreecommitdiff
path: root/Applications
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2019-03-03 00:40:50 +0100
committerAndreas Kling <awesomekling@gmail.com>2019-03-03 00:40:50 +0100
commit7c06431ff7682b42c9e91a8ea27f54f73c7c28f8 (patch)
treee568a61473dd90b39317cb5c22382ca2e0f8b97c /Applications
parentd94abc4f8194dbd285202a2c875212ed57a08196 (diff)
downloadserenity-7c06431ff7682b42c9e91a8ea27f54f73c7c28f8.zip
FileManager: Canonicalize paths when opening them.
Diffstat (limited to 'Applications')
-rw-r--r--Applications/FileManager/DirectoryTableModel.cpp4
-rw-r--r--Applications/FileManager/DirectoryTableView.cpp2
2 files changed, 4 insertions, 2 deletions
diff --git a/Applications/FileManager/DirectoryTableModel.cpp b/Applications/FileManager/DirectoryTableModel.cpp
index c871d29342..712c7e22da 100644
--- a/Applications/FileManager/DirectoryTableModel.cpp
+++ b/Applications/FileManager/DirectoryTableModel.cpp
@@ -187,8 +187,10 @@ void DirectoryTableModel::update()
did_update();
}
-void DirectoryTableModel::open(const String& path)
+void DirectoryTableModel::open(const String& a_path)
{
+ FileSystemPath canonical_path(a_path);
+ auto path = canonical_path.string();
if (m_path == path)
return;
DIR* dirp = opendir(path.characters());
diff --git a/Applications/FileManager/DirectoryTableView.cpp b/Applications/FileManager/DirectoryTableView.cpp
index f689a99ff4..4e116a1981 100644
--- a/Applications/FileManager/DirectoryTableView.cpp
+++ b/Applications/FileManager/DirectoryTableView.cpp
@@ -37,5 +37,5 @@ void DirectoryTableView::set_status_message(const String& message)
void DirectoryTableView::open_parent_directory()
{
- model().open("..");
+ model().open(String::format("%s/..", model().path().characters()));
}