]> git.sesse.net Git - casparcg/blobdiff - common/filesystem.cpp
Merge pull request #506 from dimitry-ishenko-casparcg/fixes-flags
[casparcg] / common / filesystem.cpp
index 41869ad0427a48c9268a387824bf60be23001aa3..877ac7ca68f6c8310d2488d1c83ad16bf2549d7f 100644 (file)
@@ -22,6 +22,7 @@
 #include "stdafx.h"
 
 #include "filesystem.h"
+#include "except.h"
 
 #include <boost/filesystem/operations.hpp>
 #include <boost/filesystem/path.hpp>
@@ -32,9 +33,11 @@ boost::filesystem::path get_relative(
                const boost::filesystem::path& file,
                const boost::filesystem::path& relative_to)
 {
-       auto result = file.filename();
+       auto result                     = file.filename();
+       auto current_path       = file;
 
-       boost::filesystem::path current_path = file;
+       if (boost::filesystem::equivalent(current_path, relative_to))
+               return L"";
 
        while (true)
        {
@@ -44,7 +47,7 @@ boost::filesystem::path get_relative(
                        break;
 
                if (current_path.empty())
-                       throw std::runtime_error("File not relative to folder");
+                       CASPAR_THROW_EXCEPTION(caspar_exception() << msg_info("File " + file.string() + " not relative to folder " + relative_to.string()));
 
                result = current_path.filename() / result;
        }