1 /*
2  * Copyright 2011 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 #include "SkOSFile.h"
8 
Join(const char * rootPath,const char * relativePath)9 SkString SkOSPath::Join(const char *rootPath, const char *relativePath) {
10     SkString result(rootPath);
11     if (!result.endsWith(SkPATH_SEPARATOR) && !result.isEmpty()) {
12         result.appendUnichar(SkPATH_SEPARATOR);
13     }
14     result.append(relativePath);
15     return result;
16 }
17 
Basename(const char * fullPath)18 SkString SkOSPath::Basename(const char* fullPath) {
19     if (!fullPath) {
20         return SkString();
21     }
22     const char* filename = strrchr(fullPath, SkPATH_SEPARATOR);
23     if (nullptr == filename) {
24         filename = fullPath;
25     } else {
26         ++filename;
27     }
28     return SkString(filename);
29 }
30 
Dirname(const char * fullPath)31 SkString SkOSPath::Dirname(const char* fullPath) {
32     if (!fullPath) {
33         return SkString();
34     }
35     const char* end = strrchr(fullPath, SkPATH_SEPARATOR);
36     if (nullptr == end) {
37         return SkString();
38     }
39     if (end == fullPath) {
40         SkASSERT(fullPath[0] == SkPATH_SEPARATOR);
41         ++end;
42     }
43     return SkString(fullPath, end - fullPath);
44 }
45