Home | History | Annotate | Download | only in utils
      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 (nullptr == 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 (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