| 454 | } |
| 455 | |
| 456 | std::string Path::join(std::string path1, std::string path2) |
| 457 | { |
| 458 | path1 = fromNativeSeparators(std::move(path1)); |
| 459 | path2 = fromNativeSeparators(std::move(path2)); |
| 460 | if (path1.empty() || path2.empty()) |
| 461 | return path1 + path2; |
| 462 | // this matches the behavior of std::filesystem::path::operator/=() and os.path.join() |
| 463 | if (path2.front() == '/') |
| 464 | return path2; |
| 465 | return ((path1.back() == '/') ? path1 : (path1 + "/")) + path2; |
| 466 | } |
| 467 | |
| 468 | std::string Path::join(std::string path1, std::string path2, std::string path3) |
| 469 | { |