• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
8 #include "src/utils/SkOSPath.h"
9 
Join(const char * rootPath,const char * relativePath)10 SkString SkOSPath::Join(const char *rootPath, const char *relativePath) {
11     SkString result(rootPath);
12     if (!result.endsWith(SEPARATOR) && !result.isEmpty()) {
13         result.appendUnichar(SEPARATOR);
14     }
15     result.append(relativePath);
16     return result;
17 }
18 
Basename(const char * fullPath)19 SkString SkOSPath::Basename(const char* fullPath) {
20     if (!fullPath) {
21         return SkString();
22     }
23     const char* filename = strrchr(fullPath, SEPARATOR);
24     if (nullptr == filename) {
25         filename = fullPath;
26     } else {
27         ++filename;
28     }
29     return SkString(filename);
30 }
31 
Dirname(const char * fullPath)32 SkString SkOSPath::Dirname(const char* fullPath) {
33     if (!fullPath) {
34         return SkString();
35     }
36     const char* end = strrchr(fullPath, SEPARATOR);
37     if (nullptr == end) {
38         return SkString();
39     }
40     if (end == fullPath) {
41         SkASSERT(fullPath[0] == SEPARATOR);
42         ++end;
43     }
44     return SkString(fullPath, end - fullPath);
45 }
46