From 05f87d6ccaa2d4666dd97cb1d2eeb88bd4e5306f Mon Sep 17 00:00:00 2001 From: Vojtech Bocek Date: Tue, 11 Mar 2014 22:08:23 +0100 Subject: Fix skipping of relative paths and lost+found in twrpDU Change-Id: Ib79029fd6237502338b041a6bc2f9e539536d6ad Signed-off-by: Vojtech Bocek --- twrp-functions.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'twrp-functions.cpp') diff --git a/twrp-functions.cpp b/twrp-functions.cpp index c50290df4..4551e84b4 100644 --- a/twrp-functions.cpp +++ b/twrp-functions.cpp @@ -274,6 +274,31 @@ unsigned long TWFunc::Get_File_Size(string Path) { return st.st_size; } +std::string TWFunc::Remove_Trailing_Slashes(const std::string& path, bool leaveLast) +{ + std::string res; + size_t last_idx = 0, idx = 0; + + while(last_idx != std::string::npos) + { + if(last_idx != 0) + res += '/'; + + idx = path.find_first_of('/', last_idx); + if(idx == std::string::npos) { + res += path.substr(last_idx, idx); + break; + } + + res += path.substr(last_idx, idx-last_idx); + last_idx = path.find_first_not_of('/', idx); + } + + if(leaveLast) + res += '/'; + return res; +} + #ifndef BUILD_TWRPTAR_MAIN // Returns "/path" from a full /path/to/file.name -- cgit v1.2.3