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 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 18 SkString SkOSPath::Basename(const char* fullPath) { 19 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 31 SkString 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 } 45