blob: cb12c2b6ae5190909aa700088e1764a98a7adc73 [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001/*
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 */
reed@android.com8a1c16f2008-12-17 15:59:43 +00007#include "SkOSFile.h"
8
tfarinaa8e2e152014-07-28 19:26:58 -07009SkString SkOSPath::Join(const char *rootPath, const char *relativePath) {
scroggo@google.comccd7afb2013-05-28 16:45:07 +000010 SkString result(rootPath);
bsalomon6eb03cc2014-08-07 14:28:50 -070011 if (!result.endsWith(SkPATH_SEPARATOR) && !result.isEmpty()) {
scroggo@google.comccd7afb2013-05-28 16:45:07 +000012 result.appendUnichar(SkPATH_SEPARATOR);
13 }
14 result.append(relativePath);
15 return result;
16}
17
tfarinaa8e2e152014-07-28 19:26:58 -070018SkString SkOSPath::Basename(const char* fullPath) {
scroggo@google.comccd7afb2013-05-28 16:45:07 +000019 if (!fullPath) {
20 return SkString();
21 }
22 const char* filename = strrchr(fullPath, SkPATH_SEPARATOR);
23 if (NULL == filename) {
24 filename = fullPath;
25 } else {
26 ++filename;
27 }
28 return SkString(filename);
29}
30
bsalomon6eb03cc2014-08-07 14:28:50 -070031SkString SkOSPath::Dirname(const char* fullPath) {
32 if (!fullPath) {
33 return SkString();
34 }
35 const char* end = strrchr(fullPath, SkPATH_SEPARATOR);
36 if (NULL == 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}