in include/poac/io/file/path.hpp [18:34]
std::string expand_user(std::string path) {
if (!path.empty() && path[0] == '~') {
assert(path.size() == 1 or path[1] == '/'); // or other error handling
const char* home = std::getenv("HOME");
if (home || ((home = std::getenv("USERPROFILE")))) {
path.replace(0, 1, home);
}
else {
const char *hdrive = std::getenv("HOMEDRIVE"),
*hpath = std::getenv("HOMEPATH");
assert(hdrive); // or other error handling
assert(hpath);
path.replace(0, 1, std::string(hdrive) + hpath);
}
}
return path;
}