#else
# ifdef HAVE_VSNPRINTF // This is the secondary method
-# if defined(__CYGWIN__) || defined(_WIN32)
-extern int vsnprintf(char *,unsigned int,const char*,va_list)ETL_NO_THROW;
-# else
-extern int vsnprintf(char *,int,const char*,va_list)ETL_NO_THROW;
-# endif
+ extern int vsnprintf(char *,size_t,const char*,va_list)ETL_NO_THROW;
# endif
#endif
#ifdef WIN32
if(path.size()>=3 && path[1]==':' && (path[2]=='\\' || path[2]=='/'))
return true;
- return false;
-#else
+#endif
if(!path.empty() && path[0]==ETL_DIRECTORY_SEPERATOR)
return true;
return false;
-#endif
}
inline std::string
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;
}
- else if(dir!="./" && dir!=".")
+ else if((dir!="./" && dir!=".\\") && dir!=".")
{
ret+=dir;
}
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);
}