diff --git a/src/FileSystem.cpp b/src/FileSystem.cpp index 4405d8a..27c9c5d 100644 --- a/src/FileSystem.cpp +++ b/src/FileSystem.cpp @@ -24,7 +24,7 @@ std::shared_ptr FileSystem::getNode(const Path& path, bool parent) { auto currentNode = path.isAbsolute() ? root : currentDirectory; auto parentNode = pathChain.empty() ? currentNode : currentNode->findNode(pathChain); - if (parent) { + if (parent && parentNode) { while (parentNode->getTarget()) { parentNode = parentNode->getTarget(); } diff --git a/test/commands b/test/commands index 4e69a74..ae2e47a 100644 --- a/test/commands +++ b/test/commands @@ -22,4 +22,48 @@ md a/b/c/a/k copy a C:/ mdl a/b/c C:/a_copy/k move a/b/c C:/a_copy -del C:/a_copy/k/c \ No newline at end of file +del C:/a_copy/k/c +m +mD a +mD / +MD C:/A123 +cd C:/A123 +md asd +md asd/b +md asd/b/c +md asd/b/c/d +cd asd/b/c/d +cd C:/ +copy A123 C:/ +rd d +cd A123 +md a +md a/b +md a/b/c +mhl a C:/a/b/c/ +md a/b/c/a/k +copy a C:/ +mdl a/b/c C:/a_copy/k +move a/b/c C:/a_copy +cd a +m +mD a +mD / +MD C:/A123 +cd C:/A123 +md asd +md asd/b +md asd/b/c +md asd/b/c/d +cd asd/b/c/d +copy A123 C:/ +rd d +cd C:/A123 +md a +md a/b +md a/b/c +mhl a C:/a/b/c/ +md a/b/c/a/k +copy a C:/ +mdl a/b/c C:/a_copy/k +move a/b/c C:/a_copy