#ifdef WIN32
if(path.size()>=3 && path[1]==':' && (path[2]=='\\' || path[2]=='/'))
return true;
#ifdef WIN32
if(path.size()>=3 && path[1]==':' && (path[2]=='\\' || path[2]=='/'))
return true;
if(!path.empty() && path[0]==ETL_DIRECTORY_SEPERATOR)
return true;
return false;
if(!path.empty() && path[0]==ETL_DIRECTORY_SEPERATOR)
return true;
return false;
while(!path.empty())
{
std::string dir(get_root_from_path(path));
while(!path.empty())
{
std::string dir(get_root_from_path(path));
- if(dir=="../" && ret.size())
+ if((dir=="../" || dir=="..\\") && ret.size())
{
ret=dirname(ret)+ETL_DIRECTORY_SEPERATOR;
}
{
ret=dirname(ret)+ETL_DIRECTORY_SEPERATOR;
}
- else if(dir!="./" && dir!=".")
+ else if((dir!="./" && dir!=".\\") && dir!=".")
while(!curr_path.empty())
{
while(!curr_path.empty())
{
- dest_path="../"+dest_path;
+ dest_path=std::string("..")+ETL_DIRECTORY_SEPERATOR+dest_path;
curr_path=remove_root_from_path(curr_path);
}
curr_path=remove_root_from_path(curr_path);
}