| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 3a401b8 commit 4d1d3f4
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -84,19 +84,26 @@ const char* const kPathSeparator = "\\/"; | |||
| 84 | 84 | #endif | |
| 85 | 85 | ||
| 86 | 86 | std::string Basename(const std::string& str, const std::string& extension) { | |
| 87 | - std::string ret = str; | ||
| 88 | - | ||
| 89 | 87 | // Remove everything leading up to and including the final path separator. | |
| 90 | - std::string::size_type pos = ret.find_last_of(kPathSeparator); | ||
| 91 | - if (pos != std::string::npos) ret = ret.substr(pos + 1); | ||
| 88 | + std::string::size_type pos = str.find_last_of(kPathSeparator); | ||
| 89 | + | ||
| 90 | + // Starting index for the resulting string | ||
| 91 | + std::size_t start_pos = 0; | ||
| 92 | + // String size to return | ||
| 93 | + std::size_t str_size = str.size(); | ||
| 94 | + if (pos != std::string::npos) { | ||
| 95 | + start_pos = pos + 1; | ||
| 96 | + str_size -= start_pos; | ||
| 97 | + } | ||
| 92 | 98 | ||
| 93 | 99 | // Strip away the extension, if any. | |
| 94 | - if (ret.size() >= extension.size() && | ||
| 95 | - ret.substr(ret.size() - extension.size()) == extension) { | ||
| 96 | - ret = ret.substr(0, ret.size() - extension.size()); | ||
| 100 | + if (str_size >= extension.size() && | ||
| 101 | + str.compare(str.size() - extension.size(), | ||
| 102 | + extension.size(), extension) == 0) { | ||
| 103 | + str_size -= extension.size(); | ||
| 97 | 104 | } | |
| 98 | 105 | ||
| 99 | - return ret; | ||
| 106 | + return str.substr(start_pos, str_size); | ||
| 100 | 107 | } | |
| 101 | 108 | ||
| 102 | 109 | inline int64_t GetOffset(Local<Value> value) { | |
| Back | FazBrowse Home | New Git URL |
0 commit comments