/*
|
* 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 "SkOSPath.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);
|
}
|