namespace loader {
string Dirname(const string &path) {
- // unix version
char *str(new char[path.size() + 1]);
std::memcpy(str, path.c_str(), path.size());
str[path.size()] = '\0';
}
string CatPath(const string &lhs, const string &rhs) {
- // unix version
string path(lhs);
- if (!path.empty() && path[path.size() - 1] != '/') {
+ if (!path.empty()
+ && path[path.size() - 1] != '/'
+ && path[path.size() - 1] != '\\') {
path += '/';
}
- if (!rhs.empty() && rhs[0] == '/') {
+ if (!rhs.empty() && (rhs[0] == '/' || rhs[0] == '\\')) {
path.append(rhs, 1, string::npos);
} else {
path += rhs;