From 90f6f8368cf050840b80871e0b4fbd7626a2edc9 Mon Sep 17 00:00:00 2001 From: SimplestStudio Date: Mon, 30 Sep 2024 07:43:55 +0300 Subject: [PATCH] [win-linux] updatesvc, online-installer: refactoring utils --- win-linux/extras/online-installer/src/utils.cpp | 2 +- .../update-daemon/src/platform_linux/utils.cpp | 4 ++-- .../extras/update-daemon/src/platform_win/utils.cpp | 12 ++++++++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/win-linux/extras/online-installer/src/utils.cpp b/win-linux/extras/online-installer/src/utils.cpp index c9c7647b0..c0003d6e2 100644 --- a/win-linux/extras/online-installer/src/utils.cpp +++ b/win-linux/extras/online-installer/src/utils.cpp @@ -309,7 +309,7 @@ namespace NS_File wstring parentPath(const wstring &path) { - wstring::size_type delim = path.find_last_of(_T("\\/")); + auto delim = (path.size() > 2) ? path.find_last_of(_T("\\/"), path.size() - 2) : wstring::npos; return (delim == wstring::npos) ? _T("") : path.substr(0, delim); } diff --git a/win-linux/extras/update-daemon/src/platform_linux/utils.cpp b/win-linux/extras/update-daemon/src/platform_linux/utils.cpp index 4894e6b7f..ad3e8fbd6 100644 --- a/win-linux/extras/update-daemon/src/platform_linux/utils.cpp +++ b/win-linux/extras/update-daemon/src/platform_linux/utils.cpp @@ -430,8 +430,8 @@ namespace NS_File string parentPath(const string &path) { - string::size_type delim = path.find_last_of("\\/"); - return (delim == string::npos) ? "" : path.substr(0, delim); + auto delim = (path.size() > 1) ? path.find_last_of('/', path.size() - 2) : string::npos; + return (delim == string::npos) ? "" : (delim == 0) ? "/" : path.substr(0, delim); } string tempPath() diff --git a/win-linux/extras/update-daemon/src/platform_win/utils.cpp b/win-linux/extras/update-daemon/src/platform_win/utils.cpp index 4f957aa73..b9549e4ca 100644 --- a/win-linux/extras/update-daemon/src/platform_win/utils.cpp +++ b/win-linux/extras/update-daemon/src/platform_win/utils.cpp @@ -36,7 +36,7 @@ #include #include #include -#include +#include #include //#include #include @@ -468,17 +468,21 @@ namespace NS_File wstring fromNativeSeparators(const wstring &path) { - return std::regex_replace(path, std::wregex(L"\\\\"), L"/"); + wstring _path(path); + std::replace(_path.begin(), _path.end(), L'\\', L'/'); + return _path; } wstring toNativeSeparators(const wstring &path) { - return std::regex_replace(path, std::wregex(L"\\/"), L"\\"); + wstring _path(path); + std::replace(_path.begin(), _path.end(), L'/', L'\\'); + return _path; } wstring parentPath(const wstring &path) { - wstring::size_type delim = path.find_last_of(L"\\/"); + auto delim = (path.size() > 2) ? path.find_last_of(L"\\/", path.size() - 2) : wstring::npos; return (delim == wstring::npos) ? L"" : path.substr(0, delim); }