fix
This commit is contained in:
parent
b647053fb9
commit
73ee70a862
11
support/3rd_party/include/utils/path.hpp
vendored
11
support/3rd_party/include/utils/path.hpp
vendored
@ -227,11 +227,11 @@ get_parent_api_path(std::wstring_view path) -> std::wstring;
|
|||||||
[[nodiscard]] auto unmake_file_uri(std::wstring_view uri) -> std::wstring;
|
[[nodiscard]] auto unmake_file_uri(std::wstring_view uri) -> std::wstring;
|
||||||
|
|
||||||
inline auto absolute(std::string_view path) -> std::string {
|
inline auto absolute(std::string_view path) -> std::string {
|
||||||
return finalize(std::filesystem::absolute(path).lexically_normal().string());
|
return std::filesystem::absolute(finalize(path)).lexically_normal().string();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline auto absolute(std::wstring_view path) -> std::wstring {
|
inline auto absolute(std::wstring_view path) -> std::wstring {
|
||||||
return finalize(std::filesystem::absolute(path).lexically_normal().wstring());
|
return std::filesystem::absolute(finalize(path)).lexically_normal().wstring();
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename string_t>
|
template <typename string_t>
|
||||||
@ -239,6 +239,8 @@ template <typename string_t>
|
|||||||
string_t path,
|
string_t path,
|
||||||
const std::vector<std::basic_string_view<typename string_t::value_type>>
|
const std::vector<std::basic_string_view<typename string_t::value_type>>
|
||||||
&paths) -> string_t {
|
&paths) -> string_t {
|
||||||
|
format_path(path, get_directory_seperator<typename string_t::value_type>(),
|
||||||
|
get_not_directory_seperator<typename string_t::value_type>());
|
||||||
return absolute(std::accumulate(
|
return absolute(std::accumulate(
|
||||||
paths.begin(), paths.end(), path, [](auto next_path, auto &&path_part) {
|
paths.begin(), paths.end(), path, [](auto next_path, auto &&path_part) {
|
||||||
if (next_path.empty()) {
|
if (next_path.empty()) {
|
||||||
@ -341,6 +343,9 @@ template <typename string_t>
|
|||||||
[[nodiscard]] inline auto finalize_t(
|
[[nodiscard]] inline auto finalize_t(
|
||||||
std::basic_string_view<typename string_t::value_type> path) -> string_t {
|
std::basic_string_view<typename string_t::value_type> path) -> string_t {
|
||||||
string_t fmt_path{path};
|
string_t fmt_path{path};
|
||||||
|
format_path(fmt_path,
|
||||||
|
get_directory_seperator<typename string_t::value_type>(),
|
||||||
|
get_not_directory_seperator<typename string_t::value_type>());
|
||||||
|
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
if ((fmt_path.size() >= 2U) && (fmt_path.at(1U) == ':')) {
|
if ((fmt_path.size() >= 2U) && (fmt_path.at(1U) == ':')) {
|
||||||
@ -368,7 +373,7 @@ format_path(string_t &path,
|
|||||||
-> string_t & {
|
-> string_t & {
|
||||||
utils::string::replace(path, not_sep, sep);
|
utils::string::replace(path, not_sep, sep);
|
||||||
|
|
||||||
string_t double_sep{2, sep.at(0U)};
|
string_t double_sep{2U, sep.at(0U)};
|
||||||
while (utils::string::contains(path, double_sep)) {
|
while (utils::string::contains(path, double_sep)) {
|
||||||
utils::string::replace(path, double_sep, sep);
|
utils::string::replace(path, double_sep, sep);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user