| 125 | } |
| 126 | |
| 127 | TString JoinPaths(const TPathSplit& p1, const TPathSplit& p2) { |
| 128 | if (p2.IsAbsolute) { |
| 129 | ythrow yexception() << "can not join " << p1 << " and " << p2; |
| 130 | } |
| 131 | |
| 132 | return TPathSplit(p1).AppendMany(p2.begin(), p2.end()).Reconstruct(); |
| 133 | } |
| 134 | |
| 135 | TStringBuf CutExtension(const TStringBuf fileName Y_LIFETIME_BOUND) { |
| 136 | if (fileName.empty()) { |
nothing calls this directly
no test coverage detected