| 398 | return elems.empty() ? "" : elems.back(); |
| 399 | } |
| 400 | string getPath(const string& full) { |
| 401 | auto elems = split(full, '/'); |
| 402 | if (elems.size() <= 1) return full; |
| 403 | elems.pop_back(); |
| 404 | return join(elems, "/"); |
| 405 | } |
| 406 | string removeExtension(const string& file) { |
| 407 | auto elems = split(file, '.'); |
| 408 | if (elems.size() <= 1) return file; |
no test coverage detected