| /* |
| * Copyright 2011 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #include "src/utils/SkOSPath.h" |
| |
| #include "include/core/SkTypes.h" |
| |
| #include <string.h> |
| |
| SkString SkOSPath::Join(const char *rootPath, const char *relativePath) { |
| SkString result(rootPath); |
| if (!result.endsWith(SEPARATOR) && !result.isEmpty()) { |
| result.appendUnichar(SEPARATOR); |
| } |
| result.append(relativePath); |
| return result; |
| } |
| |
| SkString SkOSPath::Basename(const char* fullPath) { |
| if (!fullPath) { |
| return SkString(); |
| } |
| const char* filename = strrchr(fullPath, SEPARATOR); |
| if (nullptr == filename) { |
| filename = fullPath; |
| } else { |
| ++filename; |
| } |
| return SkString(filename); |
| } |
| |
| SkString SkOSPath::Dirname(const char* fullPath) { |
| if (!fullPath) { |
| return SkString(); |
| } |
| const char* end = strrchr(fullPath, SEPARATOR); |
| if (nullptr == end) { |
| return SkString(); |
| } |
| if (end == fullPath) { |
| SkASSERT(fullPath[0] == SEPARATOR); |
| ++end; |
| } |
| return SkString(fullPath, end - fullPath); |
| } |